Index: /release-kits/shared/ant-installer/.directory
===================================================================
--- /release-kits/shared/ant-installer/.directory	(revision 14989)
+++ /release-kits/shared/ant-installer/.directory	(revision 14989)
@@ -0,0 +1,2 @@
+[Desktop Entry]
+Icon=/research/oranfry/programs/ant-installer/antinstaller-icon.png
Index: /release-kits/shared/ant-installer/CHANGELOG.txt
===================================================================
--- /release-kits/shared/ant-installer/CHANGELOG.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/CHANGELOG.txt	(revision 14989)
@@ -0,0 +1,217 @@
+CHANGELOG
+
+
+========================================
+version 0.2
+Fixed a bug with the ordering of targets.
+Added app-root element.
+Hid the passwords and added a new properties file renderer with more verbose output.
+Fiddled with windoze script. (help wanted its not good scripting)
+
+========================================
+version 0.3
+Introduced fixed basedir for build.xml files to remove dependency on current
+	directory.
+Introduced SelfExtractor code to deliver installers as a single Jar file.
+Fixed some intermittent bugs in the sysout.jar library.
+Improved feedback of running Ant tasks.
+Added different default values for windows and Unix for directories and files.
+Added an ifTarget attribute to conditionally show installation pages.
+Added a Date input type.
+
+========================================
+version 0.4
+Fixed un-important error in the install-config.xml for the demo application.
+Fixed more bugs in sysout.jar related to reusing the graphics buffer.
+Added popup to save/clear in the sysout.jar.
+Fixed double printing in sysout.jar.
+Added corner button to sysout.jar to jump to final message.
+UI improvements including focusing correct buttons and better layouts.
+Changes to the way Properties are saved internally in preparation for allowing 
+	${prop.name} syntax in future versions.
+
+========================================
+version 0.5
+Fixed an introduced bug when an input page is skipped in text mode.
+Added paging to the license page in text mode.
+Fixed bug printing passwords to properties file.
+Big internal changes to the way properties are stored and referenced 
+	to allow ${refs}.
+Other internal changes to the name of InputFields that do not actually 
+	collect input to OutputField.
+Allow the use of .. in file and directory references and display the 
+	correct absolute path reference.
+
+========================================
+version 0.6
+The XML DTD should be upgraded to 0.6 to use some new features.
+Added a modified version of JGoodies' (excelent) Look And Feel to reduce 
+	the size of the installers and include and option for anti-aliased fonts 
+	in the swing GUI. 
+	- Anti-aliasing is resource intensive but good looking.
+	- The package name has been changed to maintain compatibility on the classpath
+	  with the original JGoodies files, the new package is org.tp23.jgoodies.
+Added a splash page feature to show an image.
+Added an (optional) image to the extract progress window.
+Added a new input type large-select for drop down lists.
+Fixed errors from targets on the first page in the Swing UI. 
+Fixed errors if defaultValue is null. (however it should not be set to null)
+Fixed a bug in the selfextractor when the jar is saved in a path with spaces 
+	or other non text characters.
+Added documents about the scrolling in license page.
+Removed images from the default build of antinstaller.jar 
+	- Any existing builds that are to be upgraded and use the default images, 
+	  should add the images to the classpath. The images are included in the 
+	  download in the /images directory.
+The online manual has been updated, all the changes are included in the download.
+Added some of the new features to the examples and the AnInstaller installer.
+
+========================================
+version 0.7
+File and Directory choosers will now show hidden files .
+	Thanks to Markus Dueringer for the tip.
+Environment variables can now be accesses in default values with the 
+	${env.ProgramFiles} syntax. - thanks again to Markus Dueringer
+Also the Java system properties can be accessed with the "java." prefix. 
+	- e.g ${java.user.name}
+Show details button was not big enough in some LAFs - thanks to Mike Watts.
+There are known issues with the directory selector and the Metouia LAF, 
+	I can't replicate the issues but if you have problems.
+	a) use the modified JGoodies which apparently does not have this problem.
+	b) keep the stack traces and report them please!
+	When using the selfextractor from windows or X users will probably not 
+	see the errors anyway.
+Better defaulting is included for the Directory chooser	<page
+			 type="text"
+			 name="intro.1"
+			 displayText="HTML page"
+			 htmlResource="/resources/text.html"
+			 textResource="/resources/text.txt"
+			 overflow="true" />
+	the home directory will be shown less often, it was particularly annoying 
+	when the chooser is used to create a new directory
+
+========================================
+version 0.7.1
+Bug fix in Defaulting Directory Chooser that manifested in not being able to see 
+	directories in app-root.
+RFE-1154368 Can't install from a read only source fixed.
+	The log file is written to the temp dir if it cannot write to the current dir.
+	The ant.install.properties file is only written if it can be since it is 
+	primarily for debug.
+	- There is no requirement to add <property file="ant.install.properties"/> 
+	  to the build file any more properties will be added directly to the 
+	  build as with secret properties.
+
+========================================
+version 0.7.2
+Changed the implementation of the Progress Details so selecting text is now possible.
+	This is more stable too. It has the side effect of keeping the whole System.out 
+	and System.err in memory which is only an issue for veeerrry long builds on 
+	machines with too little RAM.
+Changed minor bug where directly edited (not via the chooser) file inputs were 
+	replaced with defaults if the user when back.
+Added TargetSelectInput by Mark Anderson providing the option of radio buttons 
+	for targets instead of checkboxes.
+Fixed an introduced bug launching from the root drive when ANT_HOME was not set.
+Introduced a new "NonExtractor" this is a replacement mechanism to the SelfExtractor.
+	The Jar is still used to run the installer but the files are not extracted 
+	by default. 
+	In the build.xml files should be specifically extracted using  unzip with 
+	nested patternsets to specify the files to extract.
+	This provide opportunities to improve the performance of installers.
+	Unzipping can now be performed directly into the installation directories rather 
+	than unzipping and then copying or moving.
+	Also the antinstaller classes and LookAndFeel and Xerces need no longer 
+	be extracted.
+Added an new feature to the ifProperty attribute so the property being tested can 
+	come from the environment or the java system properties.
+	for example ifProperty="${env.SHELL}=/bin/bash thanks to Eddyrun.
+	The old syntax of property=value is deprecated in favour of ${property}=value
+	N.B.  ${property}=${value} is NOT supported.
+Big internal changes to the Execution class to use a filter pattern currently 
+	hardcoded but with intent to allow pluggable pre and post install tasks.
+
+========================================
+version 0.7.3
+Added overflow="true" to simple input page.
+GridBag Layout used instead of absolute positioning modified to support overflow size
+	difference.
+More Images and Icons added to a separate download.
+Added GUI tools for Quick start.
+A Much more flexible ifProperty syntax supporting some standard operator with non 
+standard syntax (see the docs).
+Fixed a fatal introduced bug in the console version installer
+
+========================================
+version 0.7.4
+Added an optional feature to hide password on the console. set textMask="true".
+	N.B.  this does not work in eclipse's console and may not be a stable solution
+Implemented plugable filter chains to add steps to the install process.
+	An example releaseNotes plugin is provided.
+Added ext-validated type for pluggable field validation as yet unteset 
+	and undocumented.
+Added an Ant task to build installers using Ant.
+Added a modified version of the MetalLookAndFeel to reduce download size and still 
+	be able to get the required amount of text in labels and buttons.
+Added LookAndFeel names : "default"|"jgoodies", "greymetal" or "null" .
+Further testing to allow downloads without including xercesImpl.jar or xml-apis.jar
+Added progress pane enhancements to show the targets running for visual feedback of 
+	install progress without having to monitor the output logs which can be 
+	ugly/confusing.
+XMLValiation of test scripts and minor changes in the DTD.
+Extended validation of config and integrated validation into the installer Ant task.
+N.B. passing command line parameters to the build is an override of the detection 
+	method, start scripts should be modified if the default behaviour is requried.
+	e.g. java -cp $CP org.tp23.antinstaller.runtime.ExecInstaller default . 
+	will not override the default behaviour or trying X and falling back 
+	to text/console
+Added an untested feature for including arbitrary validation classes ExtValidated
+Assorted fixes for i18n.
+app-root no longer creates the directory if it is missing.
+
+========================================
+version 0.8
+Added features to load defaults from previous installs and perform almost silent 
+	installs property names and targets must not end with the string -targets, 
+	this is validated in the config checker.
+Comments expand property values.
+Multiline comments via use of explanatoryText and a null displayText value.
+Fixed a display bug in the progress renderer if there were more than 5 
+	targets and none that were dependencies.
+PropertyLoaderFilter added, any users with custom .fconfig files should 
+	ensure thier custom versions are still compatible.
+Added a release notes feature that is a tad tricky to install so 
+	contact for details.
+Added HTML page feature that allows using the Java HTML rendering to display 
+	a page of HTML property references are expanded so the page can contain 
+	${property.name} syntax to give feed back of selected properties.
+	Images are loaded from the classpath so the following syntax will locate 
+	and display an image &lt;img src="/resources/temazo.png"&gt;.
+	Java HTML rendering is poor at best and only html3.2 ,
+	so dont expect firefox quality rendering ;)
+	The java renderer handles PNG properly though so nice .
+	trancparency effects can be achieved.
+Fixed bug in validation if only target-selects are used.
+Extended i18n for antinstall-config.xml files using ResourceBundles 
+	called LanguagePack
+GUI tool for creating LanguagePack files.
+Changes to the Expression code for ifProperty attributes
+	The original syntax is not 100% compatible e.g.  my.property=value1
+	will not work it should be converted to ${my.property}=value1.
+Initial work on loading existing values if found to automate installs.
+	Not quite silent installs but save repeating entries.
+Added ability to stretch the GUI horizontally, but still using fixed widths.
+	Set the wide attribute in the installer element to configure width 
+	e.g. 600:275
+Added the ability to deliver different install types in the same Jar which 
+	can be selected on the command line with -type [install type].
+Added icons to the buttons in the swing GUI,  the installer Ant task now takes 
+	a new attribute called icons to specify which icon pack to use.
+Added ability to run special Ant tasks mid build, the same build-xml file is used
+	but the message rendering and logging is different in the antinstaller- tasks
+Added icons for kde and windows to the AntInstaller SelfExtractor, lots of Ant 
+	hacking to avoid extra dependencies.
+Migrated classes from sysout.jar into the core src packages
+Renamed ant-ext.jar to ant-installer-ext.jar  
+	all build files will need to be updated
Index: /release-kits/shared/ant-installer/build/build.xml
===================================================================
--- /release-kits/shared/ant-installer/build/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/build/build.xml	(revision 14989)
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<!--
+This is a normal Ant build file to build the release for sourceforge
+-->
+<project name="Installation Build"  default="build"  basedir="..">
+
+    <!-- Project properties -->
+    <property name="prepareDir"  value="artifacts/prepare"/>
+	
+    <!-- Classpaths - start -->
+	<!-- Classpaths for compilation - start -->
+    <path id="project.cp">
+        <fileset dir="antlib" includes="ant.jar,ant-launcher.jar"/>
+    </path>
+    <path id="project.ext.cp">
+        <fileset dir="lib">
+			<include name="ant-installer.jar"/>
+        </fileset>
+        <fileset dir="antlib" includes="ant.jar,ant-launcher.jar"/>
+    </path>
+	<!-- Classpaths for compilation - end -->
+
+    <path id="taskdef.cp">
+      <fileset dir="./lib">
+        <include name="ant-installer-ext.jar"/>
+        <include name="ant-installer.jar"/>
+      </fileset>
+    </path>
+    <!-- Classpaths - end -->
+	
+
+    <!-- Task definitions - start -->
+    <!-- AntInstaller installer task definition.
+         Defined within target as it depends upon files that aren't
+         available at the start of a clean build -->
+    <target name="_set-installer-taskdef" unless="installer.taskdef.defined">
+        <taskdef
+            name="installer"
+            classname="org.tp23.antinstaller.taskdefs.Installer"
+            classpathref="taskdef.cp"/>
+        <property name="installer.taskdef.defined" value="true"/>
+    </target>
+    <!-- Task definitions - end -->
+
+
+    <!-- =============================== -->
+    <!-- ==== Public Runnable Targets == -->
+    <!-- =============================== -->
+
+    <target name="clean-build" depends="clean, _build-ai-jars, clean-demo, _build-demo">
+      <!-- this build is pretty much everything other than the installers -->
+    </target>
+
+    <target name="build" depends="_build-ai-jars, _build-demo">
+      <!-- this build should be enough to run the unittests without having to build a release package -->
+    </target>
+
+    <target name="clean" description="Clean out compiled and generated files">
+    	<echo message="*** *** Cleaning artifacts *** *** "/>
+    	<echo message="*** ***"/>
+        <delete dir="${prepareDir}"/>
+    	<delete file="./lib/ant-installer.jar"/>
+    	<delete file="./lib/ant-installer-ext.jar"/>
+    </target>
+
+    <target name="clean-demo" description="Clean out demo files">
+		<ant dir="demo" antfile="build-demo.xml" target="clean">
+			<property name="${installDir}" value="demo"/>
+		</ant>
+    </target>
+
+
+    <!-- =============================== -->
+    <!-- ======= Internal Targets ====== -->
+    <!-- =============================== -->
+
+	<!-- 
+		tests that the following has been run locally
+		This does not need to be run repeatedly but unittests depend on it
+		# ant -buildfile demo/build-demo.xml 
+	-->
+    <target name="_check-demo">
+    	<condition property="installpack.missing">
+    		<not>
+    			<available file="demo/artifacts/installpack.zip" type="file"/>
+    		</not>
+    	</condition>
+    </target>
+	
+    <target name="_build-demo" if="installpack.missing" depends="_check-demo">
+    	<echo message="requires demo build: ${installpack.missing}"/>
+		<ant dir="demo" antfile="build-demo.xml" target="selfextract">
+			<property name="${installDir}" value="demo"/>
+		</ant>
+    </target>
+
+	
+	<target name="_build-ai-jars" depends="_ant-installer.jar, _ant-installer-ext.jar">
+        <!-- AntInstaller JARs are built in ./lib-->
+        <!-- (checked-in) JARs should not be used -->
+    </target>
+
+    <target name="_ant-installer.jar">
+        <echo message="*** *** Building ant-installer.jar *** *** "/>
+    	<echo message="*** ***"/>
+        <echo message="Initing the build directory - ${prepareDir}"/>
+        <mkdir dir="${prepareDir}/classes"/>
+
+        <echo message="*** Building ant-installer.jar ***"/>
+        <mkdir dir="./lib"/>
+        <javac destdir="${prepareDir}/classes" srcdir="src" classpathref="project.cp" debug="true"/>
+        <jar file="./lib/ant-installer.jar" whenempty="fail">
+            <fileset dir="./src/resources">
+                <include name="LICENSE-ant-install.txt"/>
+            </fileset>
+            <fileset dir="${prepareDir}/classes"/>
+            <fileset dir="./src">
+                <include name="**/*.dtd"/>
+                <include name="**/*.properties"/>
+                <include name="**/*.fconfig"/>
+                <include name="resources/extract-image.png"/>
+                <include name="resources/gkmain_inv.png"/>
+                <include name="resources/antbar.png"/>
+            </fileset>
+            <manifest>
+                <attribute name="AntInstaller-Version" value="${ant.install.version}"/>
+            </manifest>
+        </jar>
+    </target>
+
+	<target name="_ant-installer-ext.jar">
+		<echo message="*** *** Building ant-installer-ext.jar *** *** "/>
+    	<echo message="*** ***"/>
+        <mkdir dir="${prepareDir}/classes_ext"/>
+        <javac destdir="${prepareDir}/classes_ext" srcdir="src_ext" classpathref="project.ext.cp" debug="true"/>
+		<jar file="./lib/ant-installer-ext.jar" whenempty="fail">
+            <fileset dir="./src/resources">
+                <include name="LICENSE-ant-install.txt"/>
+            </fileset>
+            <fileset dir="${prepareDir}/classes_ext"/>
+            <manifest>
+                <attribute name="AntInstaller-Version" value="${ant.install.version}"/>
+            </manifest>
+        </jar>
+    </target>	
+	
+</project>
Index: /release-kits/shared/ant-installer/demo/DEMO-README.txt
===================================================================
--- /release-kits/shared/ant-installer/demo/DEMO-README.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/DEMO-README.txt	(revision 14989)
@@ -0,0 +1,13 @@
+This Demo is a very simple example of what AntInstaller and Ant can do
+
+The installer performs the following tasks
+extracts an installpack.zip pack of files to a temporary directory
+install the selected components in the directory of the users choice
+performs an ant replace operation on the config file in {installDir}/config/example-config.xml
+deletes the temporary direcotry
+
+Clearly this is not a realworld example. 
+
+The replace Ant task is a very usefull operation for installations, and of course the
+full power of ant is at your disposal at the time the installation is performed.  It is probably
+best to be specific about the optional tasks that are included.
Index: /release-kits/shared/ant-installer/demo/README.txt
===================================================================
--- /release-kits/shared/ant-installer/demo/README.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/README.txt	(revision 14989)
@@ -0,0 +1,1 @@
+This is an example readme file 
Index: /release-kits/shared/ant-installer/demo/ant.install.log
===================================================================
--- /release-kits/shared/ant-installer/demo/ant.install.log	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/ant.install.log	(revision 14989)
@@ -0,0 +1,4 @@
+Logger initialized
+Ant basedir:/research/oranfry/programs/ant-installer/demo
+Filter: org.tp23.antinstaller.runtime.exe.LoadConfigFilter
+Installation error: Not able to load and read the AntInstaller config: class org.tp23.antinstaller.InstallException
Index: /release-kits/shared/ant-installer/demo/bin/run.cmd
===================================================================
--- /release-kits/shared/ant-installer/demo/bin/run.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/bin/run.cmd	(revision 14989)
@@ -0,0 +1,19 @@
+@echo off
+
+if "%JAVA_HOME%" == "" goto nojava
+
+set CLASSPATH=.\classes
+
+echo CLASSPATH:%CLASSPATH%
+echo JAVA_HOME:%JAVA_HOME%
+
+%JAVA_HOME%\bin\java -cp %CLASSPATH% org.tp23.demo.Demonstration
+
+goto end
+ 
+:nojava
+echo Set JAVA_HOME environment variable
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/demo/bin/run.sh
===================================================================
--- /release-kits/shared/ant-installer/demo/bin/run.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/bin/run.sh	(revision 14989)
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+if [ "$JAVA_HOME" = "" ] ; then
+	echo set JAVA_HOME;
+	exit 1;
+fi
+
+# find the command called's root  e.g.  ./build/
+dir=`expr  match "$0" '\(.*\)run.sh'`
+echo command called $0 directory 
+
+#  if it we did not call ./  change to the directory we called 
+if [ "$dir" != "./" ] ; then
+        if [ "$dir" != "" ] ;  then
+								echo changing to $dir
+                cd "$dir" ;
+        fi
+fi
+CLASSPATH=$CLASSPATH:./classes
+
+echo $CLASSPATH
+echo $JAVA_HOME
+
+$JAVA_HOME/bin/java -cp $CLASSPATH org.tp23.demo.Demonstration
+
+ 
Index: /release-kits/shared/ant-installer/demo/build-demo.xml
===================================================================
--- /release-kits/shared/ant-installer/demo/build-demo.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/build-demo.xml	(revision 14989)
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<!--
+
+This Ant script is used to package parts of the demo app to create an installer
+
+the selfextract target shows an example of creating a self extracting jar for the demo app
+
+run with ...
+
+ant -buildfile build-demo.xml
+
+-->
+<project name="Create Demo Installer Zip Build"  default="selfextract"  basedir=".">
+
+    <!-- Default location in installed tree -->
+    <property name="installDir" location=".."/>
+	<!-- This file should either not exist or contain a property that points to a valid ./antlib${ant.lib.version} directory -->
+	<property file="${installDir}/build/version.properties"/>
+
+    <path id="taskdef.cp">
+	  <fileset dir="${installDir}/lib">
+        <include name="ant-installer-ext.jar"/>
+        <include name="ant-installer.jar"/>
+      </fileset>
+	</path>
+	
+	<target name="_set-version" if="antlib.missing" depends="_check-version">
+		<property name="ant.lib.version" value=""/>
+	</target>
+	<target name="_check-version">
+		<condition property="antlib.missing">
+			<not><available file="${installDir}/antlib${ant.lib.version}"/></not>
+		</condition>
+	</target>
+	<target name="selfextract" depends="_set-version, build-resources">
+		<echo message="*** *** Building demo-installer.jar *** *** "/>
+    	<echo message="*** ***"/>
+		<taskdef 
+			name="installer" 
+			classname="org.tp23.antinstaller.taskdefs.Installer"
+			classpathref="taskdef.cp"/>
+        <installer file="${installDir}/demo/artifacts/demo-installer.jar" compress="true"
+				extractType="SelfExtractor"
+				installConfig="installer/antinstall-config.xml"
+				buildFile="installer/build.xml"
+				antInstallLib="${installDir}/lib"
+				antLib="${installDir}/antlib${ant.lib.version}"
+				validateConfig="true"
+				failOnError="true"
+				icons="eclipse">
+			<fileset dir="${installDir}/demo/artifacts" includes="installpack.zip"/>
+			<fileset dir="installclasspath" includes="resources/*"/>
+		</installer>
+		<!-- old build jar  file="./selfextractpack.jar" compress="true">
+			<manifest>
+				<attribute name="Manifest-Version" value="1.0"/>
+				<attribute name="Main-Class" value="org.tp23.antinstaller.selfextract.SelfExtractor"/>
+				<attribute name="Look-And-Feel" value="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"/>
+			</manifest>
+			<fileset dir="selfextract">
+				<include name="**/*"/>
+			</fileset>
+			<zipgroupfileset dir="installlib" includes="*.jar"/>
+		</jar-->
+	</target>
+
+	<target name="clean">
+		<echo message="*** *** Cleaning demo artifacts *** *** "/>
+    	<echo message="*** ***"/>
+		<delete dir="${installDir}/demo/classes" failonerror="false"/>
+		<delete file="${installDir}/demo/artifacts/installpack.zip" failonerror="false"/>
+		<delete file="${installDir}/demo/artifacts/demo-installer.jar" failonerror="false"/>
+	</target>
+
+	<target name="build-resources">
+		<echo message="*** *** Creating demo resources ZIP *** *** "/>
+    	<echo message="*** ***"/>
+		<mkdir dir="${installDir}/demo/classes"/>
+		<javac destdir="${installDir}/demo/classes" srcdir="src"/>
+		<copy 
+			file="src/resources/demo.png" 
+			tofile="${installDir}/demo/classes/resources/demo.png" 
+			overwrite="true"/>
+		<mkdir dir="${installDir}/demo/artifacts"/>
+		<delete file="${installDir}/demo/artifacts/installpack.zip" failonerror="false"/>
+		<mkdir dir="${installDir}/demo/artifacts"/>
+		<zip  file="${installDir}/demo/artifacts/installpack.zip">
+			<zipfileset dir="." defaultexcludes="true">
+				<include name="bin/**/*"/>
+				<include name="classes/**/*"/>
+				<include name="config/**/*"/>
+				<include name="doc/**/*"/>
+				<include name="src/**/*"/>
+				<include name="README.txt"/>
+				<include name="DEMO-README.txt"/>
+			</zipfileset>
+			<zipfileset dir="${installDir}/demo" defaultexcludes="true">
+				<include name="classes/**/*"/>
+			</zipfileset>
+		</zip>
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/demo/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/demo/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/checkConfig.sh	(revision 14989)
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# This script check the configuration in the scripts directory
+
+# find the command called's root  e.g.  ./build/
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      echo changing to $dir
+      cd "$dir" ;
+   fi
+fi
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=./installlib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:./installlib/xml-apis.jar
+CLASSPATH=$CLASSPATH:./installlib/ant-installer.jar
+CLASSPATH=$CLASSPATH:./installlib/ant-installer-ext.jar
+CLASSPATH=$CLASSPATH:./antlib/ant.jar
+CLASSPATH=$CLASSPATH:./antlib/ant-launcher.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
Index: /release-kits/shared/ant-installer/demo/config/demo.properties
===================================================================
--- /release-kits/shared/ant-installer/demo/config/demo.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/config/demo.properties	(revision 14989)
@@ -0,0 +1,7 @@
+#
+# Installtion properties
+# 
+TextProperty=@TextProperty@
+BooleanProperty=@BooleanProperty@
+Colour=@Colour@
+SelectedFile=@SelectedFile@
Index: /release-kits/shared/ant-installer/demo/config/example-config.xml
===================================================================
--- /release-kits/shared/ant-installer/demo/config/example-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/config/example-config.xml	(revision 14989)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<configuration>
+	<static-property value="Made by AntInstaller, by TP23"/> 
+	<dynamic-colour-property value="@Colour@"/> 
+	<dynamic-selectedfile-property value="@SelectedFile@"/> 
+	<dynamic-boolean-property value="@BooleanProperty@"/> 
+	<dynamic-text-property value="@TextProperty@"/> 
+</configuration>
Index: /release-kits/shared/ant-installer/demo/doc/allclasses-frame.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/allclasses-frame.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/allclasses-frame.html	(revision 14989)
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/tp23/demo/Demonstration.html" title="class in org.tp23.demo" target="classFrame">Demonstration</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/allclasses-noframe.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/allclasses-noframe.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/allclasses-noframe.html	(revision 14989)
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/tp23/demo/Demonstration.html" title="class in org.tp23.demo">Demonstration</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/constant-values.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/constant-values.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/constant-values.html	(revision 14989)
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Constant Field Values
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Constant Field Values";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="org/tp23/demo/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+</UL>
+
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="org/tp23/demo/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/deprecated-list.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/deprecated-list.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/deprecated-list.html	(revision 14989)
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Deprecated List
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Deprecated List";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="org/tp23/demo/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="org/tp23/demo/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/help-doc.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/help-doc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/help-doc.html	(revision 14989)
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:54 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+API Help
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="API Help";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="org/tp23/demo/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Exceptions<LI>Errors</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames.  All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="org/tp23/demo/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/index-all.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/index-all.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/index-all.html	(revision 14989)
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Index";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="org/tp23/demo/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="#_D_">D</A> <A HREF="#_M_">M</A> <A HREF="#_O_">O</A> <HR>
+<A NAME="_D_"><!-- --></A><H2>
+<B>D</B></H2>
+<DL>
+<DT><A HREF="org/tp23/demo/Demonstration.html" title="class in org.tp23.demo"><B>Demonstration</B></A> - class org.tp23.demo.<A HREF="org/tp23/demo/Demonstration.html" title="class in org.tp23.demo">Demonstration</A>.<DD>Title: Example Application<DT><A HREF="org/tp23/demo/Demonstration.html#Demonstration()"><B>Demonstration()</B></A> - 
+Constructor for class org.tp23.demo.<A HREF="org/tp23/demo/Demonstration.html" title="class in org.tp23.demo">Demonstration</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_M_"><!-- --></A><H2>
+<B>M</B></H2>
+<DL>
+<DT><A HREF="org/tp23/demo/Demonstration.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
+Static method in class org.tp23.demo.<A HREF="org/tp23/demo/Demonstration.html" title="class in org.tp23.demo">Demonstration</A>
+<DD>&nbsp;
+</DL>
+<HR>
+<A NAME="_O_"><!-- --></A><H2>
+<B>O</B></H2>
+<DL>
+<DT><A HREF="org/tp23/demo/package-summary.html"><B>org.tp23.demo</B></A> - package org.tp23.demo<DD>&nbsp;</DL>
+<HR>
+<A HREF="#_D_">D</A> <A HREF="#_M_">M</A> <A HREF="#_O_">O</A> 
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="org/tp23/demo/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/index.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/index.html	(revision 14989)
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Tue Nov 02 02:03:53 CET 2004-->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+</HEAD>
+<FRAMESET cols="20%,80%">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+<FRAME src="org/tp23/demo/package-summary.html" name="classFrame" title="Package, class and interface descriptions">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="org/tp23/demo/package-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/Demonstration.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/Demonstration.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/Demonstration.html	(revision 14989)
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Demonstration
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.tp23.demo.Demonstration class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Demonstration";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Demonstration.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.tp23.demo</FONT>
+<BR>
+Class Demonstration</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by"><B>org.tp23.demo.Demonstration</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Demonstration</B><DT>extends java.lang.Object</DL>
+
+<P>
+<p>Title: Example Application</p>
+ <p>Description: Prints Hello World, trys to do it in a pop up box
+ if a Throwable is thrown (e.g. no X) it prints to System.out</p>
+ <p>Copyright: Copyright (c) 2004</p>
+ <p>Company: tp23</p>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>1.0</DD>
+<DT><B>Author:</B></DT>
+  <DD>Paul Hinds</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../org/tp23/demo/Demonstration.html#Demonstration()">Demonstration</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/tp23/demo/Demonstration.html#main(java.lang.String[])">main</A></B>(java.lang.String[]&nbsp;args)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Demonstration()"><!-- --></A><H3>
+Demonstration</H3>
+<PRE>
+public <B>Demonstration</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="main(java.lang.String[])"><!-- --></A><H3>
+main</H3>
+<PRE>
+public static void <B>main</B>(java.lang.String[]&nbsp;args)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Demonstration.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/package-frame.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/package-frame.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/package-frame.html	(revision 14989)
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.tp23.demo
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.tp23.demo package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../org/tp23/demo/package-summary.html" target="classFrame">org.tp23.demo</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Demonstration.html" title="class in org.tp23.demo" target="classFrame">Demonstration</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/package-summary.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/package-summary.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/package-summary.html	(revision 14989)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.tp23.demo
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.tp23.demo package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.tp23.demo";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.tp23.demo
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../org/tp23/demo/Demonstration.html" title="class in org.tp23.demo">Demonstration</A></B></TD>
+<TD>Title: Example Application</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/package-tree.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/package-tree.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/org/tp23/demo/package-tree.html	(revision 14989)
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.tp23.demo Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.tp23.demo Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.tp23.demo
+</H2>
+</CENTER>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class org.tp23.demo.<A HREF="../../../org/tp23/demo/Demonstration.html" title="class in org.tp23.demo"><B>Demonstration</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/overview-tree.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/overview-tree.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/overview-tree.html	(revision 14989)
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="org/tp23/demo/package-tree.html">org.tp23.demo</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class org.tp23.demo.<A HREF="org/tp23/demo/Demonstration.html" title="class in org.tp23.demo"><B>Demonstration</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/package-list
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/package-list	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/package-list	(revision 14989)
@@ -0,0 +1,1 @@
+org.tp23.demo
Index: /release-kits/shared/ant-installer/demo/doc/packages.html
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/packages.html	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/packages.html	(revision 14989)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_01) on Tue Nov 02 02:03:53 CET 2004 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<BR>
+
+<BR>
+
+<BR>
+<CENTER>
+The front page has been relocated.Please see:
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="index.html">Frame version</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="org/tp23/demo/package-summary.html">Non-frame version.</A></CENTER>
+
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/demo/doc/stylesheet.css
===================================================================
--- /release-kits/shared/ant-installer/demo/doc/stylesheet.css	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/doc/stylesheet.css	(revision 14989)
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { background-color: #FFFFFF }
+
+/* Headings */
+h1 { font-size: 145% }
+
+/* Table colors */
+.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */
+.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */
+.TableRowColor         { background: #FFFFFF } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }
+.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }
+.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }
+
+/* Navigation bar fonts and colors */
+.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */
+.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
+.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
+
+.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+
Index: /release-kits/shared/ant-installer/demo/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/demo/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/install.cmd	(revision 14989)
@@ -0,0 +1,44 @@
+@echo off
+REM #!/bin/sh
+if  "%JAVA_HOME%" == "" goto nojava
+
+setlocal
+
+set AI_LIB=..\lib
+set ANT_LIB=..\antlib
+set CLASSPATH=%AI_LIB%\xercesImpl.jar;%AI_LIB%\xml-apis.jar;%AI_LIB%\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;%AI_LIB%\jgoodies-edited-1_2_2.jar
+set CLASSPATH=%CLASSPATH%;%ANT_LIB%\ant.jar;%ANT_LIB%\ant-launcher.jar
+set CLASSPATH=%CLASSPATH%;.\installclasspath
+
+
+
+REM set CLASSPATH=%CLASSPATH%;.\installlib\ant-weblogic.jar;.\installlib\ant-javamail.jar
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=%JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+start "AntInstaller" "%COMMAND%" -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+endlocal
+:end
Index: /release-kits/shared/ant-installer/demo/install.sh
===================================================================
--- /release-kits/shared/ant-installer/demo/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/install.sh	(revision 14989)
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# find the command called's root  e.g.  ./build/
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      echo changing to $dir
+      cd "$dir" ;
+   fi
+fi
+
+
+
+if [ "$JAVA_HOME" = "" ] ; then
+	echo set JAVA_HOME;
+	exit 1;
+fi
+
+AI_LIB=../lib
+ANT_LIB=../antlib
+CLASSPATH=${AI_LIB}/xercesImpl.jar:${AI_LIB}/xml-apis.jar:${AI_LIB}/ant-installer.jar
+CLASSPATH=$CLASSPATH:${AI_LIB}/jgoodies-edited-1_2_2.jar
+CLASSPATH=$CLASSPATH:${ANT_LIB}/ant.jar:${ANT_LIB}/ant-launcher.jar
+CLASSPATH=$CLASSPATH:./installclasspath
+
+
+### add other ant jars required here and add them to the install package
+#CLASSPATH=$CLASSPATH:./installlib/ant-weblogic.jar:./installlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+INTERFACE=default
+if [ "$1" != "" ] ; then
+	INTERFACE=$1;
+fi
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $INTERFACE .
Index: /release-kits/shared/ant-installer/demo/installclasspath/resources/GPL.txt
===================================================================
--- /release-kits/shared/ant-installer/demo/installclasspath/resources/GPL.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/installclasspath/resources/GPL.txt	(revision 14989)
@@ -0,0 +1,148 @@
+GNU LESSER GENERAL PUBLIC LICENSE
+Version 2.1, February 1999
+
+Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.
+
+This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.
+
+When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.
+
+To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.
+
+For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.
+
+We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.
+
+To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.
+
+Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.
+
+Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.
+
+When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.
+
+We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.
+
+For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.
+
+In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.
+
+Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.
+
+The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.
+
+GNU LESSER GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".
+
+A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.
+
+The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)
+
+"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.
+
+1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+a) The modified work must itself be a software library.
+
+b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.
+
+c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.
+
+d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.
+
+(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
+
+Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.
+
+This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
+
+4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.
+
+If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.
+
+5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
+
+However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
+
+When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.
+
+If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)
+
+Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.
+
+6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
+
+You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
+
+a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
+
+b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
+
+c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
+
+d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
+
+e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
+
+For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.
+
+7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
+
+a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.
+
+b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
+
+8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
+
+10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.
+
+11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.
+
+14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
Index: /release-kits/shared/ant-installer/demo/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/demo/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+<!--
+
+This is an example installer from which you can start a project
+Edit this file to select the properties you want decided, at the end
+of the installation screen the properties will be available in a file
+in the current directory for your ant script
+
+
+lookAndFeel="com.jgoodies.plaf.windows.ExtWindowsLookAndFeel"  - not recommended since it is not linux compatible due to Micro$oft License restrictions
+
+lookAndFeel="net.sourceforge.mlf.metouia.MetouiaLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.Plastic3DLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticLookAndFeel" - good but flat, and cross platform
+-->
+
+<!--
+
+defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources on the classpath
+
+-->
+<installer
+			ui="swing,text"
+			verbose="false"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="Demo Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/greens.png"
+			minJavaVersion="1.4">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the example installer program"
+			imageResource="/resources/greens.png">
+		<comment
+				displayText="This is a demo install"
+				title="true"/>
+		<comment
+				displayText="The application installed is yer typical Hello World"
+				bold="true"/>
+		<comment
+				displayText="There is not much more to be said really."/>
+	</page>
+	<!--  type="license" shows a license page to click through -->
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/resources/GPL.txt"
+			imageResource="/resources/rockstiles.png">
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options">
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="false"/>
+		<target
+			displayText="Documentation"
+			target="tgdoc"
+			defaultValue="true"/>
+	</page>
+	<!--  These are some other input types -->
+	<page
+			type="input"
+			name="other-input-types"
+			displayText="Pointless install options">
+		<text
+				property="TextProperty"
+				defaultValue="blah blah"
+				displayText="Enter any text"/>
+		<checkbox
+				property="BooleanProperty"
+				displayText="Make a boolean decision"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="Colour"
+				defaultValue="#FF0000"
+				displayText="Choose the option"
+				explanatoryText="This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<file
+				property="SelectedFile"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\autoexec.bat"
+				displayText="Select a file"
+				checkExists="false"/>
+	</page>
+	<!--  page type="progress" shows a progress page with the install button 
+				Its target is set to cleanuptarget since it is the last page this target will be run last-->
+	<page
+			type="progress"
+			name="progress"
+			showTargets="true"
+			displayText="Installation progress"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/demo/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/demo/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/installer/build.xml	(revision 14989)
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<!--
+
+This is the build.xml run by AntInstaller for the demo app
+
+It is a normal Ant build script, but remember that it is run in a similar
+way to running
+> ant -buildfile build.xml default,tgdoc,tgsrc
+
+this is targets selected in the selector page have dependencies those
+dependencies may be run once for each target selected
+e.g. if tgdoc had depends="default" and the installer passed
+default,tgdoc  ant would run default then default again then tgdoc
+
+To avoid this problem targets can be forced in the gui using the following
+input in the page to choose components to install
+		<input
+			type="target"
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+
+-->
+
+<project name="Installation Build"  default=""  basedir="${basedir}">
+
+	<!-- this is required to pick up the properties generated during the install pages -->
+	<property file="${basedir}/ant.install.properties"/>
+
+
+	<target name="default" depends="">
+		<echo message="Colour selected [${Colour}]"/>
+		<echo message="Installation Directory [${installDir}]"/>
+		<echo message="Entered Property [${TextProperty}]"/>
+		<echo message="Checkbox Property [${BooleanProperty}]"/>
+		<echo message="File [${SelectedFile}]"/>
+		<!-- this is an exagerated example 
+		  clearly 
+			<unzip src="installpack.zip" dest="${basedir}/temp"/>
+			<replace ...
+			would be sufficient
+		-->
+		<mkdir dir="${basedir}/temp"/>
+		<unzip src="installpack.zip" dest="${basedir}/temp"/>
+		<mkdir dir="${installDir}"/>
+		<mkdir dir="${installDir}/classes"/>
+		<mkdir dir="${installDir}/config"/>
+		<mkdir dir="${installDir}/lib"/>
+		<copy 
+			  file="${basedir}/temp/bin/run.sh"  
+			  tofile="${installDir}/run.sh" 
+			  overwrite="true"/>
+		<copy 
+			  file="${basedir}/temp/bin/run.cmd"  
+			  tofile="${installDir}/run.cmd" 
+			  overwrite="true"/>
+		<chmod file="${installDir}/run.sh" perm="774"/>
+		<copy 
+			  file="${basedir}/temp/README.txt" 
+			  todir="${installDir}" 
+			  overwrite="true"/>
+		<copy 
+			  todir="${installDir}/classes" 
+			  overwrite="true">
+			<fileset dir="${basedir}/temp/classes"/>
+		</copy>
+		<copy 
+			  todir="${installDir}/config" 
+			  overwrite="true">
+			<fileset dir="${basedir}/temp/config"/>
+		</copy>
+		<replace file="${installDir}/config/example-config.xml">
+			<replacefilter token="@TextProperty@"    value="${TextProperty}"/>
+			<replacefilter token="@SelectedFile@"    value="${SelectedFile}"/>
+			<replacefilter token="@Colour@"          value="${Colour}"/>
+			<replacefilter token="@BooleanProperty@" value="${BooleanProperty}"/>
+		</replace>
+		<replace file="${installDir}/config/demo.properties">
+			<replacefilter token="@TextProperty@"    value="${TextProperty}"/>
+			<replacefilter token="@SelectedFile@"    value="${SelectedFile}"/>
+			<replacefilter token="@Colour@"          value="${Colour}"/>
+			<replacefilter token="@BooleanProperty@" value="${BooleanProperty}"/>
+		</replace>
+	</target>
+
+	<target name="tgdoc" depends="">
+		<echo message="Installing documentation files"/>
+		<mkdir dir="${installDir}/doc"/>
+		<copy todir="${installDir}/doc" overwrite="true">
+			<fileset dir="${basedir}/temp/doc"/>
+		</copy>
+	</target>
+
+	<target name="tgsrc" depends="">
+		<echo message="Installing Source files"/>
+		<mkdir dir="${installDir}/src"/>
+		<copy todir="${installDir}/src" overwrite="true">
+			<fileset dir="${basedir}/temp/src"/>
+		</copy>
+	</target>
+
+	<target name="cleanuptarget" depends="">
+		<delete dir="${basedir}/temp">
+		</delete>
+	</target>
+</project>
Index: /release-kits/shared/ant-installer/demo/src/org/tp23/demo/Demonstration.java
===================================================================
--- /release-kits/shared/ant-installer/demo/src/org/tp23/demo/Demonstration.java	(revision 14989)
+++ /release-kits/shared/ant-installer/demo/src/org/tp23/demo/Demonstration.java	(revision 14989)
@@ -0,0 +1,85 @@
+package org.tp23.demo;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Iterator;
+import java.util.Properties;
+
+import javax.swing.ImageIcon;
+import javax.swing.JOptionPane;
+import javax.swing.JFrame;
+
+/**
+ *
+ * <p>Title: Example Application</p>
+ * <p>Description: Prints Hello World, trys to do it in a pop up box
+* if a Throwable is thrown (e.g. no X) it prints to System.out</p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version 1.0
+ */
+public class Demonstration {
+	private static ImageIcon icon ;
+	static{
+		try {
+			InputStream in = Demonstration.class.getResourceAsStream("/resources/demo.png");
+			byte[] data = new byte[11437];
+			for (int i = 0; i < data.length; i++) {
+				data[i]=(byte)in.read();
+			}
+			icon = new ImageIcon(data);
+		}
+		catch (IOException e) {
+			e.printStackTrace();
+		}		
+	}
+
+	public static void main(String[] args) {
+		try{
+			JOptionPane.showMessageDialog(null,
+							"Demo Application \n\n" +
+							"Deployed with: "+
+							"http://antinstaller.sourceforge.net \n" +
+							"Built by: "+
+							"http://ant.apache.org \n" +
+							"See also: "+
+							"http://httpfileserver.sourceforge.net \n\n" +
+							"This project is Apache licensed \n\n" +
+							"Properties selected while installing \n\n" +
+							initProps(),
+							"About - Demo App",
+							JOptionPane.INFORMATION_MESSAGE,
+							icon);
+		}catch(Throwable t){
+			System.out.println("Hello World");
+		}
+		System.exit(0);
+	}
+	private static String initProps() {
+		StringBuffer userProperties = new StringBuffer();
+		try {
+			Properties props = new Properties();
+			props.load(new FileInputStream(new File("./config/demo.properties")));
+			Iterator iter = props.keySet().iterator();
+			while(iter.hasNext()){
+				String key = (String)iter.next();
+				userProperties.append(key)
+				.append("=")
+				.append(props.getProperty(key))
+				.append('\n');
+			}
+		}
+		catch (FileNotFoundException e) {
+			e.printStackTrace();
+		}
+		catch (IOException e) {
+			e.printStackTrace();
+		}
+		return userProperties.toString();
+	}
+
+}
Index: /release-kits/shared/ant-installer/examples/buildtypes/README.txt
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/README.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/README.txt	(revision 14989)
@@ -0,0 +1,9 @@
+Build Types README
+
+The build type directory is a series of examples and test run using AntInstaller
+
+Various features are tested and are provided here to serve as examples
+
+if the sub-directory contains a directory called "build" an Ant build 
+typically build-demo.xml must be run prior to running the test which will
+create files in the "artifacts" directory
Index: /release-kits/shared/ant-installer/examples/buildtypes/buildall.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/buildall.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/buildall.cmd	(revision 14989)
@@ -0,0 +1,41 @@
+@echo off
+
+REM # This script build all the installers
+
+
+echo using JAVA_HOME:%JAVA_HOME%
+
+REM multiple Ant versions cause errors so unset the classpath
+set CLASSPATH=
+
+cd manytargets\build
+echo ':::::::' building manytargets
+call ant
+
+cd ..\..\nonextract\build
+echo ':::::::' building nonextract
+call ant
+
+cd ..\..\nonextract-auto\build
+echo ':::::::' building nonextract-auto
+call ant
+
+cd ..\..\nonextract-jdk1.5\build
+echo ':::::::' building nonextract-jdk1.5
+call ant
+
+cd ..\..\nonextract-type\build
+echo ':::::::' building nonextract-type
+call ant
+
+cd ..\..\releasenotes\build
+echo ':::::::' building releasenotes
+call ant
+
+cd ..\..\selfextract\build
+echo ':::::::' building selfextract
+call ant
+
+cd ..\..
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/buildall.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/buildall.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/buildall.sh	(revision 14989)
@@ -0,0 +1,58 @@
+#!/bin/sh
+####################################################
+#
+# This script builds all the installers
+# Usage: buildall.sh [other_args_to_ant_like_-v]
+#
+####################################################
+
+# Get path
+if (echo "$0" | grep '/' >/dev/null)
+then
+	  # Called-by Prog name includes path
+	  dir=`dirname $0`   # Get filedir from call
+else
+	  dir=`pwd`
+fi
+
+# Ensure absolute path
+if (echo "$dir" | grep '^/' >/dev/null)
+then
+	  # Already an absolute path
+	  :
+else
+	  dir=`pwd`/$dir
+fi
+
+
+echo using JAVA_HOME:$JAVA_HOME
+
+# Iterate over the directories
+for i in `echo *`
+do
+	cd ${dir}
+	INSTALLER_BUILD_DIR=${dir}/${i}/build
+	if [ ! -d ${INSTALLER_BUILD_DIR} ]
+	then
+		continue;
+	fi
+
+	cd ${INSTALLER_BUILD_DIR} || { echo "Unable to change directory to ${INSTALLER_BUILD_DIR}"; exit 10; }
+
+	if [ ! -f build.xml ]
+	then
+		echo "Skipping ${i} as no build.xml file"
+		continue
+	fi
+
+	echo "::::::: building ${i}"
+	ant $*
+	STATUS=$?
+	if [ $STATUS != 0 ]
+	then
+		echo "build of ${i} failed"
+		exit $STATUS
+	fi
+done
+
+exit $STATUS
Index: /release-kits/shared/ant-installer/examples/buildtypes/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,20 @@
+@echo off
+
+ifProperty\checkConfig.cmd
+manytargets\checkConfig.cmd
+nonextract\checkConfig.cmd
+nonextract-auto\checkConfig.cmd
+nonextract-jdk1.5\checkConfig.cmd
+nonextract-type\checkConfig.cmd
+releasenotes\checkConfig.cmd
+script\checkConfig.cmd
+script-auto\checkConfig.cmd
+script-laf\checkConfig.cmd
+script-lang\checkConfig.cmd
+script-no-xerces\checkConfig.cmd
+script-overflow\checkConfig.cmd
+script-post-display\checkConfig.cmd
+script-regex\checkConfig.cmd
+script-type\checkConfig.cmd
+script-wide\checkConfig.cmd
+selfextract\checkConfig.cmd
Index: /release-kits/shared/ant-installer/examples/buildtypes/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/checkConfig.sh	(revision 14989)
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# This script checks all the configurations
+
+cd "$(dirname "$0")"
+
+echo
+echo
+echo STARTING TESTS
+echo please wait...
+echo
+echo
+
+CD=`pwd`
+
+# Iterate over the directories
+for dir in `echo *`
+do
+	if [ -f $CD/$dir/checkConfig.sh ] ; then
+		echo ':::::::' checking $dir 1>> $CD/output
+		$CD/$dir/checkConfig.sh 1>> $CD/output
+		if [ $? != 0 ] ; then
+			echo "$dir failed"
+			exit $? ;
+		fi
+	fi
+done
+
+cd $CD
+cat output
+echo
+echo
+echo
+WARN=`cat output | grep Warning | wc -l`
+if [ "$WARN" -ne "0" ] ; then
+	echo Warnings: $WARN, see above for details
+	cat output | grep Warning
+fi
+
+ERR=`cat output | grep Error | wc -l`
+if [ "$ERR" -ne "0" ] ; then
+        echo Error: $ERR, see above for details
+        cat output | grep Error
+fi
+
+
+rm output
Index: /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,277 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd">
+
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="intro"
+			displayText="ifProperty and ifTarget tests">
+		<comment
+				displayText="ifProperty and ifTarget tests"
+				title="true"/>
+	</page>
+	<page
+			type="input"
+			name="color-properties"
+			displayText="Test Color">
+		<select
+				property="test.colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<comment
+				displayText="Green results in next page"
+				title="true"/>
+	</page>
+	<page
+			type="input"
+			name="test.colour.1"
+			displayText="GREEN"
+			ifProperty="${test.colour}==#00FF00">
+		<comment displayText="WEHEY! GREEN" title="true"/>
+	</page>
+	<page
+			type="input"
+			name="test.colour.2"
+			displayText="GREEN"
+			ifProperty="${test.colour}!=#00FF00">
+		<comment displayText="OOOOH NOT GREEN" title="true"/>
+	</page>
+	<page
+			type="input"
+			name="test-select-number"
+			displayText="Test Number">
+		<select
+				property="test.number"
+				defaultValue="1"
+				displayText="Select a Number">
+			<option text="One" value="1"/>
+			<option text="Two" value="2"/>
+			<option text="Three" value="3"/>
+		</select>
+	</page>
+	<page
+			type="input"
+			name="selector.1"
+			displayText="Number += 2"
+			ifProperty="${test.number}+=2"
+			target="runifpagerunornot">
+	</page>
+	<page
+			type="input"
+			name="selector.2"
+			displayText="Number -= 2"
+			ifProperty="${test.number}-=2"
+			postDisplayTarget="antinstaller-setcondprop">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Test Validated Number">
+		<validated
+			property="test.number.validated"
+			displayText="Enter a Double"
+			defaultValue="0.0"
+			regex="[0-9]+\.*[0-9]*"/>
+	</page>
+	<page
+			type="input"
+			name="selector.3"
+			displayText="Number += 23"
+			ifProperty="${test.number.validated}+=23.0">
+	</page>
+	<page
+			type="input"
+			name="selector.4"
+			displayText="Number -= 23"
+			ifProperty="${test.number.validated}-=23.0">
+	</page>
+	
+	<page
+			type="input"
+			name="text.properties"
+			displayText="Test Text">
+		<text
+			property="test.text.startend"
+			displayText="Enter some text"
+			defaultValue="start and end"/>
+	</page>
+	<page
+			type="input"
+			name="selector.5"
+			displayText="Text ^=start (startsWith)"
+			ifProperty="${test.text.startend}^=start">
+	</page>
+	<page
+			type="input"
+			name="selector.6"
+			displayText="Text $=end (endsWith)"
+			ifProperty="${test.text.startend}$=end">
+	</page>
+
+	<page
+			type="input"
+			name="selector.7"
+			displayText="non.existent.property is null"
+			ifProperty="${non.existent.property}==null">
+	</page>
+	<page
+			type="input"
+			name="selector.8"
+			displayText="test.text.startend is NOT null (or blank)"
+			ifProperty="${test.text.startend}!=null">
+	</page>
+	
+	<page
+			type="input"
+			name="selector.9"
+			displayText="Select components to install">
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="true"
+			force="false"/>
+		<large-select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</large-select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="Language of Love"
+			displayText="Language of Love">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+		 	ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			ifTarget="tgsrc"
+			type="input"
+			name="properties.2"
+			displayText="Source code selected">
+		<comment
+				displayText="Source Code Selected"
+				bold="true"/>
+	</page>
+	<page
+			type="input"
+			name="contrib"
+			displayText="Contributions">
+		<comment
+				displayText="target-select (Tested Via Properies)"
+				bold="true"/>
+		<target-select
+				property="colourtarget"
+				defaultValue="#FF0000"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-red" value="#FF0000"/>
+			<option text="target-green" value="#00FF00"/>
+			<option text="target-blue" value="#0000FF"/>
+		</target-select>
+	</page>
+	<page
+			type="input"
+			name="propcond.1"
+			displayText="Blue Conditional"
+			ifProperty="${colourtarget}=#0000FF">
+			<comment
+				displayText="original syntax no longer valid"
+				explanatoryText="use syntax including $ to denominate variables"
+				bold="false"/>
+			<comment
+				displayText="colourtarget is Blue"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.2"
+			displayText="Red Conditional"
+			ifProperty="${colourtarget}=#FF0000">
+			<comment
+				displayText="preferred syntax"
+				bold="false"/>
+			<comment
+				displayText="This page only shows if colourtarget is RED"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="envcond"
+			displayText="Environment Conditional"
+			ifProperty="${env.DISPLAY}=:0.0">
+			<comment
+				displayText="This page only shows if DISPLAY=:0.0"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="multiplecond"
+			displayText="Multiple Conditions"
+			ifProperty="(${env.DISPLAY}=:0.0) AND (${colourtarget}=#FF0000)">
+			<comment
+				displayText="This page only shows if DISPLAY=:0.0 and colourtarget is RED"
+				bold="false"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="true"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/build.xml	(revision 14989)
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		
+		<!--
+			this is an example of the "funnies" of property and <target if=""/> 
+		-->
+		<target name="runifpagerunornot" depends="tasksrunifpagerun">
+			<echo message="Independent of ifProperty"/>
+		</target>
+
+		<!--
+			N.B. the property is set if use user passes the page and goes back and
+			changes the property, its too late the property is set
+		-->
+		<target name="antinstaller-setcondprop">
+			<antinstaller-property name="conditional.property" value="true"/>
+			<antinstaller-log message="***************setting property*****************"/>
+			<antinstaller-message message="setting property"/>
+		</target>
+		<target name="tasksrunifpagerun" if="conditional.property">
+			<!-- N.B. the target starts but the tasks are not run -->
+			<echo message="Dependent of ${test.number}-=2 : ${coditional.property}"/>
+		</target>
+
+		<!-- simpler example that works -->
+		<target name="calledanyway" if="coditional.property">
+			<!-- N.B. the target starts but the tasks are not run -->
+			<echo message="Dependent of ${test.number}-=2 : ${coditional.property}"/>
+		</target>
+		
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="#FF0000" depends="">
+		<echo message="TARGET #FF0000 selected"/>
+	</target>
+	<target name="#00FF00" depends="">
+		<echo message="TARGET #00FF00 selected"/>
+	</target>
+	<target name="#0000FF" depends="">
+		<echo message="TARGET #0000FF selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/install.cmd	(revision 14989)
@@ -0,0 +1,59 @@
+@echo off
+REM #!/bin/sh
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+REM # Metouia (default) Look And Feel
+REM set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\metouia.jar
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+
+REM ### add other ant jars required here
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/ifProperty/installer/install.sh	(revision 14989)
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../../../src
+# Metouia (default) Look And Feel
+# CLASSPATH=$CLASSPATH:./lib/metouia.jar
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/manytargets/build/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/manytargets/build/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/manytargets/build/build.xml	(revision 14989)
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<!--
+
+This Ant script is used to package parts of the demo app to create an installer
+
+the nonextract target shows an example of creating a self extracting jar for the demo app
+
+run with ...
+
+ant -buildfile build-demo.xml
+
+-->
+<project name="Create Demo Installer Zip Build"  default="nonextract"  basedir=".">
+
+    <!-- Default location in installed tree -->
+    <property name="installDir" location="../../../.."/>
+
+    <path id="taskdef.cp">
+        <fileset dir="${installDir}/lib">
+			<include name="ant-installer-ext.jar"/>
+            <include name="ant-installer.jar"/>
+        </fileset>
+	</path>
+
+	<taskdef
+		name="installer"
+		classname="org.tp23.antinstaller.taskdefs.Installer"
+		classpathref="taskdef.cp"/>
+    <property name="demo.dir" value="${installDir}/demo"/>
+
+	<target name="nonextract">
+		<mkdir dir="../artifacts/manytargets"/>
+		<echo message="Building DEMO NON-EXTRACT"/>
+		<installer file="../artifacts/manytargets-installer.jar" compress="true"
+				extractType="NonExtractor"
+				installConfig="../installer/antinstall-config.xml"
+				buildFile="../installer/build.xml"
+				antInstallLib="${installDir}/lib"
+				antLib="${installDir}/antlib"
+				validateConfig="true"
+				failOnError="true"
+				icons="bluecurve">
+			<fileset dir="${demo.dir}/artifacts" includes="installpack.zip"/>
+			<fileset dir="${demo.dir}/installclasspath">
+				<include name="resources/*"/>
+			</fileset>
+		</installer>
+		
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/manytargets/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/manytargets/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/manytargets/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/manytargets/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/manytargets/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/manytargets/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/manytargets/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/manytargets/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/manytargets/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+<!--
+
+This is an example installer from which you can start a project
+Edit this file to select the properties you want decided, at the end
+of the installation screen the properties will be available in a file
+in the current directory for your ant script
+
+
+lookAndFeel="com.jgoodies.plaf.windows.ExtWindowsLookAndFeel"  - not recommended since it is not linux compatible due to Micro$oft License restrictions
+
+lookAndFeel="net.sourceforge.mlf.metouia.MetouiaLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.Plastic3DLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticLookAndFeel" - good but flat, and cross platform
+-->
+
+<!--
+
+defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources on the classpath
+
+-->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="Demo Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/greens.png"
+			minJavaVersion="1.4">
+	<!--  each page element represents a page of the installer -->
+	<!--  page type="progress" shows a progress page with the install button it is a requirement for the final page-->
+	<page name="input" 
+		  type="input"
+		  displayText="all targets"
+		  overflow="true">
+		<target
+			   target="target1"
+			   displayText="target1"
+			   defaultValue="true"/>
+		<target
+			   target="target2"
+			   displayText="target2"
+			   defaultValue="true"/>
+		<target
+			   target="target3"
+			   displayText="target3"
+			   defaultValue="true"/>
+		<target
+			   target="target4"
+			   displayText="target4"
+			   defaultValue="true"/>
+		<target
+			   target="target5"
+			   displayText="target5"
+			   defaultValue="true"/>
+		<target
+			   target="target6"
+			   displayText="target6"
+			   defaultValue="true"/>
+		<target
+			   target="target7"
+			   displayText="target7"
+			   defaultValue="true"/>
+		<target
+			   target="target8"
+			   displayText="target8"
+			   defaultValue="true"/>
+	</page>
+	<page type="progress" name="progress" displayText="Installation progress" showTargets="true"/>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/manytargets/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/manytargets/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/manytargets/installer/build.xml	(revision 14989)
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!--
+
+This is the build.xml run by AntInstaller for the demo app
+
+It is a normal Ant build script, but remember that it is run in a similar
+way to running
+> ant -buildfile build.xml default,tgdoc,tgsrc
+
+this is targets selected in the selector page have dependencies those
+dependencies may be run once for each target selected
+e.g. if tgdoc had depends="default" and the installer passed
+default,tgdoc  ant would run default then default again then tgdoc
+
+To avoid this problem targets can be forced in the gui using the following
+input in the page to choose components to install
+		<input
+			type="target"
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+
+-->
+
+<project name="Installation Build"  default="default"  basedir="${basedir}">
+
+	<property file="${basedir}/ant.install.properties"/>
+
+
+	<target name="default" depends="">
+		<echo message="default"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target1" depends="">
+		<echo message="target1"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target2" depends="target2a,target2b,target2c">
+		<echo message="target2"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target3" depends="">
+		<echo message="target3"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target2a" depends="">
+		<echo message="target2a"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target2b" depends="">
+		<echo message="target2b"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target2c" depends="">
+		<echo message="target2c"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target4" depends="">
+		<echo message="target4"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target5" depends="">
+		<echo message="target5"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target6" depends="">
+		<echo message="target6"/>
+		<sleep milliseconds="200"/>
+	</target>
+
+	<target name="target7" depends="">
+		<echo message="target7"/>
+		<sleep milliseconds="200"/>
+	</target>
+	
+	<target name="target8" depends="target8a">
+		<echo message="target8"/>
+		<sleep milliseconds="200"/>
+	</target>
+	
+	<target name="target8a" depends="target8aa">
+		<echo message="target8a"/>
+		<sleep milliseconds="200"/>
+	</target>
+	
+	<target name="target8aa" depends="">
+		<echo message="target8aa"/>
+		<sleep milliseconds="200"/>
+	</target>
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/build/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/build/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/build/build.xml	(revision 14989)
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<!--
+
+This Ant script is used to package parts of the demo app to create an installer
+
+the nonextract target shows an example of creating a self extracting jar for the demo app
+
+run with ...
+
+ant -buildfile build-demo.xml
+
+-->
+<project name="Create Demo Installer Zip Build"  default="nonextract"  basedir=".">
+
+    <!-- Default location in installed tree -->
+    <property name="installDir" location="../../../.."/>
+
+    <path id="taskdef.cp">
+        <fileset dir="${installDir}/lib">
+			<include name="ant-installer-ext.jar"/>
+            <include name="ant-installer.jar"/>
+        </fileset>
+	</path>
+
+	<taskdef
+		name="installer" 
+		classname="org.tp23.antinstaller.taskdefs.Installer"
+		classpathref="taskdef.cp"/>
+    <property name="demo.dir" value="${installDir}/demo"/>
+
+	<target name="nonextract">
+		<mkdir dir="../artifacts/nonextract"/>
+		<echo message="Building DEMO NON-EXTRACT"/>
+		<installer file="../artifacts/nonextract-auto-installer.jar" compress="true"
+				extractType="NonExtractor"
+				installConfig="../installer/antinstall-config.xml"
+				buildFile="../installer/build.xml"
+				antInstallLib="${installDir}/lib"
+				antLib="${installDir}/antlib"
+				validateConfig="true"
+				failOnError="true"
+				icons="bluecurve">
+			<fileset dir="${demo.dir}/artifacts" includes="installpack.zip"/>
+			<fileset dir="${demo.dir}/installclasspath">
+				<include name="resources/*"/>
+			</fileset>
+		</installer>
+		<copy file="../installer/ant.install.properties" todir="../artifacts" />
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/installer/ant.install.properties
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/installer/ant.install.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/installer/ant.install.properties	(revision 14989)
@@ -0,0 +1,47 @@
+### Ant Installer - properties auto generated on Sat Dec 23 04:43:55 CET 2006
+
+basedir = /home/teknopaul/workspace/AntInstaller/unittest/buildtypes/nonextract-auto/artifacts/.
+ant.install.config.version = 1.0
+
+
+## Properties from Page:intro
+
+## Properties from Page:license
+
+## Properties from Page:properties
+# .DirectoryInput
+installDir = /usr/local/demoapp
+
+## Properties from Page:selector
+# .TargetInput
+default = true
+# .TargetInput
+tgsrc = false
+# .TargetInput
+tgdoc = true
+# Targets selected for page
+selector-targets = default,tgdoc,
+
+## Properties from Page:other-input-types
+# .UnvalidatedTextInput
+myProperty = loaded property
+# .CheckboxInput
+truefalseprop = true
+# .SelectInput
+colour = \#FF0000
+# .TargetSelectInput
+tselect = do-thing-one-tgt
+# .FileInput
+selectedfile = /usr/tomcat/webapps/default/WEB-INF/web.xml
+# Targets selected for page
+other-input-types-targets = do-thing-one-tgt,
+
+## Properties from Page:if target test1
+# Targets selected for page
+if\ target\ test1-targets = page-target-auto,
+
+## Properties from Page:if target test2
+
+## Properties from Page:if target test3
+
+## Properties from Page:progress
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,169 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd">
+<!--
+
+This is an example installer from which you can start a project
+Edit this file to select the properties you want decided, at the end
+of the installation screen the properties will be available in a file
+in the current directory for your ant script
+
+
+lookAndFeel="com.jgoodies.plaf.windows.ExtWindowsLookAndFeel"  - not recommended since it is not linux compatible due to Micro$oft License restrictions
+
+lookAndFeel="net.sourceforge.mlf.metouia.MetouiaLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.Plastic3DLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticLookAndFeel" - good but flat, and cross platform
+-->
+
+<!--
+
+defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources on the classpath
+
+-->
+<installer
+			ui="swing,text,text-auto,swing-auto"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="Demo Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/greens.png"
+			minJavaVersion="1.4"
+			loadDefaults="prompt"
+			version="1.5">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the example installer program"
+			imageResource="/resources/greens.png">
+		<comment
+				displayText="This is a demo install"
+				title="true"/>
+		<comment
+				displayText="The application installed is yer typical Hello World"
+				bold="true"/>
+		<comment
+				displayText="There is not much more to be said really."/>
+	</page>
+	<!--  type="license" shows a license page to click through -->
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/resources/GPL.txt"
+			imageResource="/resources/rockstiles.png">
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options">
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="false"/>
+		<target
+			displayText="Documentation"
+			target="tgdoc"
+			defaultValue="true"/>
+	</page>
+	<!--  These are some other input types -->
+	<page
+			type="input"
+			name="other-input-types"
+			displayText="Pointless install options"
+			overflow="true">
+		<text
+				property="myProperty"
+				defaultValue="blah blah"
+				displayText="Enter any text"/>
+		<checkbox
+				property="truefalseprop"
+				displayText="Make a boolean decision"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Choose the option"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<target-select
+					 property="tselect"
+					 defaultValue="do-thing-one-tgt"
+					 displayText="Choose the option"
+					 explanatoryText="This field can be used on any input field to render further descriptive text
+					 This field can be used on any input field to render further descriptive text">
+			<option text="Thing one" value="do-thing-one-tgt"/>
+			<option text="Thing two" value="do-thing-two-tgt"/>
+			<option text="Thing three" value="do-thing-three-tgt"/>
+		</target-select>
+		<file
+				 property="selectedfile"
+				 defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				 defaultValueWin="C:\autoexec.bat"
+				 displayText="Select a file"
+				 checkExists="false"/>
+	</page>
+	<page
+				 type="input"
+				 name="if target test1"
+				 displayText="extra display"
+				 ifTarget="do-thing-one-tgt"
+				 target="page-target-auto">
+			<comment
+							displayText="do-thing-ONE-tgt was selected"
+							bold="true"/>
+	</page>
+	<page
+			 type="input"
+			 name="if target test2"
+			 displayText="extra display"
+			 ifTarget="do-thing-two-tgt">
+		<comment
+						displayText="do-thing-TWO-tgt was selected"
+						bold="true"/>
+	</page>
+	<page
+			 type="input"
+			 name="if target test3"
+			 displayText="extra display"
+			 ifTarget="do-thing-three-tgt">
+		<comment
+						displayText="do-thing-THREE-tgt was selected"
+						bold="true"/>
+	</page>
+	<!--  page type="progress" shows a progress page with the install button it is a requirement for the final page-->
+	<page type="progress" name="progress" displayText="Installation progress" showTargets="true"/>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-auto/installer/build.xml	(revision 14989)
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<!--
+
+This is the build.xml run by AntInstaller for the demo app
+
+It is a normal Ant build script, but remember that it is run in a similar
+way to running
+> ant -buildfile build.xml default,tgdoc,tgsrc
+
+this is targets selected in the selector page have dependencies those
+dependencies may be run once for each target selected
+e.g. if tgdoc had depends="default" and the installer passed
+default,tgdoc  ant would run default then default again then tgdoc
+
+To avoid this problem targets can be forced in the gui using the following
+input in the page to choose components to install
+		<input
+			type="target"
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+
+-->
+
+<project name="Installation Build"  default="default"  basedir="${basedir}">
+
+	<target name="default" depends="">
+	
+		<echo message="IF ANY OF THE FOLLOWING ARE MISSING THERE IS A PROBLEM"/>
+		
+		<echo message="(or you entered blank in an unvalidated field)"/>
+		<echo message="Installation Directory [${installDir}]"/>
+		<echo message="Entered Property [${myProperty}]"/>
+		<echo message="Checkbox Property [${truefalseprop}]"/>
+		<echo message="Colour selected [${colour}]"/>
+		<echo message="File [${selectedfile}]"/>
+		
+		<echo message="Installer JAR:${antinstaller.jar}"/>
+		<mkdir dir="${installDir}"/>
+		<mkdir dir="${installDir}/classes"/>
+		<mkdir dir="${installDir}/config"/>
+		<mkdir dir="${installDir}/lib"/>
+		<echo message="antinstaller.jar = ${antinstaller.jar}"/>
+		<echo message="basedir = ${basedir}"/>
+		<unjar src="${antinstaller.jar}" dest="${basedir}">
+			<patternset>
+					<include name="installpack.zip"/>
+			</patternset>
+		</unjar>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}">
+			<patternset>
+					<include name="**/*"/>
+					<exclude name="doc/*"/>
+					<exclude name="src/*"/>
+			</patternset>
+		</unzip>
+		<copy file="${installDir}/bin/run.sh"  tofile="${installDir}/run.sh"/>
+		<copy file="${installDir}/bin/run.cmd"  tofile="${installDir}/run.cmd"/>
+		<chmod file="${installDir}/run.sh" perm="774">
+		</chmod>
+		<replace file="${installDir}/config/example-config.xml">
+			<replacefilter token="@TextProperty@"   value="${myProperty}"/>
+			<replacefilter token="@SelectedFile@"     value="${selectedfile}"/>
+			<replacefilter token="@Colour@" value="${colour}"/>
+			<replacefilter token="@Boolean@" value="${truefalseprop}"/>
+		</replace>
+	</target>
+
+	<target name="tgdoc" depends="">
+		<echo message="Installing documentation files"/>
+		<mkdir dir="${installDir}/doc"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/doc">
+			<patternset>
+					<include name="doc/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+	<target name="tgsrc" depends="">
+		<echo message="Installing Source files"/>
+		<mkdir dir="${installDir}/src"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/src">
+			<patternset>
+					<include name="src/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+	<target name="do-thing-one-tgt" depends="">
+		<echo message="Running do-thing-ONE-tgt"/>
+	</target>
+	<target name="do-thing-two-tgt" depends="">
+		<echo message="Running do-thing-TWO-tgt"/>
+	</target>
+	<target name="do-thing-three-tgt" depends="">
+		<echo message="Running do-thing-THREE-tgt"/>
+	</target>
+	
+	<target name="page-target-auto" depends="">
+		<echo message="Running page-target-auto caused by do-thing-one-tgt"/>
+	</target>
+	
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/build/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/build/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/build/build.xml	(revision 14989)
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<!--
+
+This Ant script is used to package parts of the demo app to create an installer
+
+the nonextract target shows an example of creating a self extracting jar for the demo app
+
+run with ...
+
+ant -buildfile build-demo.xml
+
+-->
+<project name="Create Demo Installer Zip Build"  default="nonextract"  basedir=".">
+
+    <!-- Default location in installed tree -->
+    <property name="installDir" location="../../../.."/>
+
+    <path id="taskdef.cp">
+        <fileset dir="${installDir}/lib">
+			<include name="ant-installer-ext.jar"/>
+            <include name="ant-installer.jar"/>
+        </fileset>
+	</path>
+
+	<taskdef
+		name="installer" 
+		classname="org.tp23.antinstaller.taskdefs.Installer"
+		classpathref="taskdef.cp"/>
+    <property name="demo.dir" value="${installDir}/demo"/>
+
+	<target name="nonextract">
+		<mkdir dir="../artifacts/nonextract"/>
+		<echo message="Building DEMO NON-EXTRACT"/>
+		<installer file="../artifacts/nonextract-jdk1.5-installer.jar" compress="true"
+				extractType="NonExtractor"
+				installConfig="../installer/antinstall-config.xml"
+				buildFile="../installer/build.xml"
+				antInstallLib="${installDir}/lib"
+				antLib="${installDir}/antlib"
+				validateConfig="true"
+				failOnError="true"
+				icons="bluecurve">
+			<fileset dir="${demo.dir}/artifacts" includes="installpack.zip"/>
+			<fileset dir="${demo.dir}/installclasspath">
+				<include name="resources/*"/>
+			</fileset>
+		</installer>
+		
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,154 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+<!--
+
+This is an example installer from which you can start a project
+Edit this file to select the properties you want decided, at the end
+of the installation screen the properties will be available in a file
+in the current directory for your ant script
+
+
+lookAndFeel="com.jgoodies.plaf.windows.ExtWindowsLookAndFeel"  - not recommended since it is not linux compatible due to Micro$oft License restrictions
+
+lookAndFeel="net.sourceforge.mlf.metouia.MetouiaLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.Plastic3DLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticLookAndFeel" - good but flat, and cross platform
+-->
+
+<!--
+
+defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources on the classpath
+
+-->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="Demo Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/greens.png"
+			minJavaVersion="1.4">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the example installer program"
+			imageResource="/resources/greens.png">
+		<comment
+				displayText="This is a demo install"
+				title="true"/>
+		<comment
+				displayText="The application installed is yer typical Hello World"
+				bold="true"/>
+		<comment
+				displayText="There is not much more to be said really."/>
+		<select
+			   property="test-1494105-colour"
+			   defaultValue="#FF0000"
+			   displayText="Choose the option"
+			   explanatoryText="This field can be used on any input field to render further descriptive text
+			   This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+	</page>
+	<page
+		 type="input"
+		 name="test-ver"
+		 displayText="Show Java version if starts with 1.5"
+		 ifProperty="${java.java.version}^=1.5">
+		<comment
+				displayText="Java Version ${java.java.version}"
+				bold="true"/>
+		
+	</page>	
+	<!--  type="license" shows a license page to click through -->
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/resources/GPL.txt"
+			imageResource="/resources/rockstiles.png">
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options">
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"/>
+		<directory
+				  property="otherInstallDir"
+				  defaultValue="/"
+				  defaultValueWin="${env.ProgramFiles}\demoapp_files"
+				  displayText="Select a file storage directory"
+				  create="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="false"/>
+		<target
+			displayText="Documentation"
+			target="tgdoc"
+			defaultValue="true"/>
+	</page>
+	<!--  These are some other input types -->
+	<page
+			type="input"
+			name="other-input-types"
+			displayText="Pointless install options">
+		<text
+				property="myProperty"
+				defaultValue="blah blah"
+				displayText="Enter any text"/>
+		<checkbox
+				property="truefalseprop"
+				displayText="Make a boolean decision"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Choose the option"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<file
+				property="selectedfile"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\autoexec.bat"
+				displayText="Select a file"
+				checkExists="false"/>
+	</page>
+	<!--  page type="progress" shows a progress page with the install button it is a requirement for the final page-->
+	<page type="progress" name="progress" displayText="Installation progress" showTargets="true"/>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-jdk1.5/installer/build.xml	(revision 14989)
@@ -0,0 +1,91 @@
+<?xml version="1.0"?>
+<!--
+
+This is the build.xml run by AntInstaller for the demo app
+
+It is a normal Ant build script, but remember that it is run in a similar
+way to running
+> ant -buildfile build.xml default,tgdoc,tgsrc
+
+this is targets selected in the selector page have dependencies those
+dependencies may be run once for each target selected
+e.g. if tgdoc had depends="default" and the installer passed
+default,tgdoc  ant would run default then default again then tgdoc
+
+To avoid this problem targets can be forced in the gui using the following
+input in the page to choose components to install
+		<input
+			type="target"
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+
+-->
+
+<project name="Installation Build"  default="default"  basedir="${basedir}">
+
+	<property file="${basedir}/ant.install.properties"/>
+
+
+	<target name="default" depends="">
+	
+		<echo message="IF ANY OF THE FOLLOWING ARE MISSING THERE IS A PROBLEM"/>
+		
+		<echo message="(or you entered blank in an unvalidated field)"/>
+		<echo message="Installation Directory [${installDir}]"/>
+		<echo message="Entered Property [${myProperty}]"/>
+		<echo message="Checkbox Property [${truefalseprop}]"/>
+		<echo message="Colour selected [${colour}]"/>
+		<echo message="File [${selectedfile}]"/>
+		
+		<echo message="Installer JAR:${antinstaller.jar}"/>
+		<mkdir dir="${installDir}"/>
+		<mkdir dir="${installDir}/classes"/>
+		<mkdir dir="${installDir}/config"/>
+		<mkdir dir="${installDir}/lib"/>
+		<unjar src="${antinstaller.jar}" dest="${basedir}">
+			<patternset>
+					<include name="installpack.zip"/>
+			</patternset>
+		</unjar>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}">
+			<patternset>
+					<include name="**/*"/>
+					<exclude name="doc/*"/>
+					<exclude name="src/*"/>
+			</patternset>
+		</unzip>
+		<copy file="${installDir}/bin/run.sh"  tofile="${installDir}/run.sh"/>
+		<copy file="${installDir}/bin/run.cmd"  tofile="${installDir}/run.cmd"/>
+		<chmod file="${installDir}/run.sh" perm="774">
+		</chmod>
+		<replace file="${installDir}/config/example-config.xml">
+			<replacefilter token="@TextProperty@"   value="${myProperty}"/>
+			<replacefilter token="@SelectedFile@"     value="${selectedfile}"/>
+			<replacefilter token="@Colour@" value="${colour}"/>
+			<replacefilter token="@BooleanProperty@" value="${truefalseprop}"/>
+		</replace>
+	</target>
+
+	<target name="tgdoc" depends="">
+		<echo message="Installing documentation files"/>
+		<mkdir dir="${installDir}/doc"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/doc">
+			<patternset>
+					<include name="doc/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+	<target name="tgsrc" depends="">
+		<echo message="Installing Source files"/>
+		<mkdir dir="${installDir}/src"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/src">
+			<patternset>
+					<include name="src/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/README.txt
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/README.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/README.txt	(revision 14989)
@@ -0,0 +1,11 @@
+README
+ÂšÂšÂšÂšÂšÂš
+
+multiple build types embedded in the same installer
+
+this build ban be run with the command line arguments   -type alternative 
+
+e.g 
+
+> java -jar nonextract-type-installer.jar -type alternative
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/build/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/build/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/build/build.xml	(revision 14989)
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!--
+
+This Ant script is used to package parts of the demo app to create an installer
+
+the nonextract target shows an example of creating a self extracting jar for the demo app
+
+run with ...
+
+ant -buildfile build-demo.xml
+
+-->
+<project name="Create Demo Installer Zip Build"  default="nonextract"  basedir=".">
+
+    <!-- Default location in installed tree -->
+    <property name="installDir" location="../../../.."/>
+
+    <path id="taskdef.cp">
+        <fileset dir="${installDir}/lib">
+			<include name="ant-installer-ext.jar"/>
+            <include name="ant-installer.jar"/>
+        </fileset>
+	</path>
+
+	<taskdef
+		name="installer" 
+		classname="org.tp23.antinstaller.taskdefs.Installer"
+		classpathref="taskdef.cp"/>
+    <property name="demo.dir" value="${installDir}/demo"/>
+
+	<target name="nonextract">
+		<mkdir dir="../artifacts/nonextract"/>
+		<echo message="Building DEMO NON-EXTRACT"/>
+		<installer file="../artifacts/nonextract-type-installer.jar" compress="true"
+				extractType="NonExtractor"
+				installConfig="../installer/antinstall-config.xml"
+				buildFile="../installer/build.xml"
+				antInstallLib="${installDir}/lib"
+				antLib="${installDir}/antlib"
+				validateConfig="true"
+				failOnError="true"
+				icons="bluecurve">
+			<fileset dir="${demo.dir}/artifacts" includes="installpack.zip"/>
+			<fileset dir="${demo.dir}/installclasspath">
+				<include name="resources/*"/>
+			</fileset>
+			<fileset dir="../installer">
+				<include name="build-alternative.xml"/>
+				<include name="antinstall-config-alternative.xml"/>
+			</fileset>
+		</installer>
+		
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/antinstall-config-alternative.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/antinstall-config-alternative.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/antinstall-config-alternative.xml	(revision 14989)
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+<!--
+
+This is an example installer from which you can start a project
+Edit this file to select the properties you want decided, at the end
+of the installation screen the properties will be available in a file
+in the current directory for your ant script
+
+
+lookAndFeel="com.jgoodies.plaf.windows.ExtWindowsLookAndFeel"  - not recommended since it is not linux compatible due to Micro$oft License restrictions
+
+lookAndFeel="net.sourceforge.mlf.metouia.MetouiaLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.Plastic3DLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticLookAndFeel" - good but flat, and cross platform
+-->
+
+<!--
+
+defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources on the classpath
+
+-->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="Demo Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/greens.png"
+			minJavaVersion="1.4">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Alternative installer"
+			imageResource="/resources/greens.png">
+		<comment
+				displayText="This is an Alternative install"
+				title="true"/>
+		<comment
+				displayText="The application installed is yer typical Hello World"
+				bold="true"/>
+		<comment
+				displayText="There is not much more to be said really."/>
+		<select
+			   property="test-1494105-colour"
+			   defaultValue="#FF0000"
+			   displayText="Choose the option"
+			   explanatoryText="This field can be used on any input field to render further descriptive text
+			   This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+	</page>
+	<page
+		 type="input"
+		 name="test-1494105"
+		 displayText="test case for bug 1494105"
+		 ifProperty="${test-1494105-colour}==#FF0000">
+		<checkbox
+				 property="truefalseprop-fail"
+				 displayText="Make a boolean decision"
+				 defaultValue="false"
+				 force="false"/>		
+	</page>	
+	<!--  type="license" shows a license page to click through -->
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/resources/GPL.txt"
+			imageResource="/resources/rockstiles.png">
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options">
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"/>
+		<directory
+				  property="otherInstallDir"
+				  defaultValue="/"
+				  defaultValueWin="${env.ProgramFiles}\demoapp_files"
+				  displayText="Select a file storage directory"
+				  create="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="false"/>
+		<target
+			displayText="Documentation"
+			target="tgdoc"
+			defaultValue="true"/>
+	</page>
+	<!--  These are some other input types -->
+	<page
+			type="input"
+			name="other-input-types"
+			displayText="Pointless install options">
+		<text
+				property="myProperty"
+				defaultValue="blah blah"
+				displayText="Enter any text"/>
+		<checkbox
+				property="truefalseprop"
+				displayText="Make a boolean decision"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Choose the option"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<file
+				property="selectedfile"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\autoexec.bat"
+				displayText="Select a file"
+				checkExists="false"/>
+	</page>
+	<!--  page type="progress" shows a progress page with the install button it is a requirement for the final page-->
+	<page type="progress" name="progress" displayText="Alternative progress" showTargets="true"/>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+<!--
+
+This is an example installer from which you can start a project
+Edit this file to select the properties you want decided, at the end
+of the installation screen the properties will be available in a file
+in the current directory for your ant script
+
+
+lookAndFeel="com.jgoodies.plaf.windows.ExtWindowsLookAndFeel"  - not recommended since it is not linux compatible due to Micro$oft License restrictions
+
+lookAndFeel="net.sourceforge.mlf.metouia.MetouiaLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.Plastic3DLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticLookAndFeel" - good but flat, and cross platform
+-->
+
+<!--
+
+defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources on the classpath
+
+-->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="Demo Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/greens.png"
+			minJavaVersion="1.4">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the example installer program"
+			imageResource="/resources/greens.png">
+		<comment
+				displayText="This is a demo install"
+				title="true"/>
+		<comment
+				displayText="The application installed is yer typical Hello World"
+				bold="true"/>
+		<comment
+				displayText="There is not much more to be said really."/>
+		<select
+			   property="test-1494105-colour"
+			   defaultValue="#FF0000"
+			   displayText="Choose the option"
+			   explanatoryText="This field can be used on any input field to render further descriptive text
+			   This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+	</page>
+	<page
+		 type="input"
+		 name="test-1494105"
+		 displayText="test case for bug 1494105"
+		 ifProperty="${test-1494105-colour}==#FF0000">
+		<checkbox
+				 property="truefalseprop-fail"
+				 displayText="Make a boolean decision"
+				 defaultValue="false"
+				 force="false"/>		
+	</page>	
+	<!--  type="license" shows a license page to click through -->
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/resources/GPL.txt"
+			imageResource="/resources/rockstiles.png">
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options">
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"/>
+		<directory
+				  property="otherInstallDir"
+				  defaultValue="/"
+				  defaultValueWin="${env.ProgramFiles}\demoapp_files"
+				  displayText="Select a file storage directory"
+				  create="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="false"/>
+		<target
+			displayText="Documentation"
+			target="tgdoc"
+			defaultValue="true"/>
+	</page>
+	<!--  These are some other input types -->
+	<page
+			type="input"
+			name="other-input-types"
+			displayText="Pointless install options">
+		<text
+				property="myProperty"
+				defaultValue="blah blah"
+				displayText="Enter any text"/>
+		<checkbox
+				property="truefalseprop"
+				displayText="Make a boolean decision"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Choose the option"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<file
+				property="selectedfile"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\autoexec.bat"
+				displayText="Select a file"
+				checkExists="false"/>
+	</page>
+	<!--  page type="progress" shows a progress page with the install button it is a requirement for the final page-->
+	<page type="progress" name="progress" displayText="Installation progress" showTargets="true"/>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/build-alternative.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/build-alternative.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/build-alternative.xml	(revision 14989)
@@ -0,0 +1,91 @@
+<?xml version="1.0"?>
+<!--
+
+This is the build.xml run by AntInstaller for the demo app
+
+It is a normal Ant build script, but remember that it is run in a similar
+way to running
+> ant -buildfile build.xml default,tgdoc,tgsrc
+
+this is targets selected in the selector page have dependencies those
+dependencies may be run once for each target selected
+e.g. if tgdoc had depends="default" and the installer passed
+default,tgdoc  ant would run default then default again then tgdoc
+
+To avoid this problem targets can be forced in the gui using the following
+input in the page to choose components to install
+		<input
+			type="target"
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+
+-->
+
+<project name="Installation Build"  default="default"  basedir="${basedir}">
+
+	<property file="${basedir}/ant.install.properties"/>
+
+
+	<target name="default" depends="">
+	
+		<echo message="ALTERNATIVE BUILD"/>
+		
+		<echo message="(or you entered blank in an unvalidated field)"/>
+		<echo message="Installation Directory [${installDir}]"/>
+		<echo message="Entered Property [${myProperty}]"/>
+		<echo message="Checkbox Property [${truefalseprop}]"/>
+		<echo message="Colour selected [${colour}]"/>
+		<echo message="File [${selectedfile}]"/>
+		
+		<echo message="Installer JAR:${antinstaller.jar}"/>
+		<mkdir dir="${installDir}"/>
+		<mkdir dir="${installDir}/classes"/>
+		<mkdir dir="${installDir}/config"/>
+		<mkdir dir="${installDir}/lib"/>
+		<unjar src="${antinstaller.jar}" dest="${basedir}">
+			<patternset>
+					<include name="installpack.zip"/>
+			</patternset>
+		</unjar>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}">
+			<patternset>
+					<include name="**/*"/>
+					<exclude name="doc/*"/>
+					<exclude name="src/*"/>
+			</patternset>
+		</unzip>
+		<copy file="${installDir}/bin/run.sh"  tofile="${installDir}/run.sh"/>
+		<copy file="${installDir}/bin/run.cmd"  tofile="${installDir}/run.cmd"/>
+		<chmod file="${installDir}/run.sh" perm="774">
+		</chmod>
+		<replace file="${installDir}/config/example-config.xml">
+			<replacefilter token="@myProperty@"   value="${myProperty}"/>
+			<replacefilter token="@selectedfile@"     value="${selectedfile}"/>
+			<replacefilter token="@colour@" value="${colour}"/>
+			<replacefilter token="@truefalseprop@" value="${truefalseprop}"/>
+		</replace>
+	</target>
+
+	<target name="tgdoc" depends="">
+		<echo message="Installing documentation files"/>
+		<mkdir dir="${installDir}/doc"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/doc">
+			<patternset>
+					<include name="doc/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+	<target name="tgsrc" depends="">
+		<echo message="Installing Source files"/>
+		<mkdir dir="${installDir}/src"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/src">
+			<patternset>
+					<include name="src/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract-type/installer/build.xml	(revision 14989)
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<!--
+
+This is the build.xml run by AntInstaller for the demo app
+
+It is a normal Ant build script, but remember that it is run in a similar
+way to running
+> ant -buildfile build.xml default,tgdoc,tgsrc
+
+this is targets selected in the selector page have dependencies those
+dependencies may be run once for each target selected
+e.g. if tgdoc had depends="default" and the installer passed
+default,tgdoc  ant would run default then default again then tgdoc
+
+To avoid this problem targets can be forced in the gui using the following
+input in the page to choose components to install
+		<input
+			type="target"
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+
+-->
+
+<project name="Installation Build"  default="default"  basedir="${basedir}">
+
+	<property file="${basedir}/ant.install.properties"/>
+
+
+	<target name="default" depends="">
+	
+		<echo message="IF ANY OF THE FOLLOWING ARE MISSING THERE IS A PROBLEM"/>
+		
+		<echo message="(or you entered blank in an unvalidated field)"/>
+		<echo message="Installation Directory [${installDir}]"/>
+		<echo message="Entered Property [${myProperty}]"/>
+		<echo message="Checkbox Property [${truefalseprop}]"/>
+		<echo message="Colour selected [${colour}]"/>
+		<echo message="File [${selectedfile}]"/>
+		
+		<echo message="Installer JAR:${antinstaller.jar}"/>
+		<mkdir dir="${installDir}"/>
+		<mkdir dir="${installDir}/classes"/>
+		<mkdir dir="${installDir}/config"/>
+		<mkdir dir="${installDir}/lib"/>
+		<unjar src="${antinstaller.jar}" dest="${basedir}">
+			<patternset>
+					<include name="installpack.zip"/>
+			</patternset>
+		</unjar>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}">
+			<patternset>
+					<include name="**/*"/>
+					<exclude name="doc/*"/>
+					<exclude name="src/*"/>
+			</patternset>
+		</unzip>
+		<copy file="${installDir}/bin/run.sh"  tofile="${installDir}/run.sh"/>
+		<copy file="${installDir}/bin/run.cmd"  tofile="${installDir}/run.cmd"/>
+		<chmod file="${installDir}/run.sh" perm="774">
+		</chmod>
+		<replace file="${installDir}/config/example-config.xml">
+			<replacefilter token="@TextProperty@"   value="${myProperty}"/>
+			<replacefilter token="@SelectedFile@"     value="${selectedfile}"/>
+			<replacefilter token="@Colour@" value="${colour}"/>
+			<replacefilter token="@BooleanProperty@" value="${truefalseprop}"/>
+		</replace>
+		<replace file="${installDir}/config/demo.properties">
+			<replacefilter token="@TextProperty@"   value="${myProperty}"/>
+			<replacefilter token="@SelectedFile@"     value="${selectedfile}"/>
+			<replacefilter token="@Colour@" value="${colour}"/>
+			<replacefilter token="@BooleanProperty@" value="${truefalseprop}"/>
+		</replace>
+	</target>
+
+	<target name="tgdoc" depends="">
+		<echo message="Installing documentation files"/>
+		<mkdir dir="${installDir}/doc"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/doc">
+			<patternset>
+					<include name="doc/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+	<target name="tgsrc" depends="">
+		<echo message="Installing Source files"/>
+		<mkdir dir="${installDir}/src"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/src">
+			<patternset>
+					<include name="src/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract/build/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract/build/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract/build/build.xml	(revision 14989)
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<!--
+
+This Ant script is used to package parts of the demo app to create an installer
+
+the nonextract target shows an example of creating a self extracting jar for the demo app
+
+run with ...
+
+ant -buildfile build-demo.xml
+
+-->
+<project name="Create Demo Installer Zip Build"  default="nonextract"  basedir=".">
+
+    <!-- Default location in installed tree -->
+    <property name="installDir" location="../../../.."/>
+
+    <path id="taskdef.cp">
+        <fileset dir="${installDir}/lib">
+			<include name="ant-installer-ext.jar"/>
+            <include name="ant-installer.jar"/>
+        </fileset>
+	</path>
+
+	<taskdef
+		name="installer" 
+		classname="org.tp23.antinstaller.taskdefs.Installer"
+		classpathref="taskdef.cp"/>
+    <property name="demo.dir" value="${installDir}/demo"/>
+
+	<target name="nonextract">
+		<mkdir dir="../artifacts/nonextract"/>
+		<echo message="Building DEMO NON-EXTRACT"/>
+		<installer file="../artifacts/nonextract-installer.jar" compress="true"
+				extractType="NonExtractor"
+				installConfig="../installer/antinstall-config.xml"
+				buildFile="../installer/build.xml"
+				antInstallLib="${installDir}/lib"
+				antLib="${installDir}/antlib"
+				validateConfig="true"
+				failOnError="true"
+				icons="bluecurve">
+			<fileset dir="${demo.dir}/artifacts" includes="installpack.zip"/>
+			<fileset dir="${demo.dir}/installclasspath">
+				<include name="resources/*"/>
+			</fileset>
+		</installer>
+		
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+<!--
+
+This is an example installer from which you can start a project
+Edit this file to select the properties you want decided, at the end
+of the installation screen the properties will be available in a file
+in the current directory for your ant script
+
+
+lookAndFeel="com.jgoodies.plaf.windows.ExtWindowsLookAndFeel"  - not recommended since it is not linux compatible due to Micro$oft License restrictions
+
+lookAndFeel="net.sourceforge.mlf.metouia.MetouiaLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.Plastic3DLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"  - good, and cross platform
+
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticLookAndFeel" - good but flat, and cross platform
+-->
+
+<!--
+
+defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources on the classpath
+
+-->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="Demo Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/greens.png"
+			minJavaVersion="1.4">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the example installer program"
+			imageResource="/resources/greens.png">
+		<comment
+				displayText="This is a demo install"
+				title="true"/>
+		<comment
+				displayText="The application installed is yer typical Hello World"
+				bold="true"/>
+		<comment
+				displayText="There is not much more to be said really."/>
+		<select
+			   property="test-1494105-colour"
+			   defaultValue="#FF0000"
+			   displayText="Choose the option"
+			   explanatoryText="This field can be used on any input field to render further descriptive text
+			   This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+	</page>
+	<page
+		 type="input"
+		 name="test-1494105"
+		 displayText="test case for bug 1494105"
+		 ifProperty="${test-1494105-colour}==#FF0000">
+		<checkbox
+				 property="truefalseprop-fail"
+				 displayText="Make a boolean decision"
+				 defaultValue="false"
+				 force="false"/>		
+	</page>	
+	<!--  type="license" shows a license page to click through -->
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/resources/GPL.txt"
+			imageResource="/resources/rockstiles.png">
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options">
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"/>
+		<directory
+				  property="otherInstallDir"
+				  defaultValue="/"
+				  defaultValueWin="${env.ProgramFiles}\demoapp_files"
+				  displayText="Select a file storage directory"
+				  create="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="false"/>
+		<target
+			displayText="Documentation"
+			target="tgdoc"
+			defaultValue="true"/>
+	</page>
+	<!--  These are some other input types -->
+	<page
+			type="input"
+			name="other-input-types"
+			displayText="Pointless install options">
+		<text
+				property="myProperty"
+				defaultValue="blah blah"
+				displayText="Enter any text"/>
+		<checkbox
+				property="truefalseprop"
+				displayText="Make a boolean decision"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Choose the option"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<file
+				property="selectedfile"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\autoexec.bat"
+				displayText="Select a file"
+				checkExists="false"/>
+	</page>
+	<!--  page type="progress" shows a progress page with the install button it is a requirement for the final page-->
+	<page type="progress" name="progress" displayText="Installation progress" showTargets="true"/>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/nonextract/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/nonextract/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/nonextract/installer/build.xml	(revision 14989)
@@ -0,0 +1,91 @@
+<?xml version="1.0"?>
+<!--
+
+This is the build.xml run by AntInstaller for the demo app
+
+It is a normal Ant build script, but remember that it is run in a similar
+way to running
+> ant -buildfile build.xml default,tgdoc,tgsrc
+
+this is targets selected in the selector page have dependencies those
+dependencies may be run once for each target selected
+e.g. if tgdoc had depends="default" and the installer passed
+default,tgdoc  ant would run default then default again then tgdoc
+
+To avoid this problem targets can be forced in the gui using the following
+input in the page to choose components to install
+		<input
+			type="target"
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+
+-->
+
+<project name="Installation Build"  default="default"  basedir="${basedir}">
+
+	<property file="${basedir}/ant.install.properties"/>
+
+
+	<target name="default" depends="">
+	
+		<echo message="IF ANY OF THE FOLLOWING ARE MISSING THERE IS A PROBLEM"/>
+		
+		<echo message="(or you entered blank in an unvalidated field)"/>
+		<echo message="Installation Directory [${installDir}]"/>
+		<echo message="Entered Property [${myProperty}]"/>
+		<echo message="Checkbox Property [${truefalseprop}]"/>
+		<echo message="Colour selected [${colour}]"/>
+		<echo message="File [${selectedfile}]"/>
+		
+		<echo message="Installer JAR:${antinstaller.jar}"/>
+		<mkdir dir="${installDir}"/>
+		<mkdir dir="${installDir}/classes"/>
+		<mkdir dir="${installDir}/config"/>
+		<mkdir dir="${installDir}/lib"/>
+		<unjar src="${antinstaller.jar}" dest="${basedir}">
+			<patternset>
+					<include name="installpack.zip"/>
+			</patternset>
+		</unjar>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}">
+			<patternset>
+					<include name="**/*"/>
+					<exclude name="doc/*"/>
+					<exclude name="src/*"/>
+			</patternset>
+		</unzip>
+		<copy file="${installDir}/bin/run.sh"  tofile="${installDir}/run.sh"/>
+		<copy file="${installDir}/bin/run.cmd"  tofile="${installDir}/run.cmd"/>
+		<chmod file="${installDir}/run.sh" perm="774">
+		</chmod>
+		<replace file="${installDir}/config/example-config.xml">
+			<replacefilter token="@TextProperty@"   value="${myProperty}"/>
+			<replacefilter token="@SelectedFile@"     value="${selectedfile}"/>
+			<replacefilter token="@Colour@" value="${colour}"/>
+			<replacefilter token="@Boolean@" value="${truefalseprop}"/>
+		</replace>
+	</target>
+
+	<target name="tgdoc" depends="">
+		<echo message="Installing documentation files"/>
+		<mkdir dir="${installDir}/doc"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/doc">
+			<patternset>
+					<include name="doc/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+	<target name="tgsrc" depends="">
+		<echo message="Installing Source files"/>
+		<mkdir dir="${installDir}/src"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/src">
+			<patternset>
+					<include name="src/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/build/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/build/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/build/build.xml	(revision 14989)
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<!--
+
+This Ant script is used to package parts of the demo app to create an installer
+
+the nonextract target shows an example of creating a self extracting jar for the demo app
+
+run with ...
+
+ant -buildfile build-demo.xml
+
+-->
+<project name="Create Demo Installer for Release Notes Extension"  default="nonextract"  basedir=".">
+
+    <!-- Default location in installed tree -->
+    <property name="installDir" location="../../../.."/>
+
+    <path id="taskdef.cp">
+        <fileset dir="${installDir}/lib">
+			<include name="ant-installer-ext.jar"/>
+            <include name="ant-installer.jar"/>
+        </fileset>
+	</path>
+	
+	<taskdef
+			name="installer" 
+			classname="org.tp23.antinstaller.taskdefs.Installer"
+			classpathref="taskdef.cp"/>
+	<property name="demo.dir" value="${installDir}/demo"/>
+	
+
+
+	<target name="nonextract">
+		<mkdir dir="../artifacts/nonextract"/>
+		<!--unjar dest="./nonextract">
+			<fileset dir="installlib">
+				<include name="*.jar">
+				</include>
+			</fileset>
+		</unjar-->
+		<copy todir="../artifacts/nonextract" overwrite="true">
+			<fileset dir="${demo.dir}/installclasspath">
+				<include name="resources/*"/>
+			</fileset>
+		</copy>
+		<copy todir="../artifacts/nonextract" overwrite="true">
+			<fileset dir="../installer/">
+				<include name="build.xml"/>
+				<include name="antinstall-config.xml"/>
+				<include name="release-notes.txt"/>
+			</fileset>
+			<fileset dir="${demo.dir}/artifacts">
+				<include name="installpack.zip"/>
+			</fileset>
+		</copy>
+		<mkdir dir="../artifacts/nonextract/org/tp23/antinstaller/runtime/exe"/>
+		<copy todir="../artifacts/nonextract/org/tp23/antinstaller/runtime/exe" overwrite="true">
+			<fileset dir="../installer/">
+				<include name="nonextractor.fconfig"/>
+			</fileset>
+		</copy>
+		
+		
+		<echo message="Building DEMO NON-EXTRACT"/>
+		<installer file="../artifacts/releasenotes.jar" compress="true"
+				   extractType="NonExtractor"
+				   installConfig="../installer/antinstall-config.xml"
+				   buildFile="../installer/build.xml"
+				   antInstallLib="${installDir}/lib"
+				   antLib="${installDir}/antlib"
+				   validateConfig="true"
+				   failOnError="true"
+				   icons="bluecurve">
+				   <fileset dir="${demo.dir}" includes="installpack.zip"/>
+			<fileset dir="${demo.dir}/installclasspath">
+				<include name="resources/*"/>
+			</fileset>
+			<zipfileset src="${installDir}/lib/ant-installer-ext.jar"/>
+		</installer>
+		<jar  file="../artifacts/releasenotes.jar" compress="false" update="true">
+			<fileset dir="../artifacts/nonextract">
+				<include name="**/*"/>
+			</fileset>
+		</jar>
+
+		<!--jar  file="../artifacts/nonextractpack.jar" compress="false">
+			<manifest>
+				<attribute name="Manifest-Version" value="1.0"/>
+				<attribute name="Main-Class" value="org.tp23.antinstaller.selfextract.NonExtractor"/>
+			</manifest>
+			<zipfileset src="${installDir}/lib/ant-installer.jar"/>
+			<zipfileset src="${installDir}/lib/ant-installer-ext.jar"/>
+			<zipfileset src="${installDir}/antlib/ant.jar"/>
+			<zipfileset src="${installDir}/antlib/ant-launcher.jar"/>
+		</jar>
+		<jar  file="../artifacts/nonextractpack.jar" compress="false" update="true">
+			<fileset dir="../artifacts/nonextract">
+				<include name="**/*"/>
+			</fileset>
+		</jar-->
+	</target>
+
+
+<!-- N.B.
+this target does nothing in the deployed version
+and exists for preparing the files to deploy to sourceforge
+-->
+	<target name="sfbuild">
+		<zip  file="./installpack.zip">
+			<zipfileset dir=".">
+				<include name="bin/**/*"/>
+				<include name="classes/**/*"/>
+				<include name="config/**/*"/>
+				<include name="doc/**/*"/>
+				<include name="src/**/*"/>
+				<include name="README.txt"/>
+			</zipfileset>
+		</zip>
+	</target>
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,117 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd">
+
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="Demo Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/greens.png"
+			minJavaVersion="1.4">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the example installer program"
+			imageResource="/resources/greens.png">
+		<comment
+				displayText="This is a demo install"
+				title="true"/>
+		<comment
+				displayText="The application installed is yer typical Hello World"
+				bold="true"/>
+		<comment
+				displayText="There is not much more to be said really."/>
+	</page>
+	<!--  type="license" shows a license page to click through -->
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/resources/GPL.txt"
+			imageResource="/resources/rockstiles.png">
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options">
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="false"/>
+		<target
+			displayText="Documentation"
+			target="tgdoc"
+			defaultValue="true"/>
+	</page>
+	<!--  These are some other input types -->
+	<page
+			type="input"
+			name="other-input-types"
+			displayText="Pointless install options">
+		<text
+				property="myProperty"
+				defaultValue="blah blah"
+				displayText="Enter any text"/>
+		<checkbox
+				property="truefalseprop"
+				displayText="Make a boolean decision"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Choose the option"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<file
+				property="selectedfile"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\autoexec.bat"
+				displayText="Select a file"
+				checkExists="false"/>
+	</page>
+	<page
+			type="input"
+			name="release notes"
+			displayText="Release Notes">
+		<comment
+				displayText="After Install Show Release Notes"
+				title="false"/>
+		<checkbox
+				property="show.release.notes"
+				displayText="Show release notes"
+				defaultValue="true"
+				force="false"/>
+	</page>
+	<!--  page type="progress" shows a progress page with the install button it is a requirement for the final page-->
+	<page type="progress" name="progress" displayText="Installation progress" showTargets="false"/>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/build.xml	(revision 14989)
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<!--
+
+This is the build.xml run by AntInstaller for the demo app
+
+It is a normal Ant build script, but remember that it is run in a similar
+way to running
+> ant -buildfile build.xml default,tgdoc,tgsrc
+
+this is targets selected in the selector page have dependencies those
+dependencies may be run once for each target selected
+e.g. if tgdoc had depends="default" and the installer passed
+default,tgdoc  ant would run default then default again then tgdoc
+
+To avoid this problem targets can be forced in the gui using the following
+input in the page to choose components to install
+		<input
+			type="target"
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+
+-->
+
+<project name="Installation Build"  default=""  basedir="${basedir}">
+
+	<property file="${basedir}/ant.install.properties"/>
+
+
+	<target name="default" depends="">
+	
+		<echo message="IF ANY OF THE FOLLOWING ARE MISSING THERE IS A PROBLEM"/>
+		
+		<echo message="(or you entered blank in an unvalidated field)"/>
+		<echo message="Installation Directory [${installDir}]"/>
+		<echo message="Entered Property [${myProperty}]"/>
+		<echo message="Checkbox Property [${truefalseprop}]"/>
+		<echo message="Colour selected [${colour}]"/>
+		<echo message="File [${selectedfile}]"/>
+		
+		<echo message="Installer JAR:${antinstaller.jar}"/>
+		<mkdir dir="${installDir}"/>
+		<mkdir dir="${installDir}/classes"/>
+		<mkdir dir="${installDir}/config"/>
+		<mkdir dir="${installDir}/lib"/>
+		<unjar src="${antinstaller.jar}" dest="${basedir}">
+			<patternset>
+					<include name="installpack.zip"/>
+			</patternset>
+		</unjar>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}">
+			<patternset>
+					<include name="**/*"/>
+					<exclude name="doc/*"/>
+					<exclude name="src/*"/>
+			</patternset>
+		</unzip>
+		<copy file="${installDir}/bin/run.sh"  tofile="${installDir}/run.sh"/>
+		<copy file="${installDir}/bin/run.cmd"  tofile="${installDir}/run.cmd"/>
+		<chmod file="${installDir}/run.sh" perm="774">
+		</chmod>
+		<replace file="${installDir}/config/example-config.xml">
+			<replacefilter token="@TextProperty@"   value="${myProperty}"/>
+			<replacefilter token="@SelectedFile@"     value="${selectedfile}"/>
+			<replacefilter token="@Colour@" value="${colour}"/>
+			<replacefilter token="@BooleanProperty@" value="${truefalseprop}"/>
+		</replace>
+		<replace file="${installDir}/config/demo.properties">
+			<replacefilter token="@TextProperty@"   value="${myProperty}"/>
+			<replacefilter token="@SelectedFile@"     value="${selectedfile}"/>
+			<replacefilter token="@Colour@" value="${colour}"/>
+			<replacefilter token="@BooleanProperty@" value="${truefalseprop}"/>
+		</replace>
+	</target>
+
+	<target name="tgdoc" depends="">
+		<echo message="Installing documentation files"/>
+		<mkdir dir="${installDir}/doc"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/doc">
+			<patternset>
+					<include name="doc/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+	<target name="tgsrc" depends="">
+		<echo message="Installing Source files"/>
+		<mkdir dir="${installDir}/src"/>
+		<unzip src="${basedir}/installpack.zip" dest="${installDir}/src">
+			<patternset>
+					<include name="src/*"/>
+			</patternset>
+		</unzip>
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/nonextractor.fconfig
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/nonextractor.fconfig	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/nonextractor.fconfig	(revision 14989)
@@ -0,0 +1,12 @@
+#
+# Default config for the NonExtractor
+#
+org.tp23.antinstaller.runtime.exe.CreateLoggerFilter
+org.tp23.antinstaller.runtime.exe.InputStreamLoadConfigFilter
+org.tp23.antinstaller.runtime.exe.CreateUIFilter
+org.tp23.antinstaller.runtime.exe.PropertyLoaderFilter
+org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter
+org.tp23.antinstaller.runtime.exe.PropertyPrinterFilter
+org.tp23.antinstaller.runtime.exe.AntProjectFilter
+org.tp23.antinstaller.runtime.exe.ReleaseNotesFilter
+org.tp23.antinstaller.runtime.exe.FinalizerFilter
Index: /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/release-notes.txt
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/release-notes.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/releasenotes/installer/release-notes.txt	(revision 14989)
@@ -0,0 +1,10 @@
+Example release notes 
+
+
+random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text
+ 
+random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text 
+
+random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text 
+
+random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text random text 
Index: /release-kits/shared/ant-installer/examples/buildtypes/runall.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/runall.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/runall.cmd	(revision 14989)
@@ -0,0 +1,121 @@
+@echo off
+
+REM # This script checks all the congurations
+
+set DIR=%~dp0
+cd %DIR%
+
+echo using JAVA_HOME:%JAVA_HOME%
+
+cd ifProperty\installer
+echo ':::::::' checking ifProperty
+call .\install.cmd %1
+if not errorlevel = 0 echo "ifProperty failed"
+        
+
+cd ..\..\manytargets\artifacts
+echo ':::::::' checking manytargets
+%JAVA_HOME%\bin\java -jar *.jar %1
+if not errorlevel = 0 echo "manytargets failed"
+        
+
+cd ..\..\nonextract\artifacts
+echo ':::::::' checking nonextract
+%JAVA_HOME%\bin\java -jar *.jar %1
+if not errorlevel = 0 echo "nonextract failed"
+        
+
+cd ..\..\nonextract-auto\artifacts
+echo ':::::::' checking nonextract-auto
+%JAVA_HOME%\bin\java -jar *.jar %1
+if not errorlevel = 0 echo "nonextract-auto failed"
+        
+
+cd ..\..\nonextract-jdk1.5\artifacts
+echo ':::::::' checking nonextract-jdk1.5
+%JAVA_HOME%\bin\java -jar *.jar %1
+if not errorlevel = 0 echo "nonextract-jdk1.5 failed"
+        
+
+cd ..\..\nonextract-type\artifacts
+echo ':::::::' checking nonextract-type
+%JAVA_HOME%\bin\java -jar *.jar %1
+if not errorlevel = 0 echo "nonextract-type failed"
+        
+
+cd ..\..\releasenotes\artifacts
+echo ':::::::' checking releasenotes
+%JAVA_HOME%\bin\java -jar *.jar %1
+if not errorlevel = 0 echo "releasenotes failed"
+        
+
+cd ..\..\script\installer
+echo ':::::::' checking script
+call .\install.cmd %1
+if not errorlevel = 0 echo "script failed"
+        
+
+cd ..\..\script-auto\installer
+echo ':::::::' checking script-auto
+call .\install.cmd %1
+if not errorlevel = 0 echo "script-auto failed"
+        
+
+cd ..\..\script-graphical-pp\installer
+echo ':::::::' checking script-graphical-pp
+call .\install.cmd %1
+if not errorlevel = 0 echo "script-graphical-pp failed"
+        
+
+cd ..\..\script-laf\installer
+echo ':::::::' checking script-laf
+call .\install.cmd %1
+if not errorlevel = 0 echo "script-laf failed"
+        
+
+cd ..\..\script-lang\installer
+echo ':::::::' checking script-lang
+call .\install.cmd %1
+if not errorlevel = 0 echo "script-lang failed"
+        
+
+cd ..\..\script-no-xerces\installer
+echo ':::::::' checking script-no-xerces
+call .\install.cmd %1
+if not errorlevel = 0 echo "script-no-xerces failed"
+        
+
+cd ..\..\script-overflow\installer
+echo ':::::::' checking script-overflow
+call .\install.cmd %1
+if not errorlevel = 0 echo "script-overflow failed"
+        
+
+cd ..\..\script-regex\installer
+echo ':::::::' checking script-regex
+call .\install.cmd %1
+if not errorlevel = 0 echo "script-regex failed"
+        
+
+cd ..\..\script-type\installer
+echo ':::::::' checking script-type
+call .\install-type.cmd %1
+if not errorlevel = 0 echo "script-type failed"
+call .\install-type.cmd %1 -type alternative
+if not errorlevel = 0 echo "script-type failed"
+        
+
+cd ..\..\script-wide\installer
+echo ':::::::' checking script-wide
+call .\install.cmd %1
+if not errorlevel = 0 echo "script-wide failed"
+        
+
+cd ..\..\selfextract\artifacts
+echo ':::::::' checking selfextract
+%JAVA_HOME%\bin\java -jar *.jar %1
+if not errorlevel = 0 echo "selfextract failed"
+        
+
+cd ..\..
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/runall.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/runall.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/runall.sh	(revision 14989)
@@ -0,0 +1,91 @@
+#!/bin/sh
+########################################
+#
+# This script checks all the configurations
+#
+########################################
+
+# Get path
+if (echo "$0" | grep '/' >/dev/null)
+then
+	  # Called-by Prog name includes path
+	  dir=`dirname $0`   # Get filedir from call
+else
+	  dir=`pwd`
+fi
+
+# Ensure absolute path
+if (echo "$dir" | grep '^/' >/dev/null)
+then
+	  # Already an absolute path
+	  :
+else
+	  dir=`pwd`/$dir
+fi
+
+echo using JAVA_HOME:$JAVA_HOME
+
+for i in `echo *`
+do
+	cd ${dir}
+	EXAMPLE_INSTALLER_DIR=${dir}/${i}
+	if [ ! -d ${EXAMPLE_INSTALLER_DIR} ]
+	then
+		continue;
+	fi
+
+	cd ${EXAMPLE_INSTALLER_DIR} || { echo "Unable to change directory to ${EXAMPLE_INSTALLER_DIR}"; exit 10; }
+
+	echo "::::::: checking ${i}"
+
+	if [ -f installer/install.sh ]
+	then
+		cd installer || { echo "Unable to change directory to ${EXAMPLE_INSTALLER_DIR}/artifacts/installer"; exit 10; }
+	
+		./install.sh
+		STATUS=$?
+		if [ $STATUS != 0 ]
+		then
+			echo "${i} failed"
+			exit $STATUS
+		fi
+
+		if [ -f antinstall-config-alternative.xml ]
+		then
+			./install.sh -type alternative
+			STATUS=$?
+
+			if [ $STATUS != 0 ]
+			then
+				echo "${i} failed"
+				exit $STATUS
+			fi
+		fi
+	else
+		if [ -d artifacts ]
+		then
+			cd artifacts || { echo "Unable to change directory to ${EXAMPLE_INSTALLER_DIR}/artifacts"; exit 10; }
+			$JAVA_HOME/bin/java -jar *.jar
+			STATUS=$?
+			if [ $STATUS != 0 ]
+			then
+				echo "${i} failed"
+				exit $STATUS
+			fi
+
+			if [ -f ../installer/antinstall-config-alternative.xml ]
+			then
+				$JAVA_HOME/bin/java -jar *.jar -type alternative
+				STATUS=$?
+				if [ $STATUS != 0 ]
+				then
+					echo "${i} failed"
+					exit $STATUS
+				fi
+			fi
+		else
+			echo "Skipping ${i} as don't know how to run it"
+		fi
+	fi
+done
+exit $STATUS
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+#CLASSPATH=../../../../lib/xercesImpl.jar
+#CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,272 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd">
+
+<installer
+			ui="swing,text,swing-auto,text-auto"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build"
+			loadDefaults="prompt"
+			version="1.0">
+
+	<page
+			type="input"
+			name="intro.1"
+			displayText="Welcome to the new installer program"
+			imageResource="/resources/antbar.png"
+			overflow="true">
+		<comment
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				explanatoryText="Property references (e.g. OS=${java.os.name}) will be expanded in explanatoryText and display text"
+				displayText="Username ${java.user.name}"/>
+		<comment
+				explanatoryText="This is flowing explanatory text with references expanded (e.g. OS=${java.os.name}) and no space allocated in swing for the empty comment line. The bold flag will NOT be used since it relates to the displayText which is null"
+				bold="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+	</page>
+	<page
+			type="splash"
+			name="splash.2"
+			displayText="Example Splash Page"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-ai-splash.png"
+			altText="example text splash"/>
+
+	<page
+			type="license"
+			name="license.3"
+			displayText="License conditions"
+			resource="/resources/LICENSE-ant-install.txt"
+			usePaging="true"
+			imageResource="/resources/antbar.png">
+	</page>
+	<page
+			type="input"
+			name="properties.4"
+			displayText="Required install options">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				  property="installDir"
+				  defaultValue="/usr/local/demoapp"
+				  defaultValueWin="${env.ProgramFiles}\demoapp"
+				  displayText="Select an installation directory"
+				  create="true"
+				  checkExists="true"/>
+		<directory
+				  property="dataDir"
+				  defaultValue=""
+				  defaultValueWin=""
+				  displayText="Select a directory(if you want)"
+				  create="false"
+				  checkExists="false"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+	</page>
+	<page
+			 type="text"
+			 name="intro.4a"
+			 displayText="HTML page"
+			 htmlResource="/resources/text.html"
+			 textResource="/resources/text.txt"
+			 overflow="true" />
+	<page
+			type="input"
+			name="selector.5"
+			displayText="Select components to install"
+			imageResource="/resources/antbar.png">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="core"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="true"
+			force="false"/>
+		<validated
+			property="validatedtext"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<text
+			property="unvalidatedtext"
+			displayText="Unvalidated User Name"
+			defaultValue="${java.user.name}"/>
+		<password
+			property="unsafepassword"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<large-select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</large-select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="Language of Love.6"
+			displayText="Language of Love">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American.7"
+			displayText="Hey Yankiee">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			ifTarget="tgsrc"
+			type="input"
+			name="properties.8"
+			displayText="Required if Source code selected">
+		<text property="myProperty2" defaultValue="tiddly poop" displayText="Enter a value"/>
+		<select
+				property="colour2"
+				defaultValue="#FF0000"
+				displayText="colour2"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<text property="myProperty3" defaultValue="blah blah" displayText="Enter a value"/>
+		<date property="date.property" dateFormat="dd-MM-yy mm:ss" defaultValue="TODAY" displayText="Enter a date"/>
+		<!-- example disabled since you might not have tomcat installed -->
+		<!--app-root
+				property="tomcat.root"
+				defaultValue="/var"
+				displayText="Select the tomcat root"
+				checkFile1="conf/tomcat-users.xml"
+				checkFile2="conf/server.xml"
+				checkDir1="webapps"
+				checkDir2="conf">
+		</app-root-->
+	</page>
+	<page
+			type="input"
+			name="contrib.9"
+			displayText="Contributions">
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="input"
+			name="envcond.10"
+			displayText="Environment Conditional"
+			imageResource="/resources/makewavesdawn.png"
+			ifProperty="${env.DISPLAY}=:0.0">
+			<comment
+				displayText="This page only shows if DISPLAY=:0.0"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.11"
+			displayText="Blue Conditional"
+			ifProperty="${colourtarget}=#0000FF">
+			<comment
+				displayText="original syntax"
+				bold="false"/>
+			<comment
+				displayText="colourtarget is Blue"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.12"
+			displayText="Red Conditional"
+			ifProperty="${colourtarget}=#FF0000">
+			<comment
+				displayText="preferred syntax"
+				bold="false"/>
+			<comment
+				displayText="This page only shows if colourtarget is RED"
+				bold="false"/>
+	</page>
+	<page
+			type="progress"
+			name="progress.13"
+			displayText="Installation progress"
+			showTargets="true"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/build.xml	(revision 14989)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="core" depends="">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/LICENSE-ant-install.txt
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/LICENSE-ant-install.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/LICENSE-ant-install.txt	(revision 14989)
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/style.css
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/style.css	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/style.css	(revision 14989)
@@ -0,0 +1,14 @@
+body {
+  font-family: Arial, Helvetica, sans-serif;
+  font-size: 12px; 
+background: #FFFFFF; 
+margin-top: 5px; 
+margin-right: 5px; 
+margin-bottom: 5px; 
+margin-left: 5px; 
+border-top-width: 10px; 
+border-right-width: 10px; 
+border-bottom-width: 10px; 
+border-left-width: 10px;
+font-weight: bold;
+}
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/text.html
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/text.html	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/text.html	(revision 14989)
@@ -0,0 +1,43 @@
+<html>
+<!-- N.B. Java's version of HTML is not what you might expect! -->
+  <head>
+    <title>is this shown</title>
+		<link rel="stylesheet" href="/resources/style.css">
+  </head>
+  <body padding="0px" margin="4px" style="background:#880000;padding:0px;margin:0px"><div style="padding:3px;">
+<table border="0" width="100%" cellpadding="5px" style="background:#880000;color:#ffffff;padding-bottom:0px">
+	<tr>
+		<td><img src="/resources/rayo.png">&nbsp;&nbsp;&nbsp;<font size="+1"><b>User properties</b></font></td>
+	</tr>
+</table>
+<table border="0px" width="100%"  style="background:#bb3333;color:#ffffff" cellpadding="1px">
+	<tr>
+		<td>Current username</td>
+		<td>${java.user.name}</td>
+	</tr>
+	<tr>
+		<td>Detected OS</td>
+		<td>${java.os.name}</td>
+	</tr>
+	<tr>
+		<td>selected colour</td>
+		<td style="background:#ffffff;color:${colour}">[${colour}]</td>
+	</tr>
+	<tr>
+		<td>Install dir</td>
+		<td>${installDir}</td>
+	</tr>
+</table>
+<div style="background:#880000;color:#ffffff">&nbsp;</div>
+<div style="background:#991111;color:#ffffff">&nbsp;</div>
+<div style="background:#aa2222;color:#ffffff">&nbsp;</div>
+<div style="background:#bb3333;color:#ffffff">&nbsp;</div>
+<div style="background:#bb3333;color:#ffffff">
+<br>
+<br>
+<br><img src="/resources/AntInstaller-text-logo.png">
+	http://antinstaller.sf.net
+
+</div>
+</div></body>
+</html>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/text.txt
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/text.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/cp/resources/text.txt	(revision 14989)
@@ -0,0 +1,45 @@
+This is a text alternative to the HTML page with some properties
+
+username:${java.user.name}
+
+OS      :${java.os.name}
+
+Install dir:${installDir}
+
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+v
+lorum ipsum
+lorum ipsum
+v
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
+lorum ipsum
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/install.cmd	(revision 14989)
@@ -0,0 +1,63 @@
+@echo off
+REM #!/bin/sh
+
+REM # This install script runs the installer in the development directory
+REM # To create you own installers it is best to copy the structure
+REM # and scripts in the ./demo directoy
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+REM # Metouia (default) Look And Feel
+REM set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\metouia.jar
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+
+REM ### add other ant jars required here
+set CLASSPATH=%CLASSPATH%;cp
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-auto/installer/install.sh	(revision 14989)
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+#CLASSPATH=../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../../../classes
+# Metouia (default) Look And Feel
+# CLASSPATH=$CLASSPATH:./lib/metouia.jar
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+
+# minimal AntInstaller requirements
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+### add other ant jars required here
+CLASSPATH=$CLASSPATH:./cp
+
+COMMAND=$JAVA_HOME/bin/java
+
+echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+
+<!-- defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources no the classpath -->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="greymetal"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="selector"
+			displayText="Select components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+					 displayText="Source code"
+					 target="tgsrc"
+					 defaultValue="true"
+					 force="false"/>
+		<target
+					 displayText="binary code"
+					 target="tgbin"
+					 defaultValue="true"
+					 force="false"/>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			type="input"
+			name="contrib"
+			displayText="Contributions">
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="true"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/build.xml	(revision 14989)
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="tgsrc">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="Source Sub Target">
+			<echo message="Installing Source files"/>
+			<sleep seconds="1"/>
+		</target>
+		<target name="tgbin" depends="">
+			<echo message="Installing Source files"/>
+			<sleep seconds="5"/>
+		</target>
+		<target name="cleanuptarget" depends="excessdep1,excessdep2,excessdep3,excessdep4,excessdep5,excessdep6,excessdep7,excessdep8">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+			<sleep seconds="1"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+			<sleep seconds="1"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+			<sleep seconds="1"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+			<sleep seconds="1"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+			<sleep seconds="1"/>
+		</target>
+	<target name="tgt1" depends="dep1,dep2">
+		<echo message="TARGET ONE selected"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="tgt3" depends="dep1,dep2">
+		<echo message="TARGET THREE selected"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="dep1" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="dep2" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="Source Sub Target" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="excessdep1" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="excessdep2" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="excessdep3" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="excessdep4" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="excessdep5" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="excessdep6" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="excessdep7" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+	<target name="excessdep8" depends="">
+		<echo message="Dependency found"/>
+			<sleep seconds="1"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/install.cmd	(revision 14989)
@@ -0,0 +1,64 @@
+@echo off
+REM #!/bin/sh
+
+REM # This install script runs the installer in the development directory
+REM # To create you own installers it is best to copy the structure
+REM # and scripts in the ./demo directoy
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+REM # Metouia (default) Look And Feel
+REM set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\metouia.jar
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+
+REM ### add other ant jars required here
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-graphical-pp/installer/install.sh	(revision 14989)
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../../../src
+# Metouia (default) Look And Feel
+# CLASSPATH=$CLASSPATH:./lib/metouia.jar
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-laf/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-laf/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-laf/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-laf/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-laf/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-laf/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+<!--
+
+This is an example installer from which you can start a project
+Edit this file to select the properties you want decided, at the end
+of the installation screen the properties will be available in a file
+in the current directory for your ant script
+
+
+lookAndFeel="com.jgoodies.plaf.windows.ExtWindowsLookAndFeel"  - not recommended since it is not linux compatible due to Micro$oft License restrictions
+
+lookAndFeel="net.sourceforge.mlf.metouia.MetouiaLookAndFeel"  - good, and cross platform
+lookAndFeel="com.jgoodies.plaf.plastic.Plastic3DLookAndFeel"  - good, and cross platform
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"  - good, and cross platform
+lookAndFeel="com.jgoodies.plaf.plastic.PlasticLookAndFeel" - good but flat, and cross platform
+lookAndFeel="jgoodies" - org.tp23.plaf.plastic.PlasticXPLookAndFeel
+lookAndFeel="greymetal" - Monochome metal LAF
+lookAndFeel="null" - do not call UIManager.setLookAndFeel
+lookAndFeel="native" - call UIManager.getSystemLookAndFeelClassName
+
+-->
+
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="greymetal"
+			antialiased="false"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the new installer program"
+			imageResource="/resources/antbar.png">
+		<comment
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				explanatoryText="This is a multi line comment with some random text that is just here to take up space and test out the overflowing text feature inside a comment."
+				displayText="This is just a comment"/>
+	</page>
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true"
+			imageResource="/resources/antbar.png">
+	</page>
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options"
+			overflow="true">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				explanatoryText="This is a multi line comment with some random text that is just here to take up space and test out the overflowing text feature inside a normal input type."
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<validated
+			property="validatedtext"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<password
+			property="unsafepassword"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<large-select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</large-select>
+		<date property="date.property" dateFormat="dd-MM-yy mm:ss" defaultValue="TODAY" displayText="Enter a date"/>
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			imageResource="/resources/antbar.png"
+			showTargets="true"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/build.xml	(revision 14989)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/install.cmd	(revision 14989)
@@ -0,0 +1,64 @@
+@echo off
+REM #!/bin/sh
+
+REM # This install script runs the installer in the development directory
+REM # To create you own installers it is best to copy the structure
+REM # and scripts in the ./demo directoy
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+REM # Metouia (default) Look And Feel
+REM set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\metouia.jar
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+
+REM ### add other ant jars required here
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-laf/installer/install.sh	(revision 14989)
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../../../src
+# Metouia (default) Look And Feel
+# CLASSPATH=$CLASSPATH:./lib/metouia.jar
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-lang/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-lang/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-lang/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-lang/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-lang/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-lang/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,248 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+<!-- defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources no the classpath -->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the new installer program">
+		<comment
+				name="title.comment"
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				name="bold.comment"
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				name="first.comment"
+				displayText="This is just a comment"/>
+	</page>
+	<page
+			type="splash"
+			name="splash"
+			displayText="Example Splash Page"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-ai-splash.png"
+			altText="example text splash"/>
+
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Required install options">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Select components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="true"
+			force="false"/>
+		<validated
+			property="validatedtext"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<text
+			property="unvalidatedtext"
+			displayText="Unvalidated User Name"
+			defaultValue="${java.user.name}"/>
+		<password
+			property="unsafepassword"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<large-select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</large-select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="Language of Love"
+			displayText="Language of Love">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			ifTarget="tgsrc"
+			type="input"
+			name="properties.2"
+			displayText="Required if Source code selected">
+		<text property="myProperty2" defaultValue="tiddly poop" displayText="Enter a value"/>
+		<select
+				property="colour2"
+				defaultValue="#FF0000"
+				displayText="colour2"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<text property="myProperty3" defaultValue="blah blah" displayText="Enter a value"/>
+		<date property="date.property" dateFormat="dd-MM-yy mm:ss" defaultValue="TODAY" displayText="Enter a date"/>
+		<!-- example disabled since you might not have tomcat installed -->
+		<!--app-root
+				property="tomcat.root"
+				defaultValue="/var"
+				displayText="Select the tomcat root"
+				checkFile1="conf/tomcat-users.xml"
+				checkFile2="conf/server.xml"
+				checkDir1="webapps"
+				checkDir2="conf">
+		</app-root-->
+	</page>
+	<page
+			type="input"
+			name="contrib"
+			displayText="Contributions">
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="input"
+			name="envcond"
+			displayText="Environment Conditional"
+			ifProperty="${env.DISPLAY}=:0.0">
+			<comment
+				displayText="This page only shows if DISPLAY=:0.0"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.1"
+			displayText="Blue Conditional"
+			ifProperty="${colourtarget}=#0000FF">
+			<comment
+				displayText="original syntax not permitted"
+				bold="false"/>
+			<comment
+				displayText="colourtarget is Blue"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.2"
+			displayText="Red Conditional"
+			ifProperty="${colourtarget}=#FF0000">
+			<comment
+				displayText="preferred syntax"
+				bold="false"/>
+			<comment
+				displayText="This page only shows if colourtarget is RED"
+				bold="false"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="true"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/build.xml	(revision 14989)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/cp/resources/LanguagePack.properties
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/cp/resources/LanguagePack.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/cp/resources/LanguagePack.properties	(revision 14989)
@@ -0,0 +1,104 @@
+### Ant Installer - language pack auto generated on Thu Dec 07 03:09:48 CET 2006
+
+finishButtonText = Build
+
+
+## Text from Page:intro
+page.intro.displayText = Welcome to the new installer program
+title.comment.displayText = This is a title comment
+bold.comment.displayText = This is just a bold comment
+first.comment.displayText = This is just a comment
+
+## Text from Page:splash
+page.splash.displayText = Example Splash Page
+
+## Text from Page:license
+page.license.displayText = License conditions
+
+## Text from Page:properties
+page.properties.displayText = Required install options
+myProperty.displayText = Enter a value
+isvalue.displayText = Do you want to do this
+colour.displayText = Select your favorite colour
+colour.1.displayText = Red
+colour.2.displayText = Green
+colour.3.displayText = Blue
+installDir.displayText = Select an installation directory
+webxml.displayText = Select the web.xml file
+
+## Text from Page:selector
+page.selector.displayText = Select components to install
+comment.9.displayText = Choose the components you want to install
+default.displayText = Core components
+tgsrc.displayText = Source code
+validatedtext.displayText = Validated Text Input
+unvalidatedtext.displayText = Unvalidated User Name
+unsafepassword.displayText = Enter a password
+lang.displayText = Select your favorite language
+lang.1.displayText = Spanish
+lang.2.displayText = Catalan
+lang.3.displayText = English
+lang.4.displayText = French
+lang.5.displayText = Japanese
+lang.6.displayText = Persian
+lang.7.displayText = Urdu
+lang.8.displayText = Flemish
+lang.9.displayText = German
+lang.10.displayText = Greek
+lang.11.displayText = Turkish
+lang.12.displayText = Slav
+lang.13.displayText = Euskera
+lang.14.displayText = Welsh
+lang.15.displayText = Jamaican patoi
+lang.16.displayText = Mockney
+lang.17.displayText = Giberish
+lang.18.displayText = Love
+lang.19.displayText = Sign
+lang.20.displayText = Java
+lang.21.displayText = C++
+lang.22.displayText = American
+myOsSpecific.displayText = OS Specific target
+
+## Text from Page:Language of Love
+page.Language of Love.displayText = Language of Love
+comment.17.displayText = Aaaarrr, how sweet
+
+## Text from Page:American
+page.American.displayText = Hey Yankiee
+comment.18.displayText = It totaliser and initialise, with Ss you know, but never mind
+
+## Text from Page:properties
+page.properties.displayText = Required if Source code selected
+myProperty2.displayText = Enter a value
+colour2.displayText = colour2
+colour2.explanatoryText = This field can be used on any input field to render further descriptive text     This field can be used on any input field to render further descriptive text
+colour2.1.displayText = Red
+colour2.2.displayText = Green
+colour2.3.displayText = Blue
+myProperty3.displayText = Enter a value
+date.property.displayText = Enter a date
+
+## Text from Page:contrib
+page.contrib.displayText = Contributions
+colourtarget.displayText = Select a target
+colourtarget.explanatoryText = only one target available
+colourtarget.1.displayText = target-one
+colourtarget.2.displayText = target-two
+colourtarget.3.displayText = target-three
+
+## Text from Page:envcond
+page.envcond.displayText = Environment Conditional
+comment.24.displayText = This page only shows if DISPLAY\=\:0.0
+
+## Text from Page:propcond
+page.propcond.displayText = Blue Conditional
+comment.25.displayText = original syntax
+comment.26.displayText = colourtarget is Blue
+
+## Text from Page:propcond
+page.propcond.displayText = Red Conditional
+comment.27.displayText = preferred syntax
+comment.28.displayText = This page only shows if colourtarget is RED
+
+## Text from Page:progress
+page.progress.displayText = Installation progress
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/cp/resources/LanguagePack_es_EU.properties
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/cp/resources/LanguagePack_es_EU.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/cp/resources/LanguagePack_es_EU.properties	(revision 14989)
@@ -0,0 +1,85 @@
+### Ant Installer - language pack auto generated on Wed Dec 06 23:34:59 CET 2006
+finishButtonText = Euskera
+## Text from Page:intro
+page.intro.displayText = Euskera
+## Text from Page:license
+page.license.displayText = Licensia
+## Text from Page:properties
+page.properties.displayText = Required if Source code selected
+myProperty.displayText = Enter a value
+isvalue.displayText = Do you want to do this
+colour.displayText = Select your favorite colour
+colour.1.displayText = Red
+colour.2.displayText = Green
+colour.3.displayText = Blue
+installDir.displayText = Select an installation directory
+webxml.displayText = Select the web.xml file
+## Text from Page:selector
+page.selector.displayText = Select components to install
+comment.9.displayText = Choose the components you want to install
+default.displayText = Core components
+tgsrc.displayText = Source code
+validatedtext.displayText = Validated Text Input
+unvalidatedtext.displayText = Unvalidated User Name
+unsafepassword.displayText = Enter a password
+myProperty2.displayText = Enter a value
+colour2.displayText = colour2
+colour2.explanatoryText = This field can be used on any input field to render further descriptive text     This field can be used on any input field to render further descriptive text
+colour2.1.displayText = Red
+colour2.2.displayText = Green
+colour2.3.displayText = Blue
+myProperty3.displayText = Enter a value
+date.property.displayText = Enter a date
+## Text from Page:progress
+page.progress.displayText = Installation progress
+title.comment.displayText = Euskera
+bold.comment.displayText = Euskera
+first.comment.displayText = Euskera
+## Text from Page:splash
+page.splash.displayText = Example Splash Page
+lang.displayText = Select your favorite language
+lang.1.displayText = Spanish
+lang.2.displayText = Catalan
+lang.3.displayText = English
+lang.4.displayText = French
+lang.5.displayText = Japanese
+lang.6.displayText = Persian
+lang.7.displayText = Urdu
+lang.8.displayText = Flemish
+lang.9.displayText = German
+lang.10.displayText = Greek
+lang.11.displayText = Turkish
+lang.12.displayText = Slav
+lang.13.displayText = Euskera
+lang.14.displayText = Welsh
+lang.15.displayText = Jamaican patoi
+lang.16.displayText = Mockney
+lang.17.displayText = Giberish
+lang.18.displayText = Love
+lang.19.displayText = Sign
+lang.20.displayText = Java
+lang.21.displayText = C++
+lang.22.displayText = American
+myOsSpecific.displayText = OS Specific target
+## Text from Page:Language of Love
+page.Language = of Love.displayText \= Language of Love
+comment.17.displayText = Aaaarrr, how sweet
+## Text from Page:American
+page.American.displayText = Hey Yankiee
+comment.18.displayText = It totaliser and initialise, with Ss you know, but never mind
+## Text from Page:contrib
+page.contrib.displayText = Contributions
+colourtarget.displayText = Select a target
+colourtarget.explanatoryText = only one target available
+colourtarget.1.displayText = target-one
+colourtarget.2.displayText = target-two
+colourtarget.3.displayText = target-three
+## Text from Page:envcond
+page.envcond.displayText = Environment Conditional
+comment.24.displayText = This page only shows if DISPLAY\=\:0.0
+## Text from Page:propcond
+page.propcond.displayText = Red Conditional
+comment.25.displayText = original syntax
+comment.26.displayText = colourtarget is Blue
+comment.27.displayText = preferred syntax
+comment.28.displayText = This page only shows if colourtarget is RED
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/createLanguagePack.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/createLanguagePack.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/createLanguagePack.sh	(revision 14989)
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# This script creates properties files stubs from the antinstall-config.xml file
+#
+# it only works if attributes are placed on separate lines
+
+dir=`expr  match "$0" '\(.*\)createResourceStub.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+if [ "$ANT_INSTALL_HOME" == "" ] ; then 
+  export ANT_INSTALL_HOME=../../../..
+fi
+
+if [ ! -f $ANT_INSTALL_HOME/lib/ant-installer.jar ] ; then 
+  echo "set ANT_INSTALL_HOME"
+  exit 1;
+fi
+
+if [ "$JAVA_HOME" = "" ] ; then
+	echo set JAVA_HOME;
+	exit 1;
+fi
+
+
+CLASSPATH=$ANT_INSTALL_HOME/lib/xercesImpl.jar:$ANT_INSTALL_HOME/lib/xml-apis.jar:$ANT_INSTALL_HOME/lib/ant-installer.jar:$ANT_INSTALL_HOME/lib/ant-installer-ext.jar
+CLASSPATH=$CLASSPATH:$ANT_INSTALL_HOME/antlib/ant.jar:$ANT_INSTALL_HOME/antlib/ant-launcher.jar
+CLASSPATH=$CLASSPATH:$ANT_INSTALL_HOME/lib/jgoodies-edited-1_2_2.jar
+CLASSPATH=$CLASSPATH:./cp
+
+COMMAND=$JAVA_HOME/bin/java
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.util.CreateLanguagePack
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/install.cmd	(revision 14989)
@@ -0,0 +1,65 @@
+@echo off
+REM #!/bin/sh
+
+REM # This install script runs the installer in the development directory
+REM # To create you own installers it is best to copy the structure
+REM # and scripts in the ./demo directoy
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+REM # Metouia (default) Look And Feel
+REM set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\metouia.jar
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+set CLASSPATH=%CLASSPATH%;cp
+
+REM ### add other ant jars required here
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-lang/installer/install.sh	(revision 14989)
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../../../src
+# Metouia (default) Look And Feel
+# CLASSPATH=$CLASSPATH:./lib/metouia.jar
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+CLASSPATH=$CLASSPATH:cp
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+echo Set Local to Euskera  "y" or "n"
+read EUSKERA
+if [ "$EUSKERA" == "y" ] ; then
+  JVM_PARAMS="-Duser.language=es -Duser.region=EU"
+else
+  echo Set Local to Spanish  "y" or "n"
+  read SPANISH
+  if [ "$SPANISH" == "y" ] ; then
+    JVM_PARAMS="-Duser.language=es -Duser.region=ES"
+  fi
+fi
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND $JVM_PARAMS -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+#CLASSPATH=../../../../lib/xercesImpl.jar
+#CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,248 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="false"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the new installer program"
+			imageResource="/resources/antbar.png">
+		<comment
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				displayText="This is just a comment"/>
+	</page>
+	<page
+			type="splash"
+			name="splash"
+			displayText="Example Splash Page"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-splash.png"
+			altText="example text splash"/>
+
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true"
+			imageResource="/resources/antbar.png">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Required install options">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Select components to install"
+			imageResource="/resources/antbar.png">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="true"
+			force="false"/>
+		<validated
+			property="validatedtext"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<text
+			property="unvalidatedtext"
+			displayText="Unvalidated User Name"
+			defaultValue="${java.user.name}"/>
+		<password
+			property="unsafepassword"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<large-select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</large-select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="Language of Love"
+			displayText="Language of Love">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			ifTarget="tgsrc"
+			type="input"
+			name="properties.2"
+			displayText="Required if Source code selected">
+		<text property="myProperty2" defaultValue="tiddly poop" displayText="Enter a value"/>
+		<select
+				property="colour2"
+				defaultValue="#FF0000"
+				displayText="colour2"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<text property="myProperty3" defaultValue="blah blah" displayText="Enter a value"/>
+		<date property="date.property" dateFormat="dd-MM-yy mm:ss" defaultValue="TODAY" displayText="Enter a date"/>
+		<!-- example disabled since you might not have tomcat installed -->
+		<!--app-root
+				property="tomcat.root"
+				defaultValue="/var"
+				displayText="Select the tomcat root"
+				checkFile1="conf/tomcat-users.xml"
+				checkFile2="conf/server.xml"
+				checkDir1="webapps"
+				checkDir2="conf">
+		</app-root-->
+	</page>
+	<page
+			type="input"
+			name="contrib"
+			displayText="Contributions">
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="input"
+			name="envcond"
+			displayText="Environment Conditional"
+			imageResource="/resources/makewavesdawn.png"
+			ifProperty="${env.DISPLAY}=:0.0">
+			<comment
+				displayText="This page only shows if DISPLAY=:0.0"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.1"
+			displayText="Blue Conditional"
+			ifProperty="${colourtarget}=#0000FF">
+			<comment
+				displayText="original syntax not permitted"
+				bold="false"/>
+			<comment
+				displayText="colourtarget is Blue"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.2"
+			displayText="Red Conditional"
+			ifProperty="${colourtarget}=#FF0000">
+			<comment
+				displayText="preferred syntax"
+				bold="false"/>
+			<comment
+				displayText="This page only shows if colourtarget is RED"
+				bold="false"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="false"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/build.xml	(revision 14989)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/install.cmd	(revision 14989)
@@ -0,0 +1,60 @@
+@echo off
+REM #!/bin/sh
+
+REM # This install script runs the installer in the development directory
+REM # To create you own installers it is best to copy the structure
+REM # and scripts in the ./demo directoy
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+
+REM ### add other ant jars required here
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-no-xerces/installer/install.sh	(revision 14989)
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,325 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="false"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/makewavesdawn.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="intro"
+			displayText="Overflow=&quot;true&quot; test"
+			imageResource="/resources/rockstiles.png"
+			overflow="true">
+		<comment
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				displayText="This is just a comment"/>
+		<comment
+				explanatoryText="This is aload of text that has tabs	in	it
+and should eventually overflow the page.
+so here is some more waffle and perhaps it is time to download lorum ipsum eh!!
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exercitation ulliam corper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem veleum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel willum lunombro dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. 
+Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc., li tot Europa usa li sam vocabularium. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilitÃ¡ de un nov lingua franca: on refusa continuar payar custosi traductores. It solmen va esser necessi far uniform grammatica, pronunciation e plu sommun paroles. 
+Ma quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues. Li nov lingua franca va esser plu simplic e regulari quam li existent Europan lingues. It va esser tam simplic quam Occidental: in fact, it va esser Occidental. A un Angleso it va semblar un simplificat Angles, quam un skeptic Cambridge amico dit me que Occidental es. "
+				displayText=""/>
+	</page>
+	<page
+			type="splash"
+			name="splash"
+			displayText="Splash Pages dont support overflow"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-splash.png"
+			altText="example text splash"/>
+
+	<page
+			type="license"
+			name="license"
+			displayText="License don't need overflow"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true"
+			imageResource="/resources/antbar.png">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Some pages can be normal">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Overflow page"
+			imageResource="/resources/antbar.png"
+			overflow="true">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="true"
+			force="false"/>
+		<validated
+			property="validatedtext"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<text
+			property="unvalidatedtext"
+			displayText="Unvalidated User Name"
+			defaultValue="${java.user.name}"/>
+		<password
+			property="unsafepassword"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language"
+				explanatoryText="a large-select would work here too">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector2"
+			displayText="What a mess without it!!!"
+			imageResource="/resources/antbar.png">
+		<comment
+			displayText="Choose the components you want to install"
+			bold="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc.notused"
+			defaultValue="false"
+			force="false"/>
+		<validated
+			property="validatedtext.notused"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<text
+			property="unvalidatedtext.notused"
+			displayText="Unvalidated User Name"
+			defaultValue="${java.user.name}"/>
+		<password
+				 property="unsafepassword.notused"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<select
+				property="lang.notused"
+				defaultValue="uk"
+				displayText="Select your favorite language"
+				explanatoryText="a large-select would work here too">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific.notused"
+			defaultValue="false"
+			force="false"/>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="Language of Love"
+			displayText="Language of Love">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			ifTarget="tgsrc"
+			type="input"
+			name="properties.2"
+			displayText="Required if Source code selected">
+		<text property="myProperty2" defaultValue="tiddly poop" displayText="Enter a value"/>
+		<select
+				property="colour2"
+				defaultValue="#FF0000"
+				displayText="colour2"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<text property="myProperty3" defaultValue="blah blah" displayText="Enter a value"/>
+		<date property="date.property" dateFormat="dd-MM-yy mm:ss" defaultValue="TODAY" displayText="Enter a date"/>
+		<!-- example disabled since you might not have tomcat installed -->
+		<!--app-root
+				property="tomcat.root"
+				defaultValue="/var"
+				displayText="Select the tomcat root"
+				checkFile1="conf/tomcat-users.xml"
+				checkFile2="conf/server.xml"
+				checkDir1="webapps"
+				checkDir2="conf">
+		</app-root-->
+	</page>
+	<page
+			type="input"
+			name="contrib"
+			displayText="Overflow but no effect here"
+			overflow="true">
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="input"
+			name="envcond"
+			displayText="Environment Conditional"
+			imageResource="/resources/antbar.png"
+			ifProperty="${env.DISPLAY}=:0.0">
+			<comment
+				displayText="This page only shows if DISPLAY=:0.0"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.1"
+			displayText="Blue Conditional"
+			imageResource="/resources/makewavesdawn.png"
+			ifProperty="${colourtarget}=#0000FF">
+			<comment
+				displayText="original syntax"
+				bold="false"/>
+			<comment
+				displayText="colourtarget is Blue"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.2"
+			displayText="Red Conditional"
+			imageResource="/resources/antbar.png"
+			ifProperty="${colourtarget}=#FF0000">
+			<comment
+				displayText="preferred syntax"
+				bold="false"/>
+			<comment
+				displayText="This page only shows if colourtarget is RED"
+				bold="false"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Progress does not need overflow"
+			imageResource="/resources/antbar.png"
+			showTargets="false"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/build.xml	(revision 14989)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/install.cmd	(revision 14989)
@@ -0,0 +1,58 @@
+@echo off
+REM #!/bin/sh
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+
+REM ### add other ant jars required here
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-overflow/installer/install.sh	(revision 14989)
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../..
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,145 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+
+<installer
+			ui="swing,text,swing-auto,text-auto"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/makewavesdawn.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build"
+			loadDefaults="prompt"
+			version="1.0">
+	<page
+			type="input"
+			name="intro"
+			displayText="Overflow=&quot;true&quot; test"
+			imageResource="/resources/rockstiles.png"
+			overflow="true"
+			postDisplayTarget="antinstaller-intro">
+		<comment
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				displayText="This is just a comment"/>
+		<comment
+				explanatoryText="This is aload of text that has tabs	in	it
+and should eventually overflow the page.
+so here is some more waffle and perhaps it is time to download lorum ipsum eh!!
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exercitation ulliam corper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem veleum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel willum lunombro dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. 
+Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc., li tot Europa usa li sam vocabularium. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilitÃ¡ de un nov lingua franca: on refusa continuar payar custosi traductores. It solmen va esser necessi far uniform grammatica, pronunciation e plu sommun paroles. 
+Ma quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues. Li nov lingua franca va esser plu simplic e regulari quam li existent Europan lingues. It va esser tam simplic quam Occidental: in fact, it va esser Occidental. A un Angleso it va semblar un simplificat Angles, quam un skeptic Cambridge amico dit me que Occidental es. "
+				displayText=""/>
+	</page>
+	<page
+			type="splash"
+			name="splash"
+			displayText="Splash Pages dont support overflow"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-splash.png"
+			altText="example text splash"
+			postDisplayTarget="antinstaller-splash"/>
+
+	<page
+			type="license"
+			name="license"
+			displayText="License don't need overflow"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true"
+			imageResource="/resources/antbar.png"
+			postDisplayTarget="antinstaller-license">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Some pages can be normal"
+			postDisplayTarget="antinstaller-properties.1">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<text property="myPropertyDefault" defaultValue="${myPropertyDefault}" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Overflow page"
+			imageResource="/resources/antbar.png"
+			overflow="true">
+		<select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language"
+				explanatoryText="a large-select would work here too">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love"    value="lv"/>
+			<option text="American" value="us"/>
+		</select>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="LanguageLove"
+			displayText="Language of Love"
+			postDisplayTarget="antinstaller-LanguageLove">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee"
+			postDisplayTarget="antinstaller-American">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Progress dont need a past"
+			imageResource="/resources/antbar.png"
+			showTargets="false"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/build.xml	(revision 14989)
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!--
+
+Understand the difference between the antinstaller- targets and the
+normal targets like "cleanuptarget"
+
+you CAN NOT CALL antinstaller-message in normal targets since
+the Task is not defined, even if you do define it the tasks will not
+work since they are wired to the installer at runtime with a custom
+Project reference.
+
+
+-->
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+	<target name="antinstaller-intro" depends="">
+		<antinstaller-message message="yo yo yo!"/>
+		<echo message="This message will not show up"/>
+		<!-- reset a hardcoded default value that will NOT change -->
+		<antinstaller-property name="myProperty" value="Should not appear"/>
+		<!-- reset a property value that will change -->
+		<antinstaller-property name="myPropertyDefault" value="Changed by post target"/>
+		<antinstaller-log message="basedir = ${basedir}"/>
+	</target>
+	<target name="antinstaller-splash" depends="">
+		<antinstaller-message message="Splosh!!"/>
+	</target>
+	<target name="antinstaller-license" depends="">
+		<antinstaller-message message="You didn't read that did you"/>
+	</target>
+	<target name="antinstaller-properties.1" depends="">
+		<antinstaller-message message="You just pressed next to that too (guess?)"/>
+	</target>
+	<target name="antinstaller-LanguageLove" depends="">
+		<antinstaller-message message="Cheesy!"/>
+	</target>
+	<target name="antinstaller-American" depends="">
+		<antinstaller-message message="Sorry that was rude"/>
+	</target>
+	
+	<target name="cleanuptarget" depends="" >
+		<!-- N.B. antinstaller-message is NOT going to work -->
+		<echo message="yo yo yo!"/>
+	</target>
+	
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/install.cmd	(revision 14989)
@@ -0,0 +1,62 @@
+@echo off
+REM #!/bin/sh
+
+REM # This install script runs the installer in the development directory
+REM # To create you own installers it is best to copy the structure
+REM # and scripts in the ./demo directoy
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+
+REM ### add other ant jars required here
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display-auto/installer/install.sh	(revision 14989)
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+# use the compiled classes directory
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/makewavesdawn.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="intro"
+			displayText="Overflow=&quot;true&quot; test"
+			imageResource="/resources/rockstiles.png"
+			overflow="true"
+			postDisplayTarget="antinstaller-intro">
+		<comment
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				displayText="This is just a comment"/>
+		<comment
+				explanatoryText="This is aload of text that has tabs	in	it
+and should eventually overflow the page.
+so here is some more waffle and perhaps it is time to download lorum ipsum eh!!
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exercitation ulliam corper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem veleum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel willum lunombro dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. 
+Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc., li tot Europa usa li sam vocabularium. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilitÃ¡ de un nov lingua franca: on refusa continuar payar custosi traductores. It solmen va esser necessi far uniform grammatica, pronunciation e plu sommun paroles. 
+Ma quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues. Li nov lingua franca va esser plu simplic e regulari quam li existent Europan lingues. It va esser tam simplic quam Occidental: in fact, it va esser Occidental. A un Angleso it va semblar un simplificat Angles, quam un skeptic Cambridge amico dit me que Occidental es. "
+				displayText=""/>
+	</page>
+	<page
+			type="splash"
+			name="splash"
+			displayText="Splash Pages dont support overflow"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-ai-splash.png"
+			altText="example text splash"
+			postDisplayTarget="antinstaller-splash"/>
+
+	<page
+			type="license"
+			name="license"
+			displayText="License don't need overflow"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true"
+			imageResource="/resources/antbar.png"
+			postDisplayTarget="antinstaller-license">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Some pages can be normal"
+			postDisplayTarget="antinstaller-properties.1">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<text property="myPropertyDefault" defaultValue="${myPropertyDefault}" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+		<comment
+			displayText="from my.props = ${loaded.prop1}" 
+			explanatoryText="this gets expanded too = ${loaded.prop1}"
+			bold="true"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Overflow page"
+			imageResource="/resources/antbar.png"
+			overflow="true">
+		<select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language"
+				explanatoryText="a large-select would work here too">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love"    value="lv"/>
+			<option text="American" value="us"/>
+		</select>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="LanguageLove"
+			displayText="Language of Love"
+			postDisplayTarget="antinstaller-LanguageLove">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee"
+			postDisplayTarget="antinstaller-American">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Progress dont need a past"
+			imageResource="/resources/antbar.png"
+			showTargets="false"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/build.xml	(revision 14989)
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+
+Understand the difference between the antinstaller- targets and the
+normal targets like "cleanuptarget"
+
+you CAN NOT CALL antinstaller-message in normal targets since
+the Task is not defined, even if you do define it the tasks will not
+work since they are wired to the installer at runtime with a custom
+Project reference.
+
+
+-->
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+	<target name="antinstaller-intro" depends="">
+		<antinstaller-message message="yo yo yo!"/>
+		<echo message="This message will not show up"/>
+		<!-- reset a hardcoded default value that will NOT change -->
+		<antinstaller-property name="myProperty" value="yo yo yo!"/>
+		<!-- reset a property value that will change -->
+		<antinstaller-property name="myPropertyDefault" value="yo yo yo!"/>
+		<antinstaller-property resource="/resources/my.props"/>
+		<antinstaller-log message="basedir = ${basedir}"/>
+	</target>
+	<target name="antinstaller-splash" depends="">
+		<antinstaller-message message="Splosh!!"/>
+	</target>
+	<target name="antinstaller-license" depends="">
+		<antinstaller-message message="You didn't read that did you"/>
+	</target>
+	<target name="antinstaller-properties.1" depends="">
+		<antinstaller-message message="You just pressed next to that too (guess?)"/>
+	</target>
+	<target name="antinstaller-LanguageLove" depends="">
+		<antinstaller-message message="Cheesy!"/>
+	</target>
+	<target name="antinstaller-American" depends="">
+		<antinstaller-message message="Sorry that was rude"/>
+	</target>
+	
+	<target name="cleanuptarget" depends="">
+		<!-- N.B. antinstaller-message is NOT going to work -->
+		<echo message="yo yo yo!"/>
+	</target>
+
+	
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/cp/resources/my.props
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/cp/resources/my.props	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/cp/resources/my.props	(revision 14989)
@@ -0,0 +1,1 @@
+loaded.prop1=hello.world
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/install.cmd	(revision 14989)
@@ -0,0 +1,50 @@
+@echo off
+REM #!/bin/sh
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+set CLASSPATH=%CLASSPATH%;cp
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-post-display/installer/install.sh	(revision 14989)
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../../../classes
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+
+CLASSPATH=$CLASSPATH:cp
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-regex/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-regex/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-regex/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-regex/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-regex/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-regex/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+<!--
+RegEx test script
+-->
+<!-- defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources no the classpath -->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="properties"
+			displayText="Regular expression test">
+		<text property="myProperty" defaultValue="blah blah" displayText="unvalidated"/>
+		<validated
+			property="validatedtext.1"
+			displayText="[a-z][a-z].*"
+			defaultValue="ab1"
+			regex="[a-z][a-z].*"/>
+		<validated
+				  property="validatedtext.2"
+				  displayText="[a-z][a-z]\..*"
+				  defaultValue="ab.1"
+				  regex="[a-z][a-z]\..*"/>
+		<validated
+			property="validatedtext.3"
+			displayText="Anything but not nothing"
+			defaultValue="anything"
+			regex=".+"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="false"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/build.xml	(revision 14989)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/install.cmd	(revision 14989)
@@ -0,0 +1,65 @@
+@echo off
+REM #!/bin/sh
+
+REM # This install script runs the installer in the development directory
+REM # To create you own installers it is best to copy the structure
+REM # and scripts in the ./demo directoy
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+REM # Metouia (default) Look And Feel
+REM set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\metouia.jar
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+set CLASSPATH=%CLASSPATH%;cp
+
+REM ### add other ant jars required here
+REM #CLASSPATH=%CLASSPATH%;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-regex/installer/install.sh	(revision 14989)
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../../../src
+# Metouia (default) Look And Feel
+# CLASSPATH=$CLASSPATH:./lib/metouia.jar
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+CLASSPATH=$CLASSPATH:cp
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/antinstall-config-alternative.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/antinstall-config-alternative.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/antinstall-config-alternative.xml	(revision 14989)
@@ -0,0 +1,261 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+<!-- defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources no the classpath -->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="intro"
+			displayText="Alternative installer">
+		<comment
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				displayText="This is just a comment"/>
+	</page>
+	<page
+			type="splash"
+			name="splash"
+			displayText="Alternative Splash Page"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-ai-splash.png"
+			altText="example text splash"/>
+
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Required install options">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Select components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="true"
+			force="false"/>
+		<validated
+			property="validatedtext"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<text
+			property="unvalidatedtext"
+			displayText="Unvalidated User Name"
+			defaultValue="${java.user.name}"/>
+		<password
+			property="unsafepassword"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<large-select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</large-select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="Language of Love"
+			displayText="Language of Love">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			ifTarget="tgsrc"
+			type="input"
+			name="properties.2"
+			displayText="Required if Source code selected">
+		<text property="myProperty2" defaultValue="tiddly poop" displayText="Enter a value"/>
+		<select
+				property="colour2"
+				defaultValue="#FF0000"
+				displayText="colour2"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<text property="myProperty3" defaultValue="blah blah" displayText="Enter a value"/>
+		<date property="date.property" dateFormat="dd-MM-yy mm:ss" defaultValue="TODAY" displayText="Enter a date"/>
+		<!-- example disabled since you might not have tomcat installed -->
+		<!--app-root
+				property="tomcat.root"
+				defaultValue="/var"
+				displayText="Select the tomcat root"
+				checkFile1="conf/tomcat-users.xml"
+				checkFile2="conf/server.xml"
+				checkDir1="webapps"
+				checkDir2="conf">
+		</app-root-->
+	</page>
+	<page
+			type="input"
+			name="contrib"
+			displayText="Contributions">
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="input"
+			name="envcond"
+			displayText="Environment Conditional"
+			ifProperty="${env.DISPLAY}=:0.0">
+			<comment
+				displayText="This page only shows if DISPLAY=:0.0"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.1"
+			displayText="Blue Conditional"
+			ifProperty="${colourtarget}=#0000FF">
+			<comment
+				displayText="original syntax"
+				bold="false"/>
+			<comment
+				displayText="colourtarget is Blue"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.2"
+			displayText="Red Conditional"
+			ifProperty="${colourtarget}=#FF0000">
+			<comment
+				displayText="preferred syntax"
+				bold="false"/>
+			<comment
+				displayText="This page only shows if colourtarget is RED"
+				bold="false"/>
+	</page>
+	<page
+			 type="input"
+			 name="Password confirm check"
+			 displayText="Confirm password check">
+		<password 
+			property="thePassword" 
+			defaultValue="1234" 
+			displayText="Enter a password"
+			regex=".+"/>
+		<password-confirm
+			origField="thePassword"
+			property="confirm.thePassword"
+			defaultValue="1234"
+			displayText="Confirm password"
+			regex=".+"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="true"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,261 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+<!-- defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources no the classpath -->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="intro"
+			displayText="Default installer">
+		<comment
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				displayText="This is just a comment"/>
+	</page>
+	<page
+			type="splash"
+			name="splash"
+			displayText="Example Splash Page"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-ai-splash.png"
+			altText="example text splash"/>
+
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Required install options">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Select components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="true"
+			force="false"/>
+		<validated
+			property="validatedtext"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<text
+			property="unvalidatedtext"
+			displayText="Unvalidated User Name"
+			defaultValue="${java.user.name}"/>
+		<password
+			property="unsafepassword"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<large-select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</large-select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="Language of Love"
+			displayText="Language of Love">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			ifTarget="tgsrc"
+			type="input"
+			name="properties.2"
+			displayText="Required if Source code selected">
+		<text property="myProperty2" defaultValue="tiddly poop" displayText="Enter a value"/>
+		<select
+				property="colour2"
+				defaultValue="#FF0000"
+				displayText="colour2"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<text property="myProperty3" defaultValue="blah blah" displayText="Enter a value"/>
+		<date property="date.property" dateFormat="dd-MM-yy mm:ss" defaultValue="TODAY" displayText="Enter a date"/>
+		<!-- example disabled since you might not have tomcat installed -->
+		<!--app-root
+				property="tomcat.root"
+				defaultValue="/var"
+				displayText="Select the tomcat root"
+				checkFile1="conf/tomcat-users.xml"
+				checkFile2="conf/server.xml"
+				checkDir1="webapps"
+				checkDir2="conf">
+		</app-root-->
+	</page>
+	<page
+			type="input"
+			name="contrib"
+			displayText="Contributions">
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="input"
+			name="envcond"
+			displayText="Environment Conditional"
+			ifProperty="${env.DISPLAY}=:0.0">
+			<comment
+				displayText="This page only shows if DISPLAY=:0.0"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.1"
+			displayText="Blue Conditional"
+			ifProperty="${colourtarget}=#0000FF">
+			<comment
+				displayText="original syntax"
+				bold="false"/>
+			<comment
+				displayText="colourtarget is Blue"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.2"
+			displayText="Red Conditional"
+			ifProperty="${colourtarget}=#FF0000">
+			<comment
+				displayText="preferred syntax"
+				bold="false"/>
+			<comment
+				displayText="This page only shows if colourtarget is RED"
+				bold="false"/>
+	</page>
+	<page
+			 type="input"
+			 name="Password confirm check"
+			 displayText="Confirm password check">
+		<password 
+			property="thePassword" 
+			defaultValue="1234" 
+			displayText="Enter a password"
+			regex=".+"/>
+		<password-confirm
+			origField="thePassword"
+			property="confirm.thePassword"
+			defaultValue="1234"
+			displayText="Confirm password"
+			regex=".+"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="true"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/build-alternative.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/build-alternative.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/build-alternative.xml	(revision 14989)
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+			<echo message="RUNNING ALTERNATIVE BUILD"/>
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/build.xml	(revision 14989)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install-type.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install-type.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install-type.cmd	(revision 14989)
@@ -0,0 +1,55 @@
+@echo off
+REM #!/bin/sh
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+if "%2" == "-type" set TYPE=-type %3
+if "%1" == "-type" set TYPE=-type %2
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+set CLASSPATH=%CLASSPATH%;cp
+
+REM ### add other ant jars required here
+REM #CLASSPATH=%CLASSPATH%;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% . %TYPE%
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install-type.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install-type.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install-type.sh	(revision 14989)
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# This script is NOT the same as the other install.sh scripts since
+# it handles the command line parameters differently
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../../../src
+# Metouia (default) Look And Feel
+# CLASSPATH=$CLASSPATH:./lib/metouia.jar
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+CLASSPATH=$CLASSPATH:cp
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+GUI=swing
+if [ "$1" == "text" ] ; then
+	GUI=text;
+	shift;
+fi
+
+if [ "$1" != "" ] ; then
+	if [ "$1" != "-type" ] ; then
+		echo 'Usage ./install-type.sh [text] [-type alternative]'
+	fi
+fi
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI . $1 $2 $3 $4 $5 $6 $7 $8 $9
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install.cmd	(revision 14989)
@@ -0,0 +1,56 @@
+@echo off
+REM #!/bin/sh
+
+REM NOT TESTED
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+if "%2" == "-type" set TYPE=-type %3
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+if "%2" == "-type" set TYPE=-type %3
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+set CLASSPATH=%CLASSPATH%;cp
+
+REM ### add other ant jars required here
+REM #CLASSPATH=%CLASSPATH%;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% . %TYPE%
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-type/installer/install.sh	(revision 14989)
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# This script is NOT the same as the other install.sh scripts since
+# it handles the command line parameters differently
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+CLASSPATH=$CLASSPATH:cp
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+GUI=swing
+if [ "$1" == "text" ] ; then
+	GUI=text;
+	shift;
+fi
+
+if [ "$1" != "" ] ; then
+	if [ "$1" != "-type" ] ; then
+		echo 'Usage ./install-type.sh [text] [-type alternative]'
+	fi
+fi
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI . $*
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-wide/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-wide/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-wide/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-wide/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-wide/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-wide/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,227 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd">
+
+
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="false"
+			lookAndFeel="greymetal"
+			antialiased="true"
+			wide="600:300"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/makewavesdawn.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="intro"
+			displayText="Overflow=&quot;true&quot; test"
+			overflow="true">
+		<comment
+				displayText="Wide test based on overflow"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				displayText="This is just a comment"/>
+		<comment
+				explanatoryText="This is aload of text that has tabs	in	it
+and should eventually overflow the page.
+so here is some more waffle and perhaps it is time to download lorum ipsum eh!!
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exercitation ulliam corper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem veleum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel willum lunombro dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. 
+Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc., li tot Europa usa li sam vocabularium. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilitÃ¡ de un nov lingua franca: on refusa continuar payar custosi traductores. It solmen va esser necessi far uniform grammatica, pronunciation e plu sommun paroles. 
+Ma quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues. Li nov lingua franca va esser plu simplic e regulari quam li existent Europan lingues. It va esser tam simplic quam Occidental: in fact, it va esser Occidental. A un Angleso it va semblar un simplificat Angles, quam un skeptic Cambridge amico dit me que Occidental es. "
+				displayText=""/>
+	</page>
+	<page
+			type="splash"
+			name="splash"
+			displayText="Splash Pages dont support overflow"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-splash.png"
+			altText="example text splash"/>
+
+	<page
+			type="license"
+			name="license"
+			displayText="License don't need overflow"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true"
+			imageResource="/resources/antbar.png">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Some pages can be normal">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Overflow page"
+			imageResource="/resources/antbar.png"
+			overflow="true">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="true"
+			force="false"/>
+		<validated
+			property="validatedtext"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<text
+			property="unvalidatedtext"
+			displayText="Unvalidated User Name"
+			defaultValue="${java.user.name}"/>
+		<password
+			property="unsafepassword"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language"
+				explanatoryText="a large-select would work here too">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="Language of Love"
+			displayText="Language of Love">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			ifTarget="tgsrc"
+			type="input"
+			name="properties.2"
+			displayText="Required if Source code selected">
+		<text property="myProperty2" defaultValue="tiddly poop" displayText="Enter a value"/>
+		<select
+				property="colour2"
+				defaultValue="#FF0000"
+				displayText="colour2"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<text property="myProperty3" defaultValue="blah blah" displayText="Enter a value"/>
+		<date property="date.property" dateFormat="dd-MM-yy mm:ss" defaultValue="TODAY" displayText="Enter a date"/>
+		<!-- example disabled since you might not have tomcat installed -->
+		<!--app-root
+				property="tomcat.root"
+				defaultValue="/var"
+				displayText="Select the tomcat root"
+				checkFile1="conf/tomcat-users.xml"
+				checkFile2="conf/server.xml"
+				checkDir1="webapps"
+				checkDir2="conf">
+		</app-root-->
+	</page>
+	<page
+			type="input"
+			name="contrib"
+			displayText="Overflow but no effect here"
+			overflow="true">
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Progress does not need overflow"
+			imageResource="/resources/antbar.png"
+			showTargets="false"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/build.xml	(revision 14989)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/install.cmd	(revision 14989)
@@ -0,0 +1,62 @@
+@echo off
+REM #!/bin/sh
+
+REM # This install script runs the installer in the development directory
+REM # To create you own installers it is best to copy the structure
+REM # and scripts in the ./demo directoy
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+
+REM ### add other ant jars required here
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script-wide/installer/install.sh	(revision 14989)
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+# This istall script runs the installer in the development directory
+# To create you own installers it is best to copy the structure
+# and scripts in the ./demo directoy
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/script/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/script/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,261 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+<!-- defaultImageResource,windowIcon,resource and imageResource load from the classpath
+the installer script should put the locations of these resources no the classpath -->
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			antialiased="true"
+			name="Test Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/antbar.png"
+			minJavaVersion="1.4"
+			finishButtonText="Build">
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the new installer program">
+		<comment
+				displayText="This is a title comment"
+				title="true"/>
+		<comment
+				displayText="This is just a bold comment"
+				bold="true"/>
+		<comment
+				displayText="This is just a comment"/>
+	</page>
+	<page
+			type="splash"
+			name="splash"
+			displayText="Example Splash Page"
+			imageResource="/resources/antbar.png"
+			splashResource="/resources/example-ai-splash.png"
+			altText="example text splash"/>
+
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/LICENSE-ant-install.txt"
+			usePaging="true">
+	</page>
+	<page
+			type="input"
+			name="properties.1"
+			displayText="Required install options">
+		<text property="myProperty" defaultValue="blah blah" displayText="Enter a value"/>
+		<checkbox
+				property="isvalue"
+				displayText="Do you want to do this"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Select your favorite colour">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"
+				checkExists="true"/>
+		<file
+				property="webxml"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\tomcat\webapps\default\WEB-INF\web.xml"
+				displayText="Select the web.xml file"
+				checkExists="false"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Select components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="true"
+			force="false"/>
+		<validated
+			property="validatedtext"
+			displayText="Validated Text Input"
+			defaultValue="23/10/2004"
+			regex="^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$"/>
+		<text
+			property="unvalidatedtext"
+			displayText="Unvalidated User Name"
+			defaultValue="${java.user.name}"/>
+		<password
+			property="unsafepassword"
+			displayText="Enter a password"
+			defaultValue="pa55word"
+			regex="[0-9a-zA-Z_]{8}"/>
+		<large-select
+				property="lang"
+				defaultValue="uk"
+				displayText="Select your favorite language">
+			<option text="Spanish" value="es"/>
+			<option text="Catalan" value="ca"/>
+			<option text="English" value="uk"/>
+			<option text="French" value="fr"/>
+			<option text="Japanese" value="jp"/>
+			<option text="Persian" value="pe"/>
+			<option text="Urdu" value="ur"/>
+			<option text="Flemish" value="fl"/>
+			<option text="German" value="de"/>
+			<option text="Greek" value="gk"/>
+			<option text="Turkish" value="tk"/>
+			<option text="Slav" value="sv"/>
+			<option text="Euskera" value="ek"/>
+			<option text="Welsh" value="we"/>
+			<option text="Jamaican patoi" value="ra"/>
+			<option text="Mockney" value="??"/>
+			<option text="Giberish" value="Â¿Â¿"/>
+			<option text="Love" value="lv"/>
+			<option text="Sign" value=":)"/>
+			<option text="Java" value="jv"/>
+			<option text="C++" value="++"/>
+			<option text="American" value="us"/>
+		</large-select>
+		<target
+			displayText="OS Specific target"
+			osSpecific="true"
+			target="myOsSpecific"
+			defaultValue="true"
+			force="false"/>
+	</page>
+	<page
+			ifProperty="${lang}=lv"
+			type="input"
+			name="Language of Love"
+			displayText="Language of Love">
+		<comment
+				displayText="Aaaarrr, how sweet"
+				bold="true"/>
+	</page>
+	<page
+			ifProperty="${lang}=us"
+			type="input"
+			name="American"
+			displayText="Hey Yankiee">
+		<comment
+				displayText="It totaliser and initialise, with Ss you know, but never mind"
+				bold="true"/>
+	</page>
+	<page
+			ifTarget="tgsrc"
+			type="input"
+			name="properties.2"
+			displayText="Required if Source code selected">
+		<text property="myProperty2" defaultValue="tiddly poop" displayText="Enter a value"/>
+		<select
+				property="colour2"
+				defaultValue="#FF0000"
+				displayText="colour2"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<text property="myProperty3" defaultValue="blah blah" displayText="Enter a value"/>
+		<date property="date.property" dateFormat="dd-MM-yy mm:ss" defaultValue="TODAY" displayText="Enter a date"/>
+		<!-- example disabled since you might not have tomcat installed -->
+		<!--app-root
+				property="tomcat.root"
+				defaultValue="/var"
+				displayText="Select the tomcat root"
+				checkFile1="conf/tomcat-users.xml"
+				checkFile2="conf/server.xml"
+				checkDir1="webapps"
+				checkDir2="conf">
+		</app-root-->
+	</page>
+	<page
+			type="input"
+			name="contrib"
+			displayText="Contributions">
+		<target-select
+				property="colourtarget"
+				defaultValue="tgt1"
+				displayText="Select a target"
+				explanatoryText="only one target available">
+			<option text="target-one" value="tgt1"/>
+			<option text="target-two" value="tgt2"/>
+			<option text="target-three" value="tgt3"/>
+		</target-select>
+	</page>
+	<page
+			type="input"
+			name="envcond"
+			displayText="Environment Conditional"
+			ifProperty="${env.DISPLAY}=:0.0">
+			<comment
+				displayText="This page only shows if DISPLAY=:0.0"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.1"
+			displayText="Blue Conditional"
+			ifProperty="${colourtarget}=#0000FF">
+			<comment
+				displayText="original syntax"
+				bold="false"/>
+			<comment
+				displayText="colourtarget is Blue"
+				bold="false"/>
+	</page>
+	<page
+			type="input"
+			name="propcond.2"
+			displayText="Red Conditional"
+			ifProperty="${colourtarget}=#FF0000">
+			<comment
+				displayText="preferred syntax"
+				bold="false"/>
+			<comment
+				displayText="This page only shows if colourtarget is RED"
+				bold="false"/>
+	</page>
+	<page
+			 type="input"
+			 name="Password confirm check"
+			 displayText="Confirm password check">
+		<password 
+			property="thePassword" 
+			defaultValue="1234" 
+			displayText="Enter a password"
+			regex=".+"/>
+		<password-confirm
+			origField="thePassword"
+			property="confirm.thePassword"
+			defaultValue="1234"
+			displayText="Confirm password"
+			regex=".+"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="true"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/script/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script/installer/build.xml	(revision 14989)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<project name="Installation Build"  default=""  basedir=".">
+
+	<property file="ant.install.properties"/>
+
+
+		<target name="default" depends="">
+			<echo message="Entered Property [${myProperty}]"/>
+			<echo message="Checkbox Property [${isvalue}]"/>
+			<echo message="Colour selected 	[${colour}]"/>
+			<echo message="Installation Directory [${installDir}]"/>
+			<echo message="Web xml [${webxml}]"/>
+			<echo message="validated text [${validatedtext}]"/>
+			<echo message="unvalidated text [${unvalidatedtext}]"/>
+			<echo message="insecure password [${unsafepassword}]"/>
+			<echo message="lang [${lang}]"/>
+			<echo message="myProperty2 [${myProperty2}]"/>
+			<echo message="colour2 [${colour2}]"/>
+			<echo message="myProperty3 [${myProperty3}]"/>
+			<echo message="date.property [${date.property}]"/>
+			<echo message="colourtarget [${colourtarget}]"/>
+		</target>
+		<target name="tgsrc" depends="">
+			<echo message="Installing Source files"/>
+		</target>
+		<target name="cleanuptarget" depends="">
+			<echo message="Clean up run at end it is added to the last page (the progress page)"/>
+		</target>
+
+		<!-- Operating System Specific targets -->
+		<property environment="env."/>
+		<target name="myOsSpecific-linux" depends="">
+			<echo message="Should only run on Linux"/>
+		</target>
+		<target name="myOsSpecific-mac" depends="">
+			<echo message="Should only run on Apple Mac"/>
+		</target>
+		<target name="myOsSpecific-sun" depends="">
+			<echo message="Should only run on Sun OS or Solaris"/>
+		</target>
+		<target name="myOsSpecific-win" depends="">
+			<echo message="Should only run on Windoze"/>
+		</target>
+		<target name="myOsSpecific-other" depends="">
+			<echo message="Should run if none of the others run"/>
+		</target>
+	<target name="tgt1" depends="">
+		<echo message="TARGET ONE selected"/>
+	</target>
+	<target name="tgt2" depends="">
+		<echo message="TARGET TWO selected"/>
+	</target>
+	<target name="tgt3" depends="">
+		<echo message="TARGET THREE selected"/>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/script/installer/install.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script/installer/install.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script/installer/install.cmd	(revision 14989)
@@ -0,0 +1,61 @@
+@echo off
+REM #!/bin/sh
+
+REM # The default case runs the installer in an X session if it can
+REM # falling back to text if the Graphics environment is not available
+REM # This can be changed by uncommenting the if statement and the default
+REM # can be changed by replacing "text" with "swing" below
+REM # or passing the required option on the command line
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set INTERFACE=default
+set COMMAND=%JAVA_HOME%\bin\java
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto install
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=start %JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+
+
+REM # Installer from command line classpath
+set CLASSPATH=..\..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\ai-icons-eclipse.jar
+
+REM # JGoodies Look And Feel
+set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\jgoodies-edited-1_2_2.jar
+REM # Image resources
+set CLASSPATH=%CLASSPATH%;..\..\..\..\classes
+REM # Metouia (default) Look And Feel
+REM set CLASSPATH=%CLASSPATH%;..\..\..\..\lib\metouia.jar
+
+REM # minimal ANT classpath requirements
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\..\antlib\ant-launcher.jar
+set CLASSPATH=%CLASSPATH%;cp
+
+REM ### add other ant jars required here
+REM #CLASSPATH=$CLASSPATH;.\antlib\ant-weblogic.jar;.\antlib\ant-javamail.jar
+
+%COMMAND% -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+
+goto end
+
+:nojava
+echo you must install java to run this applicaiton
+goto end
+
+
+:end
Index: /release-kits/shared/ant-installer/examples/buildtypes/script/installer/install.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/script/installer/install.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/script/installer/install.sh	(revision 14989)
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# The default case runs the installer in an X session if it can
+# falling back to text if the Graphics environment is not available
+# This can be changed by uncommenting the if statement and the default
+# can be changed by replacing "text" with "swing" below
+# or passing the required option on the command line
+GUI=$1
+if [ "$GUI" = "" ] ; then
+	GUI=default;
+fi
+
+dir=`expr  match "$0" '\(.*\)install.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+
+
+
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+
+# JGoodies Look And Feel
+CLASSPATH=$CLASSPATH:../../../../lib/jgoodies-edited-1_2_2.jar
+# Image resources
+CLASSPATH=$CLASSPATH:../../../../src
+# Metouia (default) Look And Feel
+# CLASSPATH=$CLASSPATH:./lib/metouia.jar
+
+# minimal ANT classpath requirements
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant-launcher.jar
+CLASSPATH=$CLASSPATH:cp
+
+### add other ant jars required here
+#CLASSPATH=$CLASSPATH:./antlib/ant-weblogic.jar:./antlib/ant-javamail.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $GUI .
Index: /release-kits/shared/ant-installer/examples/buildtypes/selfextract/build/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/selfextract/build/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/selfextract/build/build.xml	(revision 14989)
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!--
+
+This Ant script is used to package parts of the demo app to create an installer
+
+the selfextract target shows an example of creating a self extracting jar for the demo app
+
+run with ...
+
+ant -buildfile build-demo.xml
+
+-->
+<project name="Create Demo Installer Zip Build"  default="selfextract"  basedir=".">
+
+    <!-- Default location in installed tree -->
+    <property name="installDir" location="../../../.."/>
+
+    <path id="taskdef.cp">
+        <fileset dir="${installDir}/lib">
+			<include name="ant-installer-ext.jar"/>
+            <include name="ant-installer.jar"/>
+        </fileset>
+	</path>
+
+	<taskdef
+		name="installer" 
+		classname="org.tp23.antinstaller.taskdefs.Installer"
+		classpathref="taskdef.cp"/>
+  
+	<property name="demo.dir" value="${installDir}/demo"/>
+
+	<target name="selfextract">
+		<mkdir dir="../artifacts/selfextract"/>
+		<echo message="Building DEMO SELFEXTRACT"/>
+		
+		<installer file="../artifacts/selfextractpack.jar" compress="true"
+				extractType="SelfExtractor"
+				installConfig="../installer/antinstall-config.xml"
+				buildFile="../installer/build.xml"
+				antInstallLib="${installDir}/lib"
+				antLib="${installDir}/antlib"
+				validateConfig="true"
+				failOnError="true"
+				icons="bluecurve">
+			<fileset dir="${demo.dir}/artifacts">
+				<include name="installpack.zip"/>
+			</fileset>
+			<fileset dir="${demo.dir}/installclasspath">
+				<include name="resources/*"/>
+			</fileset>
+		</installer>
+		
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/examples/buildtypes/selfextract/checkConfig.cmd
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/selfextract/checkConfig.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/selfextract/checkConfig.cmd	(revision 14989)
@@ -0,0 +1,23 @@
+@echo off
+
+REM  This script check the antinstall-config.xml configuration in the current directory
+
+
+REM Installer requires Java
+if  "%JAVA_HOME%" == "" goto setjava
+
+set CLASSPATH=..\..\..\lib\xercesImpl.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\xml-apis.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;..\..\..\antlib\ant.jar
+
+
+%JAVA_HOME%\bin\java -classpath %CLASSPATH%  org.tp23.antinstaller.runtime.ConfigurationLoader installer
+goto end
+
+:setjava
+echo Installer requires Java available from http://java.sun.com
+echo If you have Java installed you may just need to set the variable JAVA_HOME
+
+:end
+pause
Index: /release-kits/shared/ant-installer/examples/buildtypes/selfextract/checkConfig.sh
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/selfextract/checkConfig.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/selfextract/checkConfig.sh	(revision 14989)
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# This script checks the configuration
+
+
+
+dir=`expr  match "$0" '\(.*\)checkConfig.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      cd "$dir" ;
+   fi
+fi
+# Installer requires Java
+if [ "$JAVA_HOME" = "" ] ; then
+	echo Installer requires Java available from http://java.sun.com
+	echo If you have Java installed you may just need to set the variable JAVA_HOME
+	exit 1;
+fi
+
+# Installer from command line classpath
+cd installer
+CLASSPATH=../../../../lib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:../../../../lib/xml-apis.jar
+CLASSPATH=$CLASSPATH:../../../../lib/ant-installer.jar
+CLASSPATH=$CLASSPATH:../../../../antlib/ant.jar
+
+COMMAND=$JAVA_HOME/bin/java
+
+#echo $COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $1
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ConfigurationLoader .
+if [ $? != 0 ] ; then
+        exit $? ;
+fi
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/selfextract/installer/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/selfextract/installer/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/selfextract/installer/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd">
+
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="true"
+			lookAndFeel="jgoodies"
+			name="Demo Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/greens.png"
+			minJavaVersion="1.4">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the example installer program"
+			imageResource="/resources/greens.png">
+		<comment
+				displayText="This is a demo install"
+				title="true"/>
+		<comment
+				displayText="The application installed is yer typical Hello World"
+				bold="true"/>
+		<comment
+				displayText="There is not much more to be said really."/>
+	</page>
+	<!--  type="license" shows a license page to click through -->
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/resources/GPL.txt"
+			imageResource="/resources/rockstiles.png">
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options">
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/demoapp"
+				defaultValueWin="${env.ProgramFiles}\demoapp"
+				displayText="Select an installation directory"
+				create="true"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="false"/>
+		<target
+			displayText="Documentation"
+			target="tgdoc"
+			defaultValue="true"/>
+	</page>
+	<!--  These are some other input types -->
+	<page
+			type="input"
+			name="other-input-types"
+			displayText="Pointless install options">
+		<text
+				property="myProperty"
+				defaultValue="blah blah"
+				displayText="Enter any text"/>
+		<checkbox
+				property="truefalseprop"
+				displayText="Make a boolean decision"
+				defaultValue="true"
+				force="false"/>
+		<select
+				property="colour"
+				defaultValue="#FF0000"
+				displayText="Choose the option"
+				explanatoryText="This field can be used on any input field to render further descriptive text
+				This field can be used on any input field to render further descriptive text">
+			<option text="Red" value="#FF0000"/>
+			<option text="Green" value="#00FF00"/>
+			<option text="Blue" value="#0000FF"/>
+		</select>
+		<file
+				property="selectedfile"
+				defaultValue="/usr/tomcat/webapps/default/WEB-INF/web.xml"
+				defaultValueWin="C:\autoexec.bat"
+				displayText="Select a file"
+				checkExists="false"/>
+	</page>
+	<!--  page type="progress" shows a progress page with the install button 
+				Its target is set to cleanuptarget since it is the last page this target will be run last-->
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="false"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/examples/buildtypes/selfextract/installer/build.xml
===================================================================
--- /release-kits/shared/ant-installer/examples/buildtypes/selfextract/installer/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/examples/buildtypes/selfextract/installer/build.xml	(revision 14989)
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!--
+
+This is the build.xml run by AntInstaller for the demo app
+
+It is a normal Ant build script, but remember that it is run in a similar
+way to running
+> ant -buildfile build.xml default,tgdoc,tgsrc
+
+this is targets selected in the selector page have dependencies those
+dependencies may be run once for each target selected
+e.g. if tgdoc had depends="default" and the installer passed
+default,tgdoc  ant would run default then default again then tgdoc
+
+To avoid this problem targets can be forced in the gui using the following
+input in the page to choose components to install
+		<input
+			type="target"
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+
+-->
+
+<project name="Installation Build"  default=""  basedir="${basedir}">
+
+	<!-- this is required to pick up the properties generated during the install pages -->
+	<property file="${basedir}/ant.install.properties"/>
+
+
+	<target name="default" depends="">
+		<echo message="Colour selected [${colour}]"/>
+		<echo message="Installation Directory [${installDir}]"/>
+		<echo message="Entered Property [${myProperty}]"/>
+		<echo message="Checkbox Property [${truefalseprop}]"/>
+		<echo message="File [${selectedfile}]"/>
+		<mkdir dir="${basedir}/temp"/>
+		<unzip src="installpack.zip" dest="${basedir}/temp"/>
+		<mkdir dir="${installDir}"/>
+		<mkdir dir="${installDir}/classes"/>
+		<mkdir dir="${installDir}/config"/>
+		<mkdir dir="${installDir}/lib"/>
+		<copy file="${basedir}/temp/bin/run.sh"  tofile="${installDir}/run.sh"/>
+		<copy file="${basedir}/temp/bin/run.cmd"  tofile="${installDir}/run.cmd"/>
+		<chmod file="${installDir}/run.sh" perm="774">
+		</chmod>
+		<copy file="${basedir}/temp/README.txt" tofile="${installDir}"/>
+		<copy todir="${installDir}/classes">
+			<fileset dir="${basedir}/temp/classes"/>
+		</copy>
+		<copy todir="${installDir}/config">
+			<fileset dir="${basedir}/temp/config"/>
+		</copy>
+		<replace file="${installDir}/config/example-config.xml">
+			<replacefilter token="@TextProperty@"   value="${myProperty}"/>
+			<replacefilter token="@SelectedFile@"     value="${selectedfile}"/>
+			<replacefilter token="@Colour@" value="${colour}"/>
+			<replacefilter token="@Boolean@" value="${truefalseprop}"/>
+		</replace>
+		<replace file="${installDir}/config/demo.properties">
+			<replacefilter token="@TextProperty@"   value="${myProperty}"/>
+			<replacefilter token="@SelectedFile@"     value="${selectedfile}"/>
+			<replacefilter token="@Colour@" value="${colour}"/>
+			<replacefilter token="@Boolean@" value="${truefalseprop}"/>
+		</replace>
+	</target>
+
+	<target name="tgdoc" depends="">
+		<echo message="Installing documentation files"/>
+		<mkdir dir="${installDir}/doc"/>
+		<copy todir="${installDir}/doc">
+			<fileset dir="${basedir}/temp/doc"/>
+		</copy>
+	</target>
+
+	<target name="tgsrc" depends="">
+		<echo message="Installing Source files"/>
+		<mkdir dir="${installDir}/src"/>
+		<copy todir="${installDir}/src">
+			<fileset dir="${basedir}/temp/src"/>
+		</copy>
+	</target>
+
+	<target name="cleanuptarget" depends="">
+		<delete dir="${basedir}/temp">
+		</delete>
+	</target>
+</project>
Index: /release-kits/shared/ant-installer/images/README.txt
===================================================================
--- /release-kits/shared/ant-installer/images/README.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/images/README.txt	(revision 14989)
@@ -0,0 +1,21 @@
+AntInstaller Image Readme
+
+
+This pack is spearate from the main AntInstaller download
+for two reasons
+1) to keep the size of the ant-installer.jar down
+2) to allow inclusion of the (excelent) crystal icons
+licensed under LGPL
+
+All default Icons and images are licensed under Apache2.0 
+	by Paul Hinds
+
+Crystal Icons
+	http://www.everaldo.com/crystal.html 
+
+N.B. everaldo produces comercial icons as well it should 
+not be assumed that everaldo icons are LGPL generally.  
+Icons in this pack are based on icons included with KDE 
+which are LGPL.  
+Personal/Business contact with everaldo send direct 
+e-mail to everaldo@everaldo.com
Index: /release-kits/shared/ant-installer/images/extract-images/crystal-images.txt
===================================================================
--- /release-kits/shared/ant-installer/images/extract-images/crystal-images.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/images/extract-images/crystal-images.txt	(revision 14989)
@@ -0,0 +1,4 @@
+Crystal Icons from KDE install
+
+http://www.everaldo.com/crystal.html
+License : LGPL
Index: /release-kits/shared/ant-installer/images/extract-images/default-images.txt
===================================================================
--- /release-kits/shared/ant-installer/images/extract-images/default-images.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/images/extract-images/default-images.txt	(revision 14989)
@@ -0,0 +1,5 @@
+Default Icons: Paul Hinds
+
+http://java.riereta.net
+
+License: Apache 2.0
Index: /release-kits/shared/ant-installer/images/navicons/amaranth/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/images/navicons/amaranth/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/images/navicons/amaranth/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,514 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+ 
Index: /release-kits/shared/ant-installer/images/navicons/bluecurve/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/images/navicons/bluecurve/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/images/navicons/bluecurve/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,56 @@
+The Fedora Project
+
+Individual Contributor License Agreement (CLA)
+
+[WWW] http://fedoraproject.org/wiki/Legal/Licenses/CLA
+
+Thank you for your interest in The Fedora Project (the "Project"). In order to clarify the intellectual property license granted with Contributions from any person or entity, Red Hat, Inc. ("Red Hat"), as maintainer of the Project, must have a Contributor License Agreement (CLA) on file that has been signed by each Contributor, indicating agreement to the license terms below. This license is for Your protection as a Contributor as well as the protection of the Project and its users; it does not change your rights to use your own Contributions for any other purpose.
+
+You and the Project hereby accept and agree to the following terms and conditions:
+
+    *
+
+      1. Contributors and Contributions.
+          o
+
+            A. The Project and any individual or legal entity that voluntarily submits to the Project a Contribution are collectively addressed herein as "Contributors". For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+          o
+
+            B. A "Contribution" is any original work, including any modification or addition to an existing work, that has been submitted for inclusion in, or documentation of, any of the products owned or managed by the Project, where such work originates from that particular Contributor or from some entity acting on behalf of that Contributor.
+          o
+
+            C. A Contribution is "submitted" when any form of electronic, verbal, or written communication is sent to the Project, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of discussing or improving software or documentation of the Project, but excluding communication that is conspicuously marked or otherwise designated in writing by you as "Not a Contribution."
+          o
+
+            D. Any Contribution submitted by you to the Project shall be under the terms and conditions of this License, without any additional terms or conditions, unless you explicitly state otherwise in the submission.
+    *
+
+      2. Contributor Grant of License. You hereby grant to Red Hat, Inc., on behalf of the Project, and to recipients of software distributed by the Project:
+          o
+
+            (a) a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute your Contribution and such derivative works; and,
+          o
+
+            (b) a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, irrevocable (subject to Section 3) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer your Contribution and derivative works thereof, where such license applies only to those patent claims licensable by you that are necessarily infringed by your Contribution alone or by combination of your Contribution with the work to which you submitted the Contribution. Except for the license granted in this section, you reserve all right, title and interest in and to your Contributions.
+    *
+
+      3. Reciprocity. As of the date any such litigation is filed, your patent grant shall immediately terminate with respect to any party that institutes patent litigation against you (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the work to which you have contributed, constitutes direct or contributory patent infringement.
+    *
+
+      4. You represent that you are legally entitled to grant the above license. If your employer(s) has rights to intellectual property that you create that includes your Contributions, you represent that you have received permission to make Contributions on behalf of that employer, that your employer has waived such rights for your Contributions to the Project, or that your employer has executed a separate Corporate CLA with the Project.
+    *
+
+      5. You represent that each of your Contributions is your original creation (see section 7 for submissions on behalf of others). You represent that your Contribution submission(s) include complete details of any third-party license or other restriction (including, but not limited to, related copyright, patents and trademarks) of which you are personally aware and which are associated with any part of your Contribution.
+    *
+
+      6. You are not expected to provide support for your Contributions, except to the extent you desire to provide support. You may provide support for free, for a fee, or not at all. Your Contributions are provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
+    *
+
+      7. Should you wish to submit work that is not your original creation, you may submit it to the Project separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".
+    *
+
+      8. You agree to notify the Project of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect.
+    *
+
+      9. The Project is under no obligations to accept and include every contribution.
+ 
Index: /release-kits/shared/ant-installer/images/navicons/crystalsvg/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/images/navicons/crystalsvg/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/images/navicons/crystalsvg/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,12 @@
+This copyright and license notice covers the images in this directory.
+Note the license notice contains an add-on.
+
+KDE Crystal theme icons.
+Copyright (C) 2002 and following years KDE Artists
+This library is free software; you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the Free
+Software Foundation, version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
+implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+License for more details. 
Index: /release-kits/shared/ant-installer/images/navicons/eclipse/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/images/navicons/eclipse/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/images/navicons/eclipse/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,86 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENTâS ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+    b) in the case of each subsequent Contributor:
+
+    i)changes to the Program, and
+
+    ii)additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributorâs behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipientâs responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributorâs responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipientâs patent(s), then such Recipientâs rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipientâs rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipientâs rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipientâs obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. 
Index: /release-kits/shared/ant-installer/images/navicons/krystaline/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/images/navicons/krystaline/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/images/navicons/krystaline/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,513 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
Index: /release-kits/shared/ant-installer/images/resources/LICENSE-ant-install.txt
===================================================================
--- /release-kits/shared/ant-installer/images/resources/LICENSE-ant-install.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/images/resources/LICENSE-ant-install.txt	(revision 14989)
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2005 Paul Hinds
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
Index: /release-kits/shared/ant-installer/images/titlebars/default-images.txt
===================================================================
--- /release-kits/shared/ant-installer/images/titlebars/default-images.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/images/titlebars/default-images.txt	(revision 14989)
@@ -0,0 +1,5 @@
+Default Icons: Paul Hinds
+
+http://java.riereta.net
+
+License: Apache 2.0
Index: /release-kits/shared/ant-installer/images/tool-credits.txt
===================================================================
--- /release-kits/shared/ant-installer/images/tool-credits.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/images/tool-credits.txt	(revision 14989)
@@ -0,0 +1,17 @@
+
+   <ant-installer> 
+      _-------_ 
+      \ ()0o< / 
+       \ /|\ /
+        \   /
+         \ /
+          Â·
+Default icons created with
+
+     - inkscape - 
+http://www.inkscape.org
+
+   - and the gimp -
+  http://www.gimp.org
+
+
Index: /release-kits/shared/ant-installer/kde-icons/antinstaller-demo.desktop
===================================================================
--- /release-kits/shared/ant-installer/kde-icons/antinstaller-demo.desktop	(revision 14989)
+++ /release-kits/shared/ant-installer/kde-icons/antinstaller-demo.desktop	(revision 14989)
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Comment=AntInstaller Demo
+Path=@installDir@
+Icon=@installDir@/kde-icons/AntInstaller.png
+Exec=java -jar '@installDir@/demo/artifacts/demo-installer.jar'
+Name=AntInstaller Demo
+StartupNotify=true
+Terminal=0
+TerminalOptions=
+Type=Application
+Encoding=UTF-8
+X-KDE-SubstituteUID=false
+X-KDE-Username=
+Categories=Development;Java
Index: /release-kits/shared/ant-installer/kde-icons/antinstaller-docs.desktop
===================================================================
--- /release-kits/shared/ant-installer/kde-icons/antinstaller-docs.desktop	(revision 14989)
+++ /release-kits/shared/ant-installer/kde-icons/antinstaller-docs.desktop	(revision 14989)
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Comment=AntInstaller Docs
+Path=@installDir@
+Icon=@installDir@/kde-icons/AntInstaller.png
+Exec=kfmclient exec '@installDir@/web/index.html'
+Name=AntInstaller Docs
+StartupNotify=true
+Terminal=0
+TerminalOptions=
+Type=Application
+Encoding=UTF-8
+X-KDE-SubstituteUID=false
+X-KDE-Username=
+Categories=Development;Java
Index: /release-kits/shared/ant-installer/kde-icons/antinstaller-wizard.desktop
===================================================================
--- /release-kits/shared/ant-installer/kde-icons/antinstaller-wizard.desktop	(revision 14989)
+++ /release-kits/shared/ant-installer/kde-icons/antinstaller-wizard.desktop	(revision 14989)
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Comment=AntInstaller Project Wizard
+Path=@installDir@
+Icon=@installDir@/kde-icons/AntInstaller.png
+Exec='@installDir@/wizard.sh'
+Name=AntInstaller Wizard
+StartupNotify=true
+Terminal=0
+TerminalOptions=
+Type=Application
+Encoding=UTF-8
+X-KDE-SubstituteUID=false
+X-KDE-Username=
+Categories=Development;Java
Index: /release-kits/shared/ant-installer/lib/LICENSE-ant-install.txt
===================================================================
--- /release-kits/shared/ant-installer/lib/LICENSE-ant-install.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/lib/LICENSE-ant-install.txt	(revision 14989)
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
Index: /release-kits/shared/ant-installer/lib/LICENSE-ant.txt
===================================================================
--- /release-kits/shared/ant-installer/lib/LICENSE-ant.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/lib/LICENSE-ant.txt	(revision 14989)
@@ -0,0 +1,203 @@
+/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      "License" shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      "Licensor" shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      "Legal Entity" shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      "control" means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      "You" (or "Your") shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      "Source" form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      "Object" form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      "Work" shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      "Derivative Works" shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      "Contribution" shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, "submitted"
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *      "Contributor" shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a "NOTICE" text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an "AS IS" BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets "[]"
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same "printed page" as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] [name of copyright owner]
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   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.
+ */
Index: /release-kits/shared/ant-installer/lib/LICENSE-dom.txt
===================================================================
--- /release-kits/shared/ant-installer/lib/LICENSE-dom.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/lib/LICENSE-dom.txt	(revision 14989)
@@ -0,0 +1,71 @@
+This license came from:
+http://www.w3.org/Consortium/Legal/copyright-software-19980720
+
+
+W3C® SOFTWARE NOTICE AND LICENSE
+Copyright © 1994-2001 World
+Wide Web Consortium, <a href="http://www.w3.org/">World
+Wide Web Consortium</a>, (<a href=
+"http://www.lcs.mit.edu/">Massachusetts Institute of
+Technology</a>, <a href="http://www.inria.fr/">Institut National de
+Recherche en Informatique et en Automatique</a>, <a href=
+"http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/
+
+This W3C work (including software, documents, or other related
+items) is being provided by the copyright holders under the
+following license. By obtaining, using and/or copying this work,
+you (the licensee) agree that you have read, understood, and will
+comply with the following terms and conditions:
+Permission to use, copy, modify, and distribute this software
+and its documentation, with or without modification,  for any
+purpose and without fee or royalty is hereby granted, provided that
+you include the following on ALL copies of the software and
+documentation or portions thereof, including modifications, that
+you make:
+
+The full text of this NOTICE in a location viewable to users of
+the redistributed or derivative work.
+
+Any pre-existing intellectual property disclaimers, notices, or
+terms and conditions. If none exist, a short notice of the
+following form (hypertext is preferred, text is permitted) should
+be used within the body of any redistributed or derivative code:
+"Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of
+Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/"
+
+Notice of any changes or modifications to the W3C files,
+including the date changes were made. (We recommend you provide 
+URIs to the location from which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
+COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
+USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
+PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
+SOFTWARE OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in
+advertising or publicity pertaining to the software without
+specific, written prior permission. Title to copyright in this
+software and any associated documentation will at all times remain
+with copyright holders.
+____________________________________
+This formulation of W3C's notice and license became active on
+August 14 1998 so as to improve compatibility with GPL. This
+version ensures that W3C software licensing terms are no more
+restrictive than GPL and consequently W3C software may be
+distributed in GPL packages. See the older formulation for the
+policy prior to this date. Please see our Copyright FAQ for common 
+questions about using materials from
+our site, including specific terms and conditions for packages like
+libwww, Amaya, and Jigsaw. 
+Other questions about this notice can be
+directed to site-policy@w3.org.
+
+webmaster
Index: /release-kits/shared/ant-installer/lib/LICENSE-jgoodies.txt
===================================================================
--- /release-kits/shared/ant-installer/lib/LICENSE-jgoodies.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/lib/LICENSE-jgoodies.txt	(revision 14989)
@@ -0,0 +1,31 @@
+
+           The BSD License for the JGoodies Looks
+           ======================================
+
+Copyright (c) 2001-2004 JGoodies Karsten Lentzsch. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without 
+modification, are permitted provided that the following conditions are met:
+
+ o Redistributions of source code must retain the above copyright notice, 
+   this list of conditions and the following disclaimer. 
+    
+ o Redistributions in binary form must reproduce the above copyright notice, 
+   this list of conditions and the following disclaimer in the documentation 
+   and/or other materials provided with the distribution. 
+    
+ o Neither the name of JGoodies Karsten Lentzsch nor the names of 
+   its contributors may be used to endorse or promote products derived 
+   from this software without specific prior written permission. 
+    
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: /release-kits/shared/ant-installer/lib/LICENSE-sax.txt
===================================================================
--- /release-kits/shared/ant-installer/lib/LICENSE-sax.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/lib/LICENSE-sax.txt	(revision 14989)
@@ -0,0 +1,20 @@
+This license came from: http://www.megginson.com/SAX/copying.html
+  However please note future versions of SAX may be covered 
+  under http://saxproject.org/?selected=pd
+
+
+This page is now out of date -- see the new SAX site at 
+http://www.saxproject.org/ for more up-to-date
+releases and other information. Please change your bookmarks.
+
+
+SAX2 is Free!
+
+I hereby abandon any property rights to SAX 2.0 (the Simple API for
+XML), and release all of the SAX 2.0 source code, compiled code, and
+documentation contained in this distribution into the Public Domain.
+SAX comes with NO WARRANTY or guarantee of fitness for any
+purpose.
+
+David Megginson, david@megginson.com
+2000-05-05
Index: /release-kits/shared/ant-installer/lib/LICENSE-sysout.txt
===================================================================
--- /release-kits/shared/ant-installer/lib/LICENSE-sysout.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/lib/LICENSE-sysout.txt	(revision 14989)
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
Index: /release-kits/shared/ant-installer/lib/LICENSE-xerces.txt
===================================================================
--- /release-kits/shared/ant-installer/lib/LICENSE-xerces.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/lib/LICENSE-xerces.txt	(revision 14989)
@@ -0,0 +1,56 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ *
+ * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights 
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
Index: /release-kits/shared/ant-installer/src/README.txt
===================================================================
--- /release-kits/shared/ant-installer/src/README.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/src/README.txt	(revision 14989)
@@ -0,0 +1,109 @@
+
+This SelfExtracting archive should be run with Java to start the installation.
+________________________________________________________________________________
+
+If Java1.4 is installed correctly simply double click the .jar file in your 
+file browser.
+
+
+To run the installer from the commandline
+WINDOWS 
+		C:\> javaw -jar [installer-file].jar
+UNIX
+		> java -jar [installer-file].jar
+
+
+If the .jar extension has been reregistered you will need to specify the Java
+command
+
+WINDOWS
+
+	Right mouse click on the file and select "Open with" then "javaw"
+
+
+LINUX
+
+	Konquerer (KDE) right mouse click and select "Open with" then "java"
+
+
+
+
+
+TROUBLESHOOTING
+________________________________________________________________________________
+
+
+WINDOWS
+________________________________________________________________________________
+If you do not have the "javaw" entry in the "Open with" list 
+	Check that you have a current version of Java ( >1.4 ) installed.
+	The Sun Java installation process registers javaw with .jars in the 
+	installation.  
+	You can reinstall Java if you still have the original installer.
+	If you don't have the installer, or don't want to reinstall Java, you can 
+	modify the registration of the .jar extension.
+		In Explorer select "Tools" then "Folder options"
+		Select the "File types" tab
+		First check to see if teh JAR Extension is in the list
+			JAR extension IS in the list
+				click the "Change" button
+				find javaw in the list of files
+				click OK
+			JAR extension NOT in list
+				click the New button
+				enter "jar" as the file extension
+				Enter <New> as the file type
+				
+			
+				
+
+
+LINUX
+________________________________________________________________________________
+
+Using X
+
+Log in to the shell as the user that is running X
+Ensure you have exported your DISPLAY variable  (echo $DISPLAY) if not export it
+> export DISPLAY=127.0.0.1:0
+
+Check the default java is the correct version
+> java -version
+
+	If the java binary is not found, but you do have Java installed
+		Add the bin directory of the Java installation to your path
+		> export PATH=$PATH:[path to Java]/bin
+		run the installer with > java -jar [installer-file].jar
+	
+	If the default java version is below 1.4
+		If you do NOT have a recent version installed anywhere on your system
+			install the Sun Java JRE or SDK for linux.
+		If/when you DO have a recent version of Java installed
+			find the location of the java installation
+			e.g /usr/java/j2sdk1.4.2_04
+			export the JAVA_HOME variable of the installation
+			> export JAVA_HOME=/usr/java/j2sdk1.4.2_04
+			run the following command
+			> $JAVA_HOME/bin/java -jar [installer-file].jar
+			You should consider adding the export JAVA_HOME entry to your profile 
+			and/or ensure the location of the JAVA_HOME/bin directory for Java >1.4 
+			is in your PATH
+		
+	If the default java version IS above 1.4
+	run the installer with > java -jar [installer-file].jar
+
+
+Without X (command line)
+
+The installer will run on the command line with a text interface if it is not 
+possible to load the GUI.
+running the following command without a DISPLAY variable or in runlevel 3 will
+start the installer in text mode
+> java -jar [installer-file].jar
+
+
+
+
+
+
+ 
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/DefaultPropertiesFileRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/DefaultPropertiesFileRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/DefaultPropertiesFileRenderer.java	(revision 14989)
@@ -0,0 +1,108 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+
+import org.tp23.antinstaller.input.ConditionalField;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.SecretPropertyField;
+import org.tp23.antinstaller.page.Page;
+
+
+
+/**
+ *
+ * <p>Outputs the completed Pages as a java Properties file. </p>
+ * @author Paul Hinds
+ * @version $Id: DefaultPropertiesFileRenderer.java,v 1.8 2007/01/09 22:41:41 teknopaul Exp $
+ */
+public class DefaultPropertiesFileRenderer
+	implements PropertiesFileRenderer {
+
+	public DefaultPropertiesFileRenderer() {
+	}
+
+	public void renderProperties(InstallerContext ctx, File baseDir){
+		Installer installer = ctx.getInstaller();
+		Page[] completedPages = installer.getPages();
+		Properties props = new Properties();
+		props.put(FILE_ROOT_PROPERTY, baseDir.getAbsolutePath());
+        props.setProperty(INSTALLER_VERSION_PROPERTY,
+                ctx.getInstaller().getVersion());
+
+
+		for (int i = 0; i < completedPages.length; i++) {
+			OutputField[] fields = completedPages[i].getOutputField();
+
+            retrieveProperties( fields, props );
+			
+			// print targets selected
+			List targets = completedPages[i].getTargets(ctx);
+			if(targets.size() > 0){
+				Iterator iterator = targets.iterator();
+				StringBuffer targetProperty = new StringBuffer();
+				while (iterator.hasNext()) {
+					String target = (String) iterator.next();
+					targetProperty.append(target).append(",");
+				}
+				props.put(completedPages[i].getName() + TARGETS_SUFFIX, targetProperty.toString());				
+			}
+
+		}
+		try {
+			File antInstallProperties = new File(baseDir.getAbsolutePath(), PROPERTIES_FILE_NAME);
+            FileOutputStream fos = new FileOutputStream(antInstallProperties);
+			props.store(fos,
+						"Ant Installer - AutoGenerated properties");
+            fos.close();
+		}
+		catch (Throwable ex) {
+            if(ctx.getInstaller().isVerbose()) {
+                ctx.log(ex);
+            }
+			//swallow Exceptions as in contract for this method
+		}
+	}
+
+    private void retrieveProperties( OutputField[] fields, Properties props ) {
+        for (int f = 0; f < fields.length; f++) {
+            if (fields[f] instanceof SecretPropertyField) {
+                //InputField field = (InputField)fields[f];
+                //props.put(field.getProperty(), "XXXXXXXX");
+            }
+            else if( fields[f] instanceof ConditionalField ) {
+                ConditionalField confField = (ConditionalField) fields[f];
+                retrieveProperties( confField.getFields(), props );
+            }
+            else if (fields[f] instanceof InputField) {
+                InputField field = (InputField)fields[f];
+
+                String result = field.getInputResult();
+                //Temporary fix for PR 1353906
+                if( result == null ) {
+                    result = "";
+                }
+                props.put(field.getProperty(), result);
+            }
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java	(revision 14989)
@@ -0,0 +1,218 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import org.tp23.antinstaller.input.ConditionalField;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.SecretPropertyField;
+import org.tp23.antinstaller.page.Page;
+
+/**
+ * <p>Outputs the completed Pages as a Java Properties file. The file produced is compatible
+ * with java.util.Properties. </p>
+ * <p>Output is commented as it is printed to aid debugging</p>
+ * @see http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#100850
+ * @author Paul Hinds
+ * @version $Id: ExplicitPropertiesFileRenderer.java,v 1.9 2007/01/09 22:41:41 teknopaul Exp $
+ */
+public class ExplicitPropertiesFileRenderer
+	implements PropertiesFileRenderer {
+
+	private static String newLine = System.getProperty("line.separator");
+	private static final char[] hexidecimals = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
+
+	public ExplicitPropertiesFileRenderer() {
+	}
+
+	public void renderProperties(InstallerContext ctx, File baseDir){
+		Installer installer = ctx.getInstaller();
+		Page[] completedPages = installer.getPages();
+
+		StringBuffer propertiesData = new StringBuffer();
+		propertiesData.append("### Ant Installer - properties auto generated on ");
+		propertiesData.append( convert(new Date().toString(), true) );
+		propertiesData.append(newLine);
+		propertiesData.append(newLine);
+
+		propertiesData.append(FILE_ROOT_PROPERTY);
+		propertiesData.append(" = ");
+		propertiesData.append( convert(baseDir.getAbsolutePath(), true) );
+		propertiesData.append(newLine);
+
+        propertiesData.append(INSTALLER_VERSION_PROPERTY);
+        propertiesData.append(" = ");
+        propertiesData.append( convert(ctx.getInstaller().getVersion(), true) );
+        propertiesData.append(newLine);
+
+		propertiesData.append(newLine);
+		String property = null;
+		String value = null;
+
+
+		for (int i = 0; i < completedPages.length; i++) {
+			OutputField[] fields = completedPages[i].getOutputField();
+
+			propertiesData.append(newLine);
+			propertiesData.append("## Properties from Page:" + completedPages[i].getName());
+			propertiesData.append(newLine);
+
+            retrievePropertiesData( fields, propertiesData );
+
+			// print targets selected
+			List targets = completedPages[i].getTargets(ctx);
+			if(targets.size() > 0){
+				Iterator iterator = targets.iterator();
+				StringBuffer targetProperty = new StringBuffer();
+				while (iterator.hasNext()) {
+					String target = (String) iterator.next();
+					targetProperty.append(target).append(",");
+				}
+				propertiesData.append("# Targets selected for page");
+				propertiesData.append(newLine);
+				property = convert(completedPages[i].getName() + TARGETS_SUFFIX, true);
+				value = convert(targetProperty.toString(), true);
+				propertiesData.append(property + " = " + value);
+				propertiesData.append(newLine);
+				
+			}
+		}
+		try {
+			File antInstallProperties = new File(baseDir.getAbsolutePath(), PROPERTIES_FILE_NAME);
+			FileWriter fos = new FileWriter(antInstallProperties);
+			BufferedWriter writer = new BufferedWriter(fos);
+			writer.write(propertiesData.toString());
+			writer.flush();
+			fos.close();
+		}
+		catch (Throwable ex) {
+            if(ctx.getInstaller().isVerbose()) {
+                ctx.log(ex);
+            }
+            //swallow Exceptions as in the contract for this method
+		}
+	}
+    private void retrievePropertiesData( OutputField[] fields, StringBuffer propertiesData ) {
+        String property = null;
+        String value = null;
+
+        for (int f = 0; f < fields.length; f++) {
+            if (fields[f] instanceof SecretPropertyField) {
+                InputField field = (InputField) fields[f];
+                //String result = field.getInputResult();
+                propertiesData.append("# Property hidden " + printClass(fields[f].getClass()));
+                propertiesData.append(newLine);
+                property = convert(field.getProperty(), true);
+                propertiesData.append("#" + property + "=XXXXXXXX");
+                propertiesData.append(newLine);
+            }
+            else if (fields[f] instanceof ConditionalField ) {
+                ConditionalField confField = (ConditionalField) fields[f];
+                retrievePropertiesData( confField.getFields(), propertiesData );
+            }
+            else if (fields[f] instanceof InputField) {
+                InputField field = (InputField) fields[f];
+                String result = field.getInputResult();
+                propertiesData.append("# " + printClass(fields[f].getClass()));
+                propertiesData.append(newLine);
+
+                property = convert(field.getProperty(), true);
+                value = convert(result, false);
+                propertiesData.append(property + " = " + value);
+                propertiesData.append(newLine);
+            }
+        }
+    }
+
+	private String printClass(Class clazz) {
+		String name = clazz.getName();
+		int lastDot = name.lastIndexOf('.');
+		return name.substring(lastDot, name.length());
+	}
+
+	private String convert(String input, boolean doSpaces) {
+		if (input == null) {
+			// this happens when a page is skipped in text mode
+			return "";
+		}
+		int num = input.length();
+		StringBuffer sb = new StringBuffer(num);
+
+		for (int i = 0; i < num; i++) {
+			char c = input.charAt(i);
+			switch (c) {
+				case ' ':
+					if (i == 0 || doSpaces) {
+						sb.append('\\');
+					}
+					sb.append(' ');
+					break;
+				case '\n':
+					sb.append("\\n");
+					break;
+				case '\r':
+					sb.append("\\r");
+					break;
+				case '\\':
+					sb.append("\\\\");
+					break;
+				case '\t':
+					sb.append("\\t");
+					break;
+				case '\f':
+					sb.append("\\f");
+					break;
+				case '=':
+					sb.append("\\=");
+					break;
+				case ':':
+					sb.append("\\:");
+					break;
+				case '#':
+					sb.append("\\#");
+					break;
+				case '!':
+					sb.append("\\!");
+					break;
+
+				default:
+					if ( (c < 0x0020) || (c > 0x007e) ) {
+						sb.append("\\u")
+							.append(hex( (c >> 12) & 0xF))
+							.append(hex( (c >> 8) & 0xF))
+							.append(hex( (c >> 4) & 0xF))
+							.append(hex(c & 0xF));
+					}
+					else {
+						sb.append(c);
+					}
+			}
+		}
+		return sb.toString();
+	}
+
+	private char hex(int val) {
+		return hexidecimals[ (val & 0xF)];
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/InstallException.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/InstallException.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/InstallException.java	(revision 14989)
@@ -0,0 +1,67 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller;
+
+import java.io.PrintStream;
+import java.io.PrintWriter;
+
+/**
+ *
+ * <p>Custom Installation Exception, Hopefully compatible with JDK1.3 and 1.4</p>
+ * @author Paul Hinds
+ * @version $Id: InstallException.java,v 1.1.1.1 2005/10/18 18:20:51 teknopaul Exp $
+ */
+public class InstallException extends Exception{
+
+	private Throwable cause;
+	
+	public InstallException() {
+	}
+	public InstallException(String message) {
+		super(message);
+	}
+	public InstallException(String message,Throwable cause) {
+		super(message);
+        this.cause = cause;
+	}
+    public Throwable getException() {
+        return cause;
+    }
+    public Throwable getCause() {
+        return getException();
+    }
+    public void printStackTrace() {
+        printStackTrace(System.err);
+    }
+    public void printStackTrace(PrintStream ps) {
+        synchronized (ps) {
+            super.printStackTrace(ps);
+            if (cause != null) {
+                ps.println("--- Nested Exception ---");
+                cause.printStackTrace(ps);
+            }
+        }
+    }
+    public void printStackTrace(PrintWriter pw) {
+        synchronized (pw) {
+            super.printStackTrace(pw);
+            if (cause != null) {
+                pw.println("--- Nested Exception ---");
+                cause.printStackTrace(pw);
+            }
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/Installer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/Installer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/Installer.java	(revision 14989)
@@ -0,0 +1,277 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller;
+
+import java.util.List;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.Vector;
+
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.ResultContainer;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.renderer.swing.SizeConstants;
+import org.tp23.antinstaller.runtime.IfPropertyHelper;
+import org.tp23.antinstaller.runtime.VersionHelper;
+import org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter.AbortException;
+
+
+
+/**
+ * <p>Object representation of the Installer element in the config. </p>
+ * <p>This object holds the reference to all the Pages which in tern hold references
+ * to the InputFields,  All the properties in the Installer element are held at this level
+ * as is the ResultContainer</p>
+ * @author Paul Hinds
+ * @version $Id: Installer.java,v 1.9 2007/01/28 08:44:41 teknopaul Exp $
+ */
+public class Installer {
+
+
+	// i18n support
+	private static ResourceBundle langPack = null;
+	static{
+		try {
+			langPack = ResourceBundle.getBundle("resources.LanguagePack");
+		} catch (MissingResourceException e) {
+			// ignore, signifies no lang packs installed  
+		}
+	}
+
+	private String name;
+	private String minJavaVersion = "1.4";
+	private String ui;// permitted UI override values
+	private boolean verbose;
+	private boolean debug;
+	private String lookAndFeel;
+	private String wide;
+	private String windowIcon;
+	private String defaultImageResource;
+	private String finishButtonText = "Install";
+    private String antialiased;
+    private String loadDefaults;
+    private String version = "0.0";
+    
+	private Page[] pages;
+	private ResultContainer resultContainer = new ResultContainer();
+
+	public Installer() {
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+
+	public String getMinJavaVersion() {
+		return minJavaVersion;
+	}
+    
+    public void setMinJavaVersion(String minJavaVersion) throws AbortException {
+        if(minJavaVersion != null && ! "".equals(minJavaVersion) ) {
+            VersionHelper helper = new VersionHelper();
+            if( ! helper.equalOrHigher(System.getProperty("java.version"), minJavaVersion, true) ) {
+                throw new AbortException("Incorrect Java version, installer requires: " + minJavaVersion);
+            }
+        }
+        this.minJavaVersion = minJavaVersion;
+    }
+
+	public Page[] getPages() {
+		return pages;
+	}
+
+	public void setPages(Page[] pages) {
+		this.pages = pages;
+	}
+
+    /**
+     * returns full ui attribute with spaces removed (the string is not parsed into tokens).
+     * e.g.  "text,swint,swing-auto"
+     * @return
+     */
+	public String getUi() {
+		return ui;
+	}
+
+    /**
+     * Sets the ui attrribute removing any whitespace
+     * @param ui
+     */
+	public void setUi(String ui) {
+		this.ui = ui.replaceAll("\\s", "");
+	}
+
+	public boolean supportsAutoBuild(){
+		return ui != null && ui.indexOf("-auto") > -1;
+	}
+
+	public boolean isVerbose() {
+		return verbose;
+	}
+	public void setVerbose(boolean verbose) {
+		this.verbose = verbose;
+	}
+	public void setVerbose(String strVerbose) {
+		this.verbose = OutputField.isTrue(strVerbose);
+	}
+
+	public boolean isDebug() {
+		return debug;
+	}
+	public void setDebug(boolean debug) {
+		this.debug = debug;
+	}
+	public void setDebug(String strDebug) {
+		this.debug = OutputField.isTrue(strDebug);
+	}
+
+
+	public String getLookAndFeel() {
+		return lookAndFeel;
+	}
+
+	public void setLookAndFeel(String lookAndFeel) {
+		this.lookAndFeel = lookAndFeel;
+	}
+
+	public String getWindowIcon() {
+		return windowIcon;
+	}
+
+	public void setWindowIcon(String windowIcon) {
+		this.windowIcon = windowIcon;
+	}
+
+	public String getDefaultImageResource() {
+		return defaultImageResource;
+	}
+
+	public void setDefaultImageResource(String defaultImageResource) {
+		this.defaultImageResource = defaultImageResource;
+	}
+
+	public String getFinishButtonText() {
+		if(langPack != null){
+			return langPack.getString("finishButtonText");
+		}
+		return finishButtonText;
+	}
+
+	public void setFinishButtonText(String finishButtonText) {
+		this.finishButtonText = finishButtonText;
+	}
+
+	public ResultContainer getResultContainer() {
+		return resultContainer;
+	}
+
+	public String getAntialiased() {
+		return antialiased;
+	}
+
+	public void setAntialiased(String antialiased) {
+		this.antialiased = antialiased;
+	}
+
+	public String getWide() {
+		return wide;
+	}
+
+	public void setWide(String wide) {
+		try {
+			this.wide = wide;
+			parseWideValue(wide);
+		} catch (Exception e) {
+			// ignore use defaults
+		}
+	}
+	public void parseWideValue(String wide) throws NumberFormatException, StringIndexOutOfBoundsException{
+		int pageWidth = Integer.parseInt(wide.substring(0, wide.indexOf(':')));
+		int labelWidth = Integer.parseInt(wide.substring(wide.indexOf(':') + 1, wide.length()));
+		SizeConstants.PAGE_WIDTH = pageWidth;
+		SizeConstants.LABEL_WIDTH = labelWidth;
+	}
+
+	public String getLoadDefaults() {
+		return loadDefaults;
+	}
+
+	public void setLoadDefaults(String loadDefaults) {
+		this.loadDefaults = loadDefaults;
+	}
+
+	/**
+	 * Returns the list of selected targets from the installer obeying
+	 * page order. This method is
+	 * probably only usefull after the UI screens have finished.  Using prior to that
+	 * bear in mind that the user in the Swing GUI can go back and reselect
+	 * targets that were not selected previously.
+	 * Page targets for pages that were not shown are not returned in the list 
+	 * @return Returns a Vector since Ant requires this for the Project class (Should be a List)
+	 * @throws InstallException 
+	 */
+	public Vector getTargets(InstallerContext ctx){
+		Vector argsList = new Vector();
+		for (int i = 0; i < getPages().length; i++) {
+			Page page = getPages()[i];
+			List pageTargets = page.getPageTargets();
+			boolean shown = conditionalDisplay(page, ctx);
+			for (int pt = 0; pt < pageTargets.size(); pt++) {
+				Page.IndexedTarget target = (Page.IndexedTarget)pageTargets.get(pt);
+				if( ! argsList.contains(target.getTarget()) &&
+					shown){
+					argsList.add(target.getTarget());
+				}
+			}
+			List elementTargets = page.getElementTargets();
+			for (int pt = 0; pt < elementTargets.size(); pt++) {
+				Page.IndexedTarget target = (Page.IndexedTarget)elementTargets.get(pt);
+				if( ! argsList.contains(target.getTarget()) ){
+					argsList.add(target.getTarget());
+				}
+			}
+		}
+		return argsList;
+	}
+
+	/**
+	 * @return boolean true if the page was to be shown
+	 * @throws InstallException 
+	 */
+	private boolean conditionalDisplay(Page page, InstallerContext ctx){
+		try {
+			IfPropertyHelper helper = new IfPropertyHelper(ctx);
+			return helper.ifProperty(page) && helper.ifTarget(page, ctx.getInstaller().getPages());
+		} catch (InstallException e) {
+			throw new RuntimeException("ifProperty runtime exception");
+		}
+	}
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/InstallerContext.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/InstallerContext.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/InstallerContext.java	(revision 14989)
@@ -0,0 +1,271 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller;
+
+import java.io.File;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.Vector;
+
+import org.apache.tools.ant.BuildListener;
+import org.apache.tools.ant.taskdefs.Execute;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.renderer.AntOutputRenderer;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+import org.tp23.antinstaller.runtime.Logger;
+import org.tp23.antinstaller.runtime.Runner;
+import org.tp23.antinstaller.runtime.exe.AntLauncherFilter;
+import org.tp23.antinstaller.runtime.exe.LoadConfigFilter;
+/**
+ *
+ * <p>A single InstallerContext is created by the ExecInstall class and
+ * exist for the duration of the Install screens and the runing of
+ * the Ant Script. </p>
+ * @author Paul Hinds
+ * @version $Id: InstallerContext.java,v 1.10 2007/01/28 08:44:41 teknopaul Exp $
+ */
+public class InstallerContext {
+
+	/**
+	 * This is the prefix for environment variables, unlike Ant this is fixed to
+	 * the common prefix of "env".  If you dont like this complain to the bug reports
+	 * on sourceforge
+	 */
+	public static final String ENV_PREFIX = "env.";
+	/**
+	 * This is the prefix for Java system property variables.
+	 * This is fixed to "java."
+	 */
+	public static final String JAVA_PREFIX = "java.";
+
+	private Logger logger = null;
+	private Installer installer = null;
+	private MessageRenderer messageRenderer = null;
+    private AntOutputRenderer antOutputRenderer = null;
+    private Runner runner = null;
+    private Page currentPage = null;
+    private java.io.File fileRoot = null; // ant basedir
+    private BuildListener buildListener = null;
+    private AntLauncherFilter antRunner = null;
+    private String uIOverride = null;
+    private String installerConfigFile = LoadConfigFilter.INSTALLER_CONFIG_FILE;
+    private String antBuildFile = "build.xml";
+    private String configResource;
+    
+    
+    // called after the Ant part has been run
+    private boolean installedSucceded = false;
+     
+	public InstallerContext() {
+	}
+
+	public void setInstallSucceded(boolean installedSucceded){
+		this.installedSucceded=installedSucceded;
+	}
+	public boolean isInstallSucceded(){
+		return installedSucceded;
+	}
+	
+	public void log(String message){
+		if(logger != null) {
+            logger.log(message);
+        }
+	}
+	public void log(Throwable message){
+		if(logger != null) {
+            logger.log(message);
+        }
+	}
+    public void log(boolean vebose, Throwable message){
+        if(vebose && logger != null) {
+            logger.log(message);
+        }
+    }
+
+	/**
+	 * Check to see if the system is windoze to be able to return the correct prompted
+	 * directories.  This method should be IsNotWindows since it assumes anything
+	 * that is not windows is Unix
+	 * @return boolean true if not windows in the os.name System Property
+	 */
+	public static boolean isUnix(){
+		return System.getProperty("os.name").toLowerCase().indexOf("windows") == -1;
+	}
+
+	/**
+	 * Use the standard Ant way to load the environment variables, this is not all inclusive
+	 * (but will be come Java 1.5 I imagine)
+	 * @return Properties
+	 */
+	public static Properties getEnvironment(){
+		Properties props = new Properties();
+		try {
+			Vector osEnv = Execute.getProcEnvironment();
+			for (Enumeration e = osEnv.elements(); e.hasMoreElements(); ) {
+				String entry = (String) e.nextElement();
+				int pos = entry.indexOf('=');
+				if (pos != -1) {
+					props.put(ENV_PREFIX + entry.substring(0, pos),
+							  entry.substring(pos + 1));
+				}
+			}
+		}
+		catch (Exception ex) {
+			// swallow exceptions so this can be loaded statically
+			// bit of a bugger if you need the environment on Mac OS 9 but not all apps
+			// do so we don't want to die inother situations
+			System.out.println("Can't load environment:"+ex.getClass()+","+ex.getMessage());
+		}
+		Properties javaSysProps = System.getProperties();
+		Iterator iter = javaSysProps.keySet().iterator();
+		while (iter.hasNext()) {
+			Object key = (Object)iter.next();
+			props.put(JAVA_PREFIX+key.toString(),javaSysProps.get(key));
+		}
+		return props;
+	}
+
+	// Bean methods
+	public Installer getInstaller() {
+		return installer;
+	}
+
+	public String getMinJavaVersion() {
+		return installer.getMinJavaVersion();
+	}
+
+	public MessageRenderer getMessageRenderer() {
+		return messageRenderer;
+	}
+
+	public void setMessageRenderer(MessageRenderer messageRenderer) {
+		this.messageRenderer = messageRenderer;
+		this.messageRenderer.setInstallerContext(this);
+	}
+	
+    public AntOutputRenderer getAntOutputRenderer() {
+		return antOutputRenderer;
+    }
+    
+    public void setAntOutputRenderer(AntOutputRenderer antOutputRenderer) {
+		this.antOutputRenderer = antOutputRenderer;
+    }
+    
+    public Page getCurrentPage() {
+		return currentPage;
+    }
+    
+    public void setCurrentPage(Page currentPage) {
+		this.currentPage = currentPage;
+    }
+	/**
+	 * in SelfExtractor - the directory the install has extracted to <br/>
+	 * in Scripted installs - the base directory of the install      <br/>
+	 * in NonExtractor - the temporary space created for the build   <br/> 
+	 * @return 
+	 */
+	public File getFileRoot() {
+		return fileRoot;
+	}
+
+	public void setFileRoot(File fileRoot) {
+		this.fileRoot = fileRoot;
+	}
+
+	public org.apache.tools.ant.BuildListener getBuildListener() {
+		return buildListener;
+	}
+
+	public void setBuildListener(org.apache.tools.ant.BuildListener buildListener) {
+		this.buildListener = buildListener;
+	}
+
+	public AntLauncherFilter getAntRunner() {
+		return antRunner;
+	}
+
+	public void setAntRunner(AntLauncherFilter antRunner) {
+		this.antRunner = antRunner;
+	}
+
+	public Logger getLogger() {
+		return logger;
+	}
+
+	public void setLogger(Logger logger) {
+		this.logger = logger;
+	}
+
+	public Runner getRunner() {
+		return runner;
+	}
+
+	public void setRunner(Runner runner) {
+		this.runner = runner;
+	}
+
+	public void setInstaller(Installer installer) {
+		this.installer = installer;
+	}
+
+	public String getUIOverride() {
+		return uIOverride;
+	}
+
+	public void setUIOverride(String override) {
+		uIOverride = override;
+	}
+	
+	public boolean isAutoBuild(){
+		return uIOverride != null && uIOverride.indexOf("-auto") > -1;
+	}
+
+	/**
+	 * RFE 1569628, the antinstaller config file to use, defaults to antinstall-config.xml
+	 * @return
+	 */
+	public String getInstallerConfigFile() {
+		return installerConfigFile;
+	}
+
+	public void setInstallerConfigFile(String installerConfigFile) {
+		this.installerConfigFile = installerConfigFile;
+	}
+	/**
+	 * RFE 1569628, the build file to use, defaults to build.xml
+	 * There should never be any path info, that is derived elsewhere
+	 * @return
+	 */
+	public String getAntBuildFile() {
+		return antBuildFile;
+	}
+
+	public void setAntBuildFile(String antBuildFile) {
+		this.antBuildFile = antBuildFile;
+	}
+
+	public String getConfigResource() {
+		return configResource;
+	}
+
+	public void setConfigResource(String configResource) {
+		this.configResource = configResource;
+	}
+}
+
+
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/PropertiesFileRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/PropertiesFileRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/PropertiesFileRenderer.java	(revision 14989)
@@ -0,0 +1,43 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller;
+
+import java.io.File;
+/**
+ *
+ * <p>Renders a properties file in the base directory for Ant to use and
+ *  available for viewing after for Debug</p>
+ * In earlier versions this was the only way to access properties it is now
+ * mostly redundant.
+ * @author Paul Hinds
+ * @version $Id: PropertiesFileRenderer.java,v 1.4 2006/12/23 04:07:23 teknopaul Exp $
+ */
+public interface PropertiesFileRenderer {
+
+	public static final String FILE_ROOT_PROPERTY = "basedir";
+    public static final String INSTALLER_VERSION_PROPERTY = "ant.install.config.version";
+	public static final String PROPERTIES_FILE_NAME = "ant.install.properties";
+	public static final String TARGETS_SUFFIX = "-targets";
+
+	/**
+	 * This method no longer throws IOException since the requirement to print properties
+	 * has been removed.  By default properties will be printed since they are usefull
+	 * for debug but classes implementing this method should swallow all Exceptions
+	 * @param ctx InstallerContext
+	 * @param baseDir File
+	 */
+	public void renderProperties(InstallerContext ctx, File baseDir);
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/ResourceBundleHelper.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/ResourceBundleHelper.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/ResourceBundleHelper.java	(revision 14989)
@@ -0,0 +1,111 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller;
+
+import java.text.MessageFormat;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Helper class that will catch missing bundle entries and handle formatting
+ * of message strings
+ *
+ * @author mwilson
+ * @version $Id
+ * @since 0.7.4 patch 7
+ */
+public class ResourceBundleHelper
+{
+    private String bundleName;
+    private ResourceBundle resourceBundle;
+
+    private static final Object[] EMPTY_OBJ_ARRAY = new Object[0];
+    private static final String EMPTY_STRING = "";
+
+    public ResourceBundleHelper( final String bundleName )
+    {
+        this.bundleName = bundleName;
+        resourceBundle = ResourceBundle.getBundle( bundleName );
+    }
+
+    public String getMessage( final String key )
+    {
+        return getMessage( key, EMPTY_OBJ_ARRAY );
+    }
+
+    public String getMessage( final String key, final Object obj  )
+    {
+        return getMessage( key, new Object[] { obj } );
+    }
+
+    /**
+     * Return a formatted message string.
+     * @param key resource bundle key
+     * @param objArray array of objects that will be used with formatting
+     *                 string
+     * @return formatted string or error message if the resource bundle
+     *         entry is missing
+     */
+    public String getMessage( String key, Object objArray[] )
+    {
+        String message;
+
+        //Replace null values with empty strings - safer
+        for( int i = 0; i < objArray.length; i++ )
+        {
+            if( objArray[i] == null )
+            {
+                objArray[i] = EMPTY_STRING;
+            }
+        }
+
+        String formatStr = null;
+
+        try
+        {
+            formatStr = resourceBundle.getString( key );
+        }
+        catch( MissingResourceException missingResExc )
+        {
+            //Handle missing resource below...
+        }
+
+        if( formatStr == null )
+        {
+            StringBuffer strBuffer = new StringBuffer( "Message entry with key " );
+            strBuffer.append( key );
+            strBuffer.append( " is missing from resource bundle " );
+            strBuffer.append( bundleName );
+            strBuffer.append( "\n" );
+            strBuffer.append( bundleName );
+            strBuffer.append( ":: " );
+            strBuffer.append( key );
+            for( int i = 0; i < objArray.length; i++ )
+            {
+                strBuffer.append( " " );
+                strBuffer.append( objArray[i].toString() );
+            }
+
+            message = strBuffer.toString();
+        }
+        else
+        {
+            MessageFormat msgformat = new MessageFormat( formatStr );
+            message = msgformat.format( ( (Object) ( objArray ) ) );
+        }
+
+        return message;
+    }
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/ValidationException.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/ValidationException.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/ValidationException.java	(revision 14989)
@@ -0,0 +1,32 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller;
+/**
+ *
+ * <p>Thrown if there is a failure during validation of human entered input. </p>
+ * @author Paul Hinds
+ * @version $Id: ValidationException.java,v 1.1.1.1 2005/10/18 18:20:52 teknopaul Exp $
+ */
+public class ValidationException extends InstallException{
+	public ValidationException() {
+	}
+	public ValidationException(String message) {
+		super(message);
+	}
+	public ValidationException(String message,Throwable cause) {
+		super(message,cause);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.2.dtd
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.2.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.2.dtd	(revision 14989)
@@ -0,0 +1,120 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.3.dtd
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.3.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.3.dtd	(revision 14989)
@@ -0,0 +1,121 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.4.dtd
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.4.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.4.dtd	(revision 14989)
@@ -0,0 +1,122 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.5.dtd
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.5.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.5.dtd	(revision 14989)
@@ -0,0 +1,125 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+<!ATTLIST installer antialiased CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+<!ATTLIST page splashResource NMTOKEN #IMPLIED >
+<!ATTLIST page altText NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.6.dtd
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.6.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.6.dtd	(revision 14989)
@@ -0,0 +1,132 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+<!ATTLIST installer antialiased CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | large-select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+<!ATTLIST page splashResource NMTOKEN #IMPLIED >
+<!ATTLIST page altText NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT large-select ( option+ ) >
+<!ATTLIST large-select defaultValue CDATA #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST large-select displayText CDATA #REQUIRED >
+<!ATTLIST large-select property NMTOKEN #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.7.dtd
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.7.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.7.dtd	(revision 14989)
@@ -0,0 +1,157 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer debug (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+<!ATTLIST installer antialiased CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root defaultValueWin CDATA #IMPLIED >
+<!ATTLIST app-root create (true | false) #IMPLIED  >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root checkExists (true | false) #IMPLIED  >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+<!ATTLIST target osSpecific CDATA #IMPLIED >
+<!ATTLIST target strict CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | large-select | target-select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name CDATA #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+
+<!-- License page attributes -->
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+
+<!-- Splash page attributes -->
+<!ATTLIST page splashResource CDATA #IMPLIED >
+<!ATTLIST page altText CDATA #IMPLIED >
+
+<!-- Progress page attributes -->
+<!ATTLIST page showTargets NMTOKEN #IMPLIED >
+
+<!-- Input page attributes -->
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+<!ATTLIST page ifProperty CDATA #IMPLIED >
+<!ATTLIST page overflow CDATA #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT large-select ( option+ ) >
+<!ATTLIST large-select defaultValue CDATA #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST large-select displayText CDATA #REQUIRED >
+<!ATTLIST large-select property NMTOKEN #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT target-select ( option+ ) >
+<!ATTLIST target-select defaultValue CDATA #REQUIRED >
+<!ATTLIST target-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST target-select displayText CDATA #REQUIRED >
+<!ATTLIST target-select property NMTOKEN #REQUIRED >
+<!ATTLIST target-select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+<!ATTLIST password textMask CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue CDATA #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.8.dtd
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.8.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antinstall-config-0.8.dtd	(revision 14989)
@@ -0,0 +1,205 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+<!ATTLIST validated name NMTOKEN #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+<!ATTLIST file name NMTOKEN #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+<!ATTLIST option name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #IMPLIED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+<!ATTLIST comment name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+<!ATTLIST checkbox name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer debug (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+<!ATTLIST installer antialiased CDATA #IMPLIED >
+<!ATTLIST installer wide CDATA #IMPLIED >
+<!ATTLIST installer loadDefaults (true | prompt | false) #IMPLIED  >
+<!ATTLIST installer version CDATA #IMPLIED  >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+<!ATTLIST directory name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root defaultValueWin CDATA #IMPLIED >
+<!ATTLIST app-root create (true | false) #IMPLIED  >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root checkExists (true | false) #IMPLIED  >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+<!ATTLIST app-root name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+<!ATTLIST target osSpecific CDATA #IMPLIED >
+<!ATTLIST target strict CDATA #IMPLIED >
+<!ATTLIST target name NMTOKEN #IMPLIED >
+
+<!ELEMENT conditional  ( hidden+ ) >
+<!ATTLIST conditional ifProperty CDATA #REQUIRED >
+<!ELEMENT hidden EMPTY >
+<!ATTLIST hidden property NMTOKEN #REQUIRED >
+<!ATTLIST hidden value CDATA #REQUIRED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | large-select | target-select | directory | file | target | validated | password | password-confirm | date | hidden | conditional )* >
+<!ATTLIST page name CDATA #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page postDisplayTarget NMTOKEN #IMPLIED >
+
+
+<!-- License page attributes -->
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+
+<!-- Splash page attributes -->
+<!ATTLIST page splashResource CDATA #IMPLIED >
+<!ATTLIST page altText CDATA #IMPLIED >
+
+<!-- Text page attributes -->
+<!ATTLIST page htmlResource CDATA #IMPLIED >
+<!ATTLIST page textResource CDATA #IMPLIED >
+
+<!-- Progress page attributes -->
+<!ATTLIST page showTargets NMTOKEN #IMPLIED >
+
+<!-- Input page attributes -->
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+<!ATTLIST page ifProperty CDATA #IMPLIED >
+<!ATTLIST page overflow CDATA #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+
+<!ELEMENT large-select ( option+ ) >
+<!ATTLIST large-select defaultValue CDATA #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST large-select displayText CDATA #REQUIRED >
+<!ATTLIST large-select property NMTOKEN #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+
+
+<!ELEMENT target-select ( option+ ) >
+<!ATTLIST target-select defaultValue CDATA #REQUIRED >
+<!ATTLIST target-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST target-select displayText CDATA #REQUIRED >
+<!ATTLIST target-select property NMTOKEN #REQUIRED >
+<!ATTLIST target-select explanatoryText CDATA #IMPLIED >
+
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+<!ATTLIST password textMask CDATA #IMPLIED >
+<!ATTLIST password name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT password-confirm EMPTY >
+<!ATTLIST password-confirm defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password-confirm regex CDATA #IMPLIED >
+<!ATTLIST password-confirm displayText CDATA #REQUIRED >
+<!ATTLIST password-confirm property NMTOKEN #REQUIRED >
+<!ATTLIST password-confirm explanatoryText CDATA #IMPLIED >
+<!ATTLIST password-confirm textMask CDATA #IMPLIED >
+<!ATTLIST password-confirm origField CDATA #REQUIRED >
+<!ATTLIST password-confirm name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue CDATA #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+<!ATTLIST date name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+<!ATTLIST text name NMTOKEN #IMPLIED >
+
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/FeedbackListener.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/FeedbackListener.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/FeedbackListener.java	(revision 14989)
@@ -0,0 +1,104 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.antmod;
+
+import java.util.ResourceBundle;
+
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.BuildListener;
+import org.tp23.antinstaller.renderer.swing.SwingInstallerContext;
+/**
+ *
+ * <p>Reports a message in the swing UI this mesage is reported in the
+ * top of the window. </p>
+ * <p>The Listeners should apparently never uses System.out or System.err</p>
+ * This class is not really an Ant modification since it simply implements
+ * a public interface but is here on the offchance that one day Ant changes
+ * it's APIs
+ * @author Paul Hinds
+ * @version $Id: FeedbackListener.java,v 1.1.1.1 2005/10/18 18:20:52 teknopaul Exp $
+ */
+public class FeedbackListener implements BuildListener{
+
+	private final SwingInstallerContext swingCtx;
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+	public FeedbackListener(SwingInstallerContext swingCtx) {
+		this.swingCtx=swingCtx;
+	}
+
+	/**
+	 * buildStarted This event results in User notification
+	 *
+	 * @param buildEvent BuildEvent
+	 */
+	public void buildStarted(BuildEvent buildEvent) {
+		//swingCtx.provideAntFeedBack(buildEvent.getMessage());
+		swingCtx.buildStarted(buildEvent);
+	}
+
+	/**
+	 * buildFinished This event results in User notification
+	 *
+	 * @param buildEvent BuildEvent
+	 */
+	public void buildFinished(BuildEvent buildEvent) {
+		swingCtx.provideAntFeedBack(res.getString("installFinished"));
+		swingCtx.buildFinished(buildEvent);
+	}
+
+	/**
+	 * targetStarted This event results in User notification
+	 *
+	 * @param buildEvent BuildEvent
+	 */
+	public void targetStarted(BuildEvent buildEvent) {
+		swingCtx.provideAntFeedBack(res.getString("running")+buildEvent.getTarget());
+		swingCtx.targetStarted(buildEvent);
+	}
+
+	/**
+	 * targetFinished This event is ignored
+	 * @param buildEvent BuildEvent
+	 */
+	public void targetFinished(BuildEvent buildEvent) {
+		swingCtx.targetFinished(buildEvent);
+	}
+
+	/**
+	 * taskStarted This event is ignored
+	 * @param buildEvent BuildEvent
+	 */
+	public void taskStarted(BuildEvent buildEvent) {
+		//swingCtx.provideAntFeedBack(buildEvent.getMessage());
+	}
+
+	/**
+	 * taskFinished This event is ignored
+	 * @param buildEvent BuildEvent
+	 */
+	public void taskFinished(BuildEvent buildEvent) {
+		//swingCtx.provideAntFeedBack(buildEvent.getMessage());
+	}
+
+	/**
+	 * messageLogged This event is ignored
+	 * @param buildEvent BuildEvent
+	 */
+	public void messageLogged(BuildEvent buildEvent) {
+		//swingCtx.provideAntFeedBack(buildEvent.getMessage());
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java	(revision 14989)
@@ -0,0 +1,139 @@
+/*
+ * Copyright  2001-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ *
+ */
+
+package org.tp23.antinstaller.antmod;
+
+import java.util.Vector;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.util.regexp.RegexpMatcher;
+import org.apache.tools.ant.util.regexp.RegexpUtil;
+
+/**
+ * Implementation of RegexpMatcher for the built-in regexp matcher of
+ * JDK 1.4. UNIX_LINES option is enabled as a default.
+ *
+ */
+public class Jdk14RegexpMatcher implements RegexpMatcher {
+
+    private String pattern;
+
+    public Jdk14RegexpMatcher() {
+    }
+
+    /**
+     * Set the regexp pattern from the String description.
+     */
+    public void setPattern(String pattern) {
+        this.pattern = pattern;
+    }
+
+    /**
+     * Get a String representation of the regexp pattern
+     */
+    public String getPattern() {
+        return pattern;
+    }
+
+    protected Pattern getCompiledPattern(int options)
+        throws BuildException {
+        int cOptions = getCompilerOptions(options);
+        try {
+            Pattern p = Pattern.compile(this.pattern, cOptions);
+            return p;
+        } catch (PatternSyntaxException e) {
+            throw new BuildException(e);
+        }
+    }
+
+    /**
+     * Does the given argument match the pattern?
+     */
+    public boolean matches(String argument) throws BuildException {
+        return matches(argument, MATCH_DEFAULT);
+    }
+
+    /**
+     * Does the given argument match the pattern?
+     */
+    public boolean matches(String input, int options)
+        throws BuildException {
+        try {
+            Pattern p = getCompiledPattern(options);
+            return p.matcher(input).find();
+        } catch (Exception e) {
+            throw new BuildException(e);
+        }
+    }
+
+    /**
+     * Returns a Vector of matched groups found in the argument.
+     *
+     * <p>Group 0 will be the full match, the rest are the
+     * parenthesized subexpressions</p>.
+     */
+    public Vector getGroups(String argument) throws BuildException {
+        return getGroups(argument, MATCH_DEFAULT);
+    }
+
+    /**
+     * Returns a Vector of matched groups found in the argument.
+     *
+     * <p>Group 0 will be the full match, the rest are the
+     * parenthesized subexpressions</p>.
+     */
+    public Vector getGroups(String input, int options)
+        throws BuildException {
+        Pattern p = getCompiledPattern(options);
+        Matcher matcher = p.matcher(input);
+        if (!matcher.find()) {
+            return null;
+        }
+        Vector v = new Vector();
+        int cnt = matcher.groupCount();
+        for (int i = 0; i <= cnt; i++) {
+            String match = matcher.group(i);
+            // treat non-matching groups as empty matches
+            if (match == null) {
+                match = "";
+            }
+            v.addElement(match);
+        }
+        return v;
+    }
+
+    protected int getCompilerOptions(int options) {
+        // be strict about line separator
+        int cOptions = Pattern.UNIX_LINES;
+
+        if (RegexpUtil.hasFlag(options, MATCH_CASE_INSENSITIVE)) {
+            cOptions |= Pattern.CASE_INSENSITIVE;
+        }
+        if (RegexpUtil.hasFlag(options, MATCH_MULTILINE)) {
+            cOptions |= Pattern.MULTILINE;
+        }
+        if (RegexpUtil.hasFlag(options, MATCH_SINGLELINE)) {
+            cOptions |= Pattern.DOTALL;
+        }
+
+        return cOptions;
+    }
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Jdk14RegexpRegexp.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Jdk14RegexpRegexp.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Jdk14RegexpRegexp.java	(revision 14989)
@@ -0,0 +1,92 @@
+/*
+ * Copyright  2001-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ *
+ */
+package org.tp23.antinstaller.antmod;
+
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.util.regexp.Regexp;
+import org.apache.tools.ant.util.regexp.RegexpUtil;
+
+
+/***
+ * Regular expression implementation using the JDK 1.4 regular expression package
+ */
+public class Jdk14RegexpRegexp extends Jdk14RegexpMatcher implements Regexp {
+
+    public Jdk14RegexpRegexp() {
+        super();
+    }
+
+    protected int getSubsOptions(int options) {
+        int subsOptions = REPLACE_FIRST;
+        if (RegexpUtil.hasFlag(options, REPLACE_ALL)) {
+            subsOptions = REPLACE_ALL;
+        }
+        return subsOptions;
+    }
+
+    public String substitute(String input, String argument, int options)
+        throws BuildException {
+        // translate \1 to $(1) so that the Matcher will work
+        StringBuffer subst = new StringBuffer();
+        for (int i = 0; i < argument.length(); i++) {
+            char c = argument.charAt(i);
+            if (c == '$') {
+                subst.append('\\');
+                subst.append('$');
+            } else if (c == '\\') {
+                if (++i < argument.length()) {
+                    c = argument.charAt(i);
+                    int value = Character.digit(c, 10);
+                    if (value > -1) {
+                        subst.append("$").append(value);
+                    } else {
+                        subst.append(c);
+                    }
+                } else {
+                    // XXX - should throw an exception instead?
+                    subst.append('\\');
+                }
+            } else {
+                subst.append(c);
+            }
+        }
+        argument = subst.toString();
+
+        int sOptions = getSubsOptions(options);
+        Pattern p = getCompiledPattern(options);
+        StringBuffer sb = new StringBuffer();
+
+        Matcher m = p.matcher(input);
+        if (RegexpUtil.hasFlag(sOptions, REPLACE_ALL)) {
+            sb.append(m.replaceAll(argument));
+        } else {
+            boolean res = m.find();
+            if (res) {
+                m.appendReplacement(sb, argument);
+                m.appendTail(sb);
+            } else {
+                sb.append(input);
+            }
+        }
+
+        return sb.toString();
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Launcher.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Launcher.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Launcher.java	(revision 14989)
@@ -0,0 +1,250 @@
+/*
+ * Copyright  2003-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ *
+ */
+package org.tp23.antinstaller.antmod;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+import org.apache.tools.ant.launch.LaunchException;
+import org.apache.tools.ant.launch.Locator;
+import org.tp23.antinstaller.InstallerContext;
+
+
+
+/**
+ *  This is a launcher for Ant.
+ *
+ * This file has been modified by Paul Hinds for Antinstaller and is not the same
+ * as the one delivered with Ant 1.6
+ *
+ * @since Ant 1.6
+ * @version $Id: Launcher.java,v 1.1.1.1 2005/10/18 18:20:54 teknopaul Exp $
+ */
+public class Launcher {
+	/** The Ant Home property */
+	public static final String ANTHOME_PROPERTY = "ant.home";
+
+
+	/** The Ant Library Directory property */
+	public static final String ANTLIBDIR_PROPERTY = "ant.library.dir";
+
+
+	/** The location of a per-user library directory */
+	public static final String USER_LIBDIR = ".ant/lib";
+
+
+	/** The startup class that is to be run */
+	public static final String MAIN_CLASS = "org.apache.tools.ant.Main";
+
+	private final Map allProperties;
+
+
+
+/**
+	 * Addtional Constructor to pass password properties to Ant
+	 * without saving them to a file.
+	 * Added by Paul Hinds
+	 * @param allProperties Properties
+	 */
+	public Launcher(Map allProperties) {
+		this.allProperties = allProperties;
+	}
+
+
+
+/**
+	 * Run the launcher to launch Ant
+	 *
+	 * @param args the command line arguments
+	 *
+	 * @exception MalformedURLException if the URLs required for the classloader
+	 *            cannot be created.
+	 */
+	public int run(String[] args, InstallerContext cxt) throws LaunchException, MalformedURLException {
+
+		try {
+
+			String antHomeProperty = System.getProperty(ANTHOME_PROPERTY);
+			File antHome = null;
+
+			File jarDir = null;
+
+			File sourceJar = Locator.getClassSource(getClass());
+			jarDir = sourceJar.getParentFile();
+
+			if (antHomeProperty != null) {
+				antHome = new File(antHomeProperty);
+			}
+
+			if (antHome == null || !antHome.exists()) {
+				antHome = jarDir.getParentFile();
+				System.setProperty(ANTHOME_PROPERTY, antHome.getAbsolutePath());
+			}
+
+			if (!antHome.exists()) {
+				throw new LaunchException("Ant home is set incorrectly or ant could not be located");
+			}
+
+			List libPaths = new ArrayList();
+			List argList = new ArrayList();
+			String[] newArgs;
+
+			for (int i = 0; i < args.length; ++i) {
+				if (args[i].equals("-lib")) {
+					if (i == args.length - 1) {
+						throw new LaunchException("The -lib argument must be followed by a library location");
+					}
+					libPaths.add(args[++i]);
+				}
+				else {
+					argList.add(args[i]);
+				}
+			}
+
+			if (libPaths.size() == 0) {
+				newArgs = args;
+			}
+			else {
+				newArgs = (String[]) argList.toArray(new String[0]);
+			}
+
+			List libPathURLs = new ArrayList();
+			for (Iterator i = libPaths.iterator(); i.hasNext(); ) {
+				String libPath = (String) i.next();
+				StringTokenizer myTokenizer
+					= new StringTokenizer(libPath, System.getProperty("path.separator"));
+				while (myTokenizer.hasMoreElements()) {
+					String elementName = myTokenizer.nextToken();
+					File element = new File(elementName);
+					if (elementName.indexOf("%") != -1 && !element.exists()) {
+						continue;
+					}
+					if (element.isDirectory()) {
+						// add any jars in the directory
+						URL[] dirURLs = Locator.getLocationURLs(element);
+						for (int j = 0; j < dirURLs.length; ++j) {
+							libPathURLs.add(dirURLs[j]);
+						}
+					}
+
+					libPathURLs.add(element.toURL());
+				}
+			}
+
+			URL[] libJars = (URL[]) libPathURLs.toArray(new URL[0]);
+
+			// Now try and find JAVA_HOME
+			File toolsJar = Locator.getToolsJar();
+
+			// determine ant library directory for system jars: use property
+			// or default using location of ant-launcher.jar
+			File antLibDir = null;
+			String antLibDirProperty = System.getProperty(ANTLIBDIR_PROPERTY);
+			if (antLibDirProperty != null) {
+				antLibDir = new File(antLibDirProperty);
+			}
+			if ( (antLibDir == null) || !antLibDir.exists()) {
+				antLibDir = jarDir;
+				System.setProperty(ANTLIBDIR_PROPERTY, antLibDir.getAbsolutePath());
+			}
+			URL[] systemJars = Locator.getLocationURLs(antLibDir);
+
+			File userLibDir
+				= new File(System.getProperty("user.home"), USER_LIBDIR);
+			URL[] userJars = Locator.getLocationURLs(userLibDir);
+
+
+			int numJars = libJars.length + userJars.length + systemJars.length;
+			if (toolsJar != null) {
+				numJars++;
+			}
+			URL[] jars = new URL[numJars];
+			System.arraycopy(libJars, 0, jars, 0, libJars.length);
+			System.arraycopy(userJars, 0, jars, libJars.length, userJars.length);
+			System.arraycopy(systemJars, 0, jars, userJars.length + libJars.length,
+							 systemJars.length);
+
+			if (toolsJar != null) {
+				jars[jars.length - 1] = toolsJar.toURL();
+			}
+
+
+			// now update the class.path property
+			StringBuffer baseClassPath
+				= new StringBuffer(System.getProperty("java.class.path"));
+			if (baseClassPath.charAt(baseClassPath.length() - 1)
+				== File.pathSeparatorChar) {
+				baseClassPath.setLength(baseClassPath.length() - 1);
+			}
+
+			for (int i = 0; i < jars.length; ++i) {
+				baseClassPath.append(File.pathSeparatorChar);
+				baseClassPath.append(Locator.fromURI(jars[i].toString()));
+			}
+
+			System.setProperty("java.class.path", baseClassPath.toString());
+
+			URLClassLoader loader = new URLClassLoader(jars);
+			Thread.currentThread().setContextClassLoader(loader);
+			try {
+				Main main = new Main();
+				Properties props = new Properties();
+				props.putAll(allProperties);
+				return main.startAnt(newArgs, props, null, cxt);
+			}
+			catch (Throwable t) {
+				t.printStackTrace();
+				return 1;
+			}
+		}
+		catch (Throwable ex) {
+			// Essentially all of the above is nice to have as far as AntInstaller is concerned
+			// ant.home may not be available when installing and application on a client that does not
+			// have and never will have Ant.  However the code is left since sometimes AntInstaller can be used
+			// for a general gui for Ant builds and features such and ANT_HOME/lib are useful
+			try {
+				System.setProperty(ANTHOME_PROPERTY, new File(".").getAbsolutePath());
+				Main main = new Main();
+				// fix for bug:1177191
+				// remove the -lib as discovered by Mark Anderson
+				String[] newArgs = new String[args.length-2];
+				for(int i=0,n=0;i<args.length;i++){
+					if(args[i].equals("-lib")){
+						i++;
+						continue;
+					}
+					newArgs[n++]=args[i];
+				}
+				Properties props = new Properties();
+				props.putAll(allProperties);
+				return main.startAnt(newArgs, props, null, cxt);
+			}
+			catch (Throwable t) {
+				t.printStackTrace();
+				return 1;
+			}
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Main.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Main.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/Main.java	(revision 14989)
@@ -0,0 +1,1064 @@
+/*
+ * Copyright  2000-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ *
+ */
+package org.tp23.antinstaller.antmod;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.util.Enumeration;
+import java.util.Properties;
+import java.util.Vector;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.BuildListener;
+import org.apache.tools.ant.BuildLogger;
+import org.apache.tools.ant.DefaultLogger;
+import org.apache.tools.ant.Diagnostics;
+import org.apache.tools.ant.ExitStatusException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.ProjectHelper;
+import org.apache.tools.ant.Target;
+import org.apache.tools.ant.input.DefaultInputHandler;
+import org.apache.tools.ant.input.InputHandler;
+import org.apache.tools.ant.launch.AntMain;
+import org.apache.tools.ant.util.JavaEnvUtils;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.PropertiesFileRenderer;
+
+
+/**
+ * Command line entry point into Ant. This class is entered via the
+ * canonical `public static void main` entry point and reads the
+ * command line arguments. It then assembles and executes an Ant
+ * project.
+ * <p>
+ * If you integrating Ant into some other tool, this is not the class
+ * to use as an entry point. Please see the source code of this
+ * class to see how it manipulates the Ant project classes.
+ *
+* This file has been modified by Paul Hinds for Antinstaller and is not the same
+* as the one delivered with Ant 1.6
+* @version $Id: Main.java,v 1.5 2007/01/12 10:41:48 anothermwilson Exp $
+ */
+public class Main implements AntMain {
+
+    /** The default build file name. */
+    public static final String DEFAULT_BUILD_FILENAME = "build.xml";
+
+    /** Our current message output status. Follows Project.MSG_XXX. */
+    private int msgOutputLevel = Project.MSG_INFO;
+
+    /** File that we are using for configuration. */
+    private File buildFile; /* null */
+
+    /** Stream to use for logging. */
+    private static PrintStream out = System.out;
+
+    /** Stream that we are using for logging error messages. */
+    private static PrintStream err = System.err;
+
+    /** The build targets. */
+    private Vector targets = new Vector();
+
+    /** Set of properties that can be used by tasks. */
+    private Properties definedProps = new Properties();
+
+    /** Names of classes to add as listeners to project. */
+    private Vector listeners = new Vector(1);
+
+    /** File names of property files to load on startup. */
+    private Vector propertyFiles = new Vector(1);
+
+    /** Indicates whether this build is to support interactive input */
+    private boolean allowInput = true;
+
+    /** keep going mode */
+    private boolean keepGoingMode = false;
+
+    /**
+     * The Ant logger class. There may be only one logger. It will have
+     * the right to use the 'out' PrintStream. The class must implements the
+     * BuildLogger interface.
+     */
+    private String loggerClassname = null;
+
+    /**
+     * The Ant InputHandler class.  There may be only one input
+     * handler.
+     */
+    private String inputHandlerClassname = null;
+
+    /**
+     * Whether or not output to the log is to be unadorned.
+     */
+    private boolean emacsMode = false;
+
+    /**
+     * Whether or not this instance has successfully been
+     * constructed and is ready to run.
+     */
+    private boolean readyToRun = false;
+
+    /**
+     * Whether or not we should only parse and display the project help
+     * information.
+     */
+    private boolean projectHelp = false;
+
+    /**
+     * Whether or not a logfile is being used. This is used to
+     * check if the output streams must be closed.
+     */
+    private static boolean isLogFileUsed = false;
+
+    /**
+     * optional thread priority
+     */
+    private Integer threadPriority = null;
+	/**
+	 * Installer Context
+	 */
+	private InstallerContext ctx = null;
+
+    /**
+     * Prints the message of the Throwable if it (the message) is not
+     * <code>null</code>.
+     *
+     * @param t Throwable to print the message of.
+     *          Must not be <code>null</code>.
+     */
+    private static void printMessage(Throwable t) {
+        String message = t.getMessage();
+        if (message != null) {
+            System.err.println(message);
+        }
+    }
+
+    /**
+     * Creates a new instance of this class using the
+     * arguments specified, gives it any extra user properties which have been
+     * specified, and then runs the build using the classloader provided.
+     *
+     * @param args Command line arguments. Must not be <code>null</code>.
+     * @param additionalUserProperties Any extra properties to use in this
+     *        build. May be <code>null</code>, which is the equivalent to
+     *        passing in an empty set of properties.
+     * @param coreLoader Classloader used for core classes. May be
+     *        <code>null</code> in which case the system classloader is used.
+     */
+    public static void start(String[] args, Properties additionalUserProperties,
+                             ClassLoader coreLoader) {
+        throw new UnsupportedOperationException("Required by Ant interface but not used");
+        //Main m = new Main();
+        //m.startAnt(args, additionalUserProperties, coreLoader);
+    }
+
+    
+	public void startAnt(String[] args, Properties additionalUserProperties,
+						 ClassLoader coreLoader) {
+        throw new UnsupportedOperationException("Required by Ant interface but not used");
+		//startAnt(args, additionalUserProperties, coreLoader, null); // FindBugs does not like this
+	}
+    /**
+     * Start Ant
+     * @param args command line args
+     * @param additionalUserProperties properties to set beyond those that
+     *        may be specified on the args list
+     * @param coreLoader - not used
+     * @return the return code that was used for System.exit() in the original Ant 
+     *
+     * @since Ant 1.6
+     */
+    public int startAnt(String[] args, Properties additionalUserProperties,
+                         ClassLoader coreLoader, InstallerContext ctx) {
+		 this.ctx = ctx;
+		 out = ctx.getAntOutputRenderer().getOut();
+		 err = ctx.getAntOutputRenderer().getErr();
+        try {
+            Diagnostics.validateVersion();
+            processArgs(args);
+        } catch (Throwable exc) {
+            handleLogfile();
+            printMessage(exc);
+            return 1;
+        }
+
+        if (additionalUserProperties != null) {
+            for (Enumeration e = additionalUserProperties.keys();
+                    e.hasMoreElements();) {
+                String key = (String) e.nextElement();
+                String property = additionalUserProperties.getProperty(key);
+                definedProps.put(key, property);
+            }
+        }
+
+        // expect the worst
+        int exitCode = 1;
+        try {
+            try {
+                runBuild(coreLoader);
+                exitCode = 0;
+            } catch (ExitStatusException ese) {
+                exitCode = ese.getStatus();
+                if (exitCode != 0) {
+                    throw ese;
+                }
+            }
+        } catch (BuildException be) {
+            if (err != System.err) {
+                printMessage(be);
+            }
+        } catch (Throwable exc) {
+            exc.printStackTrace();
+            printMessage(exc);
+        } finally {
+            handleLogfile();
+        }
+        //mod by Paul Hinds
+		return exitCode;
+		//System.exit(exitCode);
+    }
+
+    /**
+     * Close logfiles, if we have been writing to them.
+     *
+     * @since Ant 1.6
+     */
+    private static void handleLogfile() {
+        if (isLogFileUsed) {
+            if (out != null) {
+                try {
+                    out.close();
+                } catch (final Exception e) {
+                    //ignore
+                }
+            }
+            if (err != null) {
+                try {
+                    err.close();
+                } catch (final Exception e) {
+                    //ignore
+                }
+            }
+        }
+    }
+
+    /**
+     * Command line entry point. This method kicks off the building
+     * of a project object and executes a build using either a given
+     * target or the default target.
+     *
+     * @param args Command line arguments. Must not be <code>null</code>.
+     */
+//    public static void main(String[] args) {
+//        start(args, null, null);
+//    }
+//
+    /**
+     * Constructor used when creating Main for later arg processing
+     * and startup
+     */
+    public Main() {
+    }
+
+    /**
+     * Sole constructor, which parses and deals with command line
+     * arguments.
+     *
+     * @param args Command line arguments. Must not be <code>null</code>.
+     *
+     * @exception BuildException if the specified build file doesn't exist
+     *                           or is a directory.
+     *
+     * @deprecated
+     */
+    protected Main(String[] args) throws BuildException {
+        processArgs(args);
+    }
+
+    /**
+     * Process command line arguments.
+     * When ant is started from Launcher, the -lib argument does not get
+     * passed through to this routine.
+     *
+     * @param args the command line arguments.
+     *
+     * @since Ant 1.6
+     */
+    private void processArgs(String[] args) {
+        String searchForThis = null;
+        PrintStream logTo = null;
+
+        // cycle through given args
+
+        for (int i = 0; i < args.length; i++) {
+            String arg = args[i];
+
+            if (arg.equals("-help") || arg.equals("-h")) {
+                printUsage();
+                return;
+            } else if (arg.equals("-version")) {
+                printVersion();
+                return;
+            } else if (arg.equals("-diagnostics")) {
+                Diagnostics.doReport(System.out);
+                return;
+            } else if (arg.equals("-quiet") || arg.equals("-q")) {
+                msgOutputLevel = Project.MSG_WARN;
+            } else if (arg.equals("-verbose") || arg.equals("-v")) {
+                printVersion();
+                msgOutputLevel = Project.MSG_VERBOSE;
+            } else if (arg.equals("-debug") || arg.equals("-d")) {
+                printVersion();
+                msgOutputLevel = Project.MSG_DEBUG;
+            } else if (arg.equals("-noinput")) {
+                allowInput = false;
+            } else if (arg.equals("-logfile") || arg.equals("-l")) {
+                try {
+                    File logFile = new File(args[i + 1]);
+                    i++;
+                    logTo = new PrintStream(new FileOutputStream(logFile));
+                    isLogFileUsed = true;
+                } catch (IOException ioe) {
+                    String msg = "Cannot write on the specified log file. "
+                        + "Make sure the path exists and you have write "
+                        + "permissions.";
+                    throw new BuildException(msg);
+                } catch (ArrayIndexOutOfBoundsException aioobe) {
+                    String msg = "You must specify a log file when "
+                        + "using the -log argument";
+                    throw new BuildException(msg);
+                }
+            } else if (arg.equals("-buildfile") || arg.equals("-file")
+                       || arg.equals("-f")) {
+                try {
+                    buildFile = new File(args[i + 1].replace('/', File.separatorChar));
+                    i++;
+                } catch (ArrayIndexOutOfBoundsException aioobe) {
+                    String msg = "You must specify a buildfile when "
+                        + "using the -buildfile argument";
+                    throw new BuildException(msg);
+                }
+            } else if (arg.equals("-listener")) {
+                try {
+                    listeners.addElement(args[i + 1]);
+                    i++;
+                } catch (ArrayIndexOutOfBoundsException aioobe) {
+                    String msg = "You must specify a classname when "
+                        + "using the -listener argument";
+                    throw new BuildException(msg);
+                }
+            } else if (arg.startsWith("-D")) {
+
+                /* Interestingly enough, we get to here when a user
+                 * uses -Dname=value. However, in some cases, the OS
+                 * goes ahead and parses this out to args
+                 *   {"-Dname", "value"}
+                 * so instead of parsing on "=", we just make the "-D"
+                 * characters go away and skip one argument forward.
+                 *
+                 * I don't know how to predict when the JDK is going
+                 * to help or not, so we simply look for the equals sign.
+                 */
+
+                String name = arg.substring(2, arg.length());
+                String value = null;
+                int posEq = name.indexOf("=");
+                if (posEq > 0) {
+                    value = name.substring(posEq + 1);
+                    name = name.substring(0, posEq);
+                } else if (i < args.length - 1) {
+                    value = args[++i];
+                } else {
+                    throw new BuildException("Missing value for property "
+                                             + name);
+                }
+
+                definedProps.put(name, value);
+            } else if (arg.equals("-logger")) {
+                if (loggerClassname != null) {
+                    throw new BuildException("Only one logger class may "
+                        + " be specified.");
+                }
+                try {
+                    loggerClassname = args[++i];
+                } catch (ArrayIndexOutOfBoundsException aioobe) {
+                    throw new BuildException("You must specify a classname when"
+                                             + " using the -logger argument");
+                }
+            } else if (arg.equals("-inputhandler")) {
+                if (inputHandlerClassname != null) {
+                    throw new BuildException("Only one input handler class may "
+                                             + "be specified.");
+                }
+                try {
+                    inputHandlerClassname = args[++i];
+                } catch (ArrayIndexOutOfBoundsException aioobe) {
+                    throw new BuildException("You must specify a classname when"
+                                             + " using the -inputhandler"
+                                             + " argument");
+                }
+            } else if (arg.equals("-emacs") || arg.equals("-e")) {
+                emacsMode = true;
+            } else if (arg.equals("-projecthelp") || arg.equals("-p")) {
+                // set the flag to display the targets and quit
+                projectHelp = true;
+            } else if (arg.equals("-find") || arg.equals("-s")) {
+                // eat up next arg if present, default to build.xml
+                if (i < args.length - 1) {
+                    searchForThis = args[++i];
+                } else {
+                    searchForThis = DEFAULT_BUILD_FILENAME;
+                }
+            } else if (arg.startsWith("-propertyfile")) {
+                try {
+                    propertyFiles.addElement(args[i + 1]);
+                    i++;
+                } catch (ArrayIndexOutOfBoundsException aioobe) {
+                    String msg = "You must specify a property filename when "
+                        + "using the -propertyfile argument";
+                    throw new BuildException(msg);
+                }
+            } else if (arg.equals("-k") || arg.equals("-keep-going")) {
+                keepGoingMode = true;
+            } else if (arg.equals("-nice")) {
+                try {
+                    threadPriority=Integer.decode(args[i + 1]);
+                } catch (ArrayIndexOutOfBoundsException aioobe) {
+                    throw new BuildException(
+                            "You must supply a niceness value (1-10)"+
+                            " after the -nice option");
+                } catch (NumberFormatException e) {
+                    throw new BuildException("Unrecognized niceness value: " +
+                            args[i + 1]);
+                }
+                i++;
+                if(threadPriority.intValue()<Thread.MIN_PRIORITY ||
+                        threadPriority.intValue()>Thread.MAX_PRIORITY) {
+                    throw new BuildException(
+                            "Niceness value is out of the range 1-10");
+                }
+            } else if (arg.startsWith("-")) {
+                // we don't have any more args to recognize!
+                String msg = "Unknown argument: " + arg;
+                System.out.println(msg);
+                printUsage();
+                throw new BuildException("");
+            } else {
+                // if it's no other arg, it may be the target
+                targets.addElement(arg);
+            }
+        }
+
+        // if buildFile was not specified on the command line,
+        if (buildFile == null) {
+            // but -find then search for it
+            if (searchForThis != null) {
+                buildFile = findBuildFile(System.getProperty("user.dir"),
+                                          searchForThis);
+            } else {
+                buildFile = new File(DEFAULT_BUILD_FILENAME);
+            }
+        }
+
+        // make sure buildfile exists
+        if (!buildFile.exists()) {
+            System.out.println("Buildfile: " + buildFile + " does not exist!");
+            throw new BuildException("Build failed");
+        }
+
+        // make sure it's not a directory (this falls into the ultra
+        // paranoid lets check everything category
+
+        if (buildFile.isDirectory()) {
+            System.out.println("What? Buildfile: " + buildFile + " is a dir!");
+            throw new BuildException("Build failed");
+        }
+
+        // Load the property files specified by -propertyfile
+        for (int propertyFileIndex = 0;
+             propertyFileIndex < propertyFiles.size();
+             propertyFileIndex++) {
+            String filename
+                = (String) propertyFiles.elementAt(propertyFileIndex);
+            Properties props = new Properties();
+            FileInputStream fis = null;
+            try {
+                fis = new FileInputStream(filename);
+                props.load(fis);
+            } catch (IOException e) {
+                System.out.println("Could not load property file "
+                   + filename + ": " + e.getMessage());
+            } finally {
+                if (fis != null) {
+                    try {
+                        fis.close();
+                    } catch (IOException e) {
+                        // ignore
+                    }
+                }
+            }
+
+            // ensure that -D properties take precedence
+            Enumeration propertyNames = props.propertyNames();
+            while (propertyNames.hasMoreElements()) {
+                String name = (String) propertyNames.nextElement();
+                if (definedProps.getProperty(name) == null) {
+                    definedProps.put(name, props.getProperty(name));
+                }
+            }
+        }
+
+        if (msgOutputLevel >= Project.MSG_INFO) {
+            System.out.println("Buildfile: " + buildFile);
+        }
+
+        if (logTo != null) {
+            out = logTo;
+            err = logTo;
+            System.setOut(out);
+            System.setErr(err);
+        }
+        readyToRun = true;
+    }
+
+    /**
+     * Helper to get the parent file for a given file.
+     * <p>
+     * Added to simulate File.getParentFile() from JDK 1.2.
+     * @deprecated
+     *
+     * @param file   File to find parent of. Must not be <code>null</code>.
+     * @return       Parent file or null if none
+     */
+    private File getParentFile(File file) {
+        File parent = file.getParentFile();
+
+        if (parent != null && msgOutputLevel >= Project.MSG_VERBOSE) {
+            System.out.println("Searching in " + parent.getAbsolutePath());
+        }
+
+        return parent;
+    }
+
+    /**
+     * Search parent directories for the build file.
+     * <p>
+     * Takes the given target as a suffix to append to each
+     * parent directory in search of a build file.  Once the
+     * root of the file-system has been reached an exception
+     * is thrown.
+     *
+     * @param start  Leaf directory of search.
+     *               Must not be <code>null</code>.
+     * @param suffix  Suffix filename to look for in parents.
+     *                Must not be <code>null</code>.
+     *
+     * @return A handle to the build file if one is found
+     *
+     * @exception BuildException if no build file is found
+     */
+    private File findBuildFile(String start, String suffix)
+         throws BuildException {
+        if (msgOutputLevel >= Project.MSG_INFO) {
+            System.out.println("Searching for " + suffix + " ...");
+        }
+
+        File parent = new File(new File(start).getAbsolutePath());
+        File file = new File(parent, suffix);
+
+        // check if the target file exists in the current directory
+        while (!file.exists()) {
+            // change to parent directory
+            parent = getParentFile(parent);
+
+            // if parent is null, then we are at the root of the fs,
+            // complain that we can't find the build file.
+            if (parent == null) {
+                throw new BuildException("Could not locate a build file!");
+            }
+
+            // refresh our file handle
+            file = new File(parent, suffix);
+        }
+
+        return file;
+    }
+
+    /**
+     * Executes the build. If the constructor for this instance failed
+     * (e.g. returned after issuing a warning), this method returns
+     * immediately.
+     *
+     * @param coreLoader The classloader to use to find core classes.
+     *                   May be <code>null</code>, in which case the
+     *                   system classloader is used.
+     *
+     * @exception BuildException if the build fails
+     */
+    private void runBuild(ClassLoader coreLoader) throws BuildException {
+
+        if (!readyToRun) {
+            return;
+        }
+
+        final Project project = new Project();
+        project.setCoreLoader(coreLoader);
+
+        Throwable error = null;
+
+        try {
+            addBuildListeners(project);
+            addInputHandler(project);
+
+            PrintStream err = System.err;
+            PrintStream out = System.out;
+            InputStream in = System.in;
+
+            // use a system manager that prevents from System.exit()
+            // only in JDK > 1.1
+            SecurityManager oldsm = null;
+            if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_0)
+                && !JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) {
+                oldsm = System.getSecurityManager();
+
+                //SecurityManager can not be installed here for backwards
+                //compatibility reasons (PD). Needs to be loaded prior to
+                //ant class if we are going to implement it.
+                //System.setSecurityManager(new NoExitSecurityManager());
+            }
+            try {
+                if (allowInput) {
+                    project.setDefaultInputStream(System.in);
+                }
+                //System.setIn(new DemuxInputStream(project));
+                //System.setOut(new PrintStream(new DemuxOutputStream(project, false)));
+                //System.setErr(new PrintStream(new DemuxOutputStream(project, true)));
+
+
+                if (!projectHelp) {
+                    project.fireBuildStarted();
+                }
+
+                // set the thread priorities
+                if (threadPriority != null) {
+                    try {
+                        project.log("Setting Ant's thread priority to "
+                                + threadPriority,Project.MSG_VERBOSE);
+                        Thread.currentThread().setPriority(threadPriority.intValue());
+                    } catch (SecurityException swallowed) {
+                        //we cannot set the priority here.
+                        project.log("A security manager refused to set the -nice value");
+                    }
+                }
+
+                project.init();
+                project.setUserProperty("ant.version", getAntVersion());
+
+                // set user-define properties
+                Enumeration e = definedProps.keys();
+                while (e.hasMoreElements()) {
+                    String arg = (String) e.nextElement();
+                    String value = (String) definedProps.get(arg);
+                    project.setUserProperty(arg, value);
+                }
+
+                project.setUserProperty("ant.file",
+                                        buildFile.getAbsolutePath());
+                project.setKeepGoingMode(keepGoingMode);
+
+                ProjectHelper.configureProject(project, buildFile);
+
+				project.setBasedir(definedProps.getProperty(PropertiesFileRenderer.FILE_ROOT_PROPERTY));
+
+
+                if (projectHelp) {
+                    printDescription(project);
+                    printTargets(project, msgOutputLevel > Project.MSG_INFO);
+                    return;
+                }
+
+                // make sure that we have a target to execute
+                if (targets.size() == 0) {
+                    if (project.getDefaultTarget() != null) {
+                        targets.addElement(project.getDefaultTarget());
+                    }
+                }
+                project.executeTargets(targets);
+            } finally {
+                // put back the original security manager
+                //The following will never eval to true. (PD)
+                if (oldsm != null) {
+                    System.setSecurityManager(oldsm);
+                }
+
+                System.setOut(out);
+                System.setErr(err);
+                System.setIn(in);
+            }
+        } catch (RuntimeException exc) {
+            error = exc;
+            throw exc;
+        } catch (Error err) {
+            error = err;
+            throw err;
+        } finally {
+            if (!projectHelp) {
+                project.fireBuildFinished(error);
+            } else if (error != null) {
+                project.log(error.toString(), Project.MSG_ERR);
+            }
+        }
+    }
+
+    /**
+     * Adds the listeners specified in the command line arguments,
+     * along with the default listener, to the specified project.
+     *
+     * @param project The project to add listeners to.
+     *                Must not be <code>null</code>.
+     */
+    protected void addBuildListeners(Project project) {
+
+        // Add the default listener
+        project.addBuildListener(createLogger());
+
+		//Add the AntInstaller Listener
+        if(ctx.getBuildListener()!=null){
+        	project.addBuildListener(ctx.getBuildListener());
+        }
+
+        for (int i = 0; i < listeners.size(); i++) {
+            String className = (String) listeners.elementAt(i);
+            try {
+                BuildListener listener =
+                    (BuildListener) Class.forName(className).newInstance();
+                if (project != null) {
+                    project.setProjectReference(listener);
+                }
+                project.addBuildListener(listener);
+            } catch (Throwable exc) {
+                throw new BuildException("Unable to instantiate listener "
+                    + className, exc);
+            }
+        }
+    }
+
+    /**
+     * Creates the InputHandler and adds it to the project.
+     *
+     * @param project the project instance.
+     *
+     * @exception BuildException if a specified InputHandler
+     *                           implementation could not be loaded.
+     */
+    private void addInputHandler(Project project) throws BuildException {
+        InputHandler handler = null;
+        if (inputHandlerClassname == null) {
+            handler = new DefaultInputHandler();
+        } else {
+            try {
+                handler = (InputHandler)
+                    (Class.forName(inputHandlerClassname).newInstance());
+                if (project != null) {
+                    project.setProjectReference(handler);
+                }
+            } catch (ClassCastException e) {
+                String msg = "The specified input handler class "
+                    + inputHandlerClassname
+                    + " does not implement the InputHandler interface";
+                throw new BuildException(msg);
+            } catch (Exception e) {
+                String msg = "Unable to instantiate specified input handler "
+                    + "class " + inputHandlerClassname + " : "
+                    + e.getClass().getName();
+                throw new BuildException(msg);
+            }
+        }
+        project.setInputHandler(handler);
+    }
+
+    // XXX: (Jon Skeet) Any reason for writing a message and then using a bare
+    // RuntimeException rather than just using a BuildException here? Is it
+    // in case the message could end up being written to no loggers (as the
+    // loggers could have failed to be created due to this failure)?
+    /**
+     * Creates the default build logger for sending build events to the ant
+     * log.
+     *
+     * @return the logger instance for this build.
+     */
+    private BuildLogger createLogger() {
+        BuildLogger logger = null;
+        if (loggerClassname != null) {
+            try {
+                Class loggerClass = Class.forName(loggerClassname);
+                logger = (BuildLogger) (loggerClass.newInstance());
+            } catch (ClassCastException e) {
+                System.err.println("The specified logger class "
+                    + loggerClassname
+                    + " does not implement the BuildLogger interface");
+                throw new RuntimeException();
+            } catch (Exception e) {
+                System.err.println("Unable to instantiate specified logger "
+                    + "class " + loggerClassname + " : "
+                    + e.getClass().getName());
+                throw new RuntimeException();
+            }
+        } else {
+            logger = new DefaultLogger();
+        }
+
+        logger.setMessageOutputLevel(msgOutputLevel);
+        logger.setOutputPrintStream(out);
+        logger.setErrorPrintStream(err);
+        logger.setEmacsMode(emacsMode);
+
+        return logger;
+    }
+
+    /**
+     * Prints the usage information for this class to <code>System.out</code>.
+     */
+    private static void printUsage() {
+        String lSep = System.getProperty("line.separator");
+        StringBuffer msg = new StringBuffer();
+        msg.append("ant [options] [target [target2 [target3] ...]]" + lSep);
+        msg.append("Options: " + lSep);
+        msg.append("  -help, -h              print this message" + lSep);
+        msg.append("  -projecthelp, -p       print project help information" + lSep);
+        msg.append("  -version               print the version information and exit" + lSep);
+        msg.append("  -diagnostics           print information that might be helpful to" + lSep);
+        msg.append("                         diagnose or report problems." + lSep);
+        msg.append("  -quiet, -q             be extra quiet" + lSep);
+        msg.append("  -verbose, -v           be extra verbose" + lSep);
+        msg.append("  -debug, -d             print debugging information" + lSep);
+        msg.append("  -emacs, -e             produce logging information without adornments" + lSep);
+        msg.append("  -lib <path>            specifies a path to search for jars and classes" + lSep);
+        msg.append("  -logfile <file>        use given file for log" + lSep);
+        msg.append("    -l     <file>                ''" + lSep);
+        msg.append("  -logger <classname>    the class which is to perform logging" + lSep);
+        msg.append("  -listener <classname>  add an instance of class as a project listener" + lSep);
+        msg.append("  -noinput               do not allow interactive input" + lSep);
+        msg.append("  -buildfile <file>      use given buildfile" + lSep);
+        msg.append("    -file    <file>              ''" + lSep);
+        msg.append("    -f       <file>              ''" + lSep);
+        msg.append("  -D<property>=<value>   use value for given property" + lSep);
+        msg.append("  -keep-going, -k        execute all targets that do not depend" + lSep);
+        msg.append("                         on failed target(s)" + lSep);
+        msg.append("  -propertyfile <name>   load all properties from file with -D" + lSep);
+        msg.append("                         properties taking precedence" + lSep);
+        msg.append("  -inputhandler <class>  the class which will handle input requests" + lSep);
+        msg.append("  -find <file>           (s)earch for buildfile towards the root of" + lSep);
+        msg.append("    -s  <file>           the filesystem and use it" + lSep);
+        msg.append("  -nice  number          A niceness value for the main thread:" + lSep +
+                   "                         1 (lowest) to 10 (highest); 5 is the default" + lSep);
+        System.out.println(msg.toString());
+    }
+
+    /**
+     * Prints the Ant version information to <code>System.out</code>.
+     *
+     * @exception BuildException if the version information is unavailable
+     */
+    private static void printVersion() throws BuildException {
+        System.out.println(getAntVersion());
+    }
+
+    /**
+     * Cache of the Ant version information when it has been loaded.
+     */
+    private static String antVersion = null;
+
+    /**
+     * Returns the Ant version information, if available. Once the information
+     * has been loaded once, it's cached and returned from the cache on future
+     * calls.
+     *
+     * @return the Ant version information as a String
+     *         (always non-<code>null</code>)
+     *
+     * @exception BuildException if the version information is unavailable
+     */
+    public static synchronized String getAntVersion() throws BuildException {
+        if (antVersion == null) {
+            try {
+                Properties props = new Properties();
+                InputStream in =
+                    Main.class.getResourceAsStream("/org/apache/tools/ant/version.txt");
+                props.load(in);
+                in.close();
+
+                StringBuffer msg = new StringBuffer();
+                msg.append("Apache Ant version ");
+                msg.append(props.getProperty("VERSION"));
+                msg.append(" compiled on ");
+                msg.append(props.getProperty("DATE"));
+                antVersion = msg.toString();
+            } catch (IOException ioe) {
+                throw new BuildException("Could not load the version information:"
+                                         + ioe.getMessage());
+            } catch (NullPointerException npe) {
+                throw new BuildException("Could not load the version information.");
+            }
+        }
+        return antVersion;
+    }
+
+     /**
+      * Prints the description of a project (if there is one) to
+      * <code>System.out</code>.
+      *
+      * @param project The project to display a description of.
+      *                Must not be <code>null</code>.
+      */
+    private static void printDescription(Project project) {
+       if (project.getDescription() != null) {
+          project.log(project.getDescription());
+       }
+    }
+
+    /**
+     * Prints a list of all targets in the specified project to
+     * <code>System.out</code>, optionally including subtargets.
+     *
+     * @param project The project to display a description of.
+     *                Must not be <code>null</code>.
+     * @param printSubTargets Whether or not subtarget names should also be
+     *                        printed.
+     */
+    private static void printTargets(Project project, boolean printSubTargets) {
+        // find the target with the longest name
+        int maxLength = 0;
+        Enumeration ptargets = project.getTargets().elements();
+        String targetName;
+        String targetDescription;
+        Target currentTarget;
+        // split the targets in top-level and sub-targets depending
+        // on the presence of a description
+        Vector topNames = new Vector();
+        Vector topDescriptions = new Vector();
+        Vector subNames = new Vector();
+
+        while (ptargets.hasMoreElements()) {
+            currentTarget = (Target) ptargets.nextElement();
+            targetName = currentTarget.getName();
+            if (targetName.equals("")) {
+                continue;
+            }
+            targetDescription = currentTarget.getDescription();
+            // maintain a sorted list of targets
+            if (targetDescription == null) {
+                int pos = findTargetPosition(subNames, targetName);
+                subNames.insertElementAt(targetName, pos);
+            } else {
+                int pos = findTargetPosition(topNames, targetName);
+                topNames.insertElementAt(targetName, pos);
+                topDescriptions.insertElementAt(targetDescription, pos);
+                if (targetName.length() > maxLength) {
+                    maxLength = targetName.length();
+                }
+            }
+        }
+
+        printTargets(project, topNames, topDescriptions, "Main targets:",
+                     maxLength);
+        //if there were no main targets, we list all subtargets
+        //as it means nothing has a description
+        if (topNames.size() == 0) {
+            printSubTargets = true;
+        }
+        if (printSubTargets) {
+            printTargets(project, subNames, null, "Other targets:", 0);
+        }
+
+        String defaultTarget = project.getDefaultTarget();
+        if (defaultTarget != null && !"".equals(defaultTarget)) {
+            // shouldn't need to check but...
+            project.log("Default target: " + defaultTarget);
+        }
+    }
+
+    /**
+     * Searches for the correct place to insert a name into a list so as
+     * to keep the list sorted alphabetically.
+     *
+     * @param names The current list of names. Must not be <code>null</code>.
+     * @param name  The name to find a place for.
+     *              Must not be <code>null</code>.
+     *
+     * @return the correct place in the list for the given name
+     */
+    private static int findTargetPosition(Vector names, String name) {
+        int res = names.size();
+        for (int i = 0; i < names.size() && res == names.size(); i++) {
+            if (name.compareTo((String) names.elementAt(i)) < 0) {
+                res = i;
+            }
+        }
+        return res;
+    }
+
+    /**
+     * Writes a formatted list of target names to <code>System.out</code>
+     * with an optional description.
+     *
+     *
+     * @param project the project instance.
+     * @param names The names to be printed.
+     *              Must not be <code>null</code>.
+     * @param descriptions The associated target descriptions.
+     *                     May be <code>null</code>, in which case
+     *                     no descriptions are displayed.
+     *                     If non-<code>null</code>, this should have
+     *                     as many elements as <code>names</code>.
+     * @param heading The heading to display.
+     *                Should not be <code>null</code>.
+     * @param maxlen The maximum length of the names of the targets.
+     *               If descriptions are given, they are padded to this
+     *               position so they line up (so long as the names really
+     *               <i>are</i> shorter than this).
+     */
+    private static void printTargets(Project project, Vector names,
+                                     Vector descriptions, String heading,
+                                     int maxlen) {
+        // now, start printing the targets and their descriptions
+        String lSep = System.getProperty("line.separator");
+        // got a bit annoyed that I couldn't find a pad function
+        String spaces = "    ";
+        while (spaces.length() <= maxlen) {
+            spaces += spaces;
+        }
+        StringBuffer msg = new StringBuffer();
+        msg.append(heading);
+        msg.append(lSep);
+        msg.append(lSep);
+        for (int i = 0; i < names.size(); i++) {
+            msg.append(" ");
+            msg.append(names.elementAt(i));
+            if (descriptions != null) {
+                msg.append(spaces.substring(0, maxlen - ((String) names.elementAt(i)).length() + 2));
+                msg.append(descriptions.elementAt(i));
+            }
+            msg.append(lSep);
+        }
+        project.log(msg.toString());
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/ProjectHelper3.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/ProjectHelper3.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/ProjectHelper3.java	(revision 14989)
@@ -0,0 +1,1043 @@
+/*
+ * Copyright  2000-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ *
+ */
+
+package org.tp23.antinstaller.antmod;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.util.Hashtable;
+import java.util.Stack;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Location;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.ProjectHelper;
+import org.apache.tools.ant.RuntimeConfigurable;
+import org.apache.tools.ant.Target;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.UnknownElement;
+import org.apache.tools.ant.helper.AntXMLContext;
+import org.apache.tools.ant.util.FileUtils;
+import org.apache.tools.ant.util.JAXPUtils;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Sax2 based project reader
+ * 
+* This file has been modified by Paul Hinds for Antinstaller and is not the same
+* as the ProjectHelper2 delivered with Ant 1.6 although almost identical
+ */
+public class ProjectHelper3 extends ProjectHelper {
+    /* Stateless */
+
+    // singletons - since all state is in the context
+    private static AntHandler elementHandler = new ElementHandler();
+    private static AntHandler targetHandler = new TargetHandler();
+    private static AntHandler mainHandler = new MainHandler();
+    private static AntHandler projectHandler = new ProjectHandler();
+
+    /**
+     * helper for path -> URI and URI -> path conversions.
+     */
+    private static FileUtils fu = FileUtils.newFileUtils();
+
+    /**
+     * Parse an unknown element from a url
+     *
+     * @param project the current project
+     * @param source  the url containing the task
+     * @return a configured task
+     * @exception BuildException if an error occurs
+     */
+    public UnknownElement parseUnknownElement(Project project, URL source)
+        throws BuildException {
+        Target dummyTarget = new Target();
+        dummyTarget.setProject(project);
+
+        AntXMLContext context = new AntXMLContext(project);
+        context.addTarget(dummyTarget);
+        context.setImplicitTarget(dummyTarget);
+
+        parse(context.getProject(), source,
+              new RootHandler(context, elementHandler));
+        Task[] tasks = dummyTarget.getTasks();
+        if (tasks.length != 1) {
+            throw new BuildException("No tasks defined");
+        }
+        return (UnknownElement) tasks[0];
+    }
+    /**
+     * Parse a source xml input.
+     *
+     * @param project the current project
+     * @param source  the xml source
+     * @exception BuildException if an error occurs
+     */
+    public void parse(Project project, Object source)
+            throws BuildException {
+        getImportStack().addElement(source);
+        //System.out.println("Adding " + source);
+        AntXMLContext context = null;
+        context = (AntXMLContext) project.getReference("ant.parsing.context");
+//        System.out.println("Parsing " + getImportStack().size() + " " +
+//                context+ " " + getImportStack() );
+        if (context == null) {
+            context = new AntXMLContext(project);
+            project.addReference("ant.parsing.context", context);
+            project.addReference("ant.targets", context.getTargets());
+        }
+
+        if (getImportStack().size() > 1) {
+            // we are in an imported file.
+            context.setIgnoreProjectTag(true);
+            Target currentTarget = context.getCurrentTarget();
+            try {
+                Target newCurrent = new Target();
+                newCurrent.setProject(project);
+                newCurrent.setName("");
+                context.setCurrentTarget(newCurrent);
+                parse(project, source, new RootHandler(context, mainHandler));
+                newCurrent.execute();
+            } finally {
+                context.setCurrentTarget(currentTarget);
+            }
+        } else {
+            // top level file
+            parse(project, source, new RootHandler(context, mainHandler));
+            // Execute the top-level target
+            context.getImplicitTarget().execute();
+        }
+    }
+
+    /**
+     * Parses the project file, configuring the project as it goes.
+     *
+     * @param project the current project
+     * @param source  the xml source
+     * @param handler the root handler to use (contains the current context)
+     * @exception BuildException if the configuration is invalid or cannot
+     *                           be read
+     */
+    public void parse(Project project, Object source, RootHandler handler)
+            throws BuildException {
+
+        AntXMLContext context = handler.context;
+
+        File buildFile = null;
+        URL  url = null;
+        String buildFileName = null;
+
+        if (source instanceof File) {
+            buildFile = (File) source;
+            buildFile = fu.normalize(buildFile.getAbsolutePath());
+            context.setBuildFile(buildFile);
+            buildFileName = buildFile.toString();
+//         } else if (source instanceof InputStream ) {
+        } else if (source instanceof URL) {
+//        	These commented out code is the only difference
+//			between this class and ProjectHelper2
+//            if (handler.getCurrentAntHandler() != elementHandler) {
+//                throw new BuildException(
+//                    "Source " + source.getClass().getName()
+//                    + " not supported by this plugin for "
+//                    + " non task xml");
+//            }
+            url = (URL) source;
+            buildFileName = url.toString();
+//         } else if (source instanceof InputSource ) {
+        } else {
+            throw new BuildException("Source " + source.getClass().getName()
+                                     + " not supported by this plugin");
+        }
+
+        InputStream inputStream = null;
+        InputSource inputSource = null;
+
+
+        try {
+            /**
+             * SAX 2 style parser used to parse the given file.
+             */
+            XMLReader parser = JAXPUtils.getNamespaceXMLReader();
+
+            String uri = null;
+            if (buildFile != null) {
+                uri = fu.toURI(buildFile.getAbsolutePath());
+                inputStream = new FileInputStream(buildFile);
+            } else {
+                inputStream = url.openStream();
+                uri = url.toString(); // ?? OK ??
+            }
+
+            inputSource = new InputSource(inputStream);
+            if (uri != null) {
+                inputSource.setSystemId(uri);
+            }
+            project.log("parsing buildfile " + buildFileName
+                        + " with URI = " + uri, Project.MSG_VERBOSE);
+
+            DefaultHandler hb = handler;
+
+            parser.setContentHandler(hb);
+            parser.setEntityResolver(hb);
+            parser.setErrorHandler(hb);
+            parser.setDTDHandler(hb);
+            parser.parse(inputSource);
+        } catch (SAXParseException exc) {
+            Location location = new Location(exc.getSystemId(),
+                exc.getLineNumber(), exc.getColumnNumber());
+
+            Throwable t = exc.getException();
+            if (t instanceof BuildException) {
+                BuildException be = (BuildException) t;
+                if (be.getLocation() == Location.UNKNOWN_LOCATION) {
+                    be.setLocation(location);
+                }
+                throw be;
+            }
+
+            throw new BuildException(exc.getMessage(), t, location);
+        } catch (SAXException exc) {
+            Throwable t = exc.getException();
+            if (t instanceof BuildException) {
+                throw (BuildException) t;
+            }
+            throw new BuildException(exc.getMessage(), t);
+        } catch (FileNotFoundException exc) {
+            throw new BuildException(exc);
+        } catch (UnsupportedEncodingException exc) {
+              throw new BuildException("Encoding of project file "
+                                       + buildFileName + " is invalid.",
+                                       exc);
+        } catch (IOException exc) {
+            throw new BuildException("Error reading project file "
+                                     + buildFileName + ": " + exc.getMessage(),
+                                     exc);
+        } finally {
+            if (inputStream != null) {
+                try {
+                    inputStream.close();
+                } catch (IOException ioe) {
+                    // ignore this
+                }
+            }
+        }
+    }
+
+    /**
+     * The common superclass for all SAX event handlers used to parse
+     * the configuration file.
+     *
+     * The context will hold all state information. At each time
+     * there is one active handler for the current element. It can
+     * use onStartChild() to set an alternate handler for the child.
+     */
+    public static class AntHandler  {
+        /**
+         * Handles the start of an element. This base implementation does
+         * nothing.
+         *
+         * @param uri the namespace URI for the tag
+         * @param tag The name of the element being started.
+         *            Will not be <code>null</code>.
+         * @param qname The qualified name of the element.
+         * @param attrs Attributes of the element being started.
+         *              Will not be <code>null</code>.
+         * @param context The context that this element is in.
+         *
+         * @exception SAXParseException if this method is not overridden, or in
+         *                              case of error in an overridden version
+         */
+        public void onStartElement(String uri, String tag, String qname,
+                                   Attributes attrs,
+                                   AntXMLContext context)
+            throws SAXParseException {
+        }
+
+        /**
+         * Handles the start of an element. This base implementation just
+         * throws an exception - you must override this method if you expect
+         * child elements.
+         *
+         * @param uri The namespace uri for this element.
+         * @param tag The name of the element being started.
+         *            Will not be <code>null</code>.
+         * @param qname The qualified name for this element.
+         * @param attrs Attributes of the element being started.
+         *              Will not be <code>null</code>.
+         * @param context The current context.
+         * @return a handler (in the derived classes)
+         *
+         * @exception SAXParseException if this method is not overridden, or in
+         *                              case of error in an overridden version
+         */
+        public AntHandler onStartChild(String uri, String tag, String qname,
+                                       Attributes attrs,
+                                       AntXMLContext context)
+            throws SAXParseException {
+            throw new SAXParseException("Unexpected element \"" + qname
+                + " \"", context.getLocator());
+        }
+
+        /**
+         * Handle the end of a element.
+         *
+         * @param uri the namespace uri of the element
+         * @param tag the tag of the element
+         * @param qname the qualified name of the element
+         * @param context the current context
+         * @exception SAXParseException if an error occurs
+         */
+        public void onEndChild(String uri, String tag, String qname,
+                                     AntXMLContext context)
+            throws SAXParseException {
+        }
+
+        /**
+         * This method is called when this element and all elements nested into it have been
+         * handled. I.e., this happens at the &lt;/end_tag_of_the_element&gt;.
+         * @param uri the namespace uri for this element
+         * @param tag the element name
+         * @param context the current context
+         */
+        public void onEndElement(String uri, String tag,
+                                 AntXMLContext context) {
+        }
+
+        /**
+         * Handles text within an element. This base implementation just
+         * throws an exception, you must override it if you expect content.
+         *
+         * @param buf A character array of the text within the element.
+         *            Will not be <code>null</code>.
+         * @param start The start element in the array.
+         * @param count The number of characters to read from the array.
+         * @param context The current context.
+         *
+         * @exception SAXParseException if this method is not overridden, or in
+         *                              case of error in an overridden version
+         */
+        public void characters(char[] buf, int start, int count, AntXMLContext context)
+            throws SAXParseException {
+            String s = new String(buf, start, count).trim();
+
+            if (s.length() > 0) {
+                throw new SAXParseException("Unexpected text \"" + s
+                    + "\"", context.getLocator());
+            }
+        }
+
+        /**
+         * Will be called every time a namespace is reached.
+         * It'll verify if the ns was processed, and if not load the task
+         * definitions.
+         * @param uri The namespace uri.
+         */
+        protected void checkNamespace(String uri) {
+
+        }
+    }
+
+    /**
+     * Handler for ant processing. Uses a stack of AntHandlers to
+     * implement each element ( the original parser used a recursive behavior,
+     * with the implicit execution stack )
+     */
+    public static class RootHandler extends DefaultHandler {
+        private Stack antHandlers = new Stack();
+        private AntHandler currentHandler = null;
+        private AntXMLContext context;
+
+        /**
+         * Creates a new RootHandler instance.
+         *
+         * @param context The context for the handler.
+         * @param rootHandler The handler for the root element.
+         */
+        public RootHandler(AntXMLContext context, AntHandler rootHandler) {
+            currentHandler = rootHandler;
+            antHandlers.push(currentHandler);
+            this.context = context;
+        }
+
+        /**
+         * Returns the current ant handler object.
+         * @return the current ant handler.
+         */
+        public AntHandler getCurrentAntHandler() {
+            return currentHandler;
+        }
+
+        /**
+         * Resolves file: URIs relative to the build file.
+         *
+         * @param publicId The public identifier, or <code>null</code>
+         *                 if none is available. Ignored in this
+         *                 implementation.
+         * @param systemId The system identifier provided in the XML
+         *                 document. Will not be <code>null</code>.
+         * @return an inputsource for this identifier
+         */
+        public InputSource resolveEntity(String publicId,
+                                         String systemId) {
+
+            context.getProject().log("resolving systemId: "
+                + systemId, Project.MSG_VERBOSE);
+
+            if (systemId.startsWith("file:")) {
+                String path = fu.fromURI(systemId);
+
+                File file = new File(path);
+                if (!file.isAbsolute()) {
+                    file = fu.resolveFile(context.getBuildFileParent(), path);
+                }
+                try {
+                    InputSource inputSource =
+                            new InputSource(new FileInputStream(file));
+                    inputSource.setSystemId(fu.toURI(file.getAbsolutePath()));
+                    return inputSource;
+                } catch (FileNotFoundException fne) {
+                    context.getProject().log(file.getAbsolutePath()
+                        + " could not be found", Project.MSG_WARN);
+                }
+
+            }
+            // use default if not file or file not found
+            return null;
+        }
+
+        /**
+         * Handles the start of a project element. A project handler is created
+         * and initialised with the element name and attributes.
+         *
+         * @param uri The namespace uri for this element.
+         * @param tag The name of the element being started.
+         *            Will not be <code>null</code>.
+         * @param qname The qualified name for this element.
+         * @param attrs Attributes of the element being started.
+         *              Will not be <code>null</code>.
+         *
+         * @exception org.xml.sax.SAXParseException if the tag given is not
+         *                              <code>"project"</code>
+         */
+        public void startElement(String uri, String tag, String qname, Attributes attrs)
+            throws SAXParseException {
+            AntHandler next
+                = currentHandler.onStartChild(uri, tag, qname, attrs, context);
+            antHandlers.push(currentHandler);
+            currentHandler = next;
+            currentHandler.onStartElement(uri, tag, qname, attrs, context);
+        }
+
+        /**
+         * Sets the locator in the project helper for future reference.
+         *
+         * @param locator The locator used by the parser.
+         *                Will not be <code>null</code>.
+         */
+        public void setDocumentLocator(Locator locator) {
+            context.setLocator(locator);
+        }
+
+        /**
+         * Handles the end of an element. Any required clean-up is performed
+         * by the onEndElement() method and then the original handler
+         * is restored to the parser.
+         *
+         * @param uri  The namespace URI for this element.
+         * @param name The name of the element which is ending.
+         *             Will not be <code>null</code>.
+         * @param qName The qualified name for this element.
+         *
+         * @exception SAXException in case of error (not thrown in
+         *                         this implementation)
+         *
+         */
+        public void endElement(String uri, String name, String qName) throws SAXException {
+            currentHandler.onEndElement(uri, name, context);
+            AntHandler prev = (AntHandler) antHandlers.pop();
+            currentHandler = prev;
+            if (currentHandler != null) {
+                currentHandler.onEndChild(uri, name, qName, context);
+            }
+        }
+
+        /**
+         * Handle text within an element, calls currentHandler.characters.
+         *
+         * @param buf  A character array of the test.
+         * @param start The start offset in the array.
+         * @param count The number of characters to read.
+         * @exception SAXParseException if an error occurs
+         */
+        public void characters(char[] buf, int start, int count)
+            throws SAXParseException {
+            currentHandler.characters(buf, start, count, context);
+        }
+
+        /**
+         * Start a namespace prefix to uri mapping
+         *
+         * @param prefix the namespace prefix
+         * @param uri the namespace uri
+         */
+        public void startPrefixMapping(String prefix, String uri) {
+            context.startPrefixMapping(prefix, uri);
+        }
+
+        /**
+         * End a namepace prefix to uri mapping
+         *
+         * @param prefix the prefix that is not mapped anymore
+         */
+        public void endPrefixMapping(String prefix) {
+            context.endPrefixMapping(prefix);
+        }
+    }
+
+    /**
+     * The main handler - it handles the &lt;project&gt; tag.
+     *
+     * @see AntHandler
+     */
+    public static class MainHandler extends AntHandler {
+
+        /**
+         * Handle the project tag
+         *
+         * @param uri The namespace uri.
+         * @param name The element tag.
+         * @param qname The element qualified name.
+         * @param attrs The attributes of the element.
+         * @param context The current context.
+         * @return The project handler that handles subelements of project
+         * @exception SAXParseException if the qualified name is not "project".
+         */
+        public AntHandler onStartChild(String uri, String name, String qname,
+                                       Attributes attrs,
+                                       AntXMLContext context)
+            throws SAXParseException {
+            if (name.equals("project")
+                && (uri.equals("") || uri.equals(ANT_CORE_URI))) {
+                return ProjectHelper3.projectHandler;
+            } else {
+//                 if (context.importlevel > 0) {
+//                     // we are in an imported file. Allow top-level <target>.
+//                     if (qname.equals( "target" ) )
+//                         return ProjectHelper3.targetHandler;
+//                 }
+                throw new SAXParseException("Unexpected element \"" + qname
+                    + "\" " + name, context.getLocator());
+            }
+        }
+    }
+
+    /**
+     * Handler for the top level "project" element.
+     */
+    public static class ProjectHandler extends AntHandler {
+
+        /**
+         * Initialisation routine called after handler creation
+         * with the element name and attributes. The attributes which
+         * this handler can deal with are: <code>"default"</code>,
+         * <code>"name"</code>, <code>"id"</code> and <code>"basedir"</code>.
+         *
+         * @param uri The namespace URI for this element.
+         * @param tag Name of the element which caused this handler
+         *            to be created. Should not be <code>null</code>.
+         *            Ignored in this implementation.
+         * @param qname The qualified name for this element.
+         * @param attrs Attributes of the element which caused this
+         *              handler to be created. Must not be <code>null</code>.
+         * @param context The current context.
+         *
+         * @exception SAXParseException if an unexpected attribute is
+         *            encountered or if the <code>"default"</code> attribute
+         *            is missing.
+         */
+        public void onStartElement(String uri, String tag, String qname,
+                                   Attributes attrs,
+                                   AntXMLContext context)
+            throws SAXParseException {
+            String id = null;
+            String baseDir = null;
+            boolean nameAttributeSet = false;
+
+            Project project = context.getProject();
+
+            /** XXX I really don't like this - the XML processor is still
+             * too 'involved' in the processing. A better solution (IMO)
+             * would be to create UE for Project and Target too, and
+             * then process the tree and have Project/Target deal with
+             * its attributes ( similar with Description ).
+             *
+             * If we eventually switch to ( or add support for ) DOM,
+             * things will work smoothly - UE can be avoided almost completely
+             * ( it could still be created on demand, for backward compatibility )
+             */
+
+            for (int i = 0; i < attrs.getLength(); i++) {
+                String attrUri = attrs.getURI(i);
+                if (attrUri != null
+                    && !attrUri.equals("")
+                    && !attrUri.equals(uri)) {
+                    continue; // Ignore attributes from unknown uris
+                }
+                String key = attrs.getLocalName(i);
+                String value = attrs.getValue(i);
+
+                if (key.equals("default")) {
+                    if (value != null && !value.equals("")) {
+                        if (!context.isIgnoringProjectTag()) {
+                            project.setDefault(value);
+                        }
+                    }
+                } else if (key.equals("name")) {
+                    if (value != null) {
+                        context.setCurrentProjectName(value);
+                        nameAttributeSet = true;
+                        if (!context.isIgnoringProjectTag()) {
+                            project.setName(value);
+                            project.addReference(value, project);
+                        }
+                    }
+                } else if (key.equals("id")) {
+                    if (value != null) {
+                        // What's the difference between id and name ?
+                        if (!context.isIgnoringProjectTag()) {
+                            project.addReference(value, project);
+                        }
+                    }
+                } else if (key.equals("basedir")) {
+                    if (!context.isIgnoringProjectTag()) {
+                        baseDir = value;
+                    }
+                } else {
+                    // XXX ignore attributes in a different NS ( maybe store them ? )
+                    throw new SAXParseException("Unexpected attribute \""
+                        + attrs.getQName(i) + "\"", context.getLocator());
+                }
+            }
+
+            // XXX Move to Project ( so it is shared by all helpers )
+            String antFileProp = "ant.file." + context.getCurrentProjectName();
+            String dup = project.getProperty(antFileProp);
+            if (dup != null && nameAttributeSet) {
+                File dupFile = new File(dup);
+                if (context.isIgnoringProjectTag()
+                    && !dupFile.equals(context.getBuildFile())) {
+                    project.log("Duplicated project name in import. Project "
+                        + context.getCurrentProjectName() + " defined first in "
+                        + dup + " and again in " + context.getBuildFile(),
+                        Project.MSG_WARN);
+                }
+            }
+
+            if (context.getBuildFile() != null) {
+                project.setUserProperty("ant.file."
+                    + context.getCurrentProjectName(),
+                    context.getBuildFile().toString());
+            }
+
+            if (context.isIgnoringProjectTag()) {
+                // no further processing
+                return;
+            }
+            // set explicitly before starting ?
+            if (project.getProperty("basedir") != null) {
+                project.setBasedir(project.getProperty("basedir"));
+            } else {
+                // Default for baseDir is the location of the build file.
+                if (baseDir == null) {
+                    project.setBasedir(context.getBuildFileParent().getAbsolutePath());
+                } else {
+                    // check whether the user has specified an absolute path
+                    if ((new File(baseDir)).isAbsolute()) {
+                        project.setBasedir(baseDir);
+                    } else {
+                        project.setBaseDir(fu.resolveFile(
+                                               context.getBuildFileParent(), baseDir));
+                    }
+                }
+            }
+
+            project.addTarget("", context.getImplicitTarget());
+            context.setCurrentTarget(context.getImplicitTarget());
+        }
+
+        /**
+         * Handles the start of a top-level element within the project. An
+         * appropriate handler is created and initialised with the details
+         * of the element.
+         *
+         * @param uri The namespace URI for this element.
+         * @param name The name of the element being started.
+         *            Will not be <code>null</code>.
+         * @param qname The qualified name for this element.
+         * @param attrs Attributes of the element being started.
+         *              Will not be <code>null</code>.
+         * @param context The context for this element.
+         * @return a target or an element handler.
+         *
+         * @exception org.xml.sax.SAXParseException if the tag given is not
+         *            <code>"taskdef"</code>, <code>"typedef"</code>,
+         *            <code>"property"</code>, <code>"target"</code>
+         *            or a data type definition
+         */
+        public AntHandler onStartChild(String uri, String name, String qname,
+                                       Attributes attrs,
+                                       AntXMLContext context)
+            throws SAXParseException {
+            if (name.equals("target")
+                && (uri.equals("") || uri.equals(ANT_CORE_URI))) {
+                return ProjectHelper3.targetHandler;
+            } else {
+                return ProjectHelper3.elementHandler;
+            }
+        }
+
+    }
+
+    /**
+     * Handler for "target" elements.
+     */
+    public static class TargetHandler extends AntHandler {
+
+        /**
+         * Initialisation routine called after handler creation
+         * with the element name and attributes. The attributes which
+         * this handler can deal with are: <code>"name"</code>,
+         * <code>"depends"</code>, <code>"if"</code>,
+         * <code>"unless"</code>, <code>"id"</code> and
+         * <code>"description"</code>.
+         *
+         * @param uri The namespace URI for this element.
+         * @param tag Name of the element which caused this handler
+         *            to be created. Should not be <code>null</code>.
+         *            Ignored in this implementation.
+         * @param qname The qualified name for this element.
+         * @param attrs Attributes of the element which caused this
+         *              handler to be created. Must not be <code>null</code>.
+         * @param context The current context.
+         *
+         * @exception SAXParseException if an unexpected attribute is encountered
+         *            or if the <code>"name"</code> attribute is missing.
+         */
+        public void onStartElement(String uri, String tag, String qname,
+                                   Attributes attrs,
+                                   AntXMLContext context)
+            throws SAXParseException {
+            String name = null;
+            String depends = "";
+
+            Project project = context.getProject();
+            Target target = new Target();
+            target.setProject(project);
+            context.addTarget(target);
+
+            for (int i = 0; i < attrs.getLength(); i++) {
+                String attrUri = attrs.getURI(i);
+                if (attrUri != null
+                    && !attrUri.equals("")
+                    && !attrUri.equals(uri)) {
+                    continue; // Ignore attributes from unknown uris
+                }
+                String key = attrs.getLocalName(i);
+                String value = attrs.getValue(i);
+
+                if (key.equals("name")) {
+                    name = value;
+                    if ("".equals(name)) {
+                        throw new BuildException("name attribute must "
+                            + "not be empty");
+                    }
+                } else if (key.equals("depends")) {
+                    depends = value;
+                } else if (key.equals("if")) {
+                    target.setIf(value);
+                } else if (key.equals("unless")) {
+                    target.setUnless(value);
+                } else if (key.equals("id")) {
+                    if (value != null && !value.equals("")) {
+                        context.getProject().addReference(value, target);
+                    }
+                } else if (key.equals("description")) {
+                    target.setDescription(value);
+                } else {
+                    throw new SAXParseException("Unexpected attribute \""
+                        + key + "\"", context.getLocator());
+                }
+            }
+
+            if (name == null) {
+                throw new SAXParseException("target element appears without "
+                    + "a name attribute", context.getLocator());
+            }
+
+            Hashtable currentTargets = project.getTargets();
+
+            // If the name has already been defined ( import for example )
+            if (currentTargets.containsKey(name)) {
+                if (!context.isIgnoringProjectTag()) {
+                    // not in a import'ed file
+                    throw new BuildException(
+                        "Duplicate target '" + name + "'",
+                        new Location(context.getLocator().getSystemId(),
+                                     context.getLocator().getLineNumber(),
+                                     context.getLocator().getColumnNumber()));
+                }
+                // Alter the name.
+                if (context.getCurrentProjectName() != null) {
+                    String newName = context.getCurrentProjectName()
+                        + "." + name;
+                    project.log("Already defined in main or a previous import, "
+                        + "define " + name + " as " + newName,
+                                Project.MSG_VERBOSE);
+                    name = newName;
+                } else {
+                    project.log("Already defined in main or a previous import, "
+                        + "ignore " + name, Project.MSG_VERBOSE);
+                    name = null;
+                }
+            }
+
+            if (name != null) {
+                target.setName(name);
+                project.addOrReplaceTarget(name, target);
+            }
+
+            // take care of dependencies
+            if (depends.length() > 0) {
+                target.setDepends(depends);
+            }
+        }
+
+        /**
+         * Handles the start of an element within a target.
+         *
+         * @param uri The namespace URI for this element.
+         * @param name The name of the element being started.
+         *            Will not be <code>null</code>.
+         * @param qname The qualified name for this element.
+         * @param attrs Attributes of the element being started.
+         *              Will not be <code>null</code>.
+         * @param context The current context.
+         * @return an element handler.
+         *
+         * @exception SAXParseException if an error occurs when initialising
+         *                              the appropriate child handler
+         */
+        public AntHandler onStartChild(String uri, String name, String qname,
+                                       Attributes attrs,
+                                       AntXMLContext context)
+            throws SAXParseException {
+            return ProjectHelper3.elementHandler;
+        }
+
+        /**
+         * Handle the end of the project, sets the current target of the
+         * context to be the implicit target.
+         *
+         * @param uri The namespace URI of the element.
+         * @param tag The name of the element.
+         * @param context The current context.
+         */
+        public void onEndElement(String uri, String tag, AntXMLContext context) {
+            context.setCurrentTarget(context.getImplicitTarget());
+        }
+    }
+
+    /**
+     * Handler for all project elements ( tasks, data types )
+     */
+    public static class ElementHandler extends AntHandler {
+
+        /**
+         * Constructor.
+         */
+        public ElementHandler() {
+        }
+
+        /**
+         * Initialisation routine called after handler creation
+         * with the element name and attributes. This configures
+         * the element with its attributes and sets it up with
+         * its parent container (if any). Nested elements are then
+         * added later as the parser encounters them.
+         *
+         * @param uri The namespace URI for this element.
+         * @param tag Name of the element which caused this handler
+         *            to be created. Must not be <code>null</code>.
+         * @param qname The qualified name for this element.
+         * @param attrs Attributes of the element which caused this
+         *              handler to be created. Must not be <code>null</code>.
+         * @param context The current context.
+         *
+         * @exception SAXParseException in case of error (not thrown in
+         *                              this implementation)
+         */
+        public void onStartElement(String uri, String tag, String qname,
+                                   Attributes attrs,
+                                   AntXMLContext context)
+            throws SAXParseException {
+            RuntimeConfigurable parentWrapper = context.currentWrapper();
+            Object parent = null;
+
+            if (parentWrapper != null) {
+                parent = parentWrapper.getProxy();
+            }
+
+            /* UnknownElement is used for tasks and data types - with
+               delayed eval */
+            UnknownElement task = new UnknownElement(tag);
+            task.setProject(context.getProject());
+            task.setNamespace(uri);
+            task.setQName(qname);
+            task.setTaskType(
+                ProjectHelper.genComponentName(task.getNamespace(), tag));
+            task.setTaskName(qname);
+
+            Location location = new Location(context.getLocator().getSystemId(),
+                    context.getLocator().getLineNumber(),
+                    context.getLocator().getColumnNumber());
+            task.setLocation(location);
+            task.setOwningTarget(context.getCurrentTarget());
+
+            context.configureId(task, attrs);
+
+            if (parent != null) {
+                // Nested element
+                ((UnknownElement) parent).addChild(task);
+            }  else {
+                // Task included in a target ( including the default one ).
+                context.getCurrentTarget().addTask(task);
+            }
+
+            // container.addTask(task);
+            // This is a nop in UE: task.init();
+
+            RuntimeConfigurable wrapper
+                = new RuntimeConfigurable(task, task.getTaskName());
+
+            for (int i = 0; i < attrs.getLength(); i++) {
+                String name = attrs.getLocalName(i);
+                String attrUri = attrs.getURI(i);
+                if (attrUri != null
+                    && !attrUri.equals("")
+                    && !attrUri.equals(uri)) {
+                    name = attrUri + ":" + attrs.getQName(i);
+                }
+                String value = attrs.getValue(i);
+                // PR: Hack for ant-type value
+                //  an ant-type is a component name which can
+                // be namespaced, need to extract the name
+                // and convert from qualified name to uri/name
+                if (ANT_TYPE.equals(name)
+                    || (ANT_CORE_URI.equals(attrUri)
+                        && ANT_TYPE.equals(attrs.getLocalName(i)))) {
+                    name = ANT_TYPE;
+                    int index = value.indexOf(":");
+                    if (index != -1) {
+                        String prefix = value.substring(0, index);
+                        String mappedUri = context.getPrefixMapping(prefix);
+                        if (mappedUri == null) {
+                            throw new BuildException(
+                                "Unable to find XML NS prefix " + prefix);
+                        }
+                        value = ProjectHelper.genComponentName(
+                            mappedUri, value.substring(index + 1));
+                    }
+                }
+                wrapper.setAttribute(name, value);
+            }
+
+            if (parentWrapper != null) {
+                parentWrapper.addChild(wrapper);
+            }
+
+            context.pushWrapper(wrapper);
+        }
+
+        /**
+         * Adds text to the task, using the wrapper
+         *
+         * @param buf A character array of the text within the element.
+         *            Will not be <code>null</code>.
+         * @param start The start element in the array.
+         * @param count The number of characters to read from the array.
+         * @param context The current context.
+         *
+         * @exception SAXParseException if the element doesn't support text
+         *
+         * @see ProjectHelper#addText(Project,java.lang.Object,char[],int,int)
+         */
+        public void characters(char[] buf, int start, int count,
+                               AntXMLContext context)
+            throws SAXParseException {
+            RuntimeConfigurable wrapper = context.currentWrapper();
+            wrapper.addText(buf, start, count);
+        }
+
+        /**
+         * Handles the start of an element within a target. Task containers
+         * will always use another task handler, and all other tasks
+         * will always use a nested element handler.
+         *
+         * @param uri The namespace URI for this element.
+         * @param tag The name of the element being started.
+         *            Will not be <code>null</code>.
+         * @param qname The qualified name for this element.
+         * @param attrs Attributes of the element being started.
+         *              Will not be <code>null</code>.
+         * @param context The current context.
+         * @return The handler for elements.
+         *
+         * @exception SAXParseException if an error occurs when initialising
+         *                              the appropriate child handler
+         */
+        public AntHandler onStartChild(String uri, String tag, String qname,
+                                       Attributes attrs,
+                                       AntXMLContext context)
+            throws SAXParseException {
+            return ProjectHelper3.elementHandler;
+        }
+
+        /**
+         * Handles the end of the element. This pops the wrapper from
+         * the context.
+         *
+         * @param uri The namespace URI for the element.
+         * @param tag The name of the element.
+         * @param context The current context.
+         */
+        public void onEndElement(String uri, String tag, AntXMLContext context) {
+            context.popWrapper();
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/RegexpMatcherFactory.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/RegexpMatcherFactory.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/RegexpMatcherFactory.java	(revision 14989)
@@ -0,0 +1,43 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.antmod;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.util.regexp.RegexpMatcher;
+
+
+/**
+ * This class exists because the default Regexp handler is not part of ant.jar
+ * @author Paul Hinds
+ * @version $Id: RegexpMatcherFactory.java,v 1.2 2006/12/21 00:03:05 teknopaul Exp $
+ */
+public class RegexpMatcherFactory {
+
+	/**
+	 * 
+	 */
+	public RegexpMatcherFactory() {
+		super();
+	}
+    public RegexpMatcher newRegexpMatcher() throws BuildException {
+    	try{
+    		return new org.apache.tools.ant.util.regexp.RegexpMatcherFactory().newRegexpMatcher(null);
+    	}
+    	catch(BuildException be){
+    		return new Jdk14RegexpMatcher();
+    	}
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/RuntimeLauncher.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/RuntimeLauncher.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/RuntimeLauncher.java	(revision 14989)
@@ -0,0 +1,144 @@
+/*
+ * Copyright  2003-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ *
+ */
+package org.tp23.antinstaller.antmod;
+
+import java.io.File;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.ProjectHelper;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.antmod.taskdefs.LogTask;
+import org.tp23.antinstaller.antmod.taskdefs.MessageTask;
+import org.tp23.antinstaller.antmod.taskdefs.PropertyTask;
+import org.tp23.antinstaller.runtime.ExecInstall;
+import org.tp23.antinstaller.selfextract.NonExtractor;
+import org.tp23.antinstaller.selfextract.SelfExtractor;
+
+
+
+/**
+ * This is a launcher for Ant which swallows all messages and logs.
+ *
+ * This file has been modified by Paul Hinds for Antinstaller and is not the same
+ * as the one delivered with Ant 1.6
+ *
+ * @since Ant 1.6
+ * @version $Id$
+ */
+public class RuntimeLauncher {
+
+	public final static String CONTEXT_REFERENCE = "antinstaller.internal.context";
+
+	private final Map allProperties = new HashMap();
+	private final Project project = new Project();
+	private InstallerContext ctx;
+
+	public RuntimeLauncher(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void updateProps(){
+		allProperties.clear();
+		allProperties.putAll(InstallerContext.getEnvironment());
+		allProperties.putAll(ctx.getInstaller().getResultContainer().getAllProperties());
+		// add properties
+		String arg;
+		String value;
+		Iterator iter = allProperties.keySet().iterator();
+		while (iter.hasNext()) {
+			arg = (String) iter.next();
+			value = (String) allProperties.get(arg);
+			project.setUserProperty(arg, value);
+		}
+	}
+
+	public void parseProject(){
+		project.setCoreLoader(this.getClass().getClassLoader());
+		//project.addBuildListener(this);
+        project.init();
+
+		ProjectHelper helper = new ProjectHelper3();
+		project.addReference("ant.projectHelper", helper);
+		
+		//SelfExtractor requirements
+		if(SelfExtractor.CONFIG_RESOURCE == ctx.getConfigResource()){
+			File buildXml = new File(ctx.getFileRoot(), ctx.getAntBuildFile());
+			if(!buildXml.exists()){
+				ctx.log("No build file found??: " + buildXml);
+			}
+			helper.parse(project, buildXml);
+			project.setUserProperty("ant.file", buildXml.getAbsolutePath());
+		}
+
+		//NonExtractor requirements
+		if(NonExtractor.CONFIG_RESOURCE == ctx.getConfigResource()){
+			URL buildIS = this.getClass().getResource("/" + ctx.getAntBuildFile());
+			helper.parse(project, buildIS);
+			project.setUserProperty("ant.file", buildIS.toExternalForm());
+			try {
+				File enclosingJar = SelfExtractor.getEnclosingJar(this);
+				project.setUserProperty(NonExtractor.ANTINSTALLER_JAR_PROPERTY, enclosingJar.getAbsolutePath());
+			} catch (RuntimeException e) {
+				ctx.log("No enclosing jar found");
+			}
+		}
+		
+		//Scripted install requirements
+		if(ExecInstall.CONFIG_RESOURCE == ctx.getConfigResource()){
+			File buildXml = new File(ctx.getFileRoot(), ctx.getAntBuildFile());
+			helper.parse(project, buildXml);
+			if(!buildXml.exists()){
+				ctx.log("No build file found??: " + buildXml);
+			}
+			project.setUserProperty("ant.file", buildXml.getAbsolutePath());
+		}
+		
+		project.setBaseDir(ctx.getFileRoot());
+		
+		// clever stuff for callbacks
+		project.addReference(CONTEXT_REFERENCE, ctx);
+		project.addTaskDefinition("antinstaller-property", PropertyTask.class);
+		project.addTaskDefinition("antinstaller-message", MessageTask.class);
+		project.addTaskDefinition("antinstaller-log", LogTask.class);
+
+	}
+    /**
+	 * Run the launcher to launch Ant with a specific target, there is no classpath
+	 * additions set or ant.home; everything should be loaded for this to run correctly.
+	 *
+	 * @param args the command line arguments
+	 */
+	public int run(String target){
+        try {
+			ctx.getLogger().log("internal target execution started:" + target);
+        	project.fireBuildStarted();
+        	project.executeTarget(target);
+			project.fireBuildFinished(null);
+			ctx.getLogger().log("internal target execution successful:" + target);
+			return 0;
+		}
+		catch (Throwable t) {
+			ctx.getLogger().log("internal target execution error:" + target);
+            ctx.getLogger().log(ctx.getInstaller(), t);
+			return 1;
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/package.html
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/package.html	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/package.html	(revision 14989)
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head><!--
+  Copyright (c) 2004 tp23
+  All Rights Reserved.
+--></head>
+
+<body bgcolor="white">Contains modifications of Apache Ant code.</body>
+</html>
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/GetResourceTask.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/GetResourceTask.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/GetResourceTask.java	(revision 14989)
@@ -0,0 +1,73 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.antmod.taskdefs;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.tp23.antinstaller.selfextract.ResourceExtractor;
+/**
+ * Extracts a resource from the classpath into the filesystem
+ * @author teknopaul
+ *
+ */
+public class GetResourceTask extends Task{
+
+	String resource;
+	String dest;
+	String regex;
+	String replace;
+	
+	public void execute() throws BuildException{
+		try {
+			ResourceExtractor re = new ResourceExtractor();
+			if(regex != null){
+				re.copyResource(resource, new File(dest), regex, replace);
+			}
+			else{
+				re.copyResourceBinary(resource, new File(dest));
+			}
+		} catch (IOException e) {
+			throw new BuildException(e.getMessage());
+		}
+	}
+	public String getDest() {
+		return dest;
+	}
+	public void setDest(String file) {
+		this.dest = file;
+	}
+	public String getResource() {
+		return resource;
+	}
+	public void setResource(String resource) {
+		this.resource = resource;
+	}
+	public String getReplace() {
+		return replace;
+	}
+	public void setReplace(String replace) {
+		this.replace = replace;
+	}
+	public String getRegex() {
+		return regex;
+	}
+	public void setRegex(String token) {
+		this.regex = token;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/LogTask.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/LogTask.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/LogTask.java	(revision 14989)
@@ -0,0 +1,54 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.antmod.taskdefs;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.antmod.RuntimeLauncher;
+/**
+ * usage: 
+ * &lt;antinstaller-log message="log message"/&gt;
+ * @author teknopaul
+ *
+ */
+public class LogTask extends Task {
+	
+	private String message;
+	/**
+	 * Ant Tasks must have a noargs constructor
+	 */
+	public LogTask(){
+	}
+
+	/**
+	 * the "main" method
+	 */
+    public void execute() throws BuildException {
+    	InstallerContext ctx = (InstallerContext)getProject().getReference(RuntimeLauncher.CONTEXT_REFERENCE);
+    	ctx.log(message);
+    }
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/MessageTask.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/MessageTask.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/MessageTask.java	(revision 14989)
@@ -0,0 +1,54 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.antmod.taskdefs;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.antmod.RuntimeLauncher;
+/**
+ * usage: 
+ * &lt;antinstaller-message message="output"/&gt;
+ * @author teknopaul
+ *
+ */
+public class MessageTask extends Task {
+	
+	private String message;
+	/**
+	 * Ant Tasks must have a noargs constructor
+	 */
+	public MessageTask(){
+	}
+
+	/**
+	 * the "main" method
+	 */
+    public void execute() throws BuildException {
+    	InstallerContext ctx = (InstallerContext)getProject().getReference(RuntimeLauncher.CONTEXT_REFERENCE);
+    	ctx.getMessageRenderer().printMessage(message);
+    }
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java	(revision 14989)
@@ -0,0 +1,114 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.antmod.taskdefs;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.antmod.RuntimeLauncher;
+/**
+ * usage: 
+ * &lt;antinstaller-property name="property.name" value="myValue"/&gt;
+ * <br />
+ * or: 
+ * &lt;antinstaller-property resource="/resources/my.props"/&gt;
+ * @author teknopaul
+ *
+ */
+public final class PropertyTask extends Task {
+	
+	private String name;
+	private String value;
+    private String resource;
+	/**
+	 * Ant Tasks must have a noargs constructor
+	 */
+	public PropertyTask(){
+	}
+
+	/**
+	 * the "main" method
+	 */
+    public void execute() throws BuildException {
+        if(resource != null){
+            executeResource();
+        }
+        else {
+            if(name == null || value == null) {
+                throw new BuildException("either resource or (name and value) can not be null for antinstaller-property task");
+            }
+            executePropVal();
+        }
+    }
+    
+    private void executePropVal(){
+        InstallerContext ctx = (InstallerContext)getProject().getReference(RuntimeLauncher.CONTEXT_REFERENCE);
+        ctx.log("setting property: name=" + name + ", value=" + value);
+        ctx.getInstaller().getResultContainer().setProperty(name, value);
+    }
+    
+    // FindBugs - this class should stay final since getResourceAsStream() may not work in subclasses
+    private void executeResource() throws BuildException{
+        InstallerContext ctx = (InstallerContext)getProject().getReference(RuntimeLauncher.CONTEXT_REFERENCE);
+        InputStream is = this.getClass().getResourceAsStream(resource);
+        if(is == null){
+            ctx.log("Can not find resource: " + resource);
+            throw new BuildException("Can not find resource: " + resource);
+        }
+        try {
+            Properties props = new Properties();
+            props.load(is);
+            is.close();
+            if(ctx.getInstaller().isVerbose()){
+                ctx.log("loaded properties: " + props.size());
+            }
+            
+            ctx.getInstaller().getResultContainer().getAllProperties().putAll(props);
+        } catch (IOException e) {
+            ctx.log("Can not load resource: " + resource);
+            throw new BuildException("Can not load resource: " + resource);
+        }
+    }
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+    public String getResource() {
+        return resource;
+    }
+
+    public void setResource(String resource) {
+        this.resource = resource;
+    }
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/AppRootInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/AppRootInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/AppRootInput.java	(revision 14989)
@@ -0,0 +1,162 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+import java.io.File;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+
+/**
+ *
+ * <p>Input type to select a directory and validate it by checking the existence of
+ * files relative to the directory selected.  An Expected use for this is to find the
+ * Application root of an exiting app on the clients machine.  for example to find
+ * Tomcat, ask the user to select the tomcat root and check the existence of ./conf/tomcat-users.xml
+ * and ./webapps </p>
+ * @author Paul Hinds
+ * @version $Id: AppRootInput.java,v 1.2 2005/10/23 14:39:20 teknopaul Exp $
+ */
+public class AppRootInput
+	extends DirectoryInput {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+
+    private String checkFile1;
+    private String checkFile2;
+	private String checkDir1;
+	private String checkDir2;
+
+	public AppRootInput() {
+	}
+
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext cxt) throws ValidationException{
+		if (getInputResult() == null)return false;
+		MessageRenderer mr = cxt.getMessageRenderer();
+		String directorySelected = getInputResult();
+		File file = new File(directorySelected);
+		// removed in response to BUG:1303230
+//		if(!file.exists()){
+//			if(mr.prompt(res.getString("dirNotExistCreate"))){
+//				boolean ok = file.mkdirs();
+//				if(!ok)mr.printMessage(res.getString("dirNotCreated"));
+//			}
+//		}
+		if(!file.isDirectory()){
+			mr.printMessage(res.getString("dirNotExist")+":"+file.getAbsolutePath());
+			return false;
+		}
+		else if(checkFile1!=null && ! checkExists(mr,file,checkFile1)){
+			return false ;
+		}
+		else if(checkFile2!=null && ! checkExists(mr,file,checkFile2)){
+			return false ;
+		}
+		else if(checkDir1!=null && ! checkExists(mr,file,checkDir1)){
+			return false ;
+		}
+		else if(checkDir2!=null && ! checkExists(mr,file,checkDir2)){
+			return false ;
+		}
+		return true;
+	}
+
+	private boolean checkExists(MessageRenderer mr,File root,String check){
+		File checkFile = new File(root,checkFile1);
+		if(!checkFile.exists()){
+			reportMissing(mr,checkFile);
+			return false;
+		}
+		return true;
+	}
+
+	private void reportMissing(MessageRenderer mr,File missing){
+		StringBuffer message = new StringBuffer();
+		message.append(res.getString("appRootInvalid"));
+		message.append(System.getProperty("line.separator"));
+		if(missing.isDirectory()){
+			message.append(res.getString("dirNotExist"));
+		}
+		else{
+			message.append(res.getString("fileNotExist"));
+		}
+		message.append(":");
+		message.append(missing.getAbsolutePath());
+		mr.printMessage(message.toString());
+	}
+
+
+
+	public String getCheckDir1() {
+		return checkDir1;
+	}
+
+	public String getCheckDir2() {
+		return checkDir2;
+	}
+
+	public String getCheckFile1() {
+		return checkFile1;
+	}
+
+	public String getCheckFile2() {
+		return checkFile2;
+	}
+
+	public void setCheckFile2(String checkFile2) {
+		this.checkFile2 = checkFile2;
+	}
+
+	public void setCheckFile1(String checkFile1) {
+		this.checkFile1 = checkFile1;
+	}
+
+	public void setCheckDir2(String checkDir2) {
+		this.checkDir2 = checkDir2;
+	}
+
+	public void setCheckDir1(String checkDir1) {
+		this.checkDir1 = checkDir1;
+	}
+	
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText()==null){
+			System.out.println("AppRoot:displayText must be set");
+			return false;
+		}
+		if(getProperty()==null){
+			System.out.println("AppRoot:property must be set");
+			return false;
+		}
+		if(getDefaultValue()==null){
+			System.out.println("AppRoot:defaultValue must be set");
+			return false;
+		}
+		return true;
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/CheckboxInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/CheckboxInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/CheckboxInput.java	(revision 14989)
@@ -0,0 +1,86 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+
+/**
+ *
+ * <p>Input type for boolean choices represented as a checkbox in swing and a yes/no option
+ * on the command line </p>
+ * @author Paul Hinds
+ * @version $Id: CheckboxInput.java,v 1.3 2006/12/07 02:42:22 teknopaul Exp $
+ */
+public class CheckboxInput
+	extends InputField{
+
+
+	private String force;
+
+	public CheckboxInput() {
+	}
+
+	public String getForce() {
+		return force;
+	}
+
+	public void setForce(String force) {
+		this.force = force;
+	}
+
+	public void setValue(String trueOrFalse){
+			setInputResult(trueOrFalse);
+	}
+	/**
+	 * Called to validate the user input
+	 * @TODO should validate against non internationalized true or false flags 
+	 */
+	public boolean validate(InstallerContext cxt) throws ValidationException{
+		return true;
+	}
+
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getProperty()==null){
+			System.out.println("Checkbox:property must be set");
+			return false;
+		}
+		if(getDisplayText()==null){
+			System.out.println("Checkbox:displayText must be set");
+			return false;
+		}
+		if(!InputField.requiredBoolean(getDefaultValue())){
+			System.out.println("Checkbox:defaultValue must be true or false");
+			return false;
+		}
+		if(!InputField.optionalBoolean(getForce())){
+			System.out.println("Checkbox:defaultValue must be true or false or null");
+			return false;
+		}
+		return true;
+	}
+
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/CommentOutput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/CommentOutput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/CommentOutput.java	(revision 14989)
@@ -0,0 +1,97 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+
+/**
+ *
+ * <p>This "Input type" is strictly for Output! Unlike all the other
+ * concrete classes in this package CommentOutputs refer to text
+ * that will be printed but nothing will be collected from
+ * the user.</p>
+ * The text outputted in Comments will have property values resolved
+ * if they are in the format ${property.name}
+ * @author Paul Hinds
+ * @version $Id: CommentOutput.java,v 1.2 2006/03/24 18:25:58 teknopaul Exp $
+ */
+public class CommentOutput
+	extends OutputField {
+
+	private String bold;
+	private String title;
+
+	public CommentOutput() {
+	}
+
+	public String getBold() {
+		return bold;
+	}
+
+	public void setBold(String bold) {
+		this.bold = bold;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+	
+	public String getDisplayText() {
+		return 	resultContainer.getDefaultValue(super.getDisplayText()) ;
+	}
+
+	public String getExplanatoryText() {
+		return resultContainer.getDefaultValue(super.getExplanatoryText());
+	}
+
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext cxt) throws ValidationException{
+		return true;
+	}
+	
+	
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+//  null accepted now if only using explanatory text		
+//		if(getDisplayText() == null){
+//			System.out.println("Comment:displayText must be set");
+//			return false;
+//		}
+		if(!InputField.optionalBoolean(getBold())){
+			System.out.println("Comment:bold must be true or false or null:" + getBold());
+			return false;
+		}
+		if(!InputField.optionalBoolean(getTitle())){
+			System.out.println("Comment:title must be true or false or null:" + getTitle());
+			return false;
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ConditionalField.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ConditionalField.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ConditionalField.java	(revision 14989)
@@ -0,0 +1,119 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.input;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+import org.tp23.antinstaller.runtime.logic.Expression;
+import org.tp23.antinstaller.runtime.logic.ExpressionBuilder;
+
+/**
+ * Container for other <code>OutputField</code> members that will be
+ * conditionally updated. Typical use is with <code>&lt;hidden&gt;</code>
+ * to conditionally set property values.
+ *
+ * @author mwilson
+ * @version $Id
+ * @since 0.7.4 patch 7
+ */
+public class ConditionalField extends InputField {
+    
+    private String ifProperty;
+    private Expression expression;
+    private InputField[] fields;
+
+    public void setIfProperty(final String expressionStr) {
+        this.ifProperty = expressionStr;
+    }
+
+    public String getIfProperty() {
+        return ifProperty;
+    }
+
+    public InputField[] getFields() {
+        return fields;
+    }
+
+    public void setFields(InputField[] fields) {
+        this.fields = fields;
+    }
+
+    /**
+     * Runtime validation of user input
+     *
+     * @param context Installer context
+     * @return <code>true</code> if user input is valid, otherwise <code>false</code>
+     * @throws ValidationException
+     */
+    public boolean validate(InstallerContext context)
+            throws ValidationException {
+        try {
+            getExpression();
+            if ((fields != null) && (fields.length > 0)) {
+                int i = 0;
+                for (; (i < fields.length) && (fields[i].validate(context)); i++) {
+                }
+
+                if (i == fields.length) {
+                    return true;
+                }
+            }
+        } catch (ConfigurationException configExc) {
+            if(context.getInstaller().isVerbose()) {
+                context.log(configExc);
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Build-time validation of installer configuration file
+     *
+     * @return <code>true</code> if configuration is ok, otherwise <code>false</code>
+     */
+    public boolean validateObject() {
+        try {
+            getExpression();
+            if ((fields != null) && (fields.length > 0)) {
+                int i = 0;
+                for (; (i < fields.length) && (fields[i].validateObject()); i++) {
+                }
+
+                if (i == fields.length) {
+                    return true;
+                }
+
+                System.out.println("Invalid field:" + fields[i]);
+            }
+        } catch (ConfigurationException configExc) {
+            System.out.println("Invalid conditional expression: " + configExc);
+        }
+        return false;
+    }
+
+    /**
+     * Get the conditional expression in preparation for evaluation
+     *
+     * @throws ConfigurationException if the expression is invalid
+     */
+    public Expression getExpression() throws ConfigurationException {
+        if (expression == null) {
+            expression = ExpressionBuilder.parseLogicalExpressions(resultContainer, ifProperty);
+        }
+
+        return expression;
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ConfirmPasswordTextInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ConfirmPasswordTextInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ConfirmPasswordTextInput.java	(revision 14989)
@@ -0,0 +1,70 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+/**
+ * a second password filed that checks to see if a password entered twice matches
+ * @author Paul Hinds
+ * @version $Id$
+ */
+public class ConfirmPasswordTextInput
+	extends PasswordTextInput
+{
+	private String origField;
+
+	/**
+	 * Called to validate the user input, if the confirm flag is set
+	 * and there is a password field on the same page with the same property name
+	 * both passwords must match for validation to pass
+	 */
+	public boolean validate(InstallerContext ctx) throws ValidationException{
+		OutputField[] otherFields = ctx.getCurrentPage().getOutputField();
+		for (int i = 0; i < otherFields.length; i++) {
+			if(otherFields[i] instanceof PasswordTextInput &&
+					otherFields[i] != this){
+				PasswordTextInput pwd = (PasswordTextInput)otherFields[i];
+				if(pwd.getProperty().equals(getOrigField())){
+					return this.getInputResult().equals(pwd.getInputResult());
+				}
+			}
+		}
+		throw new ValidationException("Confirm password requires a PasswordTextInput, on the same page, with  property " + getOrigField());
+	}
+
+	public boolean validateObject() {
+		if ( ! super.validateObject()){
+			return false;
+		}
+		if(getOrigField() == null){
+			System.out.println("ConfirmPassword:origField must be set");
+			return false;
+		}
+		// @TODO check the orig field exists
+		return true;
+	}
+	
+	public String getOrigField() {
+		return origField;
+	}
+
+	public void setOrigField(String origField) {
+		this.origField = origField;
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/DateInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/DateInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/DateInput.java	(revision 14989)
@@ -0,0 +1,107 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+/**
+ *
+ * <p>Free text input type with validation a SimpleDataFormat instance. </p>
+ * <p>By default the date format is <code>dd/MM/yyyy</code> unless it
+ * is overriden in teh antinstall-config.xml file. </p>
+ * @author Paul Hinds
+ * @version $Id: DateInput.java,v 1.1.1.1 2005/10/18 18:20:54 teknopaul Exp $
+ */
+public class DateInput
+	extends InputField{
+
+    private String dateFormat = "dd/MM/yyyy";
+	private DateFormat formatter = new SimpleDateFormat(dateFormat);
+
+	public DateInput() {
+		formatter.setLenient(false);
+	}
+
+	public String getDateFormat() {
+		return dateFormat;
+	}
+	public void setDateFormat(String dateFormat) {
+		try {
+			formatter = new SimpleDateFormat(dateFormat);
+			formatter.setLenient(false);
+			this.dateFormat = dateFormat;
+		}
+		catch (RuntimeException e) {
+			throw new InputException("Invalid date format in DateInput");
+		}
+	}
+
+	public void setValue(String dir){
+		setInputResult(dir);
+	}
+
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext cxt) throws ValidationException{
+		if (getInputResult() == null)return false;
+		String toTest = getInputResult();
+		try {
+			formatter.parse(toTest);
+		}
+		catch (ParseException ex) {
+			return false;
+		}
+		return true;
+	}
+
+	public void setDefaultValue(String defaultValue) {
+		if(defaultValue.equals("TODAY")){
+			this.defaultValue = formatter.format(new Date());
+		} else {
+			this.defaultValue = defaultValue;
+		}
+	}
+	
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText()==null){
+			System.out.println("Date:displayText must be set");
+			return false;
+		}
+		if(getProperty()==null){
+			System.out.println("Date:property must be set");
+			return false;
+		}
+		if(getDefaultValue()==null){
+			System.out.println("Date:defaultValue must be set");
+			return false;
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/DirectoryInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/DirectoryInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/DirectoryInput.java	(revision 14989)
@@ -0,0 +1,156 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+import java.io.File;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+
+/**
+ * <p>Input type to select a directory </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: DirectoryInput.java,v 1.5 2007/01/28 10:25:48 teknopaul Exp $
+ */
+public class DirectoryInput
+	extends OSSpecific {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+
+	private boolean abort = false;
+    private String create;
+    private String checkExists;
+
+	public DirectoryInput() {
+	}
+
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext cxt) throws ValidationException{
+		if (getInputResult() == null)return false;
+		MessageRenderer mr = cxt.getMessageRenderer();
+        String selectedName = getInputResult();
+        // handle no directory option
+        if( "".equals(selectedName) ){
+            if( InputField.isTrue(create) || InputField.isTrue(checkExists) ){
+                mr.printMessage(res.getString("dirNotExist"));
+                return false;
+            }
+            else {
+                return true;
+            }
+        } 
+		File file = new File(selectedName);
+		if(InputField.isTrue(create)){
+			if(!file.exists()){
+				try {
+					if(mr.prompt(res.getString("dirNotExistCreate") + "\n" + file.getAbsolutePath())){
+						boolean ok = file.mkdirs();
+						if(!ok){
+							mr.printMessage(res.getString("dirNotCreated"));
+						}
+					}
+				}
+				catch (Exception ex) {
+					mr.printMessage(res.getString("canNotCreateFile") + "\n" + file.getAbsolutePath());
+                    //FIXME should not throw here, should do something better so users on linux can chmod where necessary
+                    // then try again
+					throw new ValidationException(res.getString("canNotCreateFile"),ex);
+					
+				}
+			}
+		}
+		if(InputField.isTrue(checkExists)){
+//			if( ( !file.exists() || !file.isDirectory() ) && triedToCreate){
+//				//TODO add some usefull text here to explain that we can not continue
+//			}
+			if(!file.exists() || !file.isDirectory()){
+				mr.printMessage(res.getString("dirNotExist") + "\n" + file.getAbsolutePath());
+				return false;
+			}
+		}
+		return true;
+	}
+
+	public boolean isAbort() {
+		return abort;
+	}
+
+	public void setAbort(boolean abort) {
+		this.abort = abort;
+	}
+
+    public String getCreate() {
+		return create;
+    }
+    public void setCreate(String create) {
+		this.create = create;
+    }
+	public void setValue(String dir){
+		setInputResult(dir);
+	}
+
+	public String getCheckExists() {
+		return checkExists;
+	}
+
+	public void setCheckExists(String checkExists) {
+		this.checkExists = checkExists;
+	}
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText() == null){
+			System.out.println("Directory:displayText must be set");
+			return false;
+		}
+		if(getProperty() == null){
+			System.out.println("Directory:property must be set");
+			return false;
+		}
+		if(getDefaultValue() == null){
+			System.out.println("Directory:defaultValue must be set");
+			return false;
+		}
+        if(getDefaultValue().equals("")){
+            if( isTrue(getCreate()) || isTrue(getCheckExists()) ) {
+                System.out.println("Directory:defaultValue must be set if checkExists or create are true");
+                return false;
+            }
+        }
+		if(!InputField.optionalBoolean(getCreate())){
+			System.out.println("Directory:create must be true or false or null");
+			return false;
+		}
+		if(!InputField.optionalBoolean(getCheckExists())){
+			System.out.println("Directory:checkExists must be true or false or null");
+			return false;
+		}
+		return true;
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ExtValidatedTextInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ExtValidatedTextInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ExtValidatedTextInput.java	(revision 14989)
@@ -0,0 +1,108 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+/**
+ *
+ * <p>Free text input type with validation using a custon supplied class.</p>
+ * This enable very coplext validation, for example, a class could be written
+ * to validate a port number enterd by a user that tries to open a socket
+ * on the port and returns false to the validate method if the socket is in use. 
+ * @author Paul Hinds
+ * @version $Id: ExtValidatedTextInput.java,v 1.2 2007/01/09 22:41:41 teknopaul Exp $
+ */
+public class ExtValidatedTextInput
+	extends ValidatedTextInput{
+
+    private String validationClass;
+    private Validator validator;
+    private Throwable throwable ;
+
+	public ExtValidatedTextInput() {
+	}
+
+	public void setValue(String dir){
+		setInputResult(dir);
+	}
+    public String getValidationClass() {
+		return validationClass;
+    }
+    public void setValidationClass(String validationClass) {
+		this.validationClass = validationClass;
+		try {
+			validator = (Validator)Class.forName(validationClass).newInstance();
+		}
+		catch (Exception ex) {
+			throw new InputException("Invalid Class in ExtValidated text input");
+		}
+    }
+
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext ctx) throws ValidationException{
+		String result = getInputResult();
+		try{
+			validator.validate(result,ctx);
+			throwable = null;
+			return true;
+		}
+		catch(Throwable t){
+			throwable = t;
+			return false;
+		}
+		
+	}
+	/**
+	 * @return Returns the validator.
+	 */
+	public Validator getValidator() {
+		return validator;
+	}
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText() == null){
+			System.out.println("ExtValidated:displayText must be set");
+			return false;
+		}
+		if(getProperty() == null){
+			System.out.println("ExtValidated:property must be set");
+			return false;
+		}
+		if(getValidationClass() == null){
+			System.out.println("ExtValidated:validationClass must be set");
+			return false;
+		}
+		return true;
+	}
+	/**
+	 * @return Returns the throwable.
+	 */
+	public Throwable getThrowable() {
+		return throwable;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/FileInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/FileInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/FileInput.java	(revision 14989)
@@ -0,0 +1,100 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+import java.io.File;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+/**
+ *
+ * <p>Input type to select a directory </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: FileInput.java,v 1.2 2007/01/28 10:25:48 teknopaul Exp $
+ */
+public class FileInput
+	extends OSSpecific{
+
+	private boolean abort = false;
+    private String checkExists;
+
+	public FileInput() {
+	}
+
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext ctx) throws ValidationException{
+		if (getInputResult() == null) { // this does not happen
+            return false;
+        }
+		if(InputField.isTrue(checkExists)){
+            File file = new File(getInputResult());
+			if(!file.exists()){
+				return false;
+			}
+		}
+		return true;
+	}
+
+	public boolean isAbort() {
+		return abort;
+	}
+
+	public void setAbort(boolean abort) {
+		this.abort = abort;
+	}
+
+	public String getCheckExists() {
+		return checkExists;
+	}
+	public void setCheckExists(String checkExists) {
+		this.checkExists = checkExists;
+	}
+	public void setValue(String dir){
+		setInputResult(dir);
+	}
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText()==null){
+			System.out.println("File:displayText must be set");
+			return false;
+		}
+		if(getProperty()==null){
+			System.out.println("File:property must be set");
+			return false;
+		}
+		if(getDefaultValue()==null){
+			System.out.println("File:defaultValue must be set");
+			return false;
+		}
+		if(!InputField.optionalBoolean(getCheckExists())){
+			System.out.println("File:checkExists must be true or false or null");
+			return false;
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/HiddenPropertyInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/HiddenPropertyInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/HiddenPropertyInput.java	(revision 14989)
@@ -0,0 +1,67 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+/**
+ * @author mwilson
+ * @version $Id
+ * @since 0.7.4 patch 6
+ */
+public class HiddenPropertyInput extends InputField
+{
+
+    public HiddenPropertyInput()
+    {
+    }
+
+    public void setValue( String propValue )
+    {
+        //Use default value to allow updates when page re-displayed
+        setDefaultValue( propValue );
+    }
+
+    /**
+     * Called to validate the non-existent user input
+     */
+    public boolean validate( InstallerContext cxt ) throws ValidationException
+    {
+        return true;
+    }
+
+    /**
+     * Used by checkConfig to validate the configuration file.
+     * Not used at runtime.
+     *
+     * @return boolean
+     */
+    public boolean validateObject()
+    {
+
+        final String typeName = "hidden";
+        if( getProperty() == null )
+        {
+            System.out.println( typeName + ": property must be set" );
+            return false;
+        }
+        if( getDefaultValue() == null )
+        {
+            System.out.println( typeName + ": value must be set" );
+            return false;
+        }
+        return true;
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/InputException.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/InputException.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/InputException.java	(revision 14989)
@@ -0,0 +1,12 @@
+package org.tp23.antinstaller.input;
+
+
+/**
+ * @author Paul Hinds
+ * @version $Id: InputException.java,v 1.1.1.1 2005/10/18 18:20:55 teknopaul Exp $
+ */
+public class InputException extends RuntimeException {
+	public InputException(String message){
+		super(message);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/InputField.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/InputField.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/InputField.java	(revision 14989)
@@ -0,0 +1,107 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ *
+ * <p>Object representation of an inputField XML Element </p>
+ * <p>Also used to hold data of the results of the installer questions </p>
+ * @author Paul Hinds
+ * @version $Id: InputField.java,v 1.4 2006/12/07 02:50:27 teknopaul Exp $
+ */
+public abstract class InputField
+	extends OutputField {
+
+	// i18n support
+	private static ResourceBundle langPack = null;
+	static{
+		try {
+			langPack = ResourceBundle.getBundle("resources.LanguagePack");
+		} catch (MissingResourceException e) {
+			// ignore, signifies no lang packs installed  
+		}
+	}
+
+	private String property;
+	protected String defaultValue;
+
+	/**
+	 * Flag to indicate that the user has already editted this field
+	 */
+	private boolean editted = false;
+
+	public InputField() {
+	}
+
+	public String getDisplayText() {
+		if(langPack != null){
+			return langPack.getString(getProperty() + ".displayText");
+		}
+		return displayText;
+	}
+	public String getExplanatoryText() {
+		if(langPack != null){
+			try {
+				return langPack.getString(getProperty() + ".explanatoryText");
+			} catch (MissingResourceException e) {
+				// ignore and return null explanatoryText is optional
+			}
+		}
+		return explanatoryText;
+	}
+
+	/**
+	 * Returns the input result if there is one and if this is a PropertyField
+	 * @return String
+	 */
+	public String getInputResult() {
+		return resultContainer.getProperty(property);
+	}
+
+	public void setInputResult(String inputResult) {
+		resultContainer.setProperty(property, inputResult);
+	}
+	public boolean isEditted() {
+		return editted;
+	}
+	public void setEditted(boolean editted) {
+		this.editted = editted;
+	}
+	public void setResultContainer(ResultContainer resultContainer) {
+		this.resultContainer = resultContainer;
+	}
+
+	public String getProperty() {
+		return property;
+	}
+
+	public void setProperty(String property) {
+		this.property = property;
+	}
+
+	public String getDefaultValue() {
+		return resultContainer.getDefaultValue(defaultValue);
+	}
+
+	public void setDefaultValue(String defaultValue) {
+		this.defaultValue = defaultValue;
+	}
+
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/LargeSelectInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/LargeSelectInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/LargeSelectInput.java	(revision 14989)
@@ -0,0 +1,151 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+
+/**
+ *
+ * <p>Input type to choose a single value from a (numbered) list of options </p>
+ * <p>This input is designed to handle larger lists of options </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: LargeSelectInput.java,v 1.3 2006/12/07 02:50:27 teknopaul Exp $
+ */
+public class LargeSelectInput
+	extends InputField{
+
+	// i18n support
+	private static ResourceBundle langPack = null;
+	private int optionIdx = 0;
+	static{
+		try {
+			langPack = ResourceBundle.getBundle("resources.LanguagePack");
+		} catch (MissingResourceException e) {
+			// ignore, signifies no lang packs installed  
+		}
+	}
+
+	private LargeSelectInput.Option[] options;
+
+	public LargeSelectInput() {
+	}
+
+
+	public LargeSelectInput.Option[] getOptions() {
+		return options;
+	}
+
+	public void setOptions(LargeSelectInput.Option[] options) {
+		this.options = options;
+	}
+	public Option getNewOption(){
+		return new Option();
+	}
+	
+	public class Option {
+
+		private int idx = ++optionIdx;
+		private String text;
+		public String value;
+		public void setText(String text) {
+			this.text = text;
+		}
+		public String getText() {
+			if(langPack != null){
+				return langPack.getString(getProperty() + "." + idx +".displayText");
+			}
+			return text;
+		}
+	}
+	
+	public void setValue(String dir){
+		setInputResult(dir);
+	}
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext cxt) throws ValidationException{
+		if(getInputResult()==null)return false;
+		String value = getInputResult();
+		boolean ok = false;
+		for (int i = 0; i < options.length; i++) {
+			ok |= options[i].value.equals(value);
+		}
+		return ok;
+	}
+
+
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText()==null){
+			System.out.println("LargeSelect:displayText must be set");
+			return false;
+		}
+		if(getProperty()==null){
+			System.out.println("LargeSelect:property must be set");
+			return false;
+		}
+		if(getDefaultValue()==null){
+			System.out.println("LargeSelect:defaultValue must be set");
+			return false;
+		}
+		if(getOptions()==null){
+			System.out.println("LargeSelect:option must have at least two options");
+			return false;
+		}
+		if(getOptions().length<2){
+			System.out.println("LargeSelect:option must have at least two options");
+			return false;
+		}
+		for (int i = 0; i < getOptions().length; i++) {
+			Option o = getOptions()[i];
+			if(o.getText()==null){
+				System.out.println("LargeSelect:option:text must be set");
+				return false;
+			}
+			if(o.value==null){
+				System.out.println("LargeSelect:option:value must be set");
+				return false;
+			}
+		}
+		boolean defaultExists = false;
+		for (int i = 0; i < getOptions().length; i++) {
+			Option o = getOptions()[i];
+			if(o.value.equals(getDefaultValue())){
+				defaultExists=true;
+			}
+		}
+		if(!defaultExists){
+			System.out.println("LargeSelect:option:Default must be one of the options");
+			return false;
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/OSSpecific.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/OSSpecific.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/OSSpecific.java	(revision 14989)
@@ -0,0 +1,49 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+import org.tp23.antinstaller.InstallerContext;
+/**
+ * Operating System Specific input fields have different default values for Unix and Windoze
+ * TODO something more with defaults for optionally supporting more OSs
+ */
+public abstract class OSSpecific extends InputField {
+
+	private String defaultValueWin;
+
+	public String getDefaultValue(boolean correctForOS) {
+		if(InstallerContext.isUnix() || defaultValueWin == null){
+            if("".equals(defaultValue)){
+                return "";
+            }
+			return resultContainer.getDefaultFileRef(defaultValue);
+		}
+		else {
+            if("".equals(defaultValueWin)){
+                return "";
+            }
+            return resultContainer.getDefaultFileRef(defaultValueWin);
+        }
+	}
+
+	public String getDefaultValueWin() {
+		return defaultValueWin;
+	}
+
+	public void setDefaultValueWin(String defaultValueWin) {
+		this.defaultValueWin = defaultValueWin;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/OutputField.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/OutputField.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/OutputField.java	(revision 14989)
@@ -0,0 +1,146 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+/**
+ * This is the super class of all "Input types".  It is called OutputField since
+ * it handles the base features of "Input types" for outputing text for
+ * the user to read.  It also encapsulates some convenience methods for
+ * interpreting boolean values from the command line and in configuration files.
+ */
+public abstract class OutputField {
+
+	// i18n support
+	private static ResourceBundle langPack = null;
+	private static int commentIdx = 0;
+	static{
+		try {
+			langPack = ResourceBundle.getBundle("resources.LanguagePack");
+		} catch (MissingResourceException e) {
+			// ignore, signifies no lang packs installed 
+		}
+	}
+	
+	/* This is redundant unless language packs are used
+	 */
+	private String name = "comment." + ++commentIdx;
+	
+	protected String displayText;
+	protected String explanatoryText;
+	protected ResultContainer resultContainer;
+	
+	public OutputField() {
+		
+	}
+
+	/* This is redundant unless language packs are used
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/* This is redundant unless language packs are used
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getDisplayText() {
+		if(langPack != null){
+			return langPack.getString(getName() + ".displayText");
+		}
+		return displayText;
+	}
+
+	public void setDisplayText(String displayText) {
+		this.displayText = displayText;
+	}
+
+	public String getExplanatoryText() {
+		if(langPack != null){
+			try {
+				return langPack.getString(getName() + ".explanatoryText");
+			} catch (MissingResourceException e) {
+				// ignore and return null explanatoryText is optional
+			}
+		}
+		return explanatoryText;
+	}
+
+	public void setExplanatoryText(String explanatoryText) {
+		this.explanatoryText = explanatoryText;
+	}
+
+	public void setResultContainer(ResultContainer resultContainer) {
+		this.resultContainer = resultContainer;
+	}
+
+	/**
+	 * Validate the user input (or lack of it)
+	 * This method should return false if the validation fails an throw an exception
+	 * if it is not possible to validate or there is an error.
+	 *
+	 * @param cxt InstallerContext
+	 * @throws ValidationException thrown in error conditions not validation failure
+	 * @return boolean
+	 */
+	public abstract boolean validate(InstallerContext cxt) throws ValidationException;
+
+	/**
+	 * Used to validate the configuration, this can be run prior to distributing the
+	 * installer to check that the config is valid. Will not be used at runtime.
+	 * @throws ValidationException
+	 * @return boolean
+	 */
+	public abstract boolean validateObject();
+
+	//////////////////////Static convenience methods
+
+	    /** true if specified and true or yes.
+	     *  N.B it is possible for X,  isTrue(X) == isFalse(X); 
+	     *  This occurs if the value is null.
+	     */
+		public static boolean isTrue(String value){
+			if(value == null)return false;
+			return value.equalsIgnoreCase("true") || value.equalsIgnoreCase("yes");
+		}
+		/** same as isTrue() but default is false if not specified */
+		public static boolean isFalse(String value){
+			if(value == null)return false;
+			return value.equalsIgnoreCase("false") || value.equalsIgnoreCase("no");
+		}
+		/**
+		 * Return true if the value is set to true or false, returns false if the value is null
+		 * @param value String
+		 * @return boolean
+		 */
+		public static boolean requiredBoolean(String value){
+			return isTrue(value) || isFalse(value);
+		}
+		/**
+		 * Return true if the value is set to true or false, returns false if the value is null
+		 * @param value String
+		 * @return boolean
+		 */
+		public static boolean optionalBoolean(String value){
+			return value == null || isTrue(value) || isFalse(value);
+		}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/PasswordTextInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/PasswordTextInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/PasswordTextInput.java	(revision 14989)
@@ -0,0 +1,75 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+/**
+ *
+ * <p>Free validated text input type that does not echo the value in the GUI.</p>
+ * <p>This class implements SecretPropertyField so the
+ * values are not printed in the properties file.  It is the responsibility of the renderer
+ * not to show the password. Hiding is currently not supported on the console.</p>
+ * @author Paul Hinds
+ * @version $Id: PasswordTextInput.java,v 1.3 2006/12/21 00:03:09 teknopaul Exp $
+ */
+public class PasswordTextInput
+	extends ValidatedTextInput implements SecretPropertyField
+{
+
+	private String textMask = "false";
+
+	/**
+	 * @return Returns true if text masking is requested.
+	 */
+	public String getTextMask() {
+		return textMask;
+	}
+	/**
+	 * @param textMask The textMask value true or false.
+	 */
+	public void setTextMask(String textMask) {
+		this.textMask = textMask;
+	}
+	/**
+	 * Used by checkConfig to validate the configuration file
+	 * not at runtime
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if( ! InputField.optionalBoolean(getTextMask())){
+			System.out.println("Comment:textMask must be true or false or null:" + getTextMask());
+			return false;
+		}
+		if(getDisplayText() == null){
+			System.out.println("Password:displayText must be set");
+			return false;
+		}
+		if(getProperty() == null){
+			System.out.println("Password:property must be set");
+			return false;
+		}
+		if(getDefaultValue() == null){
+			System.out.println("Password:defaultValue must be set");
+			return false;
+		}
+		if(getRegex() == null){
+			System.out.println("Password:regex must be set");
+			return false;
+		}
+		return true;
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ResultContainer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ResultContainer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ResultContainer.java	(revision 14989)
@@ -0,0 +1,190 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.tp23.antinstaller.InstallerContext;
+
+
+
+/**
+ * <p>Data Holder for results of the data collection and convenience methods for
+ * obtaining default values containing ${prop.name}/blah syntax </p>
+ * @todo   Ensure in the validator (and Docs) that developers only add ${refs} for properties set on earlier pages
+ * @author Paul Hinds
+ * @version $Id: ResultContainer.java,v 1.6 2007/01/28 10:25:48 teknopaul Exp $
+ */
+public class ResultContainer {
+
+	private HashMap properties = new HashMap();
+	private Properties environment = InstallerContext.getEnvironment();
+	private File installRoot;
+
+	public ResultContainer() {
+	}
+
+	/**
+	 * fetch a string for File and Directory inputs that expands ${refs} and
+	 * also creates absolute paths from relative paths in the default value
+	 * @param defaultString String
+	 * @return String
+	 */
+	public String getDefaultFileRef(String defaultString){
+		if(defaultString == null) {
+            return null;
+        }
+        
+		String expandedRefs = getDefaultValue(defaultString);
+		File ref = new File(expandedRefs);
+		if(!ref.isAbsolute()){
+			String path = null;
+			try {
+				path = new File(installRoot, expandedRefs).getCanonicalPath();
+			}
+			catch (IOException ex) {
+				// this is a bugger, but it should not happen it implies . or ..
+				// can not be resolved, all we can do is return the . or .. and hope
+				// it works later
+				 path = new File(installRoot, expandedRefs).getAbsolutePath();
+			}
+			return path;
+		} else {
+			String path = ref.getAbsolutePath();
+			return path;
+		}
+	}
+
+    /**
+	 *
+     * Handles dereferenceing ${propName} syntax in default value fields
+	 * @param defaultString String a plain String or a String with ${ref} references
+	 * @return String
+	 */
+	public String getDefaultValue(String defaultString) {
+		if(defaultString == null) {
+            return null;
+        }
+
+		char[] characters = defaultString.toCharArray();
+		char c;
+		StringBuffer result = new StringBuffer();
+
+		StringBuffer propertyNameBuffer = new StringBuffer();
+		boolean inProp = false; // state flag indicating parsing a propertyName
+		for (int i = 0; i < characters.length;) {
+			c = characters[i];
+			if ( c == '$' && ( characters.length > i + 1 && characters[i + 1] == '{' ) ){
+				if(inProp){
+                    //Nested property
+                    int endIndex = defaultString.indexOf( '}', i + 1 );
+                    if( endIndex != -1 ) {
+                        ++endIndex;
+                        propertyNameBuffer.append( getDefaultValue( defaultString.substring( i, endIndex ) ) );
+                        i = endIndex;
+                        continue;
+                    }
+                    else {
+                        result.append(propertyNameBuffer.toString());
+                        propertyNameBuffer = new StringBuffer();
+                    }
+                }
+				else{
+					inProp = true;
+					propertyNameBuffer.append(c);
+                    ++i;
+                    continue;
+				}
+			}
+			else if (c == '{') {
+				if (inProp) {
+					propertyNameBuffer.append(c);
+					if(characters[i - 1] != '$') {
+						inProp=false;
+						result.append(propertyNameBuffer.toString());
+						propertyNameBuffer = new StringBuffer();
+					}
+                    ++i;
+                    continue;
+				}
+			}
+			else if (c == '}') {
+				if (inProp) {
+					appendProperty(propertyNameBuffer, result);
+					propertyNameBuffer = new StringBuffer();
+					inProp = false;
+                    ++i;
+                    continue;
+				}
+			}
+			if (!inProp) result.append(c);
+			else propertyNameBuffer.append(c);
+            ++i;
+        }
+		if(propertyNameBuffer.length() != 0) {
+            result.append(propertyNameBuffer.toString());
+        }
+		return result.toString();
+	}
+
+
+
+	public HashMap getResults() {
+		return properties;
+	}
+	public void setProperty(String key, String value){
+		properties.put(key, value);
+	}
+	public String getProperty(String key){
+		return (String)properties.get(key);
+	}
+
+	public void setInstallRoot(File installRoot) {
+		this.installRoot = installRoot;
+	}
+	/**
+	 * @since 0.7.1 to support installs from readonly media
+	 * @return Map
+	 */
+	public Map getAllProperties(){
+		return properties;
+	}
+
+	/**
+	 * Appends the property if found or inserts an empty string.
+	 * This method now supports loading environment variables.
+	 * @param propertyNameBuffer StringBuffer
+	 * @param result StringBuffer
+	 */
+	private void appendProperty(StringBuffer propertyNameBuffer, StringBuffer result) {
+		String propertyName = propertyNameBuffer.toString();
+		String key = propertyName.substring(2);
+		String value = (String)properties.get(key);
+		if(value == null && key.startsWith(InstallerContext.ENV_PREFIX)) {
+			value = environment.getProperty(key);
+		}
+		if(value == null && key.startsWith(InstallerContext.JAVA_PREFIX)) {
+			value = environment.getProperty(key);
+		}
+		if (value != null) {
+			result.append(value);
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/SecretPropertyField.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/SecretPropertyField.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/SecretPropertyField.java	(revision 14989)
@@ -0,0 +1,30 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+/**
+ *
+ * <p>An InputField that should not have its property printed to the properties
+ * file, probably for security reasons such as a PasswordTextInput </p>
+ * <p>It is imperative that all classes that implement this interface extend
+* InputField </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: SecretPropertyField.java,v 1.1.1.1 2005/10/18 18:20:55 teknopaul Exp $
+ */
+public interface SecretPropertyField{
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/SelectInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/SelectInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/SelectInput.java	(revision 14989)
@@ -0,0 +1,152 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+
+/**
+ *
+ * <p>Input type to choose a single value from a (numbered) list of options </p>
+ * <p>N.B. subclassed for TargetSelectInput </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: SelectInput.java,v 1.4 2006/12/07 02:50:27 teknopaul Exp $
+ */
+public class SelectInput
+	extends InputField{
+
+	// i18n support
+	private static ResourceBundle langPack = null;
+	private int optionIdx = 0;
+	static{
+		try {
+			langPack = ResourceBundle.getBundle("resources.LanguagePack");
+		} catch (MissingResourceException e) {
+			// ignore, signifies no lang packs installed  
+		}
+	}
+
+	private SelectInput.Option[] options;
+
+	public SelectInput() {
+	}
+
+
+	public SelectInput.Option[] getOptions() {
+		return options;
+	}
+
+	public void setOptions(SelectInput.Option[] options) {
+		this.options = options;
+	}
+	public Option getNewOption(){
+		return new Option();
+	}
+	
+	public class Option {
+		
+		private int idx = ++optionIdx;
+		private String text;
+		public String value;
+		
+		public void setText(String text) {
+			this.text = text;
+		}
+		public String getText() {
+			if(langPack != null){
+				return langPack.getString(getProperty() + "." + idx +".displayText");
+			}
+			return text;
+		}
+	}
+	
+	public void setValue(String value){
+		setInputResult(value);
+	}
+	
+	public boolean validate(InstallerContext cxt) throws ValidationException{
+		if(getInputResult() == null){
+			return false;
+		}
+		String value = getInputResult();
+		boolean ok = false;
+		for (int i = 0; i < options.length; i++) {
+			ok |= options[i].value.equals(value);
+		}
+		return ok;
+	}
+
+
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText()==null){
+			System.out.println("Select:displayText must be set");
+			return false;
+		}
+		if(getProperty()==null){
+			System.out.println("Select:property must be set");
+			return false;
+		}
+		if(getDefaultValue()==null){
+			System.out.println("Select:defaultValue must be set");
+			return false;
+		}
+		if(getOptions()==null){
+			System.out.println("Select:option must have at least two options");
+			return false;
+		}
+		if(getOptions().length<2){
+			System.out.println("Select:option must have at least two options");
+			return false;
+		}
+		for (int i = 0; i < getOptions().length; i++) {
+			Option o = getOptions()[i];
+			if(o.getText()==null){
+				System.out.println("Select:option:text must be set");
+				return false;
+			}
+			if(o.value==null){
+				System.out.println("Select:option:value must be set");
+				return false;
+			}
+		}
+		boolean defaultExists = false;
+		for (int i = 0; i < getOptions().length; i++) {
+			Option o = getOptions()[i];
+			if(o.value.equals(getDefaultValue())){
+				defaultExists=true;
+			}
+		}
+		if(!defaultExists){
+			System.out.println("Select:option:Default must be one of the options");
+			return false;
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/Target.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/Target.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/Target.java	(revision 14989)
@@ -0,0 +1,11 @@
+package org.tp23.antinstaller.input;
+/**
+ * Indicates the input type is a target based type and requires special
+ * processing in the properties loader
+ * @author teknopaul
+ *
+ */
+public interface Target {
+	public int getIdx();
+	public String getTarget();
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/TargetInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/TargetInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/TargetInput.java	(revision 14989)
@@ -0,0 +1,209 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+/**
+ *
+ * <p>Input type to select targets to install </p>
+ * If the osSpecific flag is set the OS of the current system will
+ * be appended to the name of the target actually by ant run so that different
+ * Targets can be run according to the target platform.
+ * This feature goes against the principles of
+ * building cross platform installers, but is provided so that common installer
+ * tasks such as creating icons and shortcuts can be run on Windows for
+ * all those useless users who can't run a command script ;)
+ * <br>
+ * Currently there are two modes strict and not strict (lax).</p>
+ * <p>Strict target will return the target name plus the exact String in the
+ * System Property "os.name" this means you will have to provide targets for
+ * every possible OS version. See
+ * <a href="http://lopica.sourceforge.net/os.html">this page</a> for a list of possible values
+ * There are a great many but you may not want to consider some of the options.</p>
+ * <p>Lax target will return one of the following strings only
+ * <ul>
+ * <li>"[target-name]-linux" - Linux </li>
+ * <li>"[target-name]-mac" - Mac OS and Mac OS X</li>
+ * <li>"[target-name]-sun" - SunOS and Solaris</li>
+ * <li>"[target-name]-win" - Windows *</li>
+ * <li>"[target-name]-other" - any thing else</li>
+ * </ul></p> so you only have to create 5 ant targets to support all the cases.
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: TargetInput.java,v 1.3 2006/12/07 02:42:22 teknopaul Exp $
+ */
+public class TargetInput
+	extends InputField
+	implements Target{
+
+
+	private String target;
+	private String force;
+	private String osSpecific;
+	private String strict;
+	//targets are ordered
+	private int idx;
+
+	private static int globalIdx = 1;
+
+	public TargetInput() {
+		idx = getGlobalIdx();
+	}
+
+	public String getTarget() {
+		if(isTrue(osSpecific)){
+			return getOSSpecificTarget();
+		} else {
+			return target;
+		}
+	}
+
+	/**
+	 * Used to fetch the target value that was set in the config file
+	 * @return
+	 */
+	public String getTargetName() {
+		return target;
+	}
+
+	public void setTarget(String target) {
+		this.target = target;
+		setProperty(target);
+	}
+
+	public String getForce() {
+		return force;
+	}
+
+	public void setForce(String force) {
+		this.force = force;
+	}
+
+
+	public String getStrict() {
+		return strict;
+	}
+
+	public void setStrict(String strict) {
+		this.strict = strict;
+	}
+
+	public String getOsSpecific() {
+		return osSpecific;
+	}
+
+	public void setOsSpecific(String osSpecific) {
+		this.osSpecific = osSpecific;
+	}
+
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext cxt) throws ValidationException {
+		//setInputResult(target);
+		return true;
+	}
+
+
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText()==null){
+			System.out.println("Target:displayText must be set");
+			return false;
+		}
+		if(getTarget()==null){
+			System.out.println("Target:target must be set");
+			return false;
+		}
+//		if(getTarget().equals("default")){
+//			System.out.println("Target:target can not be \"default\"");
+//			return false;
+//		}
+		if(!InputField.optionalBoolean(getForce())){
+			System.out.println("Target:force must be true or false or null");
+			return false;
+		}
+		if(!InputField.optionalBoolean(getStrict())){
+			System.out.println("Target:strict must be true or false or null");
+			return false;
+		}
+		if(!InputField.optionalBoolean(getOsSpecific())){
+			System.out.println("Target:osSpecific must be true or false or null");
+			return false;
+		}
+		if(!InputField.requiredBoolean(getDefaultValue())){
+			System.out.println("Target:defaultValue must be true or false");
+			return false;
+		}
+		return true;
+	}
+    public int getIdx() {
+		return idx;
+    }
+	public static int getGlobalIdx() {
+		return globalIdx++;
+	}
+
+	public String getOSSpecificTarget() {
+		if(isTrue(strict)){
+			return getStrictTarget();
+		}
+		else return getLaxTarget();
+	}
+
+	private String getStrictTarget(){
+		return target + getOsSpecificSuffix();
+	}
+
+	private String getLaxTarget(){
+		return target + getLaxOsSpecificSuffix();
+	}
+
+	/**
+	 * N.B.  should have added a "-" but to late to change now and not important
+	 * @return
+	 */
+	public static String getOsSpecificSuffix(){
+		return System.getProperty("os.name");
+	}
+	public static String getLaxOsSpecificSuffix(){
+		String osName = System.getProperty("os.name").toLowerCase();
+		if(osName.indexOf("linux") != -1){
+			return "-linux";
+		}
+		if(osName.indexOf("mac") != -1){
+			return "-mac";
+		}
+		if(osName.indexOf("windows") != -1){
+			return "-win";
+		}
+		if(osName.indexOf("solaris") != -1 || osName.indexOf("sunos") != -1){
+			return "-sun";
+		}
+		return "-other";
+		
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/TargetSelectInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/TargetSelectInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/TargetSelectInput.java	(revision 14989)
@@ -0,0 +1,100 @@
+/* 
+ * Copyright 2005 Paul Hinds, Mark Anderson
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+/**
+ *
+ * <p>Input type to choose a single value from a (numbered) list of options
+ * which will be rendered as radio buttons in the Swing GUI </p>
+ * REF: 1177206
+ * @author Paul Hinds, Mark Anderson
+ * @version $Id: TargetSelectInput.java,v 1.4 2006/12/21 00:03:08 teknopaul Exp $
+ */
+public class TargetSelectInput
+	extends SelectInput
+	implements Target{
+
+	//targets are ordered
+	private int idx;
+
+	public TargetSelectInput() {
+		idx = TargetInput.getGlobalIdx();
+	}
+
+	public int getIdx() {
+		return idx;
+	}
+	
+	public String getTarget(){
+		return super.getDefaultValue();
+	}
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText() == null){
+			System.out.println("TargetSelect:displayText must be set");
+			return false;
+		}
+		if(getProperty() == null){
+			System.out.println("TargetSelect:property must be set");
+			return false;
+		}
+		if(getDefaultValue() == null){
+			System.out.println("TargetSelect:defaultValue must be set");
+			return false;
+		}
+		if(getOptions() == null){
+			System.out.println("TargetSelect:option must have at least two options");
+			return false;
+		}
+		if(getOptions().length < 2){
+			System.out.println("TargetSelect:option must have at least two options");
+			return false;
+		}
+		for (int i = 0; i < getOptions().length; i++) {
+			Option o = getOptions()[i];
+			if(o.getText() == null){
+				System.out.println("TargetSelect:option:text must be set");
+				return false;
+			}
+			if(o.value == null){
+				System.out.println("TargetSelect:option:value must be set");
+				return false;
+			}
+		}
+		boolean defaultExists = false;
+		for (int i = 0; i < getOptions().length; i++) {
+			Option o = getOptions()[i];
+			if(o.value.equals(getDefaultValue())){
+				defaultExists=true;
+			}
+//			if(o.value.equals("default")){
+//				System.out.println("Target:target can not be \"default\"");
+//				return false;
+//			}
+		}
+		if(!defaultExists){
+			System.out.println("TargetSelect:option:Default must be one of the options");
+			return false;
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/UnvalidatedTextInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/UnvalidatedTextInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/UnvalidatedTextInput.java	(revision 14989)
@@ -0,0 +1,66 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+/**
+ *
+ * <p>Free text input type </p>
+ * @author Paul Hinds
+ * @version $Id: UnvalidatedTextInput.java,v 1.1.1.1 2005/10/18 18:20:54 teknopaul Exp $
+ */
+public class UnvalidatedTextInput
+	extends InputField{
+
+	public UnvalidatedTextInput() {
+	}
+
+	public void setValue(String dir){
+		setInputResult(dir);
+	}
+
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext cxt) throws ValidationException{
+		return true;
+	}
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText()==null){
+			System.out.println("Simple:displayText must be set");
+			return false;
+		}
+		if(getProperty()==null){
+			System.out.println("Simple:property must be set");
+			return false;
+		}
+		if(getDefaultValue()==null){
+			System.out.println("Simple:defualtValue must be set");
+			return false;
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ValidatedTextInput.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ValidatedTextInput.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/ValidatedTextInput.java	(revision 14989)
@@ -0,0 +1,113 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.input;
+
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.tools.ant.BuildException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+
+
+/**
+ *
+ * <p>Free text input type with validation using regular expressions</p>
+ * @author Paul Hinds
+ * @version $Id: ValidatedTextInput.java,v 1.2 2006/12/21 00:03:09 teknopaul Exp $
+ */
+public class ValidatedTextInput
+	extends InputField{
+
+    private String regex;
+	private Pattern pattern;
+	//private RegexpMatcher matcher; // use ant version in an attempt to support jdk1.3
+
+	public ValidatedTextInput() {
+	}
+
+	public void setValue(String dir){
+		setInputResult(dir);
+	}
+    public String getRegex() {
+		return regex;
+    }
+    public void setRegex(String regex) {
+		this.regex = regex;
+		try {
+			//matcher = new RegexpMatcherFactory().newRegexpMatcher();
+			//matcher.setPattern(regex);
+			pattern = Pattern.compile(regex);
+		}
+		catch (BuildException ex) {
+			throw new InputException("Invalid regex in Validated text input");
+		}
+    }
+
+	/**
+	 * Called to validate the user input
+	 */
+	public boolean validate(InstallerContext cxt) throws ValidationException{
+		try {
+			if (getInputResult() == null)return false;
+			String toTest = getInputResult();
+
+			Matcher matcher = pattern.matcher(toTest);
+			//boolean matches =  matcher.matches(toTest);
+			boolean matches =  matcher.matches();
+
+			return matches;
+		}
+		catch (Throwable e) {
+			cxt.log(e);
+			return false;
+		}
+	}
+
+	/**
+	 * Used by checkConfig to validate the configuration file.
+	 * Not used at runtime.
+	 * @return boolean
+	 */
+	public boolean validateObject() {
+		if(getDisplayText()==null){
+			System.out.println("Validated:displayText must be set");
+			return false;
+		}
+		if(getProperty()==null){
+			System.out.println("Validated:property must be set");
+			return false;
+		}
+		if(getDefaultValue()==null){
+			System.out.println("Validated:defaultValue must be set");
+			return false;
+		}
+		if(getRegex()==null){
+			System.out.println("Validated:regex must be set");
+			return false;
+		}
+		try{
+			//matcher = new RegexpMatcherFactory().newRegexpMatcher();
+			//matcher.setPattern(getRegex());
+		}
+		catch(Exception e){
+			System.out.println("Validated:regex must compile");
+			
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/Validator.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/Validator.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/Validator.java	(revision 14989)
@@ -0,0 +1,40 @@
+package org.tp23.antinstaller.input;
+
+import java.util.Locale;
+
+import org.tp23.antinstaller.InstallerContext;
+
+
+/**
+ * A no args constructor should be provided
+ * @author Paul Hinds
+ * @version $Id: Validator.java,v 1.1.1.1 2005/10/18 18:20:54 teknopaul Exp $
+ */
+public interface Validator {
+
+	/**
+	 * Validate the user entry.  The InstallerContext is provided to allow
+	 * conditional failure based on user input. for example the implementation
+	 * of this class could call the following code after failing to open a socket
+	 * <pre>
+	 * boolean usrOverride = ctx.getMessageRenderer().prompt("Prot not available are you sure?");
+	 * if(userOverride)return true;
+	 * else{
+	 * 	throw new SocketException();
+	 * }
+	 * </pre>
+	 * @param text  may be null it is up to the validator to decide if null or ""
+	 * is acceptable
+	 * @throws Exception
+	 */
+	public void validate(String text,InstallerContext ctx)throws Exception;
+	/**
+	 * This method should return a string for every exception that might be 
+	 * thrown by the validate method.  The top level Throwable should be 
+	 * handled at least.  
+	 * @param ex
+	 * @param l Locale (ignored, but one day we should be internationalized)
+	 * @return
+	 */
+	public String getErrorMessage(Throwable ex,Locale l);
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/package.html
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/package.html	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/input/package.html	(revision 14989)
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head><!--
+  Copyright (c) 2004 tp23
+  All Rights Reserved.
+--></head>
+
+<body bgcolor="white">Contains classes for representing Input/Output elements and holding the data collected for each input type.</body>
+</html>
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/LicensePage.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/LicensePage.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/LicensePage.java	(revision 14989)
@@ -0,0 +1,52 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.page;
+
+
+/**
+ *
+ * <p>Represents a license page witha  resouce that contains the text of the licenses </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: LicensePage.java,v 1.1.1.1 2005/10/18 18:21:04 teknopaul Exp $
+ */
+public class LicensePage
+	extends Page {
+
+	private String resource;
+	private String usePaging;
+
+	public LicensePage() {
+	}
+
+	public String getResource() {
+		return resource;
+	}
+
+	public void setResource(String resource) {
+		this.resource = resource;
+	}
+
+	public String getUsePaging() {
+		return usePaging;
+	}
+
+	public void setUsePaging(String usePaging) {
+		this.usePaging = usePaging;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/Page.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/Page.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/Page.java	(revision 14989)
@@ -0,0 +1,284 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.page;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.TreeSet;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.TargetInput;
+import org.tp23.antinstaller.runtime.IfPropertyHelper;
+/**
+ *
+ * <p>Represents a page in the installer. </p>
+ * <p>This object maintians an ordered list of targets that have been selected
+* so that when ant is run the targets are run in the correct order.  If
+* Targets exist in multiple pages they are run in the order they appear in the config file.  </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: Page.java,v 1.10 2007/01/19 00:24:36 teknopaul Exp $
+ */
+
+public abstract class Page {
+
+//	 i18n support
+	private static ResourceBundle langPack = null;
+	static{
+		try {
+			langPack = ResourceBundle.getBundle("LanguagePack");
+		} catch (MissingResourceException e) {
+			// ignore, signifies no lang packs installed  
+		}
+	}
+	
+	//private static final int MAX_TARGETS = 10;
+	private String name;
+	private String displayText;
+	private String imageResource;
+	private OutputField[] outputField;
+	private boolean abort;
+	/**
+	 *  target to be called as the installer is running
+	 */
+	private String postDisplayTarget;
+	private Set targets = new TreeSet();
+
+	public Page() {
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getDisplayText() {
+		if(langPack != null){
+			return langPack.getString("page." + getName() + ".displayText");
+		}
+		return displayText;
+	}
+
+	public void setDisplayText(String displayText) {
+		this.displayText = displayText;
+	}
+
+	public String getImageResource() {
+		return imageResource;
+	}
+
+	public void setImageResource(String imageResource) {
+		this.imageResource = imageResource;
+	}
+
+	public OutputField[] getOutputField() {
+		return outputField;
+	}
+
+	public void setOutputField(OutputField[] outputField) {
+		this.outputField = outputField;
+	}
+
+	public String getPostDisplayTarget() {
+		return postDisplayTarget;
+	}
+
+	public void setPostDisplayTarget(String runtimeTarget) {
+		this.postDisplayTarget = runtimeTarget;
+	}
+
+
+    /**
+	 * These are the ant targets that will be run, this is decided after
+	 * the Page has been displayed.  For example if the user chooses not
+	 * to enter a field that may signify that a target should not be run
+	 * @return A sorted List a list of Ant targets as Strings;
+     * @throws InstallException 
+	 */
+	public List getTargets(InstallerContext ctx) {
+		List results = new ArrayList(targets.size());
+		try {
+			Iterator iter = targets.iterator();
+			IfPropertyHelper helper = new IfPropertyHelper(ctx);
+			while(iter.hasNext()){
+				IndexedTarget idxTarget = (IndexedTarget)iter.next();
+				if( IndexedTarget.PAGE.equals(idxTarget.getTargetType()) ){
+					if( helper.ifProperty(this) || helper.ifTarget(this, ctx.getInstaller().getPages() ) ){
+						results.add(idxTarget.target);
+					}
+				}
+				else{
+					results.add(idxTarget.target);
+				}
+			}
+		} catch (InstallException e) {
+			// should not happen at runtime if ifProperty has been validated
+			e.printStackTrace();
+            ctx.log(ctx.getInstaller().isVerbose(), e);
+			throw new RuntimeException();
+		}
+		return results;
+	}
+	/**
+	 * get input targets that are selected and all page targets, independent of
+	 * the ifProperty value 
+	 * @return
+	 */
+	public List getAllTargets() {
+		List results = new ArrayList(targets.size());
+		Iterator iter = targets.iterator();
+		while(iter.hasNext()){
+			IndexedTarget idxTarget = (IndexedTarget)iter.next();
+			results.add(idxTarget.target);
+		}
+		return results;
+	}
+	/**
+	 * Comma separated list of targets for this page, called when parsing the
+	 * config file
+	 * @param target String
+	 */
+	public void setTarget(String targetList) {
+		StringTokenizer st = new StringTokenizer(targetList, ",");
+		while (st.hasMoreTokens()) {
+			targets.add(new IndexedTarget(TargetInput.getGlobalIdx(), 
+					st.nextToken(),
+					IndexedTarget.PAGE));
+		}
+	}
+	/**
+	 * Adds an INPUT target to the Page config
+	 * @param idx
+	 * @param target
+	 */
+	public void addTarget(int idx, String target) {
+		this.targets.add(new IndexedTarget(idx, target, IndexedTarget.INPUT));
+	}
+	public void removeTarget(int idx) {
+		this.targets.remove(new IndexedTarget(idx, null));
+	}
+	/**
+	 * returns true if the page has the current target set
+	 * @param target String
+	 * @return boolean
+	 */
+	public boolean isTarget(String target) {
+		if(target == null){
+			return false;
+		}
+		Iterator iter = targets.iterator();
+		while(iter.hasNext()) {
+			IndexedTarget idxTarget = (IndexedTarget)iter.next();
+			if(idxTarget.target.equals(target)){
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * @return a List of IndexedTarget objects
+	 */
+	public List getPageTargets(){
+		List toReturn = new ArrayList(targets.size());
+		Iterator iter = targets.iterator();
+		while(iter.hasNext()) {
+			IndexedTarget idxTarget = (IndexedTarget)iter.next();
+			if( IndexedTarget.PAGE.equals(idxTarget.targetType) ){
+				toReturn.add(idxTarget);
+			}
+		}
+		return toReturn;
+	}
+
+	/**
+	 * @return a List of IndexedTarget objects
+	 */
+	public List getElementTargets(){
+		List toReturn = new ArrayList(targets.size());
+		Iterator iter = targets.iterator();
+		while(iter.hasNext()) {
+			IndexedTarget idxTarget = (IndexedTarget)iter.next();
+			if( IndexedTarget.INPUT.equals(idxTarget.targetType) ){
+				toReturn.add(idxTarget);
+			}
+		}
+		return toReturn;
+	}
+    /**
+	 * This is called after the page is displayed, a page can return false to indicate
+	 * that the installation should abort.  Should be false if the cancel button is pressed.
+	 * System.exit is not called to allow the installer to clean up temporary files.
+	 * @return boolean
+	 */
+	public boolean isAbort() {
+		return abort;
+	}
+
+	public void setAbort(boolean abort) {
+		this.abort = abort;
+	}
+	public static class IndexedTarget implements Comparable{
+		
+		private static final String PAGE = "page";
+		private static final String INPUT = "input";
+		
+		int idx;
+		String target;
+		String targetType = INPUT;
+		
+		IndexedTarget(int idx, String target){
+			this.idx = idx;
+			this.target = target;
+		}
+		IndexedTarget(int idx, String target, String targetType){
+			this.idx = idx;
+			this.target = target;
+			this.targetType = targetType;
+		}
+		
+		public boolean equals(Object target){
+			IndexedTarget test = (IndexedTarget)target;
+			return test.idx == idx;
+		}
+        // FindBugs - part of equals() contract
+        public int hashCode(){
+            return this.idx;
+        }
+		public int compareTo(Object o) {
+			IndexedTarget test = (IndexedTarget)o;
+			return idx - test.idx;
+		}
+		public String getTarget() {
+			return target;
+		}
+		public String getTargetType() {
+			return targetType;
+		}
+
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/ProgressPage.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/ProgressPage.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/ProgressPage.java	(revision 14989)
@@ -0,0 +1,43 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.page;
+
+import org.tp23.antinstaller.input.OutputField;
+
+public class ProgressPage extends Page{
+	
+	private boolean showTargets = true;
+	
+	
+	public ProgressPage() {
+	}
+	/**
+	 * @return Returns the showTargets.
+	 */
+	public boolean isShowTargets() {
+		return showTargets;
+	}
+	/**
+	 * @param showTargets indicates that the graphical display of
+	 * progress should be used in the Swing renderer
+	 */
+	public void setShowTargets(boolean showTargets) {
+		this.showTargets = showTargets;
+	}
+	public void setShowTargets(String strShowTargets) {
+		this.showTargets = OutputField.isTrue(strShowTargets);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/SimpleInputPage.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/SimpleInputPage.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/SimpleInputPage.java	(revision 14989)
@@ -0,0 +1,57 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.page;
+
+import org.tp23.antinstaller.input.OutputField;
+
+
+
+public class SimpleInputPage
+	extends Page {
+
+
+	private String ifTarget;
+    private String ifProperty;
+	private boolean overflow;
+
+	public SimpleInputPage() {
+	}
+
+	public String getIfTarget() {
+		return ifTarget;
+	}
+
+	public void setIfTarget(String ifTarget) {
+		this.ifTarget = ifTarget;
+	}
+    public String getIfProperty() {
+    	return ifProperty;
+    }
+    public void setIfProperty(String ifProperty) {
+    	this.ifProperty = ifProperty;
+    }
+
+	public boolean isOverflow() {
+		return overflow;
+	}
+	public void setOverflow(boolean overflow) {
+		this.overflow = overflow;
+	}
+	public void setOverflow(String strOverflow) {
+		this.overflow = OutputField.isTrue(strOverflow);
+	}
+	
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/SplashPage.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/SplashPage.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/SplashPage.java	(revision 14989)
@@ -0,0 +1,40 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.page;
+
+public class SplashPage
+	extends Page {
+	private String splashResource;
+	private String altText;
+	public SplashPage() {
+	}
+
+	public String getSplashResource() {
+		return splashResource;
+	}
+
+	public void setSplashResource(String splashResource) {
+		this.splashResource = splashResource;
+	}
+
+	public String getAltText() {
+		return altText;
+	}
+
+	public void setAltText(String altText) {
+		this.altText = altText;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/TextPage.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/TextPage.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/TextPage.java	(revision 14989)
@@ -0,0 +1,42 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.page;
+
+public class TextPage
+	extends Page {
+	
+	private String htmlResource;
+	private String textResource;
+	
+	public TextPage() {
+	}
+
+	public String getHtmlResource() {
+		return htmlResource;
+	}
+
+	public void setHtmlResource(String htmlResource) {
+		this.htmlResource = htmlResource;
+	}
+
+	public String getTextResource() {
+		return textResource;
+	}
+
+	public void setTextResource(String textResource) {
+		this.textResource = textResource;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/package.html
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/package.html	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/page/package.html	(revision 14989)
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head><!--
+  Copyright (c) 2004 tp23
+  All Rights Reserved.
+--></head>
+
+<body bgcolor="white">Contains holders for the three different types of Page in an installer and the base class.</body>
+</html>
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/AntOutputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/AntOutputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/AntOutputRenderer.java	(revision 14989)
@@ -0,0 +1,24 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer;
+
+import java.io.PrintStream;
+
+public interface AntOutputRenderer {
+	public PrintStream getOut();
+	public PrintStream getErr();
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/MessageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/MessageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/MessageRenderer.java	(revision 14989)
@@ -0,0 +1,42 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer;
+
+import org.tp23.antinstaller.InstallerContext;
+/**
+ *
+ * <p>Abstract message renderer asking user questions or providing feedback</p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: MessageRenderer.java,v 1.1.1.1 2005/10/18 18:20:59 teknopaul Exp $
+ */
+public interface MessageRenderer {
+
+	public void setInstallerContext(InstallerContext ctx);
+	/**
+	 * Print a message for which there is not option to reply
+	 * @param message String
+	 */
+	public void printMessage(String message);
+	/**
+	 * ask the user for Yes or No
+	 * @param message String
+	 * @return boolean  true = Yes  false = No
+	 */
+	public boolean prompt(String message);
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/PageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/PageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/PageRenderer.java	(revision 14989)
@@ -0,0 +1,25 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.page.Page;
+
+public interface PageRenderer {
+	public void setContext(InstallerContext ctx);
+	public InstallerContext getContext();
+	public boolean renderPage(Page page) throws Exception;
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/RendererFactory.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/RendererFactory.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/RendererFactory.java	(revision 14989)
@@ -0,0 +1,136 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer;
+
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.renderer.swing.SwingOutputFieldRenderer;
+import org.tp23.antinstaller.renderer.swing.SwingPageRenderer;
+import org.tp23.antinstaller.renderer.text.AbstractTextPageRenderer;
+import org.tp23.antinstaller.renderer.text.TextOutputFieldRenderer;
+
+
+
+/**
+ *
+ * <p>Fetches an instance of a Renderers by using the class of the method parameter and
+ * a naming convention </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: RendererFactory.java,v 1.3 2006/12/21 00:03:30 teknopaul Exp $
+ */
+public class RendererFactory {
+	public RendererFactory() {
+	}
+
+	public static TextOutputFieldRenderer getTextRenderer(OutputField field) throws ClassNotFoundException {
+		String fullyQualified = field.getClass().getName();
+		int lastDot = fullyQualified.lastIndexOf('.');
+		if (lastDot == -1) {
+			throw new UnsupportedOperationException("InputField can not be a member of the default package");
+		}
+		int prevDot = fullyQualified.substring(0,lastDot-1).lastIndexOf('.', lastDot - 1);
+		if (prevDot == -1) {
+			throw new UnsupportedOperationException("InputField can not be a member of a single level package");
+		}
+		StringBuffer rendererClassName = new StringBuffer();
+		rendererClassName.append(fullyQualified.substring(0, prevDot));
+		rendererClassName.append(".renderer.text.");
+		rendererClassName.append(fullyQualified.substring(lastDot + 1));
+		rendererClassName.append("Renderer");
+		try {
+			Class clazz = Class.forName(rendererClassName.toString());
+			return (TextOutputFieldRenderer) clazz.newInstance();
+		}
+		catch (Exception ex) {
+			throw new ClassNotFoundException("Class does not meet the contract for TextInputFieldRenderer:" + rendererClassName);
+		}
+	}
+	
+	public static AbstractTextPageRenderer getTextPageRenderer(Page page) throws ClassNotFoundException {
+		String fullyQualified = page.getClass().getName();
+		int lastDot = fullyQualified.lastIndexOf('.');
+		if (lastDot == -1) {
+			throw new UnsupportedOperationException("Pages can not be a member of the default package");
+		}
+		int prevDot = fullyQualified.substring(0,lastDot-1).lastIndexOf('.', lastDot - 1);
+		if (prevDot == -1) {
+			throw new UnsupportedOperationException("Pages can not be a member of a single level package");
+		}
+		StringBuffer rendererClassName = new StringBuffer();
+		rendererClassName.append(fullyQualified.substring(0, prevDot));
+		rendererClassName.append(".renderer.text.");
+		rendererClassName.append(fullyQualified.substring(lastDot + 1));
+		rendererClassName.append("Renderer");
+		try {
+			Class clazz = Class.forName(rendererClassName.toString());
+			return (AbstractTextPageRenderer) clazz.newInstance();
+		}
+		catch (Exception ex) {
+			throw new ClassNotFoundException("Class does not meet the contract for TextPageRenderer:" + rendererClassName);
+		}
+	}
+	public static SwingPageRenderer getSwingPageRenderer(Page page) throws ClassNotFoundException {
+		String fullyQualified = page.getClass().getName();
+		int lastDot = fullyQualified.lastIndexOf('.');
+		if (lastDot == -1) {
+			throw new UnsupportedOperationException("Pages can not be a member of the default package");
+		}
+		int prevDot = fullyQualified.substring(0,lastDot-1).lastIndexOf('.', lastDot - 1);
+		if (prevDot == -1) {
+			throw new UnsupportedOperationException("Pages can not be a member of a single level package");
+		}
+		StringBuffer rendererClassName = new StringBuffer();
+		rendererClassName.append(fullyQualified.substring(0, prevDot));
+		rendererClassName.append(".renderer.swing.");
+		rendererClassName.append(fullyQualified.substring(lastDot + 1));
+		rendererClassName.append("Renderer");
+		try {
+			Class clazz = Class.forName(rendererClassName.toString());
+			return (SwingPageRenderer) clazz.newInstance();
+		}
+		catch (Exception ex) {
+			throw new ClassNotFoundException("Class does not meet the contract for SwingPageRenderer:" + rendererClassName);
+		}
+	}
+	
+	public static SwingOutputFieldRenderer getSwingRenderer(OutputField field) throws ClassNotFoundException {
+		String fullyQualified = field.getClass().getName();
+		int lastDot = fullyQualified.lastIndexOf('.');
+		if (lastDot == -1) {
+			throw new UnsupportedOperationException("OutputField can not be a member of the default package");
+		}
+		int prevDot = fullyQualified.substring(0,lastDot-1).lastIndexOf('.', lastDot - 1);
+		if (prevDot == -1) {
+			throw new UnsupportedOperationException("OutputField can not be a member of a single level package");
+		}
+		StringBuffer rendererClassName = new StringBuffer();
+		rendererClassName.append(fullyQualified.substring(0, prevDot));
+		rendererClassName.append(".renderer.swing.");
+		rendererClassName.append(fullyQualified.substring(lastDot + 1));
+		rendererClassName.append("Renderer");
+		try {
+			Class clazz = Class.forName(rendererClassName.toString());
+			return (SwingOutputFieldRenderer) clazz.newInstance();
+		}
+		catch (Exception ex) {
+			ex.printStackTrace();
+			throw new ClassNotFoundException("Class does not meet the contract for SwingInputFieldRenderer:" + rendererClassName);
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res.properties
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res.properties	(revision 14989)
@@ -0,0 +1,48 @@
+#org.tp23.antinstaller.renderer.Res
+#Wed Nov 10 01:06:42 CET 2004
+
+dirNotExistCreate=The Directory does not exist, create it?
+dirNotExist=The Directory does not exist
+fileNotExist=The File does not exist
+dirNotCreated=The Directory could not be created
+canNotCreateFile=Can not create file
+appRootInvalid=This directory does not appear to be the root of the application
+selectFile=Select File
+selectFolder=Select Folder
+notValidSelection=Not a valid selection
+showDetails=Show Details
+
+#Default loading
+promptLoadDefaults=Installation configuration found. Load the existing configuration?
+promptMissingDefaultPassword=A password was not found it may have been omitted for security reasons, it will be set to the default.
+
+click=Click
+toContinue=to continue
+failed=Failed
+exit=Exit
+complete=Complete
+finished=Finished
+extracting=Extracting...
+installFinished=Install Finished
+running=Running:
+
+backButton=Back
+cancelButton=Cancel
+nextButton=Next
+
+output=Output
+errors=Errors
+notCorrectFormat=The field is not of the correct format
+notCorrectPasswordFormat=The password is not of the correct format
+passwordsDoNotMatch=The passwords do not match
+installationFailed=Install failed
+propertiesVersionMismatch=Some options are missing from the previous version and must be manually entered, continue?
+
+Finished=Finished
+Failed=Failed, view the error messages
+ant.failure=Ant run failed - examine the error logs for details
+
+#Text for license page buttons
+license.next.text=Accept
+license.cancel.text=Reject
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res_de.properties
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res_de.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res_de.properties	(revision 14989)
@@ -0,0 +1,48 @@
+#org.tp23.antinstaller.renderer.Res
+#Wed Nov 10 01:06:42 CET 2004
+
+dirNotExistCreate=Das Verzeichnis existiert nicht, erzeugen?
+dirNotExist=Das Verzeichnis existiert nicht
+fileNotExist=Die Datei existiert nicht
+dirNotCreated=Das Verzeichnis konnte nicht erzeugt werden
+canNotCreateFile=Kann die Datei nicht erzeugen
+appRootInvalid=Das Verzeichnis scheint nicht das Wurzelverzeichnis der Applikation zu sein
+selectFile=Datei auswählen
+selectFolder=Verzeichnis auswählen
+notValidSelection=Keine gültige Auswahl
+showDetails=Details anzeigen
+
+#Default loading
+promptLoadDefaults=Installation configuration found. Load the existing configuration?
+promptMissingDefaultPassword=A password was not found it may have been omitted for security reasons, it will be set to the default.
+
+click=Klicken
+toContinue=zum Fortfahren
+failed=fehlgeschlagen
+exit=Beenden
+complete=Fertigstellen
+finished=abgeschlossen
+extracting=Auspacken ...
+installFinished=Installation beendet
+running=Ausführung:
+
+backButton=Zurück
+cancelButton=Abbrechen
+nextButton=Weiter
+
+output=Ausgabe
+errors=Fehler
+notCorrectFormat=Der Wert hat nicht das vorgegebene Format
+notCorrectPasswordFormat=Das Kennwort hat nicht das vorgegebene Format
+passwordsDoNotMatch=The passwords do not match
+installationFailed=Installation fehlgeschlagen
+propertiesVersionMismatch=Some properties are missing from and must be manually entered, continue?
+
+Finished=Fertig
+Failed=Fehlgeschlagen, Details siehe Fehlermeldungen
+ant.failure=Ant run failed - examine the error logs for details
+
+#Text for license page buttons
+license.next.text=Accept
+license.cancel.text=Reject
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res_es.properties
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res_es.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res_es.properties	(revision 14989)
@@ -0,0 +1,47 @@
+#org.tp23.antinstaller.renderer.Res
+#Wed Nov 10 01:06:42 CET 2004
+
+dirNotExistCreate=El directorio no existe, quieres crearlo?
+dirNotExist=El directorio no existe.
+fileNotExist=El fichero no existe.
+dirNotCreated=El directorio no se ha creado.
+canNotCreateFile=No se puede crear el fichero.
+appRootInvalid=Este directorio no parece ser la raiz de la aplicaciòn.
+selectFile=Seleccionar fichero.
+selectFolder=Seleccionar carpeta.
+notValidSelection=No es una opciòn vàlida.
+showDetails=Enseñar detalles.
+
+#Default loading
+promptLoadDefaults=Configuracion de instalaciòn encontrada. Carga configuraciòn?
+promptMissingDefaultPassword=A password was not found it may have been omitted for security reasons, it will be set to the default.
+
+click=Click
+toContinue=Para continuar
+failed= Intento Fallido
+exit=Salir
+complete=Completar
+finished=Terminado
+extracting=Extrayendo...
+installFinished=Se ha terminado la instalaciòn
+running=Ejecutando:
+
+backButton=Atras
+cancelButton=Cancelar
+nextButton=Proxima
+
+output=Salida
+errors=Errores
+notCorrectFormat=El fichero no tiene un formato adecuado.
+notCorrectPasswordFormat=El fichero no tiene un formato adecuado.
+passwordsDoNotMatch=Las contraseñas tienen que ser iguales
+installationFailed=Instalaciòn fallado
+propertiesVersionMismatch=Faltan datos del versión anterior, continuar y entrar los manualmente?
+
+Finished=Terminado
+Failed=Intento fallido, enseñar mensajes de error
+ant.failure=Ant run failed - examine the error logs for details
+
+#Text for license page buttons
+license.next.text=Aceptar
+license.cancel.text=Cancellar
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res_es_EU.properties
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res_es_EU.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/Res_es_EU.properties	(revision 14989)
@@ -0,0 +1,47 @@
+#org.tp23.antinstaller.renderer.Res
+#Wed Nov 10 01:06:42 CET 2004
+
+dirNotExistCreate=Direktorioa ez da existitzen, sortu nahi al duzu?
+dirNotExist=Direktorioa ez da existitzen.
+fileNotExist=Fitxategia ez da existitzen.
+dirNotCreated=Ezin izan da direktorioa sortu.
+canNotCreateFile=Fitxategia ezin da sortu.
+appRootInvalid=Ez dirutdi direktorio hay aplikazioaren erroa denik.
+selectFile=Fitxategia aukeratu.
+selectFolder=karpeta aukeratu.
+notValidSelection=Ez da aukera onargarria.
+showDetails=Erakutsi xehetasunak.
+
+#Default loading
+promptLoadDefaults=Instalazio konfigurazio bat aurkituta. Kargatu instalazioa?
+promptMissingDefaultPassword=A password was not found it may have been omitted for security reasons, it will be set to the default.
+
+click=Sakatu
+toContinue=Jarraitzeko
+failed=Hutsegitea
+exit=Atera
+complete=Bukatu
+finished=Bukatuta
+extracting=Ateratzen...
+installFinished=Instalazioa bukatuta.
+running=Exekutatzen:
+
+backButton=Atzera
+cancelButton=Ezeztatu
+nextButton=Hurrengoa
+
+output=Irteera
+errors=Akatsak
+notCorrectFormat=Fitxategia ez da formatu egokikoa.
+notCorrectPasswordFormat=Fitxategia ez da formatu egokikoa.
+passwordsDoNotMatch=Pasa hitzak berdinak izan behar dira 
+installationFailed=Instalaciòn fallado
+propertiesVersionMismatch=Faltan datos del versión anterior, continuar y entrar los manualmente?
+
+Finished=Bukatuta
+Failed=Huts egin da, erakutsi akats mezuak
+ant.failure=Ant run failed - examine the error logs for details
+
+#Text for license page buttons
+license.next.text=Aceptar
+license.cancel.text=Cancellar
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/package.html
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/package.html	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/package.html	(revision 14989)
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head><!--
+  Copyright (c) 2004 tp23
+  All Rights Reserved.
+--></head>
+
+<body bgcolor="white">Classes of this package follow a strict naming convention to define the supported renderers
+for a specific input class.</body>
+</html>
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIButton.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIButton.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIButton.java	(revision 14989)
@@ -0,0 +1,71 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Dimension;
+
+import javax.swing.Action;
+import javax.swing.Icon;
+import javax.swing.JButton;
+
+
+/**
+ * A JButton with altered prefered size to facilitate fixing the width
+ * but still using a GridBagLayout
+ * @author Paul Hinds
+ * @version $Id: AIButton.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+ */
+public class AIButton extends JButton {
+
+	public AIButton() {
+		super();
+	}
+
+	public AIButton(String text) {
+		super(text);
+	}
+
+	public AIButton(Action a) {
+		super(a);
+	}
+
+	public AIButton(Icon icon) {
+		super(icon);
+	}
+
+	public AIButton(String text, Icon icon) {
+		super(text, icon);
+	}
+
+	private Dimension prefSize = new Dimension(SizeConstants.BUTTON_WIDTH, 
+					                           SizeConstants.FIELD_HEIGHT);
+
+	public Dimension getMinimumSize() {
+		return prefSize;
+	}
+
+	public Dimension getPreferredSize() {
+		return prefSize;
+	}
+	public void setOverflow(Dimension prefSize) {
+		this.prefSize = prefSize;
+	}
+
+	public Dimension getMaximumSize() {
+		return prefSize;
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AICheckBox.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AICheckBox.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AICheckBox.java	(revision 14989)
@@ -0,0 +1,82 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Dimension;
+
+import javax.swing.Action;
+import javax.swing.Icon;
+import javax.swing.JCheckBox;
+
+
+/**
+ * A JCheckBox with altered prefered size to facilitate fixing the width
+ * but still using a GridBagLayout
+ * @author Paul Hinds
+ * @version $Id: AICheckBox.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+ */
+public class AICheckBox extends JCheckBox {
+
+	public AICheckBox() {
+		super();
+	}
+
+	public AICheckBox(String text) {
+		super(text);
+	}
+
+	public AICheckBox(String text, boolean selected) {
+		super(text, selected);
+	}
+
+	public AICheckBox(Action a) {
+		super(a);
+	}
+
+	public AICheckBox(Icon icon) {
+		super(icon);
+	}
+
+	public AICheckBox(Icon icon, boolean selected) {
+		super(icon, selected);
+	}
+
+	public AICheckBox(String text, Icon icon) {
+		super(text, icon);
+	}
+
+	public AICheckBox(String text, Icon icon, boolean selected) {
+		super(text, icon, selected);
+	}
+
+	private Dimension prefSize = new Dimension(SizeConstants.FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+
+	public Dimension getMinimumSize() {
+		return prefSize;
+	}
+
+	public Dimension getPreferredSize() {
+		return prefSize;
+	}
+	public void setOverflow(Dimension prefSize) {
+		this.prefSize = prefSize;
+	}
+
+	public Dimension getMaximumSize() {
+		return prefSize;
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AILabel.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AILabel.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AILabel.java	(revision 14989)
@@ -0,0 +1,65 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Dimension;
+
+import javax.swing.Icon;
+import javax.swing.JLabel;
+
+
+/**
+ * A JLabel with altered prefered size to facilitate fixing the width
+ * but still using a GridBagLayout
+ * @author Paul Hinds
+ * @version $Id: AILabel.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+ */
+public class AILabel extends JLabel {
+
+	public AILabel() {
+		super();
+	}
+	public AILabel(String text) {
+		super(text);
+	}
+	public AILabel(String text, int horizontalAlignment) {
+		super(text, horizontalAlignment);
+	}
+	public AILabel(Icon image) {
+		super(image);
+	}
+	public AILabel(Icon image, int horizontalAlignment) {
+		super(image, horizontalAlignment);
+	}
+	public AILabel(String text, Icon icon, int horizontalAlignment) {
+		super(text, icon, horizontalAlignment);
+	}
+	private Dimension prefSize= new Dimension(SizeConstants.LABEL_WIDTH,
+			SizeConstants.FIELD_HEIGHT);
+	public Dimension getMinimumSize() {
+		return prefSize;
+	}
+	public Dimension getPreferredSize() {
+		return prefSize;
+	}
+	public void setOverflow(Dimension prefSize) {
+		this.prefSize = prefSize;
+	}
+	public Dimension getMaximumSize() {
+		return prefSize;
+	}
+	
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIPasswordField.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIPasswordField.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIPasswordField.java	(revision 14989)
@@ -0,0 +1,52 @@
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Dimension;
+
+import javax.swing.JPasswordField;
+import javax.swing.text.Document;
+
+
+/**
+ * @author Paul Hinds
+ * @version $Id: AIPasswordField.java,v 1.3 2006/12/21 00:02:59 teknopaul Exp $
+ */
+public class AIPasswordField extends JPasswordField {
+
+	public AIPasswordField() {
+		super();
+	}
+
+	public AIPasswordField(int columns) {
+		super(columns);
+	}
+
+	public AIPasswordField(String text) {
+		super(text);
+	}
+
+	public AIPasswordField(String text, int columns) {
+		super(text, columns);
+	}
+
+	public AIPasswordField(Document doc, String txt, int columns) {
+		super(doc, txt, columns);
+	}
+
+	private Dimension prefSize = new Dimension(SizeConstants.FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+
+	public Dimension getMinimumSize() {
+		return prefSize;
+	}
+
+	public Dimension getPreferredSize() {
+		return prefSize;
+	}
+	public void setOverflow(Dimension prefSize) {
+		this.prefSize = prefSize;
+	}
+
+	public Dimension getMaximumSize() {
+		return prefSize;
+	}
+	
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIRadioButton.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIRadioButton.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIRadioButton.java	(revision 14989)
@@ -0,0 +1,82 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Dimension;
+
+import javax.swing.Action;
+import javax.swing.Icon;
+import javax.swing.JRadioButton;
+
+
+/**
+ * A JRadioButton with altered prefered size to facilitate fixing the width
+ * but still using a GridBagLayout
+ * @author Paul Hinds
+ * @version $Id: AIRadioButton.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+ */
+public class AIRadioButton extends JRadioButton {
+
+	public AIRadioButton() {
+		super();
+	}
+
+	public AIRadioButton(String text) {
+		super(text);
+	}
+
+	public AIRadioButton(String text, boolean selected) {
+		super(text, selected);
+	}
+
+	public AIRadioButton(Action a) {
+		super(a);
+	}
+
+	public AIRadioButton(Icon icon) {
+		super(icon);
+	}
+
+	public AIRadioButton(Icon icon, boolean selected) {
+		super(icon, selected);
+	}
+
+	public AIRadioButton(String text, Icon icon) {
+		super(text, icon);
+	}
+
+	public AIRadioButton(String text, Icon icon, boolean selected) {
+		super(text, icon, selected);
+	}
+
+	private Dimension prefSize = new Dimension(SizeConstants.FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+
+	public Dimension getMinimumSize() {
+		return prefSize;
+	}
+
+	public Dimension getPreferredSize() {
+		return prefSize;
+	}
+	public void setOverflow(Dimension prefSize) {
+		this.prefSize = prefSize;
+	}
+
+	public Dimension getMaximumSize() {
+		return prefSize;
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIShortTextField.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIShortTextField.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AIShortTextField.java	(revision 14989)
@@ -0,0 +1,71 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Dimension;
+
+import javax.swing.JTextField;
+import javax.swing.text.Document;
+
+
+/**
+ * A JTextField with altered prefered size to facilitate fixing the width
+ * but still using a GridBagLayout. This text field is for use inconjunction
+ * with a button for example file chooser.
+ * @author Paul Hinds
+ * @version $Id: AIShortTextField.java,v 1.2 2006/12/09 15:26:10 teknopaul Exp $
+ */
+public class AIShortTextField extends JTextField {
+
+	public AIShortTextField() {
+		super();
+	}
+
+	public AIShortTextField(int columns) {
+		super(columns);
+	}
+
+	public AIShortTextField(String text) {
+		super(text);
+	}
+
+	public AIShortTextField(String text, int columns) {
+		super(text, columns);
+	}
+
+	public AIShortTextField(Document doc, String text, int columns) {
+		super(doc, text, columns);
+	}
+
+	private Dimension prefSize = new Dimension(SizeConstants.SHORT_FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+
+	public Dimension getMinimumSize() {
+		return prefSize;
+	}
+
+	public Dimension getPreferredSize() {
+		return prefSize;
+	}
+	public void setOverflow(Dimension prefSize) {
+		this.prefSize = prefSize;
+	}
+
+	public Dimension getMaximumSize() {
+		return prefSize;
+	}
+
+	
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AITextfield.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AITextfield.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AITextfield.java	(revision 14989)
@@ -0,0 +1,70 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Dimension;
+
+import javax.swing.JTextField;
+import javax.swing.text.Document;
+
+
+/**
+ * A JTextField with altered prefered size to facilitate fixing the width
+ * but still using a GridBagLayout
+ * @author Paul Hinds
+ * @version $Id: AITextfield.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+ */
+public class AITextfield extends JTextField {
+
+	public AITextfield() {
+		super();
+	}
+
+	public AITextfield(int columns) {
+		super(columns);
+	}
+
+	public AITextfield(String text) {
+		super(text);
+	}
+
+	public AITextfield(String text, int columns) {
+		super(text, columns);
+	}
+
+	public AITextfield(Document doc, String text, int columns) {
+		super(doc, text, columns);
+	}
+
+	private Dimension prefSize = new Dimension(SizeConstants.FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+
+	public Dimension getMinimumSize() {
+		return prefSize;
+	}
+
+	public Dimension getPreferredSize() {
+		return prefSize;
+	}
+	public void setOverflow(Dimension prefSize) {
+		this.prefSize = prefSize;
+	}
+
+	public Dimension getMaximumSize() {
+		return prefSize;
+	}
+
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AppRootInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AppRootInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/AppRootInputRenderer.java	(revision 14989)
@@ -0,0 +1,20 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+public class AppRootInputRenderer
+	extends DirectoryInputRenderer {
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/CheckboxInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/CheckboxInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/CheckboxInputRenderer.java	(revision 14989)
@@ -0,0 +1,90 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.input.CheckboxInput;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.gui.GBCF;
+
+public class CheckboxInputRenderer
+	extends SwingOutputFieldRenderer {
+
+	protected CheckboxInput inputField;
+
+    protected JLabel fieldLabel = new AILabel();
+	protected AICheckBox checkBox = new AICheckBox();
+
+	public CheckboxInputRenderer() {
+	}
+	public void initComponent(JPanel parent){
+		try {
+			jbInit();
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+
+
+	public void setOutputField(OutputField inputField) {
+		this.inputField = (CheckboxInput)inputField;
+	}
+	public void updateInputField(){
+		boolean selected = checkBox.isSelected();
+		if(selected)inputField.setValue("true");
+		else inputField.setValue("false");
+	}
+	public void updateDefaultValue(){
+		if(!inputField.isEditted()){
+			String newDefault = inputField.getDefaultValue();
+			checkBox.setSelected(InputField.isTrue(newDefault));
+		}
+	}
+
+    private void jbInit() throws Exception {
+		fieldLabel.setText(inputField.getDisplayText());
+		checkBox.setSelected(OutputField.isTrue(inputField.getDefaultValue()));
+		checkBox.setEnabled(!OutputField.isTrue(inputField.getForce()));
+		checkBox.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				updateInputField();
+				inputField.setEditted(true);
+			}
+		});
+    }
+	public int addSelf(JPanel content, GBCF cf,  int row, boolean overflow) {
+		content.add(fieldLabel, cf.getCell(row, 0));
+		content.add(checkBox, cf.getCell(row, 1));
+		if(overflow){
+			checkBox.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+		}
+		return ++row;
+	}
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ClasspathHTMLEditorKit.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ClasspathHTMLEditorKit.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ClasspathHTMLEditorKit.java	(revision 14989)
@@ -0,0 +1,54 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.net.URL;
+
+import javax.swing.text.Element;
+import javax.swing.text.View;
+import javax.swing.text.ViewFactory;
+import javax.swing.text.html.HTML;
+import javax.swing.text.html.HTMLEditorKit;
+import javax.swing.text.html.ImageView;
+/**
+ * HTMLEditor kit that replaces the source of images in the document
+ * with resources loaded from the classpath.
+ * @author teknopaul
+ */
+public class ClasspathHTMLEditorKit extends HTMLEditorKit {
+
+	public ViewFactory getViewFactory(){
+		
+		return new HTMLEditorKit.HTMLFactory(){
+			
+			public View create(Element elem){
+				if(! elem.getName().equals("img")){
+					return super.create(elem);
+				}
+				return new ImageView(elem){
+					public URL getImageURL() {
+						String src = (String)getElement().getAttributes().
+							getAttribute(HTML.Attribute.SRC);
+						return TextPageRenderer.class.getResource(src);
+					}
+				};
+			}
+			
+		};
+		
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java	(revision 14989)
@@ -0,0 +1,115 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Dimension;
+import java.awt.Font;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.text.JTextComponent;
+
+import org.tp23.antinstaller.input.CommentOutput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.gui.GBCF;
+
+public class CommentOutputRenderer
+	extends SwingOutputFieldRenderer {
+
+    protected AILabel fieldLabel = new AILabel();
+    // hack callback, should move this to superclass
+    protected JTextComponent explanatoryTextField;
+
+	private static Font boldCommentFont;
+	private static Font titleCommentFont;
+	static{
+		boldCommentFont = new JLabel().getFont();// reusing the variable
+		try {
+			boldCommentFont = new Font(boldCommentFont.getFamily(), Font.BOLD, boldCommentFont.getSize());
+			titleCommentFont = new Font(boldCommentFont.getFamily(), Font.BOLD, 16);
+		}
+		catch (Exception ex) {
+			// lets not fail due to font errors
+		}
+	}
+
+	public CommentOutputRenderer() {
+	}
+
+	public void initComponent(JPanel parent){
+		try {
+			jbInit();
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void setOutputField(OutputField outputField) {
+		this.outputField = (CommentOutput)outputField;// trap ClassCast bugs early
+	}
+	public void updateInputField(){
+	}
+
+//   hack callback, should move this to superclass
+    public JTextComponent getExplanatoryTextField() {
+        return explanatoryTextField;
+    }
+//  hack callback, should move this to superclass
+    public void setExplanatoryTextField(JTextComponent explanatoryTextField) {
+        this.explanatoryTextField = explanatoryTextField;
+    }
+    /**
+     * Since comments may now include expanded properties this should be called when the 
+     * field is rendered.  For no ONLY comment fields have property values expanded
+     */
+	public void updateDefaultValue(){
+        fieldLabel.setText(outputField.getDisplayText());
+        if(explanatoryTextField != null) {
+            explanatoryTextField.setText(outputField.getExplanatoryText());
+        }
+	}
+    private void jbInit() throws Exception {
+        
+        // FindBugs - cast is performed here to avoid overriding protected superclass field 
+        CommentOutput cOutputField = (CommentOutput)outputField;
+        
+		fieldLabel.setText(cOutputField.getDisplayText());
+		
+		if( OutputField.isTrue(cOutputField.getBold()) ){
+			fieldLabel.setFont(boldCommentFont);
+		}
+		if( OutputField.isTrue(cOutputField.getTitle()) ){
+			fieldLabel.setFont(titleCommentFont);
+		}
+    }
+	public int addSelf(JPanel content, GBCF cf,  int row, boolean overflow) {
+		content.add(fieldLabel, cf.getSpan(row));
+		if(overflow){
+			fieldLabel.setOverflow(SizeConstants.OVERFLOW_TOTAL_SIZE);
+		} else {
+			fieldLabel.setOverflow(new Dimension(SizeConstants.FIELD_WIDTH + SizeConstants.LABEL_WIDTH, SizeConstants.FIELD_HEIGHT));
+		}
+		return ++row;
+	}
+
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ConditionalFieldRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ConditionalFieldRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ConditionalFieldRenderer.java	(revision 14989)
@@ -0,0 +1,111 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.util.ArrayList;
+
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.ResourceBundleHelper;
+import org.tp23.antinstaller.input.ConditionalField;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.renderer.RendererFactory;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+import org.tp23.antinstaller.runtime.logic.Expression;
+import org.tp23.gui.GBCF;
+
+/**
+ * Conditionally render a collection of fields.
+ * For now, will ONLY handle <code>&lt;hiddeb&gt;</code> fields
+ *
+ * @author mwilson
+ * @version $Id
+ * @since 0.7.4 patch 7
+ */
+public class ConditionalFieldRenderer extends SwingOutputFieldRenderer {
+    
+    private ResourceBundleHelper resHelper = new ResourceBundleHelper( "org.tp23.antinstaller.renderer.Res" );
+    private ConditionalField condField;
+    private ArrayList renderers = new ArrayList( );
+
+    public ConditionalFieldRenderer() {
+    }
+
+    public void initComponent( JPanel parent ) {
+
+        condField = (ConditionalField) outputField;
+        InputField[] fields = condField.getFields();
+
+        for (int i = 0; i < fields.length; i++) {
+            try {
+                SwingOutputFieldRenderer renderer = RendererFactory.getSwingRenderer(fields[i]);
+                renderer.setOutputField(fields[i]);
+                renderer.setInstallerContext(ctx);
+                renderers.add( renderer );
+            }
+            catch( ClassNotFoundException clsNotFndExc ) {
+
+            }
+        }
+
+    }
+
+    public void updateInputField() {
+
+        if( expressionIsTrue() ) {
+            int listSize  = renderers.size();
+            for( int i = 0; i < listSize; i++ ) {
+                SwingOutputFieldRenderer renderer = (SwingOutputFieldRenderer) renderers.get( i );
+                renderer.updateInputField();
+            }
+        }
+
+    }
+
+    public void updateDefaultValue() {
+        if( expressionIsTrue() ) {
+            int listSize  = renderers.size();
+            for( int i = 0; i < listSize; i++ ) {
+                SwingOutputFieldRenderer renderer = (SwingOutputFieldRenderer) renderers.get( i );
+                renderer.updateDefaultValue();
+            }
+        }
+    }
+
+    public void renderError() {
+        int listSize  = renderers.size();
+        for( int i = 0; i < listSize; i++ ) {
+            SwingOutputFieldRenderer renderer = (SwingOutputFieldRenderer) renderers.get( i );
+            renderer.renderError();
+        }
+    }
+
+    public int addSelf( JPanel content, GBCF cf, int row, boolean overflow ) {
+        return row;
+    }
+
+    private boolean expressionIsTrue() {
+        Expression expr = null;
+
+        try {
+            expr = condField.getExpression();
+        }
+        catch( ConfigurationException configExc ) {
+            ctx.log( resHelper.getMessage( "invalid.conditional.expression", configExc ) );
+            return false;
+        }
+
+         return expr.evaluate();
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ConfirmPasswordTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ConfirmPasswordTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ConfirmPasswordTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,27 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.util.ResourceBundle;
+
+public class ConfirmPasswordTextInputRenderer extends PasswordTextInputRenderer{
+	
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+	
+	protected String getErrorMessage(){
+		return res.getString("passwordsDoNotMatch");
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/DateInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/DateInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/DateInputRenderer.java	(revision 14989)
@@ -0,0 +1,104 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Color;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.util.ResourceBundle;
+
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.input.DateInput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+import org.tp23.gui.GBCF;
+
+public class DateInputRenderer
+	extends SwingOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+	
+	protected DateInput inputField;
+
+    protected AILabel fieldLabel = new AILabel();
+    protected AITextfield jTextField = new AITextfield();
+	protected Color origFore;
+
+	public DateInputRenderer() {
+		origFore = jTextField.getForeground();
+	}
+
+	public void initComponent(JPanel parent){
+		try {
+			jbInit();
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void setOutputField(OutputField inputField) {
+		this.inputField = (DateInput)inputField;
+		this.inputField.setValue(this.inputField.getDefaultValue());
+	}
+	public void updateInputField(){
+		inputField.setValue(jTextField.getText());
+	}
+	public void updateDefaultValue(){
+		if(!inputField.isEditted())jTextField.setText(inputField.getDefaultValue());
+	}
+
+    private void jbInit() throws Exception {
+		fieldLabel.setText(inputField.getDisplayText());
+		jTextField.setText(inputField.getDefaultValue());
+		jTextField.addKeyListener(new KeyAdapter() {
+			public void keyTyped(KeyEvent e) {
+				if(e.getKeyChar() != '\t'){
+					inputField.setEditted(true);
+				}
+			}
+		});
+		jTextField.addFocusListener(new FocusAdapter() {
+			public void focusLost(FocusEvent fe){
+				jTextField.setForeground(origFore);
+			}
+		});
+    }
+	public int addSelf(JPanel content, GBCF cf,  int row,boolean overflow) {
+		content.add(fieldLabel, cf.getCell(row, 0));
+		content.add(jTextField, cf.getCell(row, 1));
+		if(overflow){
+			jTextField.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+		}
+		return ++row;
+	}
+
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+		MessageRenderer mr = ctx.getMessageRenderer();
+		mr.printMessage(res.getString("notCorrectFormat") + "\n\n " + inputField.getDateFormat());
+		//fixed BUG1295944 mr.printMessage("The field is not of the correct format\n\n "+inputField.getDateFormat());
+		this.jTextField.requestFocus();
+		this.jTextField.setForeground(Color.red);
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/DirectoryInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/DirectoryInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/DirectoryInputRenderer.java	(revision 14989)
@@ -0,0 +1,143 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.util.ResourceBundle;
+
+import javax.swing.JFileChooser;
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.input.DirectoryInput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.gui.GBCF;
+import org.tp23.gui.widget.DefaultingDirectoryChooser;
+
+public class DirectoryInputRenderer
+	extends SwingOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+    private static final String EMPTY_STRING = "";
+	protected DirectoryInput inputField;
+	private boolean createMode;
+	private DefaultingDirectoryChooser chooser = null;
+
+	protected AILabel fieldLabel = new AILabel();
+	protected AIShortTextField jTextField = new AIShortTextField();
+	protected AIButton browseButton = new AIButton();
+	protected JPanel browsePanel = new JPanel();
+	private JPanel parent;
+
+	public DirectoryInputRenderer() {
+	}
+	public void initComponent(JPanel parent){
+		this.parent = parent;
+		try {
+			jbInit();
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void setOutputField(OutputField inputField) {
+		this.inputField = (DirectoryInput)inputField;
+		this.inputField.setValue(this.inputField.getDefaultValue(true));
+		this.createMode = OutputField.isTrue(this.inputField.getCreate());
+
+	}
+	public void updateInputField(){
+		if( !inputField.getDefaultValue(true).equals(jTextField.getText()) ){
+			inputField.setEditted(true);			
+		}
+		inputField.setValue(jTextField.getText());	
+	}
+	public void updateDefaultValue(){
+		if(!inputField.isEditted())jTextField.setText(inputField.getDefaultValue(true));
+	}
+
+	private void jbInit() throws Exception {
+		BorderLayout bl = new BorderLayout();
+		//bl.setHgap(3);
+		browsePanel.setLayout(bl);
+		fieldLabel.setText(inputField.getDisplayText());
+		jTextField.setText(inputField.getDefaultValue(true));
+		browsePanel.add(jTextField, BorderLayout.CENTER);
+		browsePanel.add(browseButton, BorderLayout.EAST);
+		browseButton.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				File selectedFile = null;
+				if(chooser==null){
+					chooser = new DefaultingDirectoryChooser(createMode);
+					chooser.setFileHidingEnabled(false);
+				}
+
+                //PR 1468823 - if input is cleared, dialogue won't be displayed
+                String dirPath = jTextField.getText();
+                if( dirPath == null ) {
+                    dirPath = EMPTY_STRING;
+                }
+                dirPath = dirPath.trim();
+
+                if( dirPath.length() == 0 ) {
+                    dirPath = inputField.getDefaultValue(true);
+                    jTextField.setText(dirPath);
+                }
+                chooser.setDefaultDirectory(new File(dirPath));
+
+                int returnVal = chooser.showDialog(parent, e.getActionCommand());
+				if (returnVal == JFileChooser.APPROVE_OPTION) {
+					selectedFile = chooser.getSelectedFile();
+				}
+				if (selectedFile != null) {
+					jTextField.setText(selectedFile.getAbsolutePath());
+					inputField.setValue(selectedFile.getAbsolutePath());
+					inputField.setEditted(true);
+				}
+			}
+		});
+		browseButton.setText(res.getString("selectFolder"));
+		browseButton.setPreferredSize(new Dimension(150, SizeConstants.FIELD_HEIGHT));
+
+		jTextField.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				updateInputField();
+			}
+		});
+
+	}
+	public int addSelf(JPanel content,GBCF cf,  int row,boolean overflow) {
+		content.add(fieldLabel,cf.getCell(row,0));
+		content.add(browsePanel,cf.getCell(row,1));
+		if(overflow){
+			jTextField.setOverflow(SizeConstants.OVERFLOW_SHORT_FIELD_SIZE);
+		}
+		return ++row;
+	}
+
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+        jTextField.requestFocus();
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ExtValidatedTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ExtValidatedTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ExtValidatedTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,40 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Color;
+
+import org.tp23.antinstaller.input.ExtValidatedTextInput;
+import org.tp23.antinstaller.input.Validator;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+
+public class ExtValidatedTextInputRenderer
+	extends ValidatedTextInputRenderer {
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+		MessageRenderer mr = ctx.getMessageRenderer();
+		ExtValidatedTextInput extVal = (ExtValidatedTextInput)inputField;
+		Validator validator = extVal.getValidator();
+		Throwable t = extVal.getThrowable();
+		mr.printMessage(validator.getErrorMessage(t, null));
+		this.jTextField.requestFocus();
+		this.jTextField.setForeground(Color.red);
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/FileInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/FileInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/FileInputRenderer.java	(revision 14989)
@@ -0,0 +1,139 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.io.File;
+import java.util.ResourceBundle;
+
+import javax.swing.JFileChooser;
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.input.FileInput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+import org.tp23.gui.GBCF;
+
+public class FileInputRenderer
+	extends SwingOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+	protected FileInput inputField;
+
+	protected AILabel fieldLabel = new AILabel();
+	protected AIShortTextField jTextField = new AIShortTextField();
+	protected AIButton browseButton = new AIButton();
+	protected JPanel browsePanel = new JPanel();
+	private Color origFore = jTextField.getForeground();
+	private JPanel parent;
+
+	public FileInputRenderer() {
+	}
+	public void initComponent(JPanel parent){
+		this.parent=parent;
+		try {
+			jbInit();
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void setOutputField(OutputField inputField) {
+		this.inputField = (FileInput)inputField;
+		this.inputField.setValue(this.inputField.getDefaultValue(true));
+	}
+	public void updateInputField(){
+		if( !inputField.getDefaultValue(true).equals(jTextField.getText()) ){
+			inputField.setEditted(true);			
+		}
+		inputField.setValue(jTextField.getText());
+	}
+	public void updateDefaultValue(){
+		if(!inputField.isEditted())jTextField.setText(inputField.getDefaultValue(true));
+	}
+
+	private void jbInit() throws Exception {
+		BorderLayout bl = new BorderLayout();
+		//bl.setHgap(3);
+		browsePanel.setLayout(bl);
+		fieldLabel.setText(inputField.getDisplayText());
+		jTextField.setText(inputField.getDefaultValue(true));
+		browsePanel.add(jTextField, BorderLayout.CENTER);
+		browsePanel.add(browseButton, BorderLayout.EAST);
+		browseButton.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				File selectedFile = null;
+
+				JFileChooser chooser = new JFileChooser();
+				chooser.setFileHidingEnabled(false);
+				chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
+				if (jTextField.getText() != null) {
+					chooser.setCurrentDirectory(new File(jTextField.getText()).getParentFile());
+				}
+				int returnVal = chooser.showDialog(parent, e.getActionCommand());
+				if (returnVal == JFileChooser.APPROVE_OPTION) {
+					selectedFile = chooser.getSelectedFile();
+				}
+				if (selectedFile != null) {
+					jTextField.setText(selectedFile.getAbsolutePath());
+					inputField.setValue(selectedFile.getAbsolutePath());
+					inputField.setEditted(true);
+				}
+			}
+		});
+		browseButton.setText(res.getString("selectFile"));
+		browseButton.setPreferredSize(new Dimension(150, SizeConstants.FIELD_HEIGHT));
+
+		jTextField.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				updateInputField();
+			}
+		});
+		jTextField.addFocusListener(new FocusAdapter() {
+			public void focusLost(FocusEvent fe){
+				jTextField.setForeground(origFore);
+			}
+		});
+
+	}
+	public int addSelf(JPanel content,GBCF cf,  int row,boolean overflow) {
+		content.add(fieldLabel,cf.getCell(row,0));
+		content.add(browsePanel,cf.getCell(row,1));
+		if(overflow){
+			jTextField.setOverflow(SizeConstants.OVERFLOW_SHORT_FIELD_SIZE);
+		}
+		return ++row;
+	}
+
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+		MessageRenderer mr = ctx.getMessageRenderer();
+		mr.printMessage(res.getString("fileNotExist"));
+		this.jTextField.requestFocus();
+		this.jTextField.setForeground(Color.red);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/HiddenPropertyInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/HiddenPropertyInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/HiddenPropertyInputRenderer.java	(revision 14989)
@@ -0,0 +1,66 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.input.HiddenPropertyInput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.gui.GBCF;
+
+/**
+ * Swing UI hidden property renderer - displays nothing
+ *
+ * @author mwilson
+ * @version $Id
+ * @since 0.7.4 patch 6
+ */
+public class HiddenPropertyInputRenderer extends SwingOutputFieldRenderer
+{
+    HiddenPropertyInput inputField;
+
+    public void setOutputField( OutputField ioField )
+    {
+        inputField = (HiddenPropertyInput) ioField;
+        inputField.setInputResult( inputField.getDefaultValue() );
+    }
+
+    public void initComponent( JPanel parent )
+    {
+
+    }
+
+    public void updateInputField()
+    {
+
+    }
+
+    public void updateDefaultValue()
+    {
+        if( !inputField.isEditted() )
+        {
+            inputField.setInputResult( inputField.getDefaultValue() );
+        }
+    }
+
+    public void renderError()
+    {
+
+    }
+
+    public int addSelf( JPanel content, GBCF cf, int row, boolean overflow )
+    {
+        return row;
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/LargeSelectInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/LargeSelectInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/LargeSelectInputRenderer.java	(revision 14989)
@@ -0,0 +1,116 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.ResourceBundle;
+
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.input.LargeSelectInput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.gui.GBCF;
+
+public class LargeSelectInputRenderer
+	extends SwingOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+	protected LargeSelectInput inputField;
+
+	protected JLabel fieldLabel = new AILabel();
+	protected JComboBox optionCombo = new JComboBox();
+
+	//private int numOfEntries = 2;
+
+	public LargeSelectInputRenderer() {
+	}
+	public void initComponent(JPanel parent){
+		try {
+			jbInit();
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+
+
+	public void setOutputField(OutputField inputField) {
+		this.inputField=(LargeSelectInput)inputField;
+		//this.numOfEntries=this.inputField.getOptions().length;
+	}
+	public void updateInputField(){
+
+		int selectedIdx = optionCombo.getSelectedIndex();
+		if (selectedIdx != -1) {
+			inputField.setValue(inputField.getOptions()[selectedIdx].value);
+
+		}else{
+			inputField.setValue(inputField.getDefaultValue());
+		}
+	}
+	public void updateDefaultValue(){
+		if(!inputField.isEditted()){
+
+			String newDefault = inputField.getDefaultValue();
+
+			for(int i=0;i<optionCombo.getItemCount();i++){
+				if(newDefault.equals(inputField.getOptions()[i].value)){
+					optionCombo.setSelectedIndex(i);
+					break;
+				}
+			}
+		}
+	}
+
+    private void jbInit() throws Exception {
+		fieldLabel.setText(inputField.getDisplayText());
+		LargeSelectInput.Option[] options = inputField.getOptions();
+
+
+		for (int i = 0; i < options.length; i++) {
+			optionCombo.addItem(options[i].getText());
+			if(options[i].value.equals(inputField.getDefaultValue())){
+				optionCombo.setSelectedIndex(i);
+			}
+		}
+		optionCombo.addItemListener(new ItemListener(){
+			public void itemStateChanged(ItemEvent e) {
+				inputField.setEditted(true);
+			}
+		});
+    }
+	public int addSelf(JPanel content,GBCF cf,  int row,boolean overflow) {
+		content.add(fieldLabel,cf.getCell(row,0));
+		content.add(optionCombo,cf.getCell(row,1));
+		if(overflow){
+			optionCombo.setPreferredSize(SizeConstants.OVERFLOW_FIELD_SIZE);
+		}
+		return ++row;
+	}
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+		ctx.getMessageRenderer().printMessage(res.getString("notValidSelection"));
+		optionCombo.requestFocus();
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/LicensePageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/LicensePageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/LicensePageRenderer.java	(revision 14989)
@@ -0,0 +1,103 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.BorderLayout;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ResourceBundle;
+
+import javax.swing.BorderFactory;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.page.LicensePage;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+
+/**
+ *
+ * <p>Renders the license page </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+* @todo this could be an input type and simple renderer
+ * @author Paul Hinds
+ * @version $Id: LicensePageRenderer.java,v 1.5 2007/01/12 10:49:09 anothermwilson Exp $
+ */
+public class LicensePageRenderer
+	extends SwingPageRenderer {
+
+    private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+	private JTextArea licenseTextArea = new JTextArea();
+	private JScrollPane scrollPane = new JScrollPane();
+
+	public LicensePageRenderer(){
+	}
+
+	public boolean validateFields()throws ValidationException{
+		return true; // @todo option to force accepting or tick box to accept
+	}
+
+	public void instanceInit() throws Exception {
+		String resource = ((LicensePage)page).getResource();
+		InputStream licensein = this.getClass().getResourceAsStream(resource);
+		if (licensein == null) {
+			throw new ConfigurationException("License resource '" + resource + "' is missing from installer");
+		}
+		BufferedReader reader = new BufferedReader(new InputStreamReader(licensein));
+		StringBuffer sb = new StringBuffer();
+		String line;
+		while((line = reader.readLine()) != null){
+			sb.append(line);
+			sb.append('\n');
+		}
+
+		licenseTextArea.setText(sb.toString());
+		licenseTextArea.setTabSize(4);
+		licenseTextArea.setAutoscrolls(true);
+		licenseTextArea.setCaretPosition(0);
+		licenseTextArea.setEditable(false);
+		licenseTextArea.setLineWrap(true);
+		licenseTextArea.setWrapStyleWord(true);
+		licenseTextArea.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
+		scrollPane.getViewport().add(licenseTextArea);
+		scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+		scrollPane.setBorder(BorderFactory.createCompoundBorder(
+						BorderFactory.createEmptyBorder(4, 4, 4, 4),
+			            BorderFactory.createEtchedBorder()));
+		this.add(scrollPane, BorderLayout.CENTER);
+
+        getNextButton().setText( res.getString( "license.next.text" ) );
+        getNextButton().setIcon(getImage("/resources/icons/ok.png"));
+        getCancelButton().setText( res.getString( "license.cancel.text" ) );
+
+    }
+
+	public void updateInputFields(){
+		;
+	}
+
+
+
+	/**
+	 * updateDefaultValues
+	 */
+	public void updateDefaultValues() {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/PageCompletionListener.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/PageCompletionListener.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/PageCompletionListener.java	(revision 14989)
@@ -0,0 +1,33 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import org.tp23.antinstaller.page.Page;
+/**
+ *
+ * <p>Called when a page is complete and the user presses next.
+* At this point the pages fields are validated.  If validation passes
+* the next page is shown </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: PageCompletionListener.java,v 1.1.1.1 2005/10/18 18:21:01 teknopaul Exp $
+ */
+public interface PageCompletionListener {
+	public void pageComplete(Page page);
+	public void pageBack(Page page);
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/PasswordTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/PasswordTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/PasswordTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,66 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Color;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.util.ResourceBundle;
+
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.renderer.MessageRenderer;
+import org.tp23.gui.GBCF;
+
+public class PasswordTextInputRenderer extends ValidatedTextInputRenderer{
+	
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+	
+    public PasswordTextInputRenderer() {
+		this.jTextField = new AIPasswordField();
+		origFore = jTextField.getForeground(); // this is lazy there must be a way to shift this line of code to the superclass (is it worth it)
+    }
+
+
+	public void renderError() {
+		MessageRenderer mr = ctx.getMessageRenderer();
+		mr.printMessage( getErrorMessage() );
+		// fixed BUG:1295944 mr.printMessage("The password is not of the correct format\n\n e.g. "+inputField.getDefaultValue());
+		this.jTextField.requestFocus();
+		this.jTextField.setForeground(Color.red);
+		jTextField.addKeyListener(new KeyAdapter() {
+			public void keyTyped(KeyEvent e) {
+				if(e.getKeyChar() != '\t'){
+					inputField.setEditted(true);
+				}
+			}
+		});
+	}
+	public int addSelf(JPanel content, GBCF cf,  int row, boolean overflow) {
+		content.add(fieldLabel, cf.getCell(row, 0));
+		content.add(jTextField, cf.getCell(row, 1));
+		if(overflow){
+			((AIPasswordField)jTextField).setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+		}
+		return ++row;
+	}
+	protected String getErrorMessage(){
+		return res.getString("notCorrectPasswordFormat") + 
+				"\n\n e.g. " + 
+				inputField.getDefaultValue();
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ProgressPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ProgressPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ProgressPageRenderer.java	(revision 14989)
@@ -0,0 +1,196 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Insets;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JToggleButton;
+
+import org.tp23.antinstaller.page.ProgressPage;
+import org.tp23.antinstaller.renderer.AntOutputRenderer;
+import org.tp23.gui.widget.SystemOutJTextArea;
+/**
+ *
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @todo change absolute to Border layout and panels
+ * @author Paul Hinds
+ * @version $Id: ProgressPageRenderer.java,v 1.4 2006/12/21 00:03:00 teknopaul Exp $
+ */
+public class ProgressPageRenderer
+	extends SwingPageRenderer
+	implements AntOutputRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+	private static final int MESSAGE_PANEL_HEIGHT = 30;
+
+	private JPanel contentPanel = new JPanel();
+
+	private JTabbedPane jTabbedPane = new JTabbedPane();
+	private JPanel messagesPanel = new JPanel();
+	private BorderLayout borderLayout1 = new BorderLayout();
+	private JToggleButton jToggleButton = new JToggleButton();
+	private JLabel feedBackLabel = new JLabel();
+
+	private SystemOutJTextArea outPanel = new SystemOutJTextArea();
+	private SystemOutJTextArea errPanel = new SystemOutJTextArea();
+	
+	private boolean showTargets = true;
+	private JScrollPane progressScrollPane = new JScrollPane();;
+	private ProgressPanel progressPanel;
+
+	public ProgressPageRenderer() {
+		errPanel.setAsSystemErr();
+		outPanel.setAsSystemOut();
+	}
+    /**
+	 * getErr
+	 * @return PrintStream
+	 */
+	public PrintStream getErr() {
+		return errPanel.getOut();
+	}
+    /**
+	 * getOut
+	 * @return PrintStream
+	 */
+	public PrintStream getOut() {
+		return outPanel.getOut();
+	}
+
+
+	/**
+	 * instanceInit
+	 */
+	public void instanceInit() {
+		showTargets = ((ProgressPage)page).isShowTargets();
+		contentPanel.setLayout(borderLayout1);
+		this.add(contentPanel,BorderLayout.CENTER);
+		
+		//progressScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+
+		messagesPanel.setLayout(null);
+		Dimension messPanelSize = new Dimension(SizeConstants.PAGE_WIDTH,MESSAGE_PANEL_HEIGHT);
+		messagesPanel.setSize(messPanelSize);
+		messagesPanel.setPreferredSize(messPanelSize);
+		messagesPanel.setMaximumSize(messPanelSize);
+		messagesPanel.setMinimumSize(messPanelSize);
+
+		//FIXME not i18n properly since the sentence is not correct ordering in German
+		feedBackLabel.setText(res.getString("click")+" "+ctx.getInstaller().getFinishButtonText()+" "+res.getString("toContinue"));
+		feedBackLabel.setBounds(new Rectangle(115, 7, 272, 22));
+		jToggleButton.setText(res.getString("showDetails"));
+		jToggleButton.setBounds(new Rectangle(5, 7, 104, 22));
+		jToggleButton.setMargin(new Insets(0,0,0,0));
+		messagesPanel.add(jToggleButton, null);
+		messagesPanel.add(feedBackLabel, null);
+		jToggleButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				if(jToggleButton.isSelected()){
+					if(showTargets){
+						contentPanel.remove(progressScrollPane);
+					}
+					contentPanel.add(jTabbedPane, BorderLayout.CENTER);
+					contentPanel.doLayout();
+					contentPanel.repaint();
+				}
+				else {
+					contentPanel.remove(jTabbedPane);
+					if(showTargets){
+						contentPanel.add(progressScrollPane, BorderLayout.CENTER);
+						progressScrollPane.revalidate();
+					}
+					contentPanel.doLayout();
+					contentPanel.repaint();
+				}
+			}
+		});
+		jToggleButton.setIcon(getImage("/resources/icons/showdetails.png"));
+		contentPanel.add(messagesPanel, BorderLayout.NORTH);
+
+		if(showTargets){
+			progressScrollPane.setBorder(BorderFactory.createEmptyBorder(10,5,5,5));
+			contentPanel.add(progressScrollPane, BorderLayout.CENTER);
+		}
+		jTabbedPane.add(res.getString("output"), outPanel);
+		jTabbedPane.add(res.getString("errors"), errPanel);
+//		if(OutputField.isTrue( ctx.getInstaller().getAntialiased())){
+//			outPanel.setAntialiased(true);
+//			errPanel.setAntialiased(true);
+//		}
+
+		//jTabbedPane.setVisible(false);
+		jTabbedPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+		contentPanel.setMaximumSize(new Dimension(SizeConstants.PAGE_WIDTH, Integer.MAX_VALUE));
+		contentPanel.setMinimumSize(new Dimension(SizeConstants.PAGE_WIDTH, 100));
+		contentPanel.setPreferredSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.PAGE_HEIGHT-100));
+		//contentPanel.add(jTabbedPane, null);
+		//jTabbedPane.setBounds(new Rectangle(4, MESSAGE_PANEL_HEIGHT, PAGE_WIDTH-12, 214));
+
+		this.getNextButton().setEnabled(false);
+		this.getFinishButton().setText(ctx.getInstaller().getFinishButtonText());
+		this.getFinishButton().setEnabled(true);
+	}
+
+	public void setContext(SwingInstallerContext swingCtx){
+		super.setContext(swingCtx);
+		if(showTargets){
+			progressPanel = new ProgressPanel(swingCtx.getInstallerContext());
+			progressScrollPane.getViewport().add(progressPanel);
+			this.swingCtx.setProgressPanel(progressPanel);
+		}
+		this.swingCtx.setFeedBackLabel(feedBackLabel);
+	}
+
+
+	/**
+	 * updateInputFields
+	 */
+	public void updateInputFields() {
+
+	}
+
+
+
+	/**
+	 * validateFields
+	 *
+	 * @return boolean
+	 */
+	public boolean validateFields() {
+		return true;
+	}
+
+
+
+	/**
+	 * updateDefaultValues
+	 */
+	public void updateDefaultValues() {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ProgressPanel.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ProgressPanel.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ProgressPanel.java	(revision 14989)
@@ -0,0 +1,279 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+import java.awt.RenderingHints;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.swing.JPanel;
+import javax.swing.Scrollable;
+
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.Target;
+import org.tp23.antinstaller.InstallerContext;
+
+
+/**
+ * Progress panel prints a graphical view of the progress of the Ant targets
+ * being run.  It supports displaying one layer of dependent targets.
+ * @author Paul Hinds
+ * @version $Id: ProgressPanel.java,v 1.5 2006/12/21 00:02:59 teknopaul Exp $
+ */
+public class ProgressPanel extends JPanel implements Scrollable{
+
+	public static final int tHeight = 19;
+	public static final int leftIndent = 15;
+	public static final int DONE = 0;
+	public static final int INPROGRESS = 1;
+	public static final int TODO = 2;
+	private static final Color progressColor = new Color(0, 125, 0);
+	private static final Font mainFont = new Font("Dialog", Font.PLAIN, 11);
+	private static final Font subFont = new Font("Dialog", Font.PLAIN, 10);
+	List targets = null;
+	
+	private final InstallerContext ctx;
+	private int mainTargetPos = 0;
+	private ProgressModel currentPM = null;
+
+	public ProgressPanel(InstallerContext ctx) {
+		super(true);
+		this.ctx = ctx;
+	}
+
+	public synchronized void prepareCalledTargets(){
+		List targetStrings = ctx.getInstaller().getTargets(ctx);
+		Iterator iter = targetStrings.iterator();
+		targets = new ArrayList();
+		while (iter.hasNext()) {
+			String tgt = (String) iter.next();
+			targets.add(new ProgressModel(tgt));
+		}
+		this.setSize(getSize());// panel size changes
+		revalidate();
+		repaint();
+	}
+	/**
+	 * This method assumes that we are send target started methods in order
+	 * but that we do not have the information about "depends" targets and have to
+	 * insert the information as it arrives.  If a TargetStarted event arrives that
+	 * is not the expected target is is assumed to be a depends.
+	 * @param buildEvent
+	 */
+	public synchronized void targetStarted(BuildEvent buildEvent){
+		try {
+			Target tgt = buildEvent.getTarget();
+			ProgressModel pm = (ProgressModel)targets.get(mainTargetPos);
+            pm.state = INPROGRESS;
+			if(tgt.getName().equals(pm.name)){
+				// main target
+				currentPM = pm;
+				mainTargetPos++;
+				revalidate();
+				repaint();
+			}
+			else {
+				//dependency
+				ProgressModel dependency = new ProgressModel(tgt.getName());
+				dependency.state = INPROGRESS;
+				if(currentPM != null){
+					currentPM.state = DONE;// this to catch antcall strangenesses
+				}
+				currentPM = dependency;
+				pm.subTargets.add(dependency);
+				this.setSize(getSize());// panel size changes
+				revalidate();
+				repaint();
+			}
+		}
+		catch (Exception e) {
+			ctx.log(e);
+		}
+	}
+	public synchronized void targetFinished() {
+		// BUG 1494105 reports NPE here, looks like no targets specified in his antinstaller-config.xml
+		currentPM.state = DONE;
+	}
+
+	/**
+	 * N.B. buildFinished must be fired manually in Ant
+	 */
+	public synchronized void buildFinished() {
+        // this is done because antcall sometimes results in targetFinished not being called
+        setToDone(targets);
+		repaint();
+	}
+    
+    private void setToDone(List pModels){
+        if(pModels == null || pModels.size() == 0){
+        	return;
+        }
+        Iterator iter = pModels.iterator();
+        while (iter.hasNext()) {
+            ProgressModel pm = (ProgressModel)iter.next();
+            pm.state = DONE;
+            setToDone(pm.subTargets);
+        }
+    }
+    /**
+     */
+	public synchronized void paintComponent(Graphics g){
+		super.paintComponent(g);
+		if(targets == null){
+			return;
+		}
+//		g.setColor(getBackground());
+//		g.fillRect(g.getClipBounds().x,
+//					g.getClipBounds().y,
+//					g.getClipBounds().width,
+//					g.getClipBounds().height);
+		Iterator iter = targets.iterator();
+		int offset = 0;
+		for(int i = 1; iter.hasNext(); i++){
+			ProgressModel pmodel = (ProgressModel)iter.next();
+			drawTarget(pmodel, (Graphics2D)g, offset, i < targets.size(), i > 1);
+			offset += tHeight;
+			offset += pmodel.subTargets.size() * tHeight;
+		}
+	}
+
+	public synchronized Dimension getPreferredSize(){
+		return getSize();
+	}
+	/**
+	 * @see java.awt.Component#getSize()
+	 */
+	public synchronized Dimension getSize() {
+		if(targets == null){
+			return new Dimension(SizeConstants.PAGE_WIDTH, tHeight * 5);
+		}
+		int count = targets.size();
+		Iterator iter = targets.iterator();
+		while(iter.hasNext()){
+			ProgressModel pmodel = (ProgressModel)iter.next();
+			count += pmodel.subTargets.size();
+		}
+		return new Dimension(SizeConstants.PAGE_WIDTH, count * tHeight);
+	}
+	/**
+	 *
+	 * @param target the main target to be rendered
+	 * @param g
+	 * @param yOffset the vertical offset where this target should be drawn
+	 * @param hasMore if false this target is the last in the list
+	 * @param hasPrev if false this target is the first in the list
+	 */
+	private void drawTarget(ProgressModel target, Graphics2D g,
+			int yOffset, boolean hasMore, boolean hasPrev){
+		g.setFont(mainFont);
+		g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+		g.setColor(Color.gray);
+		//7 vertical line (up)
+		if(hasPrev){
+			g.drawLine(leftIndent + 8, yOffset, leftIndent + 8, yOffset + 8);
+		}
+		//7 vertical line (down)
+		if(hasMore || target.subTargets.size() > 0){
+			g.drawLine(leftIndent + 8, (tHeight/2) + yOffset, 
+					leftIndent + 8, tHeight + yOffset);
+		}
+		// sideways line
+		int xOffset = 0;
+		g.drawLine(leftIndent + 8, 8 + yOffset, leftIndent + xOffset + 20, 8 + yOffset);
+		if(target.state == DONE){
+			g.setColor(Color.darkGray);
+		}
+		if(target.state == INPROGRESS){
+			g.setColor(progressColor);
+		}
+		if(target.state == TODO){
+			g.setColor(Color.gray);
+		}
+		g.fillRoundRect(leftIndent + xOffset + 3, yOffset + 4, 11, 9, 7, 7);
+		g.setColor(Color.black);
+		g.drawString(target.name, leftIndent + xOffset + 22, 13 + yOffset);
+		if(target.subTargets.size() > 0){
+			Iterator iter = target.subTargets.iterator();
+			for(int i = 1; iter.hasNext(); i++){
+				drawSubTarget((ProgressModel)iter.next(), g, 
+						yOffset += tHeight, hasMore | i < target.subTargets.size());
+			}
+		}
+	}
+	private void drawSubTarget(ProgressModel target, Graphics2D g, 
+			int yOffset, boolean hasMore){
+		g.setFont(subFont);
+		g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+		g.setColor(Color.gray);
+		//7 vertical line (up)
+		g.drawLine(leftIndent + 8, yOffset, leftIndent + 8, yOffset + 8);
+		//7 vertical line (down)
+		if(hasMore){
+			g.drawLine(leftIndent + 8, (tHeight/2) + yOffset, leftIndent + 8, tHeight + yOffset);
+		}
+		int xOffset = 15;
+		// sideways line
+		g.drawLine(leftIndent + 8, 8 + yOffset, leftIndent + xOffset + 4, 8 + yOffset);
+		if(target.state == DONE){
+			g.setColor(Color.darkGray);
+		}
+		if(target.state == INPROGRESS){
+			g.setColor(progressColor);
+		}
+		if(target.state == TODO){
+			g.setColor(Color.gray);
+		}
+		g.fillRoundRect(leftIndent + xOffset + 4, yOffset + 5, 9, 7, 7, 7);
+		g.setColor(Color.black);
+		g.drawString(target.name, leftIndent + xOffset + 15, 12 + yOffset);
+	}
+
+    public synchronized Dimension getPreferredScrollableViewportSize(){
+    	return getPreferredSize();
+    }
+    public synchronized int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction){
+    	return tHeight;
+    }
+    public synchronized int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction){
+    	return tHeight * 3;
+    }
+    public synchronized boolean getScrollableTracksViewportWidth(){
+    	return true;
+    }
+    public synchronized boolean getScrollableTracksViewportHeight(){
+    	return false;
+    }
+	public static class ProgressModel{
+		int state = TODO;
+		String name;
+		List subTargets = new ArrayList();
+
+		public ProgressModel(String name){
+			this.name = name;
+		}
+
+		int getHeight(){
+			return tHeight + subTargets.size() * tHeight;
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SelectInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SelectInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SelectInputRenderer.java	(revision 14989)
@@ -0,0 +1,138 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.Enumeration;
+import java.util.ResourceBundle;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.SelectInput;
+import org.tp23.gui.GBCF;
+
+public class SelectInputRenderer
+	extends SwingOutputFieldRenderer {
+	
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+	protected SelectInput inputField;
+
+	protected JLabel fieldLabel = new AILabel();
+	protected ButtonGroup optionGroup = new ButtonGroup();
+
+	public SelectInputRenderer() {
+	}
+	public void initComponent(JPanel parent){
+		try {
+			jbInit();
+		}
+		catch(Exception e) {
+            ctx.log(e.getMessage());
+            if(ctx.getInstaller().isVerbose()) {
+                ctx.log(e);
+            }
+		}
+	}
+
+
+
+	public void setOutputField(OutputField inputField) {
+		this.inputField = (SelectInput)inputField;
+	}
+	public void updateInputField(){
+		Enumeration enumumeration = optionGroup.getElements();
+		int i = 0;
+		for(; enumumeration.hasMoreElements(); i++){
+			JRadioButton o = (JRadioButton)enumumeration.nextElement();
+			if(o.isSelected()) {
+				inputField.setValue(inputField.getOptions()[i].value);
+				break;
+			}
+		}
+		if(i > inputField.getOptions().length) {
+			inputField.setValue(inputField.getDefaultValue());
+		}
+	}
+	public void updateDefaultValue() {
+		if(!inputField.isEditted()) {
+			String newDefault = inputField.getDefaultValue();
+			Enumeration enumeration = optionGroup.getElements();
+			for(int i = 0; enumeration.hasMoreElements(); i++){
+				if(newDefault.equals(inputField.getOptions()[i].value)) {
+					JRadioButton jrb = (JRadioButton) enumeration.nextElement();
+					jrb.setSelected(true);
+					// @todo should break?
+				} else {
+					enumeration.nextElement();
+				}
+			}
+		}
+	}
+
+    private void jbInit() throws Exception {
+		fieldLabel.setText(inputField.getDisplayText());
+		SelectInput.Option[] options = inputField.getOptions();
+
+		for (int i = 0; i < options.length; i++) {
+			JRadioButton jrb = new AIRadioButton(options[i].getText());
+			optionGroup.add(jrb);
+			if(options[i].value.equals(inputField.getDefaultValue())){
+				jrb.setSelected(true);
+			}
+			jrb.addItemListener(new ItemListener(){
+				public void itemStateChanged(ItemEvent e) {
+					inputField.setEditted(true);
+				}
+			});
+		}
+    }
+	public int addSelf(JPanel content,GBCF cf,  int row,boolean overflow) {
+		content.add(fieldLabel,cf.getCell(row, 0));
+		Enumeration enumeration = optionGroup.getElements();
+		// there should be at least two
+		enumeration.hasMoreElements();
+		AIRadioButton jrb = (AIRadioButton)enumeration.nextElement();
+		content.add(jrb,cf.getCell(row++, 1));
+		if(overflow) {
+			jrb.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+		}
+		JPanel empty = new JPanel();
+		while(enumeration.hasMoreElements()){
+			jrb = (AIRadioButton)enumeration.nextElement();
+			content.add(empty,cf.getCell(row, 0));
+			content.add(jrb,cf.getCell(row++, 1));
+			if(overflow) {
+				jrb.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+			}
+		}
+		return row;
+	}
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+		ctx.getMessageRenderer().printMessage(res.getString("notValidSelection"));
+		// fixed BUG:1295944  ctx.getMessageRenderer().printMessage("Not a valid selection");
+		//optionGroup.requestFocus();
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SimpleInputPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SimpleInputPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SimpleInputPageRenderer.java	(revision 14989)
@@ -0,0 +1,170 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.util.ArrayList;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.input.CommentOutput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.page.SimpleInputPage;
+import org.tp23.antinstaller.renderer.RendererFactory;
+import org.tp23.gui.GBCF;
+
+/**
+ *
+ * <p>This PageRenderer just renders a list of SwingInputRenderers using
+* a BoxLayout </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: SimpleInputPageRenderer.java,v 1.6 2006/12/27 21:46:35 teknopaul Exp $
+ */
+public class SimpleInputPageRenderer
+	extends SwingPageRenderer {
+
+     //Prevent displayText and explanatoryText being rendered using different fonts
+    private static final Font defaultFont = new JLabel().getFont();
+
+	private JPanel contentPanel = new JPanel();
+	
+	private GridBagLayout gridLayout = new GridBagLayout();
+	private GBCF cf = new GBCF(); // GridBagConstraintsFactory
+	private boolean overflow = false;
+	// used in overflow
+	JScrollPane scroller = null;
+	
+
+	private ArrayList renderers = new ArrayList();
+
+	public SimpleInputPageRenderer(){
+	}
+		
+	public boolean validateFields() throws ValidationException {
+		OutputField[] fields = page.getOutputField();
+		for (int i = 0; i < fields.length; i++) {
+			if(!fields[i].validate(ctx)){
+				SwingOutputFieldRenderer renderer = (SwingOutputFieldRenderer)renderers.get(i);
+				renderer.renderError();
+				return false;
+			}
+		}
+		return true;
+	}
+	public void updateInputFields(){
+		for (int i = 0; i < renderers.size(); i++) {
+			((SwingOutputFieldRenderer)renderers.get(i)).updateInputField();
+		}
+	}
+
+	public void updateDefaultValues(){
+		for (int i = 0; i < renderers.size(); i++) {
+			((SwingOutputFieldRenderer)renderers.get(i)).updateDefaultValue();
+		}
+	}
+
+	public void instanceInit() throws Exception {
+		overflow = ((SimpleInputPage)page).isOverflow();
+		if(overflow){
+			//WARNING this causes flickering in the UI 
+			contentPanel.setMaximumSize(new Dimension(SizeConstants.PAGE_WIDTH - 50, SizeConstants.PAGE_HEIGHT));
+			scroller = new JScrollPane();
+			scroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+			scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+			scroller.setBorder(BorderFactory.createCompoundBorder(
+							BorderFactory.createEmptyBorder(4,4,4,4),
+							BorderFactory.createEtchedBorder()				
+							));
+			add(scroller, BorderLayout.CENTER);
+			scroller.getViewport().add(contentPanel);
+			//contentPanel.setBackground(Color.red);
+		}
+		else {
+			this.add(contentPanel, BorderLayout.CENTER);
+			contentPanel.setBorder(BorderFactory.createEmptyBorder(SizeConstants.TOP_INDENT, 4, 4, 4));
+		}
+
+		OutputField[] fields = page.getOutputField();
+		contentPanel.setDoubleBuffered(true);
+		contentPanel.setLayout(gridLayout);
+		int row = 0;
+		for (int i = 0; i < fields.length; i++) {
+			SwingOutputFieldRenderer renderer = RendererFactory.getSwingRenderer(fields[i]);
+			String text = fields[i].getExplanatoryText();
+			if(fields[i].getExplanatoryText() != null){
+				JTextArea area = new DisplayTextArea(contentPanel.getBackground(), contentPanel.getForeground());
+				area.setIgnoreRepaint(true);
+                area.setFont( defaultFont );
+                area.setText(text);
+				contentPanel.add(area, cf.getSpan(row++));
+                if(fields[i] instanceof CommentOutput){
+                    CommentOutputRenderer crenderer = (CommentOutputRenderer)renderer;
+                    crenderer.setExplanatoryTextField(area);
+                    if(fields[i].getDisplayText() == null){
+                        continue;
+                    }
+				}
+			}
+			renderer.setOutputField(fields[i]);
+			renderer.setInstallerContext(ctx);
+			renderer.initComponent(contentPanel);
+			row = renderer.addSelf(contentPanel, cf, row, overflow);
+			renderers.add(renderer);
+		}
+		contentPanel.add(new JPanel(), cf.getVertGlue(row++));
+	}
+}
+/**
+ * A JTextArea that is not editable and looks like a JLabel but uses 
+ * JTextAreas ability to wrap.  Also has a fixed prefered width; 
+ * @author Paul Hinds
+ * @version $Id: SimpleInputPageRenderer.java,v 1.6 2006/12/27 21:46:35 teknopaul Exp $
+ */
+class DisplayTextArea extends JTextArea{
+	DisplayTextArea(Color back, Color fore){
+		super();
+		this.setBackground(back);
+		this.setForeground(fore);
+		this.setLineWrap(true);
+		this.setWrapStyleWord(true);
+		this.setEditable(false);
+		this.setSelectionColor(back);
+		this.setSelectionColor(back);
+		this.setMargin(new Insets(5,0,0,0));
+	}
+
+	public Dimension getPreferredSize(){
+		Dimension pref = super.getPreferredSize();
+		return new Dimension(SizeConstants.PAGE_WIDTH - 40, pref.height);
+	}
+	public Dimension getMinimumSize(){
+		Dimension pref = super.getMinimumSize();
+		return new Dimension(SizeConstants.PAGE_WIDTH - 40, pref.height);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SizeConstants.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SizeConstants.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SizeConstants.java	(revision 14989)
@@ -0,0 +1,48 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Dimension;
+/**
+ * Extracted contants with aim of making these variables configurable
+ * @author teknopaul
+ */
+public class SizeConstants {
+
+	// Page size constants
+	public static int PAGE_WIDTH = 472; // orig value 472
+	public static int PAGE_HEIGHT = 400;// orig value 400
+	public static int LABEL_WIDTH = 175;// orig value 175
+	
+	public static int TITLE_IMAGE_HEIGHT = 100;
+	public static int TITLE_PANEL_HEIGHT = 75; // suspect this is irrelevant
+
+	// Field size constants
+	public static int LEFT_INDENT = 15;
+	public static int TOP_INDENT = 8;
+	public static int BUTTON_WIDTH = 90; // file and directory chooser
+	public static int FIELD_HEIGHT = 20;// field Y
+	public static int FIELD_WIDTH = SizeConstants.PAGE_WIDTH - SizeConstants.LABEL_WIDTH - SizeConstants.LEFT_INDENT;
+	public static int SHORT_FIELD_WIDTH = FIELD_WIDTH - SizeConstants.BUTTON_WIDTH;
+	// overflow resizing
+	// in the gridbaglayout is seems that only preferred size
+	// is significant
+	private static int OVERFLOW_REDUCTION = 40;
+	public static Dimension OVERFLOW_FIELD_SIZE = new Dimension(FIELD_WIDTH - OVERFLOW_REDUCTION, FIELD_HEIGHT);
+	public static Dimension OVERFLOW_SHORT_FIELD_SIZE = new Dimension(FIELD_WIDTH - SizeConstants.BUTTON_WIDTH - OVERFLOW_REDUCTION, FIELD_HEIGHT);
+	public static Dimension OVERFLOW_TOTAL_SIZE = new Dimension(FIELD_WIDTH + SizeConstants.LABEL_WIDTH - OVERFLOW_REDUCTION, FIELD_HEIGHT);
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SplashPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SplashPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SplashPageRenderer.java	(revision 14989)
@@ -0,0 +1,72 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.BorderLayout;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.page.SplashPage;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+/**
+ * A page containing only a single image. 
+ * 
+ * @author teknopaul
+ */
+public class SplashPageRenderer extends SwingPageRenderer{
+
+	private JLabel imagePanel = new JLabel();
+
+	public SplashPageRenderer() {
+	}
+	public boolean validateFields()throws ValidationException{
+		return true;
+	}
+
+	public void instanceInit() throws Exception {
+		String resource = ((SplashPage)page).getSplashResource();
+		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		InputStream in = this.getClass().getResourceAsStream(resource);
+		if(in == null) {
+            throw new ConfigurationException("Splash page resource is missing: " + resource);
+        }
+		byte[] buffer = new byte[2048];
+		int read = -1;
+		while ( (read = in.read(buffer)) != -1) {
+			baos.write(buffer, 0, read);
+		}
+		ImageIcon icon = new ImageIcon(baos.toByteArray());
+		imagePanel.setHorizontalAlignment(JLabel.CENTER);
+		imagePanel.setIcon(icon);
+		this.add(imagePanel, BorderLayout.CENTER);
+	}
+
+	public void updateInputFields(){
+		;
+	}
+
+
+
+	/**
+	 * updateDefaultValues
+	 */
+	public void updateDefaultValues() {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java	(revision 14989)
@@ -0,0 +1,149 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.SwingUtilities;
+
+import org.apache.tools.ant.BuildEvent;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.runtime.SwingRunner;
+
+public class SwingInstallerContext{
+
+	private static JFrame masterFrame;
+    private JLabel feedBackPanel;
+    private ProgressPanel progressPanel;
+    private InstallerContext ctx;
+
+	public SwingInstallerContext(InstallerContext ctx,
+								 JFrame masterFrame) {
+		this.ctx = ctx;
+		SwingInstallerContext.masterFrame = masterFrame;
+	}
+
+	public JFrame getMasterFrame() {
+		return masterFrame;
+	}
+    public SwingRunner getSwingRunner() {
+		return (SwingRunner)ctx.getRunner();
+    }
+
+	public void setFeedBackLabel(JLabel feedBackPanel) {
+		this.feedBackPanel = feedBackPanel;
+	}
+	/**
+	 * The progress panel is optional so not calling this method
+	 * should not cause errors or NPEs
+	 * @param progressPanel
+	 */
+	public void setProgressPanel(ProgressPanel progressPanel) {
+		this.progressPanel = progressPanel;
+	}
+	
+	public void buildStarted(BuildEvent buildEvent) {
+		provideAntFeedBack(buildEvent.getMessage());
+		try {
+			SwingUtilities.invokeAndWait(new Runnable(){
+				public void run(){
+					if(SwingInstallerContext.this.progressPanel != null){
+						SwingInstallerContext.this.progressPanel.prepareCalledTargets();
+					}
+				}
+			});
+		} catch (Exception e) { //Interrupted or InvocationTarget
+			SwingInstallerContext.this.ctx.log(e);
+		}
+	}
+    
+	public void buildFinished(BuildEvent buildEvent) {
+		if(this.progressPanel != null){
+			try {
+				SwingUtilities.invokeLater(new Runnable(){
+					public void run(){
+						SwingInstallerContext.this.progressPanel.buildFinished();
+					}
+				});
+			} catch (Exception e) { //Interrupted or InvocationTarget
+				SwingInstallerContext.this.ctx.log(e);
+			}			
+		}
+	}
+    
+	public void targetStarted(BuildEvent buildEvent) {
+		TargetStarted targetStarted = new TargetStarted();
+		targetStarted.buildEvent = buildEvent;
+		try {
+			if(this.progressPanel != null){
+				//Invoke and wait used since strict ordering od started and finished is requried
+				SwingUtilities.invokeAndWait(targetStarted);
+			}
+		} catch (Exception e) { //Interrupted or InvocationTarget
+			SwingInstallerContext.this.ctx.log(e);
+		}			
+	}
+    
+	public void targetFinished(BuildEvent buildEvent) {
+		try {
+			//Invoke and wait used since strict ordering od started and finished is requried
+			SwingUtilities.invokeAndWait(new Runnable(){
+				public void run(){
+					if(SwingInstallerContext.this.progressPanel != null){
+						SwingInstallerContext.this.progressPanel.targetFinished();
+					}
+				}
+			});
+		} catch (Exception e) { //Interrupted or InvocationTarget
+			SwingInstallerContext.this.ctx.log(e);
+		}
+	}
+	
+	public void provideAntFeedBack(String message){
+		// We should never have Ant running without a ProgressPane
+		// but do an if null here in case future FilterChains are different
+		ProvideAntFeedBack provideAntFeedBack = new ProvideAntFeedBack();
+		provideAntFeedBack.message = message;
+		try {
+			if(feedBackPanel != null){
+				SwingUtilities.invokeLater(provideAntFeedBack);
+			}
+		} catch (Exception e) { //Interrupted or InvocationTarget
+			SwingInstallerContext.this.ctx.log(e);
+		}
+	}
+	
+	
+	/**
+	 * @return Returns the ctx.
+	 */
+	public InstallerContext getInstallerContext() {
+		return ctx;
+	}
+	
+	private class TargetStarted implements Runnable{
+		private BuildEvent buildEvent;
+		public void run(){
+			SwingInstallerContext.this.progressPanel.targetStarted(buildEvent);
+		}
+	}
+	private class ProvideAntFeedBack implements Runnable{
+		private String message;
+		public void run(){
+			SwingInstallerContext.this.feedBackPanel.setText(message);
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java	(revision 14989)
@@ -0,0 +1,113 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+/**
+ *
+ * <p>Render User messages in Popup windows </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: SwingMessageRenderer.java,v 1.4 2006/12/21 00:02:59 teknopaul Exp $
+ */
+public class SwingMessageRenderer
+	implements MessageRenderer {
+
+	private InstallerContext ctx = null;
+	private JFrame owner = null;
+
+
+	public SwingMessageRenderer() {
+	}
+	public SwingMessageRenderer(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void setInstallerContext(InstallerContext ctx){
+		this.ctx = ctx;
+	}
+	public void printMessage(String message){
+		MessageRunnable messageRunnable = new MessageRunnable();
+		messageRunnable.message = message;
+		if(SwingUtilities.isEventDispatchThread()){
+			messageRunnable.run();
+		}
+		else{
+			try {
+				SwingUtilities.invokeAndWait(messageRunnable);
+			} catch (Exception e) { // Interrupted or InvocationTarget
+				ctx.log(e);
+			}
+		}
+	}
+
+	public boolean prompt(String message){
+		OptionRunnable optionRunnable = new OptionRunnable();
+		optionRunnable.message = message;
+		if(SwingUtilities.isEventDispatchThread()){
+			optionRunnable.run();
+		}
+		else{
+			try {
+				SwingUtilities.invokeAndWait(optionRunnable);
+			} catch (Exception e) { // Interrupted or InvocationTarget
+				ctx.log(e);
+			}
+		}
+		return optionRunnable.ok;
+	}
+	/**
+	 * @param owner The owner to set.
+	 */
+	public void setOwner(JFrame owner) {
+		this.owner = owner;
+	}
+	
+	private class MessageRunnable implements Runnable{
+		String message;
+
+		public void run() {
+			JOptionPane.showMessageDialog(SwingMessageRenderer.this.owner, 
+					message, "Message", JOptionPane.INFORMATION_MESSAGE );
+		}
+		
+	}
+	
+	private class OptionRunnable implements Runnable{
+		String message;
+		boolean ok;
+		public void run() {
+			int ret = JOptionPane.showConfirmDialog(SwingMessageRenderer.this.owner,
+					message,
+					"Question",
+					JOptionPane.YES_NO_OPTION);
+			if (ret == JOptionPane.YES_OPTION) {
+				ok = true;
+			}
+			else {
+				ok = false;
+			}
+		}
+		
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java	(revision 14989)
@@ -0,0 +1,86 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.gui.GBCF;
+/**
+ *
+ * <p>Instances of this interface should have a no args constructor.
+* They sould
+* be Swing JComponent (e.g. subclass JPanel) and render normally responding
+* to update paint and requests to change Look & Feel in a normal way. </p>
+ * <p>Instances of this class should follow the naming convention. for each OutputField
+* Xxx in the package org.tp23.antinstaller.input  there should exist a SwingOutputFieldRenderer
+* called org.tp23.antinstaller.renderer.swing.XxxRenderer</p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: SwingOutputFieldRenderer.java,v 1.5 2007/01/04 22:57:17 teknopaul Exp $
+ */
+public abstract class SwingOutputFieldRenderer{
+
+    //TODO From FindBugs - sometimes this field is not used in subclasses to avoid casting
+    // replace with for example, getInputField() that casts in InputRenderers
+    // requires work in ConditionalFieldRenderer
+	protected OutputField outputField;
+	protected InstallerContext ctx;
+	
+	/**
+	 * this should hold a local reference and set the input fields default value
+	 * if one exists
+	 * @param inputField InputField
+	 */
+	public void setOutputField(OutputField outputField){
+		this.outputField = outputField;
+	}
+	/**
+	 * Init the swing components
+	 */
+	public abstract void initComponent(JPanel parent);
+	/**
+	 * Called by the Page prior to firing pagecompletion events
+	 */
+	public abstract void updateInputField();
+	/**
+	 * Called to update the defaults from the ResultContainer
+	 */
+	public abstract void updateDefaultValue();
+
+	/**
+	 * Called when validation fails
+	 */
+	public abstract void renderError();
+	/**
+	 * Called when the renderer should add itself to the content pane;
+	 * @param content the panel to which the Renderer should add itself
+	 * @param GridBagConstraintsFactory
+	 * @param row the current row index in the table
+	 * @param components should adjust preferred size when the overflow flag is set
+	 * to compensate for width loss due to the scroll bar
+	 * @return the row index after adding all its components
+	 */
+	public abstract int addSelf(JPanel content, GBCF cf, int row, boolean overflow);
+
+	public void setInstallerContext(InstallerContext ctx){
+		this.ctx = ctx;
+	}
+
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java	(revision 14989)
@@ -0,0 +1,269 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.util.ResourceBundle;
+
+import javax.swing.BorderFactory;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.border.Border;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.page.Page;
+
+/**
+ *
+ * <p>Abstract super class for page renderers.  setPage will always be called. </p>
+ * <p>Subclasses should implement instanceInit for initialising swing components
+ * on the page. </p>
+ * @author Paul Hinds
+ * @version $Id: SwingPageRenderer.java,v 1.10 2007/01/19 00:24:35 teknopaul Exp $
+ */
+public abstract class SwingPageRenderer
+	extends JPanel {
+	
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+	// gui components
+	private BorderLayout borderLayout1 = new BorderLayout();
+	
+    // holds the next back buttons etc
+	private JPanel controlPanel = new JPanel();
+
+	private JButton backButton = new JButton();
+	private JButton cancelButton = new JButton();
+	private JButton nextButton = new JButton();
+	private JButton finishButton = new JButton();
+
+	private JPanel titlePanel = new JPanel();
+	private JLabel titleLabel = new JLabel();
+	private JLabel imagePanel = new JLabel(); // Graphic for the installer
+	private GridLayout titleLayout = new GridLayout();
+
+	// app components
+	protected Page page;
+	protected SwingInstallerContext swingCtx;
+	protected InstallerContext ctx;
+	protected PageCompletionListener listener;
+	private Border bevelBorder;
+		
+
+	private static Font titleFont;
+	static{
+		titleFont = new JLabel().getFont();
+		try {
+			titleFont = new Font(titleFont.getFamily(), Font.BOLD, 14);
+		}
+		catch (Exception ex) {
+			// lets not fail due to font errors
+		}
+	}
+
+	public SwingPageRenderer(){
+		super();
+	}
+	public void setPage(Page page){
+		this.page = page;
+		try {
+			jbInit();
+		}
+		catch (Exception e) {
+            ctx.log(e.getMessage());
+            if(ctx.getInstaller().isVerbose()) {
+                ctx.log(e);
+            }
+		}
+	}
+
+	public void setContext(SwingInstallerContext swingCtx){
+		this.ctx = swingCtx.getInstallerContext();
+		this.swingCtx = swingCtx;
+	}
+		
+	
+	private void jbInit() throws Exception {
+		
+		this.setDoubleBuffered(true);
+        //emptyBorder = BorderFactory.createEmptyBorder(2,5,2,2);
+		//bevelBorder = BorderFactory.createCompoundBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(116, 116, 112),new Color(166, 166, 161)),BorderFactory.createEmptyBorder(2,SwingInputFieldRenderer.LEFT_INDENT,2,2));
+		bevelBorder = BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.black,1),BorderFactory.createEmptyBorder(2,SizeConstants.LEFT_INDENT,2,2));
+		bevelBorder = BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(),BorderFactory.createEmptyBorder(2,SizeConstants.LEFT_INDENT,2,2));
+		Border tripleBorder = BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(3,4,1,4),bevelBorder);
+		this.setLayout(borderLayout1);
+		titleLabel.setBorder(tripleBorder);
+		controlPanel.setBorder(tripleBorder);
+
+		this.add(titlePanel, BorderLayout.NORTH);
+		this.add(controlPanel, BorderLayout.SOUTH);
+
+		// title panel
+		titlePanel.add(imagePanel, null);
+		titlePanel.add(titleLabel, null);
+
+		titlePanel.setLayout(titleLayout);
+		titleLayout.setColumns(1);
+		titleLayout.setHgap(0);
+		titleLayout.setRows(2);
+		titleLayout.setVgap(2);
+		titlePanel.setMinimumSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_PANEL_HEIGHT));
+		titlePanel.setMaximumSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_PANEL_HEIGHT));
+		titlePanel.setPreferredSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_PANEL_HEIGHT));
+
+		titleLabel.setText(page.getDisplayText());
+		titleLabel.setFont(titleFont);
+		setImage(page.getImageResource());
+		imagePanel.setMinimumSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_IMAGE_HEIGHT));
+		imagePanel.setMaximumSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_IMAGE_HEIGHT));
+		imagePanel.setPreferredSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_IMAGE_HEIGHT));
+
+		// Ctrl Panel
+		controlPanel.add(cancelButton, null);
+		controlPanel.add(backButton, null);
+		controlPanel.add(nextButton, null);
+		controlPanel.add(finishButton, null);
+		backButton.setText(res.getString("backButton"));// "<< Back");
+		cancelButton.setText(res.getString("cancelButton"));// "Cancel");
+		nextButton.setText(res.getString("nextButton"));// "Next >>");
+		finishButton.setText(ctx.getInstaller().getFinishButtonText());
+		finishButton.setEnabled(false);
+		setEventListeners();
+		setIcons();
+	}
+	public abstract void instanceInit() throws Exception ;
+	public abstract void updateInputFields();
+	public abstract void updateDefaultValues();
+	public abstract boolean validateFields()throws ValidationException;
+
+	public void setPageCompletionListener(PageCompletionListener listener){
+		this.listener = listener;
+	}
+
+	private void setImage(String resource) throws Exception{
+		if(resource == null){
+		   resource = ctx.getInstaller().getDefaultImageResource();
+		}
+		ImageIcon icon = getImage(resource);
+		imagePanel.setIcon(icon);
+	}
+	
+	protected ImageIcon getImage(String resource){
+		try {
+			if (resource != null) {
+				ByteArrayOutputStream baos = new ByteArrayOutputStream();
+				InputStream in = this.getClass().getResourceAsStream(resource);
+				byte[] buffer = new byte[2048];
+				int read = -1;
+				while ( (read = in.read(buffer)) != -1) {
+					baos.write(buffer, 0, read);
+				}
+				ImageIcon icon = new ImageIcon(baos.toByteArray());
+				return icon;
+			}
+		}
+		catch (Exception ex) {
+			ctx.log("Can't load image resource:" + resource);
+			if(ctx.getInstaller().isVerbose()){
+				ctx.log(ex);
+			}
+		}
+		return null;
+	}
+	
+	
+	private void setEventListeners(){
+		backButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e){
+				listener.pageBack(page);
+			}
+		});
+		cancelButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e){
+				page.setAbort(true);
+                if (ctx.getInstaller().isVerbose()) {
+                    ctx.log("Abort called");
+                }
+				listener.pageComplete(page);
+			}
+		});
+		nextButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e){
+				listener.pageComplete(page);
+
+			}
+		});
+		finishButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e){
+				if(finishButton.getText().equals(res.getString("exit"))) {
+                    //TODO FindBugs this will prevent cleanup in FinalizerFilter
+					System.exit(0);
+				}
+				listener.pageComplete(page);
+				//((SwingInstallerContext)ctx).getSwingRunner().finish();
+			}
+		});
+	}
+	
+	private void setIcons(){
+		backButton.setIcon(getImage("/resources/icons/back.png"));
+		cancelButton.setIcon(getImage("/resources/icons/cancel.png"));
+		nextButton.setIcon(getImage("/resources/icons/next.png"));
+		finishButton.setIcon(getImage("/resources/icons/finish.png"));
+	}
+
+	public JButton getCancelButton() {
+		return cancelButton;
+	}
+
+	public InstallerContext getCtx() {
+		return ctx;
+	}
+
+	public JPanel getControlPanel() {
+		return controlPanel;
+	}
+
+	public JLabel getImagePanel() {
+		return imagePanel;
+	}
+
+	public JButton getNextButton() {
+		return nextButton;
+	}
+
+	public JLabel getTitleLabel() {
+		return titleLabel;
+	}
+    public JButton getFinishButton() {
+		return finishButton;
+    }
+    public JButton getBackButton() {
+		return backButton;
+    }
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/TargetInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/TargetInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/TargetInputRenderer.java	(revision 14989)
@@ -0,0 +1,104 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.TargetInput;
+import org.tp23.gui.GBCF;
+
+public class TargetInputRenderer
+	extends SwingOutputFieldRenderer {
+
+	protected TargetInput outputField;
+
+    protected AILabel fieldLabel = new AILabel();
+	protected AICheckBox targetCheckBox = new AICheckBox();
+
+	public TargetInputRenderer() {
+	}
+	public void initComponent(JPanel parent){
+		try {
+			jbInit();
+		}
+		catch(Exception e) {
+            ctx.log(e.getMessage());
+            if(ctx.getInstaller().isVerbose()) {
+                ctx.log(e);
+            }
+
+		}
+	}
+
+
+
+	public void setOutputField(OutputField outputField) {
+		this.outputField = (TargetInput)outputField;
+	}
+	public void updateInputField(){
+		String target = outputField.getTarget();
+		int targetIdx = outputField.getIdx();
+		boolean selected = targetCheckBox.isSelected();
+		outputField.setInputResult(String.valueOf(selected));
+		if(selected && !ctx.getCurrentPage().getAllTargets().contains(target)){
+			ctx.getCurrentPage().addTarget(targetIdx, target);
+		}
+		else if(!selected && ctx.getCurrentPage().isTarget(target)){
+			ctx.getCurrentPage().removeTarget(targetIdx);
+		}
+	}
+	public void updateDefaultValue(){
+		if(!outputField.isEditted()){
+			targetCheckBox.setSelected(InputField.isTrue(outputField.getDefaultValue()));
+		}
+	}
+
+    private void jbInit() throws Exception {
+		fieldLabel.setText(outputField.getDisplayText());
+		targetCheckBox.setSelected(InputField.isTrue(outputField.getDefaultValue()));
+		if(InputField.isTrue(outputField.getForce())){
+			targetCheckBox.setEnabled(false);
+		}
+
+		targetCheckBox.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				updateInputField();
+				outputField.setEditted(true);
+			}
+		});
+    }
+	public int addSelf(JPanel content,GBCF cf,  int row,boolean overflow) {
+		content.add(fieldLabel,cf.getCell(row, 0));
+		content.add(targetCheckBox,cf.getCell(row, 1));
+		if(overflow){
+			targetCheckBox.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+		}
+		return ++row;
+	}
+
+
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/TargetSelectInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/TargetSelectInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/TargetSelectInputRenderer.java	(revision 14989)
@@ -0,0 +1,53 @@
+/* 
+ * Copyright 2005 Paul Hinds, Mark Anderson
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.util.Enumeration;
+
+import javax.swing.JRadioButton;
+
+import org.tp23.antinstaller.input.TargetSelectInput;
+/**
+ * 
+ * @author Paul Hinds, Mark Anderson
+ * @version $Id: TargetSelectInputRenderer.java,v 1.3 2006/08/04 17:13:24 anothermwilson Exp $
+ */
+public class TargetSelectInputRenderer
+	extends SelectInputRenderer {
+
+	public TargetSelectInputRenderer() {
+	}
+
+	public void updateInputField(){
+		Enumeration enumeration = optionGroup.getElements();
+		int targetIdx = ((TargetSelectInput)inputField).getIdx();
+		int i = 0;
+		for(; enumeration.hasMoreElements(); i++){
+			JRadioButton o = (JRadioButton)enumeration.nextElement();
+			ctx.getCurrentPage().removeTarget(targetIdx);
+			if(o.isSelected()){
+				String target = inputField.getOptions()[i].value;        
+				ctx.getCurrentPage().addTarget(targetIdx, target);
+				inputField.setValue(target);
+				break;
+			}
+		}
+		if(i > inputField.getOptions().length){
+			inputField.setValue(inputField.getDefaultValue());
+		}
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/TextPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/TextPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/TextPageRenderer.java	(revision 14989)
@@ -0,0 +1,113 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.BorderLayout;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextPane;
+import javax.swing.text.html.HTMLEditorKit;
+
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.page.TextPage;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+/**
+ * A page containing a text file's contents, may be HTML in swing.
+ * The HTML supported is the standard Swing subset of HTML3.2 so 
+ * it really just adds a bit of formatting and looks pretty bad.
+ * The page is also parsed and property references in the document
+ * are converted to the runtime values.
+ * e.g. ${java.user.name} would be replaced with the current user in the HTML text.
+ * 
+ * Both the html page and embeded images are loaded from the classpath so
+ * can be packaged in the jar.
+ * 
+ * The default font and background are determined by 
+ * the LAF.
+ * @author teknopaul
+ *
+ */
+public class TextPageRenderer extends SwingPageRenderer{
+
+	private JTextPane textPane = new JTextPane();
+	private StringBuffer buffer = new StringBuffer();
+	
+	public TextPageRenderer() {
+	}
+	
+	public boolean validateFields()throws ValidationException{
+		return true;
+	}
+
+	public void instanceInit() throws Exception {
+		final String resource = ((TextPage)page).getHtmlResource();
+		InputStream in = this.getClass().getResourceAsStream(resource);
+		if(in == null){
+			throw new ConfigurationException("Html page resource is missing:" + resource);
+		}
+		BufferedReader br = new BufferedReader(new InputStreamReader(in));
+		String read = null;
+		while ( (read = br.readLine()) != null) {
+			buffer.append(read);
+		}
+		// as per FindBugs 
+        br.close();
+		
+		JLabel defaults = new JLabel();
+		textPane.setBackground(defaults.getBackground());
+		textPane.setEditable(false);
+		textPane.setContentType("text/html");
+		HTMLEditorKit classpathKit = new ClasspathHTMLEditorKit();
+		textPane.setEditorKit(classpathKit);
+		textPane.setAutoscrolls(true);
+		
+		String rule = "body{font-family:" + defaults.getFont().getFamily() + 
+		";font-size:" + defaults.getFont().getSize() + "}";
+		classpathKit.getStyleSheet().addRule(rule);
+		textPane.setBorder(BorderFactory.createEmptyBorder());
+
+		JScrollPane scroller = new JScrollPane();
+		scroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+		scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+		scroller.setBorder(BorderFactory.createCompoundBorder(
+						BorderFactory.createEmptyBorder(4, 4, 4, 4),
+						BorderFactory.createEtchedBorder()				
+						));
+		add(scroller, BorderLayout.CENTER);
+		scroller.getViewport().add(textPane);
+		this.add(scroller, BorderLayout.CENTER);
+	}
+
+	public void updateInputFields(){
+	}
+
+
+
+	/**
+	 * updateDefaultValues
+	 */
+	public void updateDefaultValues() {
+		// parse property references
+		String parsedHtml = ctx.getInstaller().getResultContainer().getDefaultValue(buffer.toString());
+		textPane.setText(parsedHtml);
+		textPane.setCaretPosition(0);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/UnvalidatedTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/UnvalidatedTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/UnvalidatedTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,95 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+
+import javax.swing.JPanel;
+
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.UnvalidatedTextInput;
+import org.tp23.gui.GBCF;
+
+public class UnvalidatedTextInputRenderer
+	extends SwingOutputFieldRenderer {
+
+	protected UnvalidatedTextInput inputField;
+
+    protected AILabel fieldLabel = new AILabel();
+    protected AITextfield jTextField = new AITextfield();
+
+	public UnvalidatedTextInputRenderer() {
+	}
+
+	public void initComponent(JPanel parent){
+		try {
+			jbInit();
+		}
+		catch(Exception e) {
+            ctx.log(e.getMessage());
+            if(ctx.getInstaller().isVerbose()) {
+                ctx.log(e);
+            }
+
+		}
+	}
+
+	public void setOutputField(OutputField inputField) {
+		this.inputField=(UnvalidatedTextInput)inputField;
+		this.inputField.setValue(this.inputField.getDefaultValue());
+	}
+	public void updateInputField(){
+		inputField.setValue(jTextField.getText());
+	}
+	public void updateDefaultValue(){
+		if(!inputField.isEditted())jTextField.setText(inputField.getDefaultValue());
+	}
+
+    private void jbInit() throws Exception {
+		fieldLabel.setText(inputField.getDisplayText());
+		jTextField.setText(inputField.getDefaultValue());
+		jTextField.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				updateInputField();
+			}
+		});
+		jTextField.addKeyListener(new KeyAdapter() {
+			public void keyTyped(KeyEvent e) {
+				if (e.getKeyChar() != '\t') {
+					inputField.setEditted(true);
+				}
+			}
+		});
+
+    }
+	public int addSelf(JPanel content,GBCF cf,  int row,boolean overflow) {
+		content.add(fieldLabel,cf.getCell(row,0));
+		content.add(jTextField,cf.getCell(row,1));
+		if(overflow){
+			jTextField.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+		}
+		return ++row;
+	}
+
+	/**
+	 * renderError
+	 */
+	public void renderError() {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,111 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing;
+
+import java.awt.Color;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.util.ResourceBundle;
+
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.ValidatedTextInput;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+import org.tp23.gui.GBCF;
+
+public class ValidatedTextInputRenderer extends SwingOutputFieldRenderer {
+
+    private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+    protected ValidatedTextInput inputField;
+    protected AILabel fieldLabel = new AILabel();
+    protected JTextField jTextField = new AITextfield();
+    protected Color origFore;
+
+    public ValidatedTextInputRenderer() {
+        origFore = jTextField.getForeground();
+    }
+
+    public void initComponent(JPanel parent) {
+        try {
+            jbInit();
+        } catch (Exception e) {
+            ctx.log(e.getMessage());
+            if (ctx.getInstaller().isVerbose()) {
+                ctx.log(e);
+            }
+
+        }
+    }
+
+    public void setOutputField(OutputField inputField) {
+        this.inputField = (ValidatedTextInput) inputField;
+        this.inputField.setValue(this.inputField.getDefaultValue());
+    }
+
+    public void updateInputField() {
+        inputField.setValue(jTextField.getText());
+    }
+
+    public void updateDefaultValue() {
+        if (!inputField.isEditted()) {
+            jTextField.setText(inputField.getDefaultValue());
+        }
+    }
+
+    private void jbInit() throws Exception {
+        fieldLabel.setText(inputField.getDisplayText());
+        jTextField.setText(inputField.getDefaultValue());
+
+        jTextField.addFocusListener(new FocusAdapter() {
+            public void focusLost(FocusEvent fe) {
+                jTextField.setForeground(origFore);
+            }
+        });
+        jTextField.addKeyListener(new KeyAdapter() {
+            public void keyTyped(KeyEvent e) {
+                if (e.getKeyChar() != '\t') {
+                    inputField.setEditted(true);
+                }
+            }
+        });
+    }
+
+    public int addSelf(JPanel content, GBCF cf, int row, boolean overflow) {
+        content.add(fieldLabel, cf.getCell(row, 0));
+        content.add(jTextField, cf.getCell(row, 1));
+        if (overflow) {
+            ((AITextfield) jTextField).setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+        }
+        return ++row;
+    }
+
+    /**
+     * renderError
+     */
+    public void renderError() {
+        MessageRenderer mr = ctx.getMessageRenderer();
+        mr.printMessage(res.getString("notCorrectFormat") + "\n\n e.g. "
+                + inputField.getDefaultValue());
+        this.jTextField.requestFocus();
+        this.jTextField.setForeground(Color.red);
+    }
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/package.html
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/package.html	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/package.html	(revision 14989)
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head><!--
+  Copyright (c) 2004 tp23
+  All Rights Reserved.
+--></head>
+
+<body bgcolor="white">Renderers for the Swing UI.</body>
+</html>
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java	(revision 14989)
@@ -0,0 +1,105 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing.plaf;
+
+import java.lang.reflect.Method;
+
+import javax.swing.LookAndFeel;
+import javax.swing.UIManager;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.OutputField;
+
+
+/**
+ * @author Paul Hinds
+ * @version $Id: LookAndFeelFactory.java,v 1.9 2007/01/28 21:31:08 teknopaul Exp $
+ */
+public class LookAndFeelFactory {
+
+	public static final String DEFAULT_LAF = "org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel";
+	public static final String GREYMETAL_LAF = "greymetal";
+	public static final String NATIVE_LAF = "native";
+	public static final String JGOODIES_LAF = "jgoodies";
+	public static final String NULL_LAF = "null";
+	
+	private final String specifiedLAF;
+	private final InstallerContext ctx;
+	/**
+	 * 
+	 */
+	public LookAndFeelFactory(InstallerContext ctx) {
+		this.ctx = ctx;
+		this.specifiedLAF = ctx.getInstaller().getLookAndFeel();
+	}
+
+	public void setLAF(){
+		String lafClassName = null;
+		try{
+			lafClassName = getLafFromToken(specifiedLAF);
+			if(lafClassName == null){
+				return;
+			}
+			LookAndFeel look = (LookAndFeel)Class.forName(lafClassName).newInstance();
+			ctx.log("Setting look and feel:" + lafClassName);
+			UIManager.setLookAndFeel(look);
+
+			boolean antialias = OutputField.isTrue(ctx.getInstaller().getAntialiased());
+			// Reflection used here to avoid dependencies on JGoodies
+			if(antialias){
+				Method setAntialiased = look.getClass().getMethod("setAntiAliased", new Class[]{boolean.class});
+				if(setAntialiased != null){
+					ctx.log("Setting antialiasing:" + antialias);
+                    // JDK1.5 warning fix
+                    Object[] args = new Boolean[]{new Boolean(antialias)};
+					setAntialiased.invoke(null, args);
+				}
+			}
+		}catch(Exception ex ){
+			ctx.getLogger().log("Can not correctly set Look And Feel:" + ex.getMessage());
+			ctx.getLogger().log(ctx.getInstaller(), ex);
+		}
+	}
+    
+    public static boolean isDefault(String laf){
+        return ( laf == null || laf.equals(JGOODIES_LAF) || laf.equals(DEFAULT_LAF) );
+    }
+	/**
+	 * Gets a look and feel class name respecting the tokens supported
+	 * such as jgoodies, null, native and greymetal
+	 * @param token
+	 * @return look and feel class name
+	 */
+	public static String getLafFromToken(String token) {
+		String laf = null;
+        if(token == null || token.equals(JGOODIES_LAF)) {
+            laf = DEFAULT_LAF;
+        }
+        else if(token.equals(NULL_LAF)) {
+			laf = null;
+		}
+		else if(token.equals(NATIVE_LAF)) {
+			laf = UIManager.getSystemLookAndFeelClassName();
+		}
+		else if(token.equals(GREYMETAL_LAF)) {
+			laf = "org.tp23.antinstaller.renderer.swing.plaf.ModMetalLookAndFeel";
+		}
+		else {
+			laf = token;
+		}
+		return laf;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/plaf/ModMetalLookAndFeel.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/plaf/ModMetalLookAndFeel.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/plaf/ModMetalLookAndFeel.java	(revision 14989)
@@ -0,0 +1,118 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing.plaf;
+
+import java.awt.Font;
+import java.awt.Insets;
+
+import javax.swing.LookAndFeel;
+import javax.swing.UIDefaults;
+import javax.swing.UIManager;
+import javax.swing.plaf.metal.MetalLookAndFeel;
+		
+		
+/**
+ * This LAF is a replacement for Metal for those of us who can't stand the
+ * exsessive use of the <b>BOLD</b> font in the default MetalLookAndFeel
+ * but don't want a heavy LAF that uses excessive memory or increases download
+ * size.  The excessive use of Sun's corporate color purple has also been
+ * removed, but icons have been left as they are since they would add
+ * to the download size significantly.
+ * @author Paul Hinds
+ * @version $Id: ModMetalLookAndFeel.java,v 1.3 2006/12/21 00:03:03 teknopaul Exp $
+ */		 
+public class ModMetalLookAndFeel extends MetalLookAndFeel {
+		
+	private static final long serialVersionUID = 1L;
+	private static boolean isInstalled = false;
+    protected static final Font defaultFont = new Font("Dialog",Font.PLAIN,11);
+     
+     
+     public ModMetalLookAndFeel(){
+         if(!isInstalled){
+             isInstalled = true;
+             UIManager.installLookAndFeel(new javax.swing.UIManager.LookAndFeelInfo("ModMetal", "org.tp23.laf.modmetal.ModMetalLookAndFeel"));
+         }
+     }
+     public static void setAntiAliased(boolean antialiased){
+         
+     }
+
+     public String getID(){
+         return "ModMetalLookAndFeel";
+     }
+
+     public String getName()
+     {
+         return "ModMetalLookAndFeel";
+     }
+
+     public String getDescription(){
+         return "Metal LAF with minor changes to default Fonts";
+     }
+
+     public boolean isNativeLookAndFeel(){
+         return false;
+     }
+
+     public boolean isSupportedLookAndFeel(){
+         return true;
+     }
+
+     protected void initClassDefaults(UIDefaults table){
+         super.initClassDefaults(table);
+     }
+
+     protected void createDefaultTheme(){
+         setCurrentTheme(new ModMetalTheme());
+         super.createDefaultTheme();
+     }
+
+     protected void initSystemColorDefaults(UIDefaults table){
+         super.initSystemColorDefaults(table);
+     }
+
+     protected void initComponentDefaults(UIDefaults table){
+         super.initComponentDefaults(table);
+         table.put("Button.font", defaultFont);
+         table.put("Checkbox.font", defaultFont);
+         table.put("CheckboxMenuItem.font", defaultFont);
+         table.put("ComboBox.font", defaultFont);
+         table.put("ComboBox.font", defaultFont);
+         table.put("FormattedTextField.font", defaultFont);
+         table.put("Label.font", defaultFont);
+         table.put("List.font", defaultFont);
+         table.put("Menu.font", defaultFont);
+         table.put("MenuItem.font", defaultFont);
+         table.put("PopupMenu.font", defaultFont);
+         table.put("ProgressBar.font", defaultFont);
+         table.put("RadioButton.font", defaultFont);
+         table.put("RadioButtonMenuItem.font", defaultFont);
+         table.put("TextArea.font", defaultFont);
+         table.put("TextField.font", defaultFont);
+         table.put("TextPane.font", defaultFont);
+         table.put("TabbedPane.font", defaultFont);
+         table.put("ToggleButton.font", defaultFont);
+         table.put("Tree.font", defaultFont);
+         table.put("Viewport.font", defaultFont);
+         table.put("OptionPane.errorIcon", LookAndFeel.makeIcon(MetalLookAndFeel.class, "icons/Error.gif"));
+         table.put("OptionPane.informationIcon", LookAndFeel.makeIcon(MetalLookAndFeel.class, "icons/Inform.gif"));
+         table.put("OptionPane.warningIcon", LookAndFeel.makeIcon(MetalLookAndFeel.class, "icons/Warn.gif"));
+         table.put("Button.margin", new Insets(2,4,2,4));
+     }
+	
+}
+		
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/plaf/ModMetalTheme.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/plaf/ModMetalTheme.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/plaf/ModMetalTheme.java	(revision 14989)
@@ -0,0 +1,53 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.swing.plaf;
+
+import javax.swing.plaf.ColorUIResource;
+import javax.swing.plaf.metal.DefaultMetalTheme;
+
+/**
+ * @author Paul Hinds
+ * @version $Id: ModMetalTheme.java,v 1.4 2006/12/21 00:03:03 teknopaul Exp $
+ */
+public class ModMetalTheme extends DefaultMetalTheme{
+
+        private static final ColorUIResource primary1 = new ColorUIResource(
+                                  102, 102, 102);
+        private static final ColorUIResource primary2 = new ColorUIResource(
+                				  153, 153, 153);
+        private static final ColorUIResource primary3 = new ColorUIResource(
+                                  204, 204, 204);
+        
+        
+        private static final ColorUIResource secondary1 = new ColorUIResource(
+        						  192, 192, 192);
+        private static final ColorUIResource secondary2 = new ColorUIResource(
+                                  213, 213, 213);
+        private static final ColorUIResource secondary3 = new ColorUIResource(
+                                  234, 234, 234);
+
+
+        // these are blue in Metal Default Theme
+        protected ColorUIResource getPrimary1() { return primary1; } 
+        protected ColorUIResource getPrimary2() { return primary2; }
+        protected ColorUIResource getPrimary3() { return primary3; }
+
+        // these are gray in Metal Default Theme
+        protected ColorUIResource getSecondary1() { return secondary1; }
+        protected ColorUIResource getSecondary2() { return secondary2; }
+        protected ColorUIResource getSecondary3() { return secondary3; }
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java	(revision 14989)
@@ -0,0 +1,121 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.renderer.PageRenderer;
+/**
+ * renamed from TextPageRenderer in version 0.8 to enable
+ * the use of the page type TextPage, TextPageRenderer is now 
+ * the renderer for these page types
+ * @author teknopaul
+ *
+ */
+public abstract class AbstractTextPageRenderer
+	implements PageRenderer {
+
+	public static final int PAGE_BLANK_LINES = 20;
+	public static final int PAGE_DECO_WIDTH = 80;
+
+	protected BufferedReader reader;
+	protected PrintStream out;
+	private InstallerContext ctx;
+
+
+	public AbstractTextPageRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx){
+		this.ctx = ctx;
+	}
+	public InstallerContext getContext(){
+		return ctx;
+	}
+
+	public void init( BufferedReader reader, PrintStream out){
+		this.out = out;
+		this.reader = reader;
+	}
+	/**
+	 *
+	 * @param page Page
+	 * @throws InstallException
+	 * @return boolean false implys user aborted
+	 */
+	public abstract boolean renderPage(Page page) throws InstallException;
+
+	protected void printHeader(Page page) throws IOException{
+		for (int i = 0; i < PAGE_BLANK_LINES; i++) {
+			out.println();
+		}
+
+
+		for (int i = 0; i < PAGE_DECO_WIDTH; i++) {
+			out.print('~');
+		}
+		out.println();
+		out.println("  " + page.getDisplayText());
+		for (int i = 0; i < PAGE_DECO_WIDTH; i++) {
+			out.print('~');
+		}
+		out.println();
+		out.println();
+		out.println();
+	}
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+	private static final char[] affimativeChars = parseChars(res.getString("affirmativeChars"));
+    
+	private static char[] parseChars(String commaSeparated){
+		char[] input = commaSeparated.toCharArray();
+		char[] theChars = new char[input.length];
+		int j = 0;
+		for (int i = 0; i < input.length; i++) {
+			if(Character.isWhitespace(input[i]))continue;
+			if(',' == input[i]) {
+                continue;
+            }
+			else theChars[j++] = input[i];
+		}
+		char[] toReturn = new char[j];
+		System.arraycopy(theChars,0,toReturn,0,j);
+		return toReturn;
+	}
+
+	/**
+	 * does the string represent true default = true
+	 * @param entered String
+	 * @return boolean
+	 */
+	protected boolean isTrue(String entered){
+		if(entered.length() == 0) {
+            return true;
+        }
+		char first = entered.charAt(0);
+		boolean isTrue= false;
+		for (int i = 0; i < affimativeChars.length; i++) {
+			isTrue |= Character.toUpperCase(first) == affimativeChars[i];
+		}
+		return isTrue;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/AppRootInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/AppRootInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/AppRootInputRenderer.java	(revision 14989)
@@ -0,0 +1,20 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+public class AppRootInputRenderer
+	extends DirectoryInputRenderer {
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java	(revision 14989)
@@ -0,0 +1,93 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.CheckboxInput;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.OutputField;
+
+
+public class CheckboxInputRenderer
+	implements TextOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+
+	protected InstallerContext ctx;
+
+	public CheckboxInputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		CheckboxInput iField = (CheckboxInput) field;
+		out.print(iField.getDisplayText());
+		out.print("   [");
+		out.print(res.getString("_default_"));
+		out.print(":");
+		out.print(iField.getDefaultValue());
+		out.print("]");
+		if (InputField.isTrue(iField.getForce())) {
+			out.println(res.getString("_required_"));
+			iField.setValue(iField.getDefaultValue());
+			return;
+		}
+		else {
+			out.println();
+		}
+
+
+		String input = reader.readLine();
+		out.println();
+		if (input == null || input.trim().equals("")) {
+			input = iField.getDefaultValue();
+		}
+		if(InputField.isTrue(input)){
+			iField.setValue("true");
+		}
+		//@TODO should accept true or false only and complain toher wise looping till sensible input
+		//else if (InputField.isFalse(input)){
+		//	iField.setValue("false");
+		//}
+		else{
+			iField.setValue("false");
+		}
+	}
+
+	public boolean isAbort() {
+		return false;
+	}
+
+
+
+	/**
+	 * renderError
+	 *
+	 * @param field InputField
+	 * @param in InputStream
+	 * @param out PrintStream
+	 */
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/CommentOutputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/CommentOutputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/CommentOutputRenderer.java	(revision 14989)
@@ -0,0 +1,68 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.CommentOutput;
+import org.tp23.antinstaller.input.OutputField;
+
+
+public class CommentOutputRenderer
+	implements TextOutputFieldRenderer {
+	protected InstallerContext ctx;
+	
+	public CommentOutputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		CommentOutput comField = (CommentOutput) field;
+		String text = field.getDisplayText();
+		if(text == null){
+			return;
+		}
+
+		if( OutputField.isTrue(comField.getBold()) ){
+			text = text.toUpperCase();
+		}
+		else if( OutputField.isTrue(comField.getTitle()) ){
+			text = text.toUpperCase();
+		}
+
+		out.println(text);
+	}
+	public boolean isAbort(){
+		return false;
+	}
+
+
+
+	/**
+	 * renderError
+	 *
+	 * @param field InputField
+	 * @param out PrintStream
+	 */
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ConditionalFieldRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ConditionalFieldRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ConditionalFieldRenderer.java	(revision 14989)
@@ -0,0 +1,85 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ResourceBundleHelper;
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.input.ConditionalField;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+
+/**
+ * Conditionally render a collection of fields
+ *
+ * @author mwilson
+ * @version $Id
+ * @since 0.7.4.patch 7
+ */
+public class ConditionalFieldRenderer implements TextOutputFieldRenderer
+{
+    private static final ResourceBundleHelper res = new ResourceBundleHelper("org.tp23.antinstaller.renderer.text.Res");
+
+    private InstallerContext context;
+
+    public void setContext( InstallerContext context )
+    {
+        this.context = context;
+    }
+
+    public void renderOutput( OutputField field, BufferedReader reader, PrintStream out )
+            throws ValidationException, InstallException, IOException
+    {
+        ConditionalField conditional = (ConditionalField) field;
+
+        try
+        {
+
+            OutputField[] fields = null;
+
+            if( conditional.getExpression().evaluate() )
+            {
+                fields = conditional.getFields();
+
+                SimpleInputPageRenderer.renderFields( context, fields, reader, out);
+            }
+        }
+        catch( ConfigurationException configExc )
+        {
+            throw new InstallException( res.getMessage( "invalid.conditional.expression", conditional.getIfProperty()),
+                                                        configExc );
+        }
+        catch( ClassNotFoundException clsNotFoundExc )
+        {
+            throw new InstallException( res.getMessage( "text.render.not.found" ),
+                                                        clsNotFoundExc );
+        }
+    }
+
+    public void renderError( OutputField field, BufferedReader reader, PrintStream out ) throws IOException
+    {
+        //renderOutput will have already rendered any errors
+    }
+
+    public boolean isAbort()
+    {
+        return false;
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ConfirmPasswordTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ConfirmPasswordTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ConfirmPasswordTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,13 @@
+package org.tp23.antinstaller.renderer.text;
+
+import java.util.ResourceBundle;
+
+public class ConfirmPasswordTextInputRenderer extends PasswordTextInputRenderer {
+	
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+	
+	protected String getErrorMessage(){
+		return res.getString("passwordsDoNotMatch");
+	}	
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/DateInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/DateInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/DateInputRenderer.java	(revision 14989)
@@ -0,0 +1,66 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.DateInput;
+import org.tp23.antinstaller.input.OutputField;
+
+
+public class DateInputRenderer
+	implements TextOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+
+	protected InstallerContext ctx;
+	public DateInputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		DateInput iField = (DateInput) field;
+		out.print(field.getDisplayText());
+
+		out.print("   [");
+		out.print(res.getString("_default_"));
+		out.print(":");
+		out.print(iField.getDefaultValue());
+		out.println("]");
+
+// @TODO check this from the patch submitted for bug 1469254
+		String input = reader.readLine();
+		
+		out.println();
+		if(input==null || input.equals(""))input = iField.getDefaultValue();
+		iField.setInputResult(input);
+	}
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) throws IOException{
+		DateInput iField = (DateInput) field;
+		out.println("The input is not in the correct format:"+iField.getDateFormat());
+		renderOutput(field, reader, out);
+	}
+	public boolean isAbort(){
+		return false;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/DirectoryInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/DirectoryInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/DirectoryInputRenderer.java	(revision 14989)
@@ -0,0 +1,86 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.DirectoryInput;
+import org.tp23.antinstaller.input.OutputField;
+
+public class DirectoryInputRenderer implements TextOutputFieldRenderer {
+
+    private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+
+    protected InstallerContext ctx;
+
+    public DirectoryInputRenderer() {
+    }
+
+    public void setContext(InstallerContext ctx) {
+        this.ctx = ctx;
+    }
+
+    public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+        DirectoryInput iField = (DirectoryInput) field;
+        out.print(iField.getDisplayText());
+
+        out.print("   [");
+        out.print(res.getString("_default_"));
+        out.print(":");
+        out.print(iField.getDefaultValue(true));
+        out.print("]");
+
+        out.println();
+        String input = reader.readLine();
+        out.println();
+        if (input == null || input.equals("")) {
+            input = iField.getDefaultValue(true);
+            if("".equals(input)) { // if we have empty default and empty input getAbsolutePath() produces a temporary directory
+                iField.setInputResult("");
+            }
+            else {
+                iField.setInputResult(new File(input).getAbsolutePath());
+            }
+        }
+        else {
+            iField.setInputResult(new File(input).getAbsolutePath());
+        }
+    }
+
+    public boolean isAbort() {
+        return false;
+    }
+
+    /**
+     * renderError
+     * 
+     * @param field
+     *            InputField
+     * @param in
+     *            InputStream
+     * @param out
+     *            PrintStream
+     */
+    public void renderError(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+        renderOutput(field, reader, out);
+    }
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ExtValidatedTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ExtValidatedTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ExtValidatedTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,38 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import org.tp23.antinstaller.input.ExtValidatedTextInput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.Validator;
+
+
+public class ExtValidatedTextInputRenderer
+	extends ValidatedTextInputRenderer {
+
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) throws IOException{
+		ExtValidatedTextInput extVal = (ExtValidatedTextInput) field;
+		Validator validator = extVal.getValidator();
+		Throwable t = extVal.getThrowable();
+		String message = validator.getErrorMessage(t,null);
+		out.println(message);
+		renderOutput(field, reader, out);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/FileInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/FileInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/FileInputRenderer.java	(revision 14989)
@@ -0,0 +1,70 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.FileInput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+
+
+public class FileInputRenderer
+	implements TextOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+
+	protected InstallerContext ctx;
+	public FileInputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		FileInput iField = (FileInput) field;
+		out.print(iField.getDisplayText());
+
+		out.print("   [");
+		out.print(res.getString("_default_"));
+		out.print(":");
+		out.print(iField.getDefaultValue(true));
+		out.print("]");
+
+		out.println();
+		String input = reader.readLine();
+		out.println();
+		if(input == null || input.equals("")){
+			input = iField.getDefaultValue(true);
+		}
+		iField.setInputResult(new File(input).getAbsolutePath());
+	}
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) throws IOException{
+		MessageRenderer mr = ctx.getMessageRenderer();
+		mr.printMessage(res.getString("fileDoesNotExist"));
+		renderOutput(field, reader, out);
+	}
+	public boolean isAbort(){
+		return false;
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/HiddenPropertyInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/HiddenPropertyInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/HiddenPropertyInputRenderer.java	(revision 14989)
@@ -0,0 +1,58 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.HiddenPropertyInput;
+import org.tp23.antinstaller.input.OutputField;
+
+/**
+ * Text UI Renderer for hidden properties - displays nothing
+ *
+ * @author mwilson
+ * @version $Id
+ * @since 0.7.4 patch 6
+ */
+public class HiddenPropertyInputRenderer implements TextOutputFieldRenderer
+{
+
+    public void setContext( InstallerContext ctx )
+    {
+
+    }
+
+    public void renderOutput( OutputField field, BufferedReader reader, PrintStream out ) throws IOException
+    {
+        HiddenPropertyInput propertyField = (HiddenPropertyInput) field;
+
+        if( !propertyField.isEditted() )
+        {
+            propertyField.setInputResult( propertyField.getDefaultValue() );
+        }
+    }
+
+    public void renderError( OutputField field, BufferedReader reader, PrintStream out ) throws IOException
+    {
+
+    }
+
+    public boolean isAbort()
+    {
+        return false;
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/LargeSelectInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/LargeSelectInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/LargeSelectInputRenderer.java	(revision 14989)
@@ -0,0 +1,115 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.LargeSelectInput;
+import org.tp23.antinstaller.input.OutputField;
+
+
+public class LargeSelectInputRenderer
+	implements TextOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+	private static final String nextChar = res.getString("nextChar");
+
+	protected InstallerContext ctx;
+	public LargeSelectInputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		LargeSelectInput iField = (LargeSelectInput) field;
+
+		printText(iField,out,reader);
+		String input = reader.readLine();
+		out.println();
+		if(input == null || input.equals("")) {
+            input = iField.getDefaultValue();
+        }
+		else {
+			try {
+				int idx = Integer.parseInt(input.trim());
+				input = iField.getOptions()[idx - 1].value;
+			} catch(Exception numFormatOrIndexOutOfBounds) {
+				return;
+			}
+		}
+		iField.setInputResult(input);
+	}
+	
+	public boolean isAbort(){
+		return false;
+	}
+	private void printText(LargeSelectInput iField, PrintStream out,BufferedReader reader) throws IOException{
+		out.println(iField.getDisplayText());
+		LargeSelectInput.Option[] options = iField.getOptions();
+		out.print("  ");
+		out.println(res.getString("availableOptions"));
+		StringBuffer optionsData = new StringBuffer();
+		for (int i = 0; i < options.length; i++) {
+			optionsData.append("  ");
+			optionsData.append(i+1);
+			optionsData.append(") ");
+			optionsData.append(options[i].getText());
+			if(iField.getDefaultValue().equals(options[i].value)){
+				optionsData.append(" [");
+				optionsData.append(res.getString("_default_"));
+				optionsData.append("]");
+			}
+			optionsData.append("\n");
+		}
+		optionsData.append("  ");
+		optionsData.append(res.getString("enterNumber")).append("\n");
+		Pager pager = new Pager(optionsData.toString());
+		String command = null;
+		do {
+			if (!pager.next(out)) {
+				break;
+			}
+			out.println();
+			out.println(getNextInstructions());
+			command = reader.readLine();
+		}
+		while (command.toUpperCase().startsWith( nextChar ));
+		pager.rest(out);
+
+	}
+
+
+
+	/**
+	 * renderError
+	 *
+	 * @param field InputField
+	 * @param out PrintStream
+	 */
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		ctx.getMessageRenderer().printMessage("Not a valid selection");
+		renderOutput(field, reader, out);
+	}
+	private String getNextInstructions() {
+		return res.getString("large_select_next");
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/LicensePageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/LicensePageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/LicensePageRenderer.java	(revision 14989)
@@ -0,0 +1,119 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+import org.tp23.antinstaller.page.LicensePage;
+import org.tp23.antinstaller.page.Page;
+
+
+public class LicensePageRenderer
+	extends AbstractTextPageRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+	private static final String nextChar = res.getString("nextChar");
+	
+	private boolean usePaging = false;
+
+	public LicensePageRenderer() {
+	}
+
+	public boolean renderPage(Page page) throws InstallException {
+		if (page instanceof LicensePage) {
+			LicensePage lPage = (LicensePage) page;
+			String strUsePaging = lPage.getUsePaging();
+			usePaging = strUsePaging!=null && isTrue(strUsePaging);
+			return renderLicensePage(lPage);
+		}
+		else {
+			throw new InstallException("Wrong Renderer in LicensePageRenderer.renderPage");
+		}
+	}
+
+	private boolean renderLicensePage(LicensePage page) throws InstallException {
+		try {
+			BufferedReader commandReader = reader;
+			out.println();
+			out.println(res.getString("clickViewLicense"));
+			commandReader.readLine();
+
+			String resource = page.getResource();
+			InputStream licensein = this.getClass().getResourceAsStream(resource);
+			if (licensein == null) {
+				throw new ConfigurationException("License resource '" + resource + "' is missing from installer");
+			}
+			BufferedReader reader = new BufferedReader(new InputStreamReader(licensein));
+			printHeader(page);
+			String lineread = null;
+			StringBuffer sb = new StringBuffer();
+
+			while ( (lineread = reader.readLine()) != null) {
+				sb.append(lineread);
+				sb.append('\n');
+			}
+            // as per FindBugs
+            reader.close();
+
+			String command = null;
+			Pager pager = new Pager(sb.toString());
+			if (usePaging) {
+				do {
+					if (!pager.next(out)) {
+						break;
+					}
+					out.println();
+					out.println(getNextInstructions());
+					command = commandReader.readLine();
+				}
+				while (command.toUpperCase().startsWith(nextChar));
+				pager.rest(out);
+			}
+			else {
+				out.println(pager.getText());
+			}
+
+			for (int i = 0; i < PAGE_DECO_WIDTH; i++) {
+				out.print('~');
+			}
+			out.println();
+			out.println(res.getString("licenseAccept"));
+			command = commandReader.readLine();
+			command = command.trim();
+			if (isTrue(command)) {
+				return true;
+			}
+			else {
+				page.setAbort(true);
+				return false;
+			}
+		}
+		catch (IOException ex) {
+			throw new InstallException("Not able to read license file", ex);
+		}
+	}
+
+	private String getNextInstructions() {
+		return res.getString("license_next");
+	}
+}
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Pager.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Pager.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Pager.java	(revision 14989)
@@ -0,0 +1,101 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.PrintStream;
+
+
+/**
+ *
+ * <p>Used for the Text/Console input to show pages of text as opposed to displaying
+* a long list of text that scrolls off the top of the page. </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: Pager.java,v 1.2 2006/12/21 00:09:19 teknopaul Exp $
+ */
+public class Pager {
+
+	private char[] text;
+	private int linesPerPage = 20;
+	private int charsPerLine = 80;
+	private int stringIndex = 0;
+
+	public Pager(String text) {
+		this.text = text.toCharArray();
+	}
+	public Pager(){
+	}
+
+	public String getText() {
+		return new String(text);
+	}
+
+	public void setText(String text) {
+		this.text = text.toCharArray();
+	}
+	/**
+	 * Print the rest of the text
+	 */
+	public void rest(PrintStream out){
+		while(next(out));
+}
+	/**
+	 * Print the next page
+	 * @param out PrintStream
+	 * @return boolean true if there is more text
+	 */
+	public boolean next(PrintStream out){
+		int lineChars = 0;
+		int lastSpace = -1;
+		// loop past charaters, increment with lines
+		char[] lineBuffer = new char[charsPerLine+1];
+		for (int lines = 0; lines < linesPerPage;) {
+			if(stringIndex >= text.length){
+				return false;
+			}
+			lineBuffer[lineChars] = text[stringIndex];
+			if(text[stringIndex] == ' '){
+				lastSpace = lineChars;
+			}
+			if(text[stringIndex] == '\n'){
+				String tmp = new String(lineBuffer, 0, lineChars + 1);
+				out.print(tmp);
+				lines++;
+				lineChars = 0;
+				lastSpace = -1;
+			}
+			else if(lineChars == charsPerLine){
+				// handle lines ending with the last full word
+				if(lastSpace != -1){
+					out.println(new String(lineBuffer, 0, lastSpace));
+					stringIndex = stringIndex - (charsPerLine - lastSpace);
+				}
+				else {
+					out.println(new String(lineBuffer, 0, lineChars));
+				}
+				lines++;
+				lineChars = 0;
+				lastSpace = -1;
+			}
+			else{
+				lineChars++;
+			}
+			stringIndex++;
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/PasswordTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/PasswordTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/PasswordTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,167 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.PasswordTextInput;
+
+
+public class PasswordTextInputRenderer extends ValidatedTextInputRenderer
+
+	implements TextOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+	
+	public PasswordTextInputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		PasswordTextInput iField = (PasswordTextInput) field;
+		StringBuffer displayText = new StringBuffer();
+		displayText.append(field.getDisplayText());
+		displayText.append("   [");
+		displayText.append(res.getString("_default_"));
+		displayText.append(":");
+		displayText.append(iField.getDefaultValue());
+		displayText.append("]");
+
+		String input = null;
+		if(OutputField.isTrue(iField.getTextMask())){
+			input = new PasswordField().getPassword(displayText.toString());
+			System.out.print("\r                                                      ");
+		}
+		else {
+			out.println(displayText.toString());
+			input = reader.readLine();
+		}
+
+		out.println();
+		out.println();
+		if(input == null || input.equals("")){
+            input = iField.getDefaultValue();
+        }
+		iField.setInputResult(input);
+	}
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) throws IOException{
+		out.println(getErrorMessage());
+		renderOutput(field, reader, out);
+	}
+	public boolean isAbort(){
+		return false;
+	}
+
+	protected String getErrorMessage(){
+		return res.getString("notCorrectPasswordFormat");
+	}
+	
+	// shame this does not work
+	// does any one know a way to not echo passwords?
+//	private String readInput(InputStreamReader reader, PrintStream out) throws IOException{
+//		StringBuffer sb = new StringBuffer();
+//		char c = 0;
+//		while((c=(char)reader.read())!='\n'){
+//			if(c==8)sb.setLength(sb.length()-1);
+//			sb.append(c);
+//			out.print((char)8);
+//			out.flush();
+//		}
+//		return sb.toString();
+//	}
+	
+	/*
+	 * 
+	 * Taken from the SUN website
+	 * @author Paul Hinds
+	 * @version $Id: PasswordTextInputRenderer.java,v 1.4 2007/01/04 22:57:18 teknopaul Exp $
+	 */
+	class MaskingThread extends Thread {
+		private boolean stop = false;
+		private int index;
+		private String prompt;
+
+		public MaskingThread(String prompt) {
+			this.prompt = prompt;
+		}
+
+		public void run() {
+			while (!stop) {
+				try {
+					// attempt masking at this rate
+					this.sleep(1);
+				}
+				catch (InterruptedException iex) {
+					iex.printStackTrace();
+				}
+				if (!stop) {
+					System.out.print("\r" + prompt + " \r" + prompt);
+				}
+				System.out.flush();
+			}
+		}
+
+		public void stopMasking() {
+			this.stop = true;
+		}
+	}
+	
+	public class PasswordField {
+
+		/**
+		 *@param prompt The prompt to display to the user.
+		 *@return The password as entered by the user.
+		 */
+		String getPassword(String prompt) throws IOException {
+			// password holder
+			StringBuffer password = new StringBuffer();
+			MaskingThread maskingthread = new MaskingThread(prompt);
+			Thread thread = new Thread(maskingthread);
+			thread.start();
+			// block until enter is pressed
+			while (true) {
+				char c = (char) System.in.read();
+				// assume enter pressed, stop masking
+				maskingthread.stopMasking();
+				if (c == '\r') {
+					c = (char) System.in.read();
+					if (c == '\n') {
+						break;
+					}
+					else {
+						continue;
+					}
+				}
+				else if (c == '\n') {
+					break;
+				}
+				else {
+					// store the password
+					password.append(c);
+				}
+			}
+			return password.toString();
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ProgressPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ProgressPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ProgressPageRenderer.java	(revision 14989)
@@ -0,0 +1,68 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.IOException;
+import java.io.PrintStream;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.renderer.AntOutputRenderer;
+
+
+public class ProgressPageRenderer extends AbstractTextPageRenderer implements AntOutputRenderer {
+
+	public ProgressPageRenderer() {
+	}
+
+	/**
+	 * getErr
+	 *
+	 * @return PrintStream
+	 */
+	public PrintStream getErr() {
+		return System.err;
+	}
+
+
+
+	/**
+	 * getOut
+	 *
+	 * @return PrintStream
+	 */
+	public PrintStream getOut() {
+		return System.out;
+	}
+
+
+
+	/**
+	 * renderPage
+	 *
+	 * @param page Page
+	 * @return boolean
+	 */
+	public boolean renderPage(Page page) throws InstallException {
+		try {
+			printHeader(page);
+		}
+		catch (IOException ex) {
+			throw new InstallException("Can not print header");// not very likely!!
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res.properties
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res.properties	(revision 14989)
@@ -0,0 +1,16 @@
+#org.tp23.antinstaller.renderer.text.Res
+#Wed Nov 10 00:25:59 CET 2004
+
+_required_=required
+_default_=default
+true=true
+affirmativeChars=T,Y
+licenseAccept=Do you accept the license? Y or N   [default\:Y]
+clickViewLicense=Press enter to view the license agreement
+clickViewText=Press enter to continue
+enterNumber=Enter a number
+fileDoesNotExist=The File does not exist
+license_next=enter 'N' for the next page, enter anything else to scroll to the the end
+large_select_next=enter 'N' for the next page, enter anything else to scroll to the the end
+nextChar=N
+availableOptions=view available options
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res_de.properties
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res_de.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res_de.properties	(revision 14989)
@@ -0,0 +1,17 @@
+#org.tp23.antinstaller.renderer.text.Res
+#Wed Nov 10 00:25:59 CET 2004
+
+_required_=erforderlich
+_default_=Voreinstellung
+true=wahr
+affirmativeChars=W,J
+licenseAccept=Akzeptieren Sie diese Lizenz? J oder N  [Vorgabe\:J]
+clickViewLicense=Drücken Sie die Eingabetaste, um die Lizenzvereinbarung anzusehen
+clickViewText=Press enter to continue
+enterNumber=Geben Sie eine Zahl ein
+fileDoesNotExist=Die Datei existiert nicht
+license_next=Geben Sie 'N' für die nächste Seite ein, oder eine andere
+Taste, um zum Ende zu springen
+large_select_next=Geben Sie 'N' für die nächste Seite ein, oder eine andere Taste, um zum Ende zu springen
+nextChar=N
+availableOptions=Verfügbare Optionen ansehen
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res_es.properties
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res_es.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res_es.properties	(revision 14989)
@@ -0,0 +1,15 @@
+#org.tp23.antinstaller.renderer.text.Res
+#Wed Nov 10 00:25:59 CET 2004
+_required_=Requerido
+_default_=Por defecto
+true=Verdad
+affirmativeChars=S,V
+licenseAccept=Aceptar la licencia? S o N   [Por defecto\:Y]
+clickViewLicense=Pulsar intro para ver licencia.
+clickViewText=Pulsar intro para continuar.
+enterNumber=Introduzca un nmero.
+fileDoesNotExist=El fichero no existe.
+license_next=Pulse 'S' para ver la siguiente página, pulse cualquier otra tecla para ir al final.
+large_select_next=Pulse 'S' para ver la siguiente pàgina, pulse cualquier otra tecla para ir al final.
+nextChar=S
+availableOptions=Ver opciones disponibles.
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res_es_EU.properties
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res_es_EU.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/Res_es_EU.properties	(revision 14989)
@@ -0,0 +1,15 @@
+#org.tp23.antinstaller.renderer.text.Res
+#Wed Nov 10 00:25:59 CET 2004
+_required_=Beharrezkoa
+_default_=Lehenetsia
+true=Egia
+affirmativeChars=E,B
+licenseAccept=Baimena onartzen duzu? E,B edo N   [Lehenetsia\:Y]
+clickViewLicense=Sakatu hemen baimena ikusteko.
+clickViewText=Pulsar intro para continuar.
+enterNumber=Sartu zenbaki bat.
+fileDoesNotExist=Fitztegia ez da existitzen.
+license_next=Sakatu 'N' hurrengo horrialdea ikusteko, sakatu beste edozer gauza bukaerara joateko.
+large_select_next=Sakatu 'N' hurrengo horrialdea ikusteko, sakatu beste edozer gauza bukaerara joateko.
+nextChar=N
+availableOptions=ikusi aukerak
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/SelectInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/SelectInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/SelectInputRenderer.java	(revision 14989)
@@ -0,0 +1,95 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.SelectInput;
+
+
+public class SelectInputRenderer
+	implements TextOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+
+	protected InstallerContext ctx;
+	public SelectInputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		SelectInput iField = (SelectInput) field;
+		printText(iField,out);
+		
+		String input = reader.readLine();
+		out.println();
+		if(input == null || input.equals("")){
+			input = iField.getDefaultValue();
+		}
+		else {
+			try {
+				int idx = Integer.parseInt(input.trim());
+				input = iField.getOptions()[idx - 1].value;
+			} catch(Exception numFormatOrIndexOutOfBounds){
+				return;
+			}
+		}
+		iField.setInputResult(input);
+	}
+	public boolean isAbort(){
+		return false;
+	}
+	private void printText(SelectInput iField, PrintStream out) throws IOException{
+		out.println(iField.getDisplayText());
+		SelectInput.Option[] options = iField.getOptions();
+		out.print("  ");
+		out.println(res.getString("enterNumber"));
+		for (int i = 0; i < options.length; i++) {
+			out.print("  ");
+			out.print(i+1);
+			out.print(") ");
+			out.print(options[i].getText());
+			if(iField.getDefaultValue().equals(options[i].value)){
+				out.print(" [");
+				out.print(res.getString("_default_"));
+				out.print("]");
+			}
+			out.println();
+		}
+	}
+
+
+
+	/**
+	 * renderError
+	 *
+	 * @param field InputField
+	 * @param in InputStream
+	 * @param out PrintStream
+	 */
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		ctx.getMessageRenderer().printMessage("Not a valid selection");
+		renderOutput(field, reader, out);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/SimpleInputPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/SimpleInputPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/SimpleInputPageRenderer.java	(revision 14989)
@@ -0,0 +1,91 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.page.SimpleInputPage;
+import org.tp23.antinstaller.renderer.RendererFactory;
+
+public class SimpleInputPageRenderer
+	extends AbstractTextPageRenderer {
+	
+	public SimpleInputPageRenderer() {
+	}
+
+	public boolean renderPage(Page page) throws InstallException{
+		if (page instanceof SimpleInputPage) {
+			try {
+				return renderSimpleInputPage( (SimpleInputPage) page);
+			}
+			catch (ClassNotFoundException ex) {
+				// this would be a code error
+				throw new InstallException("Cant find acceptable TextField renderer in SimpleInputPageRenderer.renderPage:" + ex.getMessage(),
+										   ex);
+			}
+		}
+		else {
+			//this would be a code error
+			throw new InstallException("Wrong Renderer in SimpleInputPageRenderer.renderPage");
+		}
+	}
+
+	private boolean renderSimpleInputPage(SimpleInputPage page)
+            throws InstallException, ClassNotFoundException, ValidationException
+    {
+
+		try {
+			printHeader(page);
+			OutputField[] fields = page.getOutputField();
+            return renderFields( getContext(), fields, reader, out );
+		}
+		catch (IOException ex) {
+			// If you cant write to the console there is not much you can do
+			throw new InstallException("IOException",ex);
+		}
+	}
+
+    public static boolean renderFields( InstallerContext context, OutputField[] fields, BufferedReader reader, PrintStream out )
+            throws ClassNotFoundException, IOException, ValidationException, InstallException
+    {
+
+        for (int f = 0; f < fields.length; f++) {
+            String text = fields[f].getExplanatoryText();
+            if(text != null){
+                out.println(text);
+                out.println();
+            }
+
+            TextOutputFieldRenderer frenderer = RendererFactory.getTextRenderer(fields[f]);
+            frenderer.setContext( context );
+            frenderer.renderOutput(fields[f], reader, out);
+            if (frenderer.isAbort()) {
+                return false;
+            }
+            while(!fields[f].validate( context ) ){
+                frenderer.renderError(fields[f], reader, out);
+            };
+        }
+        return true;
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/SplashPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/SplashPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/SplashPageRenderer.java	(revision 14989)
@@ -0,0 +1,49 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.IOException;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.page.SplashPage;
+
+public class SplashPageRenderer extends AbstractTextPageRenderer {
+	public SplashPageRenderer() {
+	}
+	public boolean renderPage(Page page) throws InstallException {
+		if (page instanceof SplashPage) {
+			SplashPage sPage = (SplashPage) page;
+			return renderSplashPage(sPage);
+		}
+		else {
+			throw new InstallException("Wrong Renderer in SplashPageRenderer.renderPage");
+		}
+	}
+	private boolean renderSplashPage(SplashPage page) throws InstallException {
+		try {
+			printHeader(page);
+			out.println();
+			out.println(page.getAltText());
+
+			reader.read();
+			return true;
+		}
+		catch (IOException ex) {
+			throw new InstallException("IOException");
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TargetInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TargetInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TargetInputRenderer.java	(revision 14989)
@@ -0,0 +1,96 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.TargetInput;
+
+
+public class TargetInputRenderer
+	implements TextOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+
+	protected InstallerContext ctx;
+	public TargetInputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		TargetInput iField = (TargetInput) field;
+		out.println("Install the following component?");
+		out.print(iField.getDisplayText());
+
+		out.print("   [");
+		out.print(res.getString("_default_"));
+		out.print(":");
+		out.print(iField.getDefaultValue());
+		out.print("]");
+
+		if (InputField.isTrue(iField.getForce())) {
+			out.print("   [");
+			out.print(res.getString("_required_"));
+			out.println("]");
+			ctx.getCurrentPage().addTarget(iField.getIdx(), iField.getTarget());
+			iField.setInputResult("true");
+			out.println();
+			return;
+		}
+
+
+
+		out.println();
+		String input = reader.readLine();
+		out.println();
+		if (input == null || input.trim().equals("")){
+			input = iField.getDefaultValue();
+		}
+		if(InputField.isTrue(input)){
+			ctx.getCurrentPage().addTarget(iField.getIdx(), iField.getTarget());
+			iField.setInputResult("true");
+		}
+		else{
+			ctx.getCurrentPage().removeTarget(iField.getIdx());
+			iField.setInputResult("false");
+		}
+		
+	}
+
+	public boolean isAbort() {
+		return false;
+	}
+
+
+
+	/**
+	 * renderError
+	 *
+	 * @param field InputField
+	 * @param out PrintStream
+	 */
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TargetSelectInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TargetSelectInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TargetSelectInputRenderer.java	(revision 14989)
@@ -0,0 +1,79 @@
+/* 
+ * Copyright 2005 Paul Hinds, Mark Anderson
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.TargetSelectInput;
+
+/**
+ * 
+ * @author Paul Hinds, Mark Anderson
+ * @version $Id: TargetSelectInputRenderer.java,v 1.3 2007/01/09 22:41:40 teknopaul Exp $
+ */
+public class TargetSelectInputRenderer
+	extends SelectInputRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+
+	public TargetSelectInputRenderer() {
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		TargetSelectInput iField = (TargetSelectInput) field;
+		printText(iField,out);
+
+		String input = reader.readLine();
+		out.println();
+		if(input == null || input.equals(""))
+			input = iField.getDefaultValue();
+		else{
+			try{
+				int idx = Integer.parseInt(input.trim());
+				input = iField.getOptions()[idx - 1].value;
+			} catch(Exception numFormatOrIndexOutOfBounds) {
+				return;
+			}
+		}
+		ctx.getCurrentPage().removeTarget(iField.getIdx());
+		ctx.getCurrentPage().addTarget(iField.getIdx(), input);
+		iField.setInputResult(input);
+	}
+
+	private void printText(TargetSelectInput iField, PrintStream out) throws IOException{
+		out.println(iField.getDisplayText());
+		TargetSelectInput.Option[] options = iField.getOptions();
+		out.print("  ");
+		out.println(res.getString("enterNumber"));
+		for (int i = 0; i < options.length; i++) {
+			out.print("  ");
+			out.print(i+1);
+			out.print(") ");
+			out.print(options[i].getText());
+			if(iField.getDefaultValue().equals(options[i].value)){
+				out.print(" [");
+				out.print(res.getString("_default_"));
+				out.print("]");
+			}
+			out.println();
+		}
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TextMessageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TextMessageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TextMessageRenderer.java	(revision 14989)
@@ -0,0 +1,74 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+
+/**
+ *
+ * <p>Render user messages to the console </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: TextMessageRenderer.java,v 1.3 2007/01/09 22:41:40 teknopaul Exp $
+ */
+public class TextMessageRenderer
+	implements MessageRenderer {
+
+	private InstallerContext ctx = null;
+
+	public TextMessageRenderer() {
+	}
+
+	public void setInstallerContext(InstallerContext ctx){
+		this.ctx = ctx;
+	}
+	public void printMessage(String message){
+		System.out.println(message);
+	}
+
+	public boolean prompt(String message){
+		try {
+			System.out.println(message);
+			// FIXME need to read directly from InputStreamReader and stop at first \n or \r
+			// test the following
+//			InputStreamReader isr = new InputStreamReader(System.in);			
+//			int intChar = -1;
+//			StringBuffer sb = new StringBuffer();
+//			while((intChar = isr.read()) != -1 && intChar != '\n' && intChar != '\r'){
+//				sb.append((char)intChar);
+//			}
+//			String line = sb.toString();
+
+			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+			String line = reader.readLine();
+			if (line != null && !line.equals("") && line.trim().length() > 0) {
+				return Character.toUpperCase(line.trim().charAt(0)) == 'Y' ||
+					Character.toUpperCase(line.trim().charAt(0)) == 'T' ;
+			}
+			return false;
+		}
+		catch (IOException ex) {
+			throw new RuntimeException("IOException", ex);
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java	(revision 14989)
@@ -0,0 +1,53 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.OutputField;
+
+
+
+/**
+ *
+ * <p>Renders text OutputFields, TextOutputFieldRenderer should provide a no args constructor. </p>
+ * <p>The package name for TextOutputFieldRenderer is critical</p>
+ * BufferedInputStream is used for input to prevent new Buffered reader swallowing more input from the
+ * input stream than is strictly required
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: TextOutputFieldRenderer.java,v 1.4 2006/12/21 00:03:01 teknopaul Exp $
+ */
+public interface TextOutputFieldRenderer {
+	public void setContext(InstallerContext ctx);
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws InstallException, IOException;
+	/**
+	 * Called when validation fails
+	 * @param field InputField
+	 * @param in InputStream
+	 * @param out PrintStream
+	 * @throws IOException
+	 */
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) throws IOException;
+	/** fields have abort for text since each field has its own input line*/
+	public boolean isAbort();
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TextPageRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TextPageRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/TextPageRenderer.java	(revision 14989)
@@ -0,0 +1,101 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.page.TextPage;
+
+
+public class TextPageRenderer
+	extends AbstractTextPageRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+	private static final String nextChar = res.getString("nextChar");
+
+	public TextPageRenderer() {
+	}
+
+	public boolean renderPage(Page page) throws InstallException {
+		if (page instanceof TextPage) {
+			TextPage lPage = (TextPage) page;
+			return renderTextPage(lPage);
+		}
+		else {
+			throw new InstallException("Wrong Renderer in TextPageRenderer.renderPage");
+		}
+	}
+
+	private boolean renderTextPage(TextPage page) throws InstallException {
+		try {
+			BufferedReader commandReader = reader;//new BufferedReader(new InputStreamReader(in));
+
+			String resource = page.getTextResource();
+			InputStream textin = this.getClass().getResourceAsStream(resource);
+			BufferedReader reader = new BufferedReader(new InputStreamReader(textin));
+			printHeader(page);
+			String lineread = null;
+			StringBuffer sb = new StringBuffer();
+
+			while ( (lineread = reader.readLine()) != null) {
+				sb.append(lineread);
+				sb.append('\n');
+			}
+            // as per FindBugs
+            reader.close();
+
+			// parse property references
+			String parsedText = getContext().getInstaller().getResultContainer().getDefaultValue(sb.toString());
+
+			String command = null;
+			Pager pager = new Pager(parsedText);
+			do {
+				if (!pager.next(out)) {
+					break;
+				}
+				out.println();
+				out.println(getNextInstructions());
+				command = commandReader.readLine();
+			}
+			while (command.toUpperCase().startsWith(nextChar));
+			pager.rest(out);
+
+			for (int i = 0; i < PAGE_DECO_WIDTH; i++) {
+				out.print('~');
+			}
+			
+			out.println();
+			out.println(res.getString("clickViewText"));
+			commandReader.readLine();
+			
+			return true;
+		}
+		catch (IOException ex) {
+			throw new InstallException("Not able to read text file", ex);
+		}
+	}
+
+	private String getNextInstructions() {
+		return res.getString("license_next");
+	}
+}
+
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/UnvalidatedTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/UnvalidatedTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/UnvalidatedTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,74 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.UnvalidatedTextInput;
+
+
+public class UnvalidatedTextInputRenderer
+	implements TextOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+
+	protected InstallerContext ctx;
+	public UnvalidatedTextInputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		UnvalidatedTextInput iField = (UnvalidatedTextInput) field;
+		out.print(field.getDisplayText());
+
+		out.print("   [");
+		out.print(res.getString("_default_"));
+		out.print(":");
+		out.print(iField.getDefaultValue());
+		out.print("]");
+
+
+		//BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+		out.println();
+		String input = reader.readLine();
+		out.println();
+		if(input==null || input.equals(""))input=iField.getDefaultValue();
+		iField.setInputResult(input);
+	}
+	public boolean isAbort(){
+		return false;
+	}
+
+
+
+	/**
+	 * renderError
+	 *
+	 * @param field InputField
+	 * @param in InputStream
+	 * @param out PrintStream
+	 */
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) {
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java	(revision 14989)
@@ -0,0 +1,66 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.renderer.text;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.ValidatedTextInput;
+
+
+public class ValidatedTextInputRenderer
+	implements TextOutputFieldRenderer {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+
+	protected InstallerContext ctx;
+	public ValidatedTextInputRenderer() {
+	}
+
+	public void setContext(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
+		ValidatedTextInput iField = (ValidatedTextInput) field;
+		out.print(field.getDisplayText());
+
+		out.print("   [");
+		out.print(res.getString("_default_"));
+		out.print(":");
+		out.print(iField.getDefaultValue());
+		out.println("]");
+
+
+		//BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+		String input = reader.readLine();
+		out.println();
+		if(input==null || input.equals(""))input=iField.getDefaultValue();
+		iField.setInputResult(input);
+	}
+	public void renderError(OutputField field, BufferedReader reader, PrintStream out) throws IOException{
+		//ValidatedTextInput iField = (ValidatedTextInput) field;
+		out.println("The input is not of the correct format");
+		renderOutput(field, reader, out);
+	}
+	public boolean isAbort(){
+		return false;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/package.html
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/package.html	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/text/package.html	(revision 14989)
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head><!--
+  Copyright (c) 2004 tp23
+  All Rights Reserved.
+--></head>
+
+<body bgcolor="white">Renderers for the command line interface.</body>
+</html>
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/AntRunner.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/AntRunner.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/AntRunner.java	(revision 14989)
@@ -0,0 +1,54 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.antmod.RuntimeLauncher;
+import org.tp23.antinstaller.page.Page;
+
+/**
+ * Abstract Runner superclass that handles the runPost(page) to execute
+ * ant tasks mid display.
+ * @author teknopaul
+ */
+public abstract class AntRunner implements Runner{
+
+	private RuntimeLauncher launcher = null;
+	private InstallerContext ctx;
+	
+	public AntRunner(InstallerContext ctx) {
+		this.ctx = ctx;
+	}
+
+	protected void runPost(Page page){
+		String postTarget = page.getPostDisplayTarget();
+		if(postTarget != null){
+			if(launcher == null){
+				prepareLauncher();
+			}
+			launcher.updateProps();
+			launcher.run(postTarget);
+		}
+	}
+	/**
+	 * This should never get run if there are no postTargets
+	 *
+	 */
+	private void prepareLauncher(){
+		launcher = new RuntimeLauncher(ctx);
+		launcher.parseProject();
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/AutoSwingRunner.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/AutoSwingRunner.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/AutoSwingRunner.java	(revision 14989)
@@ -0,0 +1,53 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import java.util.List;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.renderer.swing.SwingPageRenderer;
+/**
+ * Swing runner that starts with the last page bypassing all the other pages.
+ * This will be used during auto builds where the properties are already known.
+ * @author teknopaul
+ *
+ */
+public class AutoSwingRunner extends SwingRunner {
+
+	public AutoSwingRunner(InstallerContext ctx){
+		super(ctx);
+	}
+	protected void showFirstPage() throws Exception {
+		Page[] pages = installer.getPages();
+		// run all postDisplayTargets as if the pages were shown
+		for (int i = 0; i < pages.length; i++) {
+			Page page = pages[i];
+			if(page.getPostDisplayTarget() != null){
+				if( ifHelper.ifProperty(page) && 
+					ifHelper.ifTarget(page, ctx.getInstaller().getPages()) ){ // page would have been shown
+					runPost(page);
+				}
+			}
+		}
+		
+		// shows the LAST page directly which should be the Progress page
+		ctx.setCurrentPage(pages[pages.length - 1]);
+		List pageRenderers = getPageRenderers();
+		renderNext((SwingPageRenderer)pageRenderers.get(pageRenderers.size() - 1));
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/AutoTextRunner.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/AutoTextRunner.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/AutoTextRunner.java	(revision 14989)
@@ -0,0 +1,45 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import java.io.IOException;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.page.Page;
+
+public class AutoTextRunner extends TextRunner {
+	
+	public AutoTextRunner(InstallerContext ctx) throws IOException{
+		super(ctx);
+	}
+
+	public boolean runInstaller() throws InstallException {
+		Page[] pages = installer.getPages();
+		// run all postDisplayTargets as if the pages were shown
+		for (int i = 0; i < pages.length; i++) {
+			Page page = pages[i];
+			if(page.getPostDisplayTarget() != null) {
+				if( ifHelper.ifProperty(page) && 
+				    ifHelper.ifTarget(page, ctx.getInstaller().getPages()) ) { // page would have been shown
+					runPost(page);
+				}
+			}
+		}
+
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/ConfigurationException.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/ConfigurationException.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/ConfigurationException.java	(revision 14989)
@@ -0,0 +1,38 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import org.tp23.antinstaller.InstallException;
+
+
+/**
+ * <p>A Runtime exception that implies the config file is wrong.</p>
+ */
+public class ConfigurationException
+	extends InstallException {
+	public ConfigurationException() {
+		super();
+	}
+
+	public ConfigurationException(String message) {
+		super(message);
+	}
+
+	public ConfigurationException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/ConfigurationLoader.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/ConfigurationLoader.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/ConfigurationLoader.java	(revision 14989)
@@ -0,0 +1,353 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.Installer;
+import org.tp23.antinstaller.PropertiesFileRenderer;
+import org.tp23.antinstaller.input.ConditionalField;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.ResultContainer;
+import org.tp23.antinstaller.input.SelectInput;
+import org.tp23.antinstaller.input.TargetInput;
+import org.tp23.antinstaller.input.TargetSelectInput;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.page.ProgressPage;
+import org.tp23.antinstaller.page.SimpleInputPage;
+import org.tp23.antinstaller.renderer.swing.plaf.LookAndFeelFactory;
+import org.tp23.antinstaller.runtime.exe.LoadConfigFilter;
+import org.tp23.antinstaller.runtime.exe.PropertyLoaderFilter;
+import org.tp23.antinstaller.runtime.logic.ExpressionBuilder;
+/**
+ *
+ * <p>Loads the configuration file into memory as an Installer object. </p>
+ * <p>This class also contains the main() method to check the config files for common errors </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @todo this should be an interface not a class
+ * @author Paul Hinds
+ * @version $Id: ConfigurationLoader.java,v 1.15 2007/01/28 08:44:43 teknopaul Exp $
+ */
+public class ConfigurationLoader extends LoadConfigFilter{
+	
+	/**
+	 * Command line config checker
+	 * @param args String[]
+	 * @throws InstallException 
+	 */
+	public static void main(String[] args) {
+        ConfigurationLoader configurationLoader = new ConfigurationLoader();
+		String configFile = INSTALLER_CONFIG_FILE;
+		if(args.length > 1 && args[1].endsWith(".xml")){
+			configFile = args[1];
+		}
+		int ret = 1;
+		try {
+            configurationLoader.readConfig(new File(args[0]), configFile);
+			ret = configurationLoader.validate();
+            
+			if(ret > 0){
+				System.out.println("VALIDATION FAILED");
+			}
+		}
+		catch (ConfigurationException ex) {
+			ex.printStackTrace();
+			System.exit(ret);
+		}
+		catch (IOException ex) {
+			ex.printStackTrace();
+			System.exit(ret);
+		} catch (InstallException ex) {
+			// probably ifProperty syntax wrong
+			ex.printStackTrace();
+			System.exit(ret);
+		}
+	}
+    
+    /**
+     * This method is not valid until super.readConfig() has been run
+     * @return
+     */
+    public Installer getInstaller(){
+        return installer;
+    }
+	
+	public int validate() throws IOException, ConfigurationException, InstallException{
+		Page[] pages = installer.getPages();
+		boolean foundErrors = false;
+		Set pageNames = new HashSet();
+		Set targets = new HashSet();
+		Set propertyNames = new HashSet();
+		Set pagePropertyNames = null;
+		
+		if(validateInstallerAttributes()){
+			foundErrors = true;
+		}
+		
+		for (int p = 0; p < pages.length; p++) {
+           System.out.println("Checking page: " + pages[p].getName() );
+			if(pageNames.contains(pages[p].getName())){
+				System.out.println("Error: page name '"
+                                    + pages[p].getName()
+                                    + "' repeated - auto loading of configuration will fail");
+				foundErrors = true;
+			}
+			pageNames.add(pages[p].getName());
+			
+			//TODO check page requirements
+			//test ifProperty syntax
+			// TODO passes validation even if nothing will evaluate
+			if (pages[p] instanceof SimpleInputPage) {
+				SimpleInputPage sPage = (SimpleInputPage)pages[p];
+				if(sPage.getIfProperty() != null){
+	                try {
+	                	ResultContainer mock = new ResultContainer();
+	                	ExpressionBuilder.parseLogicalExpressions( mock,
+	                			sPage.getIfProperty() );
+	                }
+	                catch( ConfigurationException configExc ){
+	                	System.out.println("Error: loading ifProperty," + sPage.getIfProperty() + " ,page: " + pages[p].getName() );
+	                	foundErrors = true;   
+	                }
+				}
+            }
+
+			
+			pagePropertyNames = new HashSet();
+			
+			OutputField[] fields = pages[p].getOutputField();
+			for (int f = 0; f < fields.length; f++) {
+				if(!fields[f].validateObject()){
+					foundErrors = true;
+					System.out.println("Error in page:" + pages[p].getName());
+				}
+				if(fields[f] instanceof TargetInput){
+					TargetInput tgtInput = (TargetInput)fields[f];
+					targets.add(tgtInput.getTarget());
+				}
+                if(fields[f] instanceof InputField && !(fields[f] instanceof ConditionalField) ){
+					InputField genericInput = (InputField)fields[f];
+					if(genericInput.getProperty().endsWith(PropertiesFileRenderer.TARGETS_SUFFIX)){
+						System.out.println("Error: invalid property name:" + genericInput.getProperty());
+						System.out.println("InputField names must not end with -targets");
+					}
+					String propertyName = genericInput.getProperty();
+					//System.out.println("Checking page.property: " + pages[p].getName() + "," + propertyName );
+					if(propertyNames.contains(propertyName)){
+						//foundErrors = true;
+						System.out.println("Repeated property name:"  + propertyName);
+						System.out.println("Loading defaults from file will probably not work:"  + propertyName);
+					}
+					else{
+						propertyNames.add(propertyName);
+					}
+					// repeated properties on the same page are an error always
+					if(pagePropertyNames.contains(propertyName)){
+						foundErrors = true;
+						System.out.println("Repeated property name: page=" + 
+								pages[p].getName() + ", property=" + propertyName);
+					}
+					else{
+						pagePropertyNames.add(propertyName);
+					}
+					
+				}
+			}
+			
+		}
+		System.out.println("Finished checking config inputs");
+		// check page structure
+		if(!(pages[pages.length-1] instanceof ProgressPage)){
+			foundErrors = true;
+			System.out.println("Last Page should be a progress page");
+		}
+		else{
+			if (pages[pages.length-1].getPostDisplayTarget() != null){
+				foundErrors = true;
+				System.out.println("Progress pages do not support postDisplayTarget");
+			}
+		}
+		// check for targets
+		int numOfPageTargets = 0;
+		for (int p = 0; p < pages.length; p++) {
+            numOfPageTargets += pages[p].getAllTargets().size();
+		}
+		if(numOfPageTargets == 0){
+			System.out.println("Warning: No Page Targets (not a problem if there are target input types)");
+		}
+		
+		Iterator iter = targets.iterator();
+		while (iter.hasNext()) {
+			String tgt = (String) iter.next();
+			if(tgt.endsWith(PropertiesFileRenderer.TARGETS_SUFFIX)){
+				System.out.println("Error: invalid target name:" + tgt);
+				System.out.println("Target names must not end with -targets");
+				foundErrors = true;
+			}
+		}
+
+		//@todo check targets exist in build.xml remember OSSpecific could be tricky to validate
+		
+		int numOfTargetInputs = 0;
+		// check ifTargets
+		ArrayList targetsSoFar = new ArrayList();
+		for (int p = 0; p < pages.length; p++) {
+			if(pages[p] instanceof SimpleInputPage){
+				SimpleInputPage simple = (SimpleInputPage)pages[p];
+				String ifTarget = simple.getIfTarget();
+				if(ifTarget != null && !targetsSoFar.contains(ifTarget)){
+					System.out.println("ifTarget=" + ifTarget);
+					System.out.println("ifTarget will never test true, no prior target in page:"+pages[p].getName());
+					// disabled due to bug 1412658 could be reinstated with proper test and OSSpecific handling 
+					//foundErrors = true;
+				}
+			}
+			// add after to ensure testing previous pages
+			targetsSoFar.addAll(pages[p].getAllTargets());
+			OutputField[] fields = pages[p].getOutputField();
+			for (int f = 0; f < fields.length; f++) {
+				if(fields[f] instanceof TargetInput){
+					if(numOfTargetInputs == 0){
+						System.out.println("Found target input type");
+					}
+                    numOfTargetInputs++;
+					TargetInput ti = (TargetInput)fields[f];
+					targetsSoFar.add(ti.getTarget());
+				}
+				if(fields[f] instanceof TargetSelectInput){
+					if(numOfTargetInputs == 0){
+						System.out.println("Found target input type");
+					}
+                    numOfTargetInputs++;
+					TargetSelectInput ti = (TargetSelectInput)fields[f];
+					SelectInput.Option[] options = ti.getOptions();
+					for (int i = 0; i < options.length; i++) {
+						SelectInput.Option option = options[i];
+						targetsSoFar.add(option.value);
+					}
+				}
+			}
+		}
+		if(numOfPageTargets == 0 && numOfTargetInputs == 0){
+			System.out.println("Warning: No targets found, installer may do nothing.");
+		}
+//		if(targetsSoFar.contains("default")){
+//			System.out.println("Target:target can not be \"default\"");
+//			foundErrors = true;
+//		}
+
+
+		System.out.println("Finished checking config");
+		if(!foundErrors){
+			return 0;
+		}
+		return 1;
+	}
+
+	private boolean validateInstallerAttributes(){
+        
+        System.out.println("Checking installer: " + installer.getName() );
+		boolean foundErrors = false;
+		
+		String[] validBooleanValues = {"true", "false"};
+		foundErrors |= validateValue("antialiased", installer.getAntialiased(), true, validBooleanValues);
+
+		// done in DTD
+		//foundErrors |= validateValue("verbose", installer.isVerbose(), true, validBooleanValues);
+		//foundErrors |= validateValue("debug", installer.isDebug(), true, validBooleanValues);
+		
+		String[] validLAFValues = {LookAndFeelFactory.DEFAULT_LAF,
+				LookAndFeelFactory.GREYMETAL_LAF,
+				LookAndFeelFactory.NATIVE_LAF,
+				LookAndFeelFactory.JGOODIES_LAF,
+				LookAndFeelFactory.NULL_LAF };
+		if( validateValue("lookAndFeel", installer.getLookAndFeel(), true, validLAFValues) ){
+			System.out.println("Warning: non standard LookAndFeel ensure the correct classes are on the classpath at runtime:" + installer.getLookAndFeel());
+		}
+		
+		if (installer.getName() == null){
+			System.out.println("Error: installer element attribute does not exist: name");
+			foundErrors = true;
+		}
+		
+		try {
+			String wide = installer.getWide();
+			if(wide != null){
+				installer.parseWideValue(wide);
+			}
+		} catch (Exception e) {
+			System.out.println("Error: installer element attribute incorrect format (e.g. 600:275): wide");
+			foundErrors = true;
+		}
+		
+		String[] validLoadDefaultValues = {PropertyLoaderFilter.FALSE,
+                PropertyLoaderFilter.LOAD,
+                PropertyLoaderFilter.PROMPT, 
+                PropertyLoaderFilter.PROMPT_AUTO};
+        
+        boolean loadDefaultsNull = true;
+        if( installer.supportsAutoBuild() ){
+            loadDefaultsNull = false;
+        }
+		foundErrors |= validateValue("loadDefaults", installer.getLoadDefaults(), loadDefaultsNull, validLoadDefaultValues);
+
+        VersionHelper vHelper = new VersionHelper();
+        if( installer.supportsAutoBuild() ){
+            if( ! vHelper.isValid(installer.getVersion()) ){
+                System.out.println("Error: invalid version attribute, required for -auto builds:" + installer.getVersion());
+                foundErrors = true;
+            }
+        }
+        if(installer.getVersion() != null){
+            if( ! vHelper.isValid(installer.getVersion()) ){
+                System.out.println("Error: invalid version attribute format examples 1.2.0 , 0.2beta:" + installer.getVersion());
+                foundErrors = true;
+            }
+        }
+        
+		return foundErrors;
+	}
+	/**
+	 * @return foundErrors  (true if there was an error)
+	 */
+	private boolean validateValue(String att, String value, boolean allowsNull, String[] validValues){
+		if(value == null){
+			if(!allowsNull){
+				System.out.println("Error: installer element attribute does not exist: " + att);
+				return true;
+			}
+			return false;
+		}
+		else {
+			for (int i = 0; i < validValues.length; i++) {
+				if(validValues[i].equals(value)){
+					return false;
+				}
+			}
+			System.out.println("Error: installer element attribute not valid value: " + att);
+			return true;
+		}
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/ExecInstall.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/ExecInstall.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/ExecInstall.java	(revision 14989)
@@ -0,0 +1,266 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import java.io.File;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.renderer.MessageRenderer;
+import org.tp23.antinstaller.runtime.exe.ExecuteFilter;
+import org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter;
+import org.tp23.antinstaller.runtime.exe.FilterChain;
+import org.tp23.antinstaller.runtime.exe.FilterFactory;
+import org.tp23.antinstaller.runtime.exe.FinalizerFilter;
+import org.tp23.antinstaller.selfextract.SelfExtractor;
+
+
+
+/**
+ * This is the Applications entry point, it has a main method to run the
+ * installer. The main method is only for scripted installs.
+ * 
+ * It is here that the command line options are parsed and it
+ * is determined which type of install (swing or text) will be run.
+ * <p>Reads the config, determines the runner, runs it and outputs the
+ * properties file,  The Ant targets are then called by the AntRunner.
+ * This class also builds the internal Objects from the XML config file.</p>
+ * <p>This class can also be called by external tools to launch the installer
+ * currently two options are provided to lauch from Jars. </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: ExecInstall.java,v 1.9 2007/01/19 00:24:36 teknopaul Exp $
+ */
+public class ExecInstall {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+	public static final String CONFIG_RESOURCE = "/org/tp23/antinstaller/runtime/exe/script.fconfig";
+	
+	private final InstallerContext ctx = new InstallerContext();
+	private FilterChain chain;
+	/**
+	 * @param chain chain of filters to be executed
+	 */
+	public ExecInstall(FilterChain chain){
+		this.chain = chain;
+	}
+
+
+
+	/**
+	 * Execute the installer, this reads the config fetches a runner and runs the install.
+	 * Once the install pages have finished an AntRunner is used to run Ant
+	 */
+	public void exec() {
+	
+		ExecuteFilter[] filters = null;
+		try {
+			chain.init(ctx);
+			filters = chain.getFilters();
+		}
+		catch (Exception e) {
+			// This is a developer error or the package has not been built correctly
+			// It should never happen in a tested build
+			e.printStackTrace();
+			System.exit(1); // called manually since in Win it was not shutting down properly
+		}
+loop:	for (int i = 0; i < filters.length; i++) {
+			try{
+				ctx.log("Filter: " + filters[i].getClass().getName());
+				filters[i].exec(ctx);
+			}
+			catch (ExecuteRunnerFilter.AbortException abort){
+				MessageRenderer vLogger = ctx.getMessageRenderer();
+				vLogger.printMessage(abort.getMessage());
+				ctx.log("Aborted");
+				FinalizerFilter ff = (FinalizerFilter)filters[filters.length - 1];
+				ff.exec(ctx);
+				System.exit(1);
+			}
+			catch (Exception ex) {
+
+				// write errors to the log
+				ctx.log("Installation error: " + ex.getMessage() + ": " + ex.getClass().toString());
+				boolean verbose = true; // be verbose if we cant load the config
+				if(ctx.getInstaller() != null) {
+					verbose =  ctx.getInstaller().isVerbose();
+				}
+				ctx.log(verbose, ex);
+
+				// write detailed errors to stdout for the GUI screens and text
+				if (ctx.getRunner() instanceof TextRunner) {
+					if(verbose){
+                        ex.printStackTrace();
+                    }
+				}
+				else {
+					if(verbose){
+                        ex.printStackTrace(System.err);
+                    }
+				}
+				
+				// report the error to the user
+				MessageRenderer vLogger = ctx.getMessageRenderer();
+				if(vLogger != null){
+					vLogger.printMessage(res.getString("installationFailed") + "\n" + ex.getMessage());
+					//Fixed BUG:1295944 vLogger.printMessage("Install failed\n" + ex.getMessage());
+				} else {
+					System.err.println(res.getString("installationFailed") + ex.getClass().getName());
+					System.err.println(ex.getMessage());
+				}
+
+				if(ctx.getRunner() != null){
+					ctx.getRunner().fatalError();
+					break loop;
+				}
+				else {  // the screens did not even start e.g. XML config error
+					System.exit(1);
+				}
+			}
+		}
+
+	}
+
+
+
+
+
+	/**
+	 * <p>Runs the installer from a script.</p>
+	 * 
+	 * This install can be run from a set of files for example from a CD.
+	 * @see org.tp23.antinstaller.selfextract.NonExtractor
+	 * @see org.tp23.antinstaller.selfextract.SelfExtractor
+	 * 
+	 * @param args String[]  args are "default" or "swing" or "text" followed by the root directory of the install
+	 */
+	public static void main(String[] args) {
+		try {
+			FilterChain chain = FilterFactory.factory(CONFIG_RESOURCE);		
+			ExecInstall installExec = new ExecInstall(chain);
+			if(installExec.parseArgs(args, true)){
+				installExec.exec();
+			}
+		}
+		catch (InstallException e) {
+            // Installer developer error
+			System.out.println("Cant load filter chain:/org/tp23/antinstaller/runtime/exe/script.fconfig");
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * This method has been designed for backward compatibility with
+	 * existing scripts.  The root dir is passed on the command line for scripted
+	 * installs but is determined automatically for installs from self-extracting Jars
+	 * @param args
+	 * @param requiresRootDir set to true if the args must include the root directory
+	 */
+	public boolean parseArgs(String[] args, boolean requiresRootDir){
+		String uiOverride = null;
+		String installType = null;
+		String installRoot = null;
+		
+		int i = 0;
+		if(args.length > i && !args[i].startsWith("-")) {
+			uiOverride = args[i];
+			i++;
+			ctx.setUIOverride(uiOverride);
+		}
+		
+		if(requiresRootDir){
+			if(args.length > i && !args[i].startsWith("-")) {
+				installRoot = args[i];
+				i++;
+				ctx.setFileRoot(new File(installRoot));
+			}
+			else{
+				printUsage();
+				return false;
+			}
+		}
+		// additional params should all have a -something prefix
+		for (; i < args.length; i++) {
+			// RFE 1569628
+			if("-type".equals(args[i]) && args.length > i + 1){
+				installType = args[i + 1];
+				i++;
+				String configFileName = "antinstall-config-" + installType + ".xml";
+				String buildFileName = "build-" + installType + ".xml";
+				ctx.setInstallerConfigFile(configFileName);
+				ctx.setAntBuildFile(buildFileName);
+			}
+		}
+		
+		return true;
+	}
+
+	private static void printUsage(){
+		System.out.println("Usage java -cp $CLASSPATH org.tp23.antinstaller.ExecInstall [text|swing|default] [install root] (-type [buildtype])");
+	}
+
+
+	/**
+	 * Sets the UI override from the command line
+	 * @param installRoot
+	 */
+//	public void setUIOverride(String override) {
+//		ctx.setUIOverride(override);
+//	}
+	/**
+	 * This is generated by the Main class which knows where it has
+	 * extracted or where it has run from
+	 * @param installRoot
+	 */
+	public void setInstallRoot(File installRoot) {
+		ctx.setFileRoot(installRoot);
+	}
+
+	/**
+	 * This is AntInstalls temporary space which will generally be deleted
+	 * except in debug mode when it is left to view the build process.
+	 * installRoot and tempRoot can be the same if the directory
+	 * is a new empty directory
+	 * @param tempDir directory to be used for temporary storage
+	 */
+	public void setTempRoot(File tempDir) {
+		addShutdownHook(tempDir);
+	}
+	/**
+	 * This shutdown hook is to facilitate debugging the app can be left open
+	 * in the GUI view and the resources will not be deleted.  Upon exit
+	 * temporary files will be removed.  This is required because the 
+	 * deleteOnExit() method fails if the directory is filled with files.
+	 * @param tempDir
+	 */
+	private void addShutdownHook(final File tempDir){
+		Runnable hook = new Runnable(){
+			public void run(){
+				if(ctx.getInstaller() != null &&
+				   ctx.getInstaller().isDebug()) return;
+				if(tempDir != null && tempDir.exists() && tempDir.isDirectory()){
+					SelfExtractor.deleteRecursive(tempDir);
+				}
+			}
+		};
+		Thread cleanUp = new Thread(hook);
+        cleanUp.setDaemon(true);
+        Runtime.getRuntime().addShutdownHook(cleanUp);
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/IfPropertyHelper.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/IfPropertyHelper.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/IfPropertyHelper.java	(revision 14989)
@@ -0,0 +1,89 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.page.SimpleInputPage;
+import org.tp23.antinstaller.runtime.logic.Expression;
+import org.tp23.antinstaller.runtime.logic.ExpressionBuilder;
+
+
+/**
+ * <p>Encapsulates code fo the ifProperty feature</p>
+ * N.B.  It is the installer generator's responsibility to ensure that properties passed
+ * to the less than or greater than test are valid Numbers.
+ * The internal Java format used is a Double so avalid regex would be
+ * something like [0-9]+\.*[0-9]*  or [0-9]+ for an Integer.
+ * The rather strange -=  and += syntax is used because &gt; and &lt;
+ * must be escaped to &amp;gt; and &amp;lt; in XML attributes and the legibility
+ * of the configuration files would be impared.
+ * REF: 1145496
+ * @author Paul Hinds
+ * @version $Id: IfPropertyHelper.java,v 1.5 2007/01/19 00:24:36 teknopaul Exp $
+ */
+public class IfPropertyHelper {
+	
+	private InstallerContext ctx = null;
+	public IfPropertyHelper(InstallerContext ctx){
+		this.ctx = ctx;
+	}
+
+	/**
+	 * @return boolean true to SHOW the page
+	 */
+	public boolean ifProperty(Page next) throws InstallException {
+		// show page if ifProperty is specified and property is correct
+		if(next instanceof SimpleInputPage) {
+			SimpleInputPage conditionalPage = (SimpleInputPage) next;
+			String ifProperty = conditionalPage.getIfProperty();
+			if (ifProperty != null) {
+                Expression expression;
+                try {
+                    expression = ExpressionBuilder.parseLogicalExpressions( ctx.getInstaller().getResultContainer(),
+                                                                                   ifProperty );
+                }
+                catch( ConfigurationException configExc ) {
+                    throw new InstallException( "Error parsing ifProperty condition for page " + next.getName(),
+                                                configExc );    
+                }
+                return expression.evaluate();
+            }
+
+        }
+		return true; // show the page by default
+	}
+	
+	/**
+	 * @return boolean true to SHOW the page
+	 */
+	public boolean ifTarget(Page next, Page[] pages){
+		// skip iftarget specified and target is missing
+		if(next instanceof SimpleInputPage){
+			SimpleInputPage conditionalPage = (SimpleInputPage) next;
+			String ifTarget = conditionalPage.getIfTarget();
+			if (ifTarget != null) {
+				boolean show = false;
+				for (int p = 0; p < pages.length; p++) {
+					show |= pages[p].isTarget(ifTarget);
+				}
+				return show;
+			}
+		}
+		return true;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/Logger.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/Logger.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/Logger.java	(revision 14989)
@@ -0,0 +1,44 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import java.io.IOException;
+
+import org.tp23.antinstaller.Installer;
+
+public interface Logger {
+
+	public void log(String message);
+
+	public void log(Throwable exception);
+
+    /**
+     * Logs the stack trace only if the installer is in verbose mode
+     * @param installer
+     * @param exception
+     */
+    public void log(Installer installer, Throwable exception);
+
+	public void setFileName(String fileName) throws IOException;
+
+    /**
+     * Get the name of the file used for logging
+     * @return path to file or <code>null</code> if not initialised
+     */
+    public String getFileName();
+
+    public void close();
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/Runner.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/Runner.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/Runner.java	(revision 14989)
@@ -0,0 +1,56 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import org.tp23.antinstaller.InstallException;
+
+
+
+/**
+ *
+ * <p>A Runner runs the user interaction screens, not ant.
+ * The base interface for TextRunner and SwingRunner </p>
+ * <p>Instances of this interface should have a constructor that takes
+ * an InstallerContext as an argument</p>
+ * Due to historic bad naming convention there exists an AntRunner which has
+ * no connection to this interface. 
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: Runner.java,v 1.2 2006/03/24 18:27:28 teknopaul Exp $
+ */
+
+public interface Runner {
+
+	/**
+	 * Renders the installer screens.  This method should block until
+	 * the UI has finished
+	 * @throws InstallException
+	 * @return boolean false implies user aborted
+	 */
+	public boolean runInstaller() throws InstallException;
+
+	/**
+	 * Called after Ant has finished so the Runner can clean up or provide feedback
+	 */
+	public void antFinished();
+
+	/**
+	 * Called if the install failed for some reason and can not continue;
+	 *
+	 */
+	public void fatalError();
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/SimpleLogger.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/SimpleLogger.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/SimpleLogger.java	(revision 14989)
@@ -0,0 +1,120 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import org.tp23.antinstaller.Installer;
+
+/**
+ * A Logger class that does not report errors
+ * 
+ * @author Paul Hinds
+ * @version $Id: SimpleLogger.java,v 1.4 2007/01/19 00:24:36 teknopaul Exp $
+ */
+public class SimpleLogger implements Logger {
+
+    BufferedWriter fos;
+
+    private String fileName;
+
+    public SimpleLogger() {
+    }
+
+    /**
+     * This method initialises the logger
+     */
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+        try {
+            fos = new BufferedWriter(new FileWriter(fileName, false));
+            fos.write("Logger initialized");
+            fos.newLine();
+        } catch (IOException e) {
+            fos = null;
+        }
+    }
+
+    public String getFileName() {
+        return fileName;
+    }
+
+    public void log(String message) {
+        if (fos == null) {
+            return;
+        }
+        try {
+            fos.write(message);
+            fos.newLine();
+            fos.flush();
+        } catch (Exception ex) {
+            throw new RuntimeException("Can not write to logs");
+        }
+    }
+
+    public void log(Installer installer, Throwable exception) {
+        if (installer != null && installer.isVerbose()) {
+            log(exception);
+        }
+    }
+
+    public void log(Throwable exception) {
+        if (fos == null) {
+            return;
+        }
+        try {
+            StringWriter writer = new StringWriter();
+            exception.printStackTrace(new PrintWriter(writer));
+            String s = writer.getBuffer().toString();
+            fos.write(s);
+            fos.newLine();
+        } catch (IOException ex) {
+            throw new RuntimeException("Can not write to logs");
+        }
+    }
+
+    public void close() {
+        try {
+            if (fos != null) {
+                fos.flush();
+                fos.close();
+                fos = null;
+            }
+        } catch (IOException e) {
+            System.err.println("Can't close logger");
+        }
+    }
+
+    /**
+     * Called by the garbage collector on an object when garbage collection
+     * determines that there are no more references to the object.
+     * 
+     * @throws Throwable
+     *             the <code>Exception</code> raised by this method
+     * @todo Implement this java.lang.Object method
+     */
+    protected void finalize() throws Throwable {
+        if (fos != null) {
+            fos.flush();
+            fos.close();
+        }
+    }
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/SwingRunner.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/SwingRunner.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/SwingRunner.java	(revision 14989)
@@ -0,0 +1,387 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import java.awt.GraphicsConfiguration;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ResourceBundle;
+
+import javax.swing.ImageIcon;
+import javax.swing.JFrame;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.Installer;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ValidationException;
+import org.tp23.antinstaller.antmod.FeedbackListener;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.renderer.AntOutputRenderer;
+import org.tp23.antinstaller.renderer.RendererFactory;
+import org.tp23.antinstaller.renderer.swing.PageCompletionListener;
+import org.tp23.antinstaller.renderer.swing.SizeConstants;
+import org.tp23.antinstaller.renderer.swing.SwingInstallerContext;
+import org.tp23.antinstaller.renderer.swing.SwingMessageRenderer;
+import org.tp23.antinstaller.renderer.swing.SwingPageRenderer;
+
+/**
+ * <p>Runs the installer in a JFrame window </p>
+ * <p>This class uses the Installer object tree as its data source and renderers
+ * from the org.tp23.antinstaller.renderer.swing package </p>
+ * Runners must also create a MessageRenderer and make it available in the
+ * InstallerContext
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ *
+ * @author Paul Hinds
+ * @version $Id: SwingRunner.java,v 1.11 2007/01/19 00:24:36 teknopaul Exp $
+ */
+public class SwingRunner extends AntRunner implements Runner, PageCompletionListener {
+
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+
+	protected SwingInstallerContext swingCtx = null;
+	private JFrame frame = new JFrame();
+	private List pageRenderers;
+	private volatile boolean doAnt = false;
+	protected Thread initialThread;
+	protected IfPropertyHelper ifHelper;
+	// context local property refs
+	protected InstallerContext ctx;
+	protected Logger logger;
+	protected Installer installer;
+
+	public SwingRunner(InstallerContext ctx) {
+		super(ctx);
+		swingCtx = new SwingInstallerContext(ctx, frame);
+
+		SwingMessageRenderer smr = new SwingMessageRenderer();
+		smr.setOwner(frame);
+		ctx.setMessageRenderer(smr);
+
+		ctx.setBuildListener(new FeedbackListener(swingCtx));
+
+		ifHelper = new IfPropertyHelper(ctx);
+		logger = ctx.getLogger();
+		installer = ctx.getInstaller();
+		this.ctx = ctx;
+	}
+
+	/**
+	 * Renders the installer in a Swing GUI, this method blocks until
+	 * the UI has finished
+	 *
+	 * @return boolean false implies user aborted
+	 * @throws InstallException
+	 */
+	public boolean runInstaller() throws InstallException {
+		try {
+			frame.setTitle(installer.getName());
+			frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+			frame.setSize(SizeConstants.PAGE_WIDTH, SizeConstants.PAGE_HEIGHT);
+			frame.getRootPane().setDoubleBuffered(true);
+			setLocation(frame);
+			setIcon(frame, installer);
+
+			preparePages(installer.getPages(), ctx);
+			showFirstPage();
+			// need to  block here until pages are complete
+			initialThread = Thread.currentThread();
+			try {
+				Thread.sleep(Long.MAX_VALUE);
+			}
+			catch (InterruptedException ex1) {
+
+			}
+			return doAnt;
+		}
+		catch (Exception ex) {
+			logger.log("Fatal exception: " + ex.getMessage());
+			if (ctx.getInstaller().isVerbose()) {
+				logger.log(ex);
+			}
+			ctx.getMessageRenderer().printMessage("Fatal exception: " + ex.getMessage());
+			throw new InstallException("", ex);
+		}
+	}
+
+	public void pageBack(Page page) {
+		if (page.isAbort()) {
+			abort();
+			return;
+		}
+		Page[] pages = installer.getPages();
+		for (int i = 0; i < pages.length; i++) {
+			if (pages[i] == page) {
+				// found current page
+				if (i > 0) {
+
+					//skip pages if the ifTarget or ifProperty attributes exist and fail
+					int nextIdx = i - 1;
+					try {
+						while (true) {
+							if (!ifHelper.ifTarget(pages[nextIdx], pages) ||
+									!ifHelper.ifProperty(pages[nextIdx])) {
+								//Continue looping
+								--nextIdx;
+							} else {
+								break;
+							}
+						}
+					}
+					catch (InstallException instExc) {
+						logger.log("InstallException rendering page:" + page.getName());
+						logger.log(installer, instExc);
+					}
+
+					//for(;ifTargetSkip(pages[nextIdx], pages);nextIdx--);
+
+					SwingPageRenderer renderer = (SwingPageRenderer) pageRenderers.get(nextIdx);
+					ctx.setCurrentPage(pages[nextIdx]);
+					try {
+						renderNext(renderer);
+					}
+					catch (InstallException ex) {
+						logger.log("InstallExcepiton rendering page:" + page.getName());
+						logger.log(installer, ex);
+					}
+					catch (ClassNotFoundException ex) {
+						logger.log("ClassNotFoundException rendering page:" + page.getName());
+						logger.log(installer, ex);
+					}
+					return;
+				}
+			}
+		}
+	}
+
+	/**
+	 * Called when a page is complete and the next button is pressed.
+	 * This method is called by the event thread that looses exceptions so Throwable
+	 * is caught
+	 *
+	 * @param page Page
+	 */
+	public void pageComplete(Page page) {
+		try {
+			if (page.isAbort()) {
+				abort();
+				return;
+			}
+			runPost(page);
+			Page[] pages = installer.getPages();
+			SwingPageRenderer currentRenderer;
+			for (int i = 0; i < pages.length; i++) {
+				if (pages[i] == page) { // found current page
+					currentRenderer = (SwingPageRenderer) pageRenderers.get(i);
+					// check validation
+					boolean validationPassed = false;
+					try {
+						currentRenderer.updateInputFields();
+						validationPassed = currentRenderer.validateFields();
+					} catch (ValidationException ve) {
+						logger.log("ValidationException rendering page:" + page.getName());
+						logger.log(installer, ve);
+						return;
+					}
+					if (!validationPassed) {
+						return;
+					}
+
+
+					if (i < pages.length - 1) {
+
+						//more pages left
+
+						// skip the page if the ifTarget or ifProperty dictate it
+						int nextIdx = i + 1;
+						while (true) {
+							if (!ifHelper.ifTarget(pages[nextIdx], pages) ||
+									!ifHelper.ifProperty(pages[nextIdx])) {
+								//Continue looping
+								nextIdx++;
+							} else {
+								break;
+							}
+						}
+
+
+						SwingPageRenderer renderer = (SwingPageRenderer) pageRenderers.get(nextIdx);
+						ctx.setCurrentPage(pages[nextIdx]);
+						try {
+							renderNext(renderer);
+						}
+						catch (InstallException ex) {
+							logger.log("InstallException rendering page:" + page.getName());
+							logger.log(installer, ex);
+						}
+						catch (ClassNotFoundException ex) {
+							logger.log("ClassNotFoundException rendering page:" + page.getName());
+							logger.log(installer, ex);
+						}
+						return;
+					}
+					if (i == pages.length - 1) {
+						// all done
+						currentRenderer.getBackButton().setEnabled(false);
+						currentRenderer.getNextButton().setEnabled(false);
+						currentRenderer.getFinishButton().setEnabled(false);
+						doAnt = true;
+						initialThread.interrupt();
+						return;
+					}
+				}
+			}
+		}
+		catch (Throwable e) {
+			ctx.log("Throwable during page completion:" + e.getMessage());
+			if (ctx.getInstaller().isVerbose()) {
+				ctx.log(e);
+			}
+		}
+	}
+
+	protected void showFirstPage() throws Exception {
+		ctx.setCurrentPage(installer.getPages()[0]);
+		renderNext((SwingPageRenderer) pageRenderers.get(0));
+	}
+
+
+	private void preparePages(Page[] pages, InstallerContext ctx) throws Exception {
+		pageRenderers = new ArrayList();
+		for (int i = 0; i < pages.length; i++) {
+			SwingPageRenderer renderer = RendererFactory.getSwingPageRenderer(pages[i]);
+			if (i == 0) {
+				renderer.getBackButton().setEnabled(false);
+			}
+			renderer.setContext(swingCtx);
+			renderer.setPageCompletionListener(this);
+			renderer.setPage(pages[i]);
+			renderer.instanceInit();
+			pageRenderers.add(renderer);
+			if (renderer instanceof AntOutputRenderer) {
+				ctx.setAntOutputRenderer((AntOutputRenderer) renderer);
+			}
+		}
+	}
+
+	protected void renderNext(SwingPageRenderer renderer) throws ClassNotFoundException, InstallException {
+		renderer.updateDefaultValues();
+		frame.getContentPane().removeAll();
+		frame.getContentPane().add(renderer);
+		frame.getContentPane().repaint();
+		frame.show();
+		if (renderer.getNextButton().isEnabled()) {
+			renderer.getNextButton().requestFocus();
+		} else if (renderer.getFinishButton().isEnabled()) {
+			renderer.getFinishButton().requestFocus();
+		}
+	}
+
+	private void setLocation(JFrame frame) {
+		GraphicsConfiguration config = frame.getGraphicsConfiguration();
+		int x = (int) config.getBounds().getCenterX() - (SizeConstants.PAGE_WIDTH / 2);
+		int y = (int) config.getBounds().getCenterY() - (SizeConstants.PAGE_HEIGHT / 2);
+		frame.setLocation(x, y);
+		frame.setResizable(false);
+	}
+
+	private void setIcon(JFrame frame, Installer installer) {
+		String iconResource = installer.getWindowIcon();
+		try {
+			if (iconResource == null) {
+				return;
+			}
+			InputStream in = this.getClass().getResourceAsStream(iconResource);
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			byte[] buffer = new byte[256];
+			int read = 0; // The number of bytes read from the stream
+			for (read = in.read(buffer); read != -1; read = in.read(buffer)) {
+				baos.write(buffer, 0, read);
+			}
+			ImageIcon icon = new ImageIcon(baos.toByteArray());
+			//Image icon = Toolkit.getDefaultToolkit().createImage(baos.toByteArray());
+			frame.setIconImage(icon.getImage());
+		}
+		catch (Exception ex) {
+			// we can live with out an icon
+			logger.log("Can not load icon resource: " + iconResource);
+			logger.log(installer, ex);
+		}
+	}
+
+	public void antFinished() {
+		SwingPageRenderer renderer = (SwingPageRenderer) pageRenderers.get(pageRenderers.size() - 1);
+		renderer.getBackButton().setEnabled(false);
+		renderer.getNextButton().setEnabled(false);
+		renderer.getCancelButton().setEnabled(false);
+		renderer.getFinishButton().setText(res.getString("exit"));
+		renderer.getFinishButton().setEnabled(true);
+		renderer.getFinishButton().requestFocus();
+		renderer.getTitleLabel().setText(res.getString("complete"));
+		ctx.getAntOutputRenderer().getErr().flush();
+		ctx.getAntOutputRenderer().getOut().flush();
+		ctx.getMessageRenderer().printMessage(res.getString("finished"));
+	}
+
+	public void fatalError() {
+		List renderers = getPageRenderers();
+		if ((renderers != null) && (renderers.size() > 0)) {
+			SwingPageRenderer renderer = (SwingPageRenderer) renderers.get(renderers.size() - 1);
+			renderer.getBackButton().setEnabled(false);
+			renderer.getNextButton().setEnabled(false);
+			renderer.getCancelButton().setEnabled(false);
+			renderer.getFinishButton().setText(res.getString("exit"));
+			renderer.getFinishButton().setEnabled(true);
+			renderer.getFinishButton().requestFocus();
+			renderer.getTitleLabel().setText(res.getString("failed"));
+		}
+		// else - we're done here, or should we call abort()?
+	}
+
+	/**
+	 * Returns a string representation of the object.
+	 *
+	 * @return a string representation of the object.
+	 */
+	public String toString() {
+		return "SwingRunner";
+	}
+
+	private void abort() {
+		this.doAnt = false;
+		initialThread.interrupt();
+	}
+
+	/**
+	 * @return Returns the frame.
+	 */
+	public JFrame getFrame() {
+		return frame;
+	}
+
+	/**
+	 * This method is only valid after the PageRenderers have been generated
+	 *
+	 * @return Returns the pageRenderers.
+	 */
+	public List getPageRenderers() {
+		return pageRenderers;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/TextRunner.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/TextRunner.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/TextRunner.java	(revision 14989)
@@ -0,0 +1,143 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintStream;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.Installer;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.page.SimpleInputPage;
+import org.tp23.antinstaller.renderer.AntOutputRenderer;
+import org.tp23.antinstaller.renderer.RendererFactory;
+import org.tp23.antinstaller.renderer.text.AbstractTextPageRenderer;
+import org.tp23.antinstaller.renderer.text.TextMessageRenderer;
+
+
+
+/**
+ *
+ * <p>Runs the installer from the text only command line (console) </p>
+ * <p>This class uses the Installer object tree as its data source and renderers
+ * from the org.tp23.antinstaller.renderer.text package </p>
+ * <p>Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: TextRunner.java,v 1.10 2007/01/19 00:24:36 teknopaul Exp $
+ */
+public class TextRunner extends AntRunner 
+	implements Runner {
+	
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+	protected final InstallerContext ctx;
+	protected final Installer installer;
+	private final Logger logger;
+	protected final IfPropertyHelper ifHelper;
+
+	public TextRunner(InstallerContext ctx) throws IOException {
+		super(ctx);
+		this.ctx = ctx;
+		this.installer = ctx.getInstaller();
+		this.logger = ctx.getLogger();
+		ctx.setMessageRenderer(new TextMessageRenderer());
+		ctx.setAntOutputRenderer(new AntOutputRenderer(){
+			public PrintStream getErr() {
+				return System.err;
+			}
+			public PrintStream getOut() {
+				return System.out;
+			}
+
+		});
+		this.ifHelper = new IfPropertyHelper(ctx);
+	}
+
+	/**
+	 * Renders the installer on the command line, this method blocks until
+	 * the UI has finished
+	 * @throws InstallException
+	 * @return boolean false implies the install was aborted
+	 */
+	public boolean runInstaller() throws InstallException {
+		try {
+			return renderPages(installer.getPages());
+		}
+		catch (Exception ex) {
+			logger.log("FATAL exception during installation:"+ex.getMessage());
+            logger.log(installer, ex);
+			
+			ctx.getMessageRenderer().printMessage(res.getString("installationFailed") + ":" + ex.getMessage());
+			//Fixed BUG: ctx.getMessageRenderer().printMessage("Installation failed:"+ex.getMessage());
+			throw new InstallException("Installation failed", ex);
+		}
+	}
+
+
+	private boolean renderPages(Page[] pages) throws ClassNotFoundException, InstallException{
+		Page next = null;
+		for (int i = 0; i < pages.length; i++) {
+			next = pages[i];
+
+			if(next instanceof SimpleInputPage){
+				// skip iftarget specified and missing
+				if(!ifHelper.ifTarget(next, pages))continue;
+				// skip page if ifProperty is specified and property is missing
+				if(!ifHelper.ifProperty(next))continue;
+			}
+
+			AbstractTextPageRenderer renderer = RendererFactory.getTextPageRenderer(next);
+			renderer.setContext(ctx);
+			renderer.init( new BufferedReader(new InputStreamReader(System.in)), System.out);
+			ctx.setCurrentPage(next);
+			renderer.renderPage(next);
+			if (next.isAbort()){
+				return false;
+			}
+			runPost(next);
+		}
+		return true;
+	}
+    public InstallerContext getInstallerContext() {
+		return ctx;
+    }
+
+
+
+	/**
+	 * Called when Ant has finished its work
+	 */
+	public void antFinished() {
+		System.out.println(res.getString("finished"));
+		//System.exit(0);
+	}
+	/**
+	 * Called is Ant failed to install correctly
+	 */
+	public void fatalError(){
+		System.out.println(res.getString("failed"));
+		//System.exit(1);
+	}
+
+	public String toString() {
+		return "TextRunner";
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/VersionHelper.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/VersionHelper.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/VersionHelper.java	(revision 14989)
@@ -0,0 +1,234 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime;
+
+import java.util.StringTokenizer;
+
+/**
+ * Version helper accepts version numbers of the following format.
+ * [major][clause].[minor][clause].[minor][clause].... ad infinitum
+ * 
+ * If the Java flag is set to true an attempt is made to parse the string as if it were
+ * returned by System.getProperty("java.version");
+ * Since pre 1.3.1 the system is not parsable the default is to accept the string
+ * if there is a format error.
+ * 
+ * For the non java syntax getting the string wrong will result in failed tests
+ * @author teknopaul
+ *
+ */
+public class VersionHelper {
+    
+    public static final String CLAUSE_ALPHA = "alpha";
+    public static final String CLAUSE_BETA = "beta";
+    public static final String CLAUSE_GAMMA = "gamma";
+    public static final String CLAUSE_JAVA_BETA = "ea";
+
+    public boolean equalOrHigher(final String test, final String version) {
+        return equalOrHigher(test, version, false);
+    }
+
+    public boolean majorVersionCompatible(final String test, final String version) {
+        return getMajorVersion(test) == getMajorVersion(version);
+    }
+
+    /**
+     * 
+     * @param test java version string being tested
+     * @param version java version string being used as reference
+     * @param javaSyntax
+     * @return true if the value of <code>test</code> is greater than or equal to the value of <code>version</code>
+     */
+    public boolean equalOrHigher(final String test, final String version, final boolean javaSyntax) {
+        try {
+            StringTokenizer testSt = new StringTokenizer(test, ".");
+            StringTokenizer verSt = new StringTokenizer(version, ".");
+            
+            while (true) {
+                boolean testMore = testSt.hasMoreTokens(); 
+                boolean verMore = verSt.hasMoreTokens();
+                if( ! testMore || ! verMore ){
+                    break;
+                }
+                String testToken = testSt.nextToken();
+                String verToken = verSt.nextToken();
+                short testVer = getVersion(testToken);
+                short versionVer = getVersion(verToken);
+                if( testVer == versionVer ) {
+                    if ( equalClause(getClause( testToken ), getClause(verToken)) ) {
+                        continue;
+                    }
+                    else {
+                        return higherClause(getClause( testToken ), getClause( verToken ), javaSyntax);
+                    }
+                }
+                return testVer > versionVer ;
+            }
+            // equal up to one not having minor details
+            if( countDots(test) >= countDots(version) ){
+                return true;
+            }
+            return test.equals(version);
+        } catch (Exception e) {
+            // syntax exceptions
+            if(javaSyntax){
+                return true; // return true for Java since pre 1.3.1 or other JVMs could get any old rubbish
+            }
+            return false;
+        }
+    }
+    
+    public boolean isValid(final String version) {
+        try {
+            StringTokenizer verSt = new StringTokenizer(version, ".");
+            
+            boolean verMore = false;
+            int i = 0;
+            for (; verMore = verSt.hasMoreTokens(); i++) {
+                
+                String verToken = verSt.nextToken();
+                if("".equals(verToken)){
+                    return false;
+                }
+                // may throw NumberFormatExceptions
+                getVersion(verToken);
+                String clause = getClause(verToken);
+                if( ! "".equals(clause)){
+                    short clauseS = clauseToShort(clause);
+                    if( ! (clauseS == 1 || clauseS == 2 || clauseS == 3 )){
+                        return false;
+                    }
+                }         
+            }
+            if( ! verMore && i == 0) {
+                return false; // nothing there!
+            }
+            return true;
+
+        } 
+        catch (Exception e) {
+            // syntax exceptions
+            return false;
+        }
+    }
+    /**
+     * @return the number part of the clause
+     */
+    private short getVersion(final String section) {
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < section.length(); i++) {
+            char c = section.charAt(i);
+            if(Character.isDigit(c)) {
+                sb.append(c);
+            }
+            else{
+                return Short.parseShort( sb.toString() );
+            }
+        }
+        if(sb.length() > 0) {
+            return Short.parseShort( sb.toString() );
+        }
+        return 0;
+    }
+    
+    /**
+     * @return  the clause eg beta or ""
+     */
+    private String getClause(final String section) {
+        for (int i = 0; i < section.length(); i++) {
+            char c = section.charAt(i);
+            if(Character.isDigit(c)) {
+                continue;
+            }
+            else {
+                return section.substring(i);
+            }
+        }
+        return "";
+    }
+
+    private boolean higherClause(final String test, final String clause, final boolean javaSyntax) {
+        if(javaSyntax) {
+            return clauseJavaToShort(test) > clauseJavaToShort(clause);
+        }
+        else {
+            return clauseToShort(test) > clauseToShort(clause);
+        }
+            
+    }
+    private boolean equalClause(final String test, final String clause) {
+        return clauseToShort(test) == clauseToShort(clause);
+    }
+    
+    private short clauseToShort(String clause) {
+        if(clause.startsWith("-")){
+            clause = clause.substring(1); // knock off java style 1-beta dashes
+        }
+        if( CLAUSE_ALPHA.equals(clause) ) {
+            return 3;
+        }
+        else if( CLAUSE_BETA.equals(clause) ) {
+            return 2;
+        }
+        else if( CLAUSE_GAMMA.equals(clause) ) {
+            return 1;
+        }
+        if(clause.startsWith("_")) { // java build version support 1_03-ea-beta  (discarding the sub sub clause "-ea-beta" because I'm lazy)
+            int hasDash = clause.indexOf('-');
+            if(hasDash > -1) {
+                return Short.parseShort(clause.substring(1, hasDash));
+            }
+            else {
+                return Short.parseShort(clause.substring(1));
+            }
+        }
+        else return Short.MAX_VALUE; // no clause assumes higher
+    }
+    
+    private short clauseJavaToShort(String clause) {
+        if(clause.startsWith("-")){
+            clause = clause.substring(1); // knock off java style 1-beta dashes
+        }
+        else if( CLAUSE_JAVA_BETA.equals(clause) ) {  // -ea early access are assumed to be less good
+            return -2;
+        }
+        if(clause.startsWith("_")) { // java build version support 1_03-ea-beta  (discarding the sub sub clause "-ea-beta" because I'm lazy)
+            int hasDash = clause.indexOf('-');
+            if(hasDash > -1) {
+                return Short.parseShort(clause.substring(1, hasDash));
+            }
+            else {
+                return Short.parseShort(clause.substring(1));
+            }
+        }
+        else return 0; // no clause assumes lower in Java speak
+    }
+
+    private short countDots(final String fullver){
+        short count = 0;
+        for (int i = 0; i < fullver.length(); i++) {
+            if(fullver.charAt(i) == '.') {
+                count++;
+            }
+        }
+        return count;
+    }
+    
+    private short getMajorVersion(String test){
+        return getVersion(test);
+    }
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java	(revision 14989)
@@ -0,0 +1,106 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.util.List;
+import java.util.Map;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.ResourceBundleHelper;
+import org.tp23.antinstaller.antmod.Launcher;
+
+/**
+ *
+ * <p>Runs the Ant script using the Apache Ant launcher.</p>
+ * <p>This runner uses a modified version of the Apache launcher to provide us
+ * with feed back as to the state of the install </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @todo get better feed back and progress for the targets that have run successfully
+ * @todo this should be an interface not a class
+ * @author Paul Hinds
+ * @version $Id: AntLauncherFilter.java,v 1.6 2007/01/12 14:47:44 anothermwilson Exp $
+ */
+public class AntLauncherFilter implements ExecuteFilter {
+
+	private static final ResourceBundleHelper resHelper = new ResourceBundleHelper("org.tp23.antinstaller.renderer.Res");
+
+
+	public AntLauncherFilter() {
+	}
+
+	public void exec(InstallerContext ctx) throws InstallException {
+		if(ctx.getInstaller().isVerbose())ctx.log("Starting Ant Launcher");
+
+		try {
+
+			//TODO this should be refactored to installer
+			List argsList = ctx.getInstaller().getTargets(ctx);
+			
+			String[] argsArr = new String[argsList.size() + 4];
+			argsList.toArray(argsArr);
+
+			if (ctx.getInstaller().isVerbose()) {
+				ctx.log("Running targets:" + printArray(argsArr));
+			}
+			System.out.println("Targets:"+printArray(argsArr));
+
+			argsArr[argsArr.length-2] = "-lib";
+			argsArr[argsArr.length-1] = "antlib";
+
+			argsArr[argsArr.length-4] = "-buildfile";
+			argsArr[argsArr.length - 3] = ctx.getFileRoot().getAbsolutePath() +
+					System.getProperty("file.separator") +
+					ctx.getAntBuildFile();
+
+			//Launcher uses stdout and stderr by default
+			System.setOut(ctx.getAntOutputRenderer().getOut());
+			System.setErr(ctx.getAntOutputRenderer().getErr());
+			
+			Map properties = ctx.getInstaller().getResultContainer().getAllProperties();
+			Launcher launcher = new Launcher(properties);
+			int ok = launcher.run(argsArr, ctx);
+			if(ok!=0) {
+                throw new InstallException( resHelper.getMessage( "ant.failure" ) );
+                //the default ctx.setInstallSucceded(false);
+			}
+			else {
+				ctx.setInstallSucceded(true);
+			}
+			ctx.log("Ant finished");
+            ctx.getRunner().antFinished();
+        }
+		catch (Throwable ex) {
+			throw new InstallException("Error running the install, " + ex.getMessage(), ex);
+		}
+	}
+	/**
+	 * Used for debug to print the targets to system.out
+	 * @param args Object[]
+	 * @return String
+	 */
+	private String printArray(Object[] args){
+		StringBuffer sb = new StringBuffer();
+		for (int i = 0; i < args.length-4; i++) {
+			if (i > 0) {
+				sb.append(',');
+			}
+			sb.append(args[i]);
+		}
+		return sb.toString();
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/AntProjectFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/AntProjectFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/AntProjectFilter.java	(revision 14989)
@@ -0,0 +1,289 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.BuildListener;
+import org.apache.tools.ant.DefaultLogger;
+import org.apache.tools.ant.Diagnostics;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.ProjectHelper;
+import org.apache.tools.ant.input.DefaultInputHandler;
+import org.apache.tools.ant.launch.Locator;
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.antmod.ProjectHelper3;
+import org.tp23.antinstaller.selfextract.NonExtractor;
+import org.tp23.antinstaller.selfextract.SelfExtractor;
+/**
+ *
+ * <p>This AntRunner runs Ant builds directly from a Jar without having to extract
+ * the build.xml to temporary space.</p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: AntProjectFilter.java,v 1.10 2007/01/28 08:44:39 teknopaul Exp $
+ */
+public class AntProjectFilter implements ExecuteFilter{
+    
+    //TODO certain jars are added from Ant default directories that are probably not needed
+
+	private static String antVersion = null;
+	
+	/** The Ant Home property - from default Launcher  */
+	public static final String ANTHOME_PROPERTY = "ant.home";
+
+	/** The location of a per-user library directory - from default Launcher */
+	public static final String USER_LIBDIR = ".ant/lib";
+
+	public AntProjectFilter() {
+	}
+
+	/**
+	 * run Ant
+	 *
+	 * @param ctx InstallerContext
+	 * @throws InstallException
+	 * @todo Implement this org.tp23.antinstaller.runtime.AntRunner method
+	 */
+	public void exec(InstallerContext ctx) throws InstallException {
+		if(ctx.getInstaller().isVerbose()) {
+            ctx.log("Starting Ant Project");
+        }
+
+		try {
+			
+			Project project = new Project();
+			appendClassPath();
+			setAntHome(ctx);
+			project.setCoreLoader(this.getClass().getClassLoader());
+			
+			DefaultLogger antLogger = new DefaultLogger();
+			antLogger.setOutputPrintStream(ctx.getAntOutputRenderer().getOut());
+			antLogger.setErrorPrintStream(ctx.getAntOutputRenderer().getErr());
+			antLogger.setMessageOutputLevel(Project.MSG_INFO);
+			BuildListener bl = ctx.getBuildListener();
+			if(bl != null){
+				project.addBuildListener(bl);
+			}
+			project.addBuildListener(antLogger);
+
+            /*
+             * Log useful ant task output to the log file to help debugging
+             * and for customer support
+             */
+            final String logFileName = ctx.getLogger().getFileName();
+            if( logFileName != null && logFileName.length() > 0 )
+            {
+                PrintStream stream = new PrintStream( new FileOutputStream(logFileName, true), true);
+                DefaultLogger antFileLogger = new DefaultLogger();
+                antFileLogger.setOutputPrintStream( stream );
+                antFileLogger.setErrorPrintStream( stream );
+                int logLevel = (ctx.getInstaller().isVerbose())
+                                    ? Project.MSG_VERBOSE
+                                    : Project.MSG_INFO;
+                antFileLogger.setMessageOutputLevel( logLevel );
+
+                project.addBuildListener( antFileLogger );
+            }
+
+            // irrelevant really but might help someone on a command line
+			project.setInputHandler(new DefaultInputHandler());
+			project.fireBuildStarted();
+			
+			project.init();
+			project.setUserProperty("ant.version", getAntVersion());
+
+
+			// add properties
+			// N.B. properties are not loaded from the file it exists for debugging installers
+			String arg;
+			String value;
+			Map properties = ctx.getInstaller().getResultContainer().getAllProperties();
+			Iterator iter = properties.keySet().iterator();
+			while (iter.hasNext()) {
+				arg = (String) iter.next();
+				value = (String) properties.get(arg);
+				project.setUserProperty(arg, value);
+			}
+			
+			// From here we immitate Main
+			try {
+			    Diagnostics.validateVersion();
+			} catch (Throwable exc) {
+				// minimal messages for the benefit of the command line install
+				System.err.println("Version error:" + exc.getClass() + "," + exc.getMessage());
+			    return;
+			}
+			 
+			ProjectHelper helper = new ProjectHelper3();
+			project.addReference("ant.projectHelper", helper);
+			
+			File buildXml = new File(ctx.getFileRoot(), ctx.getAntBuildFile());
+			if(buildXml.exists()){
+				helper.parse(project, buildXml);
+				project.setUserProperty("ant.file",buildXml.getAbsolutePath());
+			} else {
+				URL buildIS = this.getClass().getResource("/" + ctx.getAntBuildFile());
+				helper.parse(project, buildIS);
+				project.setUserProperty("ant.file", buildIS.toExternalForm());
+			}
+			
+			File enclosingJar = SelfExtractor.getEnclosingJar(this);
+			project.setUserProperty(NonExtractor.ANTINSTALLER_JAR_PROPERTY , enclosingJar.getAbsolutePath());
+			System.out.println(NonExtractor.ANTINSTALLER_JAR_PROPERTY + enclosingJar.getAbsolutePath());
+
+			//what is this !?! project.setKeepGoingMode(keepGoingMode);
+
+			project.setBaseDir(ctx.getFileRoot());
+
+			project.executeTargets(ctx.getInstaller().getTargets(ctx));
+			project.fireBuildFinished(null);
+			ctx.setInstallSucceded(true);
+			ctx.log("Ant finished");
+		}
+		catch (Throwable e) {
+			throw new InstallException("Error running the install, " + e.getMessage(), e);
+		}
+        finally {
+			ctx.getRunner().antFinished();
+		}
+	}
+
+
+	public static synchronized String getAntVersion() throws BuildException {
+		 if (antVersion == null) {
+			 try {
+				 Properties props = new Properties();
+				 InputStream in =
+					 AntProjectFilter.class.getResourceAsStream("/org/apache/tools/ant/version.txt");
+				 props.load(in);
+				 in.close();
+
+				 StringBuffer msg = new StringBuffer();
+				 msg.append("Apache Ant version ");
+				 msg.append(props.getProperty("VERSION"));
+				 msg.append(" compiled on ");
+				 msg.append(props.getProperty("DATE"));
+				 antVersion = msg.toString();
+			 } catch (IOException ioe) {
+				 throw new BuildException("Could not load the version information:"
+										  + ioe.getMessage());
+			 } catch (NullPointerException npe) {
+				 throw new BuildException("Could not load the version information.");
+			 }
+		 }
+		 return antVersion;
+	 }
+	
+	/**
+	 * Append extra Ant jars to the classpath the original classpath 
+	 * is not removed incase the installer is launched from a script
+	 *
+	 */
+	private static void appendClassPath(){
+		try {
+			// now update the class.path property
+			StringBuffer baseClassPath
+				= new StringBuffer(System.getProperty("java.class.path"));
+			if (baseClassPath.charAt(baseClassPath.length() - 1)
+				== File.pathSeparatorChar) {
+				baseClassPath.setLength(baseClassPath.length() - 1);
+			}
+			URL[] jars = getLibPaths();
+			for (int i = 0; i < jars.length; ++i) {
+				baseClassPath.append(File.pathSeparatorChar);
+				baseClassPath.append(Locator.fromURI(jars[i].toString()));
+			}
+
+			System.setProperty("java.class.path", baseClassPath.toString());
+
+			URLClassLoader loader = new URLClassLoader(jars);
+			Thread.currentThread().setContextClassLoader(loader);
+		}
+		catch (MalformedURLException e) {
+			// swallow exception, normally all resources are already loaded
+			System.err.println("Invalid Jar path");
+		}
+	}
+	
+	
+	/**
+	 * Ant home is not a requirement but can exist prior to loading
+	 * the default Ant mechanism of using the current Jars parent
+	 * is consipicuously absent, do not rely on ANT_HOME out side of a 
+	 * controlled environment (e.g. a normal install)
+	 */
+	private static void setAntHome(InstallerContext ctx){
+		String antHomeProperty = System.getProperty(ANTHOME_PROPERTY);
+		if(antHomeProperty==null){
+			System.setProperty(ANTHOME_PROPERTY, ctx.getFileRoot().getAbsolutePath());
+		}
+	}
+	
+	/**
+	 * To maintain compatability with previous verisons currently the only
+	 * Ant command line argument supported is the -lib parameter with the value
+	 * "antlib"
+     * @TODO this should probably be removed
+	 * @throws MalformedURLException
+	 */
+	private static URL[] getLibPaths() throws MalformedURLException{
+		
+		// add all Jars from the ./antlib directory at the time of the build
+		// this is NOT based on ANT_HOME
+		URL[] libJars = Locator.getLocationURLs(new File("antlib"));
+
+		// add all the Jars from ~/.ant/lib
+		// this is probably irrelevant for a normal install
+		URL[] userJars = Locator.getLocationURLs(new File(USER_LIBDIR));
+
+		// Now try and find JAVA_HOME
+		File toolsJar = Locator.getToolsJar();
+
+		int jarsLength = libJars.length + userJars.length + (toolsJar!=null?1:0);
+		URL[] allJars = new URL[jarsLength];
+		int i = 0;
+		if(toolsJar != null){
+			allJars[i++] = toolsJar.toURL();
+		}
+		if(libJars.length != 0){
+			System.arraycopy(libJars, 0, allJars, i, libJars.length);
+			i += libJars.length;
+		}
+		if(userJars.length != 0){
+			System.arraycopy(userJars, 0, allJars, i, userJars.length);
+			//i+=userJars.length;
+			//assert(allJars.length=i-1);
+		}
+		return libJars;
+	}
+	
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/CreateLoggerFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/CreateLoggerFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/CreateLoggerFilter.java	(revision 14989)
@@ -0,0 +1,68 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.io.File;
+
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.runtime.SimpleLogger;
+
+
+/**
+ * Creates a suitable logger for the install.  The logging does not
+ * throw exceptions since it is mainly for debug and we dont want to 
+ * stop an install just because logging is not working
+ * @author Paul Hinds
+ * @version $Id: CreateLoggerFilter.java,v 1.3 2007/01/09 22:41:40 teknopaul Exp $
+ */
+public class CreateLoggerFilter implements ExecuteFilter {
+
+	public static final String LOG_FILE_NAME = "ant.install.log";
+	
+	/**
+	 */
+	public void exec(InstallerContext ctx){
+		SimpleLogger logger = new SimpleLogger();
+		ctx.setLogger( logger );
+		try {
+			String defaultName = "./ant.install.log";
+			// @since 0.7.1 RFE-1154368 for installs from CD where ./ is not writable
+			File defaultFile = new File(defaultName);
+			try {
+				if( !defaultFile.exists() ){
+                    defaultFile.createNewFile();
+                }
+			}
+			catch(Exception e) {
+				;// ignore canWrite() will return false
+			}
+			if(defaultFile.canWrite()) {
+				logger.setFileName(defaultName);
+			}
+			else {
+				String tempDir = ctx.getFileRoot().getAbsolutePath();
+				logger.setFileName(tempDir+System.getProperty("file.separator") + LOG_FILE_NAME);
+			}
+			ctx.log("Ant basedir:" + ctx.getFileRoot().getCanonicalPath());
+		}
+		catch (Throwable ex1) {
+			ex1.printStackTrace();
+			logger.close();
+			// swallow exceptions
+		}
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/CreateUIFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/CreateUIFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/CreateUIFilter.java	(revision 14989)
@@ -0,0 +1,132 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.io.IOException;
+import java.util.StringTokenizer;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.renderer.swing.plaf.LookAndFeelFactory;
+import org.tp23.antinstaller.runtime.AutoSwingRunner;
+import org.tp23.antinstaller.runtime.AutoTextRunner;
+import org.tp23.antinstaller.runtime.Runner;
+import org.tp23.antinstaller.runtime.SwingRunner;
+import org.tp23.antinstaller.runtime.TextRunner;
+
+
+/**
+ * Creates the Runner instance for the execution UI and sets up an appropriate
+ * message renderer.
+ * @author Paul Hinds
+ * @version $Id: CreateUIFilter.java,v 1.7 2007/01/28 17:49:15 teknopaul Exp $
+ */
+public class CreateUIFilter implements ExecuteFilter {
+
+	/**
+	 * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+	 */
+	public void exec(InstallerContext ctx) throws InstallException {
+		try {
+			if(ctx.getInstaller().isVerbose()){
+				ctx.log("Creating UI classes");
+			}
+			ctx.setRunner(getRunner(ctx));
+			ctx.log("Created UI classes");
+		}
+		catch (IOException e) {
+			throw new InstallException("Unable to create the user interface", e);
+		}
+		catch (InstallException e) {
+			throw new InstallException(e.getMessage(), e);
+		}
+	}
+	/**
+	 * Determines which Runner to use text or swing or "auto" UIs which skip past the properties sreens.
+	 * @param override String if this paramter is not null it will be used. If
+	 * swing and there is no graphics environment the install will fail, if it is left
+	 * as null a check is made to see if there is a Graphics Environment and swing is used
+	 * if there are no errors, if there are errors the system falls back to the text console
+	 *
+	 * @throws IOException
+	 * @return Runner
+	 */
+	private Runner getRunner(InstallerContext ctx) throws IOException, InstallException {
+
+		if(ctx.getUIOverride() != null){
+			if (ctx.getUIOverride().equalsIgnoreCase("swing")){
+				if(isUi("swing", ctx.getInstaller().getUi())){
+					new LookAndFeelFactory(ctx).setLAF();
+					return new SwingRunner(ctx);
+				}else{
+					throw new InstallException("Not a permited UI override, swing is not allowed");
+				}
+			}
+
+			if (ctx.getUIOverride().equalsIgnoreCase("text")){
+				if(isUi("text", ctx.getInstaller().getUi())){
+					return new TextRunner(ctx);
+				}else{
+					throw new InstallException("Not a permited UI override, text is not allowed");
+				}
+			}
+			
+			if (ctx.getUIOverride().equalsIgnoreCase("swing-auto")){
+				if(isUi("swing-auto", ctx.getInstaller().getUi())){
+					new LookAndFeelFactory(ctx).setLAF();
+					return new AutoSwingRunner(ctx);
+				}else{
+					throw new InstallException("Not a permited UI override, swing-auto is not allowed");
+				}
+			}
+			
+			if (ctx.getUIOverride().equalsIgnoreCase("text-auto")){
+				if(isUi("text-auto", ctx.getInstaller().getUi())){
+					return new AutoTextRunner(ctx);
+				}else{
+					throw new InstallException("Not a permited UI override, text-auto is not allowed");
+				}
+			}
+
+		}
+		//else do stuff to work out if there is a graphics context
+		try{
+			java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();
+            /*
+             * Above test is not enough to be sure that we can use the graphics env
+             * so do remaining setup within try/catch block
+             */
+            new LookAndFeelFactory(ctx).setLAF();
+            return new SwingRunner(ctx);
+		} catch (Throwable e){
+			System.out.println("No graphics environment available, reverting to text");
+			System.out.println();
+			return new TextRunner(ctx);
+		}
+	}
+	
+	
+	private boolean isUi(String ui, String commaSeparatedUiList){
+		StringTokenizer st = new StringTokenizer(commaSeparatedUiList, ",");
+		while(st.hasMoreTokens()){
+			if(st.nextToken().equals(ui)){
+				return true;
+			}
+		}
+		return false;
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/ExecuteFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/ExecuteFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/ExecuteFilter.java	(revision 14989)
@@ -0,0 +1,31 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+
+
+/**
+ * The Execute engine is being replaced with a filter pattern to enable
+ * further extension of the system,  Initiallly a hardcoded filter chain
+ * will be used subsequently to be replaced by a pluggable mechanism.
+ * @author Paul Hinds
+ * @version $Id: ExecuteFilter.java,v 1.1.1.1 2005/10/18 18:20:57 teknopaul Exp $
+ */
+public interface ExecuteFilter {
+	public void exec(InstallerContext ctx) throws InstallException;
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java	(revision 14989)
@@ -0,0 +1,48 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+
+
+/**
+ * Executes the Screens part of the build
+ * @author Paul Hinds
+ * @version $Id: ExecuteRunnerFilter.java,v 1.3 2006/12/21 01:48:51 teknopaul Exp $
+ */
+public class ExecuteRunnerFilter implements ExecuteFilter {
+
+	/**
+	 * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+	 */
+	public void exec(InstallerContext ctx) throws InstallException {
+		if(ctx.getInstaller().isVerbose()){
+			ctx.log("Starting UI Screens");
+		}
+		boolean ok = ctx.getRunner().runInstaller();
+		if(!ok){
+			throw new AbortException("Install Aborted");
+		}
+		ctx.log("Install screens rendered");
+	}
+
+	public static class AbortException extends InstallException{
+		public AbortException(String message){
+			super(message);
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/FilterChain.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/FilterChain.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/FilterChain.java	(revision 14989)
@@ -0,0 +1,32 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import org.tp23.antinstaller.InstallerContext;
+
+
+/**
+ * A filter chain is a series of operations to be run by the ExecInstall class.
+ * This defines the sequence of events in the installer and provides for pluggable
+ * extra sequences for example post installtion messages or running the application.
+ * All FilterChains should end in a FinalizerFilter.
+ * @author Paul Hinds
+ * @version $Id: FilterChain.java,v 1.1.1.1 2005/10/18 18:20:57 teknopaul Exp $
+ */
+public interface FilterChain {
+	public void init(InstallerContext ctx);
+	public ExecuteFilter[] getFilters();
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/FilterFactory.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/FilterFactory.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/FilterFactory.java	(revision 14989)
@@ -0,0 +1,86 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+
+
+/**
+ * Loads FilterChains from resource files on the classpath with lists of class
+ * names listed in order.  In the files lines starting with # and blank
+ * lines are ignored
+ * @author Paul Hinds
+ * @version $Id: FilterFactory.java,v 1.4 2007/01/04 22:57:18 teknopaul Exp $
+ */
+public class FilterFactory {
+	
+	public static final String FILTER_RESOURCE = "/antinstall-config.fconfig";
+
+	private FilterFactory() {
+	}
+
+	public static FilterChain factory(String configResource) throws InstallException{
+		try {
+			InputStream is = FilterFactory.class.getResourceAsStream(configResource);
+			BufferedReader br = new BufferedReader(new InputStreamReader(is));
+			String filterClass = null;
+			final List filterChain = new ArrayList();
+			while((filterClass = br.readLine())!=null){
+				if(filterClass.startsWith("#"))continue;
+				filterClass = filterClass.trim();
+				if(filterClass.equals("")){
+                    continue;
+                }
+				filterChain.add( Class.forName(filterClass).newInstance() );
+			}
+            br.close();
+			return new DynamicFilterChain(configResource, filterChain);
+		}
+		catch (IOException e) {
+			e.printStackTrace();
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+		}
+		throw new InstallException("Can not create FilterChain");
+	}
+		
+	static class DynamicFilterChain implements FilterChain{
+		
+		private ExecuteFilter[] filters;
+		private String configResource;
+		
+		private DynamicFilterChain(String configResource, List filterChain){
+			this.configResource = configResource;
+			filters = new ExecuteFilter[filterChain.size()];
+			filterChain.toArray(filters);
+		}
+		public void init(InstallerContext ctx){
+			ctx.setConfigResource(configResource);
+		}
+		public ExecuteFilter[] getFilters(){
+			return filters;
+		}
+	};
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/FinalizerFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/FinalizerFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/FinalizerFilter.java	(revision 14989)
@@ -0,0 +1,47 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import org.tp23.antinstaller.InstallerContext;
+
+
+/**
+ * This filter is called at the end of the install. This is not the 
+ * last Java operation since a shutDownHook is present to delete temporary
+ * files and in the GUI version the screen should not dissappear.
+ * All filter chains must end in a FinalizerFilter or subclass
+ * and the exec method must not throw an Exception.
+ * 
+ * @author Paul Hinds
+ * @version $Id: FinalizerFilter.java,v 1.3 2007/01/04 22:57:17 teknopaul Exp $
+ */
+public class FinalizerFilter implements ExecuteFilter {
+    
+    // TODO as per FindBugs the System.exit(0) in SwingPageRenderer prevents this running
+	/**
+	 * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+	 */
+	public void exec(InstallerContext ctx){
+		try {
+			ctx.log("Finalizing");
+			ctx.getLogger().close();
+		}
+		catch (Throwable e) {
+			e.printStackTrace();
+		}
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/InputStreamLoadConfigFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/InputStreamLoadConfigFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/InputStreamLoadConfigFilter.java	(revision 14989)
@@ -0,0 +1,51 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+
+
+/**
+ * @author Paul Hinds
+ * @version $Id: InputStreamLoadConfigFilter.java,v 1.4 2007/01/28 08:44:39 teknopaul Exp $
+ */
+public class InputStreamLoadConfigFilter extends LoadConfigFilter {
+
+	public void exec(InstallerContext ctx) throws InstallException {
+		this.ctx = ctx;
+
+		try {
+			InputStream config = this.getClass().getResourceAsStream("/" + ctx.getInstallerConfigFile());
+			if(config == null){ // passed in incorrectly on the command line or bad installer
+				throw new IOException();
+			}
+			readConfig(ctx.getFileRoot(), config);
+			ctx.setInstaller(installer);
+			ctx.log("Config loaded");
+		}
+		catch (IOException e) {
+			throw new InstallException("Not able to load and read the AntInstaller config",e);
+		}
+		catch (ConfigurationException e) {
+			throw new InstallException("Not able to load and read the AntInstaller config",e);
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java	(revision 14989)
@@ -0,0 +1,495 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.Installer;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.AppRootInput;
+import org.tp23.antinstaller.input.CheckboxInput;
+import org.tp23.antinstaller.input.CommentOutput;
+import org.tp23.antinstaller.input.ConditionalField;
+import org.tp23.antinstaller.input.ConfirmPasswordTextInput;
+import org.tp23.antinstaller.input.DateInput;
+import org.tp23.antinstaller.input.DirectoryInput;
+import org.tp23.antinstaller.input.ExtValidatedTextInput;
+import org.tp23.antinstaller.input.FileInput;
+import org.tp23.antinstaller.input.HiddenPropertyInput;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.LargeSelectInput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.PasswordTextInput;
+import org.tp23.antinstaller.input.SelectInput;
+import org.tp23.antinstaller.input.TargetInput;
+import org.tp23.antinstaller.input.TargetSelectInput;
+import org.tp23.antinstaller.input.UnvalidatedTextInput;
+import org.tp23.antinstaller.input.ValidatedTextInput;
+import org.tp23.antinstaller.page.LicensePage;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.page.ProgressPage;
+import org.tp23.antinstaller.page.SimpleInputPage;
+import org.tp23.antinstaller.page.SplashPage;
+import org.tp23.antinstaller.page.TextPage;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+
+
+/**
+ * Loads the Ant Install configuration and sets the Installer object back
+ * into the context.  A similar technique to the apache digester is used to
+ * populate object attributes in this class.
+ * N.B. The only types that can be set for object attributes are Strings, booleans
+ * or ints.
+ * @author Paul Hinds
+ * @version $Id: LoadConfigFilter.java,v 1.9 2007/01/28 08:44:39 teknopaul Exp $
+ */
+public class LoadConfigFilter implements ExecuteFilter {
+
+	//TODO move to InstallerContext
+	public static final String INSTALLER_CONFIG_FILE = "antinstall-config.xml";
+	
+	protected Installer installer = new Installer();
+	protected InstallerContext ctx;
+
+	/**
+	 * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+	 */
+	public void exec(InstallerContext ctx) throws InstallException {
+		this.ctx = ctx;
+		
+		try {
+            installer = readConfig(ctx.getFileRoot(), ctx.getInstallerConfigFile());
+			ctx.setInstaller(installer);
+			ctx.log("Config loaded");
+		}
+		catch (IOException e) {
+			throw new InstallException("Not able to load and read the AntInstaller config", e);
+		}
+		catch (ConfigurationException e) {
+			throw new InstallException("Not able to load and read the AntInstaller config", e);
+		}
+	}
+
+	/**
+	 * Currently read the config using any available XML parser
+	 * This method reads the config from the file system
+     * @param fileRoot The directory where the config file is stored
+     * @param the name of the configuration file (usually antinstall-config.xml)
+	 * @return Installer
+	 */
+	public Installer readConfig(File fileRoot, String fileName) throws IOException, ConfigurationException {
+
+        installer.getResultContainer().setInstallRoot(fileRoot);
+
+		File config = new File(fileRoot, fileName);
+		if(!config.exists()){ // passed in incorrectly on the command line or bad installer
+			throw new IOException();
+		}
+		InputSource xmlInp = new InputSource(new FileInputStream(config));
+		readConfig(xmlInp);
+		
+		return installer;
+	}
+	/**
+	 * This overloaded method reads from the provided input stream to facilitate
+	 * reading configs directly from the Jar, the file root is still needed 
+	 * for Ant's basedir. Used by InputStreamLoadConfigFilter
+	 * @return Installer
+	 */
+	protected Installer readConfig(File fileRoot, InputStream configSource) throws IOException, ConfigurationException {
+
+        installer.getResultContainer().setInstallRoot(fileRoot);
+
+		InputSource xmlInp = new InputSource(configSource);
+		readConfig(xmlInp);
+		
+		return installer;
+	}
+	/**
+	 * Currently read the config using any available XML parser
+	 * @todo read the installer with only xerces
+	 * @return Installer
+	 */
+	protected Installer readConfig(InputSource xmlInp) throws IOException, ConfigurationException {
+
+		Document doc = null;
+		int line=0;
+		try {
+			line=1;
+			DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
+			line=2;
+			DocumentBuilder parser = docBuilderFactory.newDocumentBuilder();
+			line=3;
+			// RFE [ 1475361 ] Using a custom entity resolver
+			String entityResolverClass = System.getProperty("antinstaller.EntityResolverClass");
+
+			line=4;
+			EntityResolver er = null;
+
+			line=5;
+			if(entityResolverClass != null){
+				line=6;
+				try{
+					line=7;
+					er = (EntityResolver)Class.forName(entityResolverClass).newInstance();
+				}
+				catch(Exception e){
+					// Property error use default this is a very specific requirement
+					line=8;
+					er = new CustomEntityResolver();
+				}
+				line=9;
+			}
+			else{
+				line=10;
+				er = new CustomEntityResolver();
+			}
+			line=11;
+			parser.setEntityResolver(er);
+
+			line=12;
+			doc = parser.parse(xmlInp);
+			line=13;
+			Element root = doc.getDocumentElement();
+			line=14;
+			root.normalize();
+			line=15;
+			setProperties(installer, root.getAttributes());
+			line=16;
+			NodeList allPages = root.getElementsByTagName("page");
+			//TODO make this pluggable
+			line=17;
+			getPages(installer, allPages);
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+			System.out.println( e.getMessage() );
+			throw new IOException("DomFactory error: caused by:" + e.getClass() + ":" + e.getMessage() + ". Line: " + line);
+		}
+		return installer;
+	}
+
+
+	/**
+	 * Used when reading the config
+	 * @param allPages NodeList
+	 * @throws ConfigurationException
+	 */
+	private void getPages(Installer installerConfig, NodeList allPages) throws ConfigurationException {
+		ArrayList pages = new ArrayList();
+		for (int i = 0; i < allPages.getLength(); i++) {
+			Element pageElem = (Element) allPages.item(i);
+			Page page = getPageType(pageElem.getAttribute("type"));
+			setProperties(page, pageElem.getAttributes());
+			pages.add(page);
+			getOutputFields(page, pageElem);
+		}
+		Page[] pageArr = new Page[pages.size()];
+		pages.toArray(pageArr);
+		installerConfig.setPages(pageArr);
+	}
+	/**
+	 * Used when reading the config
+	 * @param page Page
+	 * @param pageElem Element
+	 * @throws ConfigurationException
+	 */
+    private void getOutputFields(Page page, Element pageElem) throws ConfigurationException {
+        page.setOutputField( getInnerOutputFields( pageElem ));
+    }
+
+    private OutputField[] getInnerOutputFields( Element elem) throws ConfigurationException {
+         NodeList allFields = elem.getChildNodes();
+         ArrayList fields = new ArrayList();
+         for (int i = 0; i < allFields.getLength(); i++) {
+             if(! (allFields.item(i) instanceof Element))continue;
+             Element fieldElem = (Element)allFields.item(i);
+             OutputField field = getOutputFieldType(fieldElem.getNodeName(), fieldElem);
+             if(field != null){
+                 setProperties(field, fieldElem.getAttributes());
+                 fields.add(field);
+                 field.setResultContainer(installer.getResultContainer());
+             }
+         }
+         OutputField[] fieldArr = new OutputField[fields.size()];
+
+         return (OutputField[])fields.toArray(fieldArr);
+     }
+
+    /**
+	 * Used when reading the config
+	 * @param type String
+	 * @throws ConfigurationException
+	 * @return Page
+	 */
+	private Page getPageType(String type) throws ConfigurationException {
+		if (type.equalsIgnoreCase("license")) {
+			return new LicensePage();
+		}
+		else if (type.equalsIgnoreCase("input")) {
+			return new SimpleInputPage();
+		}
+		else if (type.equalsIgnoreCase("progress")) {
+			return new ProgressPage();
+		}
+		else if (type.equalsIgnoreCase("splash")) {
+			return new SplashPage();
+		}
+		else if (type.equalsIgnoreCase("text")) {
+			return new TextPage();
+		}
+		throw new ConfigurationException("Unknown Page type:" + type);
+	}
+	/**
+	 * Used when reading the config
+	 * @param type String
+	 * @param field Element
+	 * @throws ConfigurationException
+	 * @return InputField
+	 */
+	private OutputField getOutputFieldType(String type, Element field) throws ConfigurationException {
+		if (type.equalsIgnoreCase("text")) {
+			return new UnvalidatedTextInput();
+		}
+		else if (type.equalsIgnoreCase("directory")) {
+			return new DirectoryInput();
+		}
+		else if (type.equalsIgnoreCase("target")) {
+			return new TargetInput();
+		}
+		else if (type.equalsIgnoreCase("file")) {
+			return new FileInput();
+		}
+		else if (type.equalsIgnoreCase("comment")) {
+			return new CommentOutput();
+		}
+		else if (type.equalsIgnoreCase("checkbox")) {
+			return new CheckboxInput();
+		}
+		else if (type.equalsIgnoreCase("validated")) {
+			return new ValidatedTextInput();
+		}
+		else if (type.equalsIgnoreCase("ext-validated")) {
+			return new ExtValidatedTextInput();
+		}
+		else if (type.equalsIgnoreCase("password")) {
+			return new PasswordTextInput();
+		}
+		else if (type.equalsIgnoreCase("password-confirm")) {
+			return new ConfirmPasswordTextInput();
+		}
+        else if (type.equalsIgnoreCase("hidden")) {
+             return new HiddenPropertyInput();
+         }
+        else if (type.equalsIgnoreCase("date")) {
+			return new DateInput();
+		}
+		else if (type.equalsIgnoreCase("app-root")) {
+			return new AppRootInput();
+		}
+        else if (type.equalsIgnoreCase("conditional")) {
+            ConditionalField conditionalField = new ConditionalField();
+            OutputField[] outFields = getInnerOutputFields( field );
+            InputField[] inFields = new InputField[ outFields.length ];
+            for( int i = 0; i < outFields.length; i++ ) {
+                inFields[i] = (InputField) outFields[i];
+            }
+            conditionalField.setFields( inFields );
+            return conditionalField;
+        }
+        else if (type.equalsIgnoreCase("select")) {
+			SelectInput sInput = new SelectInput();
+			NodeList allOptions = field.getElementsByTagName("option");
+			ArrayList options = new ArrayList();
+			for (int i = 0; i < allOptions.getLength(); i++) {
+				Element optionElem = (Element) allOptions.item(i);
+				SelectInput.Option option = sInput.getNewOption();
+				option.setText(optionElem.getAttribute("text"));
+				option.value = optionElem.getAttribute("value");
+				options.add(option);
+			}
+			SelectInput.Option[] optionArr = new SelectInput.Option[options.size()];
+			options.toArray(optionArr);
+			sInput.setOptions(optionArr);
+
+			return sInput;
+		}
+		else if (type.equalsIgnoreCase("target-select")) {
+			TargetSelectInput sInput = new TargetSelectInput();
+			NodeList allOptions = field.getElementsByTagName("option");
+			ArrayList options = new ArrayList();
+			for (int i = 0; i < allOptions.getLength(); i++) {
+				Element optionElem = (Element) allOptions.item(i);
+				SelectInput.Option option = sInput.getNewOption();
+				option.setText(optionElem.getAttribute("text"));
+				option.value = optionElem.getAttribute("value");
+				options.add(option);
+			}
+			SelectInput.Option[] optionArr = new SelectInput.Option[options.size()];
+			options.toArray(optionArr);
+			sInput.setOptions(optionArr);
+
+			return sInput;
+		}
+		else if (type.equalsIgnoreCase("large-select")) {
+			LargeSelectInput sInput = new LargeSelectInput();
+			NodeList allOptions = field.getElementsByTagName("option");
+			ArrayList options = new ArrayList();
+			for (int i = 0; i < allOptions.getLength(); i++) {
+				Element optionElem = (Element) allOptions.item(i);
+				LargeSelectInput.Option option = sInput.getNewOption();
+				option.setText(optionElem.getAttribute("text"));
+				option.value = optionElem.getAttribute("value");
+				options.add(option);
+			}
+			LargeSelectInput.Option[] optionArr = new LargeSelectInput.Option[options.size()];
+			options.toArray(optionArr);
+			sInput.setOptions(optionArr);
+
+			return sInput;
+		}
+		System.out.println("Unrecognised Input Element:"+type);
+		return null;
+		//throw new ConfigurationException("Unknown Input Field type:" + type);
+	}
+
+
+
+    /**
+	 * Calls bean setter methods based on attribures found. Could use BeanUtils here
+	 * but we want to stay clear of external dependencies.
+	 * @param bean Object
+	 * @param map NamedNodeMap
+	 */
+	private void setProperties(Object bean, NamedNodeMap map) {
+		int numAtts = map.getLength();
+		for (int a = 0; a < numAtts; a++) {
+			Node attribute = map.item(a);
+			String name = attribute.getNodeName();
+			String value = attribute.getNodeValue();
+			String methodName = "set" + Character.toUpperCase(name.charAt(0)) + name.substring(1);
+			Method[] allMethods = bean.getClass().getMethods();
+			for (int m = 0; m < allMethods.length; m++) {
+				if (allMethods[m].getName().equals(methodName)) {
+					try {
+						Class[] parameters = allMethods[m].getParameterTypes();
+						Object[] paramValues;
+						if (parameters[0].equals(Boolean.class)) {
+							paramValues = new Boolean[1];
+							if ( OutputField.isTrue(value) ) {
+								paramValues[0] = Boolean.TRUE;
+							}
+							else {
+								paramValues[0] = Boolean.FALSE;
+							}
+						}
+						else
+						if (parameters[0].equals(Integer.class)) {
+							paramValues = new Integer[1];
+							paramValues[0] = new Integer(value);
+						}
+						else {
+							paramValues = new String[1];
+							paramValues[0] = value;
+						}
+						allMethods[m].invoke(bean, paramValues);
+						continue;
+					}
+					catch (IndexOutOfBoundsException ex) {
+					    // not the setter we are looking for
+                        // this is the wrong overloaded method
+						continue; 
+					}
+					// Ignore reflection errors and continue
+					catch (IllegalArgumentException e) {
+					}
+					catch (IllegalAccessException e) {					
+					}
+					catch (InvocationTargetException e) {						
+					}
+				}
+			}
+		}
+	}
+
+	private static class CustomEntityResolver implements EntityResolver{
+		public InputSource resolveEntity(String publicId, String systemId) {
+			
+			if (publicId.equals("-//tp23 //DTD Ant Installer Config//EN") &&
+				systemId.equals("http://antinstaller.sf.net/dtd/antinstall-config-0.2.dtd")) {
+				InputSource localSrc = new InputSource(this.getClass().getResourceAsStream(
+					"/org/tp23/antinstaller/antinstall-config-0.2.dtd"));
+				return localSrc;
+			}
+			if (publicId.equals("-//tp23 //DTD Ant Installer Config//EN") &&
+				systemId.equals("http://antinstaller.sf.net/dtd/antinstall-config-0.3.dtd")) {
+				InputSource localSrc = new InputSource(this.getClass().getResourceAsStream(
+					"/org/tp23/antinstaller/antinstall-config-0.3.dtd"));
+				return localSrc;
+			}
+			if (publicId.equals("-//tp23 //DTD Ant Installer Config//EN") &&
+				systemId.equals("http://antinstaller.sf.net/dtd/antinstall-config-0.4.dtd")) {
+				InputSource localSrc = new InputSource(this.getClass().getResourceAsStream(
+					"/org/tp23/antinstaller/antinstall-config-0.4.dtd"));
+				return localSrc;
+			}
+			if (publicId.equals("-//tp23 //DTD Ant Installer Config//EN") &&
+				systemId.equals("http://antinstaller.sf.net/dtd/antinstall-config-0.5.dtd")) {
+				InputSource localSrc = new InputSource(this.getClass().getResourceAsStream(
+					"/org/tp23/antinstaller/antinstall-config-0.5.dtd"));
+				return localSrc;
+			}
+			if (publicId.equals("-//tp23 //DTD Ant Installer Config//EN") &&
+				systemId.equals("http://antinstaller.sf.net/dtd/antinstall-config-0.6.dtd")) {
+				InputSource localSrc = new InputSource(this.getClass().getResourceAsStream(
+					"/org/tp23/antinstaller/antinstall-config-0.6.dtd"));
+				return localSrc;
+			}
+			if (publicId.equals("-//tp23 //DTD Ant Installer Config//EN") &&
+				systemId.equals("http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd")) {
+				InputSource localSrc = new InputSource(this.getClass().getResourceAsStream(
+					"/org/tp23/antinstaller/antinstall-config-0.7.dtd"));
+				return localSrc;
+			}
+			if (publicId.equals("-//tp23 //DTD Ant Installer Config//EN") &&
+				systemId.equals("http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd")) {
+				InputSource localSrc = new InputSource(this.getClass().getResourceAsStream(
+					"/org/tp23/antinstaller/antinstall-config-0.8.dtd"));
+				return localSrc;
+			}
+			else {
+				return null;
+			}
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/PropertyLoaderFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/PropertyLoaderFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/PropertyLoaderFilter.java	(revision 14989)
@@ -0,0 +1,419 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limiations under the License.
+ */
+
+package org.tp23.antinstaller.runtime.exe;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+import java.util.ResourceBundle;
+import java.util.StringTokenizer;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.Installer;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.PropertiesFileRenderer;
+import org.tp23.antinstaller.input.ConditionalField;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.PasswordTextInput;
+import org.tp23.antinstaller.input.TargetInput;
+import org.tp23.antinstaller.input.TargetSelectInput;
+import org.tp23.antinstaller.page.Page;
+import org.tp23.antinstaller.runtime.VersionHelper;
+import org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter.AbortException;
+
+
+/**
+ * Loads properties from a file of default properties if found.
+ * the Installer element should define an attribute
+ * loadDefaults with one of the following values.
+ * <li>false - do not look for defaults</li>
+ * <li>prompt - look for properties and ask if they should be used if found</li>
+ * <li>load - look for defaults if found load them</li>
+ * <li>prompt-auto - wierd case where installer permits zero user interaction running only from antinstaller-config.xml defaults</li>
+ * 
+ * N.B. this is not a generic property loader but one specifically for properties files
+ * generated by a previous run of an identical installer or one that according to the version
+ * number is compatible, see PropertyTask for loading other property sets
+ * FIXME i18n for AbortExceptoins
+ * @author teknopaul
+ *
+ */
+public class PropertyLoaderFilter implements ExecuteFilter {
+	
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+	
+	public static final String LOAD = "true";
+	public static final String PROMPT = "prompt";
+	public static final String PROMPT_AUTO = "prompt-auto";
+	public static final String FALSE = "false";
+    public static final String DEFAULT_PROPERTIES_FILE_PROPERTY = "antinstaller.properties";
+
+    private final String fileNameProperty;
+
+    private int definedPropertiesCount;
+
+    /**
+     * Default constructor required for an ExecuteFilter implementation.
+     * The default property name given by @see{DEFAULT_PROPERTIES_FILE_PROPERTY}
+     * is used with this constructor
+     */
+    public PropertyLoaderFilter() {
+        this( DEFAULT_PROPERTIES_FILE_PROPERTY );
+    }
+
+    /**
+     * Constructor that allows the name of the property containg the properties file
+     * to be specified
+     *
+     * @param fileNameProperty property containing the name of file
+     */
+    public PropertyLoaderFilter( final String fileNameProperty ) {
+        this.fileNameProperty = fileNameProperty;
+    }
+
+    /**
+     * Execute the filter action - in this case pre-setting InputField values
+     * with values loaded from a properties file (if present)
+     *
+     * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter
+     * @param ctx context data
+     * @throws InstallException if an error occurred loading pre-defined properties
+     */
+    public void exec(InstallerContext ctx) throws InstallException {
+
+		Installer installer = ctx.getInstaller();
+		String loadDefaults = installer.getLoadDefaults();
+		if(installer.isVerbose()) {
+			ctx.log("loadDefaults attribute:" + loadDefaults);
+		}
+		boolean load = false;
+		if(loadDefaults == null || FALSE.equals(loadDefaults)) {
+			if(installer.isVerbose()) {
+				ctx.log("Not loading defaults");
+			}
+			return;
+		}
+		
+        ctx.log( "Checking for predefined properties");
+        Properties predefinedProps = loadPredefinedProperties( ctx, fileNameProperty );
+
+        definedPropertiesCount = predefinedProps.size();
+
+        boolean foundProps = false;
+        if( definedPropertiesCount == 0 ) {
+            ctx.log( "No predefined properties");
+        }
+        else{
+        	foundProps = true;
+        }
+
+		if( foundProps && PROMPT.equals(loadDefaults) ) {
+			load = ctx.getMessageRenderer().prompt(res.getString("promptLoadDefaults"));
+		}
+		else if( foundProps && PROMPT_AUTO.equals(loadDefaults)) {
+			load = ctx.getMessageRenderer().prompt(res.getString("promptLoadDefaults"));
+		}
+		else if( foundProps && LOAD.equals(loadDefaults) ) {
+			load = true;
+		}
+		
+		if( (!foundProps || !load) && 
+				ctx.isAutoBuild() && 
+				PROMPT.equals(loadDefaults) ) {
+			ctx.log( "Cant run -auto install without properties");
+			throw new AbortException("Install Aborted: cant load ant.install.properties");
+		}
+
+		if(load) {
+			if(installer.isVerbose()) {
+				ctx.log("Loading defaults");
+			}
+            
+            // version control
+            String propertiesVersion = predefinedProps.getProperty(PropertiesFileRenderer.INSTALLER_VERSION_PROPERTY);
+            String configVersion = ctx.getInstaller().getVersion();
+            if(propertiesVersion != null) {
+                VersionHelper helper = new VersionHelper();
+                if( ( ! propertiesVersion.equals(configVersion)) && 
+                        helper.equalOrHigher(configVersion , propertiesVersion) ) {
+                    
+                    // let major versions pass but prompt for differences
+                    if( (! ctx.isAutoBuild()) && helper.majorVersionCompatible(configVersion , propertiesVersion) ){
+                        if( ! ctx.getMessageRenderer().prompt(res.getString("propertiesVersionMismatch")) ){
+                            throw new AbortException("Install Aborted: existing configuration is not compatible, config version: " + configVersion);
+                        }
+                    }
+                    else {
+                        throw new AbortException("Install Aborted: existing configuration is not compatible, config version: " + configVersion);
+                    }
+                }
+                
+            }
+            else {
+                throw new AbortException("Install Aborted: local ant.install.properties missing config version, must be equal or lower than: " + configVersion);
+            }
+            // end version control
+
+            Page[] allPages = installer.getPages();
+            handleDefaults( ctx, allPages, predefinedProps );
+
+		}
+	}
+
+    /*
+     * Use the supplied properties to pre-populate the page fields
+     */
+	private void handleDefaults( InstallerContext ctx, Page[] allPages, Properties props ) throws InstallException {
+		for( int i = 0; i < allPages.length; i++ ) {
+            OutputField[] fields = allPages[i].getOutputField();
+            setInputValues( ctx, allPages[i], fields, props );
+        }
+    }
+
+    private void setInputValues( InstallerContext ctx, Page page, OutputField[] outputFields, Properties props )
+            throws InstallException {
+        //Should never happen, but guard against it
+        if( outputFields == null ) {
+            return;
+        }
+
+        // find relevant targets
+        String targets = props.getProperty(page.getName() + PropertiesFileRenderer.TARGETS_SUFFIX);
+        List targetsList = splitTargets(targets);
+
+        for (int j = 0; j < outputFields.length; j++) {
+            OutputField field = outputFields[j];
+
+            if( field instanceof ConditionalField )  {
+                ConditionalField condField = (ConditionalField) field;
+                setInputValues( ctx, page, condField.getFields(), props );
+            }
+            else if( field instanceof InputField ) {
+                InputField input = (InputField)field;
+                String propName = input.getProperty();
+                if( props.containsKey( propName ) ) {
+                    String value = props.getProperty(propName);
+
+                    if( ctx.getInstaller().isDebug() ) {
+                           ctx.log( "Setting " + propName + "=" + value );
+                    }
+
+                    input.setDefaultValue(value); // does not evaluate references
+                    input.setInputResult(value);
+                    input.setEditted( true );
+
+                    if(field instanceof PasswordTextInput) {
+                        if(value == null ){
+                            ctx.getMessageRenderer().printMessage(res.getString("promptMissingDefaultPassword"));
+
+                        }
+                    }
+
+                    // TARGET TYPES
+                    if(field instanceof TargetInput) {
+                        // Target and SelectTarget
+                        TargetInput tgtInput = (TargetInput)field;
+                        page.removeTarget(tgtInput.getIdx());
+                        // if target was selected
+                        if( ! InputField.isFalse(value)) {
+                            page.addTarget(tgtInput.getIdx(), tgtInput.getTarget()); // returns the OS specific suffix if relevant
+                            // DEBUG
+                            if( ! targetsList.contains(tgtInput.getTarget()) ){ 
+                                // could be caused by someone trying to copy a file across platforms (not a good idea)
+                                ctx.log("Defaults error: targets list for page " + page.getName()
+                                        + " should contain a TargetInput that was true");
+                            }
+                        }
+                        else {
+                            if(InputField.isTrue( tgtInput.getForce()) ) {
+                                String msg = "Defaults error: forced target for page " + page.getName()
+                                + " has been removed";
+                                ctx.log(msg);
+                                throw new InstallException(msg);
+                            }
+                        }
+                    }
+                    if(field instanceof TargetSelectInput) {
+                        TargetSelectInput tgtInput = (TargetSelectInput)field;
+                        page.removeTarget(tgtInput.getIdx());
+                        // one target must be selected (what if the page was not shown??)
+                        page.addTarget(tgtInput.getIdx(), value);
+                    }
+                }
+            }
+            //TODO: Should properties that are present in properties file but which do not appear
+            //      as an InputField be set in the ResultContainer so that they can be used by later
+            //      "if" conditions? - no other properties should be loaded separately from additional
+            //      resource files if there is a requirement for that using an postDisplayTarget - PH
+        }
+
+        //Page targets should be handled by the config loader process and indexed correctly
+        List pageTargets = page.getTargets(ctx);
+        Iterator iter = targetsList.iterator();
+        while (iter.hasNext()) {
+            String targetPerProps = (String) iter.next();
+            if( ! pageTargets.contains(targetPerProps)) {
+                ctx.log("Defaults warning: targets list for page " + page.getName()
+                        + " should contain " + targetPerProps);
+            }
+        }
+
+    }
+
+    /**
+     * Check if external properties have been loaded
+     *
+     * @return <code>true</code> if an external properties file was configured and contained
+     *       at least one property
+     */
+    protected boolean isPropertiesLoaded() {
+        return (definedPropertiesCount > 0);
+    }
+
+    /*
+     * Primarily for unit testing
+     */
+    int getPropertiesFoundCount() {
+        return definedPropertiesCount;
+    }
+
+    /**
+     * Load properties from a properties file if present.
+     * The name of the properties file is checked for in the following order.
+     * <p>
+     * If the parameter fileNamePropertyName is not null:
+     * <ul>
+     * <li>the environment is checked for an environmentvariable with that name</li>
+     * <li>java system properties are checked for a property with that name</li>
+     * </ul>
+     * If the file name has not been found, or if <code>fileNamePropertyName == null</code>
+     * then the default file name is used - @see{org.tp23.antinstaller.PropertiesFileRenderer#PROPERTIES_FILE_NAME}
+     *
+     * @param context installer context
+     * @param fileNamePropertyName name of environment variable or java system property containing the
+     *                             name of the properties file to be loaded or <code>null</code>
+     * @return properties
+     * @throws InstallException if the properties file is missing or an error occurs loading it
+     */
+    private Properties loadPredefinedProperties( final InstallerContext context,
+                                                 final String           fileNamePropertyName )
+            throws InstallException {
+
+        Properties contextProps = InstallerContext.getEnvironment();
+        String propertiesFileName = null;
+        boolean failSilently = true;
+
+        if( fileNamePropertyName != null ) {
+            propertiesFileName = contextProps.getProperty( InstallerContext.ENV_PREFIX + fileNamePropertyName );
+
+            if( propertiesFileName == null ) {
+                propertiesFileName =
+                        contextProps.getProperty( InstallerContext.JAVA_PREFIX + fileNamePropertyName );
+            }
+
+            if( propertiesFileName != null ) {
+                //Properties have been passed explicitly to installer so must load them
+                failSilently = false;
+            }
+        }
+
+        if( propertiesFileName == null ) {
+            propertiesFileName = PropertiesFileRenderer.PROPERTIES_FILE_NAME;
+        }
+
+        Properties definedProperties = new Properties( );
+
+        if( propertiesFileName != null ) {
+            File definedPropertiesFile = new File( propertiesFileName );
+            context.log( "Loading pre-defined properties from file "
+                           + definedPropertiesFile.getAbsolutePath());
+
+            //TODO: Support loading properties file from via classloader as a resource
+            try {
+                FileInputStream istream = new FileInputStream( definedPropertiesFile );
+                definedProperties.load( istream );
+                istream.close();
+            }
+            catch( FileNotFoundException fnfExc ) {
+                if( !failSilently ) {
+                    throw new InstallException( "Defined properties file "
+                                                + definedPropertiesFile.getAbsolutePath()
+                                                + " doesn't exist" );
+                }
+            }
+            catch( IOException ioExc ) {
+                if( !failSilently ) {
+                    throw new InstallException( "Unable to read contents of defined properties file "
+                                                 + definedPropertiesFile.getAbsolutePath(),
+                                                ioExc );
+                }
+            }
+
+            if( context.getInstaller().isDebug() ) {
+                logPropertiesLoaded( context, definedProperties, definedPropertiesFile );
+            }
+
+        }
+
+        return definedProperties;
+    }
+
+
+    // Debug - log properties loaded
+    private void logPropertiesLoaded( final InstallerContext context,
+                                      final Properties properties,
+                                      final File propertiesFile ) {
+        Iterator iterator = properties.keySet().iterator();
+        context.log( "Predefined properties ("
+                        + definedPropertiesCount
+                        + ") loaded from "
+                        + propertiesFile.getAbsolutePath()
+                        + "..." );
+        while( iterator.hasNext() ) {
+            String key = (String) iterator.next();
+            context.log( key + "=" + properties.getProperty( key ) );
+        }
+    }
+
+	/*
+	 * Could do a String.split(",") but want to avoid 1.4 specific stuff generally
+	 * @param commaSeparated
+	 * @return
+	 */
+	private List splitTargets(String commaSeparated) {
+		if(commaSeparated == null) {
+			return Collections.EMPTY_LIST;
+		}
+		StringTokenizer st = new StringTokenizer(commaSeparated, ",");
+		List targets = new ArrayList();
+		while (st.hasMoreElements()) {
+			String element = st.nextToken();
+			if(element != null){
+				element = element.trim();
+				if(element.length() > 0){
+					targets.add(element.trim());
+				}
+			}
+		}
+		return targets;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/PropertyPrinterFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/PropertyPrinterFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/PropertyPrinterFilter.java	(revision 14989)
@@ -0,0 +1,83 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.tp23.antinstaller.DefaultPropertiesFileRenderer;
+import org.tp23.antinstaller.ExplicitPropertiesFileRenderer;
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.PropertiesFileRenderer;
+import org.tp23.antinstaller.input.ResultContainer;
+
+
+/**
+ * @author Paul Hinds
+ * @version $Id: PropertyPrinterFilter.java,v 1.5 2006/12/28 00:57:53 teknopaul Exp $
+ */
+public class PropertyPrinterFilter implements ExecuteFilter {
+
+	/**
+	 * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+	 */
+	public void exec(InstallerContext ctx) throws InstallException {
+		ResultContainer results = ctx.getInstaller().getResultContainer();
+		results.setProperty(PropertiesFileRenderer.FILE_ROOT_PROPERTY,
+							ctx.getFileRoot().getAbsolutePath());
+
+        printProperties(ctx);
+		
+		if(ctx.getInstaller().isVerbose()){
+			ctx.log("Properties printed:" + ctx.getFileRoot().getAbsolutePath() 
+                    + File.separatorChar + PropertiesFileRenderer.PROPERTIES_FILE_NAME);
+		}
+	}
+	/**
+	 *
+	 * @param installer Installer
+	 * @throws IOException
+	 */
+	private void printProperties(InstallerContext ctx) {
+		PropertiesFileRenderer propRenderer;
+		if(ctx.getInstaller().isVerbose()){
+			propRenderer = new ExplicitPropertiesFileRenderer();
+		}
+		else{
+			propRenderer = new DefaultPropertiesFileRenderer();
+		}
+		// render properties for reuse in auto builds
+		File currentDir = new File(".");
+        ctx.log("auto build supported: " + ctx.getInstaller().supportsAutoBuild());
+        boolean alreadyWritten = false;
+		if(currentDir.canWrite() && ctx.getInstaller().supportsAutoBuild()){
+            if(ctx.getInstaller().isVerbose()){
+                try {
+                    ctx.log("Rendering properties in the current directory: " + currentDir.getCanonicalPath());
+                } catch (IOException e) {
+                    // oh well never mind
+                }
+            }
+			propRenderer.renderProperties(ctx, currentDir);
+            alreadyWritten = true;
+		}
+		if( ! currentDir.equals(ctx.getFileRoot()) || !alreadyWritten){
+			propRenderer.renderProperties(ctx, ctx.getFileRoot());
+		}
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/nonextractor.fconfig
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/nonextractor.fconfig	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/nonextractor.fconfig	(revision 14989)
@@ -0,0 +1,11 @@
+#
+# Default config for the NonExtractor
+#
+org.tp23.antinstaller.runtime.exe.CreateLoggerFilter
+org.tp23.antinstaller.runtime.exe.InputStreamLoadConfigFilter
+org.tp23.antinstaller.runtime.exe.CreateUIFilter
+org.tp23.antinstaller.runtime.exe.PropertyLoaderFilter
+org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter
+org.tp23.antinstaller.runtime.exe.PropertyPrinterFilter
+org.tp23.antinstaller.runtime.exe.AntProjectFilter
+org.tp23.antinstaller.runtime.exe.FinalizerFilter
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/script.fconfig
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/script.fconfig	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/script.fconfig	(revision 14989)
@@ -0,0 +1,11 @@
+#
+# Default config for the Install started with a script
+#
+org.tp23.antinstaller.runtime.exe.CreateLoggerFilter
+org.tp23.antinstaller.runtime.exe.LoadConfigFilter
+org.tp23.antinstaller.runtime.exe.CreateUIFilter
+org.tp23.antinstaller.runtime.exe.PropertyLoaderFilter
+org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter
+org.tp23.antinstaller.runtime.exe.PropertyPrinterFilter
+org.tp23.antinstaller.runtime.exe.AntLauncherFilter
+org.tp23.antinstaller.runtime.exe.FinalizerFilter
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/selfextractor.fconfig
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/selfextractor.fconfig	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/exe/selfextractor.fconfig	(revision 14989)
@@ -0,0 +1,11 @@
+#
+# Default config for the SelfExtractor
+#
+org.tp23.antinstaller.runtime.exe.CreateLoggerFilter
+org.tp23.antinstaller.runtime.exe.LoadConfigFilter
+org.tp23.antinstaller.runtime.exe.CreateUIFilter
+org.tp23.antinstaller.runtime.exe.PropertyLoaderFilter
+org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter
+org.tp23.antinstaller.runtime.exe.PropertyPrinterFilter
+org.tp23.antinstaller.runtime.exe.AntLauncherFilter
+org.tp23.antinstaller.runtime.exe.FinalizerFilter
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/CompoundExpression.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/CompoundExpression.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/CompoundExpression.java	(revision 14989)
@@ -0,0 +1,38 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: CompoundExpression.java,v 1.1 2006/09/08 19:16:22
+ *          anothermwilson Exp $
+ * @since 0.7.4 patch 2
+ */
+public class CompoundExpression implements Expression {
+
+	private Expression expression1;
+	private LogicalTest test;
+	private Expression expression2;
+
+	public CompoundExpression(Expression expr1, final LogicalTest logicalTest, Expression expr2) {
+		this.expression1 = expr1;
+		this.expression2 = expr2;
+		this.test = logicalTest;
+	}
+
+	public boolean evaluate() {
+		return test.getTestResult(expression1, expression2);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/EndsWithTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/EndsWithTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/EndsWithTest.java	(revision 14989)
@@ -0,0 +1,33 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: EndsWithTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+public class EndsWithTest extends ValuesTest {
+	
+	private static final String[] TEST_TOKENS = { "$=" };
+
+	public String[] getTestTokens() {
+		return TEST_TOKENS;
+	}
+
+	protected boolean getTestResult(final String value, final String expectedValue) {
+		return (value != null) && value.endsWith(expectedValue);
+
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/EqualsTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/EqualsTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/EqualsTest.java	(revision 14989)
@@ -0,0 +1,42 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: EqualsTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+public class EqualsTest extends ValuesTest {
+
+	private static final String[] TEST_TOKENS = { "==", "=" };
+
+	public String[] getTestTokens() {
+		return TEST_TOKENS;
+	}
+
+	protected boolean getTestResult(final String propValue, final String expectedValue) {
+		// Where the expected value is null, empty string must also match
+		if (expectedValue == null) {
+			return (propValue == null) || propValue.equals("");
+		}
+
+		if ((propValue != null) && propValue.equals(expectedValue)) {
+			return true;
+		}
+
+		return false;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/Expression.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/Expression.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/Expression.java	(revision 14989)
@@ -0,0 +1,25 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: Expression.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+
+public interface Expression {
+	public boolean evaluate();
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java	(revision 14989)
@@ -0,0 +1,211 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.logic;
+
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.tp23.antinstaller.input.ResultContainer;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+
+/**
+ * @author mwilson
+ * @version $Id: ExpressionBuilder.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+public class ExpressionBuilder {
+	private static final int GROUPING_START_OPERATOR = '(';
+
+	private static final int GROUPING_END_OPERATOR = ')';
+
+	private static final ValuesTest[] testValueConditions = { 
+		new EndsWithTest(), 
+		new EqualsTest(), 
+		new GreaterThanOrEqualsTest(),
+		new LessThanOrEqualsTest(), 
+		new NotEqualsTest(), 
+		new StartsWithTest() 
+	};
+
+	private static final LogicalTest[] testLogicalConditions = { 
+		new LogicalAndTest(), 
+		new LogicalOrTest() 
+	};
+
+	private static final SingleExpressionTest SINGLE_EXPRESSION_TEST = new SingleExpressionTest();
+
+	private static Map tokenMap = new HashMap();
+
+	private static String[] valueTokens;
+
+	private static String[] logicalTokens;
+
+	static {
+		for (int i = 0; i < testValueConditions.length; i++) {
+			String[] tmpTokens = testValueConditions[i].getTestTokens();
+			for (int j = 0; j < tmpTokens.length; j++) {
+				tokenMap.put(tmpTokens[j], testValueConditions[i]);
+			}
+		}
+
+		valueTokens = new String[tokenMap.size()];
+		int index = 0;
+		for (int i = 0; i < testValueConditions.length; i++) {
+			String[] tmpTokens = testValueConditions[i].getTestTokens();
+			for (int j = 0; j < tmpTokens.length; j++) {
+				valueTokens[index++] = tmpTokens[j];
+			}
+		}
+
+		Comparator lengthComparator = new StringLengthComparator();
+
+		//Have to sort so that longest test operator is checked for first
+		Arrays.sort(valueTokens, lengthComparator);
+
+		index = 0;
+		final int mapInitialSize = tokenMap.size();
+
+		for (int i = 0; i < testLogicalConditions.length; i++) {
+			String[] tmpTokens = testLogicalConditions[i].getTestTokens();
+			for (int j = 0; j < tmpTokens.length; j++) {
+				tokenMap.put(tmpTokens[j], testLogicalConditions[i]);
+			}
+		}
+
+		logicalTokens = new String[tokenMap.size() - mapInitialSize];
+		for (int i = 0; i < testLogicalConditions.length; i++) {
+			String[] tmpTokens = testLogicalConditions[i].getTestTokens();
+			for (int j = 0; j < tmpTokens.length; j++) {
+				logicalTokens[index++] = tmpTokens[j];
+			}
+		}
+
+		Arrays.sort(logicalTokens, lengthComparator);
+
+	}
+
+	public static Expression parseLogicalExpressions(ResultContainer container, String exprStr) throws ConfigurationException {
+		int startIndex = skipWhiteSpace(exprStr, 0);
+		int index = exprStr.indexOf(GROUPING_START_OPERATOR, startIndex);
+
+		if (index == -1) {
+			return getSimpleExpression(container, exprStr.substring(startIndex));
+		}
+
+		if (index != 0) {
+			throw new ConfigurationException("Illegal ifProperty value: If present, grouping operator " + GROUPING_START_OPERATOR
+					+ " must be at start of property string");
+		}
+
+		++startIndex; //Skip over grouping operator
+
+		int endIndex = exprStr.indexOf(GROUPING_END_OPERATOR, startIndex);
+
+		if (endIndex == -1) {
+			throw new ConfigurationException("Missing closing grouping bracket " + GROUPING_END_OPERATOR + " in expression " + exprStr);
+		}
+
+		//Check that this isn't an attempt tu use nested logical tests - not supported
+		int tstIndex = exprStr.indexOf(GROUPING_START_OPERATOR, startIndex);
+		if ((tstIndex != -1) && (tstIndex < endIndex)) {
+			throw new ConfigurationException("Nesting of logical operations is not supported: " + exprStr);
+		}
+
+		try {
+			Expression expr1 = parseLogicalExpressions(container, exprStr.substring(startIndex, endIndex));
+
+			LogicalTest test = null;
+
+			startIndex = endIndex + 1;
+
+			//Look for logical operator token
+			String logicalToken = getLogicalToken(exprStr, startIndex);
+
+			for (int i = 0; i < logicalTokens.length; i++) {
+
+				if (logicalTokens[i].compareTo(logicalToken) == 0) {
+					test = (LogicalTest) tokenMap.get(logicalTokens[i]);
+					index = exprStr.indexOf(logicalTokens[i], startIndex);
+					startIndex = index + logicalTokens[i].length();
+					break;
+				}
+			}
+
+			if (test == null) {
+				return new CompoundExpression(expr1, SINGLE_EXPRESSION_TEST, null);
+			} else {
+				startIndex = skipWhiteSpace(exprStr, startIndex);
+				String expr2Str = exprStr.substring(startIndex, exprStr.length());
+				return new CompoundExpression(expr1, test, parseLogicalExpressions(container, expr2Str));
+
+			}
+		} catch (Exception e) {
+			throw new ConfigurationException("Invalid ifProperty expression");
+		}
+	}
+
+	private static Expression getSimpleExpression(ResultContainer resultContainer, String exprStr) throws ConfigurationException {
+		try {
+			int index = -1;
+			int i;
+
+			for (i = 0; i < valueTokens.length; i++) {
+				index = exprStr.indexOf(valueTokens[i]);
+
+				if (index != -1) {
+					break;
+				}
+			}
+
+			return new SimpleExpression(resultContainer, exprStr.substring(0, index), (ValuesTest) tokenMap.get(valueTokens[i]), exprStr
+					.substring(index + valueTokens[i].length()));
+		} catch (Exception e) { // can be StringIndexOutOfBoundsException - PH
+			throw new ConfigurationException("Invalid ifProperty expression");
+		}
+	}
+
+	private static int skipWhiteSpace(final String str, final int startIndex) {
+		final int strLen = str.length();
+		int index = startIndex;
+
+		while (index < strLen) {
+			if ((str.charAt(index) != ' ') && (str.charAt(index) != '\t')) {
+				break;
+			}
+
+			++index;
+		}
+
+		return index;
+	}
+
+	private static String getLogicalToken(final String str, final int startIndex) {
+		final int strLen = str.length();
+		int tokenStart = skipWhiteSpace(str, startIndex);
+		int endIndex = tokenStart;
+
+		while (endIndex < strLen) {
+			int chr = str.charAt(endIndex);
+			if ((chr == ' ') || (chr == '\t') || (chr == GROUPING_START_OPERATOR)) {
+				break;
+			}
+
+			++endIndex;
+		}
+
+		return str.substring(tokenStart, endIndex);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/GreaterThanOrEqualsTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/GreaterThanOrEqualsTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/GreaterThanOrEqualsTest.java	(revision 14989)
@@ -0,0 +1,33 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: GreaterThanOrEqualsTest.java,v 1.1 2006/09/08 19:16:27
+ *          anothermwilson Exp $
+ * @since 0.7.4 patch 2
+ */
+public class GreaterThanOrEqualsTest extends ValuesTest {
+	
+	private static final String[] TEST_TOKENS = { "+=" };
+
+	public String[] getTestTokens() {
+		return TEST_TOKENS;
+	}
+
+	protected boolean getTestResult(final String value1, final String value2) {
+		return Double.parseDouble(value1) >= Double.parseDouble(value2);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LessThanOrEqualsTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LessThanOrEqualsTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LessThanOrEqualsTest.java	(revision 14989)
@@ -0,0 +1,33 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: LessThanOrEqualsTest.java,v 1.1 2006/09/08 19:16:27
+ *          anothermwilson Exp $
+ * @since 0.7.4 patch 2
+ */
+public class LessThanOrEqualsTest extends ValuesTest {
+	
+	private static final String[] TEST_TOKENS = { "-=" };
+
+	public String[] getTestTokens() {
+		return TEST_TOKENS;
+	}
+
+	protected boolean getTestResult(final String value1, final String value2) {
+		return Double.parseDouble(value1) <= Double.parseDouble(value2);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LiteralValue.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LiteralValue.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LiteralValue.java	(revision 14989)
@@ -0,0 +1,38 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: LiteralValue.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+public class LiteralValue implements Value {
+	
+	public static final String NULL = "null";
+	private final String value;
+
+	public LiteralValue(final String value) {
+		if ((value != null) && (value.equals(NULL))) {
+			this.value = null;
+		} else {
+			this.value = value;
+		}
+	}
+
+	public String getValue() {
+		return value;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LogicalAndTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LogicalAndTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LogicalAndTest.java	(revision 14989)
@@ -0,0 +1,41 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: LogicalAndTest.java,v 1.1 2006/09/08 19:16:28 anothermwilson
+ *          Exp $
+ * @since 0.7.4 patch 2
+ */
+public class LogicalAndTest implements LogicalTest {
+
+	private static final String[] TEST_TOKENS = { "&&", "AND" };
+
+	public String[] getTestTokens() {
+		return TEST_TOKENS;
+	}
+
+	public boolean getTestResult(Expression expression1, Expression expression2) {
+
+		boolean result = false;
+
+		if (expression1 != null && expression2 != null) {
+			result = expression1.evaluate() && expression2.evaluate();
+		}
+
+		return result;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LogicalOrTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LogicalOrTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LogicalOrTest.java	(revision 14989)
@@ -0,0 +1,43 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: LogicalOrTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+public class LogicalOrTest implements LogicalTest {
+	
+	private static final String[] TEST_TOKENS = { "||", "OR" };
+
+	public String[] getTestTokens() {
+		return TEST_TOKENS;
+	}
+
+	public boolean getTestResult(Expression expression1, Expression expression2) {
+		boolean isTrue = false;
+
+		if (expression1 != null) {
+			isTrue = expression1.evaluate();
+		}
+		if (!isTrue && (expression2 != null)) {
+			isTrue = expression2.evaluate();
+		}
+
+		return isTrue;
+
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LogicalTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LogicalTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/LogicalTest.java	(revision 14989)
@@ -0,0 +1,27 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: LogicalTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+
+public interface LogicalTest extends TestOperator {
+	
+	public boolean getTestResult(Expression expression1, Expression expression2);
+	
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/NotEqualsTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/NotEqualsTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/NotEqualsTest.java	(revision 14989)
@@ -0,0 +1,38 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: NotEqualsTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+public class NotEqualsTest extends ValuesTest {
+	
+	private static final String[] TEST_TOKENS = { "!=" };
+
+	public String[] getTestTokens() {
+		return TEST_TOKENS;
+	}
+
+	protected boolean getTestResult(final String propValue, final String expectedValue) {
+		if (expectedValue == null) {
+			return propValue != null && !propValue.equals("");
+		}
+
+		return (propValue == null) || !propValue.equals(expectedValue);
+
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/SimpleExpression.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/SimpleExpression.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/SimpleExpression.java	(revision 14989)
@@ -0,0 +1,68 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+import org.tp23.antinstaller.input.ResultContainer;
+import org.tp23.antinstaller.runtime.ConfigurationException;
+
+/**
+ * @author mwilson
+ * @version $Id: SimpleExpression.java,v 1.1 2006/09/08 19:16:30 anothermwilson
+ *          Exp $
+ * @since 0.7.4 patch 2
+ */
+public class SimpleExpression implements Expression {
+
+	private final Value value1;
+	private final ValuesTest testCondition;
+	private final Value value2;
+	private final String literalValue1;
+	private final String literalValue2;
+
+	public SimpleExpression(
+				final ResultContainer resultContainer, 
+				final String value1, 
+				final ValuesTest test, 
+				final String value2)
+			throws ConfigurationException {
+		
+		this.literalValue1 = value1;
+		this.value1 = getValue(resultContainer, value1);
+		this.testCondition = test;
+		this.literalValue2 = value2;
+		this.value2 = getValue(resultContainer, value2);
+		
+	}
+
+	public boolean evaluate() {
+		return testCondition.getTestResult(value1, value2);
+	}
+
+	private Value getValue(ResultContainer container, String valueStr) throws ConfigurationException {
+		if ( (valueStr.length() > 0) && (valueStr.charAt(0) == '$') ) {
+			if ( valueStr.startsWith("${") && valueStr.endsWith("}") ) {
+				return new VariableValue(container, valueStr);
+			} else {
+				throw new ConfigurationException("Badly formed variable: '" + valueStr + "'");
+			}
+		} else {
+			return new LiteralValue(valueStr);
+		}
+	}
+
+	public String toString() {
+		return "[" + literalValue1 + "==" + literalValue2 + "]";
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java	(revision 14989)
@@ -0,0 +1,34 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: SingleExpressionTest.java,v 1.1 2006/09/08 19:16:30
+ *          anothermwilson Exp $
+ * @since 0.7.4 patch 2
+ */
+public class SingleExpressionTest implements LogicalTest {
+	
+	private static final String[] EMPTY_TOKEN_LIST = new String[0];
+
+	public boolean getTestResult(Expression expression1, Expression expression2) {
+		return expression1.evaluate();
+	}
+
+	public String[] getTestTokens() {
+		return EMPTY_TOKEN_LIST;
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/StartsWithTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/StartsWithTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/StartsWithTest.java	(revision 14989)
@@ -0,0 +1,35 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: StartsWithTest.java,v 1.1 2006/09/08 19:16:30 anothermwilson
+ *          Exp $
+ * @since 0.7.4 patch 2
+ */
+public class StartsWithTest extends ValuesTest {
+	
+	private static final String[] TEST_TOKENS = { "^=" };
+
+	public String[] getTestTokens() {
+		return TEST_TOKENS;
+	}
+
+	protected boolean getTestResult(final String value1, final String value2) {
+		return (value1 != null) && value1.startsWith(value2);
+
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/StringLengthComparator.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/StringLengthComparator.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/StringLengthComparator.java	(revision 14989)
@@ -0,0 +1,46 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+import java.util.Comparator;
+
+import org.apache.tools.ant.taskdefs.Length;
+
+/**
+ * Compare strings based on their length. Used by ExpressionBuilder to ensure
+ * that longest match is attempted first.
+ * 
+ * @author mwilson
+ * @version $Id: StringLengthComparator.java,v 1.1 2006/09/08 19:16:31
+ *          anothermwilson Exp $
+ * @since 0.7.4 patch 2
+ */
+
+public class StringLengthComparator implements Comparator {
+
+	/**
+	 * Sort by descending String length
+	 * 
+	 * @param o1 first string
+	 * @param o2 second string
+	 * @return difference between the length of o2 and o1
+	 */
+	public int compare(Object o1, Object o2) {
+		String str1 = (String) o1;
+		String str2 = (String) o2;
+		return (str2.length() - str1.length());
+	}
+    
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/TestOperator.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/TestOperator.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/TestOperator.java	(revision 14989)
@@ -0,0 +1,27 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: TestOperator.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+
+public interface TestOperator {
+	
+	public String[] getTestTokens();
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/Value.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/Value.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/Value.java	(revision 14989)
@@ -0,0 +1,26 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: Value.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+
+public interface Value {
+
+	public String getValue();
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/ValuesTest.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/ValuesTest.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/ValuesTest.java	(revision 14989)
@@ -0,0 +1,30 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+/**
+ * @author mwilson
+ * @version $Id: ValuesTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+
+public abstract class ValuesTest implements TestOperator {
+
+	public boolean getTestResult(final Value value1, final Value value2) {
+		return getTestResult(value1.getValue(), value2.getValue());
+	}
+
+	abstract protected boolean getTestResult(final String value1Str, final String value2Str);
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/VariableValue.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/VariableValue.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/runtime/logic/VariableValue.java	(revision 14989)
@@ -0,0 +1,42 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+
+package org.tp23.antinstaller.runtime.logic;
+
+import org.tp23.antinstaller.input.ResultContainer;
+
+/**
+ * @author mwilson
+ * @version $Id: VariableValue.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+ * @since 0.7.4 patch 2
+ */
+public class VariableValue implements Value {
+
+	private final ResultContainer valueHolder;
+	private final String propertyName;
+
+	public VariableValue(final ResultContainer container, final String propertyName) {
+		valueHolder = container;
+		this.propertyName = propertyName;
+	}
+
+	public String getValue() {
+		/*
+		 * Use somewhat misleadingly named method getDefaultValue() It doesn't
+		 * return the default value, it returns the current value of a property
+		 * referenced by the use of ${propertyname} syntax
+		 */
+		return valueHolder.getDefaultValue(propertyName);
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/NonExtractor.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/NonExtractor.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/NonExtractor.java	(revision 14989)
@@ -0,0 +1,66 @@
+ /* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.selfextract;
+
+import java.io.File;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.runtime.ExecInstall;
+import org.tp23.antinstaller.runtime.exe.FilterChain;
+import org.tp23.antinstaller.runtime.exe.FilterFactory;
+
+/**
+ * This class is a replacement for the SelfExtractor that provides a similar
+ * function to the SelfExtractor but avoids the need to extract all the
+ * files prior to running the build.  When using this extractor the project
+ * is run from the Jar but It is the Ant builds responsibility to access
+ * resources from within the Jar the Jar itself can be referenced using 
+ * the Ant property "antinstaller.jar".  The build file is automatically read
+ * from the Jar.
+ * @author Paul Hinds
+ * @version $Id: NonExtractor.java,v 1.4 2006/12/15 21:16:39 teknopaul Exp $
+ */
+public class NonExtractor extends SelfExtractor{
+	
+	/** used by AntProjectFilter */
+	public static final String ANTINSTALLER_JAR_PROPERTY = "antinstaller.jar";
+	public static final String CONFIG_RESOURCE = "/org/tp23/antinstaller/runtime/exe/nonextractor.fconfig";
+	
+	/**
+	 * Run method to use from the command line. This is fired via an entry in the 
+	 * MANIFEST.MF in the Jar
+	 *@param  args  The command line arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			SelfExtractor extractor = null;
+			extractor = new NonExtractor();
+			FilterChain chain = FilterFactory.factory(CONFIG_RESOURCE);
+			ExecInstall installExec = new ExecInstall(chain);
+			installExec.parseArgs(args, false);
+
+			// create temporary space for the build to be removed on exit
+			File temp = extractor.makeTempDir();
+			installExec.setTempRoot(temp);
+			installExec.setInstallRoot(temp);
+			installExec.exec();
+		}
+		catch (InstallException e) {
+			System.out.println("Can't load filter chain: " + CONFIG_RESOURCE);
+			e.printStackTrace();
+		}
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/ProgressIndicator.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/ProgressIndicator.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/ProgressIndicator.java	(revision 14989)
@@ -0,0 +1,163 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.selfextract;
+
+import java.awt.BorderLayout;
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.GraphicsConfiguration;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.util.ResourceBundle;
+
+import javax.swing.BorderFactory;
+import javax.swing.ImageIcon;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+import javax.swing.UIManager;
+import javax.swing.border.BevelBorder;
+import javax.swing.border.Border;
+
+
+
+/**
+ *
+ * <p>Frame to indicate progress of the extraction of a SelfExctracting archive </p>
+ * <p> </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: tp23</p>
+ * @author Paul Hinds
+ * @version $Id: ProgressIndicator.java,v 1.3 2007/01/28 08:44:40 teknopaul Exp $
+ */
+public class ProgressIndicator
+	extends JFrame {
+
+	public static final String IMAGE_RESOURCE = "/resources/extract-image.png";
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
+
+	private JPanel jPanel1 = new JPanel();
+	private JProgressBar jProgressBar1 = new JProgressBar();
+	private JLabel textLabel = new JLabel();
+	private Border border1;
+	private int max = 0;
+	private static int PAGE_WIDTH = 160;
+	private static int PAGE_HEIGHT = 110; // 35 is text + bar
+	private String title = res.getString("extracting");
+	private JLabel imagePanel = new JLabel();
+	GridBagLayout gridBagLayout1 = new GridBagLayout();
+	private boolean useIcon = true;
+
+
+
+	public ProgressIndicator(int max) {
+		this.max = max;
+		jbInit();
+	}
+
+	public ProgressIndicator(int max, String title) {
+		this.max = max;
+		this.title = title;
+		jbInit();
+	}
+
+	private void setLocation() {
+		GraphicsConfiguration config = getGraphicsConfiguration();
+		int x = (int) config.getBounds().getCenterX() - (PAGE_WIDTH / 2);
+		int y = (int) config.getBounds().getCenterY() - (PAGE_HEIGHT / 2);
+		setLocation(x, y);
+	}
+
+
+	private void jbInit() {
+		border1 = BorderFactory.createCompoundBorder(
+			BorderFactory.createBevelBorder(BevelBorder.RAISED),
+			BorderFactory.createEmptyBorder(4, 4, 4, 4));
+		jPanel1.setLayout(gridBagLayout1);
+		int row = 0;
+		this.getContentPane().add(jPanel1, BorderLayout.CENTER);
+		if (useIcon) {
+			PAGE_HEIGHT = 110;
+			setImage();
+			jPanel1.add(imagePanel, new GridBagConstraints(0, row++, 1, 1, 0.1, 0.9
+				, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));
+			this.setSize(new Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+		}
+		else {
+			PAGE_HEIGHT = 40;
+			this.setSize(new Dimension(PAGE_WIDTH, 35));
+		}
+		jPanel1.setBorder(border1);
+		jPanel1.setMaximumSize(new Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+		jPanel1.setMinimumSize(new Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+		jPanel1.setPreferredSize(new Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+		textLabel.setText(title);
+		this.setTitle(title);
+		jPanel1.add(textLabel, new GridBagConstraints(0, row++, 1, 1, 0.1, 0.1
+			, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));
+		jPanel1.add(jProgressBar1, new GridBagConstraints(0, row++, 1, 1, 0.1, 0.1
+			, GridBagConstraints.SOUTH, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));
+		jProgressBar1.setMinimum(0);
+		jProgressBar1.setMaximum(max);
+		this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+		this.setSize(new Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+		this.setResizable(false);
+		this.setUndecorated(true);
+		setLocation();
+	}
+
+	public void tick() {
+		jProgressBar1.setValue(jProgressBar1.getValue() + 1);
+	}
+
+	private void setImage() {
+		try {
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			InputStream in = this.getClass().getResourceAsStream(IMAGE_RESOURCE);
+			byte[] buffer = new byte[2048];
+			int read = -1;
+			while ( (read = in.read(buffer)) != -1) {
+				baos.write(buffer, 0, read);
+			}
+			ImageIcon icon = new ImageIcon(baos.toByteArray());
+			imagePanel.setHorizontalAlignment(JLabel.CENTER);
+			imagePanel.setIcon(icon);
+		}
+		catch (Exception ex) {
+		}
+	}
+
+    /**
+     * TODO move to JUnit
+     * @param args
+     */
+	public static void main(String[] args) {
+		try {
+			ProgressIndicator indicator = null;
+			indicator = new ProgressIndicator(200);
+			indicator.show();
+			UIManager.setLookAndFeel("org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel");
+		}
+		catch (Exception ex) {
+			// not concerned about Look and Feel
+		}
+
+	}
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/ResourceExtractor.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/ResourceExtractor.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/ResourceExtractor.java	(revision 14989)
@@ -0,0 +1,74 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.selfextract;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+/**
+ * Copies resources from the Classpath to the filesystem replacing regex with replacement
+ * and correcting line endings
+ * @author teknopaul
+ *
+ */
+public class ResourceExtractor {
+	
+	/**
+	 * @param resource Must start with / e.g. /org/tp23/myFile.txt
+	 * @param dest
+	 * @throws IOException 
+	 */
+	public void copyResource(String resource, File dest, String regex, String replace) throws IOException{
+		InputStream is = this.getClass().getResourceAsStream(resource);
+		if(is == null){
+			throw new IOException("Can not find resource: " + resource);
+		}
+		InputStreamReader isr = new InputStreamReader(is);
+		BufferedReader br = new BufferedReader(isr);
+		FileOutputStream bos = new FileOutputStream(dest);
+		String line = null;
+		while((line = br.readLine()) != null){
+			bos.write(line.replaceAll(regex, replace).getBytes());
+			bos.write(System.getProperty("line.separator").getBytes());
+		}
+        bos.flush();
+        bos.close();
+        br.close();
+	}
+	/**
+	 * @param resource Must start with / e.g. /org/tp23/myFile.txt
+	 * @param dest
+	 * @throws IOException 
+	 */
+	public void copyResourceBinary(String resource, File dest) throws IOException{
+		InputStream is = this.getClass().getResourceAsStream(resource);
+		if(is == null){
+			throw new IOException("Can not find resource: " + resource);
+		}
+		FileOutputStream bos = new FileOutputStream(dest);
+		byte[] buffer = new byte[1024];
+		for(int read = 0; (read = is.read(buffer)) > 0; ){
+			bos.write(buffer, 0, read);
+		}
+        bos.flush();
+        bos.close();
+        is.close();
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/SelfExtractor.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/SelfExtractor.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/SelfExtractor.java	(revision 14989)
@@ -0,0 +1,483 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.selfextract;
+
+import java.awt.HeadlessException;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.jar.JarInputStream;
+
+import javax.swing.JOptionPane;
+import javax.swing.UIManager;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.renderer.swing.plaf.LookAndFeelFactory;
+import org.tp23.antinstaller.runtime.ExecInstall;
+import org.tp23.antinstaller.runtime.exe.FilterChain;
+import org.tp23.antinstaller.runtime.exe.FilterFactory;
+
+/**
+ *
+ * <p>Finds a file reference to the Jar that loads this class and then extracts that Jar
+ * to a temporary directory </p>
+ * <p> </p>
+ * @author Paul Hinds
+ * @version $Id: SelfExtractor.java,v 1.10 2007/01/28 08:44:40 teknopaul Exp $
+ */
+public class SelfExtractor {
+
+	public static final String CONFIG_RESOURCE = "/org/tp23/antinstaller/runtime/exe/selfextractor.fconfig";
+	
+	private File extractDir;
+	private File archiveFile;
+	private boolean overwrite = true;
+
+	private static int DEFAULT_BUFFER_SIZE = 1024;
+	private int BUFFER_SIZE = DEFAULT_BUFFER_SIZE;
+	private static boolean graphicsEnv = false;
+	private static String lookAndFeel = null;
+
+	/**
+     * returns the Jar that the reference object was loaded from.  If it was not
+     * loaded from a jar this methods behaviour is undefined
+     * @TODO define what happens
+     * @param reference
+     * @return A java.io.File reference to the Jar
+	 */
+	public static File getEnclosingJar(Object reference) {
+		String thisClass = "/" + reference.getClass().getName().replace('.','/') + ".class";
+		URL jarUrl = reference.getClass().getResource(thisClass);
+		String stringForm = jarUrl.toString();
+		//String fileForm = jarUrl.getFile();
+
+		File file = null;
+		int endIdx = stringForm.indexOf("!/");
+		if(endIdx != -1){
+			String unescaped = null;
+			String fileNamePart = stringForm.substring("jar:file:".length(), endIdx);
+			file = new File(fileNamePart);
+			if ( ! file.exists()) {
+				// try to unescape encase the URL Handler has escaped the " " to %20
+				unescaped = unescape(fileNamePart);
+				file = new File(unescaped);
+			}
+			return file;
+		}
+		throw new RuntimeException("Failed expanding Jar.");
+	}
+
+    /**
+	 * Constructor for the SelfExtractor object.  Directly after constructing
+	 * an instance the init() method should be called unless subclassing
+	 */
+	public SelfExtractor() {
+	}
+
+    /**
+	 * This has been moved from the default constructor to facilitate subclassing
+	 * @return true if the lookAndFeel worked
+	 */
+	public void init(){
+		System.out.println("Loading self extractor...");
+		archiveFile = getEnclosingJar(this);
+		makeTempDir();
+		try {
+			JarFile thisJar = new JarFile(archiveFile);
+			lookAndFeel = thisJar.getManifest().getMainAttributes().getValue("Look-And-Feel");
+			lookAndFeel = LookAndFeelFactory.getLafFromToken(lookAndFeel);
+			if(lookAndFeel != null) {
+                UIManager.setLookAndFeel(lookAndFeel);
+            }
+		}
+		catch (Throwable ex) {
+			// not concerned about Look and Feel
+		}
+	}
+	
+    /**
+     * Creates a new empty temporary directory for the file extraction
+     * @return
+     */
+	protected File makeTempDir(){
+		String tempDir = System.getProperty("java.io.tmpdir");
+		extractDir = new File(tempDir, "antinstall");
+		int idx = 0;
+		while (extractDir.exists()) {
+            extractDir = new File(tempDir, "antinstall" + (idx++));
+        }
+		extractDir.mkdirs();
+		extractDir.deleteOnExit();
+		return extractDir;
+	}
+
+    /**
+	 *  Constructor for the SelfExtractor object that sets the buffersize in use.
+	 *  The write buffer is the same size as the write buffer size because the read buffer reads
+	 *  decompressed bytes
+	 *  @param newBufferSize the size of the read buffer
+	 */
+	public SelfExtractor(int newBufferSize) {
+		BUFFER_SIZE = newBufferSize;
+		archiveFile = getEnclosingJar(this);
+	}
+
+    /**
+	 *  Sets the Directory into which the file will be extracted
+	 *
+	 *@param  newExtractDir  The new extract directory
+	 */
+	public void setExtractDir(File newExtractDir) {
+		extractDir = newExtractDir;
+	}
+
+    /**
+	 *  changes the archive to be extracted
+	 *@param  newArchiveFile  The new archiveFile value
+	 */
+	public void setArchiveFile(File newArchiveFile) {
+		archiveFile = newArchiveFile;
+	}
+
+    /**
+	 *  Gets the Directory into which the files will be extracted that
+	 *  is currently set in the ZipExtractor object
+	 *@return    The extract directory value
+	 */
+	public File getExtractDir() {
+		return extractDir;
+	}
+
+    /**
+	 *  Gets the set in the ZipExtractor
+	 *@return    The archiveFile value
+	 */
+	public boolean isOverwrite() {
+		return overwrite;
+	}
+
+    /**
+	 *  Gets the Directory into which the files will be extracted that
+	 *  is currently set in the ZipExtractor object
+	 *@return    The extract directory value
+	 */
+	public void setOverwrite(boolean overwrite) {
+		this.overwrite = overwrite;
+	}
+
+    /**
+	 *  Gets the set in the ZipExtractor
+	 *@return    The archiveFile value
+	 */
+	public File getArchiveFile() {
+		return archiveFile;
+	}
+
+    /**
+	 *  Opens up the zip and gets a list of the files in it.  If the zip file
+	 *  or the temp file have not been set NullPointerExceptions will get thrown
+	 *@param  vebose  if true Prints out a list of the zips
+	 *      contents on to the command line
+	 *@return  an ArrayList of String objects that will
+	 *         be as per the path in the zip
+	 *@exception  FileNotFoundException  Description of Exception
+	 *@exception  IOException            Description of Exception
+	 */
+	public ArrayList getList(boolean vebose) throws FileNotFoundException, IOException {
+		JarInputStream zis = new JarInputStream(new FileInputStream(archiveFile));
+		JarEntry entry = null;
+		ArrayList result = new ArrayList();
+		while ( (entry = zis.getNextJarEntry()) != null) {
+			if (vebose) {
+				System.out.println(entry.getName());
+			}
+			result.add(entry.getName());
+		}
+		return result;
+	}
+
+    /**
+     * @return the number of files in the jar
+     * @throws FileNotFoundException
+     * @throws IOException
+     */
+	public int getFileCount() throws FileNotFoundException, IOException {
+		JarInputStream zis = new JarInputStream(new FileInputStream(archiveFile));
+		int count = 0;
+		while (  zis.getNextJarEntry() != null) {
+			count++;
+		}
+		return count;
+	}
+
+    /**
+	 *  Opens up the zip and extracts the files to the temp dir.
+	 *
+	 *@param  vebose  if true Prints out a list of the zips contents on to System.out
+	 *@return an ArrayList of java.io.File objects that
+	 *      will be as per the path in the zip with the root being the temp dir
+	 *@exception  FileNotFoundException
+	 *@exception  IOException
+	 */
+	public ArrayList extract(boolean vebose, boolean isX) throws FileNotFoundException, IOException {
+		int fileCount = getFileCount();
+		ProgressIndicator indicator = null;
+        if(isX){
+            try {
+                    indicator = new ProgressIndicator(fileCount);
+                    indicator.show();
+            }
+            catch ( Exception exc ) {
+                /*
+                 * Chances are, there are problems with the graphics environment
+                 * so trying falling back to text mode
+                 */
+                graphicsEnv = false;
+                isX = false;
+            }
+
+        }
+		JarInputStream zis = new JarInputStream(new FileInputStream(archiveFile));
+		JarEntry entry = null;
+		ArrayList result = new ArrayList();
+		while ( (entry = zis.getNextJarEntry()) != null) {
+			if (vebose) {
+				System.out.println("Extracting:" + entry.getName());
+			}
+			result.add(extract(zis, entry));
+			if (isX) {
+				indicator.tick();
+			}
+		}
+		if (isX) {
+			indicator.hide();
+		}
+		zis.close();
+		return result;
+	}
+
+
+
+    /**
+	 *  Extract a single file from the stream. N.B. the stream must be in the correct
+	 *  position for this to work
+	 *@param  zis                        ZipInputStream open and ready
+	 *@param  entry                      A valid entry read from the stream
+	 *@return                            The inflated file generated in the temp dir
+	 *@exception  FileNotFoundException
+	 *@exception  IOException
+	 */
+	private File extract(JarInputStream zis, JarEntry entry) throws FileNotFoundException, IOException {
+		createPath(entry.getName());
+		File fileToUse = new File(extractDir, entry.getName());
+		if (fileToUse.exists()) {
+			if (!overwrite) {
+                return fileToUse;
+            }
+		}
+		else {
+			fileToUse.createNewFile();
+		}
+		if (fileToUse.isDirectory()) {
+            return fileToUse;
+        }
+
+		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(fileToUse), BUFFER_SIZE);
+		byte[] bytes = new byte[BUFFER_SIZE];
+		int len = 0;
+		while ( (len = zis.read(bytes)) >= 0) {
+			bos.write(bytes, 0, len);
+		}
+		bos.close();
+		zis.closeEntry();
+		return fileToUse;
+	}
+
+    /**
+	 *  This adds all the necessary directories in the root of the zip path to the
+	 *  temp dir.
+	 *@param  entryName        The string name in the Zip file (virtual path)
+	 *@exception  IOException  if the directories can not be made
+	 */
+	private void createPath(String entryName) throws IOException {
+		int slashIdx = entryName.lastIndexOf('/');
+		if (slashIdx >= 0) {
+			// there is path info
+			String firstPath = entryName.substring(0, slashIdx);
+			File dir = new File(extractDir, firstPath);
+			if (!dir.exists()) {
+				dir.mkdirs();
+			}
+		}
+	}
+
+    /**
+	 * Run method to use from the command line. This is fired via an entry in the 
+	 * MANIFEST.MF in the Jar
+	 *@param  args  The command line arguments
+	 */
+	public static void main(String[] args) {
+		testX();
+		// FIXME move after parseArgs() and set graphicsEnv if text selected
+		// will need to test SelfExtractor and comment parseArgs() to ensure
+		// no side effects in the future.
+		SelfExtractor extractor = null;
+		try {
+			boolean verbose = false;
+			extractor = new SelfExtractor();
+			extractor.init();
+			extractor.extract(verbose, graphicsEnv);
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+			String tempDir = "unknown";
+			if(extractor != null){
+				tempDir = extractor.getExtractDir().getAbsolutePath();
+			}
+			String warning = "Could not extract Jar file to directory:" + tempDir;
+			printXorTextWarning(warning);
+		}
+		
+		try {
+			FilterChain chain = FilterFactory.factory(CONFIG_RESOURCE);		
+			ExecInstall installExec = new ExecInstall(chain);
+			installExec.parseArgs(args, false);
+			installExec.setInstallRoot(extractor.getExtractDir());
+			// removes files on exit
+			installExec.setTempRoot(extractor.getExtractDir());
+
+            installExec.exec();
+		}
+		catch (InstallException e1) {
+			System.out.println("Cant load filter chain:/org/tp23/antinstaller/runtime/exe/selfextractor.fconfig");
+			e1.printStackTrace();
+		}
+	}
+
+	/**
+	 * This tests for the existence of a  graphics environment and sets an
+	 * internal flag so the test does not have to be repeated, it may be expensive.
+	 * Prior to running this method the isGraphicsEnv() method will be invalid.
+	 */
+	protected static void testX(){
+		try {
+			java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();
+            try {
+                boolean headless = java.awt.GraphicsEnvironment.isHeadless();
+                if(headless) {
+                    graphicsEnv = false;
+                    return;
+                }
+            } catch (Throwable e) {
+                // JDK 1.3 does not have the isHeadless() method but may still work in other situations
+            }
+			graphicsEnv = true;
+		}
+		catch (Throwable e) {
+            // thus graphicsEnv stays false;
+		}
+	}
+    
+	/**
+	 * @see #testX()
+	 * @return true if an X or windows environment is available
+	 */
+	protected boolean isGraphicsEnv(){
+		return graphicsEnv;
+	}
+
+	protected static void printXorTextWarning(String warning){
+		if(graphicsEnv){
+            try {
+                JOptionPane.showMessageDialog(null, warning);
+            }
+            catch( HeadlessException headlessExc ) {
+                graphicsEnv = false;
+                System.out.println(warning);
+            }
+        }
+		else {
+			System.out.println(warning);
+		}
+	}
+
+	public static int deleteRecursive(File directory) {
+		int count = 0;
+		File[] files = directory.listFiles(new FileFilter() {
+			public boolean accept(File file) {
+				return!file.isDirectory();
+			}
+		});
+		for (int i = 0; i < files.length; i++) {
+			files[i].delete();
+			count++;
+		}
+		File[] dirs = directory.listFiles(new FileFilter() {
+			public boolean accept(File file) {
+				return file.isDirectory();
+			}
+		});
+		for (int i = 0; i < dirs.length; i++) {
+			count += deleteRecursive(dirs[i]);
+		}
+		directory.delete();
+		return count;
+	}
+
+    /**
+	 * UN-URL encode string
+     * TODO should this not support UNICODE escapes
+	 */
+	private static String unescape(final String s) {
+		StringBuffer sb = new StringBuffer(s.length());
+
+		for (int i = 0; i < s.length(); i++) {
+			char c = s.charAt(i);
+			switch (c) {
+				case '%': {
+					try {
+						sb.append( (char) Integer.parseInt(s.substring(i + 1, i + 3), 16));
+						i += 2;
+						break;
+					}
+					catch (NumberFormatException nfe) {
+						throw new IllegalArgumentException();
+					}
+					catch (StringIndexOutOfBoundsException siob) {
+						String end = s.substring(i);
+						sb.append(end);
+						if (end.length() == 2) i++;
+					}
+					break;
+				}
+				default: {
+					sb.append(c);
+					break;
+				}
+			}
+		}
+		return sb.toString();
+	}
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/package.html
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/package.html	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/antinstaller/selfextract/package.html	(revision 14989)
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head><!--
+  Copyleft (c) 2004 tp23
+  All Rights Reserved.
+--></head>
+
+<body bgcolor="white">Classes to extract the jar from which this package is loaded.
+
+The self extracting method is to obtain a temporary directory from java.io.File
+and extract the files there.  The baseDir for Ant is then set to this directory and it is
+treated as if it were the current directory (although it is not and ./ references
+will not work.</body>
+</html>
Index: /release-kits/shared/ant-installer/src/org/tp23/gui/GBCF.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/gui/GBCF.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/gui/GBCF.java	(revision 14989)
@@ -0,0 +1,117 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.gui;
+
+import java.awt.GridBagConstraints;
+import java.awt.Insets;
+/**
+ * GBCF  Grib Bag Constraints Factory.  This class exists mostly
+ * for tidying up code that used the exsivly verbose GridBagConstraints
+ * object, hence the shortened class name.
+ * By default a two column equal with table is assumed, to support other
+ * column layouts use the constructor that take an array of column wieghts
+ * Factory class for generating constraints for a equal width column table.
+ * the table is similar to the following table rendered in HTML
+ * <table border="2">
+ *   <tr>
+ *     <td>data</td><td>data</td>
+ *   </tr>
+ *   <tr>
+ *     <td colspan="2">data</td>
+ *   </tr>
+ *   <tr>
+ *     <td>data</td><td>data</td>
+ *   </tr>
+ *   <tr>
+ *     <td>data</td><td>data</td>
+ *   </tr>
+ * <table>
+ * @author not attributable
+ * @version 1.0
+ */
+public class GBCF {
+
+	protected Insets insets = new Insets(1,4,1,4);
+	protected Insets noinsets = new Insets(0,0,0,0);
+	protected double[] columnWeights= new double[]{0.5,0.5};
+
+	public GBCF(){
+
+    }
+	/**
+	 * to support more than two columns or vary the column wieghtings
+	 * @param columnWeights double[]
+	 */
+	public GBCF(double[] columnWeights){
+		this.columnWeights=columnWeights;
+	}
+	/**
+	 *
+	 * @param row int the 0 indexed row
+	 * @param col int the 0 indexed column
+	 * @param span boolean does cell span both columns
+	 * @return GridBagConstraints
+	 */
+	public GridBagConstraints getCell(int row,int col){
+		return new GridBagConstraints(col,              //gridx
+									  row,              //gridy
+									  1,                //gridwidth
+									  1,                //gridheight
+									  columnWeights[col],//weightx
+									  0.0,              //weithty
+									  GridBagConstraints.WEST, // anchor
+									  GridBagConstraints.NONE, //fill
+									  insets,  // insets
+									  1, //ipadx
+									  1  //ipady
+									  );
+   }
+   /**
+	*
+	* @param row int the 0 indexed row
+	* @param first boolean is this the first column or the second
+	* @param span boolean does cell span both columns
+	* @return GridBagConstraints
+	*/
+   public GridBagConstraints getSpan(int row){
+	   return new GridBagConstraints(0,               //gridx
+									 row,             //gridy
+									 2,               //gridwidth
+									 1,               //gridheight
+									 columnWeights[0],//weightx
+									 0.0,             //weithty
+									 GridBagConstraints.WEST, // anchor
+									 GridBagConstraints.NONE, //fill
+									 insets,  // insets
+									 1, //ipadx
+									 1  //ipady
+									 );
+  }
+  public GridBagConstraints getVertGlue(int row){
+	  return new GridBagConstraints(0,               //gridx
+									row,             //gridy
+									2,               //gridwidth
+									1,               //gridheight
+									columnWeights[0],//weightx
+									1.0,             //weithty
+									GridBagConstraints.NORTHWEST, // anchor
+									GridBagConstraints.NONE, //fill
+									noinsets,  // insets
+									0, //ipadx
+									0  //ipady
+									);
+  }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/gui/widget/DefaultingDirectoryChooser.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/gui/widget/DefaultingDirectoryChooser.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/gui/widget/DefaultingDirectoryChooser.java	(revision 14989)
@@ -0,0 +1,180 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.gui.widget;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+
+import javax.swing.JFileChooser;
+import javax.swing.filechooser.FileFilter;
+import javax.swing.filechooser.FileSystemView;
+/**
+ * A file chooser that makes a beter default if the default directory is not available.
+* Basically the default looks for the suggested directory and if it does not find it moves back
+* up the directories.  If still nothing is found (for example it may get to My Computer
+* which you can not add file to) the home directory is selected, as in the default file chooser.
+*
+* To use this class call new DefaultingDirectoryChooser(boolean) and immediately call
+* setDefaultDirectory(File) to determine the default. If you don't it behaves like the default JFileChooser
+* Also if you call setCurrentDirectory(File) it will behave like JFileChooser
+*
+* This chooser has two modes CREATE_MODE and EXISTING_MODE.   <br/><br/>
+*
+* In existing mode it is assumed the chooser is being used to identify an existing directory
+* the default directory should exist if not the directory shown will be the next existing parent.<br/><br/>
+*
+* In create mode it is
+* assumed that the last directory in the default directory is to be created and may not
+* exist yet. Therefor the default directory displayed is the parent (with suitable defaulting)
+* and the text box will contain the name of the last directory.
+* e.g. if default is C:\Program Files\MyApp  C:\Program Files will be displayed and
+* MyApp will be shown in the text box (even if it does not exist yet)  If C:\Program Files does not exist
+* C:\ will be shown as with existing mode.
+* Choosing select can lead to the creation of the file.  It will not be automatically
+* created that is the responsibility of the client code.<br/>
+*
+* This class uses FileSystemView and will only display folders that return true to fsv.isFileSystem()
+*
+* This class also uses a bit of a hack by in CREATE_MODE it sets the selectables to files and directories
+* although only shows the directories this way a non-existing Directory can be chosen.  This is the only way I can
+* get it to work on my Java version but I would not be supprised if it did not work on
+* other versions of the Java API.  It also means that setFileSelectionMode() should
+* never be called by clients as it will break this hack.
+ * @author Paul Hinds
+ * @version 1.0
+ */
+public class DefaultingDirectoryChooser extends JFileChooser{
+
+    public static final boolean CREATE_MODE = true;
+    public static final boolean EXISTING_MODE = false;
+
+    /**
+     * Determines that the default includes a directory name that is requried
+     * e.g. C:\Program Files\MyApp where even if Program Files does not exist
+     * MyApp should be part of the default even if it does not exist.
+     */
+    private boolean createMode = false;
+    private File selectedFile = null;
+    private String desiredName = null;
+    
+    public DefaultingDirectoryChooser(boolean createMode) {
+        this.createMode=createMode;
+        if(createMode){
+            setFileSelectionMode(FILES_AND_DIRECTORIES);
+            removeChoosableFileFilter(getAcceptAllFileFilter());
+            addChoosableFileFilter(new FileFilter(){
+                public boolean accept(File f) {
+                    if(f.exists() && f.isDirectory())return true;
+                    if(!f.exists() && getFileSystemView().getParentDirectory(f).isDirectory())return true;
+                    return false;
+                }
+                public String getDescription() {
+                    return "Directories";
+                }
+            });
+            
+            addPropertyChangeListener(JFileChooser.DIRECTORY_CHANGED_PROPERTY, new PropertyChangeListener(){
+				public void propertyChange(PropertyChangeEvent evt) {
+					File directory = (File)evt.getNewValue();
+					DefaultingDirectoryChooser.this.setCurrentDirectory(new File(directory, "newfolder"));
+					setSelectedFile(new File(directory, desiredName));
+				}            	
+            });
+        }
+        else {
+            setFileSelectionMode(DIRECTORIES_ONLY);
+        }
+    }
+
+
+    /**
+     * Sets the default directory.
+     * @param dir the current directory to point to
+     * @todo Implement this javax.swing.JFileChooser method
+     */
+    public void setDefaultDirectory(File dir) {
+        if(dir==null)return;// called by the default consructor
+        if(createMode){
+        	if(desiredName == null)desiredName = dir.getName();
+            File selected = determineCreateDir(dir);
+            super.setCurrentDirectory(selected.getParentFile());
+            setSelectedFile(selected);
+        }else{
+            super.setCurrentDirectory(determineExistingDir(dir));
+        }
+    }
+
+
+
+    private File determineExistingDir(File defaultDir){
+        if(defaultDir.exists())return defaultDir;
+        FileSystemView fsv = this.getFileSystemView();
+        File validParent = getFSVParent(fsv,defaultDir);
+        if(validParent!=null) {
+            return validParent;
+        }
+        else {
+            return fsv.getHomeDirectory();
+        }
+    }
+    /**
+     * Select a base path for the default even if it does not exist.  The order of preference is as follows
+     * if the directory exists use it
+     * if the parent does not exist try finding the next parent
+     * if the next parent is a root directory e.g. / or C:\ use the users home directory
+     * @param defaultDir File
+     * @return File
+     */
+    private File determineCreateDir(File defaultDir){
+        if(defaultDir.exists())return defaultDir;
+        FileSystemView fsv = this.getFileSystemView();
+        String dirName = defaultDir.getName();
+        File validParent = getFSVParent(fsv,defaultDir);
+        if(validParent!=null){
+            return new File(validParent, dirName);
+        }
+        else {
+            return new File(fsv.getHomeDirectory(), dirName);
+        }
+    }
+    /**
+     * Step back up trying to find a parent if none if found return null.
+     * null can be found if the path starts e:\ and e: does not exist
+     * @param fsv FileSystemView
+     * @param dir File
+     * @return File
+     */
+    private File getFSVParent(FileSystemView fsv,File dir){
+        File parent = dir.getParentFile();
+        if(fsv.isRoot(parent) && !parent.exists()){
+            return null;
+        }
+        if(!parent.exists() || !fsv.isFileSystem(parent)){
+            parent = getFSVParent(fsv,parent);
+        }
+        return parent;
+    }
+
+    public static void main(String[] args) {
+        DefaultingDirectoryChooser chooser = new DefaultingDirectoryChooser(CREATE_MODE);
+        chooser.setDefaultDirectory(new File("/usr/local/dibble/MyApp"));
+
+        chooser.showDialog(null,"Select");
+        System.out.println("Selected:"+chooser.getSelectedFile().getAbsolutePath());
+        System.exit(0);
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/gui/widget/FollowingJTextArea.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/gui/widget/FollowingJTextArea.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/gui/widget/FollowingJTextArea.java	(revision 14989)
@@ -0,0 +1,125 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.gui.widget;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import javax.swing.JTextArea;
+
+public class FollowingJTextArea extends JTextArea{
+
+    private boolean follow = true;
+
+    public FollowingJTextArea() {
+        jInit();
+    }
+
+
+    private void jInit(){
+        final JPopupMenu popUp = getPopupMenu();
+        this.add(popUp);
+        this.addMouseListener(new MouseAdapter(){
+            public void mouseClicked(MouseEvent e) {
+                if (e.getButton() == e.BUTTON3) {
+                    popUp.show(FollowingJTextArea.this,e.getX(),e.getY());
+                }
+            }
+        });
+    }
+
+    public boolean isFollow() {
+        return follow;
+    }
+    public void setFollow(boolean follow) {
+        this.follow = follow;
+    }
+
+    private void scrollToEnd(){
+        setCaretPosition(getDocument().getLength());
+    }
+    private void toggleFollow(){
+        setFollow(!isFollow());
+    }
+
+    /**
+     * Appends the given text to the end of the document.
+     *
+     * @param str the text to insert
+     * @todo Implement this javax.swing.JTextArea method
+     */
+    public void append(String str) {
+        super.append(str);
+        if(follow)scrollToEnd();
+    }
+    private JPopupMenu getPopupMenu() {
+        JPopupMenu contextMenu = new JPopupMenu("Options");
+        JMenuItem saveMenu = new JMenuItem("Save Text");
+        saveMenu.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                SelectFileAction action = new SelectFileAction("Save Output", null, null);
+                try {
+                    action.actionPerformed(new ActionEvent(this, 0, "Save Output"));
+                    if (action.selectedFile != null) {
+                        FileWriter fos = new FileWriter(action.selectedFile);
+                        fos.write(getText());
+                        fos.close();
+                    }
+
+                }
+                catch (FileNotFoundException ex) {
+                    System.err.println("FileNotFoundException");
+                }
+                catch (IOException ex) {
+                    System.err.println("IOException");
+                }
+            }
+        });
+        contextMenu.add(saveMenu);
+
+        JMenuItem toggleFollowMenu = new JMenuItem("Toggle Follow");
+        toggleFollowMenu.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                toggleFollow();
+            }
+        });
+        contextMenu.add(toggleFollowMenu);
+
+        JMenuItem jumpToEndMenu = new JMenuItem("Jump To End");
+        jumpToEndMenu.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                setCaretPosition(getDocument().getLength());
+            }
+        });
+        contextMenu.add(toggleFollowMenu);
+
+        JMenuItem clearTextMenu = new JMenuItem("Clear Text");
+        clearTextMenu.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                setText("");
+            }
+        });
+        contextMenu.add(clearTextMenu);
+        return contextMenu;
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/gui/widget/JTextAreaPrintStream.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/gui/widget/JTextAreaPrintStream.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/gui/widget/JTextAreaPrintStream.java	(revision 14989)
@@ -0,0 +1,244 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.gui.widget;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import javax.swing.JTextArea;
+
+/**
+ * <p>This subclass of PrintStream is designed to be compatible with System.out and System.err but it provides
+* its own functionality and does not borrow from PrintStream. All methods are overridden.  The calls to each method
+* behave as expected with the exception of flush() which appears to insert a new line for each call. flush() sends
+* the current line to the JTextArea with a call to JTextArea.append(String) which adds a
+* line in the buffer.</p>
+ * @author Paul Hinds
+ * @version 1.0
+ */
+public class JTextAreaPrintStream extends PrintStream{
+
+    private JTextArea textArea;
+    private StringBuffer line;
+
+    public JTextAreaPrintStream(JTextArea textArea) {
+        super(new ByteArrayOutputStream(0));// wasted all methods are overridden
+        this.textArea = textArea;
+        line = new StringBuffer();
+    }
+
+    /**
+     * The stream can not be closed
+     */
+    public void close(){
+    }
+
+    public synchronized void flush(){
+        if(line.length()>0){
+			textArea.append(line.toString());
+            line = new StringBuffer();
+        }
+    }
+
+    public synchronized void write(byte[] b){
+        line.append(new String(b));
+    }
+
+    public synchronized void write(byte[] b, int off, int len){
+        line.append(new String(b,off,len));
+    }
+
+
+    public synchronized void write(int c){
+        line.append(c);
+    }
+
+    public synchronized boolean checkError() {
+        return false;
+    }
+
+    public synchronized void print(Object obj) {
+        line.append(obj);
+    }
+
+
+    public synchronized void print(String s) {
+        line.append(s);
+    }
+
+
+    public synchronized void print(boolean b) {
+        line.append(b);
+    }
+
+
+    public synchronized void print(char c) {
+        line.append(c);
+    }
+
+
+    public synchronized void print(char[] s) {
+        line.append(s);
+    }
+
+
+    public synchronized void print(double d) {
+        line.append(d);
+    }
+
+
+    public synchronized void print(float f) {
+        line.append(f);
+    }
+
+
+    public synchronized void print(int i) {
+        line.append(i);
+    }
+
+
+    public synchronized void print(long l) {
+        line.append(l);
+    }
+
+
+    public synchronized void println() {
+    	line.append('\n');
+        flush();
+    }
+
+
+    public synchronized void println(Object x) {
+        if(line.length()>0){
+            textArea.append(line.append(String.valueOf(x)).toString());
+            textArea.append("\n");
+            line = new StringBuffer();
+        }
+        else {
+            textArea.append(String.valueOf(x));
+            textArea.append("\n");
+        }
+    }
+
+
+    public synchronized void println(String x) {
+        if(line.length()>0){
+            textArea.append(line.append(x).toString());
+            textArea.append("\n");
+            line = new StringBuffer();
+        }
+        else {
+            textArea.append(x);
+            textArea.append("\n");
+        }
+    }
+
+    public synchronized void println(boolean x) {
+        if(line.length()>0){
+            textArea.append(line.append(String.valueOf(x)).toString());
+            textArea.append("\n");
+            line = new StringBuffer();
+        }
+        else {
+            textArea.append(String.valueOf(x));
+            textArea.append("\n");
+        }
+    }
+
+
+    public synchronized void println(char x) {
+        if(line.length()>0){
+            textArea.append(line.append(String.valueOf(x)).toString());
+            textArea.append("\n");
+            line = new StringBuffer();
+        }
+        else {
+            textArea.append(String.valueOf(x));
+            textArea.append("\n");
+        }
+    }
+
+
+    public synchronized void println(char[] x) {
+        if(line.length()>0){
+            textArea.append(line.append(String.valueOf(x)).toString());
+            textArea.append("\n");
+            line = new StringBuffer();
+        }
+        else {
+            textArea.append(String.valueOf(x));
+            textArea.append("\n");
+        }
+    }
+
+
+    public synchronized void println(double x) {
+        if(line.length()>0){
+            textArea.append(line.append(String.valueOf(x)).toString());
+            textArea.append("\n");
+            line = new StringBuffer();
+        }
+        else {
+            textArea.append(String.valueOf(x));
+            textArea.append("\n");
+        }
+    }
+
+
+    public synchronized void println(float x) {
+        if(line.length()>0){
+            textArea.append(line.append(String.valueOf(x)).toString());
+            textArea.append("\n");
+            line = new StringBuffer();
+        }
+        else {
+            textArea.append(String.valueOf(x));
+            textArea.append("\n");
+        }
+    }
+
+
+    public synchronized void println(int x) {
+        if(line.length()>0){
+            textArea.append(line.append(String.valueOf(x)).toString());
+            textArea.append("\n");
+            line = new StringBuffer();
+        }
+        else {
+            textArea.append(String.valueOf(x));
+            textArea.append("\n");
+        }
+    }
+
+
+    public synchronized void println(long x) {
+        if(line.length()>0){
+            textArea.append(line.append(String.valueOf(x)).toString());
+            textArea.append("\n");
+            line = new StringBuffer();
+        }
+        else {
+            textArea.append(String.valueOf(x));
+            textArea.append("\n");
+        }
+    }
+
+
+    protected void setError() {
+    }
+
+
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/gui/widget/SelectFileAction.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/gui/widget/SelectFileAction.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/gui/widget/SelectFileAction.java	(revision 14989)
@@ -0,0 +1,60 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.gui.widget;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+
+import javax.swing.AbstractAction;
+import javax.swing.ImageIcon;
+import javax.swing.JComponent;
+import javax.swing.JFileChooser;
+
+public class SelectFileAction extends AbstractAction {
+    protected JComponent component = null;
+    protected File selectedFile = null;
+    protected String buttonText = null;
+
+    public SelectFileAction(String text, ImageIcon icon, JComponent component) {
+        super(text, icon);
+        this.component = component;
+    }
+    public SelectFileAction(String text, ImageIcon icon, JComponent component,String buttonText) {
+        super(text, icon);
+        this.component = component;
+    }
+    public void actionPerformed(ActionEvent e) {
+        JFileChooser chooser = new JFileChooser();
+        if(buttonText!=null)chooser.setApproveButtonText(buttonText);
+        if(selectedFile!=null && selectedFile.isFile()){
+        	if(selectedFile.exists())chooser.setSelectedFile(selectedFile);
+        	else chooser.setCurrentDirectory(selectedFile.getParentFile());
+        }
+        else if(selectedFile!=null && selectedFile.isDirectory()){
+        	chooser.setCurrentDirectory(selectedFile);
+        }
+        else if(selectedFile!=null && !selectedFile.exists()){
+        	chooser.setCurrentDirectory(selectedFile.getParentFile());
+        }
+        
+        int returnVal = chooser.showDialog(component,e.getActionCommand());
+        if(returnVal == JFileChooser.APPROVE_OPTION) {
+            selectedFile = chooser.getSelectedFile();
+        } else {
+        	selectedFile = null;
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/src/org/tp23/gui/widget/SystemOutJTextArea.java
===================================================================
--- /release-kits/shared/ant-installer/src/org/tp23/gui/widget/SystemOutJTextArea.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src/org/tp23/gui/widget/SystemOutJTextArea.java	(revision 14989)
@@ -0,0 +1,75 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.gui.widget;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.PrintStream;
+
+import javax.swing.JButton;
+import javax.swing.JScrollPane;
+
+/**
+ *
+ * <p>Title: A JTextArea that can be set to show System.out or System.err</p>
+ * <p>Description: </p>
+ * <p>Copyright: Copyright (c) 2004</p>
+ * <p>Company: </p>
+ * @author Paul Hinds
+ * @version 1.0
+ */
+
+public class SystemOutJTextArea extends JScrollPane{
+
+    private JTextAreaPrintStream stream;
+    private FollowingJTextArea textArea = new FollowingJTextArea();
+
+    public SystemOutJTextArea() {
+        jInit();
+    }
+
+    private void jInit(){
+        this.getViewport().setView(textArea);
+        textArea.setEditable(false);
+        JButton jumpButton = new JButton("");
+        setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_ALWAYS);
+        setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_ALWAYS);
+        setCorner(this.LOWER_RIGHT_CORNER,jumpButton);
+        jumpButton.addActionListener(new ActionListener(){
+            public void actionPerformed(ActionEvent e) {
+                textArea.setCaretPosition(textArea.getDocument().getLength());
+            }
+        });
+        jumpButton.setToolTipText("Click to jump to the end");
+
+
+    }
+
+    public synchronized PrintStream getOut(){
+        if(stream==null){
+            stream = new JTextAreaPrintStream(textArea);
+        }
+        return stream;
+    }
+    public void setAsSystemErr(){
+        System.setErr(getOut());
+    }
+    public void setAsSystemOut(){
+        System.setOut(getOut());
+    }
+
+
+}
Index: /release-kits/shared/ant-installer/src/resources/LICENSE-ant-install.txt
===================================================================
--- /release-kits/shared/ant-installer/src/resources/LICENSE-ant-install.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/src/resources/LICENSE-ant-install.txt	(revision 14989)
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2005 Paul Hinds
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
Index: /release-kits/shared/ant-installer/src/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/src/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/src/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,13 @@
+This copyright and license notice covers the images in this directory.
+Note the license notice contains an add-on.
+
+KDE Crystal theme icons.
+Copyright (C) 2002 and following years KDE Artists
+This library is free software; you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the Free
+Software Foundation, version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
+implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+License for more details. You should have received a copy of the GNU Lesser General Public License along
+with this library; if not, write to the
Index: /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFilter.java
===================================================================
--- /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFilter.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFilter.java	(revision 14989)
@@ -0,0 +1,102 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ResourceBundle;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.renderer.text.Pager;
+import org.tp23.antinstaller.runtime.Runner;
+import org.tp23.antinstaller.runtime.SwingRunner;
+import org.tp23.antinstaller.runtime.TextRunner;
+
+
+/**
+ * A filter that launches a window with release notes if a property has been selected
+ * during the install.  The notes are loaded from a resource on the classpath
+ * called /release-notes.txt
+ * @author Paul Hinds
+ * @version $Id: ReleaseNotesFilter.java,v 1.4 2007/01/04 22:57:18 teknopaul Exp $
+ */
+public class ReleaseNotesFilter implements ExecuteFilter {
+	
+	private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
+	private static final String nextChar = res.getString("nextChar");
+
+	/**
+	 * The AntInstaller property that must be "true" for the release notes to show
+	 */
+	public static final String RELEASE_NOTES_PROPERTY = "show.release.notes";
+
+	public ReleaseNotesFilter() {
+	}
+
+	public void exec(InstallerContext ctx) throws InstallException {
+		if(ctx.isInstallSucceded() ){
+			String showReleaseNotes = ctx.getInstaller().getResultContainer().getProperty(RELEASE_NOTES_PROPERTY);
+			if(OutputField.isTrue(showReleaseNotes)){
+				try {
+					InputStream is = ReleaseNotesFilter.class.getResourceAsStream("/release-notes.txt");
+					BufferedReader br = new BufferedReader(new InputStreamReader(is));
+					String line = null;
+					StringBuffer file = new StringBuffer();
+					while((line = br.readLine())!=null){
+						file.append(line).append('\n');
+					}
+                    br.close();
+					Runner runner = ctx.getRunner();
+					if(runner instanceof TextRunner){
+						renderText(file.toString());
+
+					}
+					else{ // if(runner instanceof SwingRunner){
+						//SwingRunner sRunner = (SwingRunner)runner;
+						ReleaseNotesFrame rFrame = new ReleaseNotesFrame("Readme");
+						rFrame.init(file.toString());
+					}
+				}
+				catch (IOException e) {
+					throw new InstallException("Could not render Release notes",e);
+				}
+			}
+		}
+	}
+	
+	private void renderText(String text) throws IOException{
+		BufferedReader commandReader = new BufferedReader(new InputStreamReader(System.in));
+		Pager pager = new Pager(text);
+		String command = null;
+		do {
+			if (!pager.next(System.out)) {
+				break;
+			}
+			System.out.println();
+			System.out.println(getNextInstructions());
+			command = commandReader.readLine();
+		}
+		while (command.toUpperCase().startsWith(nextChar));
+		pager.rest(System.out);
+		
+	}
+	private String getNextInstructions() {
+		return res.getString("large_select_next");
+	}
+
+}
Index: /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java
===================================================================
--- /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java	(revision 14989)
@@ -0,0 +1,63 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.runtime.exe;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.GraphicsConfiguration;
+import java.awt.HeadlessException;
+
+import javax.swing.JEditorPane;
+import javax.swing.JFrame;
+import javax.swing.JScrollPane;
+
+
+/**
+ * ReleaseNotes frame for displaying plain text
+ * @author Paul Hinds
+ * @version $Id: ReleaseNotesFrame.java,v 1.3 2006/12/21 00:03:23 teknopaul Exp $
+ */
+public class ReleaseNotesFrame extends JFrame {
+
+	private BorderLayout borderLayout1 = new BorderLayout();
+	private JEditorPane contentsEditorPane = new JEditorPane();
+	private JScrollPane hPanelScrollPane = new JScrollPane();
+
+	public ReleaseNotesFrame(String title) throws HeadlessException {
+		super(title);
+	}
+
+	public void init(String text){
+		contentsEditorPane.setMinimumSize(new Dimension(200, 200));
+		contentsEditorPane.setPreferredSize(new Dimension(1000, Integer.MAX_VALUE));
+		contentsEditorPane.setEditable(false);
+		contentsEditorPane.setContentType("text/plain");
+		contentsEditorPane.setCaretPosition(0);
+		contentsEditorPane.setText(text);
+		this.getContentPane().setLayout(borderLayout1);
+		hPanelScrollPane.setMinimumSize(new Dimension(200, 200));
+		hPanelScrollPane.setPreferredSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE));
+		this.getContentPane().add(hPanelScrollPane, BorderLayout.CENTER);
+		hPanelScrollPane.getViewport().add(contentsEditorPane);
+		hPanelScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+		this.setSize(new Dimension(500,500));
+		hPanelScrollPane.setWheelScrollingEnabled(true);
+		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+		this.show();
+		
+	}
+
+}
Index: /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/taskdefs/Installer.java
===================================================================
--- /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/taskdefs/Installer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/taskdefs/Installer.java	(revision 14989)
@@ -0,0 +1,399 @@
+/*
+ * Copyright  2005 Paul Hinds
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ *
+ */
+package org.tp23.antinstaller.taskdefs;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.Jar;
+import org.apache.tools.ant.taskdefs.Manifest;
+import org.apache.tools.ant.taskdefs.ManifestException;
+import org.apache.tools.ant.types.FileSet;
+import org.apache.tools.ant.types.ZipFileSet;
+import org.apache.tools.zip.ZipOutputStream;
+import org.tp23.antinstaller.renderer.swing.plaf.LookAndFeelFactory;
+import org.tp23.antinstaller.runtime.ConfigurationLoader;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Creates a Installer archive.
+ * 
+ *
+ * @ant.task category="packaging"
+ */
+public class Installer extends Jar {
+
+    public static final String NON_EXTRACTOR = "NonExtractor";
+    public static final String SELF_EXTRACTOR = "SelfExtractor";
+    
+    /** The extract type to use NonExtractor or SelfExtractor */
+    private String extractType;
+
+    /** The AntInstall config file */
+    private File installConfig;
+
+    /** The Ant build.xml to be used*/
+    private File buildFile;
+
+    /** The location of ant-installer.jar and ant-installer-ext.jar and possibly jgoodies-edited-1_2_2.jar */
+    private File antInstallLib;
+
+    /** The location of xercesImpl.jar and xml-apis.jar 
+     * This is not requried Xerces is optional and will increase the download size */
+    private File xercesLib;
+
+    /** The location of ant.jar and ant-launcher.jar */
+    private File antLib;
+
+    /** The AntInstaller Look And Feel to be used */
+    private String laf;
+    
+    /** The icon set to use */
+    private String icons;
+
+    /** Stop the build if there is a known error in the config */
+    protected boolean failOnError = false;
+    
+    /** perform the validation */
+    protected boolean validateConfig = false;
+    
+    private boolean buildFileSet = false;
+    private boolean configFileSet = false;
+    /** Indicates that the build.xml and antinstall-config.xml have been added to the fileset already */
+    private boolean startCheckDuplicates = false; 
+
+    /** constructor */
+    public Installer() {
+        super();
+        archiveType = "jar";
+        emptyBehavior = "create";
+        setEncoding("UTF8");
+    }
+ 
+    protected void cleanUp() {
+        super.cleanUp();
+    }
+
+    public void reset() {
+        super.reset();
+        extractType = null;
+        installConfig = null;
+        buildFile = null;
+    }
+
+	/**
+	 * @param installConfig The installConfig to set.
+	 */
+	public void setInstallConfig(File installConfig) {
+		this.installConfig = installConfig;
+        if (!installConfig.exists()) {
+            throw new BuildException("AntInstall config: "
+                                     + installConfig
+                                     + " does not exist.");
+        }
+        // Create a ZipFileSet for this file, and pass it up.
+        ZipFileSet fs = new ZipFileSet();
+        fs.setFile(installConfig);
+        fs.setFullpath("antinstall-config.xml");
+        super.addFileset(fs);
+        if(this.buildFile != null) {
+            startCheckDuplicates = true;
+        }
+	}
+	/**
+	 * @param buildFile The buildFile to set.
+	 */
+	public void setBuildFile(File buildFile) {
+		this.buildFile = buildFile;
+        if (!buildFile.exists()) {
+            throw new BuildException("AntInstall build file: "
+                                     + buildFile
+                                     + " does not exist.");
+        }
+        // Create a ZipFileSet for this file, and pass it up.
+        ZipFileSet fs = new ZipFileSet();
+        fs.setFile(buildFile);
+        fs.setFullpath("build.xml");
+        super.addFileset(fs);
+        if(this.installConfig != null) {
+            startCheckDuplicates = true;
+        }
+	}
+	/**
+	 * @param icons The ocons pack to use for buttons.
+	 */
+	public void setIcons(String icons) {
+		this.icons = icons;
+        // Create a ZipFileSet for this file, and pass it up.
+		File iconJar = new File(antInstallLib, "ai-icons-" + icons + ".jar");
+        if (!iconJar.exists()) {
+            throw new BuildException("Missing icons: "
+                                     + iconJar
+                                     + " does not exist.");
+        }
+		FileSet set = new FileSet();
+		set.setFile(iconJar);
+		addZipGroupFileset(set);
+
+	}
+	/**
+	 * @param extractType The extractType to set.
+	 */
+	public void setExtractType(String extractType) {
+		this.extractType = extractType;
+	}
+	
+    public void setFailOnError(boolean fail) {
+        failOnError = fail;
+    }
+    
+    public void setValidateConfig(boolean validate) {
+    	validateConfig = validate;
+    }
+
+    /**
+     * The location of ant-installer.jar and possibly jgoodies-edited-1_2_2.jar
+     * @param antInstallLib The antInstallLib to set.
+     */
+    public void setAntInstallLib(File antInstallLib) {
+        this.antInstallLib = antInstallLib;
+        FileSet set = new FileSet();
+        set.setFile(new File(antInstallLib, "ant-installer.jar"));
+        addZipGroupFileset(set);
+    }
+    /**
+     * The location of ant.jar and ant-launcher.jar
+     * @param antLib The antLib to set.
+     */
+    public void setAntLib(File antLib) {
+        this.antLib = antLib;
+        FileSet set = new FileSet();
+        set.setFile(new File(antLib, "ant.jar"));
+        set.setFile(new File(antLib, "ant-launcher.jar"));
+        addZipGroupFileset(set);
+    }
+    /**
+     * @param xercesLib The xercesLib to set.
+     */
+    public void setXercesLib(File xercesLib) {
+        this.xercesLib = xercesLib;
+        FileSet set = new FileSet();
+        set.setFile(new File(xercesLib, "xercesImpl.jar"));
+        set.setFile(new File(xercesLib, "xml-apis.jar"));
+        addZipGroupFileset(set);
+    }
+
+    /**
+     * Overrides the ZIP execute() method which creates filesets
+     */
+    public void execute(){
+        log(".-------------------------------.");
+        log("|-(o--~AntInstaller.sf.net~--o)-|");
+        log("`-----------------by-Paul-Hinds-ÂŽ");
+        
+        if(validateConfig) {
+            validateConfig();
+        } else if(extractType.equals(SELF_EXTRACTOR)){
+            // this reads the config just 
+            // to extract the lookAndFeel attribute for the manifest at the moment
+            readConfig();
+        }
+        if( LookAndFeelFactory.isDefault(getLaf()) ){
+            FileSet set = new FileSet();
+            set.setFile(new File(antInstallLib, "jgoodies-edited-1_2_2.jar"));
+            addZipGroupFileset(set);
+        }
+
+        super.execute();
+    }
+
+    /**
+     * override of  parent; validates configuration
+     * before initializing the output stream.  The Manifest is set in the Jar superclass's
+     * method so Manifest modifications must be performed in this method
+     */
+    protected void initZipOutputStream(ZipOutputStream zOut)
+        throws IOException, BuildException {
+        // If no buildFile file is specified, it's an error.
+        if (buildFile == null && !isInUpdateMode()) {
+            throw new BuildException("buildFile attribute is required", getLocation());
+        }
+        // If no installConfig file is specified, it's an error.
+        if (installConfig == null && !isInUpdateMode()) {
+            throw new BuildException("installConfig attribute is required", getLocation());
+        }
+        try{ 
+        	addConfiguredManifest(this.getManifest());
+        }
+        catch(ManifestException me){
+        	throw new BuildException("Cant add AntInstaller Manifest", me, getLocation());
+        }        
+        super.initZipOutputStream(zOut);
+    }
+	
+    protected void zipFile(InputStream is, ZipOutputStream zOut, String vPath,
+            long lastModified, File fromArchive, int mode)
+            throws IOException {
+        
+        if(vPath.equalsIgnoreCase("antinstall-config.xml")) {
+            if(buildFileSet) {
+                log("Two antinstall-config.xml files in jar", Project.MSG_WARN);
+            }
+            buildFileSet = true;
+        }
+        if(vPath.equalsIgnoreCase("build.xml")) {
+            if(configFileSet) {
+                log("Two build.xml files in jar", Project.MSG_WARN);
+            }
+            configFileSet = true;
+        }
+
+        super.zipFile(is, zOut, vPath, lastModified, fromArchive, mode);
+    }
+
+    /**
+     * This method is only valid after readConfig() or validateConfig() have been run
+     * @return Returns the Look And Feel class.
+     */
+    private String getLaf() {
+        if(laf == null){
+            return LookAndFeelFactory.DEFAULT_LAF;
+        }
+        return laf;
+    }
+
+    private Manifest getManifest() throws ManifestException{
+    	if(extractType.equalsIgnoreCase(NON_EXTRACTOR)){
+    		return getNonExtractorManifest();
+    	}
+        else if(extractType.equalsIgnoreCase(SELF_EXTRACTOR)){
+            return getSelfExtractorManifest();
+        }
+        else {
+            throw new BuildException("Invalid extractType: " + extractType);
+        }
+    }
+    
+    private Manifest getNonExtractorManifest() throws ManifestException{
+    	return getCustomManifest("org.tp23.antinstaller.selfextract.NonExtractor");
+    }
+    private Manifest getSelfExtractorManifest() throws ManifestException{
+    	return getCustomManifest("org.tp23.antinstaller.selfextract.SelfExtractor");
+    }
+    private Manifest getCustomManifest(String mainClass) throws ManifestException{
+    	log("Creating MANIFEST.mf");
+    	Manifest newManifest = new Manifest();
+    	Manifest.Section mainSection = newManifest.getMainSection();
+    	Manifest.Attribute attmc = new Manifest.Attribute();
+    	attmc.setName("Main-Class");
+    	attmc.setValue(mainClass);
+    	mainSection.addAttributeAndCheck(attmc);
+    	Manifest.Attribute attlaf = new Manifest.Attribute();
+    	attlaf.setName("Look-And-Feel");
+    	attlaf.setValue(getLaf());
+    	mainSection.addAttributeAndCheck(attlaf);
+    	return newManifest;
+    	
+    }
+	
+	protected void validateConfig(){
+		
+		int ret = 1;
+		try {
+			log("validating config...");
+            ConfigurationLoader configurationLoader = new ConfigurationLoader();
+            configurationLoader.readConfig(installConfig.getParentFile(), installConfig.getName());
+			ret = configurationLoader.validate();
+            laf = configurationLoader.getInstaller().getLookAndFeel();
+			if(ret != 0){
+				err();
+			}
+		}
+		catch (Exception ex) {
+			ex.printStackTrace();
+			err();
+		}
+		
+		try{
+			log("parsing included build.xml...");
+			InputSource xmlInp = new InputSource(new FileInputStream(buildFile));
+			SAXParserFactory parserFactory = SAXParserFactory.newInstance();
+			SAXParser parser = parserFactory.newSAXParser();
+			parser.parse(xmlInp, new DefaultHandler(){
+				public void error(SAXParseException e) throws SAXException{
+					throw e;
+				}
+				public void fatalError(SAXParseException e) throws SAXException{
+					throw e;
+				}
+			} );
+			log("build.xml is well formed");
+		}
+		catch (Exception ex) {
+			ex.printStackTrace();
+			errNestedBuildXml();
+		}
+	}
+
+    protected void readConfig(){
+        
+        try {
+            log("reading config...");
+            ConfigurationLoader configurationLoader = new ConfigurationLoader();
+            configurationLoader.readConfig(installConfig.getParentFile(), installConfig.getName());
+            laf = configurationLoader.getInstaller().getLookAndFeel();
+        }
+        catch (Exception ex) {
+            ex.printStackTrace();
+            err();
+        }
+    }
+    
+    /**
+	 * error found on validation of the antinstall config
+	 */
+	private void err(){
+		String errorMsg = "Error in config file:" + installConfig.getAbsolutePath();
+        if (failOnError) {
+            throw new BuildException(errorMsg);
+        } else {
+            log(errorMsg, Project.MSG_ERR);
+        }
+	}
+	/**
+	 * error found in the build.xml used by ant installer (not the one
+	 * running this task)
+	 */
+	private void errNestedBuildXml(){
+		String errorMsg = "Error in included build file:" + buildFile.getAbsolutePath();
+        if (failOnError) {
+            throw new BuildException(errorMsg);
+        } else {
+            log(errorMsg, Project.MSG_ERR);
+        }
+	}
+}
Index: /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/taskdefs/KdeIconTask.java
===================================================================
--- /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/taskdefs/KdeIconTask.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/taskdefs/KdeIconTask.java	(revision 14989)
@@ -0,0 +1,146 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.taskdefs;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.tp23.antinstaller.selfextract.ResourceExtractor;
+/**
+ * 
+ * @author teknopaul
+ *
+ */
+public class KdeIconTask extends Task{
+
+	private String desktop;
+	private String icon;
+	private String installDir;
+	
+	public void execute() throws BuildException{
+		if(desktop == null || icon == null || installDir == null){
+            throw new BuildException("Missing attribute in KdeIconTask");
+        }
+		
+		ResourceExtractor re = new ResourceExtractor();
+
+		File appsDir = null;
+		try {
+			appsDir = getAppsDir();
+		} catch (Exception e) {
+			throw new BuildException("Can not determine KDE directory");
+		}
+		if( appsDir != null && appsDir.exists() ) {
+			try {
+				String desktopFileName = desktop.substring( desktop.lastIndexOf('/') + 1 );
+				log("creating: " + new File( appsDir, desktopFileName).getCanonicalPath());
+				re.copyResource(desktop, new File( appsDir, desktopFileName), "@installDir@", installDir);
+			} catch (Exception e) {
+				StringWriter sw = new StringWriter();
+				e.printStackTrace(new PrintWriter(sw));
+				throw new BuildException(sw.getBuffer().toString());
+			}
+		}
+		else{
+			log("apps dir does not exist");
+		}
+		File iconDir = null;
+		try {
+			iconDir = getIconDir();
+		} catch (Exception e) {
+			throw new BuildException("Can not determine KDE directory");
+		}
+		if(iconDir != null && iconDir.exists()){
+			try {				
+				String iconFileName = icon.substring( icon.lastIndexOf('/') + 1 );
+				log("creating: " + new File( iconDir, iconFileName).getCanonicalPath());
+				re.copyResourceBinary(icon, new File( iconDir, iconFileName ));
+			} catch (IOException e) {
+				throw new BuildException(e.getMessage());
+			}
+		}
+		else{
+			log("icon dir does not exist");
+		}
+		try {	
+			Process proc = Runtime.getRuntime().exec("kbuildsycoca");
+		} catch (Exception e) {
+			log("error running kbuildsycoca: " + e.getMessage());
+		}
+		
+	}
+	
+	private File getKdeDir(String pathdef, String extension) throws IOException, InterruptedException{
+		String[] args = {"kde-config", "--path", pathdef};
+		Process proc = Runtime.getRuntime().exec(args);
+		BufferedReader br = new BufferedReader( new InputStreamReader(proc.getInputStream()));
+		String appsDirs = br.readLine();
+		int idx = -1;
+        if(appsDirs != null) {
+            idx = appsDirs.indexOf(':');
+        }
+        br.close();
+	
+		if(idx > -1 && idx < appsDirs.length() - 1){
+			String privatedir = appsDirs.substring(0, idx - 1);
+			if(!privatedir.endsWith("/")){
+				privatedir = privatedir + "/"; 
+			}
+			return new File(privatedir + extension);
+		}
+		else{
+			if(!appsDirs.endsWith("/")){
+				appsDirs = appsDirs + "/"; 
+			}
+			return  new File(appsDirs + extension);
+		}
+	}
+	private File getAppsDir() throws IOException, InterruptedException{
+		return getKdeDir("xdgdata-apps", "");
+	}
+	private File getIconDir() throws IOException, InterruptedException{
+		return getKdeDir("icon", "hicolor/48x48/apps");
+	}
+	
+	
+	public String getDesktop() {
+		return desktop;
+	}
+	public void setDesktop(String desktop) {
+		this.desktop = desktop;
+	}
+	public String getIcon() {
+		return icon;
+	}
+	public void setIcon(String icon) {
+		this.icon = icon;
+	}
+
+	public String getInstallDir() {
+		return installDir;
+	}
+
+	public void setInstallDir(String installDir) {
+		this.installDir = installDir;
+	}
+	
+}
Index: /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/taskdefs/ValidateConfig.java
===================================================================
--- /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/taskdefs/ValidateConfig.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/taskdefs/ValidateConfig.java	(revision 14989)
@@ -0,0 +1,26 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.taskdefs;
+
+public class ValidateConfig extends Installer {
+
+    public void execute(){
+        log(".-------------------------------.");
+        log("|-(o--~AntInstaller.sf.net~--o)-|");
+        log("`-----------------by-Paul-Hinds-ÂŽ");
+        validateConfig();
+    }
+}
Index: /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/util/CreateLanguagePack.java
===================================================================
--- /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/util/CreateLanguagePack.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/util/CreateLanguagePack.java	(revision 14989)
@@ -0,0 +1,112 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.util;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import javax.swing.JDialog;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.filechooser.FileFilter;
+
+import org.tp23.antinstaller.InstallException;
+import org.tp23.antinstaller.Installer;
+import org.tp23.antinstaller.InstallerContext;
+import org.tp23.antinstaller.runtime.exe.LoadConfigFilter;
+
+public class CreateLanguagePack {
+
+	
+	public static void main(String[] args) {
+		try {
+			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
+
+			System.out.println("Create LanguagePack for antinstall-config.xml in the current directory?");
+			br.readLine();
+			
+			System.out.println("Enter Locale to create e.g. es_EU");
+			String locale = br.readLine().trim();
+			
+			createLanguagePack(loadConfigFile(new File("."), "antinstall-config.xml" ), locale, new File("."));
+			
+			System.out.println("done.");
+		} catch (IOException e) {
+			e.printStackTrace();
+		} catch (InstallException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	public static File guiMain(JFrame root) {
+		try {
+			JFileChooser chooser = new JFileChooser();
+			chooser.setDialogTitle("Select antinstall-config.xml file");
+			chooser.setApproveButtonText("Select file");
+			FileFilter ff = new FileFilter(){
+				public boolean accept(File file){
+					return file.getName().equals("antinstall-config.xml") || file.isDirectory();
+				}
+				public String getDescription() {
+					return "antinstall-config.xml files";
+				}
+			};
+			chooser.setFileFilter(ff);
+			chooser.showOpenDialog(root);
+			File chosen = chooser.getSelectedFile();
+			if(chosen != null){
+				chooser = new JFileChooser();
+				chooser.setDialogTitle("Select output directory");
+				chooser.setApproveButtonText("Internationalise file");
+				chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+				chooser.setCurrentDirectory(chosen.getParentFile());
+				chooser.showOpenDialog(root);
+				File dir = chooser.getSelectedFile();
+				if(dir != null){
+					createLanguagePack(loadConfigFile(chosen.getParentFile(), chosen.getName()), null, dir);
+					if(! dir.getName().equals("resources")){
+						JOptionPane.showMessageDialog(root, "When the resources files are added to the installer jar\n the parent directory must be /resources/");
+					}
+					return new File(dir, "LanguagePack.properties");
+				}
+			}
+
+		} catch (IOException e) {
+			e.printStackTrace();
+		} catch (InstallException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+	
+	private static Installer loadConfigFile(File rootDir, String configName) throws InstallException{
+		InstallerContext ctx = new InstallerContext();
+		ctx.setFileRoot(rootDir);
+        ctx.setInstallerConfigFile(configName);
+		LoadConfigFilter configLoader = new LoadConfigFilter();
+		configLoader.exec(ctx);
+		Installer installer = ctx.getInstaller();
+		return installer;
+	}
+	
+	private static void createLanguagePack(Installer installer, String locale, File outputDir) throws IOException{
+		LangPackFileRenderer renderer = new LangPackFileRenderer();
+		renderer.renderProperties(installer, outputDir, locale);
+	}
+}
Index: /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/util/LangPackFileRenderer.java
===================================================================
--- /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/util/LangPackFileRenderer.java	(revision 14989)
+++ /release-kits/shared/ant-installer/src_ext/org/tp23/antinstaller/util/LangPackFileRenderer.java	(revision 14989)
@@ -0,0 +1,227 @@
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package org.tp23.antinstaller.util;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import org.tp23.antinstaller.Installer;
+import org.tp23.antinstaller.PropertiesFileRenderer;
+import org.tp23.antinstaller.input.CommentOutput;
+import org.tp23.antinstaller.input.InputField;
+import org.tp23.antinstaller.input.LargeSelectInput;
+import org.tp23.antinstaller.input.OutputField;
+import org.tp23.antinstaller.input.SecretPropertyField;
+import org.tp23.antinstaller.input.ConditionalField;
+import org.tp23.antinstaller.input.SelectInput;
+import org.tp23.antinstaller.input.TargetSelectInput;
+import org.tp23.antinstaller.input.SelectInput.Option;
+import org.tp23.antinstaller.page.Page;
+
+/**
+ * <p>Outputs the text from Pages as a Java Properties file. The file produced is compatible
+ * with java.util.Properties. </p>
+ * <p>It can be used as a stub for creating language packs,  the default text is included as a guide but can be deleted</p>
+ * @author Paul Hinds
+ */
+public class LangPackFileRenderer{
+
+	private static String newLine = System.getProperty("line.separator");
+	private static final char[] hexidecimals = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
+
+	public LangPackFileRenderer() {
+	}
+
+	public void renderProperties(Installer installer, File baseDir, String locale) throws IOException {
+		Page[] pages = installer.getPages();
+
+		StringBuffer propertiesData = new StringBuffer();
+		propertiesData.append("### Ant Installer - language pack auto generated on ");
+		propertiesData.append(new Date().toString());
+		propertiesData.append(newLine);
+		propertiesData.append(newLine);
+
+		propertiesData.append("finishButtonText = " + installer.getFinishButtonText());
+		propertiesData.append(newLine);
+		propertiesData.append(newLine);
+
+		String property = null;
+        String value = null;
+
+        for (int i = 0; i < pages.length; i++) {
+			OutputField[] fields = pages[i].getOutputField();
+
+			propertiesData.append(newLine);
+			propertiesData.append("## Text from Page:" + pages[i].getName());
+			propertiesData.append(newLine);
+            property = "page." + pages[i].getName() + ".displayText";
+			value = convert(pages[i].getDisplayText(), false);
+			propertiesData.append(property + " = " + value);
+			propertiesData.append(newLine);
+
+            retrievePropertiesData( fields, propertiesData );
+
+		}
+        // create the stub
+        if(locale != null) {
+			File languagePackStub = new File(baseDir.getAbsolutePath(), "LanguagePack_" + locale + ".properties");
+			FileWriter fos = new FileWriter(languagePackStub);
+			BufferedWriter writer = new BufferedWriter(fos);
+			writer.write(propertiesData.toString());
+			writer.flush();
+			fos.close();
+        }
+        else {
+			// create the default
+			File languagePack = new File(baseDir.getAbsolutePath(), "LanguagePack.properties");
+			FileWriter fos = new FileWriter(languagePack);
+			BufferedWriter writer = new BufferedWriter(fos);
+			writer.write(propertiesData.toString());
+			writer.flush();
+			fos.close();
+        }
+	}
+	
+    private void retrievePropertiesData( OutputField[] fields, StringBuffer propertiesData ) {
+        String property = null;
+        String value = null;
+        String explProperty = null;
+        String explValue = null;
+
+        for (int f = 0; f < fields.length; f++) {
+        	
+        	// use getName() for comments
+        	if(fields[f] instanceof CommentOutput){
+	            property = fields[f].getName() + ".displayText";
+				value = convert(fields[f].getDisplayText(), false);
+				propertiesData.append(property + " = " + value);
+				propertiesData.append(newLine);
+
+				if (fields[f].getExplanatoryText() != null && fields[f].getExplanatoryText().trim().length() > 0) {
+					explProperty = fields[f].getName() + ".explanatoryText";
+					explValue = convert(fields[f].getExplanatoryText(), false);
+					propertiesData.append(explProperty + " = " + explValue);
+					propertiesData.append(newLine);
+				}
+        	}
+        	// use getProperty for input types
+        	else {
+        		InputField iField = (InputField)fields[f];
+	            property = iField.getProperty() + ".displayText";
+				value = convert(iField.getDisplayText(), false);
+				propertiesData.append(property + " = " + value);
+				propertiesData.append(newLine);
+				if (iField.getExplanatoryText() != null && iField.getExplanatoryText().trim().length() > 0) {
+					explProperty = iField.getProperty() + ".explanatoryText";
+					explValue = convert(iField.getExplanatoryText(), false);
+					propertiesData.append(explProperty + " = " + explValue);
+					propertiesData.append(newLine);
+ 				}
+				if(iField instanceof SelectInput) {
+					SelectInput selectInput = (SelectInput)iField;
+					for (int o = 0; o < selectInput.getOptions().length; o++) {
+						SelectInput.Option option =  selectInput.getOptions()[o];
+			            property = selectInput.getProperty() + "." + (o + 1) + ".displayText";
+						value = convert(option.getText(), false);
+						propertiesData.append(property + " = " + value);
+						propertiesData.append(newLine);
+					}
+				}
+				if(fields[f] instanceof LargeSelectInput) {
+					LargeSelectInput selectInput = (LargeSelectInput)iField;
+					for (int o = 0; o < selectInput.getOptions().length; o++) {
+						LargeSelectInput.Option option =  selectInput.getOptions()[o];
+			            property = selectInput.getProperty() + "." + (o + 1) + ".displayText";
+						value = convert(option.getText(), false);
+						propertiesData.append(property + " = " + value);
+						propertiesData.append(newLine);
+					}
+				}
+        	}			
+        }
+    }
+
+	private String convert(String input, boolean doSpaces) {
+		if (input == null) {
+			// this happens when a page is skipped in text mode
+			return "";
+		}
+		int num = input.length();
+		StringBuffer sb = new StringBuffer(num);
+
+		for (int i = 0; i < num; i++) {
+			char c = input.charAt(i);
+			switch (c) {
+				case ' ':
+					if (i == 0 || doSpaces) {
+						sb.append('\\');
+					}
+					sb.append(' ');
+					break;
+				case '\n':
+					sb.append("\\n");
+					break;
+				case '\r':
+					sb.append("\\r");
+					break;
+				case '\\':
+					sb.append("\\\\");
+					break;
+				case '\t':
+					sb.append("\\t");
+					break;
+				case '\f':
+					sb.append("\\f");
+					break;
+				case '=':
+					sb.append("\\=");
+					break;
+				case ':':
+					sb.append("\\:");
+					break;
+				case '#':
+					sb.append("\\#");
+					break;
+				case '!':
+					sb.append("\\!");
+					break;
+
+				default:
+					if ( (c < 0x0020) || (c > 0x007e) ) {
+						sb.append("\\u")
+							.append(hex( (c >> 12) & 0xF))
+							.append(hex( (c >> 8) & 0xF))
+							.append(hex( (c >> 4) & 0xF))
+							.append(hex(c & 0xF));
+					}
+					else {
+						sb.append(c);
+					}
+			}
+		}
+		return sb.toString();
+	}
+
+	private char hex(int val) {
+		return hexidecimals[ (val & 0xF)];
+	}
+
+}
Index: /release-kits/shared/ant-installer/templates/defaultproject/README.txt
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/README.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/README.txt	(revision 14989)
@@ -0,0 +1,115 @@
+---+ Default Project Template Builder
+
+This template is a method of getting up and running with
+AntInstaller quickly.  The template will help you create
+an installer for a Java project.  
+
+
+---++ Output
+
+   * create-installer.xml - An ant build script to package the installer
+   * build.xml - An Ant script used by the installer
+   * antinstall-config.xml - The definition of the installer
+All of the above can be edited to suit your needs
+   * Optionally the script will run the create-installer.xml Ant script to make the Jar immediately
+
+
+---++ Usage
+
+Read this README first
+Change directory to the location of this README file
+Set the ANT_INSTALL_HOME variable to the directory where you have installed AntInstaller.
+Set JAVA_HOME
+> export ANT_INSTALL_HOME=/usr/local/AntInstaller-beta0.7.2
+Start the runtemplate.sh script
+> ./runtemplate.sh
+Follow the instructions
+
+---++ Project Structure
+
+AntInstaller launches and asks you for your project information
+Generally it is assumed that your projects follow this structure
+
+/projects_root/
+
+/projects_root/project-name/
+
+for example if you use eclipse and CVS this will be
+/workspace/cvs-module-name/
+
+By default the template selects the following subdirectories
+which can be modified.
+/projects_root/project-name/src/ - source code
+/projects_root/project-name/bin/ - scripts (these get chmod u+x) in the installer
+/projects_root/project-name/doc/ - documentation
+/projects_root/project-name/lib/ - Jars
+/projects_root/project-name/classes/ - err... classes?
+
+The template only lets you select one directory for each, dont worry
+AntInstaller itself is infinately configurable.
+
+
+First time you run the script you should let the template
+create a new empty directory for creating installers
+/usr/local/installers/
+From this directory subdirectories will be created for each project 
+/usr/local/installers/project-name/
+
+---++ Configuring the installer
+
+This template is NOT designed to create you the final installer you will
+deploy.  If you have a very simple standard project it may suffice, 
+but it is expected that you will want to modify the XML files created
+to customise the build.
+
+Following the documentation on the web you can modify the 
+antinstall-config.xml file to add extra pages and collect extra input 
+when the user installs your application.
+http://antinstaller.sourceforge.net
+
+The build.xml file can be modified to customise the install proces
+that is run by AntInstaller on the users machine.  
+You have the full power of Ant so you can easily 
+   * move files around
+   * replace text
+   * Zip Unzip
+   * run scripts
+   * call Java
+   * run sub ant build.xml files
+   * call SQL files via JDBC
+   * fix line ending s
+   * and anything in the CoreTypes in Ant.
+
+The create-installer.xml file is an Ant script that creates the installer
+by modifying this file you can add extra resources to the final Jar 
+such as images that you want in the installer or extra source directories.
+By adding Ant optional Jars to the installer you can then access any
+additional features of Ant during the install enabling you to
+   * Call SSH or Telnet commands
+   * SCP/ FTP files 
+   * Send emails
+   * and anything in the OptionaTypes in Ant
+
+
+
+---++ Contributions
+
+This tool itself (obviously) uses AntInstaller.
+You are free to modify the scripts to extend the features of the tool.
+If you do I would encourage you to submit the changes back so
+everyone can benefit from your enhancement.
+It is a good example of using AntInstaller to acheive tasks other
+than just installing apps.
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/templates/defaultproject/ant.install.log
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/ant.install.log	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/ant.install.log	(revision 14989)
@@ -0,0 +1,13 @@
+Logger initialized
+Ant basedir:/research/oranfry/programs/ant-installer/templates/defaultproject
+Filter: org.tp23.antinstaller.runtime.exe.LoadConfigFilter
+Config loaded
+Filter: org.tp23.antinstaller.runtime.exe.CreateUIFilter
+Creating UI classes
+Setting look and feel:org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel
+Created UI classes
+Filter: org.tp23.antinstaller.runtime.exe.PropertyLoaderFilter
+loadDefaults attribute:null
+Not loading defaults
+Filter: org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter
+Starting UI Screens
Index: /release-kits/shared/ant-installer/templates/defaultproject/ant.install.properties
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/ant.install.properties	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/ant.install.properties	(revision 14989)
@@ -0,0 +1,65 @@
+### Ant Installer - properties auto generated on Tue\ Dec\ 18\ 15\:27\:39\ NZDT\ 2007
+
+basedir = /research/oranfry/programs/ant-installer/templates/defaultproject/.
+ant.install.config.version = 0.0
+
+
+## Properties from Page:intro
+# Targets selected for page
+intro-targets = Base,
+
+## Properties from Page:properties
+# .UnvalidatedTextInput
+PROJECT_NAME = Test Project
+# .DirectoryInput
+PROJECT_ROOT = /research/oranfry/sandbox/ant-installer/installers
+# .ValidatedTextInput
+PROJECT_SHORT_NAME = TestProject
+# .DirectoryInput
+RESOURCE_ROOT = /research/oranfry/sandbox/ant-installer/projects
+# .AppRootInput
+ANT_INSTALL_ROOT = /research/oranfry/programs/ant-installer
+# .FileInput
+PROJECT_LIC = /research/oranfry/programs/ant-installer/lib/LICENSE-ant-install.txt
+
+## Properties from Page:targets
+# .TargetInput
+SourceCode = true
+# .TargetInput
+Libraries = true
+# .TargetInput
+Scripts = true
+# .TargetInput
+Documentation = true
+# .TargetInput
+Classes = true
+# Targets selected for page
+targets-targets = SourceCode,Libraries,Scripts,Documentation,Classes,
+
+## Properties from Page:resources
+# .DirectoryInput
+PROJECT_SRC = /research/oranfry/sandbox/gsdl-trunk
+
+## Properties from Page:resources
+# .DirectoryInput
+PROJECT_LIB = /research/oranfry/sandbox/gsdl-trunk/lib
+
+## Properties from Page:resources
+# .DirectoryInput
+PROJECT_BIN = /research/oranfry/sandbox/gsdl-trunk/bin/script
+
+## Properties from Page:resources
+# .DirectoryInput
+PROJECT_DOC = /research/oranfry/sandbox/gsdl-trunk/images
+
+## Properties from Page:resources
+# .DirectoryInput
+PROJECT_CLASSES = /research/oranfry/sandbox/gsdl-trunk/etc
+
+## Properties from Page:createinstaller
+# .TargetInput
+CreateInstaller = true
+# Targets selected for page
+createinstaller-targets = CreateInstaller,
+
+## Properties from Page:progress
Index: /release-kits/shared/ant-installer/templates/defaultproject/antinstall-config-template.xml
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/antinstall-config-template.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/antinstall-config-template.xml	(revision 14989)
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd">
+<installer
+			ui="swing,text"
+			verbose="true"
+			debug="false"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="@PROJECT_NAME@ Installer"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/makewavesdawn.png"
+			minJavaVersion="1.4">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the @PROJECT_NAME@ installer">
+	</page>
+	<!--  type="license" shows a license page to click through -->
+	<page
+			type="license"
+			name="license"
+			displayText="License conditions"
+			resource="/resources/License.txt">
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Required install options">
+		<directory
+				property="installDir"
+				defaultValue="/usr/local/@PROJECT_SHORT_NAME@"
+				defaultValueWin="${env.ProgramFiles}\@PROJECT_SHORT_NAME@"
+				displayText="Select an installation directory"
+				create="true"/>
+	</page>
+	<page
+			type="input"
+			name="selector"
+			displayText="Components to install">
+		<comment
+				displayText="Choose the components you want to install"
+				bold="true"/>
+		<target
+			displayText="Core components"
+			target="default"
+			defaultValue="true"
+			force="true"/>
+		<!--SourceCode
+		<target
+			displayText="Source code"
+			target="tgsrc"
+			defaultValue="false"/>
+		SourceCode-->
+		<!--Documentation
+		<target
+			displayText="Documentation"
+			target="tgdoc"
+			defaultValue="true"/>
+		Documentation-->
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Installation progress"
+			showTargets="false"
+			target="cleanuptarget">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/templates/defaultproject/antinstall-config.xml
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/antinstall-config.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/antinstall-config.xml	(revision 14989)
@@ -0,0 +1,177 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd">
+<installer
+			ui="swing,text"
+			verbose="true"
+			lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+			name="Installer Wizard"
+			windowIcon="/resources/gkmain_inv.png"
+			defaultImageResource="/resources/makewavesdawn.png"
+			minJavaVersion="1.4"
+			finishButtonText="Create Project">
+	<!--  each page element represents a page of the installer -->
+	<page
+			type="input"
+			name="intro"
+			displayText="Welcome to the Default Installer Wizard"
+			target="Base">
+			<comment
+			displayText="This tool creates a default installer project"/>
+	</page>
+	<!--  type="input" shows a list of editable options for the installer -->
+	<page
+			type="input"
+			name="properties"
+			displayText="Project Options">
+		<text
+			property="PROJECT_NAME"
+			displayText="Project name"
+			defaultValue="My Project"/>
+		<directory
+				property="PROJECT_ROOT"
+				defaultValue="${java.user.home}/installers"
+				defaultValueWin="${java.user.home}\installers"
+				explanatoryText="The build directory is used to create the installer and some temporary files, it should be empty"
+				displayText="Select your build directory"
+				checkExists="true"
+				create="true"/>
+		<validated
+			property="PROJECT_SHORT_NAME"
+			displayText="Short name (no spaces)"
+			explanatoryText="The short name is generally the module name in CVS or the name used in Eclipse"
+			defaultValue="MyProject"
+			regex="^[a-zA-Z][_a-zA-Z0-9]+$"/>
+		<directory
+				property="RESOURCE_ROOT"
+				defaultValue="${java.user.home}/projects"
+				defaultValueWin="C:\projects"
+				displayText="Select your projects root"
+				explanatoryText="The projects root is the root directory where you keep your projects, for 
+example this might be the eclipse workspace or CVS root"
+				checkExists="true"
+				create="true"/>
+		<app-root
+				property="ANT_INSTALL_ROOT"
+				defaultValue="${env.ANT_INSTALL_HOME}"
+				displayText="Confirm the AntInstall directory"
+				checkFile1="antlib/ant.jar"
+				checkFile2="lib/ant-installer.jar"
+				checkDir1="lib"
+				checkDir2="antlib"
+				/>
+		<file
+				property="PROJECT_LIC"
+				defaultValue="${env.ANT_INSTALL_HOME}/lib/LICENSE-ant-install.txt"
+				defaultValueWin="${env.ANT_INSTALL_HOME}\lib\LICENSE-ant-install.txt"
+				displayText="Choose a License File"
+				checkExists="true"/>
+	</page>
+	<page
+			type="input"
+			name="targets"
+			displayText="Select resources to include in the installer">
+		<target 
+			target="SourceCode"
+			displayText="Include Source Code"
+			defaultValue="true"/>
+		<target 
+			target="Libraries"
+			displayText="Include Libraries (Jars)"
+			defaultValue="true"/>
+		<target 
+			target="Scripts"
+			displayText="Include Scripts"
+			defaultValue="true"/>
+		<target 
+			target="Documentation"
+			displayText="Include Documents"
+			defaultValue="true"/>
+		<target 
+			target="Classes"
+			displayText="Include Classes"
+			defaultValue="true"/>
+	</page>
+	<page
+			type="input"
+			name="resources"
+			displayText="Source Code"
+			ifTarget="SourceCode">
+		<directory
+				property="PROJECT_SRC"
+				defaultValue="${RESOURCE_ROOT}/${PROJECT_SHORT_NAME}/src"
+				defaultValueWin="${RESOURCE_ROOT}\${PROJECT_SHORT_NAME}\src"
+				displayText="Select the source code"
+				checkExists="true"
+				create="false"/>
+	</page>
+	<page
+			type="input"
+			name="resources"
+			displayText="Libraries"
+			ifTarget="Libraries">
+		<directory
+				property="PROJECT_LIB"
+				defaultValue="${RESOURCE_ROOT}/${PROJECT_SHORT_NAME}/lib"
+				defaultValueWin="${RESOURCE_ROOT}\${PROJECT_SHORT_NAME}\lib"
+				displayText="Select the libraries"
+				checkExists="true"
+				create="false"/>
+	</page>
+	<page
+			type="input"
+			name="resources"
+			displayText="Scripts"
+			ifTarget="Scripts">
+		<directory
+				property="PROJECT_BIN"
+				defaultValue="${RESOURCE_ROOT}/${PROJECT_SHORT_NAME}/bin"
+				defaultValueWin="${RESOURCE_ROOT}\${PROJECT_SHORT_NAME}\bin"
+				displayText="Select the scripts"
+				checkExists="true"
+				create="false"/>
+	</page>
+	<page
+			type="input"
+			name="resources"
+			displayText="Documentation"
+			ifTarget="Documentation">
+		<directory
+				property="PROJECT_DOC"
+				defaultValue="${RESOURCE_ROOT}/${PROJECT_SHORT_NAME}/doc"
+				defaultValueWin="${RESOURCE_ROOT}\${PROJECT_SHORT_NAME}\doc"
+				displayText="Select the documentation"
+				checkExists="true"
+				create="false"/>
+	</page>
+	<page
+			type="input"
+			name="resources"
+			displayText="Classes"
+			ifTarget="Classes">
+		<directory
+				property="PROJECT_CLASSES"
+				defaultValue="${RESOURCE_ROOT}/${PROJECT_SHORT_NAME}/classes"
+				defaultValueWin="${RESOURCE_ROOT}\${PROJECT_SHORT_NAME}\classes"
+				displayText="Select the classes"
+				checkExists="true"
+				create="false"/>
+	</page>
+	<page
+			type="input"
+			name="createinstaller"
+			displayText="Create Installer">
+		<target
+				target="CreateInstaller"
+				defaultValue="true"
+				explanatoryText="You may wish to edit the project files this tool will create. If not, select 'Create the installer' to create a selfextracting jar file from the resources previously chosen"
+				displayText="Create the installer"/>
+	</page>
+	<page
+			type="progress"
+			name="progress"
+			displayText="Build progress"
+			showTargets="false">
+	</page>
+</installer>
+
+
Index: /release-kits/shared/ant-installer/templates/defaultproject/build-self-extractor-template.sh
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/build-self-extractor-template.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/build-self-extractor-template.sh	(revision 14989)
@@ -0,0 +1,25 @@
+#!/bin/sh
+dir=`expr  match "$0" '\(.*\)build-self-extractor.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      echo changing to $dir
+      cd "$dir" ;
+   fi
+fi
+
+
+
+if [ "$JAVA_HOME" = "" ] ; then
+	echo set JAVA_HOME;
+	exit 1;
+fi
+
+# Ant classpath
+ANT_INSTALLER_HOME=@ANT_INSTALL_ROOT@
+CLASSPATH=$ANT_INSTALLER_HOME/antlib/ant.jar
+CLASSPATH=$CLASSPATH:$ANT_INSTALLER_HOME/antlib/xml-apis.jar
+CLASSPATH=$CLASSPATH:$ANT_INSTALLER_HOME/antlib/xercesImpl.jar
+CLASSPATH=$CLASSPATH:$ANT_INSTALLER_HOME/antlib/ant-launcher.jar
+
+$JAVA_HOME/bin/java -cp $CLASSPATH org.apache.tools.ant.Main -buildfile ./create-installer.xml 
Index: /release-kits/shared/ant-installer/templates/defaultproject/build-template.xml
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/build-template.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/build-template.xml	(revision 14989)
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<!--
+This is the build.xml run by AntInstaller for the installer
+-->
+
+<project name="Installation"  default=""  basedir="${basedir}">
+
+	<!-- this is required to pick up the properties generated during the install pages -->
+	<property file="${basedir}/ant.install.properties"/>
+
+
+	<target name="default" depends="">
+		<echo message="Createing Installation directory"/>
+		<mkdir dir="${installDir}"/>
+	
+		<!--Scripts
+		<echo message="Installing Scripts files"/>
+		<mkdir dir="${installDir}/bin"/>
+		<unzip src="${antinstaller.jar}" dest="${installDir}">
+			<patternset>
+				<include name="bin/*.sh"/>
+				<include name="bin/*.ksh"/>
+				<include name="bin/*.csh"/>
+				<include name="bin/*.cmd"/>
+				<include name="bin/*.bat"/>
+			</patternset>
+		</unzip>
+		<chmod file="${installDir}/bin/*.sh" perm="774"/>
+		<chmod file="${installDir}/bin/*.ksh" perm="774"/>
+		<chmod file="${installDir}/bin/*.csh" perm="774"/>
+		Scripts-->
+	
+		<!--Libraries
+		<echo message="Installing Libraries files"/>
+		<mkdir dir="${installDir}/lib"/>
+		<unzip src="${antinstaller.jar}" dest="${installDir}">
+			<patternset>
+				<include name="lib/*"/>
+			</patternset>
+		</unzip>
+		Libraries-->
+	
+		<!--Classes
+		<echo message="Installing Class files"/>
+		<mkdir dir="${installDir}/classes"/>
+		<unzip src="${antinstaller.jar}" dest="${installDir}">
+			<patternset>
+				<include name="classes/**/*"/>
+			</patternset>
+		</unzip>
+		Classes-->
+	</target>
+
+	<!--Documentation
+	<target name="tgdoc" depends="">
+		<echo message="Installing Documentation files"/>
+		<mkdir dir="${installDir}/doc"/>
+		<unzip src="${antinstaller.jar}" dest="${installDir}">
+			<patternset>
+				<include name="doc/**/*"/>
+			</patternset>
+		</unzip>
+	</target>
+	Documentation-->
+	
+	<!--SourceCode
+	<target name="tgsrc" depends="">
+		<echo message="Installing Source files"/>
+		<mkdir dir="${installDir}/src"/>
+		<unzip src="${antinstaller.jar}" dest="${installDir}">
+			<patternset>
+				<include name="src/**/*"/>
+			</patternset>
+		</unzip>
+	</target>
+	SourceCode-->
+
+	<target name="cleanuptarget" depends="">
+	</target>
+</project>
Index: /release-kits/shared/ant-installer/templates/defaultproject/build.xml
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/build.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/build.xml	(revision 14989)
@@ -0,0 +1,143 @@
+<?xml version="1.0"?>
+
+<!--  this file is creates a build directory -->
+<project name="Create Default Installer"  default=""  basedir="${basedir}">
+
+
+	<property file="${basedir}/ant.install.properties"/>
+	<!-- the above file sets the following -->
+	<property name="ANT_INSTALL_ROOT"   value=""/>
+	<property name="PROJECT_NAME"       value=""/>
+	<property name="PROJECT_SHORT_NAME" value=""/>
+	<property name="PROJECT_ROOT"       value=""/>
+	<property name="PROJECT_SRC"        value=""/>
+	<property name="PROJECT_LIB"        value=""/>
+	<property name="PROJECT_LIC"        value=""/>
+	<property name="PROJECT_BIN"        value=""/>
+	<property name="PROJECT_DOC"        value=""/>
+	<property name="PROJECT_CLASSES"    value=""/>
+		
+	<property name="THIS_PROJECT_ROOT"     value="${PROJECT_ROOT}/${PROJECT_SHORT_NAME}"/>
+
+	<target name="Base">
+		<mkdir dir="${THIS_PROJECT_ROOT}"/>
+		<copy
+			file="${ANT_INSTALL_ROOT}/templates/defaultproject/build-template.xml"
+			tofile="${THIS_PROJECT_ROOT}/build.xml">
+		</copy>
+		<copy
+			file="${ANT_INSTALL_ROOT}/templates/defaultproject/antinstall-config-template.xml"
+			tofile="${THIS_PROJECT_ROOT}/antinstall-config.xml">
+		</copy>
+		<replace file="${THIS_PROJECT_ROOT}/antinstall-config.xml">
+			<replacefilter token="@PROJECT_NAME@"       value="${PROJECT_NAME}"/>
+			<replacefilter token="@PROJECT_SHORT_NAME@" value="${PROJECT_SHORT_NAME}"/>
+		</replace>
+		<copy
+			file="${ANT_INSTALL_ROOT}/templates/defaultproject/create-installer-template.xml"
+			tofile="${THIS_PROJECT_ROOT}/create-installer.xml">
+		</copy>
+		<replace file="${THIS_PROJECT_ROOT}/create-installer.xml">
+			<replacefilter token="@ANT_INSTALL_ROOT@" value="${ANT_INSTALL_ROOT}"/>
+			<replacefilter token="@PROJECT_NAME@"     value="${PROJECT_NAME}"/>
+			<replacefilter token="@PROJECT_SHORT_NAME@"     value="${PROJECT_SHORT_NAME}"/>
+			<replacefilter token="@PROJECT_ROOT@"     value="${PROJECT_ROOT}"/>
+			<replacefilter token="@PROJECT_SRC@"      value="${PROJECT_SRC}"/>
+			<replacefilter token="@PROJECT_LIB@"      value="${PROJECT_LIB}"/>
+			<replacefilter token="@PROJECT_LIC@"      value="${PROJECT_LIC}"/>
+			<replacefilter token="@PROJECT_BIN@"      value="${PROJECT_BIN}"/>
+			<replacefilter token="@PROJECT_DOC@"      value="${PROJECT_DOC}"/>
+			<replacefilter token="@PROJECT_CLASSES@"  value="${PROJECT_CLASSES}"/>
+		</replace>
+	
+		<copy
+			file="${ANT_INSTALL_ROOT}/templates/defaultproject/build-self-extractor-template.sh"
+			tofile="${THIS_PROJECT_ROOT}/build-self-extractor.sh">
+		</copy>
+		<replace file="${THIS_PROJECT_ROOT}/build-self-extractor.sh">
+			<replacefilter token="@ANT_INSTALL_ROOT@"       value="${ANT_INSTALL_ROOT}"/>
+		</replace>
+		<chmod file="${THIS_PROJECT_ROOT}/build-self-extractor.sh" perm="774"/>
+	</target>
+
+	<target name="SourceCode">
+		<replace file="${THIS_PROJECT_ROOT}/create-installer.xml">
+			<replacefilter token="&lt;!--SourceCode" value=""/>
+			<replacefilter token="SourceCode--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/build.xml">
+			<replacefilter token="&lt;!--SourceCode" value=""/>
+			<replacefilter token="SourceCode--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/antinstall-config.xml">
+			<replacefilter token="&lt;!--SourceCode" value=""/>
+			<replacefilter token="SourceCode--&gt;"  value=""/>
+		</replace>
+	</target>
+
+	<target name="Libraries">
+		<replace file="${THIS_PROJECT_ROOT}/create-installer.xml">
+			<replacefilter token="&lt;!--Libraries" value=""/>
+			<replacefilter token="Libraries--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/build.xml">
+			<replacefilter token="&lt;!--Libraries" value=""/>
+			<replacefilter token="Libraries--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/antinstall-config.xml">
+			<replacefilter token="&lt;!--Libraries" value=""/>
+			<replacefilter token="Libraries--&gt;"  value=""/>
+		</replace>
+	</target>
+
+	<target name="Documentation">
+		<replace file="${THIS_PROJECT_ROOT}/create-installer.xml">
+			<replacefilter token="&lt;!--Documentation" value=""/>
+			<replacefilter token="Documentation--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/build.xml">
+			<replacefilter token="&lt;!--Documentation" value=""/>
+			<replacefilter token="Documentation--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/antinstall-config.xml">
+			<replacefilter token="&lt;!--Documentation" value=""/>
+			<replacefilter token="Documentation--&gt;"  value=""/>
+		</replace>
+	</target>
+
+	<target name="Classes">
+		<replace file="${THIS_PROJECT_ROOT}/create-installer.xml">
+			<replacefilter token="&lt;!--Classes" value=""/>
+			<replacefilter token="Classes--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/build.xml">
+			<replacefilter token="&lt;!--Classes" value=""/>
+			<replacefilter token="Classes--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/antinstall-config.xml">
+			<replacefilter token="&lt;!--Classes" value=""/>
+			<replacefilter token="Classes--&gt;"  value=""/>
+		</replace>
+	</target>
+
+	<target name="Scripts">
+		<replace file="${THIS_PROJECT_ROOT}/create-installer.xml">
+			<replacefilter token="&lt;!--Scripts" value=""/>
+			<replacefilter token="Scripts--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/build.xml">
+			<replacefilter token="&lt;!--Scripts" value=""/>
+			<replacefilter token="Scripts--&gt;"  value=""/>
+		</replace>
+		<replace file="${THIS_PROJECT_ROOT}/antinstall-config.xml">
+			<replacefilter token="&lt;!--Scripts" value=""/>
+			<replacefilter token="Scripts--&gt;"  value=""/>
+		</replace>
+	</target>
+
+	<target name="CreateInstaller">
+		<echo message="Creating the Selfextracting installer"/>
+		<ant antfile="${THIS_PROJECT_ROOT}/create-installer.xml"/>
+	</target>
+
+</project>
Index: /release-kits/shared/ant-installer/templates/defaultproject/create-installer-template.xml
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/create-installer-template.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/create-installer-template.xml	(revision 14989)
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<!--
+this ant build file can be re-run with the following command if Ant is installer locally
+> ant -buildfile create-installer.xml
+or by running the script @PROJECT_ROOT@/@PROJECT_SHORT_NAME@/build-self-extractor.sh
+-->
+<!--  this file is creates an installer for the Project @PROJECT_NAME@ -->
+<project name="Create @PROJECT_NAME@ Installer"  default="MakeNonExtractor"  basedir=".">
+
+	<path id="taskdef.cp" path="@ANT_INSTALL_ROOT@/lib/ant-installer-ext.jar"/>
+	<taskdef 
+		name="installer" 
+		classname="org.tp23.antinstaller.taskdefs.Installer"
+		classpathref="taskdef.cp"/>
+
+
+		<property name="ANT_INSTALL_ROOT" value="@ANT_INSTALL_ROOT@"/>
+		<property name="PROJECT_NAME"     value="@PROJECT_NAME@"/>
+		<property name="PROJECT_SHORT_NAME"     value="@PROJECT_SHORT_NAME@"/>
+		<property name="PROJECT_ROOT"     value="@PROJECT_ROOT@"/>
+		<property name="PROJECT_SRC"      value="@PROJECT_SRC@"/>
+		<property name="PROJECT_LIB"      value="@PROJECT_LIB@"/>
+		<property name="PROJECT_LIC"      value="@PROJECT_LIC@"/>
+		<property name="PROJECT_BIN"      value="@PROJECT_BIN@"/>
+		<property name="PROJECT_DOC"      value="@PROJECT_DOC@"/>
+		<property name="PROJECT_CLASSES"  value="@PROJECT_CLASSES@"/>
+		
+		<property name="THIS_PROJECT_ROOT"     value="${PROJECT_ROOT}/${PROJECT_SHORT_NAME}"/>
+
+		<!-- This task only needs to run once it can be deleted once the self-extract files exist on the build host  -->
+	<target name="Base">
+			<echo message="Building NonExtractor runnable jar file"/>
+	</target>
+
+
+	<target name="MakeNonExtractor" depends="Base">
+		
+		<installer file="${THIS_PROJECT_ROOT}/${PROJECT_SHORT_NAME}-installer.jar" compress="true"
+				extractType="NonExtractor"
+				installConfig="${THIS_PROJECT_ROOT}/antinstall-config.xml"
+				buildFile="${THIS_PROJECT_ROOT}/build.xml"
+				antInstallLib="${ANT_INSTALL_ROOT}/lib"
+				antLib="${ANT_INSTALL_ROOT}/antlib"
+				validateConfig="true"
+				icons="bluecurve">
+			<zipfileset fullpath="resources/License.txt" file="${PROJECT_LIC}"/>
+			<zipfileset dir="cp" includes="resources/*"/>
+		<!--SourceCode
+			<zipfileset dir="${PROJECT_SRC}" prefix="src">
+				<include name="**/*"/>
+			</zipfileset>
+		SourceCode-->
+		<!--Libraries
+			<zipfileset dir="${PROJECT_LIB}" prefix="lib">
+				<include name="**/*.jar"/>
+			</zipfileset>
+		Libraries-->
+		<!--Documentation
+			<zipfileset dir="${PROJECT_DOC}" prefix="docs">
+				<include name="**/*"/>
+			</zipfileset>
+		Documentation-->
+		<!--Classes
+			<zipfileset dir="${PROJECT_CLASSES}" prefix="classes">
+				<include name="**/*"/>
+			</zipfileset>
+		Classes-->
+		<!--Scripts
+			<zipfileset dir="${PROJECT_BIN}" prefix="bin" >
+				<include name="**/*.sh"/>
+				<include name="**/*.ksh"/>
+				<include name="**/*.csh"/>
+				<include name="**/*.cmd"/>
+				<include name="**/*.bat"/>
+			</zipfileset>
+		Scripts-->
+		</installer>
+	</target>
+
+
+</project>
Index: /release-kits/shared/ant-installer/templates/defaultproject/runtemplate.cmd
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/runtemplate.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/runtemplate.cmd	(revision 14989)
@@ -0,0 +1,56 @@
+@echo off
+
+if  "%JAVA_HOME%" == "" goto nojava
+if  "%ANT_INSTALL_HOME%" == "" goto trydot
+
+goto setclasspath
+
+:trydot
+if EXIST ..\..\lib\ant-installer.jar set ANT_INSTALL_HOME=..\..
+if NOT EXIST ..\..\lib\ant-installer.jar goto noai
+echo ANT_INSTALL_HOME = %ANT_INSTALL_HOME%
+
+:setclasspath
+REM Ant classpath
+set CLASSPATH=%ANT_INSTALL_HOME%\antlib\ant.jar;%ANT_INSTALL_HOME%\antlib\ant-launcher.jar
+
+REM Images classpath
+set CLASSPATH=%CLASSPATH%;.\cp
+set CLASSPATH=%CLASSPATH%;..\..\images\navicons\amaranth
+
+REM XML classpath
+set CLASSPATH=%CLASSPATH%;%ANT_INSTALL_HOME%\lib\xercesImpl.jar;%ANT_INSTALL_HOME%\lib\xml-apis.jar
+
+REM AntInstaller classpath
+set CLASSPATH=%CLASSPATH%;%ANT_INSTALL_HOME%\lib\ant-installer.jar
+set CLASSPATH=%CLASSPATH%;%ANT_INSTALL_HOME%\lib\jgoodies-edited-1_2_2.jar
+
+if "%1" == "text" goto settext
+if "%1" == "swing" goto setswing
+goto setswing
+
+:settext
+set COMMAND=%JAVA_HOME%\bin\java
+set INTERFACE=text
+goto install
+
+:setswing
+set COMMAND=%JAVA_HOME%\bin\javaw
+set INTERFACE=swing
+goto install
+
+:install
+start "Antinstaller" "%COMMAND%" -classpath "%CLASSPATH%"  org.tp23.antinstaller.runtime.ExecInstall %INTERFACE% .
+goto end
+
+:nojava
+echo set JAVA_HOME
+echo you must install java to install this application
+goto end
+
+:noai
+echo set ANT_INSTALL_HOME
+echo you must install AntInstaller to install this application
+goto end
+
+:end
Index: /release-kits/shared/ant-installer/templates/defaultproject/runtemplate.sh
===================================================================
--- /release-kits/shared/ant-installer/templates/defaultproject/runtemplate.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/templates/defaultproject/runtemplate.sh	(revision 14989)
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+dir=`expr  match "$0" '\(.*\)runtemplate.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      echo changing to $dir
+      cd "$dir" ;
+   fi
+fi
+
+if [ "$ANT_INSTALL_HOME" == "" ] ; then 
+  export ANT_INSTALL_HOME=../..
+fi
+
+if [ ! -f $ANT_INSTALL_HOME/lib/ant-installer.jar ] ; then 
+  echo "set ANT_INSTALL_HOME"
+  exit 1;
+fi
+
+if [ "$JAVA_HOME" = "" ] ; then
+	echo set JAVA_HOME;
+	exit 1;
+fi
+
+
+CLASSPATH=$ANT_INSTALL_HOME/lib/xercesImpl.jar:$ANT_INSTALL_HOME/lib/xml-apis.jar:$ANT_INSTALL_HOME/lib/ant-installer.jar:$ANT_INSTALL_HOME/lib/ai-icons-eclipse.jar
+CLASSPATH=$CLASSPATH:$ANT_INSTALL_HOME/antlib/ant.jar:$ANT_INSTALL_HOME/antlib/ant-launcher.jar
+CLASSPATH=$CLASSPATH:$ANT_INSTALL_HOME/lib/jgoodies-edited-1_2_2.jar
+CLASSPATH=$CLASSPATH:./cp
+CLASSPATH=$CLASSPATH:../../images/navicons/amaranth
+
+COMMAND=$JAVA_HOME/bin/java
+INTERFACE=swing
+if [ "$1" = "text" ] ; then
+	INTERFACE=text;
+fi
+
+$COMMAND -classpath $CLASSPATH  org.tp23.antinstaller.runtime.ExecInstall $INTERFACE .
Index: /release-kits/shared/ant-installer/web/.bak/antinstall-config-example.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/antinstall-config-example.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/antinstall-config-example.html	(revision 14989)
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, valiation, configuration">
+</head>
+<body>
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<img src="images/ant-install-small.png" alt="AntInstaller" id="logo"/>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" href="index.html">home</a>
+				<a class="tpbutton" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" href="manual/manual/index.html">antmanual</a> 
+				<a class="tpbutton" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td valign="bottom">
+			<br/>
+			<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			<br/><br/>
+			<a href="http://validator.w3.org/check?uri=referer"><img border="0"
+					src="http://www.w3.org/Icons/valid-html401"
+					alt="Valid HTML 4.01!" height="31" width="88"></a><br/>
+			<a href="http://jigsaw.w3.org/css-validator/">
+			<img style="border:0;width:88px;height:31px"
+				src="http://jigsaw.w3.org/css-validator/images/vcss" 
+				alt="Valid CSS!">
+			</a>			
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>Example antinstall-config.xml</h2>
+      <div class="xml">
+
+<span class="bracket">&lt;</span><span class="element">?xml</span> version=<span class="string">"1.0"</span>?<span class="bracket">&gt;</span><br/><span class="bracket">&lt;</span><span class="element">!DOCTYPE</span> installer PUBLIC <span class="string">"-//tp23 //DTD Ant Installer Config//EN"</span> <span class="string">"http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd"</span><span class="bracket">&gt;</span><br/><br/><span class="bracket">&lt;</span><a href="manual.html#installer" title="" class="element">installer</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ui=<span class="string">"swing,text"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verbose=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lookAndFeel=<span class="string">"org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"HttpFileServer Installer"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;windowIcon=<span class="string">"/resources/gkmain_inv.png"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultImageResource=<span class="string">"/resources/httpfileserver.png"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minJavaVersion=<span class="string">"1.4"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;antialiased=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finishButtonText=<span class="string">"Install"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;version=<span class="string">"1.0"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"splash"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"splash"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Auto-Installer"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;splashResource=<span class="string">"/resources/httpfileserver-splash.png"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;altText=<span class="string">"--(o--HttpFileSrver--o)--"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"input"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"intro"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Welcome"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#comment" title="" class="element">comment</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">""</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;explanatoryText=<span class="string">"Before you can install this server you must have Tomcat installed locally, and you must be able to find it"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#comment" title="" class="element">comment</a> displayText=<span class="string">""</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#comment" title="" class="element">comment</a> displayText=<span class="string">"Installer made with"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#comment" title="" class="element">comment</a> displayText=<span class="string">"http://antinstaller.sourceforge.net"</span> bold=<span class="string">"true"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"license"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"license"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"License conditions"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource=<span class="string">"/resources/GPL.txt"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Install Webapp"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;usePaging=<span class="string">"true"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"input"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"properties"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Select server features"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#text" title="" class="element">text</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"server.name"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Server Name"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"My HttpFileServer"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/text</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable M3U"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Playlist streaming"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable JEdit"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"JEdit applet editor"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable Groups"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Groups security"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable Linux Search"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Linux search in files"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable Linux Search Names"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Linux search file names"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Create Users"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Create Tomcat Users"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Install Source"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Install source code"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"input"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"server.properties"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Server options"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#validated" title="" class="element">validated</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"server.url"</span> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"http://localhost:8080"</span> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;explanatoryText=<span class="string">"Enter the protocol, host and port by which users reference your server"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Enter the desired URL"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;regex=<span class="string">"^http[s]*://[0-9a-zA-Z-.]+:*[0-9]*.*$"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#validated" title="" class="element">validated</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"context.name"</span> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"fileserver"</span> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;explanatoryText=<span class="string">"Only use letter and numbers for the context URL"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Enter the desired context URL"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;regex=<span class="string">"^[0-9a-zA-Z]+$"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#app-root" title="" class="element">app-root</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"tomcat.dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"/usr/local/jakarta-tomcat-4.0.1"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValueWin=<span class="string">"C:\jakarta-tomcat-4.0.1"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Locate the Tomcat dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkFile1=<span class="string">"conf/server.xml"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkFile2=<span class="string">"conf/tomcat-users.xml"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkDir1=<span class="string">"webapps"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/app-root</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#directory" title="" class="element">directory</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"files.dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"/var/www"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValueWin=<span class="string">"C:\www"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Enter the data directory"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkExists=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/directory</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#directory" title="" class="element">directory</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"temp.dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"/tmp/httpfileserver"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValueWin=<span class="string">"C:\wwwtmp"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Enter a directory for temporary files"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkExists=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/directory</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"input"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"source.code"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Source destination"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifTarget=<span class="string">"Install Source"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#directory" title="" class="element">directory</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"src.dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"<a href="manual.html#refs" title="" class="reference">${java.user.home}</a>/HttpFileServer"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValueWin=<span class="string">"<a href="manual.html#refs" title="" class="reference">${java.user.home}</a>/HttpFileServer"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Select directory for the source code"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkExists=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/directory</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"progress"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"progress"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Installation progress"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/><span class="bracket">&lt;</span><span class="element">/installer</span><span class="bracket">&gt;</span><br/><br/><br/>
+
+		</div><hr/>
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<!--[segment-file://contents-include.html] menu start -->
+file://contents-include.html
+<!-- menu end [segment-end]-->
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/.bak/antinstall-config-example.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/antinstall-config-example.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/antinstall-config-example.jsp	(revision 14989)
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>Example antinstall-config.xml</h2>
+      <div class="xml">
+<%@page import="java.io.*" %><%@page import="java.util.*" %>
+<%
+	String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+	File fleJspDir = new File(strJspDir);
+	File exampleFile = new File(fleJspDir, "antinstall-config-example.xml");
+	BufferedReader br = new BufferedReader(new FileReader(exampleFile));
+	StringBuffer file = new StringBuffer();
+	String line = null;
+	while( (line = br.readLine()) != null ){
+		file.append(line).append('\n');
+	}
+	out.println(decorateXml(file));
+%>
+<%!
+private String decorateXml(StringBuffer file){
+	boolean inString = false;
+	boolean inElement = false;
+	boolean inRef = false;
+	StringBuffer sb = new StringBuffer();
+	StringBuffer element = new StringBuffer();
+	StringBuffer reference = new StringBuffer();
+	int elemStart = -1;
+	for (int i = 0; i < file.length(); i++){
+		char c = file.charAt(i);
+		switch(c){
+			case '$' : {
+				if(file.charAt(i + 1) == '{'){
+					inRef = true;
+					sb.append("<a href=\"manual.html#refs\" title=\"\" class=\"reference\">$");
+				}
+				else {
+					sb.append(c);
+				}
+				break;
+			}
+			case '}' : {
+				if(inRef){
+					inRef = false;
+					sb.append("}</a>");
+				}
+				else {
+					sb.append(c);
+				}
+				break;
+			}
+			case '<' : {
+				inElement = true;
+				elemStart = i;
+				sb.append("<span class=\"bracket\">&lt;</span>");
+				break;
+			}
+			case '>' : {
+				if(inElement){
+					sb.append(createLink(element.toString()));
+					element = new StringBuffer();
+					inElement = false;
+				}
+				sb.append("<span class=\"bracket\">&gt;</span>");
+				break;
+			}
+			case ' ' : {
+				if(inElement){
+					sb.append(createLink(element.toString()));
+					element = new StringBuffer();
+					inElement = false;
+				}
+				sb.append(' ');
+				break;
+			}
+			case '\t' : {
+				if(inElement){
+					sb.append(createLink(element.toString()));
+					element = new StringBuffer();
+					inElement = false;
+				}
+				sb.append("&nbsp;&nbsp;&nbsp;&nbsp;");
+				break;
+			}
+			case '\"' : {
+				if(!inString) {
+					sb.append("<span class=\"string\">\"");
+				}
+				else {
+					sb.append("\"</span>");
+				}
+				inString = !inString;
+				break;
+			}
+			case '&' : {
+				sb.append("&amp;");
+				break;
+			}
+			case '\n' : {
+				if(inElement) {
+					sb.append(createLink(element.toString()));
+					element = new StringBuffer();
+					inElement = false;
+				}
+				sb.append("<br/>");
+				break;
+			}
+			default : {
+				if(inElement) {
+					element.append(c);
+				}
+				else {
+					sb.append(c);
+				}
+				break;
+			}
+		}
+	}
+	return sb.toString();
+}
+
+private String createLink(String element){
+	if(element.startsWith("/")) {
+		return "<span class=\"element\">" + element + "</span>";
+	}
+	
+	if("?xml".equals(element.trim())){
+		return "<span class=\"element\">" + element + "</span>";
+	}
+	if("!DOCTYPE".equals(element.trim())){
+		return "<span class=\"element\">" + element + "</span>";
+	}
+	return "<a href=\"manual.html#" + 
+	element.trim() + 
+	"\" title=\"\" class=\"element\">" + 
+	element.trim() + 
+	"</a>" + 
+	element.substring(element.trim().length());
+}
+%>
+		</div>
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/antlinks.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/antlinks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/antlinks.html	(revision 14989)
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Ant Links</h2>
+			<br/>
+			<ul>
+				<li><a href="http://ant.apache.org">Apache Ant home page</a></li>
+				<li><a href="manual/manual/index.html">Local manual for AntInstaller's Ant version</a></li>
+				<li><a href="http://ant.apache.org/manual/index.html">Current apache.org Ant documentation</a></li>
+				<li><a href="http://ant-contrib.sourceforge.net/">Extra tasks for Ant</a></li>
+			</ul>
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/antricks.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/antricks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/antricks.html	(revision 14989)
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                                 <h2>Ant tricks</h2>
+The back end of AntInstaller is Ant so you can do anything with AntInstaller that Ant can do.
+However there are a few things that an installer should do that you may not be aware of and this
+page is a start at highlighting them.
+			<br>
+			Please get in contact if you have other tips and tricks that might help other users.
+			<h3>Windows Shortcuts</h3>
+To get Ant to create Windows shortcuts you have to set up a few hooks into standard windows libraries.
+Essentilly you need to use RunDLL and pass a windows setup .INF file.  
+You can not deliver the .INF file correct for every system so you should use the replace task on the delivered file
+to set the final location of the .ICO files that will be used and the final location of the executables or
+files to create shortcuts to.<br><br>
+
+<b>installIcons.inf</b> N.B. the ridiculous multiple quotes are obligatory.  After deploying this file
+the <code>@installDir@</code> must be replaced with the actual installation directory using Ant replace.
+<pre style="font-size:9px">
+[version]
+signature="$chicago$"
+
+[DefaultInstall]
+UpdateInis=Addlink
+
+[AddLink]
+setup.ini, progman.groups,, "group0=DBusViewer (enhanced)"
+setup.ini, group0,, ""DBusViewer (enhanced)""
+setup.ini, group0,, """DBusViewer (enhanced)"",""cmd /c """"@installDir@\bin\MessageViewer.cmd"""""",""@installDir@\bin\favicon.ico"",0,"
+
+setup.ini, progman.groups,, "group0=DBusViewer (enhanced)"
+setup.ini, group0,, ""DBusViewer (enhanced)""
+setup.ini, group0,, """Edit Start Script"",""notepad.exe "@installDir@\bin\MessageViewer.cmd""",,0,"
+</pre>
+
+To execute this install on Win32 systems the following command must be run, with appropriate replacements.
+<pre style="font-size:9px">
+rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 @deploymentDir@\installIcons.inf
+</pre>
+
+The following is an except from a <code>build.xml</code> file to achieve the above.
+<pre style="font-size:9px">
+&lt;target name="Install Icons" depends=""&gt;
+&lt;echo message="Installing Icons"/&gt;
+	&lt;replace file="${basedir}\installIcons.inf"&gt;
+		&lt;replacefilter token="@installDir@" value="${installDir}"/&gt;
+	&lt;/replace&gt;
+
+	&lt;exec executable="rundll32.exe"&gt;
+		&lt;arg value="setupapi,InstallHinfSection"/&gt;
+		&lt;arg value="DefaultInstall"/&gt;
+		&lt;arg value="132"/&gt;
+		&lt;arg value="${basedir}\installIcons.inf"/&gt;
+	&lt;/exec&gt;
+&lt;/target&gt;
+</pre>
+
+Clearly this will not work on Linux, there is a task in developent to run targets based on OS for the moment just
+add a target element that allows users to select this target if they are running on windows and want icons created.
+
+On Windoze95 the 16 bit rundll is required and the command is slightly different. Investigate on the web if you
+must support Windows95.
+
+    
+P.S.  does anyone know how to add KDE and of Gnome Icons
+
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/auto.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/auto.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/auto.html	(revision 14989)
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+			  <h2>Automated installations</h2>
+			  
+			<i>``The great thing about text-auto is it gives you completely silent builds just like Ant. The downside to text-auto is that it gives you completely silent builds just like Ant.''</i><br/>
+			<div align="right">
+              -- Paul Hinds<br>
+               Ant Installer Group
+            </div><br/>
+            
+            Welcome to Automated installations, how to take the user interaction out of your user interactive installs!<br/><br/>
+			
+			
+			A much requested feature is automated installations.  Generally it is expected that programs would be delivered with AntInstaller specifically to be able to configure the installations manually, however it is useful to be able to reinstall in a particular environment without having to manually re-enter the properties.  The defaults in the <code>antinstall-config.xml</code> file may not be the correct defaults for the specific environment on which the installation is performed. <br/><br/>
+
+			Be carefull if delivering installers that can be fully automated to third parties,  you should fully understand the consequences of the options before using this feature.  That said, this feature can prevent making human errors with repeated installations in a controlled environment such as reinstalling software on a series of servers.  It is generally safest to use the prompt options when delivering to third parties. <br/><br/>
+
+			To handle these use cases an additional attribute has been added to the installer element and two new UI overrides have been added. <br/><br/>
+
+			The loadDefaults attribute of the installer element can be set to <i>true</i>, <i>false</i>, <i>prompt</i> or <i>prompt-auto</i>.  
+			<ul>
+			
+			<li>When loadDefaults is <i>true</i> the current directory is searched for <code>ant.install.properties</code> and, if found, it is used to reset the default values for all properties and targets.  </li>
+			<li>When loadDefaults is <i>prompt</i> the user is prompted if the file is found and has the option to load the properties or not. Automatic installs without loaded properties sets are not permitted with this option.</li>
+			<li>The <i>prompt-auto</i> loadDefaults option is not expected to be used often. It caters for the situation when it is required that the installer can be run with out any user interaction using only the default values provided in <code>antinstall-config.xml</code> or run with configured properties. If existing properties are found they can be loaded, but if not loaded and either <i>text-auto</i> or <i>swing-auto</i> is selected on the command line the installer will run with no user defined properties.</li>
+			<li>When loadDefaults is <i>false</i> the current directory is not checked for exiszting properties files.</li>
+			</ul>
+			
+			When the installer is run <code>ant.install.properties</code> is written to the current directory, if the current directory is not writable no warning message is given since repeatable installs are not always required. <br/><br/>
+
+			Two additional UI overrides have been added <i>swing-auto</i> and <i>text-auto</i> which can be specified as the first parameter on the command line.  <i>swing-auto</i> loads the swing GUI and skips directly to the progress page with all default values set.  <i>text-auto</i> runs the installer with default values with no questions asked except, potentially, the loadDefaults prompt.  To enable these UI overrides the ui attribute of the installer element must be set in <code>antinstall-config.xml</code>. <br/>
+			for example
+<pre>
+&lt;installer
+	ui="swing,text,swing-auto"
+	...
+</pre>
+			Be careful if setting loadDefaults to <i>true</i>, if <i>text-auto</i> is enabled, selected by the user on the command line and the <code>ant.install.properties</code> file is missing or out of date, an incorrect install will be performed with no oportunity to prevent it.  This is permitted because it may be requried to run the installer with no prompts using the default values specifed in the <code>antinstall-config.xml</code> file. Completely silent, repeatable, installs on the command line are possible with this option.<br/><br/>
+
+			The "automated installations" feature is not compatible with <a href="installtypes.html" title="multiple install types">multiple install types</a> without care.  If a specific -type is used when repeating the install the same -type should be specified, antinstaller does not currently check this.  <br/><br/>
+
+			  <h2>Version control</h2>
+			Version control is provided by setting the version attribute of the installer element of <code>antinstall-config.xml</code>.  Increment the major version to indicate that old properties files are no longer valid.  Increment the minor version to indicate that old properties are valid but some additional manual entering of properties is required.  -auto builds are only permitted if the major and minor versions match.
+			
+			The version numbers support the following syntax. <code>1.4.2</code> where 1 is the major version and 4 then 2 are minor versions. For each major or minor version the strings <code>alpha</code>, <code>beta</code> and <code>gamma</code> can be appended with or with out a <code>-</code> (as required by java) to indicate the state of the code. No additional string is considered to be the best version.  <code>1.4.2 > 1.4 > 1.4beta.2 == 1.4-beta.2</code>
+			  
+			  <h2>Simple use cases</h2>
+			To help explain the options provided some simple use cases are described here.<br/><br/>
+			
+			To enable end users to reload the values they used in a previous install set <code>ui="swing,text"</code> and set <code>loadDefaults="prompt"</code>.<br/><br/>
+			
+			To enable end users to reload the values they used in a previous install and not have to click through the pages set <code>ui="swing,text,swing-auto,text-auto"</code> and set <code>loadDefaults="prompt"</code>.<br/><br/>
+			
+			To run repeatable silent server installations set <code>ui="text,text-auto"</code> and <code>loadDefaults="true"</code>. First time run <code>java -jar myinstaller.jar</code> and enter the properties.  When the installer has finished hard code any passwords.<br/>
+			When you wish to update the code create a new myinstaller.jar and run <code>java -jar myinstaller.jar text-auto</code>.<br/>
+			Should you wish to change the property values or add additional properties delete <code>ant.install.properties</code> from the current directory and run the installer with <code>java -jar myinstaller.jar</code>.<br/><br/>
+			
+			
+			  <h2>antinstaller- targets</h2>
+			antinstaller- targets that are run when pages are shown are run in the -auto modes depending on the current state if ifProperty and ifTarget tests.  If you want to use antinstaller- tasks and support -auto modes you have to work out what the consequences are for your installer. You can also set appropriate properties and use the <code>if</code> attribute in Ant target elements to specify additional process to compensate for -auto builds.<br/><br/>
+
+			You should notice that also if the antinstaller- targets render messages they will be run automatically during swing-auto builds causing (probably unwanted) popups.
+
+			  <h2>Password handling</h2>
+			Passwords are not written to <code>ant.install.properties</code>, if a password field is missing the user is warned that the defaults from <code>antinstall-config.xml</code> will be used.  This can be avoided by entering the password in plain text into <code>ant.install.properties</code> with a text editor provided that does not create security risks.
+			
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/browsersupport.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/browsersupport.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/browsersupport.html	(revision 14989)
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+		<h2>Browser Support</h2>
+		
+		Designed for FireFox<br/><br/>
+
+		<a href="http://getfirefox.com/"
+				title="Get Firefox - The Browser, Reloaded."><img
+				src="images/browser/firefox-spread-btn-2.png"
+				width="180" height="60" alt="Get Firefox"></a>
+		<br/>
+		<script language="JavaScript" type="text/javascript">
+		function addSidebar(title, link){ 
+			if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")){
+				window.sidebar.addPanel (title, link, "");
+			}
+		} 
+		</script>
+		<br/>
+		If you have Mozilla/Firefox
+		<a href="#" onclick="javascript:addSidebar('AntInstaller SideBar', 'http://antinstaller.sourceforge.net/contents.html');return false;">Add a sidebar</a> for this site.<br/><br/>
+
+
+		This site is tested (quickly) in the following browsers<br/><br/>
+		<a href="http://www.getfirefox.com" title="Take back the web"><img src="images/browser/firefox.png"  alt="Firefox"/></a> Firefox<br/>
+		<a href="http://konqueror.kde.org" title="Konqueror"><img src="images/browser/konqueror.png" alt="Konqueror"/></a> Konqueror<br/>
+		<a href="http://www.opera.com"  title="Opera"><img src="images/browser/opera.png" alt="Opera"/></a> Opera<br/>
+		<a href="http://www.mozilla.org"  title="Mozilla"><img src="images/browser/mozilla.png" alt="Mozilla"/></a> Mozilla<br/>
+		<img src="images/browser/ie.png" alt="IE"/></a> IE6 (wouldn't it be nice if M$ supported PNG without at a JavaScript hack)<br/><br/>
+		
+		Where possible we conform to <br/><br/>
+		<a target="_top" href="http://validator.w3.org/check?uri=referer"><img border="0"
+				src="http://www.w3.org/Icons/valid-html401"
+				alt="Valid HTML 4.01!" height="31" width="88"></a>
+		<a target="_top" href="http://jigsaw.w3.org/css-validator/">
+		<img style="border:0;width:88px;height:31px"
+			src="http://jigsaw.w3.org/css-validator/images/vcss" 
+			alt="Valid CSS!">
+		</a>
+		
+		<br/><br/>
+		The site does not get regularly tested in Windose since most development is done on Linux. Please <a href="http://sourceforge.net/sendmessage.php?touser=616485" title="contact">get in contact</a> if you have problems with other browsers or you find a bug.  Let me know if there are Mac problems.  We have recently changed from desktop color set to fixed colors since some of them flashy mac themes made everything including text go white.
+		
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/changelog.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/changelog.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/changelog.jsp	(revision 14989)
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+<%@page import="java.io.*"%>
+<%@page import="java.util.*"%>
+		<h2>Changelog</h2>
+		This is the current change log from the build, it may be more upto date that the latest public release.
+		<br/>
+		<pre><%
+		String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+		File fleJspDir = new File(strJspDir);
+		
+		BufferedReader br = new BufferedReader(new FileReader(new File(fleJspDir, "../CHANGELOG.txt")));
+		String line = null;
+		while((line=br.readLine())!=null){
+		  if(line.startsWith("CHANGELOG"));
+			else if(line.equals(""));
+			else if(line.startsWith("=============="))out.println("</pre><hr/><pre>");
+			else out.println(line);
+		}
+		%>
+		&nbsp;
+		</pre>
+		<hr/>
+		<br/><br/>
+		Site last generated:<%=new java.util.Date()%>
+		<br/><br/>
+		<%
+		Properties versionProps = new Properties();
+		versionProps.load(new FileInputStream(new File(fleJspDir, "../build/version.properties")));
+		%>
+		CVS AntInstaller development version:<%=versionProps.getProperty("ant.install.version")%>
+			</div>
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/classpathresources.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/classpathresources.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/classpathresources.html	(revision 14989)
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                                 <h2>Classpath / Resource issues</h2>
+			
+			<h3>Self-Extracting Jar</h3>
+AntInstall supports delivering the installation package as a self extracting
+Jar.  In Windows if the Java installer from Sun has
+been used and the default application for files that end in <code>.jar</code> has not been changed, double clicking
+on the Jar will launch the installer.  To launch from the command line type<br/>
+<code>&gt; java -jar [installer_name].jar</code>  <br/><br/>
+
+If all classes are packaged in a single Jar everything is on the same classpath, this is useful for almost all situations.
+However, if your installer absolutely requires separate classpaths, for example if custom tasks have clashing dependencies, the classpath must be defined as it would in a normal Ant build.  To achieve this you will have to package the Jars in a self-extractor or, for the non-extractor, extract the Jars to temporary space first.<br/><br/>
+
+If delivering an installer on a CDROM there is no need to package the installer
+as a single Jar.  In which case the following applies.  <br/>
+			<h3>Install Scripts</h3>
+<b>For Linux installations.</b><br/>
+It is recommended to tar and gzip the components with the <code>install.sh</code>(with
+execute permissions) script in the root of the archive. The user should
+the run (or double click on) the script after uncompressing the archive
+to a temporary directory. This is a generally understood method, for
+Linux it is tipical to include a README or INSTALL file with simple
+instructions i.e. "run the install script and follow instructions". Also 
+creating a copy of the script and calling it <code>./configure</code> 
+will help users used to installing with <code>./configure;make;make
+install</code> who don't read your documents. <br/>
+      <br/>
+<b>For Window$ installations.</b><br/>
+For windows installations it is better to use the ZIP compression format.  The demo app includes
+an example of a windows start script (<code>install.cmd</code>) that will set the classpath for the installer.<br/>
+<br/>
+<b>Java required.</b><br/>
+Currently both example install scripts rely on a system property called
+%JAVA_HOME% since this is standard for most Java deployments. If this
+is a problem get in touch and I can write some scripts to check
+standard locations for the Java binary. It is also possible to deliver
+Java with your app, but you will need to check with the Sun licenses as
+to weather this is permitted or not, and users will have a heafty
+download.<br/>
+It may be better to specify the Java command as just <code>java</code> or <code>javaw</code> for windows since Sun ahs made some headway ensuring that if installed the binary can be specified without the need for the full path.
+      
+			<br/>
+			<h3>Classpath</h3>
+The developer creating the installer should ensure that all references in the install script
+are correct when the script is run. In the AntInstall demo the <code>install.sh</code>
+is slightly different to the <code>install.sh</code> in the root
+directory since the libs required are in a different directory. Ensure
+your classpath is correct also ensure that during testing you are not
+useing a default Ant installed on your machine and that you bundle Ant
+1.6 with the installation and all the requried Ant task libs.<br/>
+It is currently possible to include a directory called <code>antlib</code>
+this will be passed to the Ant launcher with the normal ant <code>-lib</code>
+parameter. <br/>
+With self extracting jars all classes should be packaged in the root of the Jar file.<br/>
+
+			<h3>Resources</h3>
+A further classpath consideration is the location of the images for the
+GUI. They must be on the classpath when the AntInstaller runs in the <code>/resources/</code>
+path. This can be achieved by creating a directory <code>./lib/resources</code>
+and adding <code>./lib</code> to the classpath for scripted installs. Alternatively the
+files can be added to a Jar file in the resources path inside the Jar for self-extractor and non-extractor builds. 
+The installer will not fail if the resources are not available but the correct images will not be
+shown.  
+Some missing resources such as the license file for a license page will fail if the resource is not available.<br/><br/>
+
+			<h3>Java version</h3>
+The required Java version is 1.4 or above.  It may be possible to get AI working on 1.3 provided that the JGoodies look and feel is NOT used and regular expressions are not used.  Also the XML parsers and APIs will have to be added to the classpath.<br/>  If regex and 1.3 are a requriement of yours, it is possible to hack the code to use the Apache regex parser included with Ant.  There have been problems with this code and so it is not included by default.  Please get in contact if you would like to work on this feature.
+
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/dtds.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/dtds.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/dtds.html	(revision 14989)
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                                 <h2>DTDs</h2>
+This page contains links to the DTDs for the antinstall-config.xml files<br>
+      <br>
+			<ul>
+
+
+				<li><a href="dtd/antinstall-config-0.1.dtd">antinstall-config-0.1.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.2.dtd">antinstall-config-0.2.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.3.dtd">antinstall-config-0.3.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.4.dtd">antinstall-config-0.4.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.5.dtd">antinstall-config-0.5.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.6.dtd">antinstall-config-0.6.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.7.dtd">antinstall-config-0.7.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.8.dtd">antinstall-config-0.8.dtd</a></li>
+
+			</ul>
+				<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/headerframe.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/headerframe.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/headerframe.html	(revision 14989)
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+<!-- No content -->
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/i18n.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/i18n.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/i18n.html	(revision 14989)
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Internationalisation</h2>
+            Internationalisation (a.k.a multiligual) installers are possible by creating language packs for the core functionality of AntInstaller
+            and for your <code>antinstall-config.xml</code> file.  
+            Language packs exist for English, German, Spanish and Euskera  please feel free to contribute more lanugages.<br/><br/>
+			A tool exists to help create the properties files required to internationalise the installer config files.  
+			A script called <code>createLanguagePack.sh</code> is included to run the tool.  
+			The tool is very simple but gives you a starting point for internationalising config files.
+			It reads the <code>antinstall-config.xml</code> file in the current directory and asks for a Local string (e.g. es_EU for Euskera) 
+			the tool creates two files <code>LanguagePack_es_EU.properties</code> and the default <code>LanguagePack.properties</code> 
+			file in the current directory with default vlaues for each required text string.<br/><br/>
+			
+			To use the tool effectively you should perform the following steps.
+			<ul>
+				<li>Prepare the <code>antinstall-config.xml</code> file as normal and ensure it is valid.</li>
+				<li>For comment fields it is a good idea to add a <code>name</code> attribute to the elements to easily identify the fields in the LanguagePack file. 
+					All other input elements use the <code>property</code> attribute as the identifyer in the LanguagePack file and should not have <code>name</code> 	attributes.<br/>
+					The page element shouyld already have a <code>name</code> attribute since it is a required attribute for page.
+				</li>
+				<li>Copy your <code>antinstall-config.xml</code> file temporarily to the root directory where AntInstaller is installed.</li>
+				<li>Run the <code>createLanguagePack.sh</code> script.</li>
+				<li>Translate all the properties in the generated file for the foreign language.</li>
+				<li>Include this file in the <code>/resources/</code> directory of the installer Jar when creating the installer.</li>
+				<li>To test your internationalisation run the installer with the following command line arguments<br/>
+					<code>-Duser.language=es -Duser.region=EU</code><br/>
+					Users with a default Locale already set will not need to take this step.
+				</li>
+			</ul>
+			
+			<h2>Maintenance</h2>
+			Once you have internationalised your installer you have increased the maintenance load for any changes. Each element added or changed should be changed in the <code>antinstall-config.xml</code> file and each <code>.properties</code> file and the elements must match up. Some properties are indexed so the ordering of the elements is significant.<br/>
+			For this reason it is a good idea to have a stable installer working before you attempt to internationalise it.  It is a good idea to use tools such as SVN, CVS for version management and what ever takes your fancy for diffs.<br/><br/>
+			
+			<h2>GUI tool</h2>
+			A fancy GUI tool is also available based on PBR Editor (found at <a href="https://prbeditor.dev.java.net" title="PBR Editor">https://prbeditor.dev.java.net</a>) written by eduardj at dev.java.net.  The tool has been modified so that an antinstaller-config.xml file can be used as a starting point for the internationalisation.  Click on the AntInstaller icon on the tool bar or in the file menu and select the  file.  The default properties file is created where ever you specify and from that additional language packs can be added using the GUI.
+			
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/icons.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/icons.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/icons.jsp	(revision 14989)
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+
+<%@page import="java.io.*" %><%@page import="java.util.*" %>
+		<h2>icons</h2>
+		AntInstaller has a few options for the button icons used in the installer.<br/><br/>
+		
+		These can be included in the installer by adding the <code>icons</code> attribute to the <code>installer</code> element
+		of the <a href="installertask.html">AntInstaller Ant task</a>.<br/><br/>
+		
+		<%
+		String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+		File fleJspDir = new File(strJspDir);
+		File dir = new File(fleJspDir, "images/navicons");
+		File[] directories = dir.listFiles();
+		for (int i = 0; i < directories.length; i++){
+			if(!directories[i].isDirectory())continue;
+			out.println("<h2>" + directories[i].getName() + "</h2>");
+			File iconsDir = new File(directories[i], "resources/icons");
+			File[] icons = iconsDir.listFiles();
+			for (int j = 0; j < icons.length; j++){
+				if(!icons[j].getName().endsWith(".png"))continue;
+			
+			%>
+<img align="left" alt="<%=icons[j].getName()%>" src="images/navicons/<%=directories[i].getName()%>/resources/icons/<%=icons[j].getName()%>" width="16" height="16"/>
+			<%
+				
+			}
+		%>
+			<br/><b>License</b><br/>
+			<div class="tpcropped">
+		<%
+			BufferedReader br = new BufferedReader(new FileReader(new File(iconsDir, "LICENSE")));
+			String line = null;
+			while( (line=br.readLine()) != null ){
+				if(line.equals(""))out.println("<br/>");
+				else out.println(line.replaceAll("&", "&amp;").replaceAll(">", "&gt;").replaceAll("<", "&lt;"));
+				out.println("<br/>");
+			}
+		%>
+			</div><hr/>
+		<%
+			
+		}
+		%>
+
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/index.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/index.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/index.jsp	(revision 14989)
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+<script type="text/javascript">
+function gooSrch(){
+  var text = document.getElementById('gf').elements['q'].value;
+	document.getElementById('gf').elements['q'].value = text + " site:antinstaller.sourceforge.net";
+	document.getElementById('gf').submit();
+}
+collapseAll('frontpage-panel', ['ol']); 
+</script>
+<%@page import="java.io.*" %><%@page import="java.util.*" %>
+            <div align="right">
+							<form action="http://www.google.com/search" method="get" id="gf" style="display:inline" onsubmit="return gooSrch();">
+								<input type="text" name="q" size="10" class="winFix" />
+								<input type="image" src="images/toolbar.gif" /><span class="tpsmall"> Google Search this site</span>
+							</form>
+						</div>
+		<hr/>
+		AntInstaller enables you to quickly build installers for your applications using an XML config file and all the power of <a  href="http://ant.apache.org">Ant</a>.<br/><br/>
+		
+		The beauty of AntInstaller, from a user point of view, is that it lets you install an app with a user friendly swing GUI. If working over ssh or without an X environment you can still install on the command line with no changes to the installer.<br/><br/>
+		
+		To start using AntInstaller <a href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917" title="download">download</a> and install the binaries. Then either read the <a href="quickstart.html" title="AntInstaller quick start">quick start</a> page, or use the <a href="quickstart.html#wizard" title="AntInstaller wizard">wizard</a> provided to generate an initial installer for your project.  You will need to edit the <code>antinstall-config.xml</code> file following instructions in the AntInstaller <a href="manual.html" title="AntInstaller manual">manual</a> and create an Ant <code>build.xml</code> file referencing the Ant <a href="manual/manual/index.html" title="Ant manual">manual</a>.  You can include the custom Ant <a href="installertask.html" title="AntInstaller manual">task</a> into your project's build to generate the installer.<br/><br/>
+
+		In a move to be compatible with Apache projects the code in this project is now licensed under the less restrictive Apache 2.0 license.  The new (18/05/2005) license can be viewed here <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+		<br/><br/>
+		All core code is available in CVS, and can be browsed online <a href="http://antinstaller.cvs.sourceforge.net/antinstaller/" title="CVS Browse">here</a>.
+		<h2>Site map</h2>
+		<div id="frontpage-panel">
+		<jsp:include page="contents-include.html" flush="true"/>
+		</div>
+		<h2>Core Developers</h2>
+		<ul>
+			<li>Paul Hinds - project lead, core dev, and slacking for months on end ;)</li>
+			<li>Mark Wilson - core development, bug fixings RFEs</li>
+		</ul>
+		<br/>
+		<h2>Contributors</h2>
+		
+		P.S. Big thanks to Contributors and bug fixers
+		<ul>
+			<li>Marcia Choy - for inital comments and corrections in the web pages</li>
+			<li>Dueringer Markus - for hints on showing hidden directories</li>
+			<li>Simon Brooke - for feedback and suggestions.</li>
+			<li>Mark Anderson - for the TargetSelectInput and -lib fix.</li>
+			<li>Mohan Kishore - for improvement to the build process.</li>
+			<li>Mike Watts - for comment and suggestions</li>
+			<li>Eddyrun - for suggestions for ifProperty enhancements</li>
+			<li>Upayavira - for help with Apache licensing</li>
+			<li>Dabintxi - for work on i18n</li>
+			<li>Michael Lipp - for german translation</li>
+		</ul>
+		<br/>
+		
+		<h2>Contact</h2>
+		
+		To get in contact the following channels are available.<br/><br/>
+		
+		<ul>
+			<li><a href="http://sourceforge.net/tracker/?group_id=123466&atid=696615" title="Request for enhancements">RFEs</a> - Request for enhancements</li>
+			<li><a href="http://sourceforge.net/tracker/?group_id=123466&atid=696612" title="Bug reporting">Bugs</a> - Bug reporting</li>
+			<li><a href="http://sourceforge.net/forum/forum.php?forum_id=420821" title="Help Forum">Help Forum</a> - Help mailing list</li>
+			<li><a href="http://sourceforge.net/forum/forum.php?forum_id=420820" title="Open Forum">Open Forum</a> - Open discussion forum</li>
+			<li><a href="http://sourceforge.net/forum/forum.php?forum_id=420822" title="Dev Forum">Dev Forum</a> - Developers forum (closed group)</li>
+			<li><a href="http://sourceforge.net/sendmessage.php?touser=616485" title="General contact">General contact</a> - Drop me a line</li>
+		</ul>
+		<h2>Version</h2>
+		<%
+		String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+		File fleJspDir = new File(strJspDir);
+		Properties versionProps = new Properties();
+		versionProps.load(new FileInputStream(new File(fleJspDir, "../build/version.properties")));
+		%>
+		CVS AntInstaller development version: <b><%=versionProps.getProperty("ant.install.version")%></b>
+		<br/><br/>
+		
+		<h2>Firefox</h2>
+
+		Site designed for FireFox, other browsers should be ok see <a href="browsersupport.html" alt="Browser support" >Browser support</a> and report bugs if you find them.<br/><br/>
+
+		<a href="http://getfirefox.com/"
+				title="Get Firefox - The Browser, Reloaded."><img
+				src="images/browser/firefox-spread-btn-2.png"
+				width="180" height="60" alt="Get Firefox"></a>
+		<br/>
+		<script language="JavaScript" type="text/javascript">
+		function addSidebar(title, link){ 
+			if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")){
+				window.sidebar.addPanel (title, link, "");
+			}
+		} 
+		</script>
+		<br/>
+		If you have Mozilla/Firefox
+		<a href="#" onclick="javascript:addSidebar('AntInstaller SideBar', 'http://antinstaller.sourceforge.net/contents.html');return false;">Add a sidebar</a> for this site.<br/><br/>
+
+		
+		
+		<hr/>
+		Site last generated: <b><%=new java.util.Date()%></b>
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/installertask.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/installertask.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/installertask.html	(revision 14989)
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>Installer Ant Task</h2>
+
+			As of version beta0.7.4 there is an Ant task provided to help create the installer Jars. 
+			The task def is provided in the <code>lib/ant-installer-ext.jar</code> file.<br/>
+			The Task is similar to the core Ant Jar and War tasks.
+			To define the task use the following at the top of a <code>build.xml</code> used to create the installer.
+<pre>
+
+&lt;path id="taskdef.cp"&gt;
+	&lt;fileset dir="${AntInstaller.home}"&gt;
+		&lt;include name="ant-installer-ext.jar"/&gt;
+		&lt;include name="ant-installer.jar"/&gt;
+	&lt;/fileset&gt;
+&lt;/path&gt;
+
+&lt;taskdef 
+	name="installer" 
+	classname="org.tp23.antinstaller.taskdefs.Installer"
+	classpathref="taskdef.cp"/&gt;
+</pre>
+
+From there on in the <code>build.xml</code> file the installer task can be referenced with the <code>installer</code> element.
+This example should be self explanatory, but full details are provided below for each attribute.
+<pre>
+&lt;installer 
+	<a href="#file" title="file">file</a>="./MyProject-installer.jar" 
+	<a href="#compress" title="compress">compress</a>="true"
+	<a href="#extractType" title="extractType">extractType</a>="SelfExtractor"
+	<a href="#installConfig" title="installConfig">installConfig</a>="myprojects-antinstall-config.xml"
+	<a href="#buildFile" title="buildFile">buildFile</a>="myprojects-build.xml"
+	<a href="#antInstallLib" title="antInstallLib">antInstallLib</a>="${AntInstaller.home}/lib"
+	<a href="#antLib" title="antLib">antLib</a>="${AntInstaller.home}/antlib"
+	<a href="#validateConfig" title="validateConfig">validateConfig</a>="true"
+	<a href="#failOnError" title="failOnError">failOnError</a>="true"
+	<a href="#icons" title="icons">icons</a>="<a href="icons.html" title="icons">bluecurve</a>"&gt;
+		&lt;!-- 
+			include the images for your installer 
+			and license texts
+		--&gt;
+		&lt;fileset dir="extra-install-classpath" includes="resources/*"/&gt;
+
+		&lt;!-- 
+			add you application binaries and resources 
+			to the installer here, for example
+		--&gt;
+		&lt;fileset dir="myproject" includes="myproject.jar"/&gt;
+		&lt;fileset dir="myproject" includes="myproject.properties"/&gt;
+		&lt;fileset dir="myproject" includes="mydefaultdata/*"/&gt;
+
+&lt;/installer&gt;
+</pre>
+			
+
+
+<h2><a name="war">Installer</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="jar.html">Jar</a> task for creating
+installers.</p>
+<p>This task will correctly package the AntInstaller classes, the Ant classes,
+the antinstall-config.xml, the build.xml file, the default LookAndFeel classes, the button icons
+and create the required MANIFEST.mf to execute the Jar.</p> 
+<p>Nested filesets should
+be used to specify other resources required by the install (e.g. License.txt)
+and the files required to run the application being installed.  </p>
+
+<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the Installer task.</p>
+
+<h3>Parameters</h3>
+<table class="manual" cellspacing="0">
+<tbody>
+  <tr class="tpheader">
+    <th class="manual2">Attribute</th>
+
+    <th class="manual2">Description</th>
+    <th class="manual2">Required</th>
+  </tr>
+  <tr>
+    <td valign="top"><a name="file"></a>file</td>
+    <td valign="top">the JAR file to create.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="buildFile"></a>buildFile</td>
+    <td valign="top">The build.xml file to use when AntInstaller is run.</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="installConfig"></a>installConfig</td>
+    <td valign="top">The antinstall-config.xml file to use when AntInstaller is run.</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="extractType"></a>extractType</td>
+    <td valign="top">Either NonExtractor or SelfExtractor.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="antInstallLib"></a>antInstallLib</td>
+    <td valign="top">The location of the AntInstaller jars.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="antLib"></a>antLib</td>
+    <td valign="top">The location of the Ant jars. N.B. Ant 1.6.2 or above is required.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="icons"></a>icons</td>
+    <td valign="top">The <a href="icons.html">icon set to be used</a>. One of bluecurve, crystalsvg, amaranth, krystaline or eclipse,  new icons can be created and should be packed into a Jar with the name ai-icons-[name].jar with the png files in the resources/icons directory inside the jar.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="validateConfig"></a>validateConfig</td>
+    <td valign="top">when true the AntInstaller config file is validated and errors and 
+		warnings are printed to System.out, defaults to false</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="failOnError"></a>failOnError</td>
+    <td valign="top">if a known error is found during validation the build will stop.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="basedir"></a>basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="compress"></a>compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="keepcompression"></a>keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="encoding"></a>encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="filesonly"></a>filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+
+    <td valign="top"><a name="includes"></a>includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="includesfile"></a>includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="excludes"></a>excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="excludesfile"></a>excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="defaultexcludes"></a>defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="manifest"></a>manifest</td>
+    <td valign="top">The manifest file to use if you wish to manually set the MANIFEST.MF (not recommended).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="update"></a>update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="duplicate"></a>duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</tbody>
+</table>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved. 
+<br/>
+(lifted and altered from the WAR document)</p>
+
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/installtypes.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/installtypes.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/installtypes.html	(revision 14989)
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Multiple install types</h2>
+			It is possible to deliver different install types in the same Jar.  There must be a default install type that
+			uses <code>build.xml</code> and <code>antinstall-config.xml</code>
+			Additional types can be added by inculing additional files called <code>build-[name].xml</code> and <code>antinstall-config-[name].xml</code>.  These can be selected on the command line by starting the installer with the following command line parameters <code>-type [name]</code>.
+			<br/><br/>
+			for example <br/>
+			<code>java -jar my-installer.jar -type alternative</code><br/>
+			or for a command line install<br/>
+			<code>java -jar my-installer.jar text -type alternative</code><br/>
+			<br/>
+			When launching from a scripted install (not a self-extracting Jar) the launch scripts will probably need to be modified
+			to handle the new parameters correctly and to inform the user if an invalid -type has been specified.  If not the installer will print a stack trace reporting that it can not find the config file.<br/><br/>
+			
+			Alternative configs are not validated during the ant task that creates the installer so they should be validated manually.<br/><br/>
+			
+			If creating different install types you will have to inform users that the options exist as they are currently only selectable on the command line.  A GUI to this feature will probably not be implemented since it is possible to use the ifProperty attribute to achieve the same results and embed the alternative Ant tasks in the same build.xml file.
+			
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/introduction.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/introduction.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/introduction.html	(revision 14989)
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Introduction</h2>
+			AntInstaller is a configurable front end for Ant.<br/>
+			Developers can create ant scripts for deployment on any system that supports Java and provide a user friendly interface for editing the properties of the installation.<br/>
+			A simple case might be to ask the user for an installation directory, let them select which components to install (product, plugins, source code, documentation) and then unpack the installation files to the correct place.<br/><br/>
+			
+			AntInstall starts to provide more benfit when the installation process takes input from the users and sets the values into the correct properties files for the application.  For example when installing a webapp the install could unjar the war file and then use "Ant replace" to place user selected properties into the <code>WEB-INF/web.xml</code> file with out the user having to edit the xml file directly. <br/><br/>
+			
+			The full power of Ant and all plugins is available to the install process. <br/><br/><br/>
+			
+			<b>AntInstaller is not just for installing user apps.</b><br/><br/>
+			 
+			In a known environment such as a corporate network the script could telnet to servers and perform operations registering the instance of the application with central servers or much more complex installation.  Anything Ant can do with core tasks or with plugins. AntInstall provides a user interface to collect user data and select which targets to run. <br/><br/>
+			
+			The User Interface can be a graphical swing interface similar to other installers (NSIS) but it also can be a commandline interface when an X windows environment is not available, for example installing on remote servers.   <br/><br/>
+			
+			The user of the installer does not have to be an end user.  AntInstaller could be used to aid deployment of your own Java apps asking for the properties that are requried for each install. For example "is this the production server or development server"  and "is the database in transactional or non transactional mode".  Thus ensuring that you or anyone else deploying the application configures all the correct deployment specific properties when installing.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/licenses.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/licenses.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/licenses.html	(revision 14989)
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Licenses</h2>
+			AntInstaller is undergoing a licensing change to make it compatible with Apache projects.  The new license is the standard Apache 2.0 License.  This means the license will be <i>less</i> restrictive.  You may have noticed the change in the logo on the site.  This is due to the necessity to provide Apache licensed content for all the components of the installer.  If you don't like the new logo and feel you could do better, please send 'em in, but you must be willing to license them under Apache 2.0.
+<br/><br/>
+			The following license apply to the various components of this project, they are all friendly and encourage open source development.
+			<br/>
+			<ul>
+				<li><a href="licenses/LICENSE-ant-install.txt">AntInstall</a></li>
+				<li><a href="licenses/LICENSE-sysout.txt">Sysout</a></li>
+				<li><a href="licenses/LICENSE-ant.txt">Apache Ant</a></li>
+				<li><a href="licenses/LICENSE-dom.txt">DOM</a></li>
+				<li><a href="licenses/LICENSE-sax.txt">SAX</a></li>
+				<li><a href="licenses/LICENSE-xerces.txt">Xerces</a></li>
+				<li><a href="licenses/LICENSE-jgoodies.txt">JGoodies</a></li>
+			</ul>
+			Unfortuntely the Metouia look and feel has had to be dropped due to the new licenses since it is GPL.
+			It is still easy to implement this look and feel in your own installers but check the bug reports since there 
+			is a known issue with one of the input types.
+			<br/>
+			<br/>
+			A modifed JGoodies is still the default look and feel since it is licensed under a BSD license that is compatible with Apache.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/lookandfeels.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/lookandfeels.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/lookandfeels.html	(revision 14989)
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+			
+			<h2>Look And Feel</h2>
+			
+			The Swing GUI can be shown with a configurable appearance using Java's pluggable look and feel feature.  AntInstaller includes a look and feel by <a href="http://www.jgoodies.com/">JGoodies</a> which is now licenced under a BSD license.<br/><br/>
+			
+			Since JGoodies is under a good open source license it has been possible to make minor modifications to 
+			the code to enable antialiasing of text components.  This is more resource intensive but looks a lot better.
+			In order not to clash with the original JGoodies code the modifications have be repackaged as <code>org.tp23.jgoodies.*</code>
+			so both UIs can be on the classpath at the sametime.  In AntInstaller the antialiasing can be activated with the antialiased attribute
+			in the installer element.  <br/><br/>
+			
+			When designing a cross platform installer remember that Micro$oft look and feels will not run on other platforms and will throw exceptions.  Some of the JGoodies look and feels have the same issue, so check first.<br/><br/>
+			
+			There is small look and feel included with AntInstaller that is a simple modification of the MetalLookAndFeel that uses a monochrome theme and less use of bold fonts, the font size is also reduced one point.  This look and feel has been included to enable installers to be delivered with a consistent look on multiple platforms and have space on the buttons and labels to show the default English text in the installer. The download size is also reduced. For more space for text the width of the installer can be increased with the <code>wide</code> attribute of the <a href="manual.html#installer">installer</a> element in the configuration file.<br/>
+			The purple theme has been removed because it looks naf! (sorry Sun but its true).
+			<br/><br/>
+
+			<h2>Setting the look and feel</h2>
+			
+			To set the look and feel for the swing GUI the <code>lookAndFeel</code> attribute of the <code>installer</code> element in <code>antinstall-config.xml</code> should be set.  The value of the lookAndFeel attribute should be a fully qualified class name or one of the following values that have special treatment.
+			<ul>
+				<li><code>null</code> - No alterations are made to the look and feel.</li>
+				<li><code>greymetal</code> - The monochrome metal look and feel is used. Equivalent to <code>org.tp23.antinstaller.renderer.swing.plaf.ModMetalLookAndFeel</code>.</li>
+				<li><code>native</code> - The native look and feel of the computer on which the installer is run is used. The value is that returned by <code>UIManager.getSystemLookAndFeelClassName()</code>.</li>
+				<li><code>jgoodies</code> - The JGoodies look and feel <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code> is used.</li>
+			</ul>
+			
+			If the lookAndFeel attribute is missing <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code> is the default.<br/><br/>
+			
+			If the default look and feel or greymetal is specified in the configuration the <a href="installertask.html">Ant task</a> will include the correct classes automatically in the self-extracting or non-extracting Jar.  If a custom look and feel is to be used the classes must be added specifically to the classpath or inside the Jar.<br/><br/>
+			
+			If the self-extracting jar is used, in order to show the progress panel with the correct look and feel, the value in the configuration file can not be used since it is not yet loaded.  An additional element <code>Look-And-Feel</code> to the <code>META-INF/MANIFEST.mf</code> file should be added.<br/>
+			Provided the installer is build with the <a href="installertask.html">Ant task</a> this is handled automaticaly.
+			
+			<h2>Screenshots</h2>
+			JGoodies - <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code><br/>
+			<img src="images/jgoodies.xp.snapshot.png" alt="JGoodies screenshot"/><br/><br/>
+			
+			Metouia - <code>net.sourceforge.mlf.metouia.MetouiaLookAndFeel</code><br/>
+			<img src="images/metouia.snapshot.png" alt="Metouia screenshot"/><br/><br/>
+			
+			Grey Metal - <code>org.tp23.antinstaller.renderer.swing.plaf.ModLookAndFeel</code><br/>
+			<img src="images/greymetal.snapshot.png" alt="Greymetal screenshot"/><br/><br/>
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/manual-print.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/manual-print.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/manual-print.html	(revision 14989)
@@ -0,0 +1,1238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style-print.css" type="text/css" rel="stylesheet">
+  <link rel="SHORTCUT ICON" href="images/antinstaller-icon.png">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, valiation, configuration">
+</head>
+<body>
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440"><br>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="true">
+				<div class="tpraised">
+				<a class="tpbutton" href="index.html">home</a>
+				<a class="tpbutton" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" href="manual/manual/index.html">antmanual</a> 
+				<a class="tpbutton" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+      <td valign="bottom">
+			<br/>
+			<br/><br/></td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      			<div align="right"><a href="manual-print.html">Printable version</a></div>
+                           <h2>Manual</h2>
+To set up an AntInstall there are a few requirements.
+      <ul>
+        <li>The <a href="#config"><code>antinstall-config.xml</code></a> file to describe
+the installation</li>
+        <li>The <code>build.xml</code> ant script to run, with targets
+that should match values in <code>antinstall-config.xml</code> </li>
+        <li>The resources to run the installer e.g. antinstaller.jar
+and ant.jar</li>
+        <li>The <a href="#scripts">scripts</a> to run the installer e.g. <code>install.sh</code></li>
+        <li>The resources to install</li>
+			</ul>
+      <ul>
+				<li>The installer can be delivered as a <a href="#extractor">self extracting JAR</a></li>
+				<li>The installer can be run directly form the Jar see <a href="#non-extractor">non extracting JAR</a>
+				Resources are extracted from the Jar during the Ant build.</li>
+				<li>Since version beta0.5 <a href="#refs">dynamic references</a> can be used in default values.</li>
+				<li>Displaying pages based on user selections on previous pages. <a href="#pagedisplay">Page displaying</a></li>
+			</ul>
+			<a name="config"></a>
+			      <h3><code>antinstall-config.xml</code></h3>
+
+This part of the guide is the reference manual for the
+configuration of <code>antinstall-config.xml</code>. The config file
+is a simple XML file that describes the pages to display to the user,
+and the input the user must enter. <br>
+A simple example might be a License page to show the license of the
+software, followed by a page asking the user for their name and email.
+The next page would allow the user to choose the components to install
+(binaries, source, documentation) and the progress page with an install
+button to perform the installation. <br>
+        <br>
+The config file must always have a root element installer with some
+requried attributes as follows. <br>
+        <br>
+        <pre>&lt;installer<br>	ui="swing,text"<br>	verbose="false"<br>	lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"<br>	name="Test Installer"<br>	windowIcon="/resources/gkmain_inv.png"<br>	defaultImageResource="/resources/greens.png"<br>	minJavaVersion="1.4"&gt;<br>		<br>		...<br>			</pre>
+The file is then made up of <code>page</code> elements containing <code>input</code>
+elements. <br>
+        <br>
+        <ul>
+          <li><a href="#installer">Installer</a></li>
+          <li><a href="#page">Pages</a>
+						<ul>
+							<li><a href="#pagesplash">Splash Page</a></li>
+							<li><a href="#pagelicense">License Page</a></li>
+							<li><a href="#pageinput">Input Page</a></li>
+							<li><a href="#pageprogress">Progress Page</a></li>
+						</ul>
+					</li>
+          <li><a href="#inputtypes">Input types</a>
+						<ul>
+							<li><a href="#checkbox">Checkbox</a></li>
+							<li><a href="#comment">Comment</a></li>
+							<li><a href="#directory">Directory</a></li>
+							<li><a href="#app-root">Application Root</a></li>
+							<li><a href="#file">File</a></li>
+							<li><a href="#select">Select</a></li>
+							<li><a href="#target-select">Target Select</a></li>
+							<li><a href="#large-select">Large Select</a></li>
+							<li><a href="#target">Target</a></li>
+							<li><a href="#text">Unvalidated Text</a></li>
+							<li><a href="#validated">Validated Text</a></li>
+							<li><a href="#extvalidated">Externally Validated Text</a></li>
+							<li><a href="#date">Date</a></li>
+							<li><a href="#password">Password Text</a></li>
+						</ul>
+					</li>
+        </ul>
+        <br>
+        <br>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="installer">&lt;installer&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The <code>installer</code> element is
+the root element of the config and has the following attributes.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>ui</td>
+              <td>Indicates the supported installation modes</td>
+              <td>swing,text</td>
+            </tr>
+            <tr>
+              <td>verbose</td>
+              <td>Print more info the the install log file and more
+info in the <code>ant.install.properties</code> file. N.B. the properties file may not be written if the installer
+can not write to the current directory.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>debug</td>
+              <td>Setting this flag prevents the temporary directory from being deleted on exit, this is useful for debugging
+							install scripts.  It should normally be set to false or ommited for a final installer. </td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>lookAndFeel</td>
+              <td>The LookAndFeel class for the installer or one of the standard entries. The classes must be on the classpath in the installer start script or inside the installer Jar.  There are a few standarad entries for this 
+field to set default LookAndFeels.  
+<ul>
+<li><code>"null"</code> - The string "null" is used to set the default LookAndFeel determined by Java (no extra classes required)</li>
+<li><code>"jgoodies"</code> - Used to set the default LookAndFeel for AntInstaller org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel 
+(<code>jgoodies-edited-1_2_2.jar</code> or it contents must be on the classpath)</li>
+<li><code>"native"</code> - Used to set the native LookAndFeel for the runtime Operating System (no extra classes required)</li>
+<li><code>"greymetal"</code> - Used to set the cutdown MetalLookAndFeel included with AntInstaller.  This is the same as MetalLookAndFeel witha  grey theme and no bold fonts unless specified in the <code>antinstall-config.xml</code> file (no extra classes required)</li>
+</ul>
+If the lookAndFeel attribute is missing <code>jgoodies</code> is assumed.  If the LookAndFeel can not be loaded a message will be added to the log file and the install will continue with the Java default.
+							</td>
+              <td>
+							net.sourceforge.mlf.metouia.<br/>MetouiaLookAndFeel<br/><br/>
+							jgoodies</td>
+            </tr>
+            <tr>
+              <td>name</td>
+              <td>The name of the installer, this will appear in the
+title of the installer GUI window.</td>
+              <td>My Installer</td>
+            </tr>
+            <tr>
+              <td>windowIcon</td>
+              <td>This is the resource name of the icon for the
+installer window. It is a string that is used to load the resource from
+the classpath so the image must be in one of the jars on the classpath
+of the install start script.  In the self installer it must be in the correct directory
+of the Jar.</td>
+              <td>/resources/gkmain_inv.png</td>
+            </tr>
+            <tr>
+              <td>defaultImageResource</td>
+              <td>This is the resource image used for the top of the
+installer GUI by default, it can be overridden for individual pages.</td>
+              <td>/resources/greens.png</td>
+            </tr>
+            <tr>
+              <td>minJavaVersion</td>
+              <td>The minimum Java version for the installer, this is
+currently not supported, but will be in future versions.</td>
+              <td>1.4</td>
+            </tr>
+            <tr>
+              <td>finishButtonText</td>
+              <td>The text displayed on the install button. If not specified, the default is "Install".  This has been
+							added since Antinstaller can be used as a GUI for other Ant builds, in which case "Build" would
+							be more appropriate.</td>
+              <td>Install</td>
+            </tr>
+            <tr>
+              <td>antialiased</td>
+              <td>If this attribute is set to <code>true</code> and the LookAndFeel is <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code> or <code>jgoodies</code> the Swing GUI will render using Java 2D antialiasing for the text.  This is resource intensive and may slow
+							the GUI down unacceptably on older PCs, but does look better.</td>
+              <td>false</td>
+            </tr>
+          </tbody>
+        </table>
+        <br>
+        <br>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="page">&lt;page&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Pages entries in the XML file represent a
+single window in the installer moved through by the user by selecting
+"Next &gt;&gt;" (or pressing enter) all pages have the following
+atributes.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td><b>type</b></td>
+              <td>The type of page one of four options, progress,
+license, splash or input.</td>
+              <td>input</td>
+            </tr>
+            <tr>
+              <td>name</td>
+              <td>A unique name for the page.</td>
+              <td>User properties</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown at the top of the page.</td>
+              <td>Install Options</td>
+            </tr>
+            <tr>
+              <td>imageResource</td>
+              <td>The image to be shown at the top of the page, overriding the defaultImageResource defined
+							in the installer element.</td>
+              <td>Install Options</td>
+            </tr>
+            <tr>
+              <td>target</td>
+              <td>An ant target that will always be run from the <code>build.xml</code>
+file. This attribute is optional see the Target input type if you wish
+to show a targets that can be selected by the user.</td>
+              <td>clean</td>
+            </tr>
+          </tbody>
+        </table>
+        <br>
+        <br>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="splash">&lt;page
+type="splash"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Displays a graphical image page in the Swing GUI</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>splashResource</td>
+              <td>The image resource used for the splash image. The resource must be available on the classpath
+							at runtime.</td>
+              <td>/resources/large-logo-image.png</td>
+            </tr>
+            <tr>
+              <td>altText</td>
+              <td>Alternative text for the console mode</td>
+              <td>Welcome to the installer app</td>
+            </tr>
+          </tbody>
+        </table>
+        <br>
+        <br>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagelicense">&lt;page
+type="license"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Shows a single license file in a
+scrollable window to the user.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>resource</td>
+              <td>The license text file resource, must be on the
+classpath.</td>
+              <td>/resources/GPL.txt</td>
+            </tr>
+            <tr>
+              <td>usePaging</td>
+              <td>In text mode this parameter stops the scrolling of the license text at 20 lines,
+							and provides options to view the next page or skip to the end.  The default is false.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+        <br>
+        <br>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pageinput">&lt;page
+type="input"&gt;</a>
+							</th>
+            <tr>
+              <td colspan="3">A page for adding input types listed
+below. An installer can have as many input pages as desired. </td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>ifTarget</td>
+              <td>This page will be show if the named target has previously been selected.  This can be used to 
+							conditionally show installation pages when certain parts of the <code>build.xml</code> script are to be run and not
+							if they are to be omitted.</td>
+              <td>documentation</td>
+            </tr>
+            <tr>
+              <td>ifProperty</td>
+              <td>This page will be shown if the property has the correct value.  This can be used to 
+		conditionally show installation pages when certain properties match
+		The format of the property is simple <code>${name}=value</code>.  There must be no spaces
+		and both the property and value are case sensitive.  It is a good idea to use a <code>select</code> input type
+		for the value since free text entered by the user is unlikely to match exactly in case and whitespace or use validated
+		text fields.  
+N.B. to run tasks based on properties consider the <a href="http://ant-contrib.sourceforge.net">ant-contrib</a> packages. <br/>
+		The new syntax allows for environment variable checks such as <code>${env.DISPLAY}=:0.0</code>
+		<br/><br/>
+		<b>N.B. the old syntax <code>name=value</code> is deprecated.</b> Until the old syntax is removed it is <b>not</b> possible to 
+		place and = sign as a property name.<br/>
+		e.g. <code>${prop.col=back}=#0000FF</code> will break the simple parser.
+		<br/><br/>
+		The following operators are supported
+		<ul>
+								<li> = equals. not assignment as in Java</li>
+								<li> == equals same as above for those that wish to be specific</li>
+								<li> != not equals or null</li>
+								<li> $= ends with, the $ is used from regex for end of line</li>
+								<li> ^= starts with, again ^from regular expressions</li>
+								<li> += greater than, only for numbers</li>
+								<li> -= less than, only for numbers. The installer should validate to ensure the property is a valid number 
+								or exceptions will be thrown.  The rather strange -=  and += syntax is used because &gt; and &lt;
+								must be escaped to &amp;gt; and &amp;lt; in XML attributes and the legibility
+								of the configuration files would be impared.</li>
+								<li> !=null not null, the property must be specified. This is usefull for testing the existence of environment variable for example ${env.ANT_HOME}!=null.  N.B. the empty string "" also tests to null, if a property exists
+								in the config file it <b>is</b> possible for the user to set the value to null by erasing the text in
+								a text entry type</li>
+								<li> ==null is null or empty</li>
+							</ul>
+							It is probably a bad idea to use any character that is not a letter or number in a property name
+							because these operators may be extended in the future
+							</td>
+              <td>${myProperty}=value23</td>
+            </tr>
+          </tbody>
+        </table>
+        <br>
+        <br>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pageprogress">&lt;page
+type="progress"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A page for showing the user the progress
+of the installation. This page contains the "Install" Button, so all
+installers should end with a progress page. Currently it is not checked
+that an installer ends with a progress page so the creator of the <code>antinstall-config.xml</code>
+should ensure it does.</td>
+            </tr>
+            <tr>
+              <td>showTargets</td>
+              <td>When this flag is true, in the Swing GUI, a graphical representation of 
+              the targets being run and the dependent targets found is displayed.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+<br><a name="inputtypes"></a><h3>Input Types</h3>
+Input types represent fields in which users can input values or make selections. <br>
+The input type element is
+also used to display text to the user.  While there is no limit to the number of comments or text you can add in the
+config file, the GUI only has a limited amount of space.  Check your config with your choosen Look And Feel to ensure
+that instructions are not cropped.<br>
+All input types accept the <code>explanatoryText</code> attribute, where multi-line comments can be added.
+The GUI has a fixed width available for the <code>displayText</code> attribute which often does not provide much space.
+Single line comments can be added with the <code>comment</code> type.<br>
+If anyone has a serious requirement to include more text that is currently possible post an RFE and I will look into 
+tool tip popups or a scrollable text box or perhaps instructions that can launch in a help window.  This has not been added yet
+since it is much more difficult to implement in the command line UI, and as yet we have no requirement.
+<br><br>
+				<table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="checkbox">&lt;checkbox&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The check box input is used for boolean
+input, a check box in the gui and a true false option on the command
+line.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be true or false.</td>
+              <td>my.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Enable all security options</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the check box.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>force</td>
+              <td>Force the option selected to be the default value.
+This can be used to indicate that the option is required. For example,
+an installer could be delivered where "Enable all security options" is
+always selected.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="comment">&lt;comment&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The comment input displays text to the
+user and does not accept any type of input.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>W</td>
+            </tr>
+            <tr>
+              <td>bold</td>
+              <td>Display the comment in bold, in the GUI version.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>title</td>
+              <td>Display the comment in a larger font in the GUI or in
+capitals in the command line.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="directory">&lt;directory&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The directory input allows the user to
+select a directory.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the directory.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select an installation directory</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the directory.</td>
+              <td>/var/log</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the directory for windows installations.</td>
+              <td>C:\Program Files\myapp</td>
+            </tr>
+            <tr>
+              <td>create</td>
+              <td>If this is true and the directory entered does not
+exist the user will be asked if the directory should be created.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>checkExists</td>
+              <td>If true the installation will not continue unless the
+directory selected exists. The user will have to select a directory
+that does exist, create it or cancel the install. If create is true and
+the directory does not exist the user simply has to agree to have the
+directory created.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="app-root">&lt;app-root&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The directory input allows the user to
+select a directory. The existence of files is then checked during
+validation to ensure the user has selected the correct directory. This
+can be used so a user can select the installation directory of a
+previously installed application. The directory can then be validated
+against 2 known files and 2 known directories that should exist.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the directory.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select an installation directory</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the directory.</td>
+              <td>/usr/local/jakarta-tomcat-4.0.1</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the directory for windows installations.</td>
+              <td>C:\Program Files\Existing Application</td>
+            </tr>
+            <tr>
+              <td>checkFile1</td>
+              <td>The relative path of a file based on the user
+selected directory. When the installer is run this file will be checked
+to see if it exists (optional).</td>
+              <td>conf/server.xml</td>
+            </tr>
+            <tr>
+              <td>checkFile2</td>
+              <td>A second file to check (optional).</td>
+              <td>conf/server.xml</td>
+            </tr>
+            <tr>
+              <td>checkDir1</td>
+              <td>The relative path of a directory based on the user
+selected directory (optional).</td>
+              <td>webapps</td>
+            </tr>
+            <tr>
+              <td>checkDir2</td>
+              <td>A second directory to check (optional).</td>
+              <td>conf</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="file">&lt;file&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The file input allows the user to select
+a file</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the file.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select the weblogic configuration file</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the file.</td>
+              <td>/var/log</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the file when installing on windows.</td>
+              <td>C:\log</td>
+            </tr>
+            <tr>
+              <td>checkExists</td>
+              <td>If true the installation will not continue unless the
+file selected exists. The user will have to select a file that does
+exist, create the file or cancel the install. If you want to create the
+file during the install if it does not exist use Ant.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="select">&lt;select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The select input allows the user to
+select from a list of options. This will be represented as a group of
+radio buttons or a numbered list on the command line. An input type of
+select should have at least two child elements called <code>&lt;option&gt;</code> with the
+attributes <code>text</code> and <code>value</code>. The text is displayed next to the option and
+the value is the value set into the property. <br/>
+N.B. the defaultValue
+should be blank or one of the values in one of the options.  This is not checked by AntInstaller
+but is a requirement, there are no guarantees if you don't RTFM.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file. The value will be the text of one of the option value attributes.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Select your favorite colour</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the option this should match one of
+the options values.</td>
+              <td>#FF0000</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="target-select">&lt;target-select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The target-select input allows the user to
+select targets from a list of options. This will be represented as a group of
+radio buttons or a numbered list on the command line. This input type is almost identical to the select
+input type but the value as well as being recorded as a property is set as a target.<br/>
+An input type of target-select should have at least two child elements called <code>&lt;option&gt;</code> with the
+attributes <code>text</code> and <code>value</code>. The text is displayed next to the option and
+the value is the target to be run (and the value set into the property).
+N.B. the defaultValue
+should be blank or one of the values in one of the options.  This is not checked by AntInstaller at runtime
+but is a requirement, there are no guarantees if you don't RTFM.  You should use the checkConfig script to validate the config.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file. The value will be the text of one of the option value attributes and will be the target that is run.</td>
+              <td>target.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Select your favorite colour</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the option this should match one of
+the options values.</td>
+              <td>fulldocs</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="large-select">&lt;large-select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The large select has identical options to the <code>select</code> input above. 
+							Large select enables the list of options to be greater and is displayed differently.
+							In the Swing GUI the options are rendered as a drop-down list. In the text/console UI
+							the options are shown to the user 20 lines at a time.</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="target">&lt;target&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The target input shows a check box, if
+the user selects the target the Ant target will be run when the
+installation starts. The order of the targets in the list is
+significant, and the targets will be run in that order. If there is
+more than one Page with target entry types or there is a page with a
+target attribute the targets will be run in the order they appear in
+the config file.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>target</td>
+              <td>The name of the target to be run it must exist in the
+build.xml file delivered with the install.</td>
+              <td>installSource</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Do you want to install the source code.</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>true or false, determines if the check box is
+selected by default.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>force</td>
+              <td>If true the checkbox will not be editable and will be
+set to the value in the defaultValue attribute.  This can be used to indicate that installing
+this component is not optional.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>osSpecific</td>
+              <td>If the osSpecific flag is set the Operating System of the current system will
+be appended to the name of the target actually run by Ant so that different
+targets can be run according to the final deployment platform.
+This feature goes against the principles of
+building cross platform installers, but is provided so that common installer
+tasks such as creating icons and shortcuts can be run using the platform specific executables.
+</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>strict</td>
+              <td>Currently there are two modes for OS specific targets strict and not strict (lax). <br/>
+Strict target will return the target name plus the exact String in the
+System Property "os.name" this means you will have to provide targets for
+every possible OS version. See
+<a href="http://lopica.sourceforge.net/os.html">this page</a> for a list of possible values.
+There are a great many but you may not want to consider some of the options.<br/><br/>
+Lax target will return one of the following strings only
+<ul>
+	<li>"[target-name]-linux" - Linux </li>
+	<li>"[target-name]-mac" - Mac OS and Mac OS X</li>
+	<li>"[target-name]-sun" - SunOS and Solaris</li>
+	<li>"[target-name]-win" - Windows</li>
+	<li>"[target-name]-other" - any thing else</li>
+</ul> 
+so you only have to create 5 ant targets to support all the cases.  It is pretty hard
+to support windows bit with this system, if anyone needs to specifically support this and does not
+want to use the existing strict mechanism, get in touch.  JDK1.4 on Win16 boxes strikes me as
+an unlikely combination ;)
+							</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="text">&lt;text&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">An text input entry is a field into which
+the user can write any text (or no text).</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>name.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text or displayed as a default in the GUI.</td>
+              <td>${java.user.name}</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="validated">&lt;validated&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A validated text input entry is a text
+field into which the user can write any text but the installation will
+not continue unless the text entered matches a regular expression
+provided.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>server.url</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]$</td>
+            </tr>
+					</tbody>
+				</table>
+				
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="extvalidated">&lt;ext-validated&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">An externally validated text input entry is a text
+field into which the user can write any text but the installation will
+not continue unless the text entered passes a validation function.  The validation function is not part
+of AntInstaller, a fully qualified classname (that is on the classpath at runtime) is specified which AntInstaller
+executes to validate.  One instance will be created per input element which should conform to the interface
+<code>org.tp23.antinstaller.input.Validator</code>. <br/>  
+This feature is not tested but does provide flexibility in validating input, if you use this feature please
+report back you results (success or failures) to the AntInstaller project pages.  We wish to discuss
+integrating external validation into the Localization of the installers (when it happens) with 
+active users of this feature.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>server.url</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be entered.</td>
+              <td>Choose an open network port</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the external validator.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>validationClass</td>
+              <td>The class used as a Validator</td>
+              <td>com.me.val.PortOpenValidator</td>
+            </tr>
+					</tbody>
+				</table>
+				
+				
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="date">&lt;date&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A text input entry that must be a valid
+date. The dateformat string must be compatible with <code>java.text.SimpleDateformat</code>
+By default the format is english dates <code>dd/MM/yyyy</code> but can be
+changed to any valid format. If the date field is used in an installer it is not possible to enter blank dates.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the date entered by the user.</td>
+              <td>mydate.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the date to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the date format. Alternatively the String <code>TODAY</code>
+may be entered and the default value will be the time the installer is
+run.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>dateFormat</td>
+              <td>The expression used to create the DateFormat.</td>
+              <td>dd-MM-yy</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="password">&lt;password&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A password text input is identical to a
+validated text input except that the display does not echo in the Swing
+Version (If anyone knows how to prevent the console echoing please get
+in touch) This password field is VERY INSECURE so dont blame me. </td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be sent to Ant the
+password will not feature in <code>ant.install.properties</code> file,
+the value will be the text entered by the user. If the installer is in
+verbose mode the properties file will contain the property name but not
+the value entered by the user.</td>
+              <td>password.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the password to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression. This will be shown
+as an example if the user enters an invalid password.</td>
+              <td>pa55word</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[a-zA-Z_0-9]{8}$</td>
+            </tr>
+						<tr>
+							<td>textMask</td>
+              <td>When set to <code>true</code> an attempt is made to hide the password on the command line.
+							This feature is optional and has not been tested on different platforms.   
+							It is a pure Java solution using a masking thread so there 
+							is a theoretical requirement for some CPU head room to function correctly.
+							It does not work where \r is not supported for example the eclipse console.<br/><br/>
+							see SUN's proposed solution
+							<a href="http://java.sun.com/features/2002/09/pword_mask.html"
+							>http://java.sun.com/features/2002/09/pword_mask.html</a><br/>
+							see also, the embarrasing bug report on SUNs site
+							<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435"
+							>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435</a><br/>
+							see also, Ant's bug report
+							<a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687"
+							>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687</a><br/>
+							</td>
+							<td>true</td>
+						</tr>
+          </tbody>
+        </table>
+        <br>
+        <br>
+To edit the file with the above properties a good XML editor is
+recommended.  A DTD exists to aid debugging this file.  If you find errors in the DTD please <a href="http://sourceforge.net/tracker/?group_id=123466">report them</a>.<br>
+        <br><a name="configbuild"></a>
+			      <h3><code>build.xml</code></h3>
+
+Once the <code>antinstall-config.xml</code> file is created you need
+to create an Ant <code>build.xml</code> file with targets that match
+the targets available in the install config. There are tools to help
+you create these files.<br>
+
+        <br><a name="scripts"></a>
+			      <h3><code>install.sh</code> Start scripts</h3>
+
+With the two XML scripts ready you need to package the components you want
+to install. Create a new directory and prepare the files as you would
+for a normal Ant build. You can include the <code>install.sh</code>
+and <code>install.cmd</code> files from the demo app to launch the
+installer. These scripts can be launched in a GUI by double clicking on
+them, but they will requrie editing to set you classpath and resources correctly.<br>
+The main class (<code>org.tp23.antinstaller.runtime.ExecInstall</code>) that starts the installer takes two, and only two, parameters 
+on the command line which should be set in the start script.<br>
+The first is the default
+GUI mode (either swing or text).  If swing is selected and there is no X environment or Windows
+the system will default back to text mode.<br>
+The second is the Ant basedir and typically it should be just "." the current directory.  
+This directory will be the basedir of the ant script no matter what it says in the <code>build.xml</code> file.
+        <br>
+The Ant runner currently passes the directory called <code>antlib</code>
+in which
+you can add any Ant optional jars to get them to auto load. You
+can also load them on classpath of the install scripts.<br>
+        <br>
+There are other tools to create binary executables that launch Java
+Apps, JBuilder has one built in. If you are deploying to Unix consider
+a tar.gz for the installer package to save the user the task of
+chmodding the executable. 
+        <br><a name="extractor"></a>
+			      <h3>Self Extracting Jars</h3>
+	See <a href="installertask.html">Installer Ant Task</a> to script creation of SelfExtracting jars. <br/><br/>
+ There is a mechanism to create a self extracting Jar where the entire installer,
+  all requried Java code, and the resources to install can be packaged into a single Jar.
+	The Jar is launched by double clicking on it (if the <code>.jar</code> extension is registered properly by Java) or by calling
+	the command <code>java -jar [jar_name].jar</code>.<br>
+	In windows if the extension <code>.jar</code> has been re-registered (e.g. to open with winzip) right clicking on the jar
+	and selecting <code>Open With</code> then <code>javaw</code> will also run the installer.<br>
+	Packaging a self extracting jar is more difficult, since all the included libraries need to be first expanded into files
+	and then repackaged back into a single Jar.  This can be achieved with Ant, and there are Maven tasks to make creating
+	executable Jars easy if you already have a Maven build.
+	The build file should not include any relative file references.  The <code>${basedir}</code> property is required since
+	the file is excracted a new empty temporary directory that is not know when 
+	the <code>build.xml</code> file is being written.  This directory will be the value of <code>${basedir}</code>
+	when the installer is run. There will be more instructions for this when the system is more
+	stable. One thing to remember is that the main class changes for a self extracting Jar.  <br>
+	Here is an example <code>MANIFEST.MF</code> file.<br>
+	<pre>
+Manifest-Version: 1.0 
+Main-Class: org.tp23.antinstaller.selfextract.SelfExtractor
+Look-And-Feel: org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel
+	</pre>
+	The Look And Feel is also required in the <code>MANIFEST.MF</code> file since the autoextract code shows a progress bar using Swing.
+	The value should be the same Look And Feel used in the main Swing GUI specified in the installer element of <code>antinstall-config.xml</code>.  If not, ensure the main Look And Feel fully supports updateing the UI, not LAFs
+	all do.  
+	<br>
+	<br>If a resource is included called <code>/resources/extract-image.png</code> it will be displayed during the 
+	extraction process.  You can remove the image from the classpath if you don't like it or change it to any other
+	png image of the same size.<br>
+	<img src="images/extract-image-example.png" alt="example extract image"/>
+ <br>
+	<br>
+        <br><a name="non-extractor"></a>
+			      <h3>Non Extracting Jars</h3>
+	See <a href="installertask.html">Installer Ant Task</a> to script creation of NonExtracting jars. <br/><br/>
+	As of version 0.7.2 a new feature has been added to load the installer without having to extract any files untill the 
+	Ant build is run.  This has the advantage of not having to unjar AntInstaller itself or its dependencies such as Ant, Xerces
+	and the look and feel.
+	In order to specify that the NonExtractor should be used the Jar <code>META-INF/MANIFEST.MF</code> file should specify
+	<code>org.tp23.antinstaller.selfextract.Nonextractor</code>.  Since the NonExtractor does not need to show 
+	the progress bar for the extraction no look and feel is required in the manifest.
+	An example <code>META-INF/MANIFEST.MF</code>
+	<pre>
+Manifest-Version: 1.0
+Main-Class: org.tp23.antinstaller.selfextract.NonExtractor
+	</pre>
+	The NonExctractor still creates temporary space on the deployment system and still sets the <code>${basedir}</code>
+	to this space.
+	The <code>build.xml</code> file and the <code>antinstall-config.xml</code> are read from inside the Jar and all 
+	properties are passed directly 
+	to Ant.  The properties file is still readable for debuging installers.  In order to access resources inside the Jar 
+	alternative Ant tasks are required. instead of moving files they must be un-jared from the install archive.  In order 
+	to identify the Jar file a new property has been added to the Ant build <code>${antinstaller.jar}</code>.  
+	The following example
+	extracts a file called <code>myresource.zip</code> into the temporary directory (from there it could be unzipped 
+	to the deployment directory)
+	<pre>
+&lt;unzip src="${antinstaller.jar}" dest="${basedir}"&gt;
+	&lt;patternset&gt;
+		&lt;include name="myresource.zip"/&gt;
+	&lt;/patternset&gt;
+&lt;/unzip&gt;</pre>
+	A more likely example is to unzip all the files in your application to the installation directory selected by the user.
+	<pre>
+&lt;unzip src="${antinstaller.jar}" dest="${my.installation.dir}"&gt;
+	&lt;patternset&gt;
+		&lt;include name="bin/*"/&gt;
+		&lt;include name="classes/*"/&gt;
+		&lt;include name="help/*"/&gt;
+		&lt;include name="doc/*"/&gt;
+	&lt;/patternset&gt;
+&lt;/unzip&gt;</pre>
+	Remember all the classes for AntInstaller need to be in the root of the Jar for the JVM to find them when the 
+	Jar is first loaded so it is probably best to put all the deployable resources in a subdirectory inside the Jar 
+	and move them on the target system with Ant if required.  Moving files on the same filesystem is not time consuming. <br/> 
+	
+	<a name="refs"></a>
+			<h3>Dynamic References</h3>
+	As of version beta 0.5 in certain circumstances the default values of input fields can be based on existing properties.  To reference collected input values use the Ant property syntax <code>${property.reference}</code>.
+	References can be mixed with normal text as in Ant. <br>
+	 For example, <br>
+<pre>
+&lt;text
+  property="new.property"
+  displayText="Enter the installation directory"
+  defaulValue="/usr/local/${project.short.name}"
+  defaultValueWin="C:\Program Files\${project.short.name}"
+  create="true"
+/&gt;
+</pre>
+		As of version beta 0.7 the default values of input fields can be based on environment variables.  To reference collected input values use the normal Ant syntax <code>${env.ENVIRONMENT_VARIABLE}</code>.<br>
+	  The prefix is always <code>env.</code> since this is not set with an Ant <code>&lt;property&gt;</code> task, it is part of the AntInstaller runtime.  The results will be identical to <code>&lt;property environment="env."&gt;</code> since AntInstaller make direct calls to the Ant APIs.<br>
+		The environment is NOT added by default to the build.xml or the installer when Ant runs, if you need the environment
+		in the <code>build.xml</code> file call it in the usual way
+		Also the java system properties are included prefixed by "java.". For example, <code>${java.user.name}</code> returns the user currently running the installer.
+<br><br>
+	Dynamic references have the following limitations<br>
+	<br>
+	<ul>
+		<li>Dynamic references can only be added to <code>defaultValue</code> and <code>defaultValueWin</code> (currently)</li>
+		<li>The properties must have been set in previous pages not in the current page (or future pages)</li>
+		<li>Unlike Ant if the property has not been evalutated a blank string "" will be inserted instead of the reference.
+		    This means accidents like <code>/usr/local/${non.prop}</code> should not happen but will use <code>/usr/local</code>, generally neither case
+				is desired, so as with Ant check the effects of absent properties before releasing your installer.  Alternativly use a validated text field and specify a minimum length in the regular expression to ensure that blank values do not
+				get accepted.</li>
+		<li>Once a user has edited a field the evaluation stops.<br>
+		For example, on the first page <code>${proj.short.name}</code> is set
+		and on a subsequent page <code>${proj.short.name}/lib</code> and <code>${proj.short.name}/classes</code>. If the user changes one field to
+		<code>[value of ${proj.short.name}]/myclasses</code> and then goes back and changes the first page when the subsequent pages are shown the value will <b>not</b> update to <code>[new value of ${proj.short.name}]/myclasses</code>.  This only applies to the Swing GUI since in the command line the user can not go back.</li>
+	</ul>
+	
+ <br>
+	<br>
+	<a name="pagedisplay"></a>
+	<h3>Page Displaying</h3>
+	It is a common requirement to have a few options at the start of the installer and only show certain other pages if the user selected one of the initial options.  For example,  an option to install the source code, if the user is going to install the source code show a page with options to decide where to put the code, the documents and perhaps a checkbox if icons for the documents should be created.  This page should not be shown to people who are not installing the source code. This feature has been available from the start but it seems some people have missed this bit of the documents.  The trick is to use a <code>target</code> input and then add <code>ifTarget</code> attributes to the subsequent page elements.
+	<br><br>
+	As of beta0.7 it is possible to base pages on the existence of properties. Since both the System Properties from Java and the users environment variables are available as properties it is now possible to base pages on the existence of certain properties for example if CATALINA_HOME is set it is a safe bet the user already has tomcat installed.  Also if ProgramFiles is present it is probably a windows system.  N.B.  for more a more accurate way to run tasks based on the operating system of the user the target tag has been enhanced to run osSpecific targets.
+	
+	Later versions can also base the decision to display pages on the existence of or values in properties. see the ifProperty attribute of the <a href="#pageinput">InputPage</a> type. 
+	
+	<br><br>
+
+	<a href="index.html"><img class="but" src="images/ant-install-small.png"></a>
+		<!-- content end [segment-end]-->
+
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/manual.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/manual.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/manual.html	(revision 14989)
@@ -0,0 +1,1582 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      			<div align="right">
+					<a href="manual-print.html">Printable version</a><br/>
+					<a href="contents.html" target="_search">Mozilla sidebar</a>
+				</div>
+<!-- Do not edit the following line  used by manual-print.jsp -->
+<h2>Manual</h2>
+
+To set up an AntInstall there are a few requirements.
+			<ul>
+				<li>The <a href="#config"><code>antinstall-config.xml</code></a> file to describe
+		the installation</li>
+				<li>The <a href="#configbuild"><code>build.xml</code></a> ant script to run, with targets
+		that should match values in <code>antinstall-config.xml</code> </li>
+				<li>The resources to run the installer e.g. ant-installer.jar
+		and ant.jar</li>
+				<li>The binarires and resources to install for your application</li>
+				<li>The installer can be delivered as a <a href="#extractor">self extracting JAR</a> which extracts all the files on the target machine prior to running the installer.</li>
+				<li>The installer can be run directly from the Jar so the resources are not extracted until Ant is run. This is the recommended way to package an installer, see <a href="#non-extractor">non extracting JAR</a>.</li>
+				<li>All config files, classes and resources should then be packaged into a jar, this can be easily achieved with a dedicated <a href="installertask.html">Ant task</a>.</li>
+				<li>If not using a self or non extracting jar, <a href="#scripts">scripts</a> to run the installer would be required e.g. <code>install.sh</code></li>
+			</ul>
+			<a name="config"></a>
+			      <h3><code>antinstall-config.xml</code></h3>
+
+This part of the guide is the reference manual for the
+configuration of <code>antinstall-config.xml</code>. The config file
+is an XML file that describes the pages to display to the user,
+and the input the user must enter. <br/>
+A simple example might be a License page to show the license of the
+software, followed by a page asking the user for their name and email.
+The next page would allow the user to choose the components to install
+(binaries, source, documentation) and the progress page with an install
+button to perform the installation. <br/>
+        <br/>
+The config file must always have a root element installer with some
+requried attributes as follows. <br/>
+        <br/>
+			<pre>&lt;installer<br/>	ui="swing,text"<br/>	verbose="false"<br/>	lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"<br/>	name="Test Installer"<br/>	windowIcon="/resources/gkmain_inv.png"<br/>	defaultImageResource="/resources/greens.png"<br/>	minJavaVersion="1.4"&gt;<br/>			...<br/>			</pre>
+The file is then made up of <code>page</code> elements containing <code>input</code>
+elements.
+<br/>The last page of the installer must be a <a href="#pageprogress">Progress Page</a>. 
+If packaging the installer with the <a href="installertask.html">Ant task</a> the <code>antinstall-config.xml</code> file can be validated.<br/>
+When setting values, similar to Ant, ${my.property} syntax can be used for default values and comments, see <a href="#refs">dynamic references</a>.<br/>
+To determin which pages are shown and which are ommitted, see <a href="#pagedisplay">Page displaying</a>.<br/><br/>
+<div class="tpnoprint">
+An example antinstall-config.xml file can be seen <a href="antinstall-config-example.html" title="Example config" >here</a>.
+
+        <br/><br/>
+        <ul>
+          <li><a href="#installer">Installer</a></li>
+          <li><a href="#page">Pages</a>
+						<ul>
+							<li><a href="#pagesplash">Splash Page</a></li>
+							<li><a href="#pagelicense">License Page</a></li>
+							<li><a href="#pageinput">Input Page</a></li>
+							<li><a href="#pageprogress">Progress Page</a></li>
+						</ul>
+					</li>
+          <li><a href="#inputtypes">Input types</a>
+						<ul>
+							<li>Text fields
+								<ul>
+									<li><a href="#comment">Comment</a></li>
+									<li><a href="#text">Unvalidated Text</a></li>
+									<li><a href="#validated">Validated Text</a></li>
+									<li><a href="#extvalidated">Externally Validated Text</a></li>
+									<li><a href="#date">Date</a></li>
+									<li><a href="#password">Password Text</a></li>
+									<li><a href="#password-confirm">Confirm Password</a></li>
+								</ul>
+							</li>
+							<li>Target fields
+								<ul>
+									<li><a href="#target">Target</a></li>
+									<li><a href="#target-select">Target Select</a></li>
+								</ul>
+							</li>
+							<li>File fields
+								<ul>
+									<li><a href="#file">File</a></li>
+									<li><a href="#directory">Directory</a></li>
+									<li><a href="#app-root">Application Root</a></li>
+								</ul>
+							</li>
+							<li>Selection fields
+								<ul>
+									<li><a href="#checkbox">Checkbox</a></li>
+									<li><a href="#select">Select</a></li>
+									<li><a href="#large-select">Large Select</a></li>
+								</ul>
+							</li>
+						</ul>
+					</li>
+		<li><a href="#hiddentypes">Hidden elements</a>
+						<ul>
+							<li><a href="#conditional">Conditional</a></li>
+							<li><a href="#hidden">Hidden</a></li>
+						</ul>
+					</li>
+		</ul>
+</div>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="installer">&lt;installer&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The <code>installer</code> element is
+the root element of the config and has the following attributes.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>ui</td>
+              <td>Indicates the supported installation modes from the following four values <i>text</i>, <i>swing</i>,  <i>swing-auto</i> and <i>text-auto</i>.  <i>swing</i> indicates the GUI can be shown, <i>text</i> means the commandline interface can be shown. <a href="auto.html" title="-auto installs"><i>-auto</i> installs</a> are silent installs that read the properties from a file, if available, instead of running the full UI. Ensure you understand the consequences before enabling <i>-auto</i> builds.  <br/>
+              This attribute should be a comma separated list of values (whitespace is stripped).</td>
+              <td>swing,text, text-auto,swing-auto</td>
+            </tr>
+            <tr>
+              <td>loadDefaults</td>
+              <td>This flag can be true, false or prompt. Indicates what AntInstaller should do
+              if it finds existing properties in a file.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>verbose</td>
+              <td>Print more info the the install log file and more
+info in the <code>ant.install.properties</code> file. N.B. the properties file may not be written if the installer
+can not write to the current directory.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>debug</td>
+              <td>Setting this flag prevents the temporary directory from being deleted on exit, this is useful for debugging
+							install scripts.  It should normally be set to false or ommited for a final installer. </td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>lookAndFeel</td>
+              <td>The <a href="lookandfeels.html" title="LookAndFeel">LookAndFeel</a> class for the installer or one of the following special values.
+<ul>
+	<li><code>"null"</code> - The string "null" is used to set the default LookAndFeel determined by Java (no extra classes required)</li>
+	<li><code>"jgoodies"</code> - Used to set the default LookAndFeel for AntInstaller org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel 
+	(<code>jgoodies-edited-1_2_2.jar</code> or it contents must be on the classpath)</li>
+	<li><code>"native"</code> - Used to set the native LookAndFeel for the runtime Operating System (no extra classes required)</li>
+	<li><code>"greymetal"</code> - Used to set the cutdown MetalLookAndFeel included with AntInstaller.  This is the same as MetalLookAndFeel with a  grey theme and no bold fonts unless specified in the <code>antinstall-config.xml</code> file (no extra classes required)</li>
+</ul>
+If the lookAndFeel attribute is missing <code>jgoodies</code> is assumed.  If the LookAndFeel can not be loaded a message will be added to the log file and the install will continue with the Java default.
+				</td>
+              <td>
+				greymetal<br/>
+				jgoodies</td>
+            </tr>
+            <tr>
+              <td>name</td>
+              <td>The name of the installer, this will appear in the
+title of the installer GUI window.</td>
+              <td>My Installer</td>
+            </tr>
+            <tr>
+              <td>windowIcon</td>
+              <td>This is the resource name of the icon for the
+installer window. It is a string that is used to load the resource from
+the classpath so the image must be in one of the jars on the classpath
+of the install start script.  In the self installer it must be in the correct directory
+of the Jar.</td>
+              <td>/resources/gkmain_inv.png</td>
+            </tr>
+            <tr>
+              <td>defaultImageResource</td>
+              <td>This is the resource image used for the top of the
+installer GUI by default, it can be overridden for individual pages.</td>
+              <td>/resources/greens.png</td>
+            </tr>
+            <tr>
+              <td>minJavaVersion</td>
+              <td>The minimum Java version for the installer, this is
+supported as of AntInstaller 0.8beta do disable this feature remove the attribute.</td>
+              <td>1.4</td>
+            </tr>
+            <tr>
+              <td>finishButtonText</td>
+              <td>The text displayed on the install button. If not specified, the default is "Install".  This has been
+							added since Antinstaller can be used as a GUI for other Ant builds, in which case "Build" would
+							be more appropriate.</td>
+              <td>Install</td>
+            </tr>
+            <tr>
+              <td>antialiased</td>
+              <td>If this attribute is set to <code>true</code> and the LookAndFeel is <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code> or <code>jgoodies</code> the Swing GUI will render using Java 2D antialiasing for the text.  This is resource intensive and may slow the GUI down unacceptably on older PCs, but does look better.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>wide</td>
+              <td>If this attribute is set the width of the installer GUI can be configured.  The format is 
+              <code>[window-size]:[label-width]</code></td>
+              <td>600:275</td>
+            </tr>
+            <tr>
+              <td>version</td>
+              <td>Defines a version for the installer, this attribute is optional and defaults to "0.0". However, if you want to support <a href="auto.html">automatic installs</a> (ui includes text-auto or swing-auto) this can be used to indicate that a new installer is not compatible with previous properties files.  If a new installer for an application is developed that requires new properties increment the major version and old properties files will not be loaded.  Increment the minor version if the properties are compatible but additional properties have been added and must be maually entered, text-auto and swing-auto builds will be forbidden.  <br/>
+              If the new version of the installer is a compatible version with the properties file found, it will load without errors.  No checking is done to ensure that this is logical. When delivering upgraded installers you should ensure that old properties file versions are compatible if you do not increment the version and support automatic installs.</td>
+              <td>1.0.2</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="page">&lt;page&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Pages entries in the XML file represent a
+single window in the installer moved through by the user by selecting
+"Next &gt;&gt;" (or pressing enter) all pages have the following
+atributes.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td><b>type</b></td>
+              <td>The type of page one of four options, progress,
+license, splash or input.</td>
+              <td>input</td>
+            </tr>
+            <tr>
+              <td>name</td>
+              <td>A unique name for the page.</td>
+              <td>User properties</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown at the top of the page.</td>
+              <td>Install Options</td>
+            </tr>
+            <tr>
+              <td>imageResource</td>
+              <td>The image to be shown at the top of the page, overriding the defaultImageResource defined
+							in the installer element.</td>
+              <td>Install Options</td>
+            </tr>
+            <tr>
+              <td>target</td>
+              <td>An ant target that will always be run from the <code>build.xml</code>
+file. This attribute is optional see the Target input type if you wish
+to show a targets that can be selected by the user.</td>
+              <td>clean</td>
+            </tr>
+            <tr>
+              <td>overflow</td>
+              <td>Setting this to true causes the Swing GUI to allow the page to extend past the normal height and for scrollbars
+              to be shown when the page overflows.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagesplash">&lt;page
+type="splash"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Displays a graphical image page in the Swing GUI</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>splashResource</td>
+              <td>The image resource used for the splash image. The resource must be available on the classpath
+							at runtime.</td>
+              <td>/resources/large-logo-image.png</td>
+            </tr>
+            <tr>
+              <td>altText</td>
+              <td>Alternative text for the console mode</td>
+              <td>Welcome to the installer app</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagetext">&lt;page
+type="text"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Displays an HTML page in swing and a text file in text mode.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>htmlResource</td>
+              <td>The resource used for the html page. The resource must be available on the classpath at runtime. <br/>
+              The HTML support is that of the Swing JTextPane which is very basic.  Embeded images and style sheets are refereced from the classpath. The following HTML will display an image from the classpath.  <br/>
+              <code>&lt;img src="/resources/image.png"&gt;</code><br/>
+              Property values are expanded in the file if variables of the form <code>${java.user.name}</code> are found.<br/>
+              </td>
+              <td>/resources/text.html</td>
+            </tr>
+            <tr>
+              <td>textResource</td>
+              <td>Alternative text for the console mode. <br/>
+              Property values are expanded in the file if a variable of the form ${java.user.name} are found.<br/></td>
+              <td>/resources/text.text</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagelicense">&lt;page
+type="license"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Shows a single license file in a
+scrollable window to the user.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>resource</td>
+              <td>The license text file resource, must be on the
+classpath.</td>
+              <td>/resources/GPL.txt</td>
+            </tr>
+            <tr>
+              <td>usePaging</td>
+              <td>In text mode this parameter stops the scrolling of the license text at 20 lines,
+							and provides options to view the next page or skip to the end.  The default is false.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pageinput">&lt;page
+type="input"&gt;</a>
+							</th>
+            <tr>
+              <td colspan="3">A page for adding input types listed
+below. An installer can have as many input pages as desired. </td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>ifTarget</td>
+              <td>This page will be show if the named target has previously been selected.  This can be used to 
+							conditionally show installation pages when certain parts of the <code>build.xml</code> script are to be run and not
+							if they are to be omitted.</td>
+              <td>documentation</td>
+            </tr>
+            <tr>
+              <td><a name="ifproperty">ifProperty</a></td>
+              <td>This page will be shown if the property has the correct value.  This can be used to 
+		conditionally show installation pages when certain properties match
+		The format of the property can be as simple as <code>${name}=value</code> or can combine tests on multiple properties such as <code>(${name}!=value) AND (${name2}^=value2)</code>.  There must be no spaces
+		and both the property and value are case sensitive.  It is a good idea to use a <code>select</code> input type
+		for the value since free text entered by the user is unlikely to match exactly in case and whitespace or use validated
+		text fields.  
+N.B. to run tasks based on properties consider the <a href="http://ant-contrib.sourceforge.net">ant-contrib</a> packages. <br/>
+		The new syntax allows for environment variable checks such as <code>${env.DISPLAY}=:0.0</code>
+		<br/><br/>
+		<b>N.B. the old syntax <code>name=value</code> does not work any more.</b> It is <b>not</b> possible to 
+		place an = sign in a property name.<br/>
+		e.g. <code>${prop.col=back}=#0000FF</code> will break the simple parser.
+		<br/><br/>
+		The following operators are supported:
+		<ul>
+			<li> = equals. not assignment as in Java</li>
+			<li> == equals same as above for those that wish to be specific</li>
+			<li> != not equals or null</li>
+			<li> $= ends with, the $ is used from regex for end of line</li>
+			<li> ^= starts with, again ^from regular expressions</li>
+			<li> += greater than, only for numbers</li>
+			<li> -= less than, only for numbers. The installer should validate to ensure the property is a valid number
+			or exceptions will be thrown.  The rather strange -=  and += syntax is used because &gt; and &lt;
+			must be escaped to &amp;gt; and &amp;lt; in XML attributes and the legibility
+			of the configuration files would be impared.</li>
+			<li> !=null not null, the property must be specified. This is usefull for testing the existence of environment variable for example ${env.ANT_HOME}!=null.  N.B. the empty string "" also tests to null, if a property exists
+			in the config file it <b>is</b> possible for the user to set the value to null by erasing the text in
+			a text entry type</li>
+			<li> ==null is null or empty</li>
+ 		 </ul>
+		  <br/><br/>
+		  The following logical operators are supported when combining property tests:
+		  <ul>
+			  <li>AND</li>
+			  <li>OR</li>
+		  </ul>
+			If logical operators are being used, each simple test must be enclosed in parentheses.<br/>
+				It is probably a bad idea to use any character that is not a letter or number in a property name
+				because these operators may be extended in the future
+			</td>
+		  <td>${myProperty}=value23<br/>
+		  	  (${myFirstProperty}=6) OR (${mySecondProperty}+=12)
+		  </td>
+            </tr>
+            <tr>
+              <td>postDisplayTarget</td>
+              <td>Post display targets are special Ant targets run after the page has been displayed.  Certain rules apply see <a href="posttargets.html" title="post display targets">post display targets</a></td>
+              <td>antinstaller-pagename</td>
+            </tr>
+
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pageprogress">&lt;page
+type="progress"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A page for showing the user the progress
+of the installation. This page contains the "Install" Button, so all
+installers should end with a progress page. Currently it is not checked
+that an installer ends with a progress page so the creator of the <code>antinstall-config.xml</code>
+should ensure it does.</td>
+            </tr>
+            <tr>
+              <td>showTargets</td>
+              <td>When this flag is true, in the Swing GUI, a graphical representation of 
+              the targets being run and the dependent targets found is displayed.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+<br/><a name="inputtypes"></a><h3>Input Types</h3>
+Input types represent fields in which users can input values or make selections. <br/>
+The input type element is
+also used to display text to the user.  While there is no limit to the number of comments or text you can add in the
+config file, the GUI only has a limited amount of space.  Check your config with your choosen Look And Feel to ensure
+that instructions are not cropped.<br/>
+All input types accept the <code>explanatoryText</code> attribute, where multi-line comments can be added.
+The GUI has a fixed width available for the <code>displayText</code> attribute which often does not provide much space.
+Single line comments can be added with the <code>comment</code> type.<br/>
+If anyone has a serious requirement to include more text that is currently possible post an RFE and I will look into 
+tool tip popups or a scrollable text box or perhaps instructions that can launch in a help window.  This has not been added yet
+since it is much more difficult to implement in the command line UI, and as yet we have no requirement.
+<br/><br/>
+				<table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="checkbox">&lt;checkbox&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The check box input is used for boolean
+input, a check box in the gui and a true false option on the command
+line.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be true or false.</td>
+              <td>my.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Enable all security options</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the check box.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>force</td>
+              <td>Force the option selected to be the default value.
+This can be used to indicate that the option is required. For example,
+an installer could be delivered where "Enable all security options" is
+always selected.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="comment">&lt;comment&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The comment input displays text to the
+user and does not accept any type of input.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>W</td>
+            </tr>
+            <tr>
+              <td>bold</td>
+              <td>Display the comment in bold, in the GUI version.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>title</td>
+              <td>Display the comment in a larger font in the GUI or in
+capitals in the command line.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="directory">&lt;directory&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The directory input allows the user to
+select a directory.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the directory.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select an installation directory</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the directory.  Empty defaultValue is accepted as of version beta0.8 provided that create and checkExists are false.</td>
+              <td>/var/log</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the directory for windows installations.</td>
+              <td>C:\Program Files\myapp</td>
+            </tr>
+            <tr>
+              <td>create</td>
+              <td>If this is true and the directory entered does not
+exist the user will be asked if the directory should be created.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>checkExists</td>
+              <td>If true the installation will not continue unless the
+directory selected exists. The user will have to select a directory
+that does exist, create it or cancel the install. If create is true and
+the directory does not exist the user simply has to agree to have the
+directory created.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="app-root">&lt;app-root&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The directory input allows the user to
+select a directory. The existence of files is then checked during
+validation to ensure the user has selected the correct directory. This
+can be used so a user can select the installation directory of a
+previously installed application. The directory can then be validated
+against 2 known files and 2 known directories that should exist.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the directory.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select an installation directory</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the directory.</td>
+              <td>/usr/local/jakarta-tomcat-4.0.1</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the directory for windows installations.</td>
+              <td>C:\Program Files\Existing Application</td>
+            </tr>
+            <tr>
+              <td>checkFile1</td>
+              <td>The relative path of a file based on the user
+selected directory. When the installer is run this file will be checked
+to see if it exists (optional).</td>
+              <td>conf/server.xml</td>
+            </tr>
+            <tr>
+              <td>checkFile2</td>
+              <td>A second file to check (optional).</td>
+              <td>conf/server.xml</td>
+            </tr>
+            <tr>
+              <td>checkDir1</td>
+              <td>The relative path of a directory based on the user
+selected directory (optional).</td>
+              <td>webapps</td>
+            </tr>
+            <tr>
+              <td>checkDir2</td>
+              <td>A second directory to check (optional).</td>
+              <td>conf</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="file">&lt;file&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The file input allows the user to select
+a file</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the file.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select the weblogic configuration file</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the file.</td>
+              <td>/var/log</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the file when installing on windows.</td>
+              <td>C:\log</td>
+            </tr>
+            <tr>
+              <td>checkExists</td>
+              <td>If true the installation will not continue unless the
+file selected exists. The user will have to select a file that does
+exist, create the file or cancel the install. If you want to create the
+file during the install if it does not exist use Ant.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="select">&lt;select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The select input allows the user to
+select from a list of options. This will be represented as a group of
+radio buttons or a numbered list on the command line. An input type of
+select should have at least two child elements called <code>&lt;option&gt;</code> with the
+attributes <code>text</code> and <code>value</code>. The text is displayed next to the option and
+the value is the value set into the property. <br/>
+N.B. the defaultValue
+should be blank or one of the values in one of the options.  This is not checked by AntInstaller
+but is a requirement, there are no guarantees if you don't RTFM.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file. The value will be the text of one of the option value attributes.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Select your favorite colour</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the option this should match one of
+the options values.</td>
+              <td>#FF0000</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="target-select">&lt;target-select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The target-select input allows the user to
+select targets from a list of options. This will be represented as a group of
+radio buttons or a numbered list on the command line. This input type is almost identical to the select
+input type but the value as well as being recorded as a property is set as a target.<br/>
+An input type of target-select should have at least two child elements called <code>&lt;option&gt;</code> with the
+attributes <code>text</code> and <code>value</code>. The text is displayed next to the option and
+the value is the target to be run (and the value set into the property).
+N.B. the defaultValue
+should be blank or one of the values in one of the options.  This is not checked by AntInstaller at runtime
+but is a requirement, there are no guarantees if you don't RTFM.  You should use the checkConfig script to validate the config.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file. The value will be the text of one of the option value attributes and will be the target that is run.</td>
+              <td>target.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Select your favorite colour</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the option this should match one of
+the options values.</td>
+              <td>fulldocs</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="large-select">&lt;large-select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The large select has identical options to the <code>select</code> input above. 
+							Large select enables the list of options to be greater and is displayed differently.
+							In the Swing GUI the options are rendered as a drop-down list. In the text/console UI
+							the options are shown to the user 20 lines at a time.</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="target">&lt;target&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The target input shows a check box, if
+the user selects the target the Ant target will be run when the
+installation starts. The order of the targets in the list is
+significant, and the targets will be run in that order. If there is
+more than one Page with target entry types or there is a page with a
+target attribute the targets will be run in the order they appear in
+the config file.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>target</td>
+              <td>The name of the target to be run it must exist in the
+build.xml file delivered with the install.</td>
+              <td>installSource</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Do you want to install the source code.</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>true or false, determines if the check box is
+selected by default.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>force</td>
+              <td>If true the checkbox will not be editable and will be
+set to the value in the defaultValue attribute.  This can be used to indicate that installing
+this component is not optional.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>osSpecific</td>
+              <td>If the osSpecific flag is set the Operating System of the current system will
+be appended to the name of the target actually run by Ant so that different
+targets can be run according to the final deployment platform.
+This feature goes against the principles of
+building cross platform installers, but is provided so that common installer
+tasks such as creating icons and shortcuts can be run using the platform specific executables.
+</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>strict</td>
+              <td>Currently there are two modes for OS specific targets strict and not strict (lax). <br/>
+Strict target will return the target name plus the exact String in the
+System Property "os.name" this means you will have to provide targets for
+every possible OS version. See
+<a href="http://lopica.sourceforge.net/os.html">this page</a> for a list of possible values.
+There are a great many but you may not want to consider some of the options.<br/><br/>
+Lax target will return one of the following strings only
+<ul>
+	<li>"[target-name]-linux" - Linux </li>
+	<li>"[target-name]-mac" - Mac OS and Mac OS X</li>
+	<li>"[target-name]-sun" - SunOS and Solaris</li>
+	<li>"[target-name]-win" - Windows</li>
+	<li>"[target-name]-other" - any thing else</li>
+</ul> 
+so you only have to create 5 ant targets to support all the cases.  It is pretty hard
+to support windows bit with this system, if anyone needs to specifically support this and does not
+want to use the existing strict mechanism, get in touch.  JDK1.4 on Win16 boxes strikes me as
+an unlikely combination ;)
+							</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="text">&lt;text&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">An text input entry is a field into which
+the user can write any text (or no text).</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>name.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text or displayed as a default in the GUI.</td>
+              <td>${java.user.name}</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="validated">&lt;validated&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A validated text input entry is a text
+field into which the user can write any text but the installation will
+not continue unless the text entered matches a regular expression
+provided.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>server.url</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]$</td>
+            </tr>
+					</tbody>
+				</table>
+				
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="extvalidated">&lt;ext-validated&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">An externally validated text input entry is a text
+field into which the user can write any text but the installation will
+not continue unless the text entered passes a validation function.  The validation function is not part
+of AntInstaller, a fully qualified classname (that is on the classpath at runtime) is specified which AntInstaller
+executes to validate.  One instance will be created per input element which should conform to the interface
+<code>org.tp23.antinstaller.input.Validator</code>. <br/>  
+This feature is not tested but does provide flexibility in validating input, if you use this feature please
+report back you results (success or failures) to the AntInstaller project pages.  We wish to discuss
+integrating external validation into the Localization of the installers (when it happens) with 
+active users of this feature.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>server.url</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be entered.</td>
+              <td>Choose an open network port</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the external validator.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>validationClass</td>
+              <td>The class used as a Validator</td>
+              <td>com.me.val.PortOpenValidator</td>
+            </tr>
+					</tbody>
+				</table>
+				
+				
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="date">&lt;date&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A text input entry that must be a valid
+date. The dateformat string must be compatible with <code>java.text.SimpleDateformat</code>
+By default the format is english dates <code>dd/MM/yyyy</code> but can be
+changed to any valid format. If the date field is used in an installer it is not possible to enter blank dates.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the date entered by the user.</td>
+              <td>mydate.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the date to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the date format. Alternatively the String <code>TODAY</code>
+may be entered and the default value will be the time the installer is
+run.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>dateFormat</td>
+              <td>The expression used to create the DateFormat.</td>
+              <td>dd-MM-yy</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="password">&lt;password&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A password text input is identical to a
+validated text input except that the display does not echo in the Swing
+Version (If anyone knows how to prevent the console echoing please get
+in touch) This password field is VERY INSECURE so dont blame me. </td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be sent to Ant the
+password will not feature in <code>ant.install.properties</code> file,
+the value will be the text entered by the user. If the installer is in
+verbose mode the properties file will contain the property name but not
+the value entered by the user.</td>
+              <td>password.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the password to be
+entered.</td>
+              <td>Enter password</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression. This will be shown
+as an example if the user enters an invalid password.</td>
+              <td>pa55word</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[a-zA-Z_0-9]{8}$</td>
+            </tr>
+			<tr>
+				<td>textMask</td>
+              <td>When set to <code>true</code> an attempt is made to hide the password on the command line.
+							This feature is optional and has not been tested on different platforms.   
+							It is a pure Java solution using a masking thread so there 
+							is a theoretical requirement for some CPU head room to function correctly.
+							It does not work where \r is not supported for example the eclipse console.<br/><br/>
+							see SUN's proposed solution
+							<a href="http://java.sun.com/features/2002/09/pword_mask.html"
+							>http://java.sun.com/features/2002/09/pword_mask.html</a><br/>
+							see also, the embarrasing bug report on SUNs site
+							<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435"
+							>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435</a><br/>
+							see also, Ant's bug report
+							<a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687"
+							>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687</a><br/>
+							</td>
+							<td>true</td>
+						</tr>
+          </tbody>
+        </table>
+
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="password-confirm">&lt;password-confirm&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A confirm password input is identical to a
+password input except that to validate correctly a password field on the same page
+with the property name specified in the origField attribute.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>origField</td>
+              <td>There must be a password field with its property set to this value on the same page.
+</td>
+              <td>password.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the password to be
+entered.</td>
+              <td>Confirm password</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression. This will be shown
+as an example if the user enters an invalid password.</td>
+              <td>pa55word</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[a-zA-Z_0-9]{8}$</td>
+            </tr>
+						<tr>
+							<td>textMask</td>
+              <td>When set to <code>true</code> an attempt is made to hide the password on the command line.
+							This feature is optional and has not been tested on different platforms.   
+							It is a pure Java solution using a masking thread so there 
+							is a theoretical requirement for some CPU head room to function correctly.
+							It does not work where \r is not supported for example the eclipse console.<br/><br/>
+							see SUN's proposed solution
+							<a href="http://java.sun.com/features/2002/09/pword_mask.html"
+							>http://java.sun.com/features/2002/09/pword_mask.html</a><br/>
+							see also, the embarrasing bug report on SUNs site
+							<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435"
+							>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435</a><br/>
+							see also, Ant's bug report
+							<a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687"
+							>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687</a><br/>
+							</td>
+							<td>true</td>
+						</tr>
+          </tbody>
+        </table>
+			<br/><br/>
+			<a name="hiddentypes"></a><h3>Hidden Elements</h3>
+			Hidden elements are those elements of pages which are not displayed to the user,
+			but which can be used to set properties and apply conditional logic.<br/>
+        <br/>
+			<table class="manual" cellspacing="0">
+	  <tbody>
+		<tr class="tpheader">
+		  <th class="manual" colspan="3"><a name="conditional">&lt;conditional&gt;</a></th>
+		</tr>
+		<tr>
+		  <td colspan="3">The conditional element allows the conditional execution of a nested element.
+			  Currently, only &lt;hidden&gt; elements may be nested within a conditional block.
+		  This can be useful for initialising properties or default values based on other user selections</td>
+		</tr>
+		<tr class="tpheader">
+		  <th class="manual2">Attribute</th>
+		  <th class="manual2">Description</th>
+		  <th class="manual2">Example</th>
+		</tr>
+		<tr>
+		  <td>ifProperty</td>
+		  <td>The nested <code>hidden</code> element(s) will be evaluated if the property has the correct value.
+			  This can be used to
+		conditionally set properties when certain other properties match specific values.
+		The format of the property can be as simple as <code>${name}=value</code> or can combine tests on multiple properties such as <code>(${name}!=value) AND (${name2}^=value2)</code>.  There must be no spaces
+		and both the property and value are case sensitive. See the <a href="#ifproperty">ifProperty description</a>
+			  for details of the comarisons supported.</td>
+		  <td>(${prop1}=1) OR (${prop2}=${prop3})</td>
+		</tr>
+		</table>
+        <br/>
+			<table class="manual" cellspacing="0">
+		  <tbody>
+			<tr class="tpheader">
+			  <th class="manual" colspan="3"><a name="hidden">&lt;hidden&gt;</a></th>
+			</tr>
+			<tr>
+			  <td colspan="3">The hidden element allows a property to be set by virtue of the page being displayed or,
+				  when nested within a <code>conditional</code> block, if the condition is true.
+			  This can be useful for initialising properties or default values based on other user selections.</td>
+			</tr>
+			<tr class="tpheader">
+			  <th class="manual2">Attribute</th>
+			  <th class="manual2">Description</th>
+			  <th class="manual2">Example</th>
+			</tr>
+			<tr>
+			  <td>property</td>
+			  <td>The name of the property to be set in the <code>ant.install.properties</code></td>
+			  <td>my.property</td>
+			</tr>
+			<tr>
+			  <td>value</td>
+			  <td>The value to which the property will be set</td>
+			  <td>myvalue</td>
+			</tr>
+			</table>
+        <br/>
+To edit the <code>antinstall-config.xml</code> file with the above properties a good XML editor is
+recommended.  A DTD exists to aid debugging this file.  Add the following doctype to enable validation
+<code>
+&lt;!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd"&gt;
+</code>
+If you find errors in the DTD please <a href="http://sourceforge.net/tracker/?group_id=123466">report them</a>.<br/>
+        <br/><a name="configbuild"></a>
+			      <h3><code>build.xml</code></h3>
+
+Once the <code>antinstall-config.xml</code> file is created you need
+to create an Ant <code>build.xml</code> file with targets that match
+the targets available in the install config. The <code>build.xml</code> file is out of scope of this document. The Ant documentation is avaliable at the following URL. <br/>
+<a href="http://antinstaller.sourceforge.net/manual/manual/index.html" title="Ant manual">http://antinstaller.sourceforge.net/manual/manual/index.html</a><br/>
+There are many tools to help you create these files, for example, eclipse has built in support.<br/><br/>
+
+There are some recomendations for the <code>build.xml</code> file to be used inside an installer.
+<ul>
+	<li>It is not recommended to use <code>depends</code> attributes for targets, although they do work in most situations.  The progress page graphic sometimes produces confusing results, for this reason it can be disabled.  <code>depends</code> targets may be called more often than expected since all targets specified in the <code>antinstall-config.xml</code> file and selected by the user are called explicitly. For the same reason be carful with the <code>if</code> attribute in target elements.</li>
+	<li>Classpath modifications are irrelevant if all classes are packaged in a self-extracting or non-extracting Jar.  Any task dependencies should be packaged with into the Jar with the <code>zipgroupfileset</code> fileset type.
+	<br/>for example <br/><code>&lt;zipgroupfileset dir="tasklibs" includes="*.jar"/&gt;</code></li>
+	<li>The <code>basedir</code> attribute, if specifed in the project element, is ignored and set by AntInstaller.  It is included in many AntInstaller examples since most tools expect this attribute to be present.</li>
+	<li>The <code>${ant.home}</code> property should not be relied upon, The computer on which the installer is being run may not have Ant installed.</li>
+	<li>Ant dependencies, for example Jars for optional tasks, should be explicitly added to the installer jar with a <code>zipgroupfileset</code>.  </li>
+	<li>Some other default Ant properties that relate to a presumed Ant configuration are not reliable due to the way Ant is launched in AntInstaller, for example <code>${ant.file}</code> </li>
+	<li>Some complex output redirections do not work as expected since output is already redirected to the log files.</li>
+</ul>
+
+        <br/><a name="scripts"></a>
+			      <h3><code>install.sh</code> Start scripts</h3>
+It is recommended to run create installers as <a href="#extractor">self extracting jars</a>, but it is
+possible to run the installer from scripts as a normal Java application.
+Create a new directory and prepare the files as you would
+for a normal Ant build. You can include the <code>install.sh</code>
+and <code>install.cmd</code> files from the demo app to launch the
+installer. These scripts can be launched in a GUI by double clicking on
+them, but they will require editing to set your classpath and resources correctly.<br/>
+The main class (<code><a href="java2html/antinstaller/org/tp23/antinstaller/runtime/ExecInstall.java.html">org.tp23.antinstaller.runtime.ExecInstall</a></code>) that starts the installer takes two parameters 
+on the command line which should be set in the start script.<br/>
+The first is the default
+GUI mode (either swing or text).  <br/>
+The second is the Ant basedir and typically it should be just "." the current directory.
+This directory will be the basedir of the ant script no matter what it says in the <code>build.xml</code> file.
+        <br/>
+The Ant runner currently passes the directory called <code>antlib</code>
+in which
+you can add any Ant optional jars to get them to auto load. You
+can also load them on classpath of the install scripts.<br/>
+        <br/><a name="extractor"></a>
+			      <h3>Self Extracting Jars</h3>
+    There is a mechanism to create a self extracting Jar where the entire installer,
+    all requried Java code, and the resources to install can be packaged into a single Jar.
+	The Jar is launched by double clicking on it (if the <code>.jar</code> extension is registered properly by Java) or by calling
+	the command <code>java -jar [jar_name].jar</code>.<br/>
+	In windows if the extension <code>.jar</code> has been re-registered (e.g. to open with winzip) right clicking on the jar
+	and selecting <code>Open With</code> then <code>javaw</code> will also run the installer.<br/>
+	Packaging a self extracting jar can be achieved with Ant.
+	See <a href="installertask.html">Installer Ant Task</a> to automate creation of SelfExtracting jars. <br/><br/>
+
+	When the isntaller is run all the contents of the jar will be extracted to a temporary
+	directory on the users machine.  This temporary directoy is the base directory for the Ant 
+	build when run.
+	The build.xml file should not include any relative file references.  The <code>${basedir}</code> property is required since
+	the file is excracted a new empty temporary directory that is not know when 
+	the <code>build.xml</code> file is being written.  This directory will be the value of <code>${basedir}</code>
+	when the installer is run. If packagine the self extractor manually without using the AntInstaller task the main class should be set in the manifest.  <br/>
+	Here is an example <code>MANIFEST.MF</code> file.<br/>
+	<pre>
+Manifest-Version: 1.0 
+Main-Class: <a href="java2html/antinstaller/org/tp23/antinstaller/selfextract/SelfExtractor.java.html">org.tp23.antinstaller.selfextract.SelfExtractor</a>
+Look-And-Feel: org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel
+	</pre>
+	The Look And Feel is also required in the <code>MANIFEST.MF</code> file since the autoextract code shows a progress bar using Swing.
+	The value should be the same Look And Feel used in the main Swing GUI specified in the installer element of <code>antinstall-config.xml</code>.  If not, ensure the main Look And Feel fully supports updating the UI, not LAFs all do.  
+	<br/>
+	<br/>If a resource is included called <code>/resources/extract-image.png</code> it will be displayed during the 
+	extraction process.  You can remove the image from the classpath if you don't like it or change it to any other
+	png image of the same size.<br/>
+	<img src="images/extract-image-example.png" alt="example extract image"/>
+ <br/>
+	<br/>
+        <br/><a name="non-extractor"></a>
+			      <h3>Non Extracting Jars</h3>
+	As of version 0.7.2 a feature has been added to load the installer without having to extract any files until the 
+	Ant build is run.  This has the advantage of not having to unjar AntInstaller itself or its dependencies such as Ant and the look and feel.
+	See <a href="installertask.html">Installer Ant Task</a> to automate creation of NonExtracting jars. <br/><br/>
+	If you are manually packaging the Jar in order to specify that the NonExtractor should be used the Jar <code>META-INF/MANIFEST.MF</code> file should specify
+	<code><a href="java2html/antinstaller/org/tp23/antinstaller/selfextract/NonExtractor.java.html">org.tp23.antinstaller.selfextract.NonExtractor</a></code>.  Since the NonExtractor does not need to show 
+	the progress bar for the extraction no look and feel is required in the manifest.
+	An example <code>META-INF/MANIFEST.MF</code>
+	<pre>
+Manifest-Version: 1.0
+Main-Class: <a href="java2html/antinstaller/org/tp23/antinstaller/selfextract/NonExtractor.java.html">org.tp23.antinstaller.selfextract.NonExtractor</a>
+	</pre>
+	The NonExctractor still creates temporary space on the deployment system and still sets the <code>${basedir}</code>
+	to this space.
+	The <code>build.xml</code> file and the <code>antinstall-config.xml</code> are read from inside the Jar and all 
+	properties are passed directly 
+	to Ant.  The properties file is still readable for debuging installers. In order to access and extract resources inside the Jar the unzip or unjar Ant tasks should be used.  In order to identify the Jar file in teh build.xml file a new property has been added <code>${antinstaller.jar}</code>.
+	The following example
+	extracts a file called <code>myresource.zip</code> into the temporary directory (from there it could be unzipped 
+	to the deployment directory)
+	<pre>
+&lt;unzip src="${antinstaller.jar}" dest="${basedir}"&gt;
+	&lt;patternset&gt;
+		&lt;include name="myresource.zip"/&gt;
+	&lt;/patternset&gt;
+&lt;/unzip&gt;</pre>
+	A more likely example is to unzip all the files in your application to the installation directory selected by the user.
+	<pre>
+&lt;unzip src="${antinstaller.jar}" dest="${my.installation.dir}"&gt;
+	&lt;patternset&gt;
+		&lt;include name="bin/*"/&gt;
+		&lt;include name="classes/*"/&gt;
+		&lt;include name="help/*"/&gt;
+		&lt;include name="doc/*"/&gt;
+	&lt;/patternset&gt;
+&lt;/unzip&gt;</pre>
+	Remember all the classes for AntInstaller need to be in the root of the Jar for the JVM to find them when the 
+	Jar is first loaded so it is probably best to put all the deployable resources in a subdirectory inside the Jar 
+	This will prevent name clashes with the Jars contents which are in the <code>org</code>, <code>META-INF</code> and <code>resources</code> directories. <br/> 
+	
+	<a name="refs"></a>
+			<h3>Dynamic References</h3>
+	As of version beta 0.5 in certain circumstances the default values of input fields can be based on existing properties.  To reference collected input values use the Ant property syntax <code>${property.reference}</code>.
+	References can be mixed with normal text as in Ant. <br/>
+	 For example, <br/>
+<pre>
+&lt;text
+  property="new.property"
+  displayText="Enter the installation directory"
+  defaulValue="/usr/local/${project.short.name}"
+  defaultValueWin="C:\Program Files\${project.short.name}"
+  create="true"
+/&gt;
+</pre>
+		As of version beta 0.7 the default values of input fields can be based on environment variables.  To reference collected input values use the normal Ant syntax <code>${env.ENVIRONMENT_VARIABLE}</code>.<br/>
+	  The prefix is always <code>env.</code> since this is not set with an Ant <code>&lt;property&gt;</code> task, it is part of the AntInstaller runtime.  The results will be identical to <code>&lt;property environment="env."&gt;</code> since AntInstaller make direct calls to the Ant APIs.<br/>
+		The environment is NOT added by default to the build.xml or the installer when Ant runs, if you need the environment
+		in the <code>build.xml</code> file call it in the usual way
+		Also the java system properties are included prefixed by "java.". For example, <code>${java.user.name}</code> returns the user currently running the installer.
+<br/><br/>
+			Dynamic references can use nested property values. For example, if the value of <code>${target.server}</code> is <code>tomcat</code>,
+			the following syntax can be used to set the default value of an input property to be the value of <code>${tomcat.default.http.port}</code><br/>
+<pre>
+&lt;validated
+	property="http.port"
+	displayText="HTTP port:"
+	defaultValue="${${target.server}.default.http.port}"
+	regex="^[0-9]{2,5}$"
+/&gt;
+</pre>
+<br/>
+	Dynamic references have the following limitations<br/>
+	<br/>
+	<ul>
+		<li>Dynamic references can only be added to <code>defaultValue</code>,  <code>defaultValueWin</code>, comment <code>displayText</code>, comment <code>explanatoryText</code> and text or html in a <a href="#pagetext" title="Text pages">text page</a> (currently)</li>
+		<li>The properties must have been set in previous pages not in the current page (or future pages)</li>
+		<li>Unlike Ant if the property has not been evaluated a blank string "" will be inserted instead of the reference.
+		    This means accidents like <code>/usr/local/${non.prop}</code> should not happen but will use <code>/usr/local</code>, generally neither case
+			is desired, so as with Ant check the effects of absent properties before releasing your installer.  Alternativly use a validated text field and specify a minimum length in the regular expression to ensure that blank values do notget accepted.</li>
+		<li>Once a user has edited a field the evaluation stops.<br/>
+		For example, on the first page <code>${proj.short.name}</code> is set
+		and on a subsequent page <code>${proj.short.name}/lib</code> and <code>${proj.short.name}/classes</code>. If the user changes one field to
+		<code>[value of ${proj.short.name}]/myclasses</code> and then goes back and changes the first page when the subsequent pages are shown the value will <b>not</b> update to <code>[new value of ${proj.short.name}]/myclasses</code>.  This only applies to the Swing GUI since in the command line the user can not go back.</li>
+	</ul>
+	
+ <br/>
+	<br/>
+	<a name="pagedisplay"></a>
+	<h3>Page Displaying</h3>
+	It is a common requirement to have a few options at the start of the installer and only show certain other pages if the user selected one of the initial options.  For example,  an option to install the source code, if the user is going to install the source code show a page with options to decide where to put the code, the documents and perhaps a checkbox if icons for the documents should be created.  This page should not be shown to people who are not installing the source code. Two mechanism are available to achieve this. 
+	<br/><br/>
+	The first mechanism is to use a <code>target</code> input on a previous page and then add <code>ifTarget</code> attributes to the subsequent page elements.
+	
+	The second mechanism uses the <code>ifProperty</code> attribute to conditionally show pages based on the existence or value of properties. Since both the System Properties from Java and the users environment variables are available as properties it is now possible to base pages on the existence of certain properties for example if CATALINA_HOME is set it is a safe bet the user already has tomcat installed.  Also if ProgramFiles is present it is probably a windows system.  N.B.  for more a more accurate way to run tasks based on the operating system of the user the target tag has been enhanced to run osSpecific targets.
+	
+	See the ifProperty attribute of the <a href="#pageinput">InputPage</a> type. 
+	
+	<br/><br/>
+	<a href="index.html"><img class="but" src="images/ant-install-small.png" alt="home"></a>
+<!-- Do not edit the following line  used by manual-print.jsp -->
+		<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/miniinstaller.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/miniinstaller.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/miniinstaller.html	(revision 14989)
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>MiniInstaller</h2>
+The mini installer is the selfextracting jar component of AntInstaller with a few modifications<br/>
+
+ It simply extracts all the files in the Jar to a user selected directory.
+ It works on the command line or with a GUI if possible.<br/>
+ It is available as a separate download.
+ 
+<h3>Usage</h3>
+Simply place <code>org.tp23.mini.MiniInstaller.class</code> and 
+ <code>org.tp23.mini.ProgressIndicator.class</code>
+ in the Jar and add a <code>/META-INF/MANIFEST.mf</code> 
+ with the Main-Class attribute set to <code>org.tp23.mini.MiniInstaller</code>. 
+ <br/>
+ If the manifest includes an attribute <code>Overwrite-Files</code> with any value
+ the installer will overwrite existing files.<br/><br/>
+
+ <h3>LookAndFeel</h3> 
+ If the manifest can include an attribute <code>Look-And-Feel</code> with a value
+ that specifies a look and feel on the claspath that look and feel will be used.<br/>
+ As with AntInstaller a modified verison of the JGoodies look and feel is included.
+ This is cut down to 150K (after compression) since only the file chooser and 
+ JOptionPane are used.
+ If it is still too much just don't include the package <code>org.tp23.jgoodies</code> in the installer
+ and the default LookAndFeel will be used.
+ <br/><br/>
+ 
+ <h3>Extending MiniInstaller</h3>
+  <p>A Hook class can be implemented in the default package that must implement
+ this imaginary interface.
+ <pre>
+interface Hook{
+	public int exec(MiniInstaller installer, boolean graphicsEnv);
+}
+<pre>
+ The interface is <i>imaginary</i> since it does not exist and is not required on the classpath
+ .Reflection is used to find the method.
+ The Hook should never throw exceptions.   <br/>
+ <code>MiniInstaller.isGraphicsEnv()</code> can be used to determine if there is a graphics environment.<br/>
+ <code>MiniInstaller.printXorTextWarning(String)</code> can be used to print a message.<br/>
+ <code>MiniInstaller.getArchiveFile()</code> returns a file handle on the Jar being extracted.<br/>
+ All classes in the package <code>org.tp23</code> including ProgressIndicator,MiniInstaller,Hook and the image
+ resources/extract-image.png are not extracted.<br/><br/>
+ 
+ If you add other classes to Help your Hook class they should be added to the
+ package <code>org.skip</code> and they will not be extracted.
+
+
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/posttargets.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/posttargets.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/posttargets.html	(revision 14989)
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Post Display Targets</h2>
+			The page elements now supports an additional attribute postDisplayTarget which specifies a target to be run during the build, after the page has been successfully rendered.  The target should be prefixed <code>antinstaller-</code> to identify it as a different target type in the <code>build.xml</code>.  These targets are run in a different context to the target run at the end of the build.  Messages are swallowed and there are no input handlers or log files.<br/><br/>
+			
+			<h2>Custom Tasks</h2>
+			In order to hook into the installer custom Ant tasks have been defined into the project that can be used only during the postDisplayTargets.<br/><br/>
+			
+			<ul>
+				<li><b>antinstaller-log</b> - writes its <code>message</code> attribute to the <code>ant.install.log</code></li>
+				<li><b>antinstaller-message</b> - generates a popup box using its <code>message</code> attribute in swing and writes a text message in the text ui.</li>
+				<li><b>antinstaller-property</b> - takes either two attributes <code>name</code> and <code>value</code> that set the named value in the properties used in the installer and eventually in the Ant build.  Can also take a single attribute <code>resource</code> to load a properties file from the classpath.</li>
+			</ul>
+			
+			These tasks will not work in the normal Ant build, if you try they will throw NullPointerExceptions.
+			
+			antinstaller- targets should there for not be called or used as depends targets for targets that are run during the main build.
+			
+			Exceptions in the postDisplayTarget are reported in the <code>ant.install.log</code> for debugging if debug is set to true in the installer element.
+			
+			The antinstaller.jar property is available for NonExtractor types to reference files in the installer jar.
+			N.B. For anyone creating references in the Ant build with id attributes the prefix <code>antinstaller.internal.</code> should be avoided.
+			 
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/potentialuses.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/potentialuses.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/potentialuses.html	(revision 14989)
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+            <h2>Potential Uses</h2>
+			
+			AntInstall is clearly designed for creating installers with Ant, but due to the flexibility of Ant it can be used in other situations too.  
+			<br/><br/>
+			<b>Scripting updates</b><br/>
+			If you wish to script changes to a system, AntInstall could be used to provide a GUI so that users can run the script, select the location of thier intallation, enter validated text options, and then let Ant perform changes to the files in the location selected.
+			
+			<br/><br/>
+			<b>Instant GUI</b><br/>
+			AntInstall can be used to quickly generate a GUI app for arbitary Java process that requires some user input prior to running.  Create an antinstall-config.xml file write a small ant script, and potentially for more complex applications write some Java and add in the Ant script a <code>&lt;java&gt;</code> tag to run your code.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/quickstart.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/quickstart.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/quickstart.html	(revision 14989)
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+            <h2>Quick Start</h2>
+			A quick start demo application is provided for those who don't like reading documentation <img src="images/smiley.png" align="top" alt="smiley"/> <br/><br/>
+			
+			The example application is in the demo directory and installs a "hello world" application to a user selected directory. Look at the <code>antinstall-config.xml</code> file to see how the installer UI is configured and the <code>build.xml</code> file should be familiar to users of Ant.   <br/><br/>
+			
+			Run the installer with the start script and look at the <code>ant.install.properties</code> file to see how the properties have been collected from the user and look at the <code>ant.install.log</code> to see the results of the install. N.B. passwords do not appear in the properties file but are passed to Ant at runtime. If the properties cannot be written to the curent directory it will silently be ommited this is to facilitate installing from read-only media.  To view the properties file for debug purposes ensure you have write permissions to the current directory.  <br/><br/>
+			
+			You should then look at the <code>build-demo.xml</code> file to see how to create a self-extracting jar.<br/><br/>
+
+			N.B. You could build the self extracting jar for your installer with any jar tool but using Ant is highly recommended.  There is an Ant task to create your installer jar called
+			<a href="installertask.html" title="installer Ant task" id="installer-task">&lt;installer&gt;</a>.
+			<br/><br/>
+			There are three methods for running AntInstaller, the demo uses the SelfExtractor.
+			<ol>
+				<li><a href="manual.html#extractor" title="SelfExtractor">SelfExtractor</a> - a single Jar file that is extracted into a temporary directory before the UI is shown.</li>
+				<li><a href="manual.html#non-extractor" title="NonExtractor">NonExtractor</a> - a single Jar file which runs the UI, during the Ant phase resoureces can be extracted from the Jar with the unjar Ant task.</li>
+				<li><a href="manual.html#scripts" title="Scripted Installs">Scripted Installs</a> - a directory structure is delivered, for example a CD, the installer is launched with a script.</li>
+			</ol>
+			<br/>
+			
+			<h2>Order of events</h2>
+			AntInstall takes the following steps to run an install.
+			<ul>
+				<li>If installing from the self-extracting jar,  the first thing is to extract the whole Jar to a temporary directory.  The NonExtractor mode runs straight from the Jar leaving extracting resources to the Ant stage.</li>
+				<li>AntInstaller then checks to see if graphical user interface can be run or if it should use the text/console UI</li>
+				<li>Either the Swing GUI or text UI is launched, the user fills in the required properties and/or selects from the options.  Properties will be collected and a list of Ant targets to run will be made.</li>
+				<li>AntInstaller writes out the properties selected in file in the current directory (or the temporary directory if loading from the self extracting jar)</li>
+				<li>Ant is launched and looks for the build.xml file. The properties are passed to Ant.  </li>
+				<li>The Ant targets selected are then run in order, potentially re-running tasks if you have depends attributes in the build.xml script. (not recommended)</li>
+				<li>The Progress page allows users in the GUI to view or ignore the Ant output. The text console will have all the ant output shown.</li>
+				<li>Assuming no exceptions, the installer can then be exited.</li>
+			</ul>
+		<a name="wizard"></a>
+		<h2>Project Wizard</h2>
+		There is a wizard to help generate the files for your installer.
+		The tool assumes you have a standard Java project structure with a root directory for your projects and a base directory for each project.  For example, if you use Eclipse the projects root directory is your workspace and the project directory would be the module name in CVS.  The directory structure is not imposed but it sets some defaults.<br/><br/>
+		
+		<b>Usage</b><br/>
+		Run the wizard script and enter the projects root (workspace) and short name which is the name of the subdirectory under projects root where the resources for the project exist.<br/><br/>
+		<img src="images/wizard/wizard_main.png" alt="Main directories window" width="472" height="400"/><br/><br/>
+		
+		If you don't have a specific license for your project leave the default.<br/><br/>
+		
+		Click next, and select the components for the installer.  For each box checked you will be asked for a directory.<br/><br/>
+		<img src="images/wizard/wizard_select.png" alt="Select components window" width="472" height="400"/><br/><br/>
+
+		When you have selected the directories in the subsequent pages, click the Create Project button and the wizard creates the files listed below.<br/><br/>
+		<img src="images/wizard/wizard_run.png" alt="Run wizard window" width="472" height="400"/><br/><br/>
+
+		<ul>
+			<li><b>antinstall-config.xml</b> - basic configuration for the UI</li>
+			<li><b>build.xml</b> - the build file to be run during the installation</li>
+			<li><b>create-installer.xml</b> - an Ant build script to build the installer</li>
+			<li><b>[Project short name]-installer.jar</b> - the installer jar (if you selected the create installer box)</li>
+			<li><b>build-self-extractor.sh</b> - linux build script in case you dont have Ant installed (nothing complex if you need to convert this to windows)</li>
+		</ul>
+		It is not expected that the installer created by this wizard will be the installer of your dreams
+		<img src="images/smiley.png" align="top" alt="smiley"/><br/>
+		Presumably you chose AntInstaller for its infinite flexibility, so now you customise and configure the installer to meet your needs.<br/><br/>
+		
+		The wizard gives you a starting point.  From here you will probably want to copy sections of  <code>create-installer.xml</code> into your own Ant build, add user properties and targets to <code>antinstall-config.xml</code> and develop the <code>build.xml</code> that is run during the install.<br/><br/>
+		
+		For a detailed guide to the features of AntInstaller the <a href="manual.html#config">manual</a> as a reference for the <code>antinstall-config.xml</code> file and the <a href="manual/manual/index.html">Ant documentation</a> for the <code>build.xml</code> file.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/roadmap.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/roadmap.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/roadmap.html	(revision 14989)
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Road Map</h2>
+
+			Please add any other enhancements you would like to see to the sourceforge request for enhancements page.
+			<a href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a>
+			        <br/><br/>
+			<b>Console input</b>       <br/>
+			Indicate that ctrl + C can be used to exit       <br/>
+			Facility to type help for AntInstaller instructions       <br/>
+			Feedback of selection       <br/>
+			Better ACSII art       <br/>
+			JEdit Plugin       <br/>
+       <br/>
+			<b>GUI interface</b>       <br/>
+			"TV" layout, side banners and more "modern" look       <br/>
+			Update to latest JGoodies       <br/>
+			Apache licensed icon packs       <br/>
+			
+			<br/>
+      <b>Other enhancements</b>   <br/>
+			Support for JDK1.3       <br/>
+			Extend the validator to check
+			<ul>
+				<li>the targets entered exist in the build.xml</li>
+				<li>ifTarget and ifProperty expression validation</li>
+				<li>referenced resources are available in the Jar</li>
+			</ul>
+			More translations<br/>
+			Publish GUI translation tool<br/>
+			Publis site rendering tool and subcomponents<br/>
+			Nightly builds<br/>
+			
+			<br/><br/>
+			If any of the above enhancements are important for your project, get in touch to raise the priority.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/userusage.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/userusage.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/userusage.html	(revision 14989)
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                                 <h2>User usage</h2>
+From a user perspective AntInstall is similar to many other installers.
+Start the installer, click OK to the licenses. The user is presented
+with screens in which to enter text or select from the available
+options. <br>
+      <br>
+To use Antinstaller you must have Java. It is possible that the
+installer may be repackaged with Java but generally AntInstaller will assume
+Java is installed. You must also have the JAVA_HOME environment
+variable set to install from a script. <br>
+      <br>
+      <h3>Script Installs</h3>
+			<h4>Unix</h4>
+Un pack the gz.tar file to a temporary directory and run the <code>install.sh</code>
+script. If you have X configured and available you will be shown a
+window with installation instructions. If you do not have X and are
+working on the commandline, installation instructions will be presented
+on the console.
+      <h4>Windows</h4>
+Unzip the installation file and double click on the <code>install.cmd</code>
+(install) file, follow the instructions onscreen
+			<br>
+			<br>
+      <h3>Jar Installs</h3>
+			<h4>Unix</h4>
+If the installer is delivered as a single file with the extension <code>.jar</code> it should be possible to run the installer by double clicking on the file.  If your system has reconfigured the <code>.jar</code> type run the installer with the following
+command<br>
+<code>&gt; java -jar [installer_name].jar</code><br>
+
+      <h4>Windows</h4>
+If installing an application with a single Jar file you should be able to just double click on the file in Explorer.  
+If you have  registered additional applications to opens Jars, right moust click and select "open with" "javaw".
+			<h3>Re-Installing</h3>
+For normal applications, or situations where Ant is not installed,
+re-running the installer is a case of repeating the instructions
+above and entering the values again. <br>
+<br>
+If you are using AntInstaller for server installations or as a front
+end for a build process, you may it may be usefull to repeat an
+installation without entering the values again.  Ensure the installer is installed with the 
+debug flag set to true and use the scripted install.
+If you have Ant installed you can navigate
+to the root directory of the install and just run Ant. Ant will pick up
+the <code>build.xml</code> file and the <code>ant.install.properties</code>
+that were used last time the installer was run. <br>
+There are three things to bear in mind. <br>
+Firstly, passwords are not stored 
+in the properties file
+so you will have to edit the file and set the passwords in plain text
+(and take responibility for security of the file). <br>
+Secondly you should
+ensure that you run the same targets as were run last time the
+installer was run this can be done by appending the targets to the ant
+command when running from the command line. <br>
+Finally, when
+creating the <code>build.xml</code> should ensure that the installer does not break
+itself by deleting files at the end of a successfull install.
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/validationofconfig.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/validationofconfig.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/validationofconfig.html	(revision 14989)
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Validation of configuration</h2>
+			A tool exists to help validate the configuration file created.  A script called <code>checkConfig.sh</code> is included to run the tool, or it can be run in the <a href="installertask.html" title="AntInstaller Ant task">ant task</a>.  The tool validates the XML, checks that the input types have the required values an dperforms some validation on other attributes of the configuration file.<br/><br/>
+			
+			During validation critical errors will stop the build, but there are also warnings printed that should be considered.<br/><br/>
+			
+			To use the validation tool run the script on the command line and check any error messages.  The demo app comes with a slightly modified script because the classpath is different, it is not complicated to edit the script for your own projects.
+			
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.bak/wanted.html
===================================================================
--- /release-kits/shared/ant-installer/web/.bak/wanted.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.bak/wanted.html	(revision 14989)
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Wanted</h2>
+			
+			There is more to a project than a bunch of code, this is a list of the top of my head of help that would be appreciated.<br/><br/>
+<ul>
+<li>Feedback on how well it works and how well it suits your needs.</li>
+<li>Plugins for common tools.</li>
+<li>.exe setups for windows users, preferable that can be generated with Ant.</li>
+<li>Embeded Java runtimes + help on licensing restrictions.</li>
+<li>Background designs for specific LookAndFeels,  it would be nice to replace the plain background with subtle low contrast images or design.</li>
+<li>Free (Apache Licensed) banner images to include with the download.</li>
+<li>Advice with the GUI design. Please not just flames or tips from the opinionated, but advice from any one who has studied design academically or is a long time pro would be appreciated.</li>
+<li>JUnit tests. (well it can't hurt to ask!)</li>
+<li>Internationalisation for other foreign languages.</li>
+<li>Examples of real installer to use as compatibility tests for new versions.</li>
+</ul>
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/.classes/antinstall_0002dconfig_0002dexample.java
===================================================================
--- /release-kits/shared/ant-installer/web/.classes/antinstall_0002dconfig_0002dexample.java	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.classes/antinstall_0002dconfig_0002dexample.java	(revision 14989)
@@ -0,0 +1,212 @@
+import javax.servlet.jsp.*;
+import javax.servlet.jsp.tagext.*;
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.util.Vector;
+import org.tp23.jasper.runtime.*;
+import java.beans.*;
+import org.tp23.jasper.*;
+import org.tp23.jsp.*;
+import java.io.*;
+import java.util.*;
+
+
+public class antinstall_0002dconfig_0002dexample extends ObjectJspBase {
+
+    // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/antinstall-config-example.jsp";from=(73,3);to=(193,0)]
+        
+        private String decorateXml(StringBuffer file){
+        	boolean inString = false;
+        	boolean inElement = false;
+        	boolean inRef = false;
+        	StringBuffer sb = new StringBuffer();
+        	StringBuffer element = new StringBuffer();
+        	StringBuffer reference = new StringBuffer();
+        	int elemStart = -1;
+        	for (int i = 0; i < file.length(); i++){
+        		char c = file.charAt(i);
+        		switch(c){
+        			case '$' : {
+        				if(file.charAt(i + 1) == '{'){
+        					inRef = true;
+        					sb.append("<a href=\"manual.html#refs\" title=\"\" class=\"reference\">$");
+        				}
+        				else {
+        					sb.append(c);
+        				}
+        				break;
+        			}
+        			case '}' : {
+        				if(inRef){
+        					inRef = false;
+        					sb.append("}</a>");
+        				}
+        				else {
+        					sb.append(c);
+        				}
+        				break;
+        			}
+        			case '<' : {
+        				inElement = true;
+        				elemStart = i;
+        				sb.append("<span class=\"bracket\">&lt;</span>");
+        				break;
+        			}
+        			case '>' : {
+        				if(inElement){
+        					sb.append(createLink(element.toString()));
+        					element = new StringBuffer();
+        					inElement = false;
+        				}
+        				sb.append("<span class=\"bracket\">&gt;</span>");
+        				break;
+        			}
+        			case ' ' : {
+        				if(inElement){
+        					sb.append(createLink(element.toString()));
+        					element = new StringBuffer();
+        					inElement = false;
+        				}
+        				sb.append(' ');
+        				break;
+        			}
+        			case '\t' : {
+        				if(inElement){
+        					sb.append(createLink(element.toString()));
+        					element = new StringBuffer();
+        					inElement = false;
+        				}
+        				sb.append("&nbsp;&nbsp;&nbsp;&nbsp;");
+        				break;
+        			}
+        			case '\"' : {
+        				if(!inString) {
+        					sb.append("<span class=\"string\">\"");
+        				}
+        				else {
+        					sb.append("\"</span>");
+        				}
+        				inString = !inString;
+        				break;
+        			}
+        			case '&' : {
+        				sb.append("&amp;");
+        				break;
+        			}
+        			case '\n' : {
+        				if(inElement) {
+        					sb.append(createLink(element.toString()));
+        					element = new StringBuffer();
+        					inElement = false;
+        				}
+        				sb.append("<br/>");
+        				break;
+        			}
+        			default : {
+        				if(inElement) {
+        					element.append(c);
+        				}
+        				else {
+        					sb.append(c);
+        				}
+        				break;
+        			}
+        		}
+        	}
+        	return sb.toString();
+        }
+        
+        private String createLink(String element){
+        	if(element.startsWith("/")) {
+        		return "<span class=\"element\">" + element + "</span>";
+        	}
+        	
+        	if("?xml".equals(element.trim())){
+        		return "<span class=\"element\">" + element + "</span>";
+        	}
+        	if("!DOCTYPE".equals(element.trim())){
+        		return "<span class=\"element\">" + element + "</span>";
+        	}
+        	return "<a href=\"manual.html#" + 
+        	element.trim() + 
+        	"\" title=\"\" class=\"element\">" + 
+        	element.trim() + 
+        	"</a>" + 
+        	element.substring(element.trim().length());
+        }
+    // end
+
+    static {
+    }
+    public antinstall_0002dconfig_0002dexample( ) {
+    }
+
+    private static boolean _jspx_inited = false;
+
+    public final void _jspx_init() throws JasperException {
+    }
+
+    public void _jspService(final Destination destination)
+        throws IOException, JspEngineException {
+
+        ObjectJspFactory _jspxFactory = null;
+        ObjectPageContext pageContext = null;
+        Session session = null;
+        ObjectContainerContext application = null;
+        ObjectConfig config = null;
+        ObjectJspWriter out = null;
+        Object page = this;
+        String  _value = null;
+        try {
+
+            if (_jspx_inited == false) {
+                _jspx_init();
+                _jspx_inited = true;
+            }
+            _jspxFactory = destination.getServer().getObjectJspFactory();
+            pageContext = _jspxFactory.getPageContext(this, destination,
+			"", true, 8192, true);
+
+            application = pageContext.getObjectContainerContext();
+            config = pageContext.getObjectConfig();
+            session = destination.getSession();
+            out = pageContext.getOut();
+
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/antinstall-config-example.jsp";from=(0,0);to=(60,0)]
+                out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n<html>\r\n<head>\r\n  <title>Ant Installer</title>\r\n  <link href=\"style.css\" type=\"text/css\" rel=\"stylesheet\">\r\n  <link href=\"css/nav.css\" rel=\"stylesheet\" type=\"text/css\">\r\n  <link rel=\"SHORTCUT ICON\" type=\"image/png\" href=\"images/antinstaller-icon.png\">\r\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n  <meta name=\"keywords\"\r\n content=\"Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration\">\r\n <script type=\"text/javascript\" src=\"js/menu.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/sstree.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/winfix.js\"></script>\r\n</head>\r\n<body onload=\"collapseAll('contents-panel', ['ol']); \"><div id=\"tpallcontent\">\r\n<table cellspacing=\"0\" width=\"100%\">\r\n  <tbody>\r\n    <tr class=\"tpheader\">\r\n      <th class=\"tpleft\">\r\n\t\t\t<a target=\"_top\" href=\"index.html\" title=\"home\"><img src=\"images/ant-install-small.png\" alt=\"AntInstaller\" id=\"logo\" width=\"76\" height=\"50\"/></a>\r\n\t\t\t<script type=\"text/javascript\">winFix();</script>\r\n      </th>\r\n      <th class=\"tptop\" valign=\"bottom\">\r\n\t\t\t\t<img src=\"space.gif\" height=\"1\" width=\"440\" alt=\"spacer\"/><br/>\r\n\t\t\t\t\r\n\t\t\t\t<table>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td valign=\"top\">\r\n\t\t\t\t\t\t\t<div class=\"tpheadertitle\">AntInstaller</div>\r\n\t\t\t\t\t\t\t<!--img src=\"images/ant-install-title.png\" alt=\"AntInstaller\"/-->\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td width=\"100%\" align=\"right\" valign=\"bottom\" nowrap=\"NOWRAP\">\r\n\t\t\t\t<div class=\"tpraised\">\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"index.html\">home</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917\">download</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sf.net\">sourceforge</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"manual-ant.html\">antmanual</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615\">RFEs</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612\">Bugs</a></div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n      </th>\r\n    </tr>\r\n    <tr class=\"tpbody\">\r\n\t\t<td class=\"tpleft\" valign=\"bottom\">\r\n\t\t\t<br/>\r\n\t\t\t<div id=\"logoset\">\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net\"><img src=\"http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2\" alt=\"SourceForge.net Logo\" border=\"0\" height=\"37\" width=\"125\"></a>\r\n\t\t\t<br/><br/>\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net/donate/index.php?group_id=123466\">\r\n\t\t\t<img src=\"http://sourceforge.net/images/project-support.jpg\" alt=\"donate to AntInstaller\"/>\r\n\t\t\t</a>\r\n\t\t\t</div>\r\n\t\t</td>\r\n      <td class=\"tpright\" valign=\"top\">\r\n      <div class=\"tpcontent\">\r\n\t\t\t<!--[segment-content] page content start -->\r\n      <h2>Example antinstall-config.xml</h2>\r\n      <div class=\"xml\">\r\n");
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/antinstall-config-example.jsp";from=(60,60);to=(61,0)]
+                out.write("\r\n");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/antinstall-config-example.jsp";from=(61,2);to=(72,0)]
+                
+                	String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+                	File fleJspDir = new File(strJspDir);
+                	File exampleFile = new File(fleJspDir, "antinstall-config-example.xml");
+                	BufferedReader br = new BufferedReader(new FileReader(exampleFile));
+                	StringBuffer file = new StringBuffer();
+                	String line = null;
+                	while( (line = br.readLine()) != null ){
+                		file.append(line).append('\n');
+                	}
+                	out.println(decorateXml(file));
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/antinstall-config-example.jsp";from=(72,2);to=(73,0)]
+                out.write("\r\n");
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/antinstall-config-example.jsp";from=(193,2);to=(292,0)]
+                out.write("\r\n\t\t</div>\r\n\t\t\t<!-- content end [segment-end]-->\r\n\t\t \t</div>\r\n      </td>\r\n    </tr>\r\n  </tbody>\r\n</table>\r\n<div id=\"contents-panel\">\r\n<!--[segment-file://contents-include.html] menu start -->\r\n<div id=\"contents-menu\">\r\n<ol class=\"sidebar\" id=\"root\">\r\n\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Site map</b>\r\n\t\t<ol>\r\n\t\t\t<li class=\"sidebar\"><a href=\"introduction.html\">Introduction</a></li>\r\n\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Developer References</b>\r\n\t\t\t\t<ol>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"quickstart.html\">Quick Start</a></li>\r\n\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html\">Manual</a>\r\n\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#config\">antinstall-config.xml</a></li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#page\">Pages</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagesplash\">Splash Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagetext\">Text Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagelicense\">License Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageinput\">Input Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageprogress\">Progress Page</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#inputtypes\">Input types</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#app-root\">Application Root</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#checkbox\">Checkbox</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#comment\">Comment</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#date\">Date</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#directory\">Directory</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#file\">File</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#large-select\">Large Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password\">Password Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password-confirm\">Confirm Password</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#select\">Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target\">Target</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target-select\">Target Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#text\">Unvalidated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#validated\">Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extvalidated\">Externally Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extractor\">Self Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#non-extractor\">Non Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#scripts\">Start Scripts</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#refs\">Dynamic References</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagedisplay\">Page Displaying</a></li>\r\n\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installertask.html\">Installer Ant task</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"validationofconfig.html\">Validation of config</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"lookandfeels.html\">LookAndFeels</a> <br/>(inc screenshots)</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"classpathresources.html\">Resources/Classpath issues</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"i18n.html\">Internationalisation</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"auto.html\">Automated installs</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installtypes.html\">Multiple install types</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"posttargets.html\">Post display targets</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"icons.html\">Button Icons</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"antinstall-config-example.html\">Example antinstall-config.xml</a></li>\r\n\t\t\t\t</ol>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"manual-ant.html\">Ant Manual</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"antlinks.html\">Ant links</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"userusage.html\">User usage</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"licenses.html\">Licenses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"potentialuses.html\">Potential uses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"roadmap.html\">Road Map</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"wanted.html\">Wanted</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"dtds.html\">DTDs</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"changelog.html\">Changelog</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/projects/antinstaller\">Project page on SourceForge</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/antinstaller/index.html\">Java2HTML (main)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/ext/index.html\">Java2HTML (extensions)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://antinstaller.cvs.sourceforge.net/antinstaller\">Public CVS over HTTP</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/sendmessage.php?touser=616485\">Contact AntInstaller Admin</a></li>\r\n\t\t</ol>\r\n\t</li>\r\n</ol>\r\n<br/>\r\n<br/>\r\n</div>\r\n\r\n\r\n<!-- menu end [segment-end]-->\r\n</div>\r\n<div id=\"contents-options\">\r\n<a id=\"toggle\" href=\"#\" onclick=\"toggleMenu(); return false;\">show menu</a>\r\n</div>\r\n\r\n</div>\r\n</body>\r\n</html>\r\n");
+            // end
+
+        } catch (Exception ex) {
+            if (out.getBufferSize() != 0)
+                out.clearBuffer();
+            pageContext.handlePageException(ex);
+        } finally {
+            out.flush();
+            _jspxFactory.releasePageContext(pageContext);
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/web/.classes/changelog.java
===================================================================
--- /release-kits/shared/ant-installer/web/.classes/changelog.java	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.classes/changelog.java	(revision 14989)
@@ -0,0 +1,113 @@
+import javax.servlet.jsp.*;
+import javax.servlet.jsp.tagext.*;
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.util.Vector;
+import org.tp23.jasper.runtime.*;
+import java.beans.*;
+import org.tp23.jasper.*;
+import org.tp23.jsp.*;
+import java.io.*;
+import java.util.*;
+
+
+public class changelog extends ObjectJspBase {
+
+
+    static {
+    }
+    public changelog( ) {
+    }
+
+    private static boolean _jspx_inited = false;
+
+    public final void _jspx_init() throws JasperException {
+    }
+
+    public void _jspService(final Destination destination)
+        throws IOException, JspEngineException {
+
+        ObjectJspFactory _jspxFactory = null;
+        ObjectPageContext pageContext = null;
+        Session session = null;
+        ObjectContainerContext application = null;
+        ObjectConfig config = null;
+        ObjectJspWriter out = null;
+        Object page = this;
+        String  _value = null;
+        try {
+
+            if (_jspx_inited == false) {
+                _jspx_init();
+                _jspx_inited = true;
+            }
+            _jspxFactory = destination.getServer().getObjectJspFactory();
+            pageContext = _jspxFactory.getPageContext(this, destination,
+			"", true, 8192, true);
+
+            application = pageContext.getObjectContainerContext();
+            config = pageContext.getObjectConfig();
+            session = destination.getSession();
+            out = pageContext.getOut();
+
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(0,0);to=(58,0)]
+                out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n<html>\r\n<head>\r\n  <title>Ant Installer</title>\r\n  <link href=\"style.css\" type=\"text/css\" rel=\"stylesheet\">\r\n  <link href=\"css/nav.css\" rel=\"stylesheet\" type=\"text/css\">\r\n  <link rel=\"SHORTCUT ICON\" type=\"image/png\" href=\"images/antinstaller-icon.png\">\r\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n  <meta name=\"keywords\"\r\n content=\"Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration\">\r\n <script type=\"text/javascript\" src=\"js/menu.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/sstree.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/winfix.js\"></script>\r\n</head>\r\n<body onload=\"collapseAll('contents-panel', ['ol']); \"><div id=\"tpallcontent\">\r\n<table cellspacing=\"0\" width=\"100%\">\r\n  <tbody>\r\n    <tr class=\"tpheader\">\r\n      <th class=\"tpleft\">\r\n\t\t\t<a target=\"_top\" href=\"index.html\" title=\"home\"><img src=\"images/ant-install-small.png\" alt=\"AntInstaller\" id=\"logo\" width=\"76\" height=\"50\"/></a>\r\n\t\t\t<script type=\"text/javascript\">winFix();</script>\r\n      </th>\r\n      <th class=\"tptop\" valign=\"bottom\">\r\n\t\t\t\t<img src=\"space.gif\" height=\"1\" width=\"440\" alt=\"spacer\"/><br/>\r\n\t\t\t\t\r\n\t\t\t\t<table>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td valign=\"top\">\r\n\t\t\t\t\t\t\t<div class=\"tpheadertitle\">AntInstaller</div>\r\n\t\t\t\t\t\t\t<!--img src=\"images/ant-install-title.png\" alt=\"AntInstaller\"/-->\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td width=\"100%\" align=\"right\" valign=\"bottom\" nowrap=\"NOWRAP\">\r\n\t\t\t\t<div class=\"tpraised\">\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"index.html\">home</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917\">download</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sf.net\">sourceforge</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"manual-ant.html\">antmanual</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615\">RFEs</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612\">Bugs</a></div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n      </th>\r\n    </tr>\r\n    <tr class=\"tpbody\">\r\n\t\t<td class=\"tpleft\" valign=\"bottom\">\r\n\t\t\t<br/>\r\n\t\t\t<div id=\"logoset\">\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net\"><img src=\"http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2\" alt=\"SourceForge.net Logo\" border=\"0\" height=\"37\" width=\"125\"></a>\r\n\t\t\t<br/><br/>\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net/donate/index.php?group_id=123466\">\r\n\t\t\t<img src=\"http://sourceforge.net/images/project-support.jpg\" alt=\"donate to AntInstaller\"/>\r\n\t\t\t</a>\r\n\t\t\t</div>\r\n\t\t</td>\r\n      <td class=\"tpright\" valign=\"top\">\r\n      <div class=\"tpcontent\">\r\n\t\t\t<!--[segment-content] page content start -->\r\n");
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(58,28);to=(59,0)]
+                out.write("\r\n");
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(59,30);to=(63,7)]
+                out.write("\r\n\t\t<h2>Changelog</h2>\r\n\t\tThis is the current change log from the build, it may be more upto date that the latest public release.\r\n\t\t<br/>\r\n\t\t<pre>");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(63,9);to=(75,2)]
+                
+                		String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+                		File fleJspDir = new File(strJspDir);
+                		
+                		BufferedReader br = new BufferedReader(new FileReader(new File(fleJspDir, "../CHANGELOG.txt")));
+                		String line = null;
+                		while((line=br.readLine())!=null){
+                		  if(line.startsWith("CHANGELOG"));
+                			else if(line.equals(""));
+                			else if(line.startsWith("=============="))out.println("</pre><hr/><pre>");
+                			else out.println(line);
+                		}
+                		
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(75,4);to=(80,22)]
+                out.write("\r\n\t\t&nbsp;\r\n\t\t</pre>\r\n\t\t<hr/>\r\n\t\t<br/><br/>\r\n\t\tSite last generated:");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(80,25);to=(80,45)]
+                out.print(new java.util.Date());
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(80,47);to=(82,2)]
+                out.write("\r\n\t\t<br/><br/>\r\n\t\t");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(82,4);to=(85,2)]
+                
+                		Properties versionProps = new Properties();
+                		versionProps.load(new FileInputStream(new File(fleJspDir, "../build/version.properties")));
+                		
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(85,4);to=(86,39)]
+                out.write("\r\n\t\tCVS AntInstaller development version:");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(86,42);to=(86,89)]
+                out.print(versionProps.getProperty("ant.install.version"));
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/changelog.jsp";from=(86,91);to=(186,0)]
+                out.write("\r\n\t\t\t</div>\r\n\r\n<!-- content end [segment-end]-->\r\n\t\t \t</div>\r\n      </td>\r\n    </tr>\r\n  </tbody>\r\n</table>\r\n<div id=\"contents-panel\">\r\n<!--[segment-file://contents-include.html] menu start -->\r\n<div id=\"contents-menu\">\r\n<ol class=\"sidebar\" id=\"root\">\r\n\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Site map</b>\r\n\t\t<ol>\r\n\t\t\t<li class=\"sidebar\"><a href=\"introduction.html\">Introduction</a></li>\r\n\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Developer References</b>\r\n\t\t\t\t<ol>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"quickstart.html\">Quick Start</a></li>\r\n\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html\">Manual</a>\r\n\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#config\">antinstall-config.xml</a></li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#page\">Pages</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagesplash\">Splash Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagetext\">Text Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagelicense\">License Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageinput\">Input Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageprogress\">Progress Page</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#inputtypes\">Input types</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#app-root\">Application Root</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#checkbox\">Checkbox</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#comment\">Comment</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#date\">Date</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#directory\">Directory</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#file\">File</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#large-select\">Large Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password\">Password Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password-confirm\">Confirm Password</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#select\">Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target\">Target</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target-select\">Target Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#text\">Unvalidated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#validated\">Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extvalidated\">Externally Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extractor\">Self Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#non-extractor\">Non Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#scripts\">Start Scripts</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#refs\">Dynamic References</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagedisplay\">Page Displaying</a></li>\r\n\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installertask.html\">Installer Ant task</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"validationofconfig.html\">Validation of config</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"lookandfeels.html\">LookAndFeels</a> <br/>(inc screenshots)</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"classpathresources.html\">Resources/Classpath issues</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"i18n.html\">Internationalisation</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"auto.html\">Automated installs</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installtypes.html\">Multiple install types</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"posttargets.html\">Post display targets</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"icons.html\">Button Icons</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"antinstall-config-example.html\">Example antinstall-config.xml</a></li>\r\n\t\t\t\t</ol>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"manual-ant.html\">Ant Manual</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"antlinks.html\">Ant links</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"userusage.html\">User usage</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"licenses.html\">Licenses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"potentialuses.html\">Potential uses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"roadmap.html\">Road Map</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"wanted.html\">Wanted</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"dtds.html\">DTDs</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"changelog.html\">Changelog</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/projects/antinstaller\">Project page on SourceForge</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/antinstaller/index.html\">Java2HTML (main)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/ext/index.html\">Java2HTML (extensions)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://antinstaller.cvs.sourceforge.net/antinstaller\">Public CVS over HTTP</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/sendmessage.php?touser=616485\">Contact AntInstaller Admin</a></li>\r\n\t\t</ol>\r\n\t</li>\r\n</ol>\r\n<br/>\r\n<br/>\r\n</div>\r\n\r\n\r\n<!-- menu end [segment-end]-->\r\n</div>\r\n<div id=\"contents-options\">\r\n<a id=\"toggle\" href=\"#\" onclick=\"toggleMenu(); return false;\">show menu</a>\r\n</div>\r\n\r\n</div>\r\n</body>\r\n</html>\r\n");
+            // end
+
+        } catch (Exception ex) {
+            if (out.getBufferSize() != 0)
+                out.clearBuffer();
+            pageContext.handlePageException(ex);
+        } finally {
+            out.flush();
+            _jspxFactory.releasePageContext(pageContext);
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/web/.classes/contents.java
===================================================================
--- /release-kits/shared/ant-installer/web/.classes/contents.java	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.classes/contents.java	(revision 14989)
@@ -0,0 +1,75 @@
+import javax.servlet.jsp.*;
+import javax.servlet.jsp.tagext.*;
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.util.Vector;
+import org.tp23.jasper.runtime.*;
+import java.beans.*;
+import org.tp23.jasper.*;
+import org.tp23.jsp.*;
+
+
+public class contents extends ObjectJspBase {
+
+
+    static {
+    }
+    public contents( ) {
+    }
+
+    private static boolean _jspx_inited = false;
+
+    public final void _jspx_init() throws JasperException {
+    }
+
+    public void _jspService(final Destination destination)
+        throws IOException, JspEngineException {
+
+        ObjectJspFactory _jspxFactory = null;
+        ObjectPageContext pageContext = null;
+        Session session = null;
+        ObjectContainerContext application = null;
+        ObjectConfig config = null;
+        ObjectJspWriter out = null;
+        Object page = this;
+        String  _value = null;
+        try {
+
+            if (_jspx_inited == false) {
+                _jspx_init();
+                _jspx_inited = true;
+            }
+            _jspxFactory = destination.getServer().getObjectJspFactory();
+            pageContext = _jspxFactory.getPageContext(this, destination,
+			"", true, 8192, true);
+
+            application = pageContext.getObjectContainerContext();
+            config = pageContext.getObjectConfig();
+            session = destination.getSession();
+            out = pageContext.getOut();
+
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/contents.jsp";from=(0,0);to=(13,0)]
+                out.write("<html>\r\n<head>\r\n  <title>Ant Installer</title>\r\n  <link href=\"css/nav.css\" rel=\"stylesheet\" type=\"text/css\">\r\n  <link href=\"style.css\" type=\"text/css\" rel=\"stylesheet\">\r\n  <meta name=\"keywords\"\r\n content=\"Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, valiation, configuration\">\r\n <script type=\"text/javascript\" src=\"js/menu.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/sstree.js\"></script>\r\n</head>\r\n<body onload='collapseAll([\"ol\"]); openBookMark();'>\r\n<a href=\"index.html\" alt=\"home\" target=\"_content\">\r\n<img src=\"images/ant-install-small.png\"  target=\"_content\" align=\"baseline\"/></a><br/>\r\n");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/contents.jsp";from=(13,0);to=(13,56)]
+                {
+                    String _jspx_qStr = "";
+                    pageContext.include("contents-include.html" + _jspx_qStr);
+                }
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/contents.jsp";from=(13,56);to=(15,0)]
+                out.write("\r\n</body>\r\n");
+            // end
+
+        } catch (Exception ex) {
+            if (out.getBufferSize() != 0)
+                out.clearBuffer();
+            pageContext.handlePageException(ex);
+        } finally {
+            out.flush();
+            _jspxFactory.releasePageContext(pageContext);
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/web/.classes/dtds.java
===================================================================
--- /release-kits/shared/ant-installer/web/.classes/dtds.java	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.classes/dtds.java	(revision 14989)
@@ -0,0 +1,104 @@
+import javax.servlet.jsp.*;
+import javax.servlet.jsp.tagext.*;
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.util.Vector;
+import org.tp23.jasper.runtime.*;
+import java.beans.*;
+import org.tp23.jasper.*;
+import org.tp23.jsp.*;
+import java.io.*;
+import java.util.*;
+
+
+public class dtds extends ObjectJspBase {
+
+
+    static {
+    }
+    public dtds( ) {
+    }
+
+    private static boolean _jspx_inited = false;
+
+    public final void _jspx_init() throws JasperException {
+    }
+
+    public void _jspService(final Destination destination)
+        throws IOException, JspEngineException {
+
+        ObjectJspFactory _jspxFactory = null;
+        ObjectPageContext pageContext = null;
+        Session session = null;
+        ObjectContainerContext application = null;
+        ObjectConfig config = null;
+        ObjectJspWriter out = null;
+        Object page = this;
+        String  _value = null;
+        try {
+
+            if (_jspx_inited == false) {
+                _jspx_init();
+                _jspx_inited = true;
+            }
+            _jspxFactory = destination.getServer().getObjectJspFactory();
+            pageContext = _jspxFactory.getPageContext(this, destination,
+			"", true, 8192, true);
+
+            application = pageContext.getObjectContainerContext();
+            config = pageContext.getObjectConfig();
+            session = destination.getSession();
+            out = pageContext.getOut();
+
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(0,0);to=(62,0)]
+                out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n<html>\r\n<head>\r\n  <title>Ant Installer</title>\r\n  <link href=\"style.css\" type=\"text/css\" rel=\"stylesheet\">\r\n  <link href=\"css/nav.css\" rel=\"stylesheet\" type=\"text/css\">\r\n  <link rel=\"SHORTCUT ICON\" type=\"image/png\" href=\"images/antinstaller-icon.png\">\r\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n  <meta name=\"keywords\"\r\n content=\"Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, valiation, configuration\">\r\n <script type=\"text/javascript\" src=\"js/menu.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/sstree.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/winfix.js\"></script>\r\n</head>\r\n<body onload=\"collapseAll('contents-panel', ['ol']); \"><div id=\"tpallcontent\">\r\n<table cellspacing=\"0\" width=\"100%\">\r\n  <tbody>\r\n    <tr class=\"tpheader\">\r\n      <th class=\"tpleft\">\r\n\t\t\t<a target=\"_top\" href=\"index.html\" title=\"home\"><img src=\"images/ant-install-small.png\" alt=\"AntInstaller\" id=\"logo\" width=\"76\" height=\"50\"/></a>\r\n\t\t\t<script type=\"text/javascript\">winFix();</script>\r\n      </th>\r\n      <th class=\"tptop\" valign=\"bottom\">\r\n\t\t\t\t<img src=\"space.gif\" height=\"1\" width=\"440\" alt=\"spacer\"/><br/>\r\n\t\t\t\t\r\n\t\t\t\t<table>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td valign=\"top\">\r\n\t\t\t\t\t\t\t<div class=\"tpheadertitle\">AntInstaller</div>\r\n\t\t\t\t\t\t\t<!--img src=\"images/ant-install-title.png\" alt=\"AntInstaller\"/-->\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td width=\"100%\" align=\"right\" valign=\"bottom\" nowrap=\"NOWRAP\">\r\n\t\t\t\t<div class=\"tpraised\">\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"index.html\">home</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917\">download</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sf.net\">sourceforge</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"manual-ant.html\">antmanual</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615\">RFEs</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612\">Bugs</a></div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n      </th>\r\n    </tr>\r\n    <tr class=\"tpbody\">\r\n\t\t<td valign=\"bottom\">\r\n\t\t\t<br/>\r\n\t\t\t<div id=\"logoset\">\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net\"><img src=\"http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2\" alt=\"SourceForge.net Logo\" border=\"0\" height=\"37\" width=\"125\"></a>\r\n\t\t\t<br/><br/>\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net/donate/index.php?group_id=123466\">\r\n\t\t\t<img src=\"http://sourceforge.net/images/project-support.jpg\" alt=\"donate to AntInstaller\"/>\r\n\t\t\t</a>\r\n\t\t\t</div>\r\n\t\t</td>\r\n      <td class=\"tpright\" valign=\"top\">\r\n      <div class=\"tpcontent\">\r\n\t\t\t<!--[segment-content] page content start -->\r\n                                 <h2>DTDs</h2>\r\nThis page contains links to the DTDs for the antinstall-config.xml files<br>\r\n      <br>\r\n\t\t\t<ul>\r\n");
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(62,60);to=(63,0)]
+                out.write("\r\n");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(63,2);to=(71,0)]
+                
+                	String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+                	File fleJspDir = new File(strJspDir);
+                	File dtdsDir = new File(fleJspDir, "dtd");
+                	String[] dtdNames = dtdsDir.list();
+                	Arrays.sort(dtdNames);
+                	for (int i = 0; i< dtdNames.length; i++) {
+                		if( dtdNames[i].endsWith(".dtd") ){
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(71,2);to=(72,21)]
+                out.write("\r\n\t\t\t\t<li><a href=\"dtd/");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(72,24);to=(72,35)]
+                out.print(dtdNames[i]);
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(72,37);to=(72,39)]
+                out.write("\">");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(72,42);to=(72,53)]
+                out.print(dtdNames[i]);
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(72,55);to=(73,0)]
+                out.write("</a></li>\r\n");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(73,2);to=(76,0)]
+                			
+                		}
+                	}
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/dtds.jsp";from=(76,2);to=(175,0)]
+                out.write("\r\n\t\t\t</ul>\r\n\t\t\t\t<!-- content end [segment-end]-->\r\n\t\t \t</div>\r\n      </td>\r\n    </tr>\r\n  </tbody>\r\n</table>\r\n<div id=\"contents-panel\">\r\n<!--[segment-file://contents-include.html] menu start -->\r\n<div id=\"contents-menu\">\r\n<ol class=\"sidebar\" id=\"root\">\r\n\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Site map</b>\r\n\t\t<ol>\r\n\t\t\t<li class=\"sidebar\"><a href=\"introduction.html\">Introduction</a></li>\r\n\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Developer References</b>\r\n\t\t\t\t<ol>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"quickstart.html\">Quick Start</a></li>\r\n\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html\">Manual</a>\r\n\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#config\">antinstall-config.xml</a></li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#page\">Pages</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagesplash\">Splash Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagetext\">Text Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagelicense\">License Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageinput\">Input Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageprogress\">Progress Page</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#inputtypes\">Input types</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#app-root\">Application Root</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#checkbox\">Checkbox</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#comment\">Comment</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#date\">Date</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#directory\">Directory</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#file\">File</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#large-select\">Large Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password\">Password Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password-confirm\">Confirm Password</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#select\">Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target\">Target</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target-select\">Target Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#text\">Unvalidated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#validated\">Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extvalidated\">Externally Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extractor\">Self Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#non-extractor\">Non Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#scripts\">Start Scripts</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#refs\">Dynamic References</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagedisplay\">Page Displaying</a></li>\r\n\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installertask.html\">Installer Ant task</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"validationofconfig.html\">Validation of config</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"lookandfeels.html\">LookAndFeels</a> <br/>(inc screenshots)</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"classpathresources.html\">Resources/Classpath issues</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"i18n.html\">Internationalisation</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"auto.html\">Automated installs</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installtypes.html\">Multiple install types</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"posttargets.html\">Post display targets</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"icons.html\">Button Icons</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"antinstall-config-example.html\">Example antinstall-config.xml</a></li>\r\n\t\t\t\t</ol>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"manual/manual/index.html\">Ant Manual</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"antlinks.html\">Ant links</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"userusage.html\">User usage</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"licenses.html\">Licenses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"potentialuses.html\">Potential uses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"roadmap.html\">Road Map</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"wanted.html\">Wanted</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"dtds.html\">DTDs</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"changelog.html\">Changelog</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/projects/antinstaller\">Project page on SourceForge</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/antinstaller/index.html\">Java2HTML (main)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/ext/index.html\">Java2HTML (extensions)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://antinstaller.cvs.sourceforge.net/antinstaller\">Public CVS over HTTP</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/sendmessage.php?touser=616485\">Contact AntInstaller Admin</a></li>\r\n\t\t</ol>\r\n\t</li>\r\n</ol>\r\n<br/>\r\n<br/>\r\n</div>\r\n\r\n\r\n<!-- menu end [segment-end]-->\r\n</div>\r\n<div id=\"contents-options\">\r\n<a id=\"toggle\" href=\"#\" onclick=\"toggleMenu(); return false;\">show menu</a>\r\n</div>\r\n\r\n</div>\r\n</body>\r\n</html>\r\n");
+            // end
+
+        } catch (Exception ex) {
+            if (out.getBufferSize() != 0)
+                out.clearBuffer();
+            pageContext.handlePageException(ex);
+        } finally {
+            out.flush();
+            _jspxFactory.releasePageContext(pageContext);
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/web/.classes/icons.java
===================================================================
--- /release-kits/shared/ant-installer/web/.classes/icons.java	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.classes/icons.java	(revision 14989)
@@ -0,0 +1,140 @@
+import javax.servlet.jsp.*;
+import javax.servlet.jsp.tagext.*;
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.util.Vector;
+import org.tp23.jasper.runtime.*;
+import java.beans.*;
+import org.tp23.jasper.*;
+import org.tp23.jsp.*;
+import java.io.*;
+import java.util.*;
+
+
+public class icons extends ObjectJspBase {
+
+
+    static {
+    }
+    public icons( ) {
+    }
+
+    private static boolean _jspx_inited = false;
+
+    public final void _jspx_init() throws JasperException {
+    }
+
+    public void _jspService(final Destination destination)
+        throws IOException, JspEngineException {
+
+        ObjectJspFactory _jspxFactory = null;
+        ObjectPageContext pageContext = null;
+        Session session = null;
+        ObjectContainerContext application = null;
+        ObjectConfig config = null;
+        ObjectJspWriter out = null;
+        Object page = this;
+        String  _value = null;
+        try {
+
+            if (_jspx_inited == false) {
+                _jspx_init();
+                _jspx_inited = true;
+            }
+            _jspxFactory = destination.getServer().getObjectJspFactory();
+            pageContext = _jspxFactory.getPageContext(this, destination,
+			"", true, 8192, true);
+
+            application = pageContext.getObjectContainerContext();
+            config = pageContext.getObjectConfig();
+            session = destination.getSession();
+            out = pageContext.getOut();
+
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(0,0);to=(59,0)]
+                out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n<html>\r\n<head>\r\n  <title>Ant Installer</title>\r\n  <link href=\"style.css\" type=\"text/css\" rel=\"stylesheet\">\r\n  <link href=\"css/nav.css\" rel=\"stylesheet\" type=\"text/css\">\r\n  <link rel=\"SHORTCUT ICON\" type=\"image/png\" href=\"images/antinstaller-icon.png\">\r\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n  <meta name=\"keywords\"\r\n content=\"Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration\">\r\n <script type=\"text/javascript\" src=\"js/menu.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/sstree.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/winfix.js\"></script>\r\n</head>\r\n<body onload=\"collapseAll('contents-panel', ['ol']); \"><div id=\"tpallcontent\">\r\n<table cellspacing=\"0\" width=\"100%\">\r\n  <tbody>\r\n    <tr class=\"tpheader\">\r\n      <th class=\"tpleft\">\r\n\t\t\t<a target=\"_top\" href=\"index.html\" title=\"home\"><img src=\"images/ant-install-small.png\" alt=\"AntInstaller\" id=\"logo\" width=\"76\" height=\"50\"/></a>\r\n\t\t\t<script type=\"text/javascript\">winFix();</script>\r\n      </th>\r\n      <th class=\"tptop\" valign=\"bottom\">\r\n\t\t\t\t<img src=\"space.gif\" height=\"1\" width=\"440\" alt=\"spacer\"/><br/>\r\n\t\t\t\t\r\n\t\t\t\t<table>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td valign=\"top\">\r\n\t\t\t\t\t\t\t<div class=\"tpheadertitle\">AntInstaller</div>\r\n\t\t\t\t\t\t\t<!--img src=\"images/ant-install-title.png\" alt=\"AntInstaller\"/-->\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td width=\"100%\" align=\"right\" valign=\"bottom\" nowrap=\"NOWRAP\">\r\n\t\t\t\t<div class=\"tpraised\">\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"index.html\">home</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917\">download</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sf.net\">sourceforge</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"manual-ant.html\">antmanual</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615\">RFEs</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612\">Bugs</a></div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n      </th>\r\n    </tr>\r\n    <tr class=\"tpbody\">\r\n\t\t<td class=\"tpleft\" valign=\"bottom\">\r\n\t\t\t<br/>\r\n\t\t\t<div id=\"logoset\">\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net\"><img src=\"http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2\" alt=\"SourceForge.net Logo\" border=\"0\" height=\"37\" width=\"125\"></a>\r\n\t\t\t<br/><br/>\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net/donate/index.php?group_id=123466\">\r\n\t\t\t<img src=\"http://sourceforge.net/images/project-support.jpg\" alt=\"donate to AntInstaller\"/>\r\n\t\t\t</a>\r\n\t\t\t</div>\r\n\t\t</td>\r\n      <td class=\"tpright\" valign=\"top\">\r\n      <div class=\"tpcontent\">\r\n\t\t\t<!--[segment-content] page content start -->\r\n\r\n");
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(59,60);to=(66,2)]
+                out.write("\r\n\t\t<h2>icons</h2>\r\n\t\tAntInstaller has a few options for the button icons used in the installer.<br/><br/>\r\n\t\t\r\n\t\tThese can be included in the installer by adding the <code>icons</code> attribute to the <code>installer</code> element\r\n\t\tof the <a href=\"installertask.html\">AntInstaller Ant task</a>.<br/><br/>\r\n\t\t\r\n\t\t");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(66,4);to=(79,3)]
+                
+                		String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+                		File fleJspDir = new File(strJspDir);
+                		File dir = new File(fleJspDir, "images/navicons");
+                		File[] directories = dir.listFiles();
+                		for (int i = 0; i < directories.length; i++){
+                			if(!directories[i].isDirectory())continue;
+                			out.println("<h2>" + directories[i].getName() + "</h2>");
+                			File iconsDir = new File(directories[i], "resources/icons");
+                			File[] icons = iconsDir.listFiles();
+                			for (int j = 0; j < icons.length; j++){
+                				if(!icons[j].getName().endsWith(".png"))continue;
+                			
+                			
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(79,5);to=(80,23)]
+                out.write("\r\n<img align=\"left\" alt=\"");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(80,26);to=(80,44)]
+                out.print(icons[j].getName());
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(80,46);to=(80,69)]
+                out.write("\" src=\"images/navicons/");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(80,72);to=(80,96)]
+                out.print(directories[i].getName());
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(80,98);to=(80,115)]
+                out.write("/resources/icons/");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(80,118);to=(80,136)]
+                out.print(icons[j].getName());
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(80,138);to=(81,3)]
+                out.write("\" width=\"16\" height=\"16\"/>\r\n\t\t\t");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(81,5);to=(84,2)]
+                
+                				
+                			}
+                		
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(84,4);to=(87,2)]
+                out.write("\r\n\t\t\t<br/><b>License</b><br/>\r\n\t\t\t<div class=\"tpcropped\">\r\n\t\t");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(87,4);to=(95,2)]
+                
+                			BufferedReader br = new BufferedReader(new FileReader(new File(iconsDir, "LICENSE")));
+                			String line = null;
+                			while( (line=br.readLine()) != null ){
+                				if(line.equals(""))out.println("<br/>");
+                				else out.println(line.replaceAll("&", "&amp;").replaceAll(">", "&gt;").replaceAll("<", "&lt;"));
+                				out.println("<br/>");
+                			}
+                		
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(95,4);to=(97,2)]
+                out.write("\r\n\t\t\t</div><hr/>\r\n\t\t");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(97,4);to=(100,2)]
+                
+                			
+                		}
+                		
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/icons.jsp";from=(100,4);to=(200,0)]
+                out.write("\r\n\r\n\r\n<!-- content end [segment-end]-->\r\n\t\t \t</div>\r\n      </td>\r\n    </tr>\r\n  </tbody>\r\n</table>\r\n<div id=\"contents-panel\">\r\n<!--[segment-file://contents-include.html] menu start -->\r\n<div id=\"contents-menu\">\r\n<ol class=\"sidebar\" id=\"root\">\r\n\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Site map</b>\r\n\t\t<ol>\r\n\t\t\t<li class=\"sidebar\"><a href=\"introduction.html\">Introduction</a></li>\r\n\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Developer References</b>\r\n\t\t\t\t<ol>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"quickstart.html\">Quick Start</a></li>\r\n\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html\">Manual</a>\r\n\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#config\">antinstall-config.xml</a></li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#page\">Pages</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagesplash\">Splash Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagetext\">Text Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagelicense\">License Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageinput\">Input Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageprogress\">Progress Page</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#inputtypes\">Input types</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#app-root\">Application Root</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#checkbox\">Checkbox</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#comment\">Comment</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#date\">Date</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#directory\">Directory</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#file\">File</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#large-select\">Large Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password\">Password Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password-confirm\">Confirm Password</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#select\">Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target\">Target</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target-select\">Target Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#text\">Unvalidated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#validated\">Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extvalidated\">Externally Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extractor\">Self Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#non-extractor\">Non Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#scripts\">Start Scripts</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#refs\">Dynamic References</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagedisplay\">Page Displaying</a></li>\r\n\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installertask.html\">Installer Ant task</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"validationofconfig.html\">Validation of config</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"lookandfeels.html\">LookAndFeels</a> <br/>(inc screenshots)</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"classpathresources.html\">Resources/Classpath issues</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"i18n.html\">Internationalisation</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"auto.html\">Automated installs</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installtypes.html\">Multiple install types</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"posttargets.html\">Post display targets</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"icons.html\">Button Icons</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"antinstall-config-example.html\">Example antinstall-config.xml</a></li>\r\n\t\t\t\t</ol>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"manual-ant.html\">Ant Manual</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"antlinks.html\">Ant links</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"userusage.html\">User usage</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"licenses.html\">Licenses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"potentialuses.html\">Potential uses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"roadmap.html\">Road Map</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"wanted.html\">Wanted</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"dtds.html\">DTDs</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"changelog.html\">Changelog</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/projects/antinstaller\">Project page on SourceForge</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/antinstaller/index.html\">Java2HTML (main)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/ext/index.html\">Java2HTML (extensions)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://antinstaller.cvs.sourceforge.net/antinstaller\">Public CVS over HTTP</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/sendmessage.php?touser=616485\">Contact AntInstaller Admin</a></li>\r\n\t\t</ol>\r\n\t</li>\r\n</ol>\r\n<br/>\r\n<br/>\r\n</div>\r\n\r\n\r\n<!-- menu end [segment-end]-->\r\n</div>\r\n<div id=\"contents-options\">\r\n<a id=\"toggle\" href=\"#\" onclick=\"toggleMenu(); return false;\">show menu</a>\r\n</div>\r\n\r\n</div>\r\n</body>\r\n</html>\r\n");
+            // end
+
+        } catch (Exception ex) {
+            if (out.getBufferSize() != 0)
+                out.clearBuffer();
+            pageContext.handlePageException(ex);
+        } finally {
+            out.flush();
+            _jspxFactory.releasePageContext(pageContext);
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/web/.classes/index.java
===================================================================
--- /release-kits/shared/ant-installer/web/.classes/index.java	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.classes/index.java	(revision 14989)
@@ -0,0 +1,103 @@
+import javax.servlet.jsp.*;
+import javax.servlet.jsp.tagext.*;
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.util.Vector;
+import org.tp23.jasper.runtime.*;
+import java.beans.*;
+import org.tp23.jasper.*;
+import org.tp23.jsp.*;
+import java.io.*;
+import java.util.*;
+
+
+public class index extends ObjectJspBase {
+
+
+    static {
+    }
+    public index( ) {
+    }
+
+    private static boolean _jspx_inited = false;
+
+    public final void _jspx_init() throws JasperException {
+    }
+
+    public void _jspService(final Destination destination)
+        throws IOException, JspEngineException {
+
+        ObjectJspFactory _jspxFactory = null;
+        ObjectPageContext pageContext = null;
+        Session session = null;
+        ObjectContainerContext application = null;
+        ObjectConfig config = null;
+        ObjectJspWriter out = null;
+        Object page = this;
+        String  _value = null;
+        try {
+
+            if (_jspx_inited == false) {
+                _jspx_init();
+                _jspx_inited = true;
+            }
+            _jspxFactory = destination.getServer().getObjectJspFactory();
+            pageContext = _jspxFactory.getPageContext(this, destination,
+			"", true, 8192, true);
+
+            application = pageContext.getObjectContainerContext();
+            config = pageContext.getObjectConfig();
+            session = destination.getSession();
+            out = pageContext.getOut();
+
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(0,0);to=(66,0)]
+                out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n<html>\r\n<head>\r\n  <title>Ant Installer</title>\r\n  <link href=\"style.css\" type=\"text/css\" rel=\"stylesheet\">\r\n  <link href=\"css/nav.css\" rel=\"stylesheet\" type=\"text/css\">\r\n  <link rel=\"SHORTCUT ICON\" type=\"image/png\" href=\"images/antinstaller-icon.png\">\r\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n  <meta name=\"keywords\"\r\n content=\"Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration\">\r\n <script type=\"text/javascript\" src=\"js/menu.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/sstree.js\"></script>\r\n <script type=\"text/javascript\" src=\"js/winfix.js\"></script>\r\n</head>\r\n<body onload=\"collapseAll('contents-panel', ['ol']); \"><div id=\"tpallcontent\">\r\n<table cellspacing=\"0\" width=\"100%\">\r\n  <tbody>\r\n    <tr class=\"tpheader\">\r\n      <th class=\"tpleft\">\r\n\t\t\t<a target=\"_top\" href=\"index.html\" title=\"home\"><img src=\"images/ant-install-small.png\" alt=\"AntInstaller\" id=\"logo\" width=\"76\" height=\"50\"/></a>\r\n\t\t\t<script type=\"text/javascript\">winFix();</script>\r\n      </th>\r\n      <th class=\"tptop\" valign=\"bottom\">\r\n\t\t\t\t<img src=\"space.gif\" height=\"1\" width=\"440\" alt=\"spacer\"/><br/>\r\n\t\t\t\t\r\n\t\t\t\t<table>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td valign=\"top\">\r\n\t\t\t\t\t\t\t<div class=\"tpheadertitle\">AntInstaller</div>\r\n\t\t\t\t\t\t\t<!--img src=\"images/ant-install-title.png\" alt=\"AntInstaller\"/-->\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td width=\"100%\" align=\"right\" valign=\"bottom\" nowrap=\"NOWRAP\">\r\n\t\t\t\t<div class=\"tpraised\">\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"index.html\">home</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917\">download</a>\r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sf.net\">sourceforge</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"manual-ant.html\">antmanual</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615\">RFEs</a> \r\n\t\t\t\t<a class=\"tpbutton\" target=\"_top\" href=\"http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612\">Bugs</a></div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n      </th>\r\n    </tr>\r\n    <tr class=\"tpbody\">\r\n\t\t<td class=\"tpleft\" valign=\"bottom\">\r\n\t\t\t<br/>\r\n\t\t\t<div id=\"logoset\">\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net\"><img src=\"http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2\" alt=\"SourceForge.net Logo\" border=\"0\" height=\"37\" width=\"125\"></a>\r\n\t\t\t<br/><br/>\r\n\t\t\t<a target=\"_top\" href=\"http://sourceforge.net/donate/index.php?group_id=123466\">\r\n\t\t\t<img src=\"http://sourceforge.net/images/project-support.jpg\" alt=\"donate to AntInstaller\"/>\r\n\t\t\t</a>\r\n\t\t\t</div>\r\n\t\t</td>\r\n      <td class=\"tpright\" valign=\"top\">\r\n      <div class=\"tpcontent\">\r\n\t\t\t<!--[segment-content] page content start -->\r\n<script type=\"text/javascript\">\r\nfunction gooSrch(){\r\n  var text = document.getElementById('gf').elements['q'].value;\r\n\tdocument.getElementById('gf').elements['q'].value = text + \" site:antinstaller.sourceforge.net\";\r\n\tdocument.getElementById('gf').submit();\r\n}\r\ncollapseAll('frontpage-panel', ['ol']); \r\n</script>\r\n");
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(66,60);to=(85,2)]
+                out.write("\r\n            <div align=\"right\">\r\n\t\t\t\t\t\t\t<form action=\"http://www.google.com/search\" method=\"get\" id=\"gf\" style=\"display:inline\" onsubmit=\"return gooSrch();\">\r\n\t\t\t\t\t\t\t\t<input type=\"text\" name=\"q\" size=\"10\" class=\"winFix\" />\r\n\t\t\t\t\t\t\t\t<input type=\"image\" src=\"images/toolbar.gif\" /><span class=\"tpsmall\"> Google Search this site</span>\r\n\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t</div>\r\n\t\t<hr/>\r\n\t\tAntInstaller enables you to quickly build installers for your applications using an XML config file and all the power of <a  href=\"http://ant.apache.org\">Ant</a>.<br/><br/>\r\n\t\t\r\n\t\tThe beauty of AntInstaller, from a user point of view, is that it lets you install an app with a user friendly swing GUI. If working over ssh or without an X environment you can still install on the command line with no changes to the installer.<br/><br/>\r\n\t\t\r\n\t\tTo start using AntInstaller <a href=\"http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917\" title=\"download\">download</a> and install the binaries. Then either read the <a href=\"quickstart.html\" title=\"AntInstaller quick start\">quick start</a> page, or use the <a href=\"quickstart.html#wizard\" title=\"AntInstaller wizard\">wizard</a> provided to generate an initial installer for your project.  You will need to edit the <code>antinstall-config.xml</code> file following instructions in the AntInstaller <a href=\"manual.html\" title=\"AntInstaller manual\">manual</a> and create an Ant <code>build.xml</code> file referencing the Ant <a href=\"manual/manual/index.html\" title=\"Ant manual\">manual</a>.  You can include the custom Ant <a href=\"installertask.html\" title=\"AntInstaller manual\">task</a> into your project's build to generate the installer.<br/><br/>\r\n\r\n\t\tIn a move to be compatible with Apache projects the code in this project is now licensed under the less restrictive Apache 2.0 license.  The new (18/05/2005) license can be viewed here <a href=\"http://www.apache.org/licenses/LICENSE-2.0\">Apache License 2.0</a>\r\n\t\t<br/><br/>\r\n\t\tAll core code is available in CVS, and can be browsed online <a href=\"http://antinstaller.cvs.sourceforge.net/antinstaller/\" title=\"CVS Browse\">here</a>.\r\n\t\t<h2>Site map</h2>\r\n\t\t<div id=\"frontpage-panel\">\r\n\t\t");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(85,2);to=(85,58)]
+                {
+                    String _jspx_qStr = "";
+                    pageContext.include("contents-include.html" + _jspx_qStr);
+                }
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(85,58);to=(123,2)]
+                out.write("\r\n\t\t</div>\r\n\t\t<h2>Core Developers</h2>\r\n\t\t<ul>\r\n\t\t\t<li>Paul Hinds - project lead, core dev, and slacking for months on end ;)</li>\r\n\t\t\t<li>Mark Wilson - core development, bug fixings RFEs</li>\r\n\t\t</ul>\r\n\t\t<br/>\r\n\t\t<h2>Contributors</h2>\r\n\t\t\r\n\t\tP.S. Big thanks to Contributors and bug fixers\r\n\t\t<ul>\r\n\t\t\t<li>Marcia Choy - for inital comments and corrections in the web pages</li>\r\n\t\t\t<li>Dueringer Markus - for hints on showing hidden directories</li>\r\n\t\t\t<li>Simon Brooke - for feedback and suggestions.</li>\r\n\t\t\t<li>Mark Anderson - for the TargetSelectInput and -lib fix.</li>\r\n\t\t\t<li>Mohan Kishore - for improvement to the build process.</li>\r\n\t\t\t<li>Mike Watts - for comment and suggestions</li>\r\n\t\t\t<li>Eddyrun - for suggestions for ifProperty enhancements</li>\r\n\t\t\t<li>Upayavira - for help with Apache licensing</li>\r\n\t\t\t<li>Dabintxi - for work on i18n</li>\r\n\t\t\t<li>Michael Lipp - for german translation</li>\r\n\t\t</ul>\r\n\t\t<br/>\r\n\t\t\r\n\t\t<h2>Contact</h2>\r\n\t\t\r\n\t\tTo get in contact the following channels are available.<br/><br/>\r\n\t\t\r\n\t\t<ul>\r\n\t\t\t<li><a href=\"http://sourceforge.net/tracker/?group_id=123466&atid=696615\" title=\"Request for enhancements\">RFEs</a> - Request for enhancements</li>\r\n\t\t\t<li><a href=\"http://sourceforge.net/tracker/?group_id=123466&atid=696612\" title=\"Bug reporting\">Bugs</a> - Bug reporting</li>\r\n\t\t\t<li><a href=\"http://sourceforge.net/forum/forum.php?forum_id=420821\" title=\"Help Forum\">Help Forum</a> - Help mailing list</li>\r\n\t\t\t<li><a href=\"http://sourceforge.net/forum/forum.php?forum_id=420820\" title=\"Open Forum\">Open Forum</a> - Open discussion forum</li>\r\n\t\t\t<li><a href=\"http://sourceforge.net/forum/forum.php?forum_id=420822\" title=\"Dev Forum\">Dev Forum</a> - Developers forum (closed group)</li>\r\n\t\t\t<li><a href=\"http://sourceforge.net/sendmessage.php?touser=616485\" title=\"General contact\">General contact</a> - Drop me a line</li>\r\n\t\t</ul>\r\n\t\t<h2>Version</h2>\r\n\t\t");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(123,4);to=(128,2)]
+                
+                		String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+                		File fleJspDir = new File(strJspDir);
+                		Properties versionProps = new Properties();
+                		versionProps.load(new FileInputStream(new File(fleJspDir, "../build/version.properties")));
+                		
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(128,4);to=(129,43)]
+                out.write("\r\n\t\tCVS AntInstaller development version: <b>");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(129,46);to=(129,93)]
+                out.print(versionProps.getProperty("ant.install.version"));
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(129,95);to=(155,26)]
+                out.write("</b>\r\n\t\t<br/><br/>\r\n\t\t\r\n\t\t<h2>Firefox</h2>\r\n\r\n\t\tSite designed for FireFox, other browsers should be ok see <a href=\"browsersupport.html\" alt=\"Browser support\" >Browser support</a> and report bugs if you find them.<br/><br/>\r\n\r\n\t\t<a href=\"http://getfirefox.com/\"\r\n\t\t\t\ttitle=\"Get Firefox - The Browser, Reloaded.\"><img\r\n\t\t\t\tsrc=\"images/browser/firefox-spread-btn-2.png\"\r\n\t\t\t\twidth=\"180\" height=\"60\" alt=\"Get Firefox\"></a>\r\n\t\t<br/>\r\n\t\t<script language=\"JavaScript\" type=\"text/javascript\">\r\n\t\tfunction addSidebar(title, link){ \r\n\t\t\tif ((typeof window.sidebar == \"object\") && (typeof window.sidebar.addPanel == \"function\")){\r\n\t\t\t\twindow.sidebar.addPanel (title, link, \"\");\r\n\t\t\t}\r\n\t\t} \r\n\t\t</script>\r\n\t\t<br/>\r\n\t\tIf you have Mozilla/Firefox\r\n\t\t<a href=\"#\" onclick=\"javascript:addSidebar('AntInstaller SideBar', 'http://antinstaller.sourceforge.net/contents.html');return false;\">Add a sidebar</a> for this site.<br/><br/>\r\n\r\n\t\t\r\n\t\t\r\n\t\t<hr/>\r\n\t\tSite last generated: <b>");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(155,29);to=(155,49)]
+                out.print(new java.util.Date());
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/index.jsp";from=(155,51);to=(254,0)]
+                out.write("</b>\r\n\r\n<!-- content end [segment-end]-->\r\n\t\t \t</div>\r\n      </td>\r\n    </tr>\r\n  </tbody>\r\n</table>\r\n<div id=\"contents-panel\">\r\n<!--[segment-file://contents-include.html] menu start -->\r\n<div id=\"contents-menu\">\r\n<ol class=\"sidebar\" id=\"root\">\r\n\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Site map</b>\r\n\t\t<ol>\r\n\t\t\t<li class=\"sidebar\"><a href=\"introduction.html\">Introduction</a></li>\r\n\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><b>Developer References</b>\r\n\t\t\t\t<ol>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"quickstart.html\">Quick Start</a></li>\r\n\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html\">Manual</a>\r\n\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#config\">antinstall-config.xml</a></li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#page\">Pages</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagesplash\">Splash Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagetext\">Text Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagelicense\">License Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageinput\">Input Page</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pageprogress\">Progress Page</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"panel\"><a href=\"#default\" class=\"folder\" onclick=\"toggle(this)\"></a><a href=\"manual.html#inputtypes\">Input types</a>\r\n\t\t\t\t\t\t\t\t<ol class=\"init-hidden\">\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#app-root\">Application Root</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#checkbox\">Checkbox</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#comment\">Comment</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#date\">Date</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#directory\">Directory</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#file\">File</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#large-select\">Large Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password\">Password Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#password-confirm\">Confirm Password</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#select\">Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target\">Target</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#target-select\">Target Select</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#text\">Unvalidated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#validated\">Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extvalidated\">Externally Validated Text</a></li>\r\n\t\t\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#extractor\">Self Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#non-extractor\">Non Extractor</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#scripts\">Start Scripts</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#refs\">Dynamic References</a></li>\r\n\t\t\t\t\t\t\t<li class=\"sidebar\"><a href=\"manual.html#pagedisplay\">Page Displaying</a></li>\r\n\t\t\t\t\t\t</ol>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installertask.html\">Installer Ant task</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"validationofconfig.html\">Validation of config</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"lookandfeels.html\">LookAndFeels</a> <br/>(inc screenshots)</li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"classpathresources.html\">Resources/Classpath issues</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"i18n.html\">Internationalisation</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"auto.html\">Automated installs</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"installtypes.html\">Multiple install types</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"posttargets.html\">Post display targets</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"icons.html\">Button Icons</a></li>\r\n\t\t\t\t\t<li class=\"sidebar\"><a href=\"antinstall-config-example.html\">Example antinstall-config.xml</a></li>\r\n\t\t\t\t</ol>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"manual-ant.html\">Ant Manual</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"antlinks.html\">Ant links</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"userusage.html\">User usage</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"licenses.html\">Licenses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"potentialuses.html\">Potential uses</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"roadmap.html\">Road Map</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"wanted.html\">Wanted</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"dtds.html\">DTDs</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"changelog.html\">Changelog</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/projects/antinstaller\">Project page on SourceForge</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/antinstaller/index.html\">Java2HTML (main)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"java2html/ext/index.html\">Java2HTML (extensions)</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://antinstaller.cvs.sourceforge.net/antinstaller\">Public CVS over HTTP</a></li>\r\n\t\t\t<li class=\"sidebar\"><a href=\"http://sourceforge.net/sendmessage.php?touser=616485\">Contact AntInstaller Admin</a></li>\r\n\t\t</ol>\r\n\t</li>\r\n</ol>\r\n<br/>\r\n<br/>\r\n</div>\r\n\r\n\r\n<!-- menu end [segment-end]-->\r\n</div>\r\n<div id=\"contents-options\">\r\n<a id=\"toggle\" href=\"#\" onclick=\"toggleMenu(); return false;\">show menu</a>\r\n</div>\r\n\r\n</div>\r\n</body>\r\n</html>\r\n");
+            // end
+
+        } catch (Exception ex) {
+            if (out.getBufferSize() != 0)
+                out.clearBuffer();
+            pageContext.handlePageException(ex);
+        } finally {
+            out.flush();
+            _jspxFactory.releasePageContext(pageContext);
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/web/.classes/manual_0002dprint.java
===================================================================
--- /release-kits/shared/ant-installer/web/.classes/manual_0002dprint.java	(revision 14989)
+++ /release-kits/shared/ant-installer/web/.classes/manual_0002dprint.java	(revision 14989)
@@ -0,0 +1,98 @@
+import javax.servlet.jsp.*;
+import javax.servlet.jsp.tagext.*;
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.util.Vector;
+import org.tp23.jasper.runtime.*;
+import java.beans.*;
+import org.tp23.jasper.*;
+import org.tp23.jsp.*;
+import java.io.*;
+import java.util.*;
+
+
+public class manual_0002dprint extends ObjectJspBase {
+
+
+    static {
+    }
+    public manual_0002dprint( ) {
+    }
+
+    private static boolean _jspx_inited = false;
+
+    public final void _jspx_init() throws JasperException {
+    }
+
+    public void _jspService(final Destination destination)
+        throws IOException, JspEngineException {
+
+        ObjectJspFactory _jspxFactory = null;
+        ObjectPageContext pageContext = null;
+        Session session = null;
+        ObjectContainerContext application = null;
+        ObjectConfig config = null;
+        ObjectJspWriter out = null;
+        Object page = this;
+        String  _value = null;
+        try {
+
+            if (_jspx_inited == false) {
+                _jspx_init();
+                _jspx_inited = true;
+            }
+            _jspxFactory = destination.getServer().getObjectJspFactory();
+            pageContext = _jspxFactory.getPageContext(this, destination,
+			"", true, 8192, true);
+
+            application = pageContext.getObjectContainerContext();
+            config = pageContext.getObjectConfig();
+            session = destination.getSession();
+            out = pageContext.getOut();
+
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/manual-print.jsp";from=(0,0);to=(13,0)]
+                out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n<html>\r\n<head>\r\n  <title>Ant Installer</title>\r\n  <link href=\"style-print.css\" type=\"text/css\" rel=\"stylesheet\">\r\n  <link rel=\"SHORTCUT ICON\" href=\"images/antinstaller-icon.png\">\r\n  <meta name=\"keywords\"\r\n content=\"Ant, installer, AntInstaller, gui, console, input, parameters, properties, swing, user interface, validation, configuration\">\r\n</head>\r\n<body>\r\n\t<div class=\"tpheadertitle\">AntInstaller</div>\r\n\t<div class=\"tpcontent\">\r\n<!-- JSP start -->\r\n");
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/manual-print.jsp";from=(13,28);to=(14,0)]
+                out.write("\r\n");
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/manual-print.jsp";from=(14,30);to=(15,0)]
+                out.write("\r\n");
+            // end
+            // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/manual-print.jsp";from=(15,2);to=(34,0)]
+                
+                
+                String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+                File fleJspDir = new File(strJspDir);
+                
+                BufferedReader br = new BufferedReader(new FileReader(new File(fleJspDir, "manual.html")));
+                String line = null;
+                boolean copy = false;
+                while((line = br.readLine()) != null){
+                	if(line.indexOf("<h2>Manual</h2>") > -1) {
+                		copy = true;
+                	}
+                	else if(line.indexOf("<!-- content end [segment-end]-->") > -1) {
+                		copy = false;
+                	}
+                	if(copy) {
+                		out.println(line);
+                	}
+                }
+            // end
+            // HTML // begin [file="/home/teknopaul/workspace/AntInstaller/web/home/teknopaul/workspace/AntInstaller/web/manual-print.jsp";from=(34,2);to=(39,0)]
+                out.write("\r\n\t</div>\r\n</div>\r\n</body>\r\n</html>\r\n");
+            // end
+
+        } catch (Exception ex) {
+            if (out.getBufferSize() != 0)
+                out.clearBuffer();
+            pageContext.handlePageException(ex);
+        } finally {
+            out.flush();
+            _jspxFactory.releasePageContext(pageContext);
+        }
+    }
+}
Index: /release-kits/shared/ant-installer/web/Project.xml
===================================================================
--- /release-kits/shared/ant-installer/web/Project.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/web/Project.xml	(revision 14989)
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<java version="1.4.2_11" class="java.beans.XMLDecoder"> 
+ <object id="Project0" class="org.tp23.jtemplate.project.Project"> 
+  <void property="mergeInstructions"> 
+   <array class="org.tp23.jtemplate.project.MergeInstruction" length="2"> 
+    <void index="0"> 
+     <object class="org.tp23.jtemplate.project.MergeInstruction"> 
+      <void property="name"> 
+       <string>HTML Files</string> 
+      </void> 
+      <void property="pages"> 
+       <array class="java.io.File" length="26"/> 
+      </void> 
+      <void property="pagesPaths"> 
+       <array class="java.lang.String" length="26"> 
+        <void index="0"> 
+         <string>antinstall-config-example.jsp</string> 
+        </void> 
+        <void index="1"> 
+         <string>antlinks.html</string> 
+        </void> 
+        <void index="2"> 
+         <string>antricks.html</string> 
+        </void> 
+        <void index="3"> 
+         <string>auto.html</string> 
+        </void> 
+        <void index="4"> 
+         <string>browsersupport.html</string> 
+        </void> 
+        <void index="5"> 
+         <string>changelog.jsp</string> 
+        </void> 
+        <void index="6"> 
+         <string>classpathresources.html</string> 
+        </void> 
+        <void index="7"> 
+         <string>dtds.html</string> 
+        </void> 
+        <void index="8"> 
+         <string>headerframe.html</string> 
+        </void> 
+        <void index="9"> 
+         <string>i18n.html</string> 
+        </void> 
+        <void index="10"> 
+         <string>icons.jsp</string> 
+        </void> 
+        <void index="11"> 
+         <string>index.jsp</string> 
+        </void> 
+        <void index="12"> 
+         <string>installertask.html</string> 
+        </void> 
+        <void index="13"> 
+         <string>installtypes.html</string> 
+        </void> 
+        <void index="14"> 
+         <string>introduction.html</string> 
+        </void> 
+        <void index="15"> 
+         <string>licenses.html</string> 
+        </void> 
+        <void index="16"> 
+         <string>lookandfeels.html</string> 
+        </void> 
+        <void index="17"> 
+         <string>manual.html</string> 
+        </void> 
+        <void index="18"> 
+         <string>miniinstaller.html</string> 
+        </void> 
+        <void index="19"> 
+         <string>posttargets.html</string> 
+        </void> 
+        <void index="20"> 
+         <string>potentialuses.html</string> 
+        </void> 
+        <void index="21"> 
+         <string>quickstart.html</string> 
+        </void> 
+        <void index="22"> 
+         <string>roadmap.html</string> 
+        </void> 
+        <void index="23"> 
+         <string>userusage.html</string> 
+        </void> 
+        <void index="24"> 
+         <string>validationofconfig.html</string> 
+        </void> 
+        <void index="25"> 
+         <string>wanted.html</string> 
+        </void> 
+       </array> 
+      </void> 
+      <void property="parent"> 
+       <object idref="Project0"/> 
+      </void> 
+      <void property="templatePath"> 
+       <string>antinstaller-template.htmlt</string> 
+      </void> 
+     </object> 
+    </void> 
+    <void index="1"> 
+     <object class="org.tp23.jtemplate.project.JSPMergeInstruction"> 
+      <void property="name"> 
+       <string>JSP Files</string> 
+      </void> 
+      <void property="pages"> 
+       <array class="java.io.File" length="6"/> 
+      </void> 
+      <void property="pagesPaths"> 
+       <array class="java.lang.String" length="6"> 
+        <void index="0"> 
+         <string>antinstall-config-example.jsp</string> 
+        </void> 
+        <void index="1"> 
+         <string>changelog.jsp</string> 
+        </void> 
+        <void index="2"> 
+         <string>contents.jsp</string> 
+        </void> 
+        <void index="3"> 
+         <string>icons.jsp</string> 
+        </void> 
+        <void index="4"> 
+         <string>index.jsp</string> 
+        </void> 
+        <void index="5"> 
+         <string>manual-print.jsp</string> 
+        </void> 
+       </array> 
+      </void> 
+      <void property="parent"> 
+       <object idref="Project0"/> 
+      </void> 
+     </object> 
+    </void> 
+   </array> 
+  </void> 
+  <void property="name"> 
+   <string>AntInstaller</string> 
+  </void> 
+  <void property="projectFilePath"> 
+   <string>/home/teknopaul/workspace/AntInstaller/web/Project.xml</string> 
+  </void> 
+  <void property="rootPath"> 
+   <string>/wrong</string> 
+  </void> 
+ </object> 
+</java> 
Index: /release-kits/shared/ant-installer/web/antinstall-config-example.html
===================================================================
--- /release-kits/shared/ant-installer/web/antinstall-config-example.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/antinstall-config-example.html	(revision 14989)
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>Example antinstall-config.xml</h2>
+      <div class="xml">
+
+<span class="bracket">&lt;</span><span class="element">?xml</span> version=<span class="string">"1.0"</span>?<span class="bracket">&gt;</span><br/><span class="bracket">&lt;</span><span class="element">!DOCTYPE</span> installer PUBLIC <span class="string">"-//tp23 //DTD Ant Installer Config//EN"</span> <span class="string">"http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd"</span><span class="bracket">&gt;</span><br/><br/><span class="bracket">&lt;</span><a href="manual.html#installer" title="" class="element">installer</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ui=<span class="string">"swing,text"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verbose=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lookAndFeel=<span class="string">"org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"HttpFileServer Installer"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;windowIcon=<span class="string">"/resources/gkmain_inv.png"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultImageResource=<span class="string">"/resources/httpfileserver.png"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minJavaVersion=<span class="string">"1.4"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;antialiased=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finishButtonText=<span class="string">"Install"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;version=<span class="string">"1.0"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"splash"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"splash"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Auto-Installer"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;splashResource=<span class="string">"/resources/httpfileserver-splash.png"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;altText=<span class="string">"--(o--HttpFileSrver--o)--"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"input"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"intro"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Welcome"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#comment" title="" class="element">comment</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">""</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;explanatoryText=<span class="string">"Before you can install this server you must have Tomcat installed locally, and you must be able to find it"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#comment" title="" class="element">comment</a> displayText=<span class="string">""</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#comment" title="" class="element">comment</a> displayText=<span class="string">"Installer made with"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#comment" title="" class="element">comment</a> displayText=<span class="string">"http://antinstaller.sourceforge.net"</span> bold=<span class="string">"true"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"license"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"license"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"License conditions"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource=<span class="string">"/resources/GPL.txt"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Install Webapp"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;usePaging=<span class="string">"true"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"input"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"properties"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Select server features"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#text" title="" class="element">text</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"server.name"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Server Name"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"My HttpFileServer"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/text</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable M3U"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Playlist streaming"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable JEdit"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"JEdit applet editor"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable Groups"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Groups security"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable Linux Search"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Linux search in files"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Enable Linux Search Names"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Linux search file names"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"false"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Create Users"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Create Tomcat Users"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#target" title="" class="element">target</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target=<span class="string">"Install Source"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Install source code"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/target</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"input"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"server.properties"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Server options"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#validated" title="" class="element">validated</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"server.url"</span> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"http://localhost:8080"</span> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;explanatoryText=<span class="string">"Enter the protocol, host and port by which users reference your server"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Enter the desired URL"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;regex=<span class="string">"^http[s]*://[0-9a-zA-Z-.]+:*[0-9]*.*$"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#validated" title="" class="element">validated</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"context.name"</span> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"fileserver"</span> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;explanatoryText=<span class="string">"Only use letter and numbers for the context URL"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Enter the desired context URL"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;regex=<span class="string">"^[0-9a-zA-Z]+$"</span>/<span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#app-root" title="" class="element">app-root</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"tomcat.dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"/usr/local/jakarta-tomcat-4.0.1"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValueWin=<span class="string">"C:\jakarta-tomcat-4.0.1"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Locate the Tomcat dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkFile1=<span class="string">"conf/server.xml"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkFile2=<span class="string">"conf/tomcat-users.xml"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkDir1=<span class="string">"webapps"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/app-root</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#directory" title="" class="element">directory</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"files.dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"/var/www"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValueWin=<span class="string">"C:\www"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Enter the data directory"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkExists=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/directory</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#directory" title="" class="element">directory</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"temp.dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"/tmp/httpfileserver"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValueWin=<span class="string">"C:\wwwtmp"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Enter a directory for temporary files"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkExists=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/directory</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"input"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"source.code"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Source destination"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifTarget=<span class="string">"Install Source"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#directory" title="" class="element">directory</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property=<span class="string">"src.dir"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValue=<span class="string">"<a href="manual.html#refs" title="" class="reference">${java.user.home}</a>/HttpFileServer"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaultValueWin=<span class="string">"<a href="manual.html#refs" title="" class="reference">${java.user.home}</a>/HttpFileServer"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Select directory for the source code"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create=<span class="string">"true"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkExists=<span class="string">"true"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/directory</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><a href="manual.html#page" title="" class="element">page</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=<span class="string">"progress"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=<span class="string">"progress"</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayText=<span class="string">"Installation progress"</span><span class="bracket">&gt;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;<span class="bracket">&lt;</span><span class="element">/page</span><span class="bracket">&gt;</span><br/><span class="bracket">&lt;</span><span class="element">/installer</span><span class="bracket">&gt;</span><br/>
+
+
+		</div>
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/antinstall-config-example.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/antinstall-config-example.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/antinstall-config-example.jsp	(revision 14989)
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>Example antinstall-config.xml</h2>
+      <div class="xml">
+<%@page import="java.io.*" %><%@page import="java.util.*" %>
+<%
+	String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+	File fleJspDir = new File(strJspDir);
+	File exampleFile = new File(fleJspDir, "antinstall-config-example.xml");
+	BufferedReader br = new BufferedReader(new FileReader(exampleFile));
+	StringBuffer file = new StringBuffer();
+	String line = null;
+	while( (line = br.readLine()) != null ){
+		file.append(line).append('\n');
+	}
+	out.println(decorateXml(file));
+%>
+<%!
+private String decorateXml(StringBuffer file){
+	boolean inString = false;
+	boolean inElement = false;
+	boolean inRef = false;
+	StringBuffer sb = new StringBuffer();
+	StringBuffer element = new StringBuffer();
+	StringBuffer reference = new StringBuffer();
+	int elemStart = -1;
+	for (int i = 0; i < file.length(); i++){
+		char c = file.charAt(i);
+		switch(c){
+			case '$' : {
+				if(file.charAt(i + 1) == '{'){
+					inRef = true;
+					sb.append("<a href=\"manual.html#refs\" title=\"\" class=\"reference\">$");
+				}
+				else {
+					sb.append(c);
+				}
+				break;
+			}
+			case '}' : {
+				if(inRef){
+					inRef = false;
+					sb.append("}</a>");
+				}
+				else {
+					sb.append(c);
+				}
+				break;
+			}
+			case '<' : {
+				inElement = true;
+				elemStart = i;
+				sb.append("<span class=\"bracket\">&lt;</span>");
+				break;
+			}
+			case '>' : {
+				if(inElement){
+					sb.append(createLink(element.toString()));
+					element = new StringBuffer();
+					inElement = false;
+				}
+				sb.append("<span class=\"bracket\">&gt;</span>");
+				break;
+			}
+			case ' ' : {
+				if(inElement){
+					sb.append(createLink(element.toString()));
+					element = new StringBuffer();
+					inElement = false;
+				}
+				sb.append(' ');
+				break;
+			}
+			case '\t' : {
+				if(inElement){
+					sb.append(createLink(element.toString()));
+					element = new StringBuffer();
+					inElement = false;
+				}
+				sb.append("&nbsp;&nbsp;&nbsp;&nbsp;");
+				break;
+			}
+			case '\"' : {
+				if(!inString) {
+					sb.append("<span class=\"string\">\"");
+				}
+				else {
+					sb.append("\"</span>");
+				}
+				inString = !inString;
+				break;
+			}
+			case '&' : {
+				sb.append("&amp;");
+				break;
+			}
+			case '\n' : {
+				if(inElement) {
+					sb.append(createLink(element.toString()));
+					element = new StringBuffer();
+					inElement = false;
+				}
+				sb.append("<br/>");
+				break;
+			}
+			default : {
+				if(inElement) {
+					element.append(c);
+				}
+				else {
+					sb.append(c);
+				}
+				break;
+			}
+		}
+	}
+	return sb.toString();
+}
+
+private String createLink(String element){
+	if(element.startsWith("/")) {
+		return "<span class=\"element\">" + element + "</span>";
+	}
+	
+	if("?xml".equals(element.trim())){
+		return "<span class=\"element\">" + element + "</span>";
+	}
+	if("!DOCTYPE".equals(element.trim())){
+		return "<span class=\"element\">" + element + "</span>";
+	}
+	return "<a href=\"manual.html#" + 
+	element.trim() + 
+	"\" title=\"\" class=\"element\">" + 
+	element.trim() + 
+	"</a>" + 
+	element.substring(element.trim().length());
+}
+%>
+		</div>
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/antinstall-config-example.xml
===================================================================
--- /release-kits/shared/ant-installer/web/antinstall-config-example.xml	(revision 14989)
+++ /release-kits/shared/ant-installer/web/antinstall-config-example.xml	(revision 14989)
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd">
+
+<installer
+		ui="swing,text"
+		verbose="true"
+		debug="true"
+		lookAndFeel="org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"
+		name="HttpFileServer Installer"
+		windowIcon="/resources/gkmain_inv.png"
+		defaultImageResource="/resources/httpfileserver.png"
+		minJavaVersion="1.4"
+		antialiased="true"
+		finishButtonText="Install"
+		version="1.0">
+	<page
+		type="splash"
+		name="splash"
+		displayText="Auto-Installer"
+		splashResource="/resources/httpfileserver-splash.png"
+		altText="--(o--HttpFileSrver--o)--">
+	</page>
+	<page
+		type="input"
+		name="intro"
+		displayText="Welcome">
+		<comment
+			displayText=""
+			explanatoryText="Before you can install this server you must have Tomcat installed locally, and you must be able to find it"
+			/>
+		<comment displayText=""/>
+		<comment displayText="Installer made with"/>
+		<comment displayText="http://antinstaller.sourceforge.net" bold="true"/>
+	</page>
+	<page
+		type="license"
+		name="license"
+		displayText="License conditions"
+		resource="/resources/GPL.txt"
+		target="Install Webapp"
+		usePaging="true"/>
+	<page
+		type="input"
+		name="properties"
+		displayText="Select server features">
+		<text
+			property="server.name"
+			displayText="Server Name"
+			defaultValue="My HttpFileServer">
+		</text>
+		<target
+			target="Enable M3U"
+			displayText="Playlist streaming"
+			defaultValue="false">
+		</target>
+		<target
+			target="Enable JEdit"
+			displayText="JEdit applet editor"
+			defaultValue="false">
+		</target>
+		<target
+			target="Enable Groups"
+			displayText="Groups security"
+			defaultValue="false">
+		</target>
+		<target
+			target="Enable Linux Search"
+			displayText="Linux search in files"
+			defaultValue="false">
+		</target>
+		<target
+			target="Enable Linux Search Names"
+			displayText="Linux search file names"
+			defaultValue="false">
+		</target>
+		<target
+			target="Create Users"
+			displayText="Create Tomcat Users"
+			defaultValue="true">
+		</target>
+		<target
+			target="Install Source"
+			displayText="Install source code"
+			defaultValue="true">
+		</target>
+	</page>
+	<page
+		type="input"
+		name="server.properties"
+		displayText="Server options">
+		<validated
+			property="server.url" 
+			defaultValue="http://localhost:8080" 
+			explanatoryText="Enter the protocol, host and port by which users reference your server"
+			displayText="Enter the desired URL"
+			regex="^http[s]*://[0-9a-zA-Z-.]+:*[0-9]*.*$"/>
+		<validated
+			property="context.name" 
+			defaultValue="fileserver" 
+			explanatoryText="Only use letter and numbers for the context URL"
+			displayText="Enter the desired context URL"
+			regex="^[0-9a-zA-Z]+$"/>
+		<app-root
+			property="tomcat.dir"
+			defaultValue="/usr/local/jakarta-tomcat-4.0.1"
+			defaultValueWin="C:\jakarta-tomcat-4.0.1"
+			displayText="Locate the Tomcat dir"
+			checkFile1="conf/server.xml"
+			checkFile2="conf/tomcat-users.xml"
+			checkDir1="webapps">
+		</app-root>
+		<directory
+			property="files.dir"
+			defaultValue="/var/www"
+			defaultValueWin="C:\www"
+			displayText="Enter the data directory"
+			create="true"
+			checkExists="true">
+		</directory>
+		<directory
+			property="temp.dir"
+			defaultValue="/tmp/httpfileserver"
+			defaultValueWin="C:\wwwtmp"
+			displayText="Enter a directory for temporary files"
+			create="true"
+			checkExists="true">
+		</directory>
+	</page>
+	<page
+		type="input"
+		name="source.code"
+		displayText="Source destination"
+		ifTarget="Install Source">
+		<directory
+			property="src.dir"
+			defaultValue="${java.user.home}/HttpFileServer"
+			defaultValueWin="${java.user.home}/HttpFileServer"
+			displayText="Select directory for the source code"
+			create="true"
+			checkExists="true">
+		</directory>
+	</page>
+	<page
+		type="progress"
+		name="progress"
+		displayText="Installation progress">
+	</page>
+</installer>
Index: /release-kits/shared/ant-installer/web/antinstaller-template.htmlt
===================================================================
--- /release-kits/shared/ant-installer/web/antinstaller-template.htmlt	(revision 14989)
+++ /release-kits/shared/ant-installer/web/antinstaller-template.htmlt	(revision 14989)
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>TEMPALTE</h2>
+Example template text
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+file://contents-include.html
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/antlinks.html
===================================================================
--- /release-kits/shared/ant-installer/web/antlinks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/antlinks.html	(revision 14989)
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Ant Links</h2>
+			<br/>
+			<ul>
+				<li><a href="http://ant.apache.org">Apache Ant home page</a></li>
+				<li><a href="manual/manual/index.html">Local manual for AntInstaller's Ant version</a></li>
+				<li><a href="http://ant.apache.org/manual/index.html">Current apache.org Ant documentation</a></li>
+				<li><a href="http://ant-contrib.sourceforge.net/">Extra tasks for Ant</a></li>
+			</ul>
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/antricks.html
===================================================================
--- /release-kits/shared/ant-installer/web/antricks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/antricks.html	(revision 14989)
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                                 <h2>Ant tricks</h2>
+The back end of AntInstaller is Ant so you can do anything with AntInstaller that Ant can do.
+However there are a few things that an installer should do that you may not be aware of and this
+page is a start at highlighting them.
+			<br>
+			Please get in contact if you have other tips and tricks that might help other users.
+			<h3>Windows Shortcuts</h3>
+To get Ant to create Windows shortcuts you have to set up a few hooks into standard windows libraries.
+Essentilly you need to use RunDLL and pass a windows setup .INF file.  
+You can not deliver the .INF file correct for every system so you should use the replace task on the delivered file
+to set the final location of the .ICO files that will be used and the final location of the executables or
+files to create shortcuts to.<br><br>
+
+<b>installIcons.inf</b> N.B. the ridiculous multiple quotes are obligatory.  After deploying this file
+the <code>@installDir@</code> must be replaced with the actual installation directory using Ant replace.
+<pre style="font-size:9px">
+[version]
+signature="$chicago$"
+
+[DefaultInstall]
+UpdateInis=Addlink
+
+[AddLink]
+setup.ini, progman.groups,, "group0=DBusViewer (enhanced)"
+setup.ini, group0,, ""DBusViewer (enhanced)""
+setup.ini, group0,, """DBusViewer (enhanced)"",""cmd /c """"@installDir@\bin\MessageViewer.cmd"""""",""@installDir@\bin\favicon.ico"",0,"
+
+setup.ini, progman.groups,, "group0=DBusViewer (enhanced)"
+setup.ini, group0,, ""DBusViewer (enhanced)""
+setup.ini, group0,, """Edit Start Script"",""notepad.exe "@installDir@\bin\MessageViewer.cmd""",,0,"
+</pre>
+
+To execute this install on Win32 systems the following command must be run, with appropriate replacements.
+<pre style="font-size:9px">
+rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 @deploymentDir@\installIcons.inf
+</pre>
+
+The following is an except from a <code>build.xml</code> file to achieve the above.
+<pre style="font-size:9px">
+&lt;target name="Install Icons" depends=""&gt;
+&lt;echo message="Installing Icons"/&gt;
+	&lt;replace file="${basedir}\installIcons.inf"&gt;
+		&lt;replacefilter token="@installDir@" value="${installDir}"/&gt;
+	&lt;/replace&gt;
+
+	&lt;exec executable="rundll32.exe"&gt;
+		&lt;arg value="setupapi,InstallHinfSection"/&gt;
+		&lt;arg value="DefaultInstall"/&gt;
+		&lt;arg value="132"/&gt;
+		&lt;arg value="${basedir}\installIcons.inf"/&gt;
+	&lt;/exec&gt;
+&lt;/target&gt;
+</pre>
+
+Clearly this will not work on Linux, there is a task in developent to run targets based on OS for the moment just
+add a target element that allows users to select this target if they are running on windows and want icons created.
+
+On Windoze95 the 16 bit rundll is required and the command is slightly different. Investigate on the web if you
+must support Windows95.
+
+    
+P.S.  does anyone know how to add KDE and of Gnome Icons
+
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/auto.html
===================================================================
--- /release-kits/shared/ant-installer/web/auto.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/auto.html	(revision 14989)
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+			  <h2>Automated installations</h2>
+			  
+			<i>``The great thing about text-auto is it gives you completely silent builds just like Ant. The downside to text-auto is that it gives you completely silent builds just like Ant.''</i><br/>
+			<div align="right">
+              -- Paul Hinds<br>
+               Ant Installer Group
+            </div><br/>
+            
+            Welcome to Automated installations, how to take the user interaction out of your user interactive installs!<br/><br/>
+			
+			
+			A much requested feature is automated installations.  Generally it is expected that programs would be delivered with AntInstaller specifically to be able to configure the installations manually, however it is useful to be able to reinstall in a particular environment without having to manually re-enter the properties.  The defaults in the <code>antinstall-config.xml</code> file may not be the correct defaults for the specific environment on which the installation is performed. <br/><br/>
+
+			Be carefull if delivering installers that can be fully automated to third parties,  you should fully understand the consequences of the options before using this feature.  That said, this feature can prevent making human errors with repeated installations in a controlled environment such as reinstalling software on a series of servers.  It is generally safest to use the prompt options when delivering to third parties. <br/><br/>
+
+			To handle these use cases an additional attribute has been added to the installer element and two new UI overrides have been added. <br/><br/>
+
+			The loadDefaults attribute of the installer element can be set to <i>true</i>, <i>false</i>, <i>prompt</i> or <i>prompt-auto</i>.  
+			<ul>
+			
+			<li>When loadDefaults is <i>true</i> the current directory is searched for <code>ant.install.properties</code> and, if found, it is used to reset the default values for all properties and targets.  </li>
+			<li>When loadDefaults is <i>prompt</i> the user is prompted if the file is found and has the option to load the properties or not. Automatic installs without loaded properties sets are not permitted with this option.</li>
+			<li>The <i>prompt-auto</i> loadDefaults option is not expected to be used often. It caters for the situation when it is required that the installer can be run with out any user interaction using only the default values provided in <code>antinstall-config.xml</code> or run with configured properties. If existing properties are found they can be loaded, but if not loaded and either <i>text-auto</i> or <i>swing-auto</i> is selected on the command line the installer will run with no user defined properties.</li>
+			<li>When loadDefaults is <i>false</i> the current directory is not checked for exiszting properties files.</li>
+			</ul>
+			
+			When the installer is run <code>ant.install.properties</code> is written to the current directory, if the current directory is not writable no warning message is given since repeatable installs are not always required. <br/><br/>
+
+			Two additional UI overrides have been added <i>swing-auto</i> and <i>text-auto</i> which can be specified as the first parameter on the command line.  <i>swing-auto</i> loads the swing GUI and skips directly to the progress page with all default values set.  <i>text-auto</i> runs the installer with default values with no questions asked except, potentially, the loadDefaults prompt.  To enable these UI overrides the ui attribute of the installer element must be set in <code>antinstall-config.xml</code>. <br/>
+			for example
+<pre>
+&lt;installer
+	ui="swing,text,swing-auto"
+	...
+</pre>
+			Be careful if setting loadDefaults to <i>true</i>, if <i>text-auto</i> is enabled, selected by the user on the command line and the <code>ant.install.properties</code> file is missing or out of date, an incorrect install will be performed with no oportunity to prevent it.  This is permitted because it may be requried to run the installer with no prompts using the default values specifed in the <code>antinstall-config.xml</code> file. Completely silent, repeatable, installs on the command line are possible with this option.<br/><br/>
+
+			The "automated installations" feature is not compatible with <a href="installtypes.html" title="multiple install types">multiple install types</a> without care.  If a specific -type is used when repeating the install the same -type should be specified, antinstaller does not currently check this.  <br/><br/>
+
+			  <h2>Version control</h2>
+			Version control is provided by setting the version attribute of the installer element of <code>antinstall-config.xml</code>.  Increment the major version to indicate that old properties files are no longer valid.  Increment the minor version to indicate that old properties are valid but some additional manual entering of properties is required.  -auto builds are only permitted if the major and minor versions match.
+			
+			The version numbers support the following syntax. <code>1.4.2</code> where 1 is the major version and 4 then 2 are minor versions. For each major or minor version the strings <code>alpha</code>, <code>beta</code> and <code>gamma</code> can be appended with or with out a <code>-</code> (as required by java) to indicate the state of the code. No additional string is considered to be the best version.  <code>1.4.2 > 1.4 > 1.4beta.2 == 1.4-beta.2</code>
+			  
+			  <h2>Simple use cases</h2>
+			To help explain the options provided some simple use cases are described here.<br/><br/>
+			
+			To enable end users to reload the values they used in a previous install set <code>ui="swing,text"</code> and set <code>loadDefaults="prompt"</code>.<br/><br/>
+			
+			To enable end users to reload the values they used in a previous install and not have to click through the pages set <code>ui="swing,text,swing-auto,text-auto"</code> and set <code>loadDefaults="prompt"</code>.<br/><br/>
+			
+			To run repeatable silent server installations set <code>ui="text,text-auto"</code> and <code>loadDefaults="true"</code>. First time run <code>java -jar myinstaller.jar</code> and enter the properties.  When the installer has finished hard code any passwords.<br/>
+			When you wish to update the code create a new myinstaller.jar and run <code>java -jar myinstaller.jar text-auto</code>.<br/>
+			Should you wish to change the property values or add additional properties delete <code>ant.install.properties</code> from the current directory and run the installer with <code>java -jar myinstaller.jar</code>.<br/><br/>
+			
+			
+			  <h2>antinstaller- targets</h2>
+			antinstaller- targets that are run when pages are shown are run in the -auto modes depending on the current state if ifProperty and ifTarget tests.  If you want to use antinstaller- tasks and support -auto modes you have to work out what the consequences are for your installer. You can also set appropriate properties and use the <code>if</code> attribute in Ant target elements to specify additional process to compensate for -auto builds.<br/><br/>
+
+			You should notice that also if the antinstaller- targets render messages they will be run automatically during swing-auto builds causing (probably unwanted) popups.
+
+			  <h2>Password handling</h2>
+			Passwords are not written to <code>ant.install.properties</code>, if a password field is missing the user is warned that the defaults from <code>antinstall-config.xml</code> will be used.  This can be avoided by entering the password in plain text into <code>ant.install.properties</code> with a text editor provided that does not create security risks.
+			
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/browsersupport.html
===================================================================
--- /release-kits/shared/ant-installer/web/browsersupport.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/browsersupport.html	(revision 14989)
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+		<h2>Browser Support</h2>
+		
+		Designed for FireFox<br/><br/>
+
+		<a href="http://getfirefox.com/"
+				title="Get Firefox - The Browser, Reloaded."><img
+				src="images/browser/firefox-spread-btn-2.png"
+				width="180" height="60" alt="Get Firefox"></a>
+		<br/>
+		<script language="JavaScript" type="text/javascript">
+		function addSidebar(title, link){ 
+			if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")){
+				window.sidebar.addPanel (title, link, "");
+			}
+		} 
+		</script>
+		<br/>
+		If you have Mozilla/Firefox
+		<a href="#" onclick="javascript:addSidebar('AntInstaller SideBar', 'http://antinstaller.sourceforge.net/contents.html');return false;">Add a sidebar</a> for this site.<br/><br/>
+
+
+		This site is tested (quickly) in the following browsers<br/><br/>
+		<a href="http://www.getfirefox.com" title="Take back the web"><img src="images/browser/firefox.png"  alt="Firefox"/></a> Firefox<br/>
+		<a href="http://konqueror.kde.org" title="Konqueror"><img src="images/browser/konqueror.png" alt="Konqueror"/></a> Konqueror<br/>
+		<a href="http://www.opera.com"  title="Opera"><img src="images/browser/opera.png" alt="Opera"/></a> Opera<br/>
+		<a href="http://www.mozilla.org"  title="Mozilla"><img src="images/browser/mozilla.png" alt="Mozilla"/></a> Mozilla<br/>
+		<img src="images/browser/ie.png" alt="IE"/></a> IE6 (wouldn't it be nice if M$ supported PNG without at a JavaScript hack)<br/><br/>
+		
+		Where possible we conform to <br/><br/>
+		<a target="_top" href="http://validator.w3.org/check?uri=referer"><img border="0"
+				src="http://www.w3.org/Icons/valid-html401"
+				alt="Valid HTML 4.01!" height="31" width="88"></a>
+		<a target="_top" href="http://jigsaw.w3.org/css-validator/">
+		<img style="border:0;width:88px;height:31px"
+			src="http://jigsaw.w3.org/css-validator/images/vcss" 
+			alt="Valid CSS!">
+		</a>
+		
+		<br/><br/>
+		The site does not get regularly tested in Windose since most development is done on Linux. Please <a href="http://sourceforge.net/sendmessage.php?touser=616485" title="contact">get in contact</a> if you have problems with other browsers or you find a bug.  Let me know if there are Mac problems.  We have recently changed from desktop color set to fixed colors since some of them flashy mac themes made everything including text go white.
+		
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/changelog.html
===================================================================
--- /release-kits/shared/ant-installer/web/changelog.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/changelog.html	(revision 14989)
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+
+
+		<h2>Changelog</h2>
+		This is the current change log from the build, it may be more upto date that the latest public release.
+		<br/>
+		<pre></pre><hr/><pre>
+version 0.2
+Fixed a bug with the ordering of targets.
+Added app-root element.
+Hid the passwords and added a new properties file renderer with more verbose output.
+Fiddled with windoze script. (help wanted its not good scripting)
+</pre><hr/><pre>
+version 0.3
+Introduced fixed basedir for build.xml files to remove dependency on current
+	directory.
+Introduced SelfExtractor code to deliver installers as a single Jar file.
+Fixed some intermittent bugs in the sysout.jar library.
+Improved feedback of running Ant tasks.
+Added different default values for windows and Unix for directories and files.
+Added an ifTarget attribute to conditionally show installation pages.
+Added a Date input type.
+</pre><hr/><pre>
+version 0.4
+Fixed un-important error in the install-config.xml for the demo application.
+Fixed more bugs in sysout.jar related to reusing the graphics buffer.
+Added popup to save/clear in the sysout.jar.
+Fixed double printing in sysout.jar.
+Added corner button to sysout.jar to jump to final message.
+UI improvements including focusing correct buttons and better layouts.
+Changes to the way Properties are saved internally in preparation for allowing 
+	${prop.name} syntax in future versions.
+</pre><hr/><pre>
+version 0.5
+Fixed an introduced bug when an input page is skipped in text mode.
+Added paging to the license page in text mode.
+Fixed bug printing passwords to properties file.
+Big internal changes to the way properties are stored and referenced 
+	to allow ${refs}.
+Other internal changes to the name of InputFields that do not actually 
+	collect input to OutputField.
+Allow the use of .. in file and directory references and display the 
+	correct absolute path reference.
+</pre><hr/><pre>
+version 0.6
+The XML DTD should be upgraded to 0.6 to use some new features.
+Added a modified version of JGoodies' (excelent) Look And Feel to reduce 
+	the size of the installers and include and option for anti-aliased fonts 
+	in the swing GUI. 
+	- Anti-aliasing is resource intensive but good looking.
+	- The package name has been changed to maintain compatibility on the classpath
+	  with the original JGoodies files, the new package is org.tp23.jgoodies.
+Added a splash page feature to show an image.
+Added an (optional) image to the extract progress window.
+Added a new input type large-select for drop down lists.
+Fixed errors from targets on the first page in the Swing UI. 
+Fixed errors if defaultValue is null. (however it should not be set to null)
+Fixed a bug in the selfextractor when the jar is saved in a path with spaces 
+	or other non text characters.
+Added documents about the scrolling in license page.
+Removed images from the default build of antinstaller.jar 
+	- Any existing builds that are to be upgraded and use the default images, 
+	  should add the images to the classpath. The images are included in the 
+	  download in the /images directory.
+The online manual has been updated, all the changes are included in the download.
+Added some of the new features to the examples and the AnInstaller installer.
+</pre><hr/><pre>
+version 0.7
+File and Directory choosers will now show hidden files .
+	Thanks to Markus Dueringer for the tip.
+Environment variables can now be accesses in default values with the 
+	${env.ProgramFiles} syntax. - thanks again to Markus Dueringer
+Also the Java system properties can be accessed with the "java." prefix. 
+	- e.g ${java.user.name}
+Show details button was not big enough in some LAFs - thanks to Mike Watts.
+There are known issues with the directory selector and the Metouia LAF, 
+	I can't replicate the issues but if you have problems.
+	a) use the modified JGoodies which apparently does not have this problem.
+	b) keep the stack traces and report them please!
+	When using the selfextractor from windows or X users will probably not 
+	see the errors anyway.
+Better defaulting is included for the Directory chooser	<page
+			 type="text"
+			 name="intro.1"
+			 displayText="HTML page"
+			 htmlResource="/resources/text.html"
+			 textResource="/resources/text.txt"
+			 overflow="true" />
+	the home directory will be shown less often, it was particularly annoying 
+	when the chooser is used to create a new directory
+</pre><hr/><pre>
+version 0.7.1
+Bug fix in Defaulting Directory Chooser that manifested in not being able to see 
+	directories in app-root.
+RFE-1154368 Can't install from a read only source fixed.
+	The log file is written to the temp dir if it cannot write to the current dir.
+	The ant.install.properties file is only written if it can be since it is 
+	primarily for debug.
+	- There is no requirement to add <property file="ant.install.properties"/> 
+	  to the build file any more properties will be added directly to the 
+	  build as with secret properties.
+</pre><hr/><pre>
+version 0.7.2
+Changed the implementation of the Progress Details so selecting text is now possible.
+	This is more stable too. It has the side effect of keeping the whole System.out 
+	and System.err in memory which is only an issue for veeerrry long builds on 
+	machines with too little RAM.
+Changed minor bug where directly edited (not via the chooser) file inputs were 
+	replaced with defaults if the user when back.
+Added TargetSelectInput by Mark Anderson providing the option of radio buttons 
+	for targets instead of checkboxes.
+Fixed an introduced bug launching from the root drive when ANT_HOME was not set.
+Introduced a new "NonExtractor" this is a replacement mechanism to the SelfExtractor.
+	The Jar is still used to run the installer but the files are not extracted 
+	by default. 
+	In the build.xml files should be specifically extracted using  unzip with 
+	nested patternsets to specify the files to extract.
+	This provide opportunities to improve the performance of installers.
+	Unzipping can now be performed directly into the installation directories rather 
+	than unzipping and then copying or moving.
+	Also the antinstaller classes and LookAndFeel and Xerces need no longer 
+	be extracted.
+Added an new feature to the ifProperty attribute so the property being tested can 
+	come from the environment or the java system properties.
+	for example ifProperty="${env.SHELL}=/bin/bash thanks to Eddyrun.
+	The old syntax of property=value is deprecated in favour of ${property}=value
+	N.B.  ${property}=${value} is NOT supported.
+Big internal changes to the Execution class to use a filter pattern currently 
+	hardcoded but with intent to allow pluggable pre and post install tasks.
+</pre><hr/><pre>
+version 0.7.3
+Added overflow="true" to simple input page.
+GridBag Layout used instead of absolute positioning modified to support overflow size
+	difference.
+More Images and Icons added to a separate download.
+Added GUI tools for Quick start.
+A Much more flexible ifProperty syntax supporting some standard operator with non 
+standard syntax (see the docs).
+Fixed a fatal introduced bug in the console version installer
+</pre><hr/><pre>
+version 0.7.4
+Added an optional feature to hide password on the console. set textMask="true".
+	N.B.  this does not work in eclipse's console and may not be a stable solution
+Implemented plugable filter chains to add steps to the install process.
+	An example releaseNotes plugin is provided.
+Added ext-validated type for pluggable field validation as yet unteset 
+	and undocumented.
+Added an Ant task to build installers using Ant.
+Added a modified version of the MetalLookAndFeel to reduce download size and still 
+	be able to get the required amount of text in labels and buttons.
+Added LookAndFeel names : "default"|"jgoodies", "greymetal" or "null" .
+Further testing to allow downloads without including xercesImpl.jar or xml-apis.jar
+Added progress pane enhancements to show the targets running for visual feedback of 
+	install progress without having to monitor the output logs which can be 
+	ugly/confusing.
+XMLValiation of test scripts and minor changes in the DTD.
+Extended validation of config and integrated validation into the installer Ant task.
+N.B. passing command line parameters to the build is an override of the detection 
+	method, start scripts should be modified if the default behaviour is requried.
+	e.g. java -cp $CP org.tp23.antinstaller.runtime.ExecInstaller default . 
+	will not override the default behaviour or trying X and falling back 
+	to text/console
+Added an untested feature for including arbitrary validation classes ExtValidated
+Assorted fixes for i18n.
+app-root no longer creates the directory if it is missing.
+</pre><hr/><pre>
+version 0.8
+Added features to load defaults from previous installs and perform almost silent 
+	installs property names and targets must not end with the string -targets, 
+	this is validated in the config checker.
+Comments expand property values.
+Multiline comments via use of explanatoryText and a null displayText value.
+Fixed a display bug in the progress renderer if there were more than 5 
+	targets and none that were dependencies.
+PropertyLoaderFilter added, any users with custom .fconfig files should 
+	ensure thier custom versions are still compatible.
+Added a release notes feature that is a tad tricky to install so 
+	contact for details.
+Added HTML page feature that allows using the Java HTML rendering to display 
+	a page of HTML property references are expanded so the page can contain 
+	${property.name} syntax to give feed back of selected properties.
+	Images are loaded from the classpath so the following syntax will locate 
+	and display an image &lt;img src="/resources/temazo.png"&gt;.
+	Java HTML rendering is poor at best and only html3.2 ,
+	so dont expect firefox quality rendering ;)
+	The java renderer handles PNG properly though so nice .
+	trancparency effects can be achieved.
+Fixed bug in validation if only target-selects are used.
+Extended i18n for antinstall-config.xml files using ResourceBundles 
+	called LanguagePack
+GUI tool for creating LanguagePack files.
+Changes to the Expression code for ifProperty attributes
+	The original syntax is not 100% compatible e.g.  my.property=value1
+	will not work it should be converted to ${my.property}=value1.
+Initial work on loading existing values if found to automate installs.
+	Not quite silent installs but save repeating entries.
+Added ability to stretch the GUI horizontally, but still using fixed widths.
+	Set the wide attribute in the installer element to configure width 
+	e.g. 600:275
+Added the ability to deliver different install types in the same Jar which 
+	can be selected on the command line with -type [install type].
+Added icons to the buttons in the swing GUI,  the installer Ant task now takes 
+	a new attribute called icons to specify which icon pack to use.
+Added ability to run special Ant tasks mid build, the same build-xml file is used
+	but the message rendering and logging is different in the antinstaller- tasks
+Added icons for kde and windows to the AntInstaller SelfExtractor, lots of Ant 
+	hacking to avoid extra dependencies.
+Migrated classes from sysout.jar into the core src packages
+Renamed ant-ext.jar to ant-installer-ext.jar  
+	all build files will need to be updated
+
+		&nbsp;
+		</pre>
+		<hr/>
+		<br/><br/>
+		Site last generated:Sun Jan 28 22:45:11 CET 2007
+		<br/><br/>
+		
+		CVS AntInstaller development version:beta0.8
+			</div>
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/changelog.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/changelog.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/changelog.jsp	(revision 14989)
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+<%@page import="java.io.*"%>
+<%@page import="java.util.*"%>
+		<h2>Changelog</h2>
+		This is the current change log from the build, it may be more upto date that the latest public release.
+		<br/>
+		<pre><%
+		String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+		File fleJspDir = new File(strJspDir);
+		
+		BufferedReader br = new BufferedReader(new FileReader(new File(fleJspDir, "../CHANGELOG.txt")));
+		String line = null;
+		while((line=br.readLine())!=null){
+		  if(line.startsWith("CHANGELOG"));
+			else if(line.equals(""));
+			else if(line.startsWith("=============="))out.println("</pre><hr/><pre>");
+			else out.println(line);
+		}
+		%>
+		&nbsp;
+		</pre>
+		<hr/>
+		<br/><br/>
+		Site last generated:<%=new java.util.Date()%>
+		<br/><br/>
+		<%
+		Properties versionProps = new Properties();
+		versionProps.load(new FileInputStream(new File(fleJspDir, "../build/version.properties")));
+		%>
+		CVS AntInstaller development version:<%=versionProps.getProperty("ant.install.version")%>
+			</div>
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/classpathresources.html
===================================================================
--- /release-kits/shared/ant-installer/web/classpathresources.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/classpathresources.html	(revision 14989)
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                                 <h2>Classpath / Resource issues</h2>
+			
+			<h3>Self-Extracting Jar</h3>
+AntInstall supports delivering the installation package as a self extracting
+Jar.  In Windows if the Java installer from Sun has
+been used and the default application for files that end in <code>.jar</code> has not been changed, double clicking
+on the Jar will launch the installer.  To launch from the command line type<br/>
+<code>&gt; java -jar [installer_name].jar</code>  <br/><br/>
+
+If all classes are packaged in a single Jar everything is on the same classpath, this is useful for almost all situations.
+However, if your installer absolutely requires separate classpaths, for example if custom tasks have clashing dependencies, the classpath must be defined as it would in a normal Ant build.  To achieve this you will have to package the Jars in a self-extractor or, for the non-extractor, extract the Jars to temporary space first.<br/><br/>
+
+If delivering an installer on a CDROM there is no need to package the installer
+as a single Jar.  In which case the following applies.  <br/>
+			<h3>Install Scripts</h3>
+<b>For Linux installations.</b><br/>
+It is recommended to tar and gzip the components with the <code>install.sh</code>(with
+execute permissions) script in the root of the archive. The user should
+the run (or double click on) the script after uncompressing the archive
+to a temporary directory. This is a generally understood method, for
+Linux it is tipical to include a README or INSTALL file with simple
+instructions i.e. "run the install script and follow instructions". Also 
+creating a copy of the script and calling it <code>./configure</code> 
+will help users used to installing with <code>./configure;make;make
+install</code> who don't read your documents. <br/>
+      <br/>
+<b>For Window$ installations.</b><br/>
+For windows installations it is better to use the ZIP compression format.  The demo app includes
+an example of a windows start script (<code>install.cmd</code>) that will set the classpath for the installer.<br/>
+<br/>
+<b>Java required.</b><br/>
+Currently both example install scripts rely on a system property called
+%JAVA_HOME% since this is standard for most Java deployments. If this
+is a problem get in touch and I can write some scripts to check
+standard locations for the Java binary. It is also possible to deliver
+Java with your app, but you will need to check with the Sun licenses as
+to weather this is permitted or not, and users will have a heafty
+download.<br/>
+It may be better to specify the Java command as just <code>java</code> or <code>javaw</code> for windows since Sun ahs made some headway ensuring that if installed the binary can be specified without the need for the full path.
+      
+			<br/>
+			<h3>Classpath</h3>
+The developer creating the installer should ensure that all references in the install script
+are correct when the script is run. In the AntInstall demo the <code>install.sh</code>
+is slightly different to the <code>install.sh</code> in the root
+directory since the libs required are in a different directory. Ensure
+your classpath is correct also ensure that during testing you are not
+useing a default Ant installed on your machine and that you bundle Ant
+1.6 with the installation and all the requried Ant task libs.<br/>
+It is currently possible to include a directory called <code>antlib</code>
+this will be passed to the Ant launcher with the normal ant <code>-lib</code>
+parameter. <br/>
+With self extracting jars all classes should be packaged in the root of the Jar file.<br/>
+
+			<h3>Resources</h3>
+A further classpath consideration is the location of the images for the
+GUI. They must be on the classpath when the AntInstaller runs in the <code>/resources/</code>
+path. This can be achieved by creating a directory <code>./lib/resources</code>
+and adding <code>./lib</code> to the classpath for scripted installs. Alternatively the
+files can be added to a Jar file in the resources path inside the Jar for self-extractor and non-extractor builds. 
+The installer will not fail if the resources are not available but the correct images will not be
+shown.  
+Some missing resources such as the license file for a license page will fail if the resource is not available.<br/><br/>
+
+			<h3>Java version</h3>
+The required Java version is 1.4 or above.  It may be possible to get AI working on 1.3 provided that the JGoodies look and feel is NOT used and regular expressions are not used.  Also the XML parsers and APIs will have to be added to the classpath.<br/>  If regex and 1.3 are a requriement of yours, it is possible to hack the code to use the Apache regex parser included with Ant.  There have been problems with this code and so it is not included by default.  Please get in contact if you would like to work on this feature.
+
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/contents-include.html
===================================================================
--- /release-kits/shared/ant-installer/web/contents-include.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/contents-include.html	(revision 14989)
@@ -0,0 +1,80 @@
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
Index: /release-kits/shared/ant-installer/web/contents.html
===================================================================
--- /release-kits/shared/ant-installer/web/contents.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/contents.html	(revision 14989)
@@ -0,0 +1,15 @@
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, valiation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+</head>
+<body onload='collapseAll(["ol"]); openBookMark();'>
+<a href="index.html" alt="home" target="_content">
+<img src="images/ant-install-small.png"  target="_content" align="baseline"/></a><br/>
+<div id="contents-menu"><ol class="sidebar" id="root">	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>		<ol>			<li class="sidebar"><a href="introduction.html">Introduction</a></li>			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>				<ol>					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>						<ol class="init-hidden">							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>								<ol class="init-hidden">									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>								</ol>							</li>							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>								<ol class="init-hidden">									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>									<li class="sidebar"><a href="manual.html#date">Date</a></li>									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>									<li class="sidebar"><a href="manual.html#file">File</a></li>									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>									<li class="sidebar"><a href="manual.html#select">Select</a></li>									<li class="sidebar"><a href="manual.html#target">Target</a></li>									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>								</ol>							</li>							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>						</ol>					</li>					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>					<li class="sidebar"><a href="auto.html">Automated installs</a></li>					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>					<li class="sidebar"><a href="icons.html">Button Icons</a></li>					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>				</ol>			</li>			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>			<li class="sidebar"><a href="userusage.html">User usage</a></li>			<li class="sidebar"><a href="licenses.html">Licenses</a></li>			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>			<li class="sidebar"><a href="wanted.html">Wanted</a></li>			<li class="sidebar"><a href="dtds.html">DTDs</a></li>			<li class="sidebar"><a href="changelog.html">Changelog</a></li>			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>		</ol>	</li></ol><br/><br/></div>
+</body>
Index: /release-kits/shared/ant-installer/web/contents.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/contents.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/contents.jsp	(revision 14989)
@@ -0,0 +1,15 @@
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, valiation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+</head>
+<body onload='collapseAll(["ol"]); openBookMark();'>
+<a href="index.html" alt="home" target="_content">
+<img src="images/ant-install-small.png"  target="_content" align="baseline"/></a><br/>
+<jsp:include page="contents-include.html" flush="true"/>
+</body>
Index: /release-kits/shared/ant-installer/web/css/nav.css
===================================================================
--- /release-kits/shared/ant-installer/web/css/nav.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/css/nav.css	(revision 14989)
@@ -0,0 +1,61 @@
+ol, li {
+	padding:2px;
+	margin: 0;
+}
+
+ol#root {
+padding-left: 5px;
+	margin-top: 4px;
+	margin-bottom: 1px;
+	list-style: none;font-size:11px;
+}
+#root ol {
+	padding-left: 5px;
+	margin-top: 2px;
+	margin-bottom: 1px;
+	list-style: none;font-size:11px;
+}
+#root li {
+	margin-bottom: 1px;
+	padding-left: 5px;
+	margin-top: 2px;
+}
+
+.folder {
+	background-image: url(../branding/images/sstree/folder-closed.gif);
+	background-repeat: no-repeat;
+	float: left;
+	height: 14px;
+	width: 26px;
+	padding-right: 3px;
+}
+.doc {
+	background-image: url(../branding/images/sstree/file.gif);
+	background-repeat: no-repeat;
+	float: left;
+	height: 14px;
+	width: 12px;
+	padding-right: 3px;
+	font-size:11px; margin-left: 20px;
+}
+
+.panel {
+	margin-bottom: 2px;
+	margin-top: 2px;
+
+}
+
+#root ul {
+	margin-bottom: 1px;
+	margin-top: 2px;
+	list-style-position: inside;
+}
+
+#root a {
+	text-decoration: none;
+}
+
+.init-hidden {
+	display: none;
+}
+
Index: /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.2.dtd
===================================================================
--- /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.2.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.2.dtd	(revision 14989)
@@ -0,0 +1,120 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.3.dtd
===================================================================
--- /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.3.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.3.dtd	(revision 14989)
@@ -0,0 +1,121 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.4.dtd
===================================================================
--- /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.4.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.4.dtd	(revision 14989)
@@ -0,0 +1,122 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.5.dtd
===================================================================
--- /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.5.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.5.dtd	(revision 14989)
@@ -0,0 +1,125 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+<!ATTLIST installer antialiased CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+<!ATTLIST page splashResource NMTOKEN #IMPLIED >
+<!ATTLIST page altText NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.6.dtd
===================================================================
--- /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.6.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.6.dtd	(revision 14989)
@@ -0,0 +1,132 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+<!ATTLIST installer antialiased CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | large-select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name NMTOKEN #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+<!ATTLIST page splashResource NMTOKEN #IMPLIED >
+<!ATTLIST page altText NMTOKEN #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT large-select ( option+ ) >
+<!ATTLIST large-select defaultValue CDATA #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST large-select displayText CDATA #REQUIRED >
+<!ATTLIST large-select property NMTOKEN #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.7.dtd
===================================================================
--- /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.7.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.7.dtd	(revision 14989)
@@ -0,0 +1,157 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #REQUIRED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer debug (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+<!ATTLIST installer antialiased CDATA #IMPLIED >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root defaultValueWin CDATA #IMPLIED >
+<!ATTLIST app-root create (true | false) #IMPLIED  >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root checkExists (true | false) #IMPLIED  >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+<!ATTLIST target osSpecific CDATA #IMPLIED >
+<!ATTLIST target strict CDATA #IMPLIED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | large-select | target-select | directory | file | target | validated | password | date )* >
+<!ATTLIST page name CDATA #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+
+<!-- License page attributes -->
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+
+<!-- Splash page attributes -->
+<!ATTLIST page splashResource CDATA #IMPLIED >
+<!ATTLIST page altText CDATA #IMPLIED >
+
+<!-- Progress page attributes -->
+<!ATTLIST page showTargets NMTOKEN #IMPLIED >
+
+<!-- Input page attributes -->
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+<!ATTLIST page ifProperty CDATA #IMPLIED >
+<!ATTLIST page overflow CDATA #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT large-select ( option+ ) >
+<!ATTLIST large-select defaultValue CDATA #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST large-select displayText CDATA #REQUIRED >
+<!ATTLIST large-select property NMTOKEN #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT target-select ( option+ ) >
+<!ATTLIST target-select defaultValue CDATA #REQUIRED >
+<!ATTLIST target-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST target-select displayText CDATA #REQUIRED >
+<!ATTLIST target-select property NMTOKEN #REQUIRED >
+<!ATTLIST target-select explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+<!ATTLIST password textMask CDATA #IMPLIED >
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue CDATA #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+
Index: /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.8.dtd
===================================================================
--- /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.8.dtd	(revision 14989)
+++ /release-kits/shared/ant-installer/web/dtd/antinstall-config-0.8.dtd	(revision 14989)
@@ -0,0 +1,205 @@
+<!--
+/* 
+ * Copyright 2005 Paul Hinds
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+-->
+<!ELEMENT validated EMPTY >
+<!ATTLIST validated defaultValue CDATA #REQUIRED >
+<!ATTLIST validated regex CDATA #REQUIRED >
+<!ATTLIST validated displayText CDATA #REQUIRED >
+<!ATTLIST validated property NMTOKEN #REQUIRED >
+<!ATTLIST validated explanatoryText CDATA #IMPLIED >
+<!ATTLIST validated name NMTOKEN #IMPLIED >
+
+<!ELEMENT file EMPTY >
+<!ATTLIST file defaultValue CDATA #REQUIRED >
+<!ATTLIST file defaultValueWin CDATA #IMPLIED >
+<!ATTLIST file displayText CDATA #REQUIRED >
+<!ATTLIST file property NMTOKEN #REQUIRED >
+<!ATTLIST file checkExists (true | false) #IMPLIED  >
+<!ATTLIST file explanatoryText CDATA #IMPLIED >
+<!ATTLIST file name NMTOKEN #IMPLIED >
+
+<!ELEMENT option EMPTY >
+<!ATTLIST option value CDATA #REQUIRED >
+<!ATTLIST option text CDATA #REQUIRED >
+<!ATTLIST option name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT comment EMPTY >
+<!ATTLIST comment bold (true | false) #IMPLIED >
+<!ATTLIST comment displayText CDATA #IMPLIED >
+<!ATTLIST comment title NMTOKEN #IMPLIED >
+<!ATTLIST comment explanatoryText CDATA #IMPLIED >
+<!ATTLIST comment name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT checkbox EMPTY >
+<!ATTLIST checkbox defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST checkbox force (true | false) #IMPLIED  >
+<!ATTLIST checkbox displayText CDATA #REQUIRED >
+<!ATTLIST checkbox property NMTOKEN #REQUIRED >
+<!ATTLIST checkbox explanatoryText CDATA #IMPLIED >
+<!ATTLIST checkbox name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT installer ( page+ ) >
+<!ATTLIST installer verbose (true | false) #IMPLIED  >
+<!ATTLIST installer debug (true | false) #IMPLIED  >
+<!ATTLIST installer name CDATA #REQUIRED >
+<!ATTLIST installer windowIcon CDATA #IMPLIED >
+<!ATTLIST installer lookAndFeel NMTOKEN #IMPLIED >
+<!ATTLIST installer minJavaVersion NMTOKEN #IMPLIED >
+<!ATTLIST installer ui CDATA #IMPLIED >
+<!ATTLIST installer defaultImageResource CDATA #IMPLIED >
+<!ATTLIST installer finishButtonText CDATA #IMPLIED >
+<!ATTLIST installer antialiased CDATA #IMPLIED >
+<!ATTLIST installer wide CDATA #IMPLIED >
+<!ATTLIST installer loadDefaults (true | prompt | false) #IMPLIED  >
+<!ATTLIST installer version CDATA #IMPLIED  >
+
+<!ELEMENT directory EMPTY >
+<!ATTLIST directory defaultValue CDATA #REQUIRED >
+<!ATTLIST directory defaultValueWin CDATA #IMPLIED >
+<!ATTLIST directory create (true | false) #IMPLIED  >
+<!ATTLIST directory displayText CDATA #REQUIRED >
+<!ATTLIST directory property NMTOKEN #REQUIRED >
+<!ATTLIST directory checkExists (true | false) #IMPLIED  >
+<!ATTLIST directory explanatoryText CDATA #IMPLIED >
+<!ATTLIST directory name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT app-root EMPTY >
+<!ATTLIST app-root defaultValue CDATA #REQUIRED >
+<!ATTLIST app-root defaultValueWin CDATA #IMPLIED >
+<!ATTLIST app-root create (true | false) #IMPLIED  >
+<!ATTLIST app-root displayText CDATA #REQUIRED >
+<!ATTLIST app-root property NMTOKEN #REQUIRED >
+<!ATTLIST app-root checkExists (true | false) #IMPLIED  >
+<!ATTLIST app-root explanatoryText CDATA #IMPLIED >
+<!ATTLIST app-root checkFile1 CDATA #IMPLIED >
+<!ATTLIST app-root checkFile2 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir1 CDATA #IMPLIED >
+<!ATTLIST app-root checkDir2 CDATA #IMPLIED >
+<!ATTLIST app-root name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT target EMPTY >
+<!ATTLIST target defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST target force (true | false) #IMPLIED  >
+<!ATTLIST target displayText CDATA #REQUIRED >
+<!ATTLIST target target NMTOKEN #REQUIRED >
+<!ATTLIST target explanatoryText CDATA #IMPLIED >
+<!ATTLIST target osSpecific CDATA #IMPLIED >
+<!ATTLIST target strict CDATA #IMPLIED >
+<!ATTLIST target name NMTOKEN #IMPLIED >
+
+<!ELEMENT conditional  ( hidden+ ) >
+<!ATTLIST conditional ifProperty CDATA #REQUIRED >
+<!ELEMENT hidden EMPTY >
+<!ATTLIST hidden property NMTOKEN #REQUIRED >
+<!ATTLIST hidden value CDATA #REQUIRED >
+
+<!ELEMENT page ( app-root | comment | text | checkbox | select | large-select | target-select | directory | file | target | validated | password | password-confirm | date | hidden | conditional )* >
+<!ATTLIST page name CDATA #REQUIRED >
+<!ATTLIST page type NMTOKEN #REQUIRED >
+<!ATTLIST page imageResource CDATA #IMPLIED >
+<!ATTLIST page displayText CDATA #REQUIRED >
+<!ATTLIST page target NMTOKEN #IMPLIED >
+<!ATTLIST page postDisplayTarget NMTOKEN #IMPLIED >
+
+
+<!-- License page attributes -->
+<!ATTLIST page resource CDATA #IMPLIED >
+<!ATTLIST page usePaging CDATA #IMPLIED >
+
+<!-- Splash page attributes -->
+<!ATTLIST page splashResource CDATA #IMPLIED >
+<!ATTLIST page altText CDATA #IMPLIED >
+
+<!-- Text page attributes -->
+<!ATTLIST page htmlResource CDATA #IMPLIED >
+<!ATTLIST page textResource CDATA #IMPLIED >
+
+<!-- Progress page attributes -->
+<!ATTLIST page showTargets NMTOKEN #IMPLIED >
+
+<!-- Input page attributes -->
+<!ATTLIST page ifTarget NMTOKEN #IMPLIED >
+<!ATTLIST page ifProperty CDATA #IMPLIED >
+<!ATTLIST page overflow CDATA #IMPLIED >
+
+<!ELEMENT select ( option+ ) >
+<!ATTLIST select defaultValue CDATA #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+<!ATTLIST select displayText CDATA #REQUIRED >
+<!ATTLIST select property NMTOKEN #REQUIRED >
+<!ATTLIST select explanatoryText CDATA #IMPLIED >
+
+
+<!ELEMENT large-select ( option+ ) >
+<!ATTLIST large-select defaultValue CDATA #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST large-select displayText CDATA #REQUIRED >
+<!ATTLIST large-select property NMTOKEN #REQUIRED >
+<!ATTLIST large-select explanatoryText CDATA #IMPLIED >
+
+
+<!ELEMENT target-select ( option+ ) >
+<!ATTLIST target-select defaultValue CDATA #REQUIRED >
+<!ATTLIST target-select explanatoryText CDATA #IMPLIED >
+<!ATTLIST target-select displayText CDATA #REQUIRED >
+<!ATTLIST target-select property NMTOKEN #REQUIRED >
+<!ATTLIST target-select explanatoryText CDATA #IMPLIED >
+
+
+<!ELEMENT password EMPTY >
+<!ATTLIST password defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password regex CDATA #REQUIRED >
+<!ATTLIST password displayText CDATA #REQUIRED >
+<!ATTLIST password property NMTOKEN #REQUIRED >
+<!ATTLIST password explanatoryText CDATA #IMPLIED >
+<!ATTLIST password textMask CDATA #IMPLIED >
+<!ATTLIST password name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT password-confirm EMPTY >
+<!ATTLIST password-confirm defaultValue NMTOKEN #REQUIRED >
+<!ATTLIST password-confirm regex CDATA #IMPLIED >
+<!ATTLIST password-confirm displayText CDATA #REQUIRED >
+<!ATTLIST password-confirm property NMTOKEN #REQUIRED >
+<!ATTLIST password-confirm explanatoryText CDATA #IMPLIED >
+<!ATTLIST password-confirm textMask CDATA #IMPLIED >
+<!ATTLIST password-confirm origField CDATA #REQUIRED >
+<!ATTLIST password-confirm name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT date EMPTY >
+<!ATTLIST date defaultValue CDATA #REQUIRED >
+<!ATTLIST date dateFormat CDATA #REQUIRED >
+<!ATTLIST date displayText CDATA #REQUIRED >
+<!ATTLIST date property NMTOKEN #REQUIRED >
+<!ATTLIST date explanatoryText CDATA #IMPLIED >
+<!ATTLIST date name NMTOKEN #IMPLIED >
+
+
+<!ELEMENT text EMPTY >
+<!ATTLIST text defaultValue CDATA #REQUIRED >
+<!ATTLIST text displayText CDATA #REQUIRED >
+<!ATTLIST text property NMTOKEN #REQUIRED >
+<!ATTLIST text explanatoryText CDATA #IMPLIED >
+<!ATTLIST text name NMTOKEN #IMPLIED >
+
+
Index: /release-kits/shared/ant-installer/web/dtds.html
===================================================================
--- /release-kits/shared/ant-installer/web/dtds.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/dtds.html	(revision 14989)
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                                 <h2>DTDs</h2>
+This page contains links to the DTDs for the antinstall-config.xml files<br>
+      <br>
+			<ul>
+
+
+				<li><a href="dtd/antinstall-config-0.1.dtd">antinstall-config-0.1.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.2.dtd">antinstall-config-0.2.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.3.dtd">antinstall-config-0.3.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.4.dtd">antinstall-config-0.4.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.5.dtd">antinstall-config-0.5.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.6.dtd">antinstall-config-0.6.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.7.dtd">antinstall-config-0.7.dtd</a></li>
+
+				<li><a href="dtd/antinstall-config-0.8.dtd">antinstall-config-0.8.dtd</a></li>
+
+			</ul>
+				<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/dtds.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/dtds.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/dtds.jsp	(revision 14989)
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, valiation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                                 <h2>DTDs</h2>
+This page contains links to the DTDs for the antinstall-config.xml files<br>
+      <br>
+			<ul>
+<%@page import="java.io.*" %><%@page import="java.util.*" %>
+<%
+	String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+	File fleJspDir = new File(strJspDir);
+	File dtdsDir = new File(fleJspDir, "dtd");
+	String[] dtdNames = dtdsDir.list();
+	Arrays.sort(dtdNames);
+	for (int i = 0; i< dtdNames.length; i++) {
+		if( dtdNames[i].endsWith(".dtd") ){
+%>
+				<li><a href="dtd/<%=dtdNames[i]%>"><%=dtdNames[i]%></a></li>
+<%			
+		}
+	}
+%>
+			</ul>
+				<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual/manual/index.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/headerframe.html
===================================================================
--- /release-kits/shared/ant-installer/web/headerframe.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/headerframe.html	(revision 14989)
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+<!-- No content -->
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/i18n.html
===================================================================
--- /release-kits/shared/ant-installer/web/i18n.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/i18n.html	(revision 14989)
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Internationalisation</h2>
+            Internationalisation (a.k.a multiligual) installers are possible by creating language packs for the core functionality of AntInstaller
+            and for your <code>antinstall-config.xml</code> file.  
+            Language packs exist for English, German, Spanish and Euskera  please feel free to contribute more lanugages.<br/><br/>
+			A tool exists to help create the properties files required to internationalise the installer config files.  
+			A script called <code>createLanguagePack.sh</code> is included to run the tool.  
+			The tool is very simple but gives you a starting point for internationalising config files.
+			It reads the <code>antinstall-config.xml</code> file in the current directory and asks for a Local string (e.g. es_EU for Euskera) 
+			the tool creates two files <code>LanguagePack_es_EU.properties</code> and the default <code>LanguagePack.properties</code> 
+			file in the current directory with default vlaues for each required text string.<br/><br/>
+			
+			To use the tool effectively you should perform the following steps.
+			<ul>
+				<li>Prepare the <code>antinstall-config.xml</code> file as normal and ensure it is valid.</li>
+				<li>For comment fields it is a good idea to add a <code>name</code> attribute to the elements to easily identify the fields in the LanguagePack file. 
+					All other input elements use the <code>property</code> attribute as the identifyer in the LanguagePack file and should not have <code>name</code> 	attributes.<br/>
+					The page element shouyld already have a <code>name</code> attribute since it is a required attribute for page.
+				</li>
+				<li>Copy your <code>antinstall-config.xml</code> file temporarily to the root directory where AntInstaller is installed.</li>
+				<li>Run the <code>createLanguagePack.sh</code> script.</li>
+				<li>Translate all the properties in the generated file for the foreign language.</li>
+				<li>Include this file in the <code>/resources/</code> directory of the installer Jar when creating the installer.</li>
+				<li>To test your internationalisation run the installer with the following command line arguments<br/>
+					<code>-Duser.language=es -Duser.region=EU</code><br/>
+					Users with a default Locale already set will not need to take this step.
+				</li>
+			</ul>
+			
+			<h2>Maintenance</h2>
+			Once you have internationalised your installer you have increased the maintenance load for any changes. Each element added or changed should be changed in the <code>antinstall-config.xml</code> file and each <code>.properties</code> file and the elements must match up. Some properties are indexed so the ordering of the elements is significant.<br/>
+			For this reason it is a good idea to have a stable installer working before you attempt to internationalise it.  It is a good idea to use tools such as SVN, CVS for version management and what ever takes your fancy for diffs.<br/><br/>
+			
+			<h2>GUI tool</h2>
+			A fancy GUI tool is also available based on PBR Editor (found at <a href="https://prbeditor.dev.java.net" title="PBR Editor">https://prbeditor.dev.java.net</a>) written by eduardj at dev.java.net.  The tool has been modified so that an antinstaller-config.xml file can be used as a starting point for the internationalisation.  Click on the AntInstaller icon on the tool bar or in the file menu and select the  file.  The default properties file is created where ever you specify and from that additional language packs can be added using the GUI.
+			
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/icons.html
===================================================================
--- /release-kits/shared/ant-installer/web/icons.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/icons.html	(revision 14989)
@@ -0,0 +1,2600 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+
+
+		<h2>icons</h2>
+		AntInstaller has a few options for the button icons used in the installer.<br/><br/>
+		
+		These can be included in the installer by adding the <code>icons</code> attribute to the <code>installer</code> element
+		of the <a href="installertask.html">AntInstaller Ant task</a>.<br/><br/>
+		
+		<h2>bluecurve</h2>
+
+<img align="left" alt="next.png" src="images/navicons/bluecurve/resources/icons/next.png" width="16" height="16"/>
+			
+<img align="left" alt="cancel.png" src="images/navicons/bluecurve/resources/icons/cancel.png" width="16" height="16"/>
+			
+<img align="left" alt="back.png" src="images/navicons/bluecurve/resources/icons/back.png" width="16" height="16"/>
+			
+<img align="left" alt="finish.png" src="images/navicons/bluecurve/resources/icons/finish.png" width="16" height="16"/>
+			
+<img align="left" alt="ok.png" src="images/navicons/bluecurve/resources/icons/ok.png" width="16" height="16"/>
+			
+<img align="left" alt="showdetails.png" src="images/navicons/bluecurve/resources/icons/showdetails.png" width="16" height="16"/>
+			
+			<br/><b>License</b><br/>
+			<div class="tpcropped">
+		The Fedora Project
+<br/>
+<br/>
+<br/>
+Individual Contributor License Agreement (CLA)
+<br/>
+<br/>
+<br/>
+[WWW] http://fedoraproject.org/wiki/Legal/Licenses/CLA
+<br/>
+<br/>
+<br/>
+Thank you for your interest in The Fedora Project (the "Project"). In order to clarify the intellectual property license granted with Contributions from any person or entity, Red Hat, Inc. ("Red Hat"), as maintainer of the Project, must have a Contributor License Agreement (CLA) on file that has been signed by each Contributor, indicating agreement to the license terms below. This license is for Your protection as a Contributor as well as the protection of the Project and its users; it does not change your rights to use your own Contributions for any other purpose.
+<br/>
+<br/>
+<br/>
+You and the Project hereby accept and agree to the following terms and conditions:
+<br/>
+<br/>
+<br/>
+    *
+<br/>
+<br/>
+<br/>
+      1. Contributors and Contributions.
+<br/>
+          o
+<br/>
+<br/>
+<br/>
+            A. The Project and any individual or legal entity that voluntarily submits to the Project a Contribution are collectively addressed herein as "Contributors". For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+<br/>
+          o
+<br/>
+<br/>
+<br/>
+            B. A "Contribution" is any original work, including any modification or addition to an existing work, that has been submitted for inclusion in, or documentation of, any of the products owned or managed by the Project, where such work originates from that particular Contributor or from some entity acting on behalf of that Contributor.
+<br/>
+          o
+<br/>
+<br/>
+<br/>
+            C. A Contribution is "submitted" when any form of electronic, verbal, or written communication is sent to the Project, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of discussing or improving software or documentation of the Project, but excluding communication that is conspicuously marked or otherwise designated in writing by you as "Not a Contribution."
+<br/>
+          o
+<br/>
+<br/>
+<br/>
+            D. Any Contribution submitted by you to the Project shall be under the terms and conditions of this License, without any additional terms or conditions, unless you explicitly state otherwise in the submission.
+<br/>
+    *
+<br/>
+<br/>
+<br/>
+      2. Contributor Grant of License. You hereby grant to Red Hat, Inc., on behalf of the Project, and to recipients of software distributed by the Project:
+<br/>
+          o
+<br/>
+<br/>
+<br/>
+            (a) a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute your Contribution and such derivative works; and,
+<br/>
+          o
+<br/>
+<br/>
+<br/>
+            (b) a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, irrevocable (subject to Section 3) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer your Contribution and derivative works thereof, where such license applies only to those patent claims licensable by you that are necessarily infringed by your Contribution alone or by combination of your Contribution with the work to which you submitted the Contribution. Except for the license granted in this section, you reserve all right, title and interest in and to your Contributions.
+<br/>
+    *
+<br/>
+<br/>
+<br/>
+      3. Reciprocity. As of the date any such litigation is filed, your patent grant shall immediately terminate with respect to any party that institutes patent litigation against you (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the work to which you have contributed, constitutes direct or contributory patent infringement.
+<br/>
+    *
+<br/>
+<br/>
+<br/>
+      4. You represent that you are legally entitled to grant the above license. If your employer(s) has rights to intellectual property that you create that includes your Contributions, you represent that you have received permission to make Contributions on behalf of that employer, that your employer has waived such rights for your Contributions to the Project, or that your employer has executed a separate Corporate CLA with the Project.
+<br/>
+    *
+<br/>
+<br/>
+<br/>
+      5. You represent that each of your Contributions is your original creation (see section 7 for submissions on behalf of others). You represent that your Contribution submission(s) include complete details of any third-party license or other restriction (including, but not limited to, related copyright, patents and trademarks) of which you are personally aware and which are associated with any part of your Contribution.
+<br/>
+    *
+<br/>
+<br/>
+<br/>
+      6. You are not expected to provide support for your Contributions, except to the extent you desire to provide support. You may provide support for free, for a fee, or not at all. Your Contributions are provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
+<br/>
+    *
+<br/>
+<br/>
+<br/>
+      7. Should you wish to submit work that is not your original creation, you may submit it to the Project separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".
+<br/>
+    *
+<br/>
+<br/>
+<br/>
+      8. You agree to notify the Project of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect.
+<br/>
+    *
+<br/>
+<br/>
+<br/>
+      9. The Project is under no obligations to accept and include every contribution.
+<br/>
+ 
+<br/>
+
+			</div><hr/>
+		<h2>eclipse</h2>
+
+<img align="left" alt="next.png" src="images/navicons/eclipse/resources/icons/next.png" width="16" height="16"/>
+			
+<img align="left" alt="cancel.png" src="images/navicons/eclipse/resources/icons/cancel.png" width="16" height="16"/>
+			
+<img align="left" alt="back.png" src="images/navicons/eclipse/resources/icons/back.png" width="16" height="16"/>
+			
+<img align="left" alt="finish.png" src="images/navicons/eclipse/resources/icons/finish.png" width="16" height="16"/>
+			
+<img align="left" alt="ok.png" src="images/navicons/eclipse/resources/icons/ok.png" width="16" height="16"/>
+			
+<img align="left" alt="showdetails.png" src="images/navicons/eclipse/resources/icons/showdetails.png" width="16" height="16"/>
+			
+			<br/><b>License</b><br/>
+			<div class="tpcropped">
+		Eclipse Public License - v 1.0
+<br/>
+<br/>
+<br/>
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENTâS ACCEPTANCE OF THIS AGREEMENT.
+<br/>
+<br/>
+<br/>
+1. DEFINITIONS
+<br/>
+<br/>
+<br/>
+"Contribution" means:
+<br/>
+<br/>
+<br/>
+    a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+<br/>
+    b) in the case of each subsequent Contributor:
+<br/>
+<br/>
+<br/>
+    i)changes to the Program, and
+<br/>
+<br/>
+<br/>
+    ii)additions to the Program;
+<br/>
+<br/>
+<br/>
+    where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributorâs behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+<br/>
+<br/>
+<br/>
+"Contributor" means any person or entity that distributes the Program.
+<br/>
+<br/>
+<br/>
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+<br/>
+<br/>
+<br/>
+"Program" means the Contributions distributed in accordance with this Agreement.
+<br/>
+<br/>
+<br/>
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+<br/>
+<br/>
+<br/>
+2. GRANT OF RIGHTS
+<br/>
+<br/>
+<br/>
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+<br/>
+<br/>
+<br/>
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+<br/>
+<br/>
+<br/>
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipientâs responsibility to acquire that license before distributing the Program.
+<br/>
+<br/>
+<br/>
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+<br/>
+<br/>
+<br/>
+3. REQUIREMENTS
+<br/>
+<br/>
+<br/>
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+<br/>
+<br/>
+<br/>
+    a) it complies with the terms and conditions of this Agreement; and
+<br/>
+<br/>
+<br/>
+    b) its license agreement:
+<br/>
+<br/>
+<br/>
+    i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+<br/>
+<br/>
+<br/>
+    ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+<br/>
+<br/>
+<br/>
+    iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+<br/>
+<br/>
+<br/>
+    iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+<br/>
+<br/>
+<br/>
+When the Program is made available in source code form:
+<br/>
+<br/>
+<br/>
+    a) it must be made available under this Agreement; and
+<br/>
+<br/>
+<br/>
+    b) a copy of this Agreement must be included with each copy of the Program.
+<br/>
+<br/>
+<br/>
+Contributors may not remove or alter any copyright notices contained within the Program.
+<br/>
+<br/>
+<br/>
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+<br/>
+<br/>
+<br/>
+4. COMMERCIAL DISTRIBUTION
+<br/>
+<br/>
+<br/>
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+<br/>
+<br/>
+<br/>
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributorâs responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+<br/>
+<br/>
+<br/>
+5. NO WARRANTY
+<br/>
+<br/>
+<br/>
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+<br/>
+<br/>
+<br/>
+6. DISCLAIMER OF LIABILITY
+<br/>
+<br/>
+<br/>
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+<br/>
+<br/>
+<br/>
+7. GENERAL
+<br/>
+<br/>
+<br/>
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+<br/>
+<br/>
+<br/>
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipientâs patent(s), then such Recipientâs rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+<br/>
+<br/>
+<br/>
+All Recipientâs rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipientâs rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipientâs obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+<br/>
+<br/>
+<br/>
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+<br/>
+<br/>
+<br/>
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. 
+<br/>
+
+			</div><hr/>
+		<h2>amaranth</h2>
+
+<img align="left" alt="next.png" src="images/navicons/amaranth/resources/icons/next.png" width="16" height="16"/>
+			
+<img align="left" alt="cancel.png" src="images/navicons/amaranth/resources/icons/cancel.png" width="16" height="16"/>
+			
+<img align="left" alt="back.png" src="images/navicons/amaranth/resources/icons/back.png" width="16" height="16"/>
+			
+<img align="left" alt="finish.png" src="images/navicons/amaranth/resources/icons/finish.png" width="16" height="16"/>
+			
+<img align="left" alt="ok.png" src="images/navicons/amaranth/resources/icons/ok.png" width="16" height="16"/>
+			
+<img align="left" alt="showdetails.png" src="images/navicons/amaranth/resources/icons/showdetails.png" width="16" height="16"/>
+			
+			<br/><b>License</b><br/>
+			<div class="tpcropped">
+				  GNU LESSER GENERAL PUBLIC LICENSE
+<br/>
+		       Version 2.1, February 1999
+<br/>
+<br/>
+<br/>
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+<br/>
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+<br/>
+ Everyone is permitted to copy and distribute verbatim copies
+<br/>
+ of this license document, but changing it is not allowed.
+<br/>
+<br/>
+<br/>
+[This is the first released version of the Lesser GPL.  It also counts
+<br/>
+ as the successor of the GNU Library Public License, version 2, hence
+<br/>
+ the version number 2.1.]
+<br/>
+<br/>
+<br/>
+			    Preamble
+<br/>
+<br/>
+<br/>
+  The licenses for most software are designed to take away your
+<br/>
+freedom to share and change it.  By contrast, the GNU General Public
+<br/>
+Licenses are intended to guarantee your freedom to share and change
+<br/>
+free software--to make sure the software is free for all its users.
+<br/>
+<br/>
+<br/>
+  This license, the Lesser General Public License, applies to some
+<br/>
+specially designated software packages--typically libraries--of the
+<br/>
+Free Software Foundation and other authors who decide to use it.  You
+<br/>
+can use it too, but we suggest you first think carefully about whether
+<br/>
+this license or the ordinary General Public License is the better
+<br/>
+strategy to use in any particular case, based on the explanations below.
+<br/>
+<br/>
+<br/>
+  When we speak of free software, we are referring to freedom of use,
+<br/>
+not price.  Our General Public Licenses are designed to make sure that
+<br/>
+you have the freedom to distribute copies of free software (and charge
+<br/>
+for this service if you wish); that you receive source code or can get
+<br/>
+it if you want it; that you can change the software and use pieces of
+<br/>
+it in new free programs; and that you are informed that you can do
+<br/>
+these things.
+<br/>
+<br/>
+<br/>
+  To protect your rights, we need to make restrictions that forbid
+<br/>
+distributors to deny you these rights or to ask you to surrender these
+<br/>
+rights.  These restrictions translate to certain responsibilities for
+<br/>
+you if you distribute copies of the library or if you modify it.
+<br/>
+<br/>
+<br/>
+  For example, if you distribute copies of the library, whether gratis
+<br/>
+or for a fee, you must give the recipients all the rights that we gave
+<br/>
+you.  You must make sure that they, too, receive or can get the source
+<br/>
+code.  If you link other code with the library, you must provide
+<br/>
+complete object files to the recipients, so that they can relink them
+<br/>
+with the library after making changes to the library and recompiling
+<br/>
+it.  And you must show them these terms so they know their rights.
+<br/>
+<br/>
+<br/>
+  We protect your rights with a two-step method: (1) we copyright the
+<br/>
+library, and (2) we offer you this license, which gives you legal
+<br/>
+permission to copy, distribute and/or modify the library.
+<br/>
+<br/>
+<br/>
+  To protect each distributor, we want to make it very clear that
+<br/>
+there is no warranty for the free library.  Also, if the library is
+<br/>
+modified by someone else and passed on, the recipients should know
+<br/>
+that what they have is not the original version, so that the original
+<br/>
+author's reputation will not be affected by problems that might be
+<br/>
+introduced by others.
+<br/>
+
+
+<br/>
+  Finally, software patents pose a constant threat to the existence of
+<br/>
+any free program.  We wish to make sure that a company cannot
+<br/>
+effectively restrict the users of a free program by obtaining a
+<br/>
+restrictive license from a patent holder.  Therefore, we insist that
+<br/>
+any patent license obtained for a version of the library must be
+<br/>
+consistent with the full freedom of use specified in this license.
+<br/>
+<br/>
+<br/>
+  Most GNU software, including some libraries, is covered by the
+<br/>
+ordinary GNU General Public License.  This license, the GNU Lesser
+<br/>
+General Public License, applies to certain designated libraries, and
+<br/>
+is quite different from the ordinary General Public License.  We use
+<br/>
+this license for certain libraries in order to permit linking those
+<br/>
+libraries into non-free programs.
+<br/>
+<br/>
+<br/>
+  When a program is linked with a library, whether statically or using
+<br/>
+a shared library, the combination of the two is legally speaking a
+<br/>
+combined work, a derivative of the original library.  The ordinary
+<br/>
+General Public License therefore permits such linking only if the
+<br/>
+entire combination fits its criteria of freedom.  The Lesser General
+<br/>
+Public License permits more lax criteria for linking other code with
+<br/>
+the library.
+<br/>
+<br/>
+<br/>
+  We call this license the "Lesser" General Public License because it
+<br/>
+does Less to protect the user's freedom than the ordinary General
+<br/>
+Public License.  It also provides other free software developers Less
+<br/>
+of an advantage over competing non-free programs.  These disadvantages
+<br/>
+are the reason we use the ordinary General Public License for many
+<br/>
+libraries.  However, the Lesser license provides advantages in certain
+<br/>
+special circumstances.
+<br/>
+<br/>
+<br/>
+  For example, on rare occasions, there may be a special need to
+<br/>
+encourage the widest possible use of a certain library, so that it becomes
+<br/>
+a de-facto standard.  To achieve this, non-free programs must be
+<br/>
+allowed to use the library.  A more frequent case is that a free
+<br/>
+library does the same job as widely used non-free libraries.  In this
+<br/>
+case, there is little to gain by limiting the free library to free
+<br/>
+software only, so we use the Lesser General Public License.
+<br/>
+<br/>
+<br/>
+  In other cases, permission to use a particular library in non-free
+<br/>
+programs enables a greater number of people to use a large body of
+<br/>
+free software.  For example, permission to use the GNU C Library in
+<br/>
+non-free programs enables many more people to use the whole GNU
+<br/>
+operating system, as well as its variant, the GNU/Linux operating
+<br/>
+system.
+<br/>
+<br/>
+<br/>
+  Although the Lesser General Public License is Less protective of the
+<br/>
+users' freedom, it does ensure that the user of a program that is
+<br/>
+linked with the Library has the freedom and the wherewithal to run
+<br/>
+that program using a modified version of the Library.
+<br/>
+<br/>
+<br/>
+  The precise terms and conditions for copying, distribution and
+<br/>
+modification follow.  Pay close attention to the difference between a
+<br/>
+"work based on the library" and a "work that uses the library".  The
+<br/>
+former contains code derived from the library, whereas the latter must
+<br/>
+be combined with the library in order to run.
+<br/>
+
+
+<br/>
+		  GNU LESSER GENERAL PUBLIC LICENSE
+<br/>
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+<br/>
+<br/>
+<br/>
+  0. This License Agreement applies to any software library or other
+<br/>
+program which contains a notice placed by the copyright holder or
+<br/>
+other authorized party saying it may be distributed under the terms of
+<br/>
+this Lesser General Public License (also called "this License").
+<br/>
+Each licensee is addressed as "you".
+<br/>
+<br/>
+<br/>
+  A "library" means a collection of software functions and/or data
+<br/>
+prepared so as to be conveniently linked with application programs
+<br/>
+(which use some of those functions and data) to form executables.
+<br/>
+<br/>
+<br/>
+  The "Library", below, refers to any such software library or work
+<br/>
+which has been distributed under these terms.  A "work based on the
+<br/>
+Library" means either the Library or any derivative work under
+<br/>
+copyright law: that is to say, a work containing the Library or a
+<br/>
+portion of it, either verbatim or with modifications and/or translated
+<br/>
+straightforwardly into another language.  (Hereinafter, translation is
+<br/>
+included without limitation in the term "modification".)
+<br/>
+<br/>
+<br/>
+  "Source code" for a work means the preferred form of the work for
+<br/>
+making modifications to it.  For a library, complete source code means
+<br/>
+all the source code for all modules it contains, plus any associated
+<br/>
+interface definition files, plus the scripts used to control compilation
+<br/>
+and installation of the library.
+<br/>
+<br/>
+<br/>
+  Activities other than copying, distribution and modification are not
+<br/>
+covered by this License; they are outside its scope.  The act of
+<br/>
+running a program using the Library is not restricted, and output from
+<br/>
+such a program is covered only if its contents constitute a work based
+<br/>
+on the Library (independent of the use of the Library in a tool for
+<br/>
+writing it).  Whether that is true depends on what the Library does
+<br/>
+and what the program that uses the Library does.
+<br/>
+  
+<br/>
+  1. You may copy and distribute verbatim copies of the Library's
+<br/>
+complete source code as you receive it, in any medium, provided that
+<br/>
+you conspicuously and appropriately publish on each copy an
+<br/>
+appropriate copyright notice and disclaimer of warranty; keep intact
+<br/>
+all the notices that refer to this License and to the absence of any
+<br/>
+warranty; and distribute a copy of this License along with the
+<br/>
+Library.
+<br/>
+<br/>
+<br/>
+  You may charge a fee for the physical act of transferring a copy,
+<br/>
+and you may at your option offer warranty protection in exchange for a
+<br/>
+fee.
+<br/>
+
+
+<br/>
+  2. You may modify your copy or copies of the Library or any portion
+<br/>
+of it, thus forming a work based on the Library, and copy and
+<br/>
+distribute such modifications or work under the terms of Section 1
+<br/>
+above, provided that you also meet all of these conditions:
+<br/>
+<br/>
+<br/>
+    a) The modified work must itself be a software library.
+<br/>
+<br/>
+<br/>
+    b) You must cause the files modified to carry prominent notices
+<br/>
+    stating that you changed the files and the date of any change.
+<br/>
+<br/>
+<br/>
+    c) You must cause the whole of the work to be licensed at no
+<br/>
+    charge to all third parties under the terms of this License.
+<br/>
+<br/>
+<br/>
+    d) If a facility in the modified Library refers to a function or a
+<br/>
+    table of data to be supplied by an application program that uses
+<br/>
+    the facility, other than as an argument passed when the facility
+<br/>
+    is invoked, then you must make a good faith effort to ensure that,
+<br/>
+    in the event an application does not supply such function or
+<br/>
+    table, the facility still operates, and performs whatever part of
+<br/>
+    its purpose remains meaningful.
+<br/>
+<br/>
+<br/>
+    (For example, a function in a library to compute square roots has
+<br/>
+    a purpose that is entirely well-defined independent of the
+<br/>
+    application.  Therefore, Subsection 2d requires that any
+<br/>
+    application-supplied function or table used by this function must
+<br/>
+    be optional: if the application does not supply it, the square
+<br/>
+    root function must still compute square roots.)
+<br/>
+<br/>
+<br/>
+These requirements apply to the modified work as a whole.  If
+<br/>
+identifiable sections of that work are not derived from the Library,
+<br/>
+and can be reasonably considered independent and separate works in
+<br/>
+themselves, then this License, and its terms, do not apply to those
+<br/>
+sections when you distribute them as separate works.  But when you
+<br/>
+distribute the same sections as part of a whole which is a work based
+<br/>
+on the Library, the distribution of the whole must be on the terms of
+<br/>
+this License, whose permissions for other licensees extend to the
+<br/>
+entire whole, and thus to each and every part regardless of who wrote
+<br/>
+it.
+<br/>
+<br/>
+<br/>
+Thus, it is not the intent of this section to claim rights or contest
+<br/>
+your rights to work written entirely by you; rather, the intent is to
+<br/>
+exercise the right to control the distribution of derivative or
+<br/>
+collective works based on the Library.
+<br/>
+<br/>
+<br/>
+In addition, mere aggregation of another work not based on the Library
+<br/>
+with the Library (or with a work based on the Library) on a volume of
+<br/>
+a storage or distribution medium does not bring the other work under
+<br/>
+the scope of this License.
+<br/>
+<br/>
+<br/>
+  3. You may opt to apply the terms of the ordinary GNU General Public
+<br/>
+License instead of this License to a given copy of the Library.  To do
+<br/>
+this, you must alter all the notices that refer to this License, so
+<br/>
+that they refer to the ordinary GNU General Public License, version 2,
+<br/>
+instead of to this License.  (If a newer version than version 2 of the
+<br/>
+ordinary GNU General Public License has appeared, then you can specify
+<br/>
+that version instead if you wish.)  Do not make any other change in
+<br/>
+these notices.
+<br/>
+
+
+<br/>
+  Once this change is made in a given copy, it is irreversible for
+<br/>
+that copy, so the ordinary GNU General Public License applies to all
+<br/>
+subsequent copies and derivative works made from that copy.
+<br/>
+<br/>
+<br/>
+  This option is useful when you wish to copy part of the code of
+<br/>
+the Library into a program that is not a library.
+<br/>
+<br/>
+<br/>
+  4. You may copy and distribute the Library (or a portion or
+<br/>
+derivative of it, under Section 2) in object code or executable form
+<br/>
+under the terms of Sections 1 and 2 above provided that you accompany
+<br/>
+it with the complete corresponding machine-readable source code, which
+<br/>
+must be distributed under the terms of Sections 1 and 2 above on a
+<br/>
+medium customarily used for software interchange.
+<br/>
+<br/>
+<br/>
+  If distribution of object code is made by offering access to copy
+<br/>
+from a designated place, then offering equivalent access to copy the
+<br/>
+source code from the same place satisfies the requirement to
+<br/>
+distribute the source code, even though third parties are not
+<br/>
+compelled to copy the source along with the object code.
+<br/>
+<br/>
+<br/>
+  5. A program that contains no derivative of any portion of the
+<br/>
+Library, but is designed to work with the Library by being compiled or
+<br/>
+linked with it, is called a "work that uses the Library".  Such a
+<br/>
+work, in isolation, is not a derivative work of the Library, and
+<br/>
+therefore falls outside the scope of this License.
+<br/>
+<br/>
+<br/>
+  However, linking a "work that uses the Library" with the Library
+<br/>
+creates an executable that is a derivative of the Library (because it
+<br/>
+contains portions of the Library), rather than a "work that uses the
+<br/>
+library".  The executable is therefore covered by this License.
+<br/>
+Section 6 states terms for distribution of such executables.
+<br/>
+<br/>
+<br/>
+  When a "work that uses the Library" uses material from a header file
+<br/>
+that is part of the Library, the object code for the work may be a
+<br/>
+derivative work of the Library even though the source code is not.
+<br/>
+Whether this is true is especially significant if the work can be
+<br/>
+linked without the Library, or if the work is itself a library.  The
+<br/>
+threshold for this to be true is not precisely defined by law.
+<br/>
+<br/>
+<br/>
+  If such an object file uses only numerical parameters, data
+<br/>
+structure layouts and accessors, and small macros and small inline
+<br/>
+functions (ten lines or less in length), then the use of the object
+<br/>
+file is unrestricted, regardless of whether it is legally a derivative
+<br/>
+work.  (Executables containing this object code plus portions of the
+<br/>
+Library will still fall under Section 6.)
+<br/>
+<br/>
+<br/>
+  Otherwise, if the work is a derivative of the Library, you may
+<br/>
+distribute the object code for the work under the terms of Section 6.
+<br/>
+Any executables containing that work also fall under Section 6,
+<br/>
+whether or not they are linked directly with the Library itself.
+<br/>
+
+
+<br/>
+  6. As an exception to the Sections above, you may also combine or
+<br/>
+link a "work that uses the Library" with the Library to produce a
+<br/>
+work containing portions of the Library, and distribute that work
+<br/>
+under terms of your choice, provided that the terms permit
+<br/>
+modification of the work for the customer's own use and reverse
+<br/>
+engineering for debugging such modifications.
+<br/>
+<br/>
+<br/>
+  You must give prominent notice with each copy of the work that the
+<br/>
+Library is used in it and that the Library and its use are covered by
+<br/>
+this License.  You must supply a copy of this License.  If the work
+<br/>
+during execution displays copyright notices, you must include the
+<br/>
+copyright notice for the Library among them, as well as a reference
+<br/>
+directing the user to the copy of this License.  Also, you must do one
+<br/>
+of these things:
+<br/>
+<br/>
+<br/>
+    a) Accompany the work with the complete corresponding
+<br/>
+    machine-readable source code for the Library including whatever
+<br/>
+    changes were used in the work (which must be distributed under
+<br/>
+    Sections 1 and 2 above); and, if the work is an executable linked
+<br/>
+    with the Library, with the complete machine-readable "work that
+<br/>
+    uses the Library", as object code and/or source code, so that the
+<br/>
+    user can modify the Library and then relink to produce a modified
+<br/>
+    executable containing the modified Library.  (It is understood
+<br/>
+    that the user who changes the contents of definitions files in the
+<br/>
+    Library will not necessarily be able to recompile the application
+<br/>
+    to use the modified definitions.)
+<br/>
+<br/>
+<br/>
+    b) Use a suitable shared library mechanism for linking with the
+<br/>
+    Library.  A suitable mechanism is one that (1) uses at run time a
+<br/>
+    copy of the library already present on the user's computer system,
+<br/>
+    rather than copying library functions into the executable, and (2)
+<br/>
+    will operate properly with a modified version of the library, if
+<br/>
+    the user installs one, as long as the modified version is
+<br/>
+    interface-compatible with the version that the work was made with.
+<br/>
+<br/>
+<br/>
+    c) Accompany the work with a written offer, valid for at
+<br/>
+    least three years, to give the same user the materials
+<br/>
+    specified in Subsection 6a, above, for a charge no more
+<br/>
+    than the cost of performing this distribution.
+<br/>
+<br/>
+<br/>
+    d) If distribution of the work is made by offering access to copy
+<br/>
+    from a designated place, offer equivalent access to copy the above
+<br/>
+    specified materials from the same place.
+<br/>
+<br/>
+<br/>
+    e) Verify that the user has already received a copy of these
+<br/>
+    materials or that you have already sent this user a copy.
+<br/>
+<br/>
+<br/>
+  For an executable, the required form of the "work that uses the
+<br/>
+Library" must include any data and utility programs needed for
+<br/>
+reproducing the executable from it.  However, as a special exception,
+<br/>
+the materials to be distributed need not include anything that is
+<br/>
+normally distributed (in either source or binary form) with the major
+<br/>
+components (compiler, kernel, and so on) of the operating system on
+<br/>
+which the executable runs, unless that component itself accompanies
+<br/>
+the executable.
+<br/>
+<br/>
+<br/>
+  It may happen that this requirement contradicts the license
+<br/>
+restrictions of other proprietary libraries that do not normally
+<br/>
+accompany the operating system.  Such a contradiction means you cannot
+<br/>
+use both them and the Library together in an executable that you
+<br/>
+distribute.
+<br/>
+
+
+<br/>
+  7. You may place library facilities that are a work based on the
+<br/>
+Library side-by-side in a single library together with other library
+<br/>
+facilities not covered by this License, and distribute such a combined
+<br/>
+library, provided that the separate distribution of the work based on
+<br/>
+the Library and of the other library facilities is otherwise
+<br/>
+permitted, and provided that you do these two things:
+<br/>
+<br/>
+<br/>
+    a) Accompany the combined library with a copy of the same work
+<br/>
+    based on the Library, uncombined with any other library
+<br/>
+    facilities.  This must be distributed under the terms of the
+<br/>
+    Sections above.
+<br/>
+<br/>
+<br/>
+    b) Give prominent notice with the combined library of the fact
+<br/>
+    that part of it is a work based on the Library, and explaining
+<br/>
+    where to find the accompanying uncombined form of the same work.
+<br/>
+<br/>
+<br/>
+  8. You may not copy, modify, sublicense, link with, or distribute
+<br/>
+the Library except as expressly provided under this License.  Any
+<br/>
+attempt otherwise to copy, modify, sublicense, link with, or
+<br/>
+distribute the Library is void, and will automatically terminate your
+<br/>
+rights under this License.  However, parties who have received copies,
+<br/>
+or rights, from you under this License will not have their licenses
+<br/>
+terminated so long as such parties remain in full compliance.
+<br/>
+<br/>
+<br/>
+  9. You are not required to accept this License, since you have not
+<br/>
+signed it.  However, nothing else grants you permission to modify or
+<br/>
+distribute the Library or its derivative works.  These actions are
+<br/>
+prohibited by law if you do not accept this License.  Therefore, by
+<br/>
+modifying or distributing the Library (or any work based on the
+<br/>
+Library), you indicate your acceptance of this License to do so, and
+<br/>
+all its terms and conditions for copying, distributing or modifying
+<br/>
+the Library or works based on it.
+<br/>
+<br/>
+<br/>
+  10. Each time you redistribute the Library (or any work based on the
+<br/>
+Library), the recipient automatically receives a license from the
+<br/>
+original licensor to copy, distribute, link with or modify the Library
+<br/>
+subject to these terms and conditions.  You may not impose any further
+<br/>
+restrictions on the recipients' exercise of the rights granted herein.
+<br/>
+You are not responsible for enforcing compliance by third parties with
+<br/>
+this License.
+<br/>
+
+
+<br/>
+  11. If, as a consequence of a court judgment or allegation of patent
+<br/>
+infringement or for any other reason (not limited to patent issues),
+<br/>
+conditions are imposed on you (whether by court order, agreement or
+<br/>
+otherwise) that contradict the conditions of this License, they do not
+<br/>
+excuse you from the conditions of this License.  If you cannot
+<br/>
+distribute so as to satisfy simultaneously your obligations under this
+<br/>
+License and any other pertinent obligations, then as a consequence you
+<br/>
+may not distribute the Library at all.  For example, if a patent
+<br/>
+license would not permit royalty-free redistribution of the Library by
+<br/>
+all those who receive copies directly or indirectly through you, then
+<br/>
+the only way you could satisfy both it and this License would be to
+<br/>
+refrain entirely from distribution of the Library.
+<br/>
+<br/>
+<br/>
+If any portion of this section is held invalid or unenforceable under any
+<br/>
+particular circumstance, the balance of the section is intended to apply,
+<br/>
+and the section as a whole is intended to apply in other circumstances.
+<br/>
+<br/>
+<br/>
+It is not the purpose of this section to induce you to infringe any
+<br/>
+patents or other property right claims or to contest validity of any
+<br/>
+such claims; this section has the sole purpose of protecting the
+<br/>
+integrity of the free software distribution system which is
+<br/>
+implemented by public license practices.  Many people have made
+<br/>
+generous contributions to the wide range of software distributed
+<br/>
+through that system in reliance on consistent application of that
+<br/>
+system; it is up to the author/donor to decide if he or she is willing
+<br/>
+to distribute software through any other system and a licensee cannot
+<br/>
+impose that choice.
+<br/>
+<br/>
+<br/>
+This section is intended to make thoroughly clear what is believed to
+<br/>
+be a consequence of the rest of this License.
+<br/>
+<br/>
+<br/>
+  12. If the distribution and/or use of the Library is restricted in
+<br/>
+certain countries either by patents or by copyrighted interfaces, the
+<br/>
+original copyright holder who places the Library under this License may add
+<br/>
+an explicit geographical distribution limitation excluding those countries,
+<br/>
+so that distribution is permitted only in or among countries not thus
+<br/>
+excluded.  In such case, this License incorporates the limitation as if
+<br/>
+written in the body of this License.
+<br/>
+<br/>
+<br/>
+  13. The Free Software Foundation may publish revised and/or new
+<br/>
+versions of the Lesser General Public License from time to time.
+<br/>
+Such new versions will be similar in spirit to the present version,
+<br/>
+but may differ in detail to address new problems or concerns.
+<br/>
+<br/>
+<br/>
+Each version is given a distinguishing version number.  If the Library
+<br/>
+specifies a version number of this License which applies to it and
+<br/>
+"any later version", you have the option of following the terms and
+<br/>
+conditions either of that version or of any later version published by
+<br/>
+the Free Software Foundation.  If the Library does not specify a
+<br/>
+license version number, you may choose any version ever published by
+<br/>
+the Free Software Foundation.
+<br/>
+
+
+<br/>
+  14. If you wish to incorporate parts of the Library into other free
+<br/>
+programs whose distribution conditions are incompatible with these,
+<br/>
+write to the author to ask for permission.  For software which is
+<br/>
+copyrighted by the Free Software Foundation, write to the Free
+<br/>
+Software Foundation; we sometimes make exceptions for this.  Our
+<br/>
+decision will be guided by the two goals of preserving the free status
+<br/>
+of all derivatives of our free software and of promoting the sharing
+<br/>
+and reuse of software generally.
+<br/>
+<br/>
+<br/>
+			    NO WARRANTY
+<br/>
+<br/>
+<br/>
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+<br/>
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+<br/>
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+<br/>
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+<br/>
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+<br/>
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+<br/>
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+<br/>
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+<br/>
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+<br/>
+<br/>
+<br/>
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+<br/>
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+<br/>
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+<br/>
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+<br/>
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+<br/>
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+<br/>
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+<br/>
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+<br/>
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+<br/>
+DAMAGES.
+<br/>
+<br/>
+<br/>
+		     END OF TERMS AND CONDITIONS
+<br/>
+
+
+<br/>
+           How to Apply These Terms to Your New Libraries
+<br/>
+<br/>
+<br/>
+  If you develop a new library, and you want it to be of the greatest
+<br/>
+possible use to the public, we recommend making it free software that
+<br/>
+everyone can redistribute and change.  You can do so by permitting
+<br/>
+redistribution under these terms (or, alternatively, under the terms of the
+<br/>
+ordinary General Public License).
+<br/>
+<br/>
+<br/>
+  To apply these terms, attach the following notices to the library.  It is
+<br/>
+safest to attach them to the start of each source file to most effectively
+<br/>
+convey the exclusion of warranty; and each file should have at least the
+<br/>
+"copyright" line and a pointer to where the full notice is found.
+<br/>
+<br/>
+<br/>
+    &lt;one line to give the library's name and a brief idea of what it does.&gt;
+<br/>
+    Copyright (C) &lt;year&gt;  &lt;name of author&gt;
+<br/>
+<br/>
+<br/>
+    This library is free software; you can redistribute it and/or
+<br/>
+    modify it under the terms of the GNU Lesser General Public
+<br/>
+    License as published by the Free Software Foundation; either
+<br/>
+    version 2.1 of the License, or (at your option) any later version.
+<br/>
+<br/>
+<br/>
+    This library is distributed in the hope that it will be useful,
+<br/>
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+<br/>
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+<br/>
+    Lesser General Public License for more details.
+<br/>
+<br/>
+<br/>
+    You should have received a copy of the GNU Lesser General Public
+<br/>
+    License along with this library; if not, write to the Free Software
+<br/>
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+<br/>
+<br/>
+<br/>
+Also add information on how to contact you by electronic and paper mail.
+<br/>
+<br/>
+<br/>
+You should also get your employer (if you work as a programmer) or your
+<br/>
+school, if any, to sign a "copyright disclaimer" for the library, if
+<br/>
+necessary.  Here is a sample; alter the names:
+<br/>
+<br/>
+<br/>
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+<br/>
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+<br/>
+<br/>
+<br/>
+  &lt;signature of Ty Coon&gt;, 1 April 1990
+<br/>
+  Ty Coon, President of Vice
+<br/>
+<br/>
+<br/>
+That's all there is to it!
+<br/>
+<br/>
+<br/>
+<br/>
+<br/>
+ 
+<br/>
+
+			</div><hr/>
+		<h2>crystalsvg</h2>
+
+<img align="left" alt="next.png" src="images/navicons/crystalsvg/resources/icons/next.png" width="16" height="16"/>
+			
+<img align="left" alt="cancel.png" src="images/navicons/crystalsvg/resources/icons/cancel.png" width="16" height="16"/>
+			
+<img align="left" alt="back.png" src="images/navicons/crystalsvg/resources/icons/back.png" width="16" height="16"/>
+			
+<img align="left" alt="finish.png" src="images/navicons/crystalsvg/resources/icons/finish.png" width="16" height="16"/>
+			
+<img align="left" alt="ok.png" src="images/navicons/crystalsvg/resources/icons/ok.png" width="16" height="16"/>
+			
+<img align="left" alt="showdetails.png" src="images/navicons/crystalsvg/resources/icons/showdetails.png" width="16" height="16"/>
+			
+			<br/><b>License</b><br/>
+			<div class="tpcropped">
+		This copyright and license notice covers the images in this directory.
+<br/>
+Note the license notice contains an add-on.
+<br/>
+<br/>
+<br/>
+KDE Crystal theme icons.
+<br/>
+Copyright (C) 2002 and following years KDE Artists
+<br/>
+This library is free software; you can redistribute it and/or modify it under
+<br/>
+the terms of the GNU Lesser General Public License as published by the Free
+<br/>
+Software Foundation, version 2.1 of the License.
+<br/>
+<br/>
+<br/>
+This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
+<br/>
+implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+<br/>
+License for more details. 
+<br/>
+
+			</div><hr/>
+		<h2>krystaline</h2>
+
+<img align="left" alt="next.png" src="images/navicons/krystaline/resources/icons/next.png" width="16" height="16"/>
+			
+<img align="left" alt="cancel.png" src="images/navicons/krystaline/resources/icons/cancel.png" width="16" height="16"/>
+			
+<img align="left" alt="back.png" src="images/navicons/krystaline/resources/icons/back.png" width="16" height="16"/>
+			
+<img align="left" alt="finish.png" src="images/navicons/krystaline/resources/icons/finish.png" width="16" height="16"/>
+			
+<img align="left" alt="ok.png" src="images/navicons/krystaline/resources/icons/ok.png" width="16" height="16"/>
+			
+<img align="left" alt="showdetails.png" src="images/navicons/krystaline/resources/icons/showdetails.png" width="16" height="16"/>
+			
+			<br/><b>License</b><br/>
+			<div class="tpcropped">
+				  GNU LESSER GENERAL PUBLIC LICENSE
+<br/>
+		       Version 2.1, February 1999
+<br/>
+<br/>
+<br/>
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+<br/>
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+<br/>
+ Everyone is permitted to copy and distribute verbatim copies
+<br/>
+ of this license document, but changing it is not allowed.
+<br/>
+<br/>
+<br/>
+[This is the first released version of the Lesser GPL.  It also counts
+<br/>
+ as the successor of the GNU Library Public License, version 2, hence
+<br/>
+ the version number 2.1.]
+<br/>
+<br/>
+<br/>
+			    Preamble
+<br/>
+<br/>
+<br/>
+  The licenses for most software are designed to take away your
+<br/>
+freedom to share and change it.  By contrast, the GNU General Public
+<br/>
+Licenses are intended to guarantee your freedom to share and change
+<br/>
+free software--to make sure the software is free for all its users.
+<br/>
+<br/>
+<br/>
+  This license, the Lesser General Public License, applies to some
+<br/>
+specially designated software packages--typically libraries--of the
+<br/>
+Free Software Foundation and other authors who decide to use it.  You
+<br/>
+can use it too, but we suggest you first think carefully about whether
+<br/>
+this license or the ordinary General Public License is the better
+<br/>
+strategy to use in any particular case, based on the explanations below.
+<br/>
+<br/>
+<br/>
+  When we speak of free software, we are referring to freedom of use,
+<br/>
+not price.  Our General Public Licenses are designed to make sure that
+<br/>
+you have the freedom to distribute copies of free software (and charge
+<br/>
+for this service if you wish); that you receive source code or can get
+<br/>
+it if you want it; that you can change the software and use pieces of
+<br/>
+it in new free programs; and that you are informed that you can do
+<br/>
+these things.
+<br/>
+<br/>
+<br/>
+  To protect your rights, we need to make restrictions that forbid
+<br/>
+distributors to deny you these rights or to ask you to surrender these
+<br/>
+rights.  These restrictions translate to certain responsibilities for
+<br/>
+you if you distribute copies of the library or if you modify it.
+<br/>
+<br/>
+<br/>
+  For example, if you distribute copies of the library, whether gratis
+<br/>
+or for a fee, you must give the recipients all the rights that we gave
+<br/>
+you.  You must make sure that they, too, receive or can get the source
+<br/>
+code.  If you link other code with the library, you must provide
+<br/>
+complete object files to the recipients, so that they can relink them
+<br/>
+with the library after making changes to the library and recompiling
+<br/>
+it.  And you must show them these terms so they know their rights.
+<br/>
+<br/>
+<br/>
+  We protect your rights with a two-step method: (1) we copyright the
+<br/>
+library, and (2) we offer you this license, which gives you legal
+<br/>
+permission to copy, distribute and/or modify the library.
+<br/>
+<br/>
+<br/>
+  To protect each distributor, we want to make it very clear that
+<br/>
+there is no warranty for the free library.  Also, if the library is
+<br/>
+modified by someone else and passed on, the recipients should know
+<br/>
+that what they have is not the original version, so that the original
+<br/>
+author's reputation will not be affected by problems that might be
+<br/>
+introduced by others.
+<br/>
+
+
+<br/>
+  Finally, software patents pose a constant threat to the existence of
+<br/>
+any free program.  We wish to make sure that a company cannot
+<br/>
+effectively restrict the users of a free program by obtaining a
+<br/>
+restrictive license from a patent holder.  Therefore, we insist that
+<br/>
+any patent license obtained for a version of the library must be
+<br/>
+consistent with the full freedom of use specified in this license.
+<br/>
+<br/>
+<br/>
+  Most GNU software, including some libraries, is covered by the
+<br/>
+ordinary GNU General Public License.  This license, the GNU Lesser
+<br/>
+General Public License, applies to certain designated libraries, and
+<br/>
+is quite different from the ordinary General Public License.  We use
+<br/>
+this license for certain libraries in order to permit linking those
+<br/>
+libraries into non-free programs.
+<br/>
+<br/>
+<br/>
+  When a program is linked with a library, whether statically or using
+<br/>
+a shared library, the combination of the two is legally speaking a
+<br/>
+combined work, a derivative of the original library.  The ordinary
+<br/>
+General Public License therefore permits such linking only if the
+<br/>
+entire combination fits its criteria of freedom.  The Lesser General
+<br/>
+Public License permits more lax criteria for linking other code with
+<br/>
+the library.
+<br/>
+<br/>
+<br/>
+  We call this license the "Lesser" General Public License because it
+<br/>
+does Less to protect the user's freedom than the ordinary General
+<br/>
+Public License.  It also provides other free software developers Less
+<br/>
+of an advantage over competing non-free programs.  These disadvantages
+<br/>
+are the reason we use the ordinary General Public License for many
+<br/>
+libraries.  However, the Lesser license provides advantages in certain
+<br/>
+special circumstances.
+<br/>
+<br/>
+<br/>
+  For example, on rare occasions, there may be a special need to
+<br/>
+encourage the widest possible use of a certain library, so that it becomes
+<br/>
+a de-facto standard.  To achieve this, non-free programs must be
+<br/>
+allowed to use the library.  A more frequent case is that a free
+<br/>
+library does the same job as widely used non-free libraries.  In this
+<br/>
+case, there is little to gain by limiting the free library to free
+<br/>
+software only, so we use the Lesser General Public License.
+<br/>
+<br/>
+<br/>
+  In other cases, permission to use a particular library in non-free
+<br/>
+programs enables a greater number of people to use a large body of
+<br/>
+free software.  For example, permission to use the GNU C Library in
+<br/>
+non-free programs enables many more people to use the whole GNU
+<br/>
+operating system, as well as its variant, the GNU/Linux operating
+<br/>
+system.
+<br/>
+<br/>
+<br/>
+  Although the Lesser General Public License is Less protective of the
+<br/>
+users' freedom, it does ensure that the user of a program that is
+<br/>
+linked with the Library has the freedom and the wherewithal to run
+<br/>
+that program using a modified version of the Library.
+<br/>
+<br/>
+<br/>
+  The precise terms and conditions for copying, distribution and
+<br/>
+modification follow.  Pay close attention to the difference between a
+<br/>
+"work based on the library" and a "work that uses the library".  The
+<br/>
+former contains code derived from the library, whereas the latter must
+<br/>
+be combined with the library in order to run.
+<br/>
+
+
+<br/>
+		  GNU LESSER GENERAL PUBLIC LICENSE
+<br/>
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+<br/>
+<br/>
+<br/>
+  0. This License Agreement applies to any software library or other
+<br/>
+program which contains a notice placed by the copyright holder or
+<br/>
+other authorized party saying it may be distributed under the terms of
+<br/>
+this Lesser General Public License (also called "this License").
+<br/>
+Each licensee is addressed as "you".
+<br/>
+<br/>
+<br/>
+  A "library" means a collection of software functions and/or data
+<br/>
+prepared so as to be conveniently linked with application programs
+<br/>
+(which use some of those functions and data) to form executables.
+<br/>
+<br/>
+<br/>
+  The "Library", below, refers to any such software library or work
+<br/>
+which has been distributed under these terms.  A "work based on the
+<br/>
+Library" means either the Library or any derivative work under
+<br/>
+copyright law: that is to say, a work containing the Library or a
+<br/>
+portion of it, either verbatim or with modifications and/or translated
+<br/>
+straightforwardly into another language.  (Hereinafter, translation is
+<br/>
+included without limitation in the term "modification".)
+<br/>
+<br/>
+<br/>
+  "Source code" for a work means the preferred form of the work for
+<br/>
+making modifications to it.  For a library, complete source code means
+<br/>
+all the source code for all modules it contains, plus any associated
+<br/>
+interface definition files, plus the scripts used to control compilation
+<br/>
+and installation of the library.
+<br/>
+<br/>
+<br/>
+  Activities other than copying, distribution and modification are not
+<br/>
+covered by this License; they are outside its scope.  The act of
+<br/>
+running a program using the Library is not restricted, and output from
+<br/>
+such a program is covered only if its contents constitute a work based
+<br/>
+on the Library (independent of the use of the Library in a tool for
+<br/>
+writing it).  Whether that is true depends on what the Library does
+<br/>
+and what the program that uses the Library does.
+<br/>
+  
+<br/>
+  1. You may copy and distribute verbatim copies of the Library's
+<br/>
+complete source code as you receive it, in any medium, provided that
+<br/>
+you conspicuously and appropriately publish on each copy an
+<br/>
+appropriate copyright notice and disclaimer of warranty; keep intact
+<br/>
+all the notices that refer to this License and to the absence of any
+<br/>
+warranty; and distribute a copy of this License along with the
+<br/>
+Library.
+<br/>
+<br/>
+<br/>
+  You may charge a fee for the physical act of transferring a copy,
+<br/>
+and you may at your option offer warranty protection in exchange for a
+<br/>
+fee.
+<br/>
+
+
+<br/>
+  2. You may modify your copy or copies of the Library or any portion
+<br/>
+of it, thus forming a work based on the Library, and copy and
+<br/>
+distribute such modifications or work under the terms of Section 1
+<br/>
+above, provided that you also meet all of these conditions:
+<br/>
+<br/>
+<br/>
+    a) The modified work must itself be a software library.
+<br/>
+<br/>
+<br/>
+    b) You must cause the files modified to carry prominent notices
+<br/>
+    stating that you changed the files and the date of any change.
+<br/>
+<br/>
+<br/>
+    c) You must cause the whole of the work to be licensed at no
+<br/>
+    charge to all third parties under the terms of this License.
+<br/>
+<br/>
+<br/>
+    d) If a facility in the modified Library refers to a function or a
+<br/>
+    table of data to be supplied by an application program that uses
+<br/>
+    the facility, other than as an argument passed when the facility
+<br/>
+    is invoked, then you must make a good faith effort to ensure that,
+<br/>
+    in the event an application does not supply such function or
+<br/>
+    table, the facility still operates, and performs whatever part of
+<br/>
+    its purpose remains meaningful.
+<br/>
+<br/>
+<br/>
+    (For example, a function in a library to compute square roots has
+<br/>
+    a purpose that is entirely well-defined independent of the
+<br/>
+    application.  Therefore, Subsection 2d requires that any
+<br/>
+    application-supplied function or table used by this function must
+<br/>
+    be optional: if the application does not supply it, the square
+<br/>
+    root function must still compute square roots.)
+<br/>
+<br/>
+<br/>
+These requirements apply to the modified work as a whole.  If
+<br/>
+identifiable sections of that work are not derived from the Library,
+<br/>
+and can be reasonably considered independent and separate works in
+<br/>
+themselves, then this License, and its terms, do not apply to those
+<br/>
+sections when you distribute them as separate works.  But when you
+<br/>
+distribute the same sections as part of a whole which is a work based
+<br/>
+on the Library, the distribution of the whole must be on the terms of
+<br/>
+this License, whose permissions for other licensees extend to the
+<br/>
+entire whole, and thus to each and every part regardless of who wrote
+<br/>
+it.
+<br/>
+<br/>
+<br/>
+Thus, it is not the intent of this section to claim rights or contest
+<br/>
+your rights to work written entirely by you; rather, the intent is to
+<br/>
+exercise the right to control the distribution of derivative or
+<br/>
+collective works based on the Library.
+<br/>
+<br/>
+<br/>
+In addition, mere aggregation of another work not based on the Library
+<br/>
+with the Library (or with a work based on the Library) on a volume of
+<br/>
+a storage or distribution medium does not bring the other work under
+<br/>
+the scope of this License.
+<br/>
+<br/>
+<br/>
+  3. You may opt to apply the terms of the ordinary GNU General Public
+<br/>
+License instead of this License to a given copy of the Library.  To do
+<br/>
+this, you must alter all the notices that refer to this License, so
+<br/>
+that they refer to the ordinary GNU General Public License, version 2,
+<br/>
+instead of to this License.  (If a newer version than version 2 of the
+<br/>
+ordinary GNU General Public License has appeared, then you can specify
+<br/>
+that version instead if you wish.)  Do not make any other change in
+<br/>
+these notices.
+<br/>
+
+
+<br/>
+  Once this change is made in a given copy, it is irreversible for
+<br/>
+that copy, so the ordinary GNU General Public License applies to all
+<br/>
+subsequent copies and derivative works made from that copy.
+<br/>
+<br/>
+<br/>
+  This option is useful when you wish to copy part of the code of
+<br/>
+the Library into a program that is not a library.
+<br/>
+<br/>
+<br/>
+  4. You may copy and distribute the Library (or a portion or
+<br/>
+derivative of it, under Section 2) in object code or executable form
+<br/>
+under the terms of Sections 1 and 2 above provided that you accompany
+<br/>
+it with the complete corresponding machine-readable source code, which
+<br/>
+must be distributed under the terms of Sections 1 and 2 above on a
+<br/>
+medium customarily used for software interchange.
+<br/>
+<br/>
+<br/>
+  If distribution of object code is made by offering access to copy
+<br/>
+from a designated place, then offering equivalent access to copy the
+<br/>
+source code from the same place satisfies the requirement to
+<br/>
+distribute the source code, even though third parties are not
+<br/>
+compelled to copy the source along with the object code.
+<br/>
+<br/>
+<br/>
+  5. A program that contains no derivative of any portion of the
+<br/>
+Library, but is designed to work with the Library by being compiled or
+<br/>
+linked with it, is called a "work that uses the Library".  Such a
+<br/>
+work, in isolation, is not a derivative work of the Library, and
+<br/>
+therefore falls outside the scope of this License.
+<br/>
+<br/>
+<br/>
+  However, linking a "work that uses the Library" with the Library
+<br/>
+creates an executable that is a derivative of the Library (because it
+<br/>
+contains portions of the Library), rather than a "work that uses the
+<br/>
+library".  The executable is therefore covered by this License.
+<br/>
+Section 6 states terms for distribution of such executables.
+<br/>
+<br/>
+<br/>
+  When a "work that uses the Library" uses material from a header file
+<br/>
+that is part of the Library, the object code for the work may be a
+<br/>
+derivative work of the Library even though the source code is not.
+<br/>
+Whether this is true is especially significant if the work can be
+<br/>
+linked without the Library, or if the work is itself a library.  The
+<br/>
+threshold for this to be true is not precisely defined by law.
+<br/>
+<br/>
+<br/>
+  If such an object file uses only numerical parameters, data
+<br/>
+structure layouts and accessors, and small macros and small inline
+<br/>
+functions (ten lines or less in length), then the use of the object
+<br/>
+file is unrestricted, regardless of whether it is legally a derivative
+<br/>
+work.  (Executables containing this object code plus portions of the
+<br/>
+Library will still fall under Section 6.)
+<br/>
+<br/>
+<br/>
+  Otherwise, if the work is a derivative of the Library, you may
+<br/>
+distribute the object code for the work under the terms of Section 6.
+<br/>
+Any executables containing that work also fall under Section 6,
+<br/>
+whether or not they are linked directly with the Library itself.
+<br/>
+
+
+<br/>
+  6. As an exception to the Sections above, you may also combine or
+<br/>
+link a "work that uses the Library" with the Library to produce a
+<br/>
+work containing portions of the Library, and distribute that work
+<br/>
+under terms of your choice, provided that the terms permit
+<br/>
+modification of the work for the customer's own use and reverse
+<br/>
+engineering for debugging such modifications.
+<br/>
+<br/>
+<br/>
+  You must give prominent notice with each copy of the work that the
+<br/>
+Library is used in it and that the Library and its use are covered by
+<br/>
+this License.  You must supply a copy of this License.  If the work
+<br/>
+during execution displays copyright notices, you must include the
+<br/>
+copyright notice for the Library among them, as well as a reference
+<br/>
+directing the user to the copy of this License.  Also, you must do one
+<br/>
+of these things:
+<br/>
+<br/>
+<br/>
+    a) Accompany the work with the complete corresponding
+<br/>
+    machine-readable source code for the Library including whatever
+<br/>
+    changes were used in the work (which must be distributed under
+<br/>
+    Sections 1 and 2 above); and, if the work is an executable linked
+<br/>
+    with the Library, with the complete machine-readable "work that
+<br/>
+    uses the Library", as object code and/or source code, so that the
+<br/>
+    user can modify the Library and then relink to produce a modified
+<br/>
+    executable containing the modified Library.  (It is understood
+<br/>
+    that the user who changes the contents of definitions files in the
+<br/>
+    Library will not necessarily be able to recompile the application
+<br/>
+    to use the modified definitions.)
+<br/>
+<br/>
+<br/>
+    b) Use a suitable shared library mechanism for linking with the
+<br/>
+    Library.  A suitable mechanism is one that (1) uses at run time a
+<br/>
+    copy of the library already present on the user's computer system,
+<br/>
+    rather than copying library functions into the executable, and (2)
+<br/>
+    will operate properly with a modified version of the library, if
+<br/>
+    the user installs one, as long as the modified version is
+<br/>
+    interface-compatible with the version that the work was made with.
+<br/>
+<br/>
+<br/>
+    c) Accompany the work with a written offer, valid for at
+<br/>
+    least three years, to give the same user the materials
+<br/>
+    specified in Subsection 6a, above, for a charge no more
+<br/>
+    than the cost of performing this distribution.
+<br/>
+<br/>
+<br/>
+    d) If distribution of the work is made by offering access to copy
+<br/>
+    from a designated place, offer equivalent access to copy the above
+<br/>
+    specified materials from the same place.
+<br/>
+<br/>
+<br/>
+    e) Verify that the user has already received a copy of these
+<br/>
+    materials or that you have already sent this user a copy.
+<br/>
+<br/>
+<br/>
+  For an executable, the required form of the "work that uses the
+<br/>
+Library" must include any data and utility programs needed for
+<br/>
+reproducing the executable from it.  However, as a special exception,
+<br/>
+the materials to be distributed need not include anything that is
+<br/>
+normally distributed (in either source or binary form) with the major
+<br/>
+components (compiler, kernel, and so on) of the operating system on
+<br/>
+which the executable runs, unless that component itself accompanies
+<br/>
+the executable.
+<br/>
+<br/>
+<br/>
+  It may happen that this requirement contradicts the license
+<br/>
+restrictions of other proprietary libraries that do not normally
+<br/>
+accompany the operating system.  Such a contradiction means you cannot
+<br/>
+use both them and the Library together in an executable that you
+<br/>
+distribute.
+<br/>
+
+
+<br/>
+  7. You may place library facilities that are a work based on the
+<br/>
+Library side-by-side in a single library together with other library
+<br/>
+facilities not covered by this License, and distribute such a combined
+<br/>
+library, provided that the separate distribution of the work based on
+<br/>
+the Library and of the other library facilities is otherwise
+<br/>
+permitted, and provided that you do these two things:
+<br/>
+<br/>
+<br/>
+    a) Accompany the combined library with a copy of the same work
+<br/>
+    based on the Library, uncombined with any other library
+<br/>
+    facilities.  This must be distributed under the terms of the
+<br/>
+    Sections above.
+<br/>
+<br/>
+<br/>
+    b) Give prominent notice with the combined library of the fact
+<br/>
+    that part of it is a work based on the Library, and explaining
+<br/>
+    where to find the accompanying uncombined form of the same work.
+<br/>
+<br/>
+<br/>
+  8. You may not copy, modify, sublicense, link with, or distribute
+<br/>
+the Library except as expressly provided under this License.  Any
+<br/>
+attempt otherwise to copy, modify, sublicense, link with, or
+<br/>
+distribute the Library is void, and will automatically terminate your
+<br/>
+rights under this License.  However, parties who have received copies,
+<br/>
+or rights, from you under this License will not have their licenses
+<br/>
+terminated so long as such parties remain in full compliance.
+<br/>
+<br/>
+<br/>
+  9. You are not required to accept this License, since you have not
+<br/>
+signed it.  However, nothing else grants you permission to modify or
+<br/>
+distribute the Library or its derivative works.  These actions are
+<br/>
+prohibited by law if you do not accept this License.  Therefore, by
+<br/>
+modifying or distributing the Library (or any work based on the
+<br/>
+Library), you indicate your acceptance of this License to do so, and
+<br/>
+all its terms and conditions for copying, distributing or modifying
+<br/>
+the Library or works based on it.
+<br/>
+<br/>
+<br/>
+  10. Each time you redistribute the Library (or any work based on the
+<br/>
+Library), the recipient automatically receives a license from the
+<br/>
+original licensor to copy, distribute, link with or modify the Library
+<br/>
+subject to these terms and conditions.  You may not impose any further
+<br/>
+restrictions on the recipients' exercise of the rights granted herein.
+<br/>
+You are not responsible for enforcing compliance by third parties with
+<br/>
+this License.
+<br/>
+
+
+<br/>
+  11. If, as a consequence of a court judgment or allegation of patent
+<br/>
+infringement or for any other reason (not limited to patent issues),
+<br/>
+conditions are imposed on you (whether by court order, agreement or
+<br/>
+otherwise) that contradict the conditions of this License, they do not
+<br/>
+excuse you from the conditions of this License.  If you cannot
+<br/>
+distribute so as to satisfy simultaneously your obligations under this
+<br/>
+License and any other pertinent obligations, then as a consequence you
+<br/>
+may not distribute the Library at all.  For example, if a patent
+<br/>
+license would not permit royalty-free redistribution of the Library by
+<br/>
+all those who receive copies directly or indirectly through you, then
+<br/>
+the only way you could satisfy both it and this License would be to
+<br/>
+refrain entirely from distribution of the Library.
+<br/>
+<br/>
+<br/>
+If any portion of this section is held invalid or unenforceable under any
+<br/>
+particular circumstance, the balance of the section is intended to apply,
+<br/>
+and the section as a whole is intended to apply in other circumstances.
+<br/>
+<br/>
+<br/>
+It is not the purpose of this section to induce you to infringe any
+<br/>
+patents or other property right claims or to contest validity of any
+<br/>
+such claims; this section has the sole purpose of protecting the
+<br/>
+integrity of the free software distribution system which is
+<br/>
+implemented by public license practices.  Many people have made
+<br/>
+generous contributions to the wide range of software distributed
+<br/>
+through that system in reliance on consistent application of that
+<br/>
+system; it is up to the author/donor to decide if he or she is willing
+<br/>
+to distribute software through any other system and a licensee cannot
+<br/>
+impose that choice.
+<br/>
+<br/>
+<br/>
+This section is intended to make thoroughly clear what is believed to
+<br/>
+be a consequence of the rest of this License.
+<br/>
+<br/>
+<br/>
+  12. If the distribution and/or use of the Library is restricted in
+<br/>
+certain countries either by patents or by copyrighted interfaces, the
+<br/>
+original copyright holder who places the Library under this License may add
+<br/>
+an explicit geographical distribution limitation excluding those countries,
+<br/>
+so that distribution is permitted only in or among countries not thus
+<br/>
+excluded.  In such case, this License incorporates the limitation as if
+<br/>
+written in the body of this License.
+<br/>
+<br/>
+<br/>
+  13. The Free Software Foundation may publish revised and/or new
+<br/>
+versions of the Lesser General Public License from time to time.
+<br/>
+Such new versions will be similar in spirit to the present version,
+<br/>
+but may differ in detail to address new problems or concerns.
+<br/>
+<br/>
+<br/>
+Each version is given a distinguishing version number.  If the Library
+<br/>
+specifies a version number of this License which applies to it and
+<br/>
+"any later version", you have the option of following the terms and
+<br/>
+conditions either of that version or of any later version published by
+<br/>
+the Free Software Foundation.  If the Library does not specify a
+<br/>
+license version number, you may choose any version ever published by
+<br/>
+the Free Software Foundation.
+<br/>
+
+
+<br/>
+  14. If you wish to incorporate parts of the Library into other free
+<br/>
+programs whose distribution conditions are incompatible with these,
+<br/>
+write to the author to ask for permission.  For software which is
+<br/>
+copyrighted by the Free Software Foundation, write to the Free
+<br/>
+Software Foundation; we sometimes make exceptions for this.  Our
+<br/>
+decision will be guided by the two goals of preserving the free status
+<br/>
+of all derivatives of our free software and of promoting the sharing
+<br/>
+and reuse of software generally.
+<br/>
+<br/>
+<br/>
+			    NO WARRANTY
+<br/>
+<br/>
+<br/>
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+<br/>
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+<br/>
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+<br/>
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+<br/>
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+<br/>
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+<br/>
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+<br/>
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+<br/>
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+<br/>
+<br/>
+<br/>
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+<br/>
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+<br/>
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+<br/>
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+<br/>
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+<br/>
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+<br/>
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+<br/>
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+<br/>
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+<br/>
+DAMAGES.
+<br/>
+<br/>
+<br/>
+		     END OF TERMS AND CONDITIONS
+<br/>
+
+
+<br/>
+           How to Apply These Terms to Your New Libraries
+<br/>
+<br/>
+<br/>
+  If you develop a new library, and you want it to be of the greatest
+<br/>
+possible use to the public, we recommend making it free software that
+<br/>
+everyone can redistribute and change.  You can do so by permitting
+<br/>
+redistribution under these terms (or, alternatively, under the terms of the
+<br/>
+ordinary General Public License).
+<br/>
+<br/>
+<br/>
+  To apply these terms, attach the following notices to the library.  It is
+<br/>
+safest to attach them to the start of each source file to most effectively
+<br/>
+convey the exclusion of warranty; and each file should have at least the
+<br/>
+"copyright" line and a pointer to where the full notice is found.
+<br/>
+<br/>
+<br/>
+    &lt;one line to give the library's name and a brief idea of what it does.&gt;
+<br/>
+    Copyright (C) &lt;year&gt;  &lt;name of author&gt;
+<br/>
+<br/>
+<br/>
+    This library is free software; you can redistribute it and/or
+<br/>
+    modify it under the terms of the GNU Lesser General Public
+<br/>
+    License as published by the Free Software Foundation; either
+<br/>
+    version 2.1 of the License, or (at your option) any later version.
+<br/>
+<br/>
+<br/>
+    This library is distributed in the hope that it will be useful,
+<br/>
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+<br/>
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+<br/>
+    Lesser General Public License for more details.
+<br/>
+<br/>
+<br/>
+    You should have received a copy of the GNU Lesser General Public
+<br/>
+    License along with this library; if not, write to the Free Software
+<br/>
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+<br/>
+<br/>
+<br/>
+Also add information on how to contact you by electronic and paper mail.
+<br/>
+<br/>
+<br/>
+You should also get your employer (if you work as a programmer) or your
+<br/>
+school, if any, to sign a "copyright disclaimer" for the library, if
+<br/>
+necessary.  Here is a sample; alter the names:
+<br/>
+<br/>
+<br/>
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+<br/>
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+<br/>
+<br/>
+<br/>
+  &lt;signature of Ty Coon&gt;, 1 April 1990
+<br/>
+  Ty Coon, President of Vice
+<br/>
+<br/>
+<br/>
+That's all there is to it!
+<br/>
+<br/>
+<br/>
+<br/>
+<br/>
+
+			</div><hr/>
+		
+
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/icons.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/icons.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/icons.jsp	(revision 14989)
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+
+<%@page import="java.io.*" %><%@page import="java.util.*" %>
+		<h2>icons</h2>
+		AntInstaller has a few options for the button icons used in the installer.<br/><br/>
+		
+		These can be included in the installer by adding the <code>icons</code> attribute to the <code>installer</code> element
+		of the <a href="installertask.html">AntInstaller Ant task</a>.<br/><br/>
+		
+		<%
+		String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+		File fleJspDir = new File(strJspDir);
+		File dir = new File(fleJspDir, "images/navicons");
+		File[] directories = dir.listFiles();
+		for (int i = 0; i < directories.length; i++){
+			if(!directories[i].isDirectory())continue;
+			out.println("<h2>" + directories[i].getName() + "</h2>");
+			File iconsDir = new File(directories[i], "resources/icons");
+			File[] icons = iconsDir.listFiles();
+			for (int j = 0; j < icons.length; j++){
+				if(!icons[j].getName().endsWith(".png"))continue;
+			
+			%>
+<img align="left" alt="<%=icons[j].getName()%>" src="images/navicons/<%=directories[i].getName()%>/resources/icons/<%=icons[j].getName()%>" width="16" height="16"/>
+			<%
+				
+			}
+		%>
+			<br/><b>License</b><br/>
+			<div class="tpcropped">
+		<%
+			BufferedReader br = new BufferedReader(new FileReader(new File(iconsDir, "LICENSE")));
+			String line = null;
+			while( (line=br.readLine()) != null ){
+				if(line.equals(""))out.println("<br/>");
+				else out.println(line.replaceAll("&", "&amp;").replaceAll(">", "&gt;").replaceAll("<", "&lt;"));
+				out.println("<br/>");
+			}
+		%>
+			</div><hr/>
+		<%
+			
+		}
+		%>
+
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/images/navicons/amaranth/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/images/navicons/amaranth/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/images/navicons/amaranth/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,514 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+ 
Index: /release-kits/shared/ant-installer/web/images/navicons/bluecurve/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/images/navicons/bluecurve/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/images/navicons/bluecurve/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,56 @@
+The Fedora Project
+
+Individual Contributor License Agreement (CLA)
+
+[WWW] http://fedoraproject.org/wiki/Legal/Licenses/CLA
+
+Thank you for your interest in The Fedora Project (the "Project"). In order to clarify the intellectual property license granted with Contributions from any person or entity, Red Hat, Inc. ("Red Hat"), as maintainer of the Project, must have a Contributor License Agreement (CLA) on file that has been signed by each Contributor, indicating agreement to the license terms below. This license is for Your protection as a Contributor as well as the protection of the Project and its users; it does not change your rights to use your own Contributions for any other purpose.
+
+You and the Project hereby accept and agree to the following terms and conditions:
+
+    *
+
+      1. Contributors and Contributions.
+          o
+
+            A. The Project and any individual or legal entity that voluntarily submits to the Project a Contribution are collectively addressed herein as "Contributors". For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+          o
+
+            B. A "Contribution" is any original work, including any modification or addition to an existing work, that has been submitted for inclusion in, or documentation of, any of the products owned or managed by the Project, where such work originates from that particular Contributor or from some entity acting on behalf of that Contributor.
+          o
+
+            C. A Contribution is "submitted" when any form of electronic, verbal, or written communication is sent to the Project, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of discussing or improving software or documentation of the Project, but excluding communication that is conspicuously marked or otherwise designated in writing by you as "Not a Contribution."
+          o
+
+            D. Any Contribution submitted by you to the Project shall be under the terms and conditions of this License, without any additional terms or conditions, unless you explicitly state otherwise in the submission.
+    *
+
+      2. Contributor Grant of License. You hereby grant to Red Hat, Inc., on behalf of the Project, and to recipients of software distributed by the Project:
+          o
+
+            (a) a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute your Contribution and such derivative works; and,
+          o
+
+            (b) a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, irrevocable (subject to Section 3) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer your Contribution and derivative works thereof, where such license applies only to those patent claims licensable by you that are necessarily infringed by your Contribution alone or by combination of your Contribution with the work to which you submitted the Contribution. Except for the license granted in this section, you reserve all right, title and interest in and to your Contributions.
+    *
+
+      3. Reciprocity. As of the date any such litigation is filed, your patent grant shall immediately terminate with respect to any party that institutes patent litigation against you (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the work to which you have contributed, constitutes direct or contributory patent infringement.
+    *
+
+      4. You represent that you are legally entitled to grant the above license. If your employer(s) has rights to intellectual property that you create that includes your Contributions, you represent that you have received permission to make Contributions on behalf of that employer, that your employer has waived such rights for your Contributions to the Project, or that your employer has executed a separate Corporate CLA with the Project.
+    *
+
+      5. You represent that each of your Contributions is your original creation (see section 7 for submissions on behalf of others). You represent that your Contribution submission(s) include complete details of any third-party license or other restriction (including, but not limited to, related copyright, patents and trademarks) of which you are personally aware and which are associated with any part of your Contribution.
+    *
+
+      6. You are not expected to provide support for your Contributions, except to the extent you desire to provide support. You may provide support for free, for a fee, or not at all. Your Contributions are provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
+    *
+
+      7. Should you wish to submit work that is not your original creation, you may submit it to the Project separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".
+    *
+
+      8. You agree to notify the Project of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect.
+    *
+
+      9. The Project is under no obligations to accept and include every contribution.
+ 
Index: /release-kits/shared/ant-installer/web/images/navicons/crystalsvg/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/images/navicons/crystalsvg/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/images/navicons/crystalsvg/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,12 @@
+This copyright and license notice covers the images in this directory.
+Note the license notice contains an add-on.
+
+KDE Crystal theme icons.
+Copyright (C) 2002 and following years KDE Artists
+This library is free software; you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the Free
+Software Foundation, version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
+implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+License for more details. 
Index: /release-kits/shared/ant-installer/web/images/navicons/eclipse/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/images/navicons/eclipse/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/images/navicons/eclipse/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,86 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENTâS ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+    b) in the case of each subsequent Contributor:
+
+    i)changes to the Program, and
+
+    ii)additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributorâs behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipientâs responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributorâs responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipientâs patent(s), then such Recipientâs rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipientâs rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipientâs rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipientâs obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. 
Index: /release-kits/shared/ant-installer/web/images/navicons/krystaline/resources/icons/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/images/navicons/krystaline/resources/icons/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/images/navicons/krystaline/resources/icons/LICENSE	(revision 14989)
@@ -0,0 +1,513 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
Index: /release-kits/shared/ant-installer/web/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/index.html	(revision 14989)
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+<script type="text/javascript">
+function gooSrch(){
+  var text = document.getElementById('gf').elements['q'].value;
+	document.getElementById('gf').elements['q'].value = text + " site:antinstaller.sourceforge.net";
+	document.getElementById('gf').submit();
+}
+collapseAll('frontpage-panel', ['ol']); 
+</script>
+
+            <div align="right">
+							<form action="http://www.google.com/search" method="get" id="gf" style="display:inline" onsubmit="return gooSrch();">
+								<input type="text" name="q" size="10" class="winFix" />
+								<input type="image" src="images/toolbar.gif" /><span class="tpsmall"> Google Search this site</span>
+							</form>
+						</div>
+		<hr/>
+		AntInstaller enables you to quickly build installers for your applications using an XML config file and all the power of <a  href="http://ant.apache.org">Ant</a>.<br/><br/>
+		
+		The beauty of AntInstaller, from a user point of view, is that it lets you install an app with a user friendly swing GUI. If working over ssh or without an X environment you can still install on the command line with no changes to the installer.<br/><br/>
+		
+		To start using AntInstaller <a href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917" title="download">download</a> and install the binaries. Then either read the <a href="quickstart.html" title="AntInstaller quick start">quick start</a> page, or use the <a href="quickstart.html#wizard" title="AntInstaller wizard">wizard</a> provided to generate an initial installer for your project.  You will need to edit the <code>antinstall-config.xml</code> file following instructions in the AntInstaller <a href="manual.html" title="AntInstaller manual">manual</a> and create an Ant <code>build.xml</code> file referencing the Ant <a href="manual/manual/index.html" title="Ant manual">manual</a>.  You can include the custom Ant <a href="installertask.html" title="AntInstaller manual">task</a> into your project's build to generate the installer.<br/><br/>
+
+		In a move to be compatible with Apache projects the code in this project is now licensed under the less restrictive Apache 2.0 license.  The new (18/05/2005) license can be viewed here <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+		<br/><br/>
+		All core code is available in CVS, and can be browsed online <a href="http://antinstaller.cvs.sourceforge.net/antinstaller/" title="CVS Browse">here</a>.
+		<h2>Site map</h2>
+		<div id="frontpage-panel">
+		<div id="contents-menu"><ol class="sidebar" id="root">	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>		<ol>			<li class="sidebar"><a href="introduction.html">Introduction</a></li>			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>				<ol>					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>						<ol class="init-hidden">							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>								<ol class="init-hidden">									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>								</ol>							</li>							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>								<ol class="init-hidden">									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>									<li class="sidebar"><a href="manual.html#date">Date</a></li>									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>									<li class="sidebar"><a href="manual.html#file">File</a></li>									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>									<li class="sidebar"><a href="manual.html#select">Select</a></li>									<li class="sidebar"><a href="manual.html#target">Target</a></li>									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>								</ol>							</li>							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>						</ol>					</li>					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>					<li class="sidebar"><a href="auto.html">Automated installs</a></li>					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>					<li class="sidebar"><a href="icons.html">Button Icons</a></li>					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>				</ol>			</li>			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>			<li class="sidebar"><a href="userusage.html">User usage</a></li>			<li class="sidebar"><a href="licenses.html">Licenses</a></li>			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>			<li class="sidebar"><a href="wanted.html">Wanted</a></li>			<li class="sidebar"><a href="dtds.html">DTDs</a></li>			<li class="sidebar"><a href="changelog.html">Changelog</a></li>			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>		</ol>	</li></ol><br/><br/></div>
+		</div>
+		<h2>Core Developers</h2>
+		<ul>
+			<li>Paul Hinds - project lead, core dev, and slacking for months on end ;)</li>
+			<li>Mark Wilson - core development, bug fixings RFEs</li>
+		</ul>
+		<br/>
+		<h2>Contributors</h2>
+		
+		P.S. Big thanks to Contributors and bug fixers
+		<ul>
+			<li>Marcia Choy - for inital comments and corrections in the web pages</li>
+			<li>Dueringer Markus - for hints on showing hidden directories</li>
+			<li>Simon Brooke - for feedback and suggestions.</li>
+			<li>Mark Anderson - for the TargetSelectInput and -lib fix.</li>
+			<li>Mohan Kishore - for improvement to the build process.</li>
+			<li>Mike Watts - for comment and suggestions</li>
+			<li>Eddyrun - for suggestions for ifProperty enhancements</li>
+			<li>Upayavira - for help with Apache licensing</li>
+			<li>Dabintxi - for work on i18n</li>
+			<li>Michael Lipp - for german translation</li>
+		</ul>
+		<br/>
+		
+		<h2>Contact</h2>
+		
+		To get in contact the following channels are available.<br/><br/>
+		
+		<ul>
+			<li><a href="http://sourceforge.net/tracker/?group_id=123466&atid=696615" title="Request for enhancements">RFEs</a> - Request for enhancements</li>
+			<li><a href="http://sourceforge.net/tracker/?group_id=123466&atid=696612" title="Bug reporting">Bugs</a> - Bug reporting</li>
+			<li><a href="http://sourceforge.net/forum/forum.php?forum_id=420821" title="Help Forum">Help Forum</a> - Help mailing list</li>
+			<li><a href="http://sourceforge.net/forum/forum.php?forum_id=420820" title="Open Forum">Open Forum</a> - Open discussion forum</li>
+			<li><a href="http://sourceforge.net/forum/forum.php?forum_id=420822" title="Dev Forum">Dev Forum</a> - Developers forum (closed group)</li>
+			<li><a href="http://sourceforge.net/sendmessage.php?touser=616485" title="General contact">General contact</a> - Drop me a line</li>
+		</ul>
+		<h2>Version</h2>
+		
+		CVS AntInstaller development version: <b>beta0.8</b>
+		<br/><br/>
+		
+		<h2>Firefox</h2>
+
+		Site designed for FireFox, other browsers should be ok see <a href="browsersupport.html" alt="Browser support" >Browser support</a> and report bugs if you find them.<br/><br/>
+
+		<a href="http://getfirefox.com/"
+				title="Get Firefox - The Browser, Reloaded."><img
+				src="images/browser/firefox-spread-btn-2.png"
+				width="180" height="60" alt="Get Firefox"></a>
+		<br/>
+		<script language="JavaScript" type="text/javascript">
+		function addSidebar(title, link){ 
+			if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")){
+				window.sidebar.addPanel (title, link, "");
+			}
+		} 
+		</script>
+		<br/>
+		If you have Mozilla/Firefox
+		<a href="#" onclick="javascript:addSidebar('AntInstaller SideBar', 'http://antinstaller.sourceforge.net/contents.html');return false;">Add a sidebar</a> for this site.<br/><br/>
+
+		
+		
+		<hr/>
+		Site last generated: <b>Sun Jan 28 22:45:13 CET 2007</b>
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/index.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/index.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/index.jsp	(revision 14989)
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+<script type="text/javascript">
+function gooSrch(){
+  var text = document.getElementById('gf').elements['q'].value;
+	document.getElementById('gf').elements['q'].value = text + " site:antinstaller.sourceforge.net";
+	document.getElementById('gf').submit();
+}
+collapseAll('frontpage-panel', ['ol']); 
+</script>
+<%@page import="java.io.*" %><%@page import="java.util.*" %>
+            <div align="right">
+							<form action="http://www.google.com/search" method="get" id="gf" style="display:inline" onsubmit="return gooSrch();">
+								<input type="text" name="q" size="10" class="winFix" />
+								<input type="image" src="images/toolbar.gif" /><span class="tpsmall"> Google Search this site</span>
+							</form>
+						</div>
+		<hr/>
+		AntInstaller enables you to quickly build installers for your applications using an XML config file and all the power of <a  href="http://ant.apache.org">Ant</a>.<br/><br/>
+		
+		The beauty of AntInstaller, from a user point of view, is that it lets you install an app with a user friendly swing GUI. If working over ssh or without an X environment you can still install on the command line with no changes to the installer.<br/><br/>
+		
+		To start using AntInstaller <a href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917" title="download">download</a> and install the binaries. Then either read the <a href="quickstart.html" title="AntInstaller quick start">quick start</a> page, or use the <a href="quickstart.html#wizard" title="AntInstaller wizard">wizard</a> provided to generate an initial installer for your project.  You will need to edit the <code>antinstall-config.xml</code> file following instructions in the AntInstaller <a href="manual.html" title="AntInstaller manual">manual</a> and create an Ant <code>build.xml</code> file referencing the Ant <a href="manual/manual/index.html" title="Ant manual">manual</a>.  You can include the custom Ant <a href="installertask.html" title="AntInstaller manual">task</a> into your project's build to generate the installer.<br/><br/>
+
+		In a move to be compatible with Apache projects the code in this project is now licensed under the less restrictive Apache 2.0 license.  The new (18/05/2005) license can be viewed here <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+		<br/><br/>
+		All core code is available in CVS, and can be browsed online <a href="http://antinstaller.cvs.sourceforge.net/antinstaller/" title="CVS Browse">here</a>.
+		<h2>Site map</h2>
+		<div id="frontpage-panel">
+		<jsp:include page="contents-include.html" flush="true"/>
+		</div>
+		<h2>Core Developers</h2>
+		<ul>
+			<li>Paul Hinds - project lead, core dev, and slacking for months on end ;)</li>
+			<li>Mark Wilson - core development, bug fixings RFEs</li>
+		</ul>
+		<br/>
+		<h2>Contributors</h2>
+		
+		P.S. Big thanks to Contributors and bug fixers
+		<ul>
+			<li>Marcia Choy - for inital comments and corrections in the web pages</li>
+			<li>Dueringer Markus - for hints on showing hidden directories</li>
+			<li>Simon Brooke - for feedback and suggestions.</li>
+			<li>Mark Anderson - for the TargetSelectInput and -lib fix.</li>
+			<li>Mohan Kishore - for improvement to the build process.</li>
+			<li>Mike Watts - for comment and suggestions</li>
+			<li>Eddyrun - for suggestions for ifProperty enhancements</li>
+			<li>Upayavira - for help with Apache licensing</li>
+			<li>Dabintxi - for work on i18n</li>
+			<li>Michael Lipp - for german translation</li>
+		</ul>
+		<br/>
+		
+		<h2>Contact</h2>
+		
+		To get in contact the following channels are available.<br/><br/>
+		
+		<ul>
+			<li><a href="http://sourceforge.net/tracker/?group_id=123466&atid=696615" title="Request for enhancements">RFEs</a> - Request for enhancements</li>
+			<li><a href="http://sourceforge.net/tracker/?group_id=123466&atid=696612" title="Bug reporting">Bugs</a> - Bug reporting</li>
+			<li><a href="http://sourceforge.net/forum/forum.php?forum_id=420821" title="Help Forum">Help Forum</a> - Help mailing list</li>
+			<li><a href="http://sourceforge.net/forum/forum.php?forum_id=420820" title="Open Forum">Open Forum</a> - Open discussion forum</li>
+			<li><a href="http://sourceforge.net/forum/forum.php?forum_id=420822" title="Dev Forum">Dev Forum</a> - Developers forum (closed group)</li>
+			<li><a href="http://sourceforge.net/sendmessage.php?touser=616485" title="General contact">General contact</a> - Drop me a line</li>
+		</ul>
+		<h2>Version</h2>
+		<%
+		String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+		File fleJspDir = new File(strJspDir);
+		Properties versionProps = new Properties();
+		versionProps.load(new FileInputStream(new File(fleJspDir, "../build/version.properties")));
+		%>
+		CVS AntInstaller development version: <b><%=versionProps.getProperty("ant.install.version")%></b>
+		<br/><br/>
+		
+		<h2>Firefox</h2>
+
+		Site designed for FireFox, other browsers should be ok see <a href="browsersupport.html" alt="Browser support" >Browser support</a> and report bugs if you find them.<br/><br/>
+
+		<a href="http://getfirefox.com/"
+				title="Get Firefox - The Browser, Reloaded."><img
+				src="images/browser/firefox-spread-btn-2.png"
+				width="180" height="60" alt="Get Firefox"></a>
+		<br/>
+		<script language="JavaScript" type="text/javascript">
+		function addSidebar(title, link){ 
+			if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")){
+				window.sidebar.addPanel (title, link, "");
+			}
+		} 
+		</script>
+		<br/>
+		If you have Mozilla/Firefox
+		<a href="#" onclick="javascript:addSidebar('AntInstaller SideBar', 'http://antinstaller.sourceforge.net/contents.html');return false;">Add a sidebar</a> for this site.<br/><br/>
+
+		
+		
+		<hr/>
+		Site last generated: <b><%=new java.util.Date()%></b>
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/installertask.html
===================================================================
--- /release-kits/shared/ant-installer/web/installertask.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/installertask.html	(revision 14989)
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>Installer Ant Task</h2>
+
+			As of version beta0.7.4 there is an Ant task provided to help create the installer Jars. 
+			The task def is provided in the <code>lib/ant-installer-ext.jar</code> file.<br/>
+			The Task is similar to the core Ant Jar and War tasks.
+			To define the task use the following at the top of a <code>build.xml</code> used to create the installer.
+<pre>
+
+&lt;path id="taskdef.cp"&gt;
+	&lt;fileset dir="${AntInstaller.home}"&gt;
+		&lt;include name="ant-installer-ext.jar"/&gt;
+		&lt;include name="ant-installer.jar"/&gt;
+	&lt;/fileset&gt;
+&lt;/path&gt;
+
+&lt;taskdef 
+	name="installer" 
+	classname="org.tp23.antinstaller.taskdefs.Installer"
+	classpathref="taskdef.cp"/&gt;
+</pre>
+
+From there on in the <code>build.xml</code> file the installer task can be referenced with the <code>installer</code> element.
+This example should be self explanatory, but full details are provided below for each attribute.
+<pre>
+&lt;installer 
+	<a href="#file" title="file">file</a>="./MyProject-installer.jar" 
+	<a href="#compress" title="compress">compress</a>="true"
+	<a href="#extractType" title="extractType">extractType</a>="SelfExtractor"
+	<a href="#installConfig" title="installConfig">installConfig</a>="myprojects-antinstall-config.xml"
+	<a href="#buildFile" title="buildFile">buildFile</a>="myprojects-build.xml"
+	<a href="#antInstallLib" title="antInstallLib">antInstallLib</a>="${AntInstaller.home}/lib"
+	<a href="#antLib" title="antLib">antLib</a>="${AntInstaller.home}/antlib"
+	<a href="#validateConfig" title="validateConfig">validateConfig</a>="true"
+	<a href="#failOnError" title="failOnError">failOnError</a>="true"
+	<a href="#icons" title="icons">icons</a>="<a href="icons.html" title="icons">bluecurve</a>"&gt;
+		&lt;!-- 
+			include the images for your installer 
+			and license texts
+		--&gt;
+		&lt;fileset dir="extra-install-classpath" includes="resources/*"/&gt;
+
+		&lt;!-- 
+			add you application binaries and resources 
+			to the installer here, for example
+		--&gt;
+		&lt;fileset dir="myproject" includes="myproject.jar"/&gt;
+		&lt;fileset dir="myproject" includes="myproject.properties"/&gt;
+		&lt;fileset dir="myproject" includes="mydefaultdata/*"/&gt;
+
+&lt;/installer&gt;
+</pre>
+			
+
+
+<h2><a name="war">Installer</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="jar.html">Jar</a> task for creating
+installers.</p>
+<p>This task will correctly package the AntInstaller classes, the Ant classes,
+the antinstall-config.xml, the build.xml file, the default LookAndFeel classes, the button icons
+and create the required MANIFEST.mf to execute the Jar.</p> 
+<p>Nested filesets should
+be used to specify other resources required by the install (e.g. License.txt)
+and the files required to run the application being installed.  </p>
+
+<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the Installer task.</p>
+
+<h3>Parameters</h3>
+<table class="manual" cellspacing="0">
+<tbody>
+  <tr class="tpheader">
+    <th class="manual2">Attribute</th>
+
+    <th class="manual2">Description</th>
+    <th class="manual2">Required</th>
+  </tr>
+  <tr>
+    <td valign="top"><a name="file"></a>file</td>
+    <td valign="top">the JAR file to create.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="buildFile"></a>buildFile</td>
+    <td valign="top">The build.xml file to use when AntInstaller is run.</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="installConfig"></a>installConfig</td>
+    <td valign="top">The antinstall-config.xml file to use when AntInstaller is run.</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="extractType"></a>extractType</td>
+    <td valign="top">Either NonExtractor or SelfExtractor.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="antInstallLib"></a>antInstallLib</td>
+    <td valign="top">The location of the AntInstaller jars.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="antLib"></a>antLib</td>
+    <td valign="top">The location of the Ant jars. N.B. Ant 1.6.2 or above is required.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="icons"></a>icons</td>
+    <td valign="top">The <a href="icons.html">icon set to be used</a>. One of bluecurve, crystalsvg, amaranth, krystaline or eclipse,  new icons can be created and should be packed into a Jar with the name ai-icons-[name].jar with the png files in the resources/icons directory inside the jar.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="validateConfig"></a>validateConfig</td>
+    <td valign="top">when true the AntInstaller config file is validated and errors and 
+		warnings are printed to System.out, defaults to false</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="failOnError"></a>failOnError</td>
+    <td valign="top">if a known error is found during validation the build will stop.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="basedir"></a>basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="compress"></a>compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="keepcompression"></a>keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="encoding"></a>encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="filesonly"></a>filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+
+    <td valign="top"><a name="includes"></a>includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="includesfile"></a>includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="excludes"></a>excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="excludesfile"></a>excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="defaultexcludes"></a>defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="manifest"></a>manifest</td>
+    <td valign="top">The manifest file to use if you wish to manually set the MANIFEST.MF (not recommended).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="update"></a>update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="duplicate"></a>duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</tbody>
+</table>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved. 
+<br/>
+(lifted and altered from the WAR document)</p>
+
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/installtypes.html
===================================================================
--- /release-kits/shared/ant-installer/web/installtypes.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/installtypes.html	(revision 14989)
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Multiple install types</h2>
+			It is possible to deliver different install types in the same Jar.  There must be a default install type that
+			uses <code>build.xml</code> and <code>antinstall-config.xml</code>
+			Additional types can be added by inculing additional files called <code>build-[name].xml</code> and <code>antinstall-config-[name].xml</code>.  These can be selected on the command line by starting the installer with the following command line parameters <code>-type [name]</code>.
+			<br/><br/>
+			for example <br/>
+			<code>java -jar my-installer.jar -type alternative</code><br/>
+			or for a command line install<br/>
+			<code>java -jar my-installer.jar text -type alternative</code><br/>
+			<br/>
+			When launching from a scripted install (not a self-extracting Jar) the launch scripts will probably need to be modified
+			to handle the new parameters correctly and to inform the user if an invalid -type has been specified.  If not the installer will print a stack trace reporting that it can not find the config file.<br/><br/>
+			
+			Alternative configs are not validated during the ant task that creates the installer so they should be validated manually.<br/><br/>
+			
+			If creating different install types you will have to inform users that the options exist as they are currently only selectable on the command line.  A GUI to this feature will probably not be implemented since it is possible to use the ifProperty attribute to achieve the same results and embed the alternative Ant tasks in the same build.xml file.
+			
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/introduction.html
===================================================================
--- /release-kits/shared/ant-installer/web/introduction.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/introduction.html	(revision 14989)
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Introduction</h2>
+			AntInstaller is a configurable front end for Ant.<br/>
+			Developers can create ant scripts for deployment on any system that supports Java and provide a user friendly interface for editing the properties of the installation.<br/>
+			A simple case might be to ask the user for an installation directory, let them select which components to install (product, plugins, source code, documentation) and then unpack the installation files to the correct place.<br/><br/>
+			
+			AntInstall starts to provide more benfit when the installation process takes input from the users and sets the values into the correct properties files for the application.  For example when installing a webapp the install could unjar the war file and then use "Ant replace" to place user selected properties into the <code>WEB-INF/web.xml</code> file with out the user having to edit the xml file directly. <br/><br/>
+			
+			The full power of Ant and all plugins is available to the install process. <br/><br/><br/>
+			
+			<b>AntInstaller is not just for installing user apps.</b><br/><br/>
+			 
+			In a known environment such as a corporate network the script could telnet to servers and perform operations registering the instance of the application with central servers or much more complex installation.  Anything Ant can do with core tasks or with plugins. AntInstall provides a user interface to collect user data and select which targets to run. <br/><br/>
+			
+			The User Interface can be a graphical swing interface similar to other installers (NSIS) but it also can be a commandline interface when an X windows environment is not available, for example installing on remote servers.   <br/><br/>
+			
+			The user of the installer does not have to be an end user.  AntInstaller could be used to aid deployment of your own Java apps asking for the properties that are requried for each install. For example "is this the production server or development server"  and "is the database in transactional or non transactional mode".  Thus ensuring that you or anyone else deploying the application configures all the correct deployment specific properties when installing.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/AllClasses.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/AllClasses.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/AllClasses.html	(revision 14989)
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>All Classes (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV>
+<FONT ID="AllClassIndexTitle" CLASS="FrameHeadingFont" size="+1">
+All Classes</FONT><DIV ID="AllClassIndexContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AIButton.java.html" TARGET="SourceFrame">AIButton</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AICheckBox.java.html" TARGET="SourceFrame">AICheckBox</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AILabel.java.html" TARGET="SourceFrame">AILabel</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AIPasswordField.java.html" TARGET="SourceFrame">AIPasswordField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AIRadioButton.java.html" TARGET="SourceFrame">AIRadioButton</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AIShortTextField.java.html" TARGET="SourceFrame">AIShortTextField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AITextfield.java.html" TARGET="SourceFrame">AITextfield</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html" TARGET="SourceFrame">AbstractTextPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java.html" TARGET="SourceFrame">AntLauncherFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/AntOutputRenderer.java.html" TARGET="SourceFrame">AntOutputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/AntProjectFilter.java.html" TARGET="SourceFrame">AntProjectFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/AntRunner.java.html" TARGET="SourceFrame">AntRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/AppRootInput.java.html" TARGET="SourceFrame">AppRootInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/AppRootInputRenderer.java.html" TARGET="SourceFrame">AppRootInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AppRootInputRenderer.java.html" TARGET="SourceFrame">AppRootInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/AutoSwingRunner.java.html" TARGET="SourceFrame">AutoSwingRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/AutoTextRunner.java.html" TARGET="SourceFrame">AutoTextRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/CheckboxInput.java.html" TARGET="SourceFrame">CheckboxInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java.html" TARGET="SourceFrame">CheckboxInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/CheckboxInputRenderer.java.html" TARGET="SourceFrame">CheckboxInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ClasspathHTMLEditorKit.java.html" TARGET="SourceFrame">ClasspathHTMLEditorKit</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/CommentOutput.java.html" TARGET="SourceFrame">CommentOutput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/CommentOutputRenderer.java.html" TARGET="SourceFrame">CommentOutputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java.html" TARGET="SourceFrame">CommentOutputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/CompoundExpression.java.html" TARGET="SourceFrame">CompoundExpression</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ConditionalField.java.html" TARGET="SourceFrame">ConditionalField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ConditionalFieldRenderer.java.html" TARGET="SourceFrame">ConditionalFieldRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ConditionalFieldRenderer.java.html" TARGET="SourceFrame">ConditionalFieldRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/ConfigurationException.java.html" TARGET="SourceFrame">ConfigurationException</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/ConfigurationLoader.java.html" TARGET="SourceFrame">ConfigurationLoader</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ConfirmPasswordTextInput.java.html" TARGET="SourceFrame">ConfirmPasswordTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ConfirmPasswordTextInputRenderer.java.html" TARGET="SourceFrame">ConfirmPasswordTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ConfirmPasswordTextInputRenderer.java.html" TARGET="SourceFrame">ConfirmPasswordTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/CreateLoggerFilter.java.html" TARGET="SourceFrame">CreateLoggerFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/CreateUIFilter.java.html" TARGET="SourceFrame">CreateUIFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/DateInput.java.html" TARGET="SourceFrame">DateInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/DateInputRenderer.java.html" TARGET="SourceFrame">DateInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/DateInputRenderer.java.html" TARGET="SourceFrame">DateInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/DefaultPropertiesFileRenderer.java.html" TARGET="SourceFrame">DefaultPropertiesFileRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/DefaultingDirectoryChooser.java.html" TARGET="SourceFrame">DefaultingDirectoryChooser</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/DirectoryInput.java.html" TARGET="SourceFrame">DirectoryInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/DirectoryInputRenderer.java.html" TARGET="SourceFrame">DirectoryInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/DirectoryInputRenderer.java.html" TARGET="SourceFrame">DirectoryInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/EndsWithTest.java.html" TARGET="SourceFrame">EndsWithTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/EqualsTest.java.html" TARGET="SourceFrame">EqualsTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/ExecInstall.java.html" TARGET="SourceFrame">ExecInstall</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html" TARGET="SourceFrame">ExecuteFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java.html" TARGET="SourceFrame">ExecuteRunnerFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java.html" TARGET="SourceFrame">ExplicitPropertiesFileRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/Expression.java.html" TARGET="SourceFrame">Expression</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java.html" TARGET="SourceFrame">ExpressionBuilder</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ExtValidatedTextInput.java.html" TARGET="SourceFrame">ExtValidatedTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ExtValidatedTextInputRenderer.java.html" TARGET="SourceFrame">ExtValidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ExtValidatedTextInputRenderer.java.html" TARGET="SourceFrame">ExtValidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/FeedbackListener.java.html" TARGET="SourceFrame">FeedbackListener</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/FileInput.java.html" TARGET="SourceFrame">FileInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/FileInputRenderer.java.html" TARGET="SourceFrame">FileInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/FileInputRenderer.java.html" TARGET="SourceFrame">FileInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/FilterChain.java.html" TARGET="SourceFrame">FilterChain</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/FilterFactory.java.html" TARGET="SourceFrame">FilterFactory</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/FinalizerFilter.java.html" TARGET="SourceFrame">FinalizerFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/FollowingJTextArea.java.html" TARGET="SourceFrame">FollowingJTextArea</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/GBCF.java.html" TARGET="SourceFrame">GBCF</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/taskdefs/GetResourceTask.java.html" TARGET="SourceFrame">GetResourceTask</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/GreaterThanOrEqualsTest.java.html" TARGET="SourceFrame">GreaterThanOrEqualsTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/HiddenPropertyInput.java.html" TARGET="SourceFrame">HiddenPropertyInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/HiddenPropertyInputRenderer.java.html" TARGET="SourceFrame">HiddenPropertyInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/HiddenPropertyInputRenderer.java.html" TARGET="SourceFrame">HiddenPropertyInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/IfPropertyHelper.java.html" TARGET="SourceFrame">IfPropertyHelper</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/InputException.java.html" TARGET="SourceFrame">InputException</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/InputField.java.html" TARGET="SourceFrame">InputField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/InputStreamLoadConfigFilter.java.html" TARGET="SourceFrame">InputStreamLoadConfigFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/InstallException.java.html" TARGET="SourceFrame">InstallException</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/Installer.java.html" TARGET="SourceFrame">Installer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/InstallerContext.java.html" TARGET="SourceFrame">InstallerContext</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/JTextAreaPrintStream.java.html" TARGET="SourceFrame">JTextAreaPrintStream</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java.html" TARGET="SourceFrame">Jdk14RegexpMatcher</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/Jdk14RegexpRegexp.java.html" TARGET="SourceFrame">Jdk14RegexpRegexp</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/LargeSelectInput.java.html" TARGET="SourceFrame">LargeSelectInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/LargeSelectInputRenderer.java.html" TARGET="SourceFrame">LargeSelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/LargeSelectInputRenderer.java.html" TARGET="SourceFrame">LargeSelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/Launcher.java.html" TARGET="SourceFrame">Launcher</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LessThanOrEqualsTest.java.html" TARGET="SourceFrame">LessThanOrEqualsTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/LicensePage.java.html" TARGET="SourceFrame">LicensePage</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/LicensePageRenderer.java.html" TARGET="SourceFrame">LicensePageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/LicensePageRenderer.java.html" TARGET="SourceFrame">LicensePageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LiteralValue.java.html" TARGET="SourceFrame">LiteralValue</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java.html" TARGET="SourceFrame">LoadConfigFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/taskdefs/LogTask.java.html" TARGET="SourceFrame">LogTask</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/Logger.java.html" TARGET="SourceFrame">Logger</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LogicalAndTest.java.html" TARGET="SourceFrame">LogicalAndTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LogicalOrTest.java.html" TARGET="SourceFrame">LogicalOrTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LogicalTest.java.html" TARGET="SourceFrame">LogicalTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html" TARGET="SourceFrame">LookAndFeelFactory</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/Main.java.html" TARGET="SourceFrame">Main</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/MessageRenderer.java.html" TARGET="SourceFrame">MessageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/taskdefs/MessageTask.java.html" TARGET="SourceFrame">MessageTask</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/plaf/ModMetalLookAndFeel.java.html" TARGET="SourceFrame">ModMetalLookAndFeel</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/plaf/ModMetalTheme.java.html" TARGET="SourceFrame">ModMetalTheme</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/selfextract/NonExtractor.java.html" TARGET="SourceFrame">NonExtractor</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/NotEqualsTest.java.html" TARGET="SourceFrame">NotEqualsTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/OSSpecific.java.html" TARGET="SourceFrame">OSSpecific</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/OutputField.java.html" TARGET="SourceFrame">OutputField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/Page.java.html" TARGET="SourceFrame">Page</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html" TARGET="SourceFrame">PageCompletionListener</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/PageRenderer.java.html" TARGET="SourceFrame">PageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/Pager.java.html" TARGET="SourceFrame">Pager</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/PasswordTextInput.java.html" TARGET="SourceFrame">PasswordTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/PasswordTextInputRenderer.java.html" TARGET="SourceFrame">PasswordTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/PasswordTextInputRenderer.java.html" TARGET="SourceFrame">PasswordTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/selfextract/ProgressIndicator.java.html" TARGET="SourceFrame">ProgressIndicator</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/ProgressPage.java.html" TARGET="SourceFrame">ProgressPage</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ProgressPageRenderer.java.html" TARGET="SourceFrame">ProgressPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ProgressPageRenderer.java.html" TARGET="SourceFrame">ProgressPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ProgressPanel.java.html" TARGET="SourceFrame">ProgressPanel</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/ProjectHelper3.java.html" TARGET="SourceFrame">ProjectHelper3</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/PropertiesFileRenderer.java.html" TARGET="SourceFrame">PropertiesFileRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/PropertyLoaderFilter.java.html" TARGET="SourceFrame">PropertyLoaderFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/PropertyPrinterFilter.java.html" TARGET="SourceFrame">PropertyPrinterFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java.html" TARGET="SourceFrame">PropertyTask</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/RegexpMatcherFactory.java.html" TARGET="SourceFrame">RegexpMatcherFactory</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/RendererFactory.java.html" TARGET="SourceFrame">RendererFactory</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/ResourceBundleHelper.java.html" TARGET="SourceFrame">ResourceBundleHelper</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/selfextract/ResourceExtractor.java.html" TARGET="SourceFrame">ResourceExtractor</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ResultContainer.java.html" TARGET="SourceFrame">ResultContainer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/Runner.java.html" TARGET="SourceFrame">Runner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/RuntimeLauncher.java.html" TARGET="SourceFrame">RuntimeLauncher</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/SecretPropertyField.java.html" TARGET="SourceFrame">SecretPropertyField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/SelectFileAction.java.html" TARGET="SourceFrame">SelectFileAction</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/SelectInput.java.html" TARGET="SourceFrame">SelectInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/SelectInputRenderer.java.html" TARGET="SourceFrame">SelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SelectInputRenderer.java.html" TARGET="SourceFrame">SelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/selfextract/SelfExtractor.java.html" TARGET="SourceFrame">SelfExtractor</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/SimpleExpression.java.html" TARGET="SourceFrame">SimpleExpression</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/SimpleInputPage.java.html" TARGET="SourceFrame">SimpleInputPage</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/SimpleInputPageRenderer.java.html" TARGET="SourceFrame">SimpleInputPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SimpleInputPageRenderer.java.html" TARGET="SourceFrame">SimpleInputPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/SimpleLogger.java.html" TARGET="SourceFrame">SimpleLogger</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java.html" TARGET="SourceFrame">SingleExpressionTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SizeConstants.java.html" TARGET="SourceFrame">SizeConstants</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/SplashPage.java.html" TARGET="SourceFrame">SplashPage</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/SplashPageRenderer.java.html" TARGET="SourceFrame">SplashPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SplashPageRenderer.java.html" TARGET="SourceFrame">SplashPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/StartsWithTest.java.html" TARGET="SourceFrame">StartsWithTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/StringLengthComparator.java.html" TARGET="SourceFrame">StringLengthComparator</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html" TARGET="SourceFrame">SwingInstallerContext</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html" TARGET="SourceFrame">SwingMessageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html" TARGET="SourceFrame">SwingOutputFieldRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html" TARGET="SourceFrame">SwingPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/SwingRunner.java.html" TARGET="SourceFrame">SwingRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/SystemOutJTextArea.java.html" TARGET="SourceFrame">SystemOutJTextArea</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/Target.java.html" TARGET="SourceFrame">Target</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/TargetInput.java.html" TARGET="SourceFrame">TargetInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TargetInputRenderer.java.html" TARGET="SourceFrame">TargetInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/TargetInputRenderer.java.html" TARGET="SourceFrame">TargetInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/TargetSelectInput.java.html" TARGET="SourceFrame">TargetSelectInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TargetSelectInputRenderer.java.html" TARGET="SourceFrame">TargetSelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/TargetSelectInputRenderer.java.html" TARGET="SourceFrame">TargetSelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/TestOperator.java.html" TARGET="SourceFrame">TestOperator</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TextMessageRenderer.java.html" TARGET="SourceFrame">TextMessageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html" TARGET="SourceFrame">TextOutputFieldRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/TextPage.java.html" TARGET="SourceFrame">TextPage</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TextPageRenderer.java.html" TARGET="SourceFrame">TextPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/TextPageRenderer.java.html" TARGET="SourceFrame">TextPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/TextRunner.java.html" TARGET="SourceFrame">TextRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/UnvalidatedTextInput.java.html" TARGET="SourceFrame">UnvalidatedTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/UnvalidatedTextInputRenderer.java.html" TARGET="SourceFrame">UnvalidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/UnvalidatedTextInputRenderer.java.html" TARGET="SourceFrame">UnvalidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ValidatedTextInput.java.html" TARGET="SourceFrame">ValidatedTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java.html" TARGET="SourceFrame">ValidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java.html" TARGET="SourceFrame">ValidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/ValidationException.java.html" TARGET="SourceFrame">ValidationException</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/Validator.java.html" TARGET="SourceFrame">Validator</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/Value.java.html" TARGET="SourceFrame">Value</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/ValuesTest.java.html" TARGET="SourceFrame">ValuesTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/VariableValue.java.html" TARGET="SourceFrame">VariableValue</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/VersionHelper.java.html" TARGET="SourceFrame">VersionHelper</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/front.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/front.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/front.html	(revision 14989)
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Java2HTML</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="FrontPage">
+<div id="HeaderTitle"><h2>AntInstaller</h2></div>
+
+				<script type="text/javascript" src="winfix.js"></script>
+				<a href="../../index.html" target="_top"><img src="../../images/ant-install-small.png" width="76" height="50" id="logo"></a>
+				<script type="text/javascript">winFix();</script>
+				
+<div id="FrontPageContent"><p id="Instructions"><strong>Instructions:-</strong></p>
+<ul>
+<li>Top-Left Panel Selects a Package</li>
+<li>Bottom-Left Panel Selects a Java File</li>
+<li>Text displayed like <FONT ID="Classes"><A href="#">this</A></FONT> represents a link to another Java source, clicking on it selects it in this panel.</li>
+</ul>
+<p><strong>Credits:-</strong></p>
+<ul><li>Produced by <a href="http://www.java2html.com" TARGET="_top"><em>Java2HTML Version 1.4</em></a> on the Jan 28, 2007 10:45 PM</li></ul>
+<em>(If you like this tool, please <a href="mailto:?subject=http://www.java2html.com">email</a> the reference <A href="http://www.java2html.com" TARGET="_top">http://www.java2html.com</A> to a colleague)</em>
+</DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/index.html	(revision 14989)
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>AntInstaller (Java2HTML)</TITLE>
+
+</HEAD>
+<FRAMESET cols="30%, 70%">
+<FRAMESET rows="30%, 70%">
+<FRAME src="packages.html" name="packageListFrame">
+<FRAME src="AllClasses.html" name="packageFrame">
+</FRAMESET>
+<FRAME src="front.html" name="SourceFrame">
+</FRAMESET>
+<NOFRAMES>
+<H2>Frame Alert</H2>
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+</NOFRAMES>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.antmod.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.antmod.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.antmod.index.html	(revision 14989)
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.antmod (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.antmod</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/FeedbackListener.java.html" TARGET="SourceFrame">FeedbackListener</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java.html" TARGET="SourceFrame">Jdk14RegexpMatcher</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/Jdk14RegexpRegexp.java.html" TARGET="SourceFrame">Jdk14RegexpRegexp</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/Launcher.java.html" TARGET="SourceFrame">Launcher</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/Main.java.html" TARGET="SourceFrame">Main</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/ProjectHelper3.java.html" TARGET="SourceFrame">ProjectHelper3</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/RegexpMatcherFactory.java.html" TARGET="SourceFrame">RegexpMatcherFactory</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/RuntimeLauncher.java.html" TARGET="SourceFrame">RuntimeLauncher</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.antmod.taskdefs.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.antmod.taskdefs.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.antmod.taskdefs.index.html	(revision 14989)
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.antmod.taskdefs (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.antmod.taskdefs</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/taskdefs/GetResourceTask.java.html" TARGET="SourceFrame">GetResourceTask</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/taskdefs/LogTask.java.html" TARGET="SourceFrame">LogTask</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/taskdefs/MessageTask.java.html" TARGET="SourceFrame">MessageTask</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java.html" TARGET="SourceFrame">PropertyTask</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.index.html	(revision 14989)
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/DefaultPropertiesFileRenderer.java.html" TARGET="SourceFrame">DefaultPropertiesFileRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java.html" TARGET="SourceFrame">ExplicitPropertiesFileRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/InstallException.java.html" TARGET="SourceFrame">InstallException</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/Installer.java.html" TARGET="SourceFrame">Installer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/InstallerContext.java.html" TARGET="SourceFrame">InstallerContext</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/PropertiesFileRenderer.java.html" TARGET="SourceFrame">PropertiesFileRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/ResourceBundleHelper.java.html" TARGET="SourceFrame">ResourceBundleHelper</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/ValidationException.java.html" TARGET="SourceFrame">ValidationException</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.input.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.input.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.input.index.html	(revision 14989)
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.input (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.input</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/AppRootInput.java.html" TARGET="SourceFrame">AppRootInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/CheckboxInput.java.html" TARGET="SourceFrame">CheckboxInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/CommentOutput.java.html" TARGET="SourceFrame">CommentOutput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ConditionalField.java.html" TARGET="SourceFrame">ConditionalField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ConfirmPasswordTextInput.java.html" TARGET="SourceFrame">ConfirmPasswordTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/DateInput.java.html" TARGET="SourceFrame">DateInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/DirectoryInput.java.html" TARGET="SourceFrame">DirectoryInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ExtValidatedTextInput.java.html" TARGET="SourceFrame">ExtValidatedTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/FileInput.java.html" TARGET="SourceFrame">FileInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/HiddenPropertyInput.java.html" TARGET="SourceFrame">HiddenPropertyInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/InputException.java.html" TARGET="SourceFrame">InputException</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/InputField.java.html" TARGET="SourceFrame">InputField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/LargeSelectInput.java.html" TARGET="SourceFrame">LargeSelectInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/OSSpecific.java.html" TARGET="SourceFrame">OSSpecific</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/OutputField.java.html" TARGET="SourceFrame">OutputField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/PasswordTextInput.java.html" TARGET="SourceFrame">PasswordTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ResultContainer.java.html" TARGET="SourceFrame">ResultContainer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/SecretPropertyField.java.html" TARGET="SourceFrame">SecretPropertyField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/SelectInput.java.html" TARGET="SourceFrame">SelectInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/Target.java.html" TARGET="SourceFrame">Target</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/TargetInput.java.html" TARGET="SourceFrame">TargetInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/TargetSelectInput.java.html" TARGET="SourceFrame">TargetSelectInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/UnvalidatedTextInput.java.html" TARGET="SourceFrame">UnvalidatedTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/ValidatedTextInput.java.html" TARGET="SourceFrame">ValidatedTextInput</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/input/Validator.java.html" TARGET="SourceFrame">Validator</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.page.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.page.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.page.index.html	(revision 14989)
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.page (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.page</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/LicensePage.java.html" TARGET="SourceFrame">LicensePage</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/Page.java.html" TARGET="SourceFrame">Page</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/ProgressPage.java.html" TARGET="SourceFrame">ProgressPage</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/SimpleInputPage.java.html" TARGET="SourceFrame">SimpleInputPage</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/SplashPage.java.html" TARGET="SourceFrame">SplashPage</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/page/TextPage.java.html" TARGET="SourceFrame">TextPage</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.index.html	(revision 14989)
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.renderer (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.renderer</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/AntOutputRenderer.java.html" TARGET="SourceFrame">AntOutputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/MessageRenderer.java.html" TARGET="SourceFrame">MessageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/PageRenderer.java.html" TARGET="SourceFrame">PageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/RendererFactory.java.html" TARGET="SourceFrame">RendererFactory</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.swing.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.swing.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.swing.index.html	(revision 14989)
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.renderer.swing (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.renderer.swing</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AIButton.java.html" TARGET="SourceFrame">AIButton</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AICheckBox.java.html" TARGET="SourceFrame">AICheckBox</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AILabel.java.html" TARGET="SourceFrame">AILabel</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AIPasswordField.java.html" TARGET="SourceFrame">AIPasswordField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AIRadioButton.java.html" TARGET="SourceFrame">AIRadioButton</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AIShortTextField.java.html" TARGET="SourceFrame">AIShortTextField</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AITextfield.java.html" TARGET="SourceFrame">AITextfield</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/AppRootInputRenderer.java.html" TARGET="SourceFrame">AppRootInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/CheckboxInputRenderer.java.html" TARGET="SourceFrame">CheckboxInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ClasspathHTMLEditorKit.java.html" TARGET="SourceFrame">ClasspathHTMLEditorKit</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java.html" TARGET="SourceFrame">CommentOutputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ConditionalFieldRenderer.java.html" TARGET="SourceFrame">ConditionalFieldRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ConfirmPasswordTextInputRenderer.java.html" TARGET="SourceFrame">ConfirmPasswordTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/DateInputRenderer.java.html" TARGET="SourceFrame">DateInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/DirectoryInputRenderer.java.html" TARGET="SourceFrame">DirectoryInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ExtValidatedTextInputRenderer.java.html" TARGET="SourceFrame">ExtValidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/FileInputRenderer.java.html" TARGET="SourceFrame">FileInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/HiddenPropertyInputRenderer.java.html" TARGET="SourceFrame">HiddenPropertyInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/LargeSelectInputRenderer.java.html" TARGET="SourceFrame">LargeSelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/LicensePageRenderer.java.html" TARGET="SourceFrame">LicensePageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html" TARGET="SourceFrame">PageCompletionListener</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/PasswordTextInputRenderer.java.html" TARGET="SourceFrame">PasswordTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ProgressPageRenderer.java.html" TARGET="SourceFrame">ProgressPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ProgressPanel.java.html" TARGET="SourceFrame">ProgressPanel</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SelectInputRenderer.java.html" TARGET="SourceFrame">SelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SimpleInputPageRenderer.java.html" TARGET="SourceFrame">SimpleInputPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SizeConstants.java.html" TARGET="SourceFrame">SizeConstants</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SplashPageRenderer.java.html" TARGET="SourceFrame">SplashPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html" TARGET="SourceFrame">SwingInstallerContext</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html" TARGET="SourceFrame">SwingMessageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html" TARGET="SourceFrame">SwingOutputFieldRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html" TARGET="SourceFrame">SwingPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/TargetInputRenderer.java.html" TARGET="SourceFrame">TargetInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/TargetSelectInputRenderer.java.html" TARGET="SourceFrame">TargetSelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/TextPageRenderer.java.html" TARGET="SourceFrame">TextPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/UnvalidatedTextInputRenderer.java.html" TARGET="SourceFrame">UnvalidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java.html" TARGET="SourceFrame">ValidatedTextInputRenderer</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.swing.plaf.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.swing.plaf.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.swing.plaf.index.html	(revision 14989)
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.renderer.swing.plaf (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.renderer.swing.plaf</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html" TARGET="SourceFrame">LookAndFeelFactory</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/plaf/ModMetalLookAndFeel.java.html" TARGET="SourceFrame">ModMetalLookAndFeel</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/swing/plaf/ModMetalTheme.java.html" TARGET="SourceFrame">ModMetalTheme</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.text.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.text.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.renderer.text.index.html	(revision 14989)
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.renderer.text (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.renderer.text</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html" TARGET="SourceFrame">AbstractTextPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/AppRootInputRenderer.java.html" TARGET="SourceFrame">AppRootInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java.html" TARGET="SourceFrame">CheckboxInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/CommentOutputRenderer.java.html" TARGET="SourceFrame">CommentOutputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ConditionalFieldRenderer.java.html" TARGET="SourceFrame">ConditionalFieldRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ConfirmPasswordTextInputRenderer.java.html" TARGET="SourceFrame">ConfirmPasswordTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/DateInputRenderer.java.html" TARGET="SourceFrame">DateInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/DirectoryInputRenderer.java.html" TARGET="SourceFrame">DirectoryInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ExtValidatedTextInputRenderer.java.html" TARGET="SourceFrame">ExtValidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/FileInputRenderer.java.html" TARGET="SourceFrame">FileInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/HiddenPropertyInputRenderer.java.html" TARGET="SourceFrame">HiddenPropertyInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/LargeSelectInputRenderer.java.html" TARGET="SourceFrame">LargeSelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/LicensePageRenderer.java.html" TARGET="SourceFrame">LicensePageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/Pager.java.html" TARGET="SourceFrame">Pager</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/PasswordTextInputRenderer.java.html" TARGET="SourceFrame">PasswordTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ProgressPageRenderer.java.html" TARGET="SourceFrame">ProgressPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/SelectInputRenderer.java.html" TARGET="SourceFrame">SelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/SimpleInputPageRenderer.java.html" TARGET="SourceFrame">SimpleInputPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/SplashPageRenderer.java.html" TARGET="SourceFrame">SplashPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TargetInputRenderer.java.html" TARGET="SourceFrame">TargetInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TargetSelectInputRenderer.java.html" TARGET="SourceFrame">TargetSelectInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TextMessageRenderer.java.html" TARGET="SourceFrame">TextMessageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html" TARGET="SourceFrame">TextOutputFieldRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/TextPageRenderer.java.html" TARGET="SourceFrame">TextPageRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/UnvalidatedTextInputRenderer.java.html" TARGET="SourceFrame">UnvalidatedTextInputRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java.html" TARGET="SourceFrame">ValidatedTextInputRenderer</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.runtime.exe.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.runtime.exe.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.runtime.exe.index.html	(revision 14989)
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.runtime.exe (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.runtime.exe</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java.html" TARGET="SourceFrame">AntLauncherFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/AntProjectFilter.java.html" TARGET="SourceFrame">AntProjectFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/CreateLoggerFilter.java.html" TARGET="SourceFrame">CreateLoggerFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/CreateUIFilter.java.html" TARGET="SourceFrame">CreateUIFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html" TARGET="SourceFrame">ExecuteFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java.html" TARGET="SourceFrame">ExecuteRunnerFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/FilterChain.java.html" TARGET="SourceFrame">FilterChain</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/FilterFactory.java.html" TARGET="SourceFrame">FilterFactory</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/FinalizerFilter.java.html" TARGET="SourceFrame">FinalizerFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/InputStreamLoadConfigFilter.java.html" TARGET="SourceFrame">InputStreamLoadConfigFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java.html" TARGET="SourceFrame">LoadConfigFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/PropertyLoaderFilter.java.html" TARGET="SourceFrame">PropertyLoaderFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/PropertyPrinterFilter.java.html" TARGET="SourceFrame">PropertyPrinterFilter</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.runtime.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.runtime.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.runtime.index.html	(revision 14989)
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.runtime (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.runtime</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/AntRunner.java.html" TARGET="SourceFrame">AntRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/AutoSwingRunner.java.html" TARGET="SourceFrame">AutoSwingRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/AutoTextRunner.java.html" TARGET="SourceFrame">AutoTextRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/ConfigurationException.java.html" TARGET="SourceFrame">ConfigurationException</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/ConfigurationLoader.java.html" TARGET="SourceFrame">ConfigurationLoader</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/ExecInstall.java.html" TARGET="SourceFrame">ExecInstall</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/IfPropertyHelper.java.html" TARGET="SourceFrame">IfPropertyHelper</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/Logger.java.html" TARGET="SourceFrame">Logger</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/Runner.java.html" TARGET="SourceFrame">Runner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/SimpleLogger.java.html" TARGET="SourceFrame">SimpleLogger</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/SwingRunner.java.html" TARGET="SourceFrame">SwingRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/TextRunner.java.html" TARGET="SourceFrame">TextRunner</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/VersionHelper.java.html" TARGET="SourceFrame">VersionHelper</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.runtime.logic.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.runtime.logic.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.runtime.logic.index.html	(revision 14989)
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.runtime.logic (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.runtime.logic</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/CompoundExpression.java.html" TARGET="SourceFrame">CompoundExpression</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/EndsWithTest.java.html" TARGET="SourceFrame">EndsWithTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/EqualsTest.java.html" TARGET="SourceFrame">EqualsTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/Expression.java.html" TARGET="SourceFrame">Expression</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java.html" TARGET="SourceFrame">ExpressionBuilder</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/GreaterThanOrEqualsTest.java.html" TARGET="SourceFrame">GreaterThanOrEqualsTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LessThanOrEqualsTest.java.html" TARGET="SourceFrame">LessThanOrEqualsTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LiteralValue.java.html" TARGET="SourceFrame">LiteralValue</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LogicalAndTest.java.html" TARGET="SourceFrame">LogicalAndTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LogicalOrTest.java.html" TARGET="SourceFrame">LogicalOrTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/LogicalTest.java.html" TARGET="SourceFrame">LogicalTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/NotEqualsTest.java.html" TARGET="SourceFrame">NotEqualsTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/SimpleExpression.java.html" TARGET="SourceFrame">SimpleExpression</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java.html" TARGET="SourceFrame">SingleExpressionTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/StartsWithTest.java.html" TARGET="SourceFrame">StartsWithTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/StringLengthComparator.java.html" TARGET="SourceFrame">StringLengthComparator</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/TestOperator.java.html" TARGET="SourceFrame">TestOperator</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/Value.java.html" TARGET="SourceFrame">Value</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/ValuesTest.java.html" TARGET="SourceFrame">ValuesTest</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/logic/VariableValue.java.html" TARGET="SourceFrame">VariableValue</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.selfextract.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.selfextract.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.antinstaller.selfextract.index.html	(revision 14989)
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.selfextract (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.selfextract</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/selfextract/NonExtractor.java.html" TARGET="SourceFrame">NonExtractor</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/selfextract/ProgressIndicator.java.html" TARGET="SourceFrame">ProgressIndicator</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/selfextract/ResourceExtractor.java.html" TARGET="SourceFrame">ResourceExtractor</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/selfextract/SelfExtractor.java.html" TARGET="SourceFrame">SelfExtractor</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.gui.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.gui.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.gui.index.html	(revision 14989)
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.gui (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.gui</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/GBCF.java.html" TARGET="SourceFrame">GBCF</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.gui.widget.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.gui.widget.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org.tp23.gui.widget.index.html	(revision 14989)
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.gui.widget (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.gui.widget</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/DefaultingDirectoryChooser.java.html" TARGET="SourceFrame">DefaultingDirectoryChooser</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/FollowingJTextArea.java.html" TARGET="SourceFrame">FollowingJTextArea</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/JTextAreaPrintStream.java.html" TARGET="SourceFrame">JTextAreaPrintStream</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/SelectFileAction.java.html" TARGET="SourceFrame">SelectFileAction</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/gui/widget/SystemOutJTextArea.java.html" TARGET="SourceFrame">SystemOutJTextArea</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/DefaultPropertiesFileRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/DefaultPropertiesFileRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/DefaultPropertiesFileRenderer.java.html	(revision 14989)
@@ -0,0 +1,128 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.DefaultPropertiesFileRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">DefaultPropertiesFileRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../org.tp23.antinstaller.index.html" target="packageFrame">org.tp23.antinstaller</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.FileOutputStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.Properties;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/ConditionalField.java.html">org.tp23.antinstaller.input.ConditionalField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/SecretPropertyField.java.html">org.tp23.antinstaller.input.SecretPropertyField</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> *
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * &lt;p&gt;Outputs the completed Pages as a java Properties file. &lt;/p&gt;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * @author Paul Hinds
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * @version $Id: DefaultPropertiesFileRenderer.java,v 1.8 2007/01/09 22:41:41 teknopaul Exp $
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> */</FONT>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> DefaultPropertiesFileRenderer
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../org/tp23/antinstaller/PropertiesFileRenderer.java.html">PropertiesFileRenderer</A> {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> DefaultPropertiesFileRenderer() {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderProperties(<A HREF="../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx, File baseDir){
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <A HREF="../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer = ctx.getInstaller();
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] completedPages = installer.getPages();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        Properties props = <FONT CLASS="New">new</FONT> Properties();
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        props.put(FILE_ROOT_PROPERTY, baseDir.getAbsolutePath());
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        props.setProperty(INSTALLER_VERSION_PROPERTY,
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>                ctx.getInstaller().getVersion());
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; completedPages.length; i++) {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <A HREF="../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields = completedPages[i].getOutputField();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            retrieveProperties( fields, props );
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            <FONT CLASS="SingleLineComment">// print targets selected
+<FONT CLASS="LN">59</FONT><A NAME="59"></A></FONT>            List targets = completedPages[i].getTargets(ctx);
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            <FONT CLASS="If">if</FONT>(targets.size() &gt; <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>                Iterator iterator = targets.iterator();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>                StringBuffer targetProperty = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                <FONT CLASS="While">while</FONT> (iterator.hasNext()) {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>                    String target = (String) iterator.next();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>                    targetProperty.append(target).append(<FONT CLASS="StringLiteral">","</FONT>);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>                props.put(completedPages[i].getName() + TARGETS_SUFFIX, targetProperty.toString());             
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            File antInstallProperties = <FONT CLASS="New">new</FONT> File(baseDir.getAbsolutePath(), PROPERTIES_FILE_NAME);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            FileOutputStream fos = <FONT CLASS="New">new</FONT> FileOutputStream(antInstallProperties);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            props.store(fos,
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                        <FONT CLASS="StringLiteral">"Ant Installer - AutoGenerated properties"</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            fos.close();
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable ex) {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                ctx.log(ex);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="SingleLineComment">//swallow Exceptions as in contract for this method
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></FONT>        }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> retrieveProperties( <A HREF="../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields, Properties props ) {
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> f = <FONT CLASS="IntegerLiteral">0</FONT>; f &lt; fields.length; f++) {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            <FONT CLASS="If">if</FONT> (fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../org/tp23/antinstaller/input/SecretPropertyField.java.html">SecretPropertyField</A>) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                <FONT CLASS="SingleLineComment">//InputField field = (InputField)fields[f];
+<FONT CLASS="LN">90</FONT><A NAME="90"></A></FONT>                <FONT CLASS="SingleLineComment">//props.put(field.getProperty(), "XXXXXXXX");
+<FONT CLASS="LN">91</FONT><A NAME="91"></A></FONT>            }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>( fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A> ) {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                <A HREF="../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A> confField = (<A HREF="../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A>) fields[f];
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>                retrieveProperties( confField.getFields(), props );
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>) {
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                <A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A> field = (<A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>)fields[f];
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>                String result = field.getInputResult();
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>                <FONT CLASS="SingleLineComment">//Temporary fix for PR 1353906
+<FONT CLASS="LN">01</FONT><A NAME="101"></A></FONT>                <FONT CLASS="If">if</FONT>( result == <FONT CLASS="Null">null</FONT> ) {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                    result = <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>                props.put(field.getProperty(), result);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>}
+<FONT CLASS="LN">09</FONT><A NAME="109"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java.html	(revision 14989)
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.ExplicitPropertiesFileRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ExplicitPropertiesFileRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../org.tp23.antinstaller.index.html" target="packageFrame">org.tp23.antinstaller</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedWriter;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.FileWriter;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.Date;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/ConditionalField.java.html">org.tp23.antinstaller.input.ConditionalField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/SecretPropertyField.java.html">org.tp23.antinstaller.input.SecretPropertyField</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * &lt;p&gt;Outputs the completed Pages as a Java Properties file. The file produced is compatible
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * with java.util.Properties. &lt;/p&gt;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * &lt;p&gt;Output is commented as it is printed to aid debugging&lt;/p&gt;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * @see http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#100850
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * @author Paul Hinds
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> * @version $Id: ExplicitPropertiesFileRenderer.java,v 1.9 2007/01/09 22:41:41 teknopaul Exp $
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> */</FONT>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ExplicitPropertiesFileRenderer
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../org/tp23/antinstaller/PropertiesFileRenderer.java.html">PropertiesFileRenderer</A> {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> String newLine = System.getProperty(<FONT CLASS="StringLiteral">"line.separator"</FONT>);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Char">char</FONT>[] hexidecimals = { <FONT CLASS="CharacerLiteral">'0'</FONT>, <FONT CLASS="CharacerLiteral">'1'</FONT>, <FONT CLASS="CharacerLiteral">'2'</FONT>, <FONT CLASS="CharacerLiteral">'3'</FONT>, <FONT CLASS="CharacerLiteral">'4'</FONT>, <FONT CLASS="CharacerLiteral">'5'</FONT>, <FONT CLASS="CharacerLiteral">'6'</FONT>, <FONT CLASS="CharacerLiteral">'7'</FONT>, <FONT CLASS="CharacerLiteral">'8'</FONT>, <FONT CLASS="CharacerLiteral">'9'</FONT>, <FONT CLASS="CharacerLiteral">'A'</FONT>, <FONT CLASS="CharacerLiteral">'B'</FONT>, <FONT CLASS="CharacerLiteral">'C'</FONT>, <FONT CLASS="CharacerLiteral">'D'</FONT>, <FONT CLASS="CharacerLiteral">'E'</FONT>, <FONT CLASS="CharacerLiteral">'F'</FONT> };
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> ExplicitPropertiesFileRenderer() {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderProperties(<A HREF="../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx, File baseDir){
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <A HREF="../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer = ctx.getInstaller();
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] completedPages = installer.getPages();
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        StringBuffer propertiesData = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        propertiesData.append(<FONT CLASS="StringLiteral">"### Ant Installer - properties auto generated on "</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        propertiesData.append( convert(<FONT CLASS="New">new</FONT> Date().toString(), <FONT CLASS="True">true</FONT>) );
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        propertiesData.append(newLine);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        propertiesData.append(newLine);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        propertiesData.append(FILE_ROOT_PROPERTY);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        propertiesData.append(<FONT CLASS="StringLiteral">" = "</FONT>);
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        propertiesData.append( convert(baseDir.getAbsolutePath(), <FONT CLASS="True">true</FONT>) );
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        propertiesData.append(newLine);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        propertiesData.append(INSTALLER_VERSION_PROPERTY);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        propertiesData.append(<FONT CLASS="StringLiteral">" = "</FONT>);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        propertiesData.append( convert(ctx.getInstaller().getVersion(), <FONT CLASS="True">true</FONT>) );
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        propertiesData.append(newLine);
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        propertiesData.append(newLine);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        String property = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        String value = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; completedPages.length; i++) {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            <A HREF="../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields = completedPages[i].getOutputField();
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            propertiesData.append(newLine);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            propertiesData.append(<FONT CLASS="StringLiteral">"## Properties from Page:"</FONT> + completedPages[i].getName());
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            propertiesData.append(newLine);
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            retrievePropertiesData( fields, propertiesData );
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="SingleLineComment">// print targets selected
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></FONT>            List targets = completedPages[i].getTargets(ctx);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            <FONT CLASS="If">if</FONT>(targets.size() &gt; <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                Iterator iterator = targets.iterator();
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                StringBuffer targetProperty = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>                <FONT CLASS="While">while</FONT> (iterator.hasNext()) {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                    String target = (String) iterator.next();
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                    targetProperty.append(target).append(<FONT CLASS="StringLiteral">","</FONT>);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>                }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                propertiesData.append(<FONT CLASS="StringLiteral">"# Targets selected for page"</FONT>);
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                propertiesData.append(newLine);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                property = convert(completedPages[i].getName() + TARGETS_SUFFIX, <FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>                value = convert(targetProperty.toString(), <FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>                propertiesData.append(property + <FONT CLASS="StringLiteral">" = "</FONT> + value);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                propertiesData.append(newLine);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            File antInstallProperties = <FONT CLASS="New">new</FONT> File(baseDir.getAbsolutePath(), PROPERTIES_FILE_NAME);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            FileWriter fos = <FONT CLASS="New">new</FONT> FileWriter(antInstallProperties);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>            BufferedWriter writer = <FONT CLASS="New">new</FONT> BufferedWriter(fos);
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            writer.write(propertiesData.toString());
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            writer.flush();
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>            fos.close();
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable ex) {
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>                ctx.log(ex);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            <FONT CLASS="SingleLineComment">//swallow Exceptions as in the contract for this method
+<FONT CLASS="LN">13</FONT><A NAME="113"></A></FONT>        }
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>    }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> retrievePropertiesData( <A HREF="../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields, StringBuffer propertiesData ) {
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        String property = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        String value = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> f = <FONT CLASS="IntegerLiteral">0</FONT>; f &lt; fields.length; f++) {
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>            <FONT CLASS="If">if</FONT> (fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../org/tp23/antinstaller/input/SecretPropertyField.java.html">SecretPropertyField</A>) {
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                <A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A> field = (<A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>) fields[f];
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                <FONT CLASS="SingleLineComment">//String result = field.getInputResult();
+<FONT CLASS="LN">23</FONT><A NAME="123"></A></FONT>                propertiesData.append(<FONT CLASS="StringLiteral">"# Property hidden "</FONT> + printClass(fields[f].getClass()));
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>                propertiesData.append(newLine);
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>                property = convert(field.getProperty(), <FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>                propertiesData.append(<FONT CLASS="StringLiteral">"#"</FONT> + property + <FONT CLASS="StringLiteral">"=XXXXXXXX"</FONT>);
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>                propertiesData.append(newLine);
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>            <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A> ) {
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                <A HREF="../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A> confField = (<A HREF="../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A>) fields[f];
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                retrievePropertiesData( confField.getFields(), propertiesData );
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>            }
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>) {
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>                <A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A> field = (<A HREF="../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>) fields[f];
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                String result = field.getInputResult();
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>                propertiesData.append(<FONT CLASS="StringLiteral">"# "</FONT> + printClass(fields[f].getClass()));
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>                propertiesData.append(newLine);
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>                property = convert(field.getProperty(), <FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>                value = convert(result, <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>                propertiesData.append(property + <FONT CLASS="StringLiteral">" = "</FONT> + value);
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>                propertiesData.append(newLine);
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>            }
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>    <FONT CLASS="Private">private</FONT> String printClass(Class clazz) {
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>        String name = clazz.getName();
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        <FONT CLASS="Int">int</FONT> lastDot = name.lastIndexOf(<FONT CLASS="CharacerLiteral">'.'</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>        <FONT CLASS="Return">return</FONT> name.substring(lastDot, name.length());
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>    <FONT CLASS="Private">private</FONT> String convert(String input, <FONT CLASS="Boolean">boolean</FONT> doSpaces) {
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>        <FONT CLASS="If">if</FONT> (input == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>            <FONT CLASS="SingleLineComment">// this happens when a page is skipped in text mode
+<FONT CLASS="LN">56</FONT><A NAME="156"></A></FONT>            <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>        <FONT CLASS="Int">int</FONT> num = input.length();
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>        StringBuffer sb = <FONT CLASS="New">new</FONT> StringBuffer(num);
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; num; i++) {
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>            <FONT CLASS="Char">char</FONT> c = input.charAt(i);
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>            <FONT CLASS="Switch">switch</FONT> (c) {
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">' '</FONT>:
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>                    <FONT CLASS="If">if</FONT> (i == <FONT CLASS="IntegerLiteral">0</FONT> || doSpaces) {
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>                        sb.append(<FONT CLASS="CharacerLiteral">'\\'</FONT>);
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>                    }
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>                    sb.append(<FONT CLASS="CharacerLiteral">' '</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\n'</FONT>:
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\n"</FONT>);
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\r'</FONT>:
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\r"</FONT>);
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\\'</FONT>:
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\\\"</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\t'</FONT>:
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\t"</FONT>);
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\f'</FONT>:
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\f"</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'='</FONT>:
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\="</FONT>);
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">':'</FONT>:
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\:"</FONT>);
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'#'</FONT>:
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\#"</FONT>);
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'!'</FONT>:
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\!"</FONT>);
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>                <FONT CLASS="Default">default</FONT>:
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>                    <FONT CLASS="If">if</FONT> ( (c &lt; <FONT CLASS="IntegerLiteral">0x0020</FONT>) || (c &gt; <FONT CLASS="IntegerLiteral">0x007e</FONT>) ) {
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>                        sb.append(<FONT CLASS="StringLiteral">"\\u"</FONT>)
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>                            .append(hex( (c &gt;&gt; <FONT CLASS="IntegerLiteral">12</FONT>) &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>))
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>                            .append(hex( (c &gt;&gt; <FONT CLASS="IntegerLiteral">8</FONT>) &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>))
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>                            .append(hex( (c &gt;&gt; <FONT CLASS="IntegerLiteral">4</FONT>) &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>))
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>                            .append(hex(c &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>));
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>                    }
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>                    <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>                        sb.append(c);
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>                    }
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>            }
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>        }
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>        <FONT CLASS="Return">return</FONT> sb.toString();
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>    }
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Char">char</FONT> hex(<FONT CLASS="Int">int</FONT> val) {
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>        <FONT CLASS="Return">return</FONT> hexidecimals[ (val &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>)];
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>    }
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>}
+<FONT CLASS="LN">19</FONT><A NAME="219"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/InstallException.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/InstallException.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/InstallException.java.html	(revision 14989)
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.InstallException (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">InstallException.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../org.tp23.antinstaller.index.html" target="packageFrame">org.tp23.antinstaller</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.PrintWriter;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> *
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * &lt;p&gt;Custom Installation Exception, Hopefully compatible with JDK1.3 and 1.4&lt;/p&gt;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * @author Paul Hinds
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @version $Id: InstallException.java,v 1.1.1.1 2005/10/18 18:20:51 teknopaul Exp $
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> */</FONT>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> InstallException <FONT CLASS="Extends">extends</FONT> Exception{
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Private">private</FONT> Throwable cause;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> InstallException() {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> InstallException(String message) {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Super">super</FONT>(message);
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> InstallException(String message,Throwable cause) {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="Super">super</FONT>(message);
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.cause = cause;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> Throwable getException() {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="Return">return</FONT> cause;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> Throwable getCause() {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="Return">return</FONT> getException();
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> printStackTrace() {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        printStackTrace(System.err);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> printStackTrace(PrintStream ps) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Synchronized">synchronized</FONT> (ps) {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            <FONT CLASS="Super">super</FONT>.printStackTrace(ps);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <FONT CLASS="If">if</FONT> (cause != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>                ps.println(<FONT CLASS="StringLiteral">"--- Nested Exception ---"</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>                cause.printStackTrace(ps);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> printStackTrace(PrintWriter pw) {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="Synchronized">synchronized</FONT> (pw) {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            <FONT CLASS="Super">super</FONT>.printStackTrace(pw);
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            <FONT CLASS="If">if</FONT> (cause != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>                pw.println(<FONT CLASS="StringLiteral">"--- Nested Exception ---"</FONT>);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                cause.printStackTrace(pw);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>}
+<FONT CLASS="LN">68</FONT><A NAME="68"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/Installer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/Installer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/Installer.java.html	(revision 14989)
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.Installer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Installer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../org.tp23.antinstaller.index.html" target="packageFrame">org.tp23.antinstaller</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.MissingResourceException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.Vector;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/input/ResultContainer.java.html">org.tp23.antinstaller.input.ResultContainer</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/renderer/swing/SizeConstants.java.html">org.tp23.antinstaller.renderer.swing.SizeConstants</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">org.tp23.antinstaller.runtime.IfPropertyHelper</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/VersionHelper.java.html">org.tp23.antinstaller.runtime.VersionHelper</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java.html">org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter.AbortException</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * &lt;p&gt;Object representation of the Installer element in the config. &lt;/p&gt;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * &lt;p&gt;This object holds the reference to all the Pages which in tern hold references
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * to the InputFields,  All the properties in the Installer element are held at this level
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> * as is the ResultContainer&lt;/p&gt;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> * @author Paul Hinds
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * @version $Id: Installer.java,v 1.9 2007/01/28 08:44:41 teknopaul Exp $
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> */</FONT>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> Installer {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="SingleLineComment">// i18n support
+<FONT CLASS="LN">45</FONT><A NAME="45"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> ResourceBundle langPack = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Static">static</FONT>{
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            langPack = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"resources.LanguagePack"</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        } <FONT CLASS="Catch">catch</FONT> (MissingResourceException e) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            <FONT CLASS="SingleLineComment">// ignore, signifies no lang packs installed  
+<FONT CLASS="LN">51</FONT><A NAME="51"></A></FONT>        }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Private">private</FONT> String name;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Private">private</FONT> String minJavaVersion = <FONT CLASS="StringLiteral">"1.4"</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Private">private</FONT> String ui;<FONT CLASS="SingleLineComment">// permitted UI override values
+<FONT CLASS="LN">57</FONT><A NAME="57"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> verbose;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> debug;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Private">private</FONT> String lookAndFeel;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> String wide;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> String windowIcon;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Private">private</FONT> String defaultImageResource;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Private">private</FONT> String finishButtonText = <FONT CLASS="StringLiteral">"Install"</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Private">private</FONT> String antialiased;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> String loadDefaults;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Private">private</FONT> String version = <FONT CLASS="StringLiteral">"0.0"</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> resultContainer = <FONT CLASS="New">new</FONT> <A HREF="../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A>();
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Public">public</FONT> Installer() {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="Public">public</FONT> String getName() {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="Return">return</FONT> name;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setName(String name) {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="This">this</FONT>.name = name;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Public">public</FONT> String getMinJavaVersion() {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="Return">return</FONT> minJavaVersion;
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setMinJavaVersion(String minJavaVersion) <FONT CLASS="Throws">throws</FONT> AbortException {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        <FONT CLASS="If">if</FONT>(minJavaVersion != <FONT CLASS="Null">null</FONT> &amp;&amp; ! <FONT CLASS="StringLiteral">""</FONT>.equals(minJavaVersion) ) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            <A HREF="../../../org/tp23/antinstaller/runtime/VersionHelper.java.html">VersionHelper</A> helper = <FONT CLASS="New">new</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/VersionHelper.java.html">VersionHelper</A>();
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            <FONT CLASS="If">if</FONT>( ! helper.equalOrHigher(System.getProperty(<FONT CLASS="StringLiteral">"java.version"</FONT>), minJavaVersion, <FONT CLASS="True">true</FONT>) ) {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> AbortException(<FONT CLASS="StringLiteral">"Incorrect Java version, installer requires: "</FONT> + minJavaVersion);
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="This">this</FONT>.minJavaVersion = minJavaVersion;
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] getPages() {
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="Return">return</FONT> pages;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setPages(<A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages) {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        <FONT CLASS="This">this</FONT>.pages = pages;
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>     * returns full ui attribute with spaces removed (the string is not parsed into tokens).
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>     * e.g.  "text,swint,swing-auto"
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>     * @return
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>     */</FONT>
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    <FONT CLASS="Public">public</FONT> String getUi() {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        <FONT CLASS="Return">return</FONT> ui;
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>     * Sets the ui attrribute removing any whitespace
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>     * @param ui
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>     */</FONT>
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setUi(String ui) {
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        <FONT CLASS="This">this</FONT>.ui = ui.replaceAll(<FONT CLASS="StringLiteral">"\\s"</FONT>, <FONT CLASS="StringLiteral">""</FONT>);
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>    }
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> supportsAutoBuild(){
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        <FONT CLASS="Return">return</FONT> ui != <FONT CLASS="Null">null</FONT> &amp;&amp; ui.indexOf(<FONT CLASS="StringLiteral">"-auto"</FONT>) &gt; -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>    }
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isVerbose() {
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        <FONT CLASS="Return">return</FONT> verbose;
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setVerbose(<FONT CLASS="Boolean">boolean</FONT> verbose) {
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        <FONT CLASS="This">this</FONT>.verbose = verbose;
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>    }
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setVerbose(String strVerbose) {
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>        <FONT CLASS="This">this</FONT>.verbose = OutputField.isTrue(strVerbose);
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isDebug() {
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>        <FONT CLASS="Return">return</FONT> debug;
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDebug(<FONT CLASS="Boolean">boolean</FONT> debug) {
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>        <FONT CLASS="This">this</FONT>.debug = debug;
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDebug(String strDebug) {
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        <FONT CLASS="This">this</FONT>.debug = OutputField.isTrue(strDebug);
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>    <FONT CLASS="Public">public</FONT> String getLookAndFeel() {
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>        <FONT CLASS="Return">return</FONT> lookAndFeel;
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setLookAndFeel(String lookAndFeel) {
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        <FONT CLASS="This">this</FONT>.lookAndFeel = lookAndFeel;
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>    <FONT CLASS="Public">public</FONT> String getWindowIcon() {
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>        <FONT CLASS="Return">return</FONT> windowIcon;
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setWindowIcon(String windowIcon) {
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>        <FONT CLASS="This">this</FONT>.windowIcon = windowIcon;
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>    <FONT CLASS="Public">public</FONT> String getDefaultImageResource() {
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>        <FONT CLASS="Return">return</FONT> defaultImageResource;
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDefaultImageResource(String defaultImageResource) {
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>        <FONT CLASS="This">this</FONT>.defaultImageResource = defaultImageResource;
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>    }
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>    <FONT CLASS="Public">public</FONT> String getFinishButtonText() {
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>        <FONT CLASS="If">if</FONT>(langPack != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>            <FONT CLASS="Return">return</FONT> langPack.getString(<FONT CLASS="StringLiteral">"finishButtonText"</FONT>);
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>        }
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>        <FONT CLASS="Return">return</FONT> finishButtonText;
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setFinishButtonText(String finishButtonText) {
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>        <FONT CLASS="This">this</FONT>.finishButtonText = finishButtonText;
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> getResultContainer() {
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>        <FONT CLASS="Return">return</FONT> resultContainer;
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>    <FONT CLASS="Public">public</FONT> String getAntialiased() {
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>        <FONT CLASS="Return">return</FONT> antialiased;
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>    }
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAntialiased(String antialiased) {
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>        <FONT CLASS="This">this</FONT>.antialiased = antialiased;
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>    }
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>    <FONT CLASS="Public">public</FONT> String getWide() {
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>        <FONT CLASS="Return">return</FONT> wide;
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setWide(String wide) {
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>            <FONT CLASS="This">this</FONT>.wide = wide;
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>            parseWideValue(wide);
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>            <FONT CLASS="SingleLineComment">// ignore use defaults
+<FONT CLASS="LN">04</FONT><A NAME="204"></A></FONT>        }
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>    }
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> parseWideValue(String wide) <FONT CLASS="Throws">throws</FONT> NumberFormatException, StringIndexOutOfBoundsException{
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>        <FONT CLASS="Int">int</FONT> pageWidth = Integer.parseInt(wide.substring(<FONT CLASS="IntegerLiteral">0</FONT>, wide.indexOf(<FONT CLASS="CharacerLiteral">':'</FONT>)));
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>        <FONT CLASS="Int">int</FONT> labelWidth = Integer.parseInt(wide.substring(wide.indexOf(<FONT CLASS="CharacerLiteral">':'</FONT>) + <FONT CLASS="IntegerLiteral">1</FONT>, wide.length()));
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>        SizeConstants.PAGE_WIDTH = pageWidth;
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>        SizeConstants.LABEL_WIDTH = labelWidth;
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>    <FONT CLASS="Public">public</FONT> String getLoadDefaults() {
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>        <FONT CLASS="Return">return</FONT> loadDefaults;
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>    }
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setLoadDefaults(String loadDefaults) {
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>        <FONT CLASS="This">this</FONT>.loadDefaults = loadDefaults;
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>    }
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>     * Returns the list of selected targets from the installer obeying
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>     * page order. This method is
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>     * probably only usefull after the UI screens have finished.  Using prior to that
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>     * bear in mind that the user in the Swing GUI can go back and reselect
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>     * targets that were not selected previously.
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>     * Page targets for pages that were not shown are not returned in the list 
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>     * @return Returns a Vector since Ant requires this for the Project class (Should be a List)
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>     * @throws InstallException 
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>     */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>    <FONT CLASS="Public">public</FONT> Vector getTargets(<A HREF="../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>        Vector argsList = <FONT CLASS="New">new</FONT> Vector();
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; getPages().length; i++) {
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>            <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page = getPages()[i];
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>            List pageTargets = page.getPageTargets();
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>            <FONT CLASS="Boolean">boolean</FONT> shown = conditionalDisplay(page, ctx);
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> pt = <FONT CLASS="IntegerLiteral">0</FONT>; pt &lt; pageTargets.size(); pt++) {
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>                <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page.IndexedTarget</A> target = (<A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page.IndexedTarget</A>)pageTargets.get(pt);
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>                <FONT CLASS="If">if</FONT>( ! argsList.contains(target.getTarget()) &amp;&amp;
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>                    shown){
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>                    argsList.add(target.getTarget());
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>                }
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>            }
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>            List elementTargets = page.getElementTargets();
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> pt = <FONT CLASS="IntegerLiteral">0</FONT>; pt &lt; elementTargets.size(); pt++) {
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>                <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page.IndexedTarget</A> target = (<A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page.IndexedTarget</A>)elementTargets.get(pt);
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>                <FONT CLASS="If">if</FONT>( ! argsList.contains(target.getTarget()) ){
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>                    argsList.add(target.getTarget());
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>                }
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>            }
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>        }
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>        <FONT CLASS="Return">return</FONT> argsList;
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>     * @return boolean true if the page was to be shown
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>     * @throws InstallException 
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>     */</FONT>
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> conditionalDisplay(<A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page, <A HREF="../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>            <A HREF="../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A> helper = <FONT CLASS="New">new</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A>(ctx);
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>            <FONT CLASS="Return">return</FONT> helper.ifProperty(page) &amp;&amp; helper.ifTarget(page, ctx.getInstaller().getPages());
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>        } <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> e) {
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> RuntimeException(<FONT CLASS="StringLiteral">"ifProperty runtime exception"</FONT>);
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>    <FONT CLASS="Public">public</FONT> String getVersion() {
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>        <FONT CLASS="Return">return</FONT> version;
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>    }
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setVersion(String version) {
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>        <FONT CLASS="This">this</FONT>.version = version;
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>}
+<FONT CLASS="LN">78</FONT><A NAME="278"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/InstallerContext.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/InstallerContext.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/InstallerContext.java.html	(revision 14989)
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.InstallerContext (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">InstallerContext.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../org.tp23.antinstaller.index.html" target="packageFrame">org.tp23.antinstaller</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.Enumeration;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.Properties;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.Vector;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildListener;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.taskdefs.Execute;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">org.tp23.antinstaller.renderer.AntOutputRenderer</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/Logger.java.html">org.tp23.antinstaller.runtime.Logger</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/Runner.java.html">org.tp23.antinstaller.runtime.Runner</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java.html">org.tp23.antinstaller.runtime.exe.AntLauncherFilter</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java.html">org.tp23.antinstaller.runtime.exe.LoadConfigFilter</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> *
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * &lt;p&gt;A single InstallerContext is created by the ExecInstall class and
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * exist for the duration of the Install screens and the runing of
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> * the Ant Script. &lt;/p&gt;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> * @author Paul Hinds
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * @version $Id: InstallerContext.java,v 1.10 2007/01/28 08:44:41 teknopaul Exp $
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> */</FONT>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> InstallerContext {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>     * This is the prefix for environment variables, unlike Ant this is fixed to
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>     * the common prefix of "env".  If you dont like this complain to the bug reports
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>     * on sourceforge
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     */</FONT>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String ENV_PREFIX = <FONT CLASS="StringLiteral">"env."</FONT>;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     * This is the prefix for Java system property variables.
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>     * This is fixed to "java."
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>     */</FONT>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String JAVA_PREFIX = <FONT CLASS="StringLiteral">"java."</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/Logger.java.html">Logger</A> logger = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> messageRenderer = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A> antOutputRenderer = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/Runner.java.html">Runner</A> runner = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A> currentPage = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> java.io.File fileRoot = <FONT CLASS="Null">null</FONT>; <FONT CLASS="SingleLineComment">// ant basedir
+<FONT CLASS="LN">62</FONT><A NAME="62"></A></FONT>    <FONT CLASS="Private">private</FONT> BuildListener buildListener = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java.html">AntLauncherFilter</A> antRunner = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Private">private</FONT> String uIOverride = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> String installerConfigFile = LoadConfigFilter.INSTALLER_CONFIG_FILE;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Private">private</FONT> String antBuildFile = <FONT CLASS="StringLiteral">"build.xml"</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Private">private</FONT> String configResource;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="SingleLineComment">// called after the Ant part has been run
+<FONT CLASS="LN">71</FONT><A NAME="71"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> installedSucceded = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>     
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Public">public</FONT> InstallerContext() {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallSucceded(<FONT CLASS="Boolean">boolean</FONT> installedSucceded){
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        <FONT CLASS="This">this</FONT>.installedSucceded=installedSucceded;
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isInstallSucceded(){
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        <FONT CLASS="Return">return</FONT> installedSucceded;
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> log(String message){
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="If">if</FONT>(logger != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            logger.log(message);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> log(Throwable message){
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="If">if</FONT>(logger != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            logger.log(message);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> log(<FONT CLASS="Boolean">boolean</FONT> vebose, Throwable message){
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="If">if</FONT>(vebose &amp;&amp; logger != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            logger.log(message);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>     * Check to see if the system is windoze to be able to return the correct prompted
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>     * directories.  This method should be IsNotWindows since it assumes anything
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>     * that is not windows is Unix
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>     * @return boolean true if not windows in the os.name System Property
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>     */</FONT>
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> isUnix(){
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        <FONT CLASS="Return">return</FONT> System.getProperty(<FONT CLASS="StringLiteral">"os.name"</FONT>).toLowerCase().indexOf(<FONT CLASS="StringLiteral">"windows"</FONT>) == -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>     * Use the standard Ant way to load the environment variables, this is not all inclusive
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>     * (but will be come Java 1.5 I imagine)
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>     * @return Properties
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>     */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> Properties getEnvironment(){
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        Properties props = <FONT CLASS="New">new</FONT> Properties();
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>            Vector osEnv = Execute.getProcEnvironment();
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>            <FONT CLASS="For">for</FONT> (Enumeration e = osEnv.elements(); e.hasMoreElements(); ) {
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>                String entry = (String) e.nextElement();
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>                <FONT CLASS="Int">int</FONT> pos = entry.indexOf(<FONT CLASS="CharacerLiteral">'='</FONT>);
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                <FONT CLASS="If">if</FONT> (pos != -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                    props.put(ENV_PREFIX + entry.substring(<FONT CLASS="IntegerLiteral">0</FONT>, pos),
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>                              entry.substring(pos + <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>                }
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>            }
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        }
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            <FONT CLASS="SingleLineComment">// swallow exceptions so this can be loaded statically
+<FONT CLASS="LN">29</FONT><A NAME="129"></A></FONT>            <FONT CLASS="SingleLineComment">// bit of a bugger if you need the environment on Mac OS 9 but not all apps
+<FONT CLASS="LN">30</FONT><A NAME="130"></A></FONT>            <FONT CLASS="SingleLineComment">// do so we don't want to die inother situations
+<FONT CLASS="LN">31</FONT><A NAME="131"></A></FONT>            System.out.println(<FONT CLASS="StringLiteral">"Can't load environment:"</FONT>+ex.getClass()+<FONT CLASS="StringLiteral">","</FONT>+ex.getMessage());
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        }
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>        Properties javaSysProps = System.getProperties();
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        Iterator iter = javaSysProps.keySet().iterator();
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        <FONT CLASS="While">while</FONT> (iter.hasNext()) {
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            Object key = (Object)iter.next();
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            props.put(JAVA_PREFIX+key.toString(),javaSysProps.get(key));
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        }
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        <FONT CLASS="Return">return</FONT> props;
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>    <FONT CLASS="SingleLineComment">// Bean methods
+<FONT CLASS="LN">43</FONT><A NAME="143"></A></FONT>    <FONT CLASS="Public">public</FONT> <A HREF="../../../org/tp23/antinstaller/Installer.java.html">Installer</A> getInstaller() {
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        <FONT CLASS="Return">return</FONT> installer;
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>    <FONT CLASS="Public">public</FONT> String getMinJavaVersion() {
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>        <FONT CLASS="Return">return</FONT> installer.getMinJavaVersion();
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> getMessageRenderer() {
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        <FONT CLASS="Return">return</FONT> messageRenderer;
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setMessageRenderer(<A HREF="../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> messageRenderer) {
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>        <FONT CLASS="This">this</FONT>.messageRenderer = messageRenderer;
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        <FONT CLASS="This">this</FONT>.messageRenderer.setInstallerContext(<FONT CLASS="This">this</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>    
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A> getAntOutputRenderer() {
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>        <FONT CLASS="Return">return</FONT> antOutputRenderer;
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>    
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAntOutputRenderer(<A HREF="../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A> antOutputRenderer) {
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>        <FONT CLASS="This">this</FONT>.antOutputRenderer = antOutputRenderer;
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>    
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A> getCurrentPage() {
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>        <FONT CLASS="Return">return</FONT> currentPage;
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>    }
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>    
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setCurrentPage(<A HREF="../../../org/tp23/antinstaller/page/Page.java.html">Page</A> currentPage) {
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>        <FONT CLASS="This">this</FONT>.currentPage = currentPage;
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>     * in SelfExtractor - the directory the install has extracted to &lt;br/&gt;
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>     * in Scripted installs - the base directory of the install      &lt;br/&gt;
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>     * in NonExtractor - the temporary space created for the build   &lt;br/&gt; 
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>     * @return 
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>     */</FONT>
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>    <FONT CLASS="Public">public</FONT> File getFileRoot() {
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>        <FONT CLASS="Return">return</FONT> fileRoot;
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>    }
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setFileRoot(File fileRoot) {
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>        <FONT CLASS="This">this</FONT>.fileRoot = fileRoot;
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>    }
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>    <FONT CLASS="Public">public</FONT> org.apache.tools.ant.BuildListener getBuildListener() {
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>        <FONT CLASS="Return">return</FONT> buildListener;
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>    }
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setBuildListener(org.apache.tools.ant.BuildListener buildListener) {
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        <FONT CLASS="This">this</FONT>.buildListener = buildListener;
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java.html">AntLauncherFilter</A> getAntRunner() {
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>        <FONT CLASS="Return">return</FONT> antRunner;
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>    }
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAntRunner(<A HREF="../../../org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java.html">AntLauncherFilter</A> antRunner) {
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>        <FONT CLASS="This">this</FONT>.antRunner = antRunner;
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>    }
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/Logger.java.html">Logger</A> getLogger() {
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>        <FONT CLASS="Return">return</FONT> logger;
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>    }
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setLogger(<A HREF="../../../org/tp23/antinstaller/runtime/Logger.java.html">Logger</A> logger) {
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>        <FONT CLASS="This">this</FONT>.logger = logger;
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../org/tp23/antinstaller/runtime/Runner.java.html">Runner</A> getRunner() {
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>        <FONT CLASS="Return">return</FONT> runner;
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>    }
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setRunner(<A HREF="../../../org/tp23/antinstaller/runtime/Runner.java.html">Runner</A> runner) {
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>        <FONT CLASS="This">this</FONT>.runner = runner;
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>    }
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstaller(<A HREF="../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer) {
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>        <FONT CLASS="This">this</FONT>.installer = installer;
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>    }
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>    <FONT CLASS="Public">public</FONT> String getUIOverride() {
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>        <FONT CLASS="Return">return</FONT> uIOverride;
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>    }
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setUIOverride(String override) {
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>        uIOverride = override;
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>    }
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>    
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAutoBuild(){
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>        <FONT CLASS="Return">return</FONT> uIOverride != <FONT CLASS="Null">null</FONT> &amp;&amp; uIOverride.indexOf(<FONT CLASS="StringLiteral">"-auto"</FONT>) &gt; -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>     * RFE 1569628, the antinstaller config file to use, defaults to antinstall-config.xml
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>     * @return
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>     */</FONT>
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>    <FONT CLASS="Public">public</FONT> String getInstallerConfigFile() {
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>        <FONT CLASS="Return">return</FONT> installerConfigFile;
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallerConfigFile(String installerConfigFile) {
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>        <FONT CLASS="This">this</FONT>.installerConfigFile = installerConfigFile;
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>     * RFE 1569628, the build file to use, defaults to build.xml
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>     * There should never be any path info, that is derived elsewhere
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>     * @return
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>     */</FONT>
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>    <FONT CLASS="Public">public</FONT> String getAntBuildFile() {
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>        <FONT CLASS="Return">return</FONT> antBuildFile;
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>    }
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAntBuildFile(String antBuildFile) {
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>        <FONT CLASS="This">this</FONT>.antBuildFile = antBuildFile;
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>    <FONT CLASS="Public">public</FONT> String getConfigResource() {
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>        <FONT CLASS="Return">return</FONT> configResource;
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setConfigResource(String configResource) {
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>        <FONT CLASS="This">this</FONT>.configResource = configResource;
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>}
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>
+<FONT CLASS="LN">72</FONT><A NAME="272"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/PropertiesFileRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/PropertiesFileRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/PropertiesFileRenderer.java.html	(revision 14989)
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.PropertiesFileRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">PropertiesFileRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../org.tp23.antinstaller.index.html" target="packageFrame">org.tp23.antinstaller</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * &lt;p&gt;Renders a properties file in the base directory for Ant to use and
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> *  available for viewing after for Debug&lt;/p&gt;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * In earlier versions this was the only way to access properties it is now
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * mostly redundant.
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author Paul Hinds
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @version $Id: PropertiesFileRenderer.java,v 1.4 2006/12/23 04:07:23 teknopaul Exp $
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> PropertiesFileRenderer {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String FILE_ROOT_PROPERTY = <FONT CLASS="StringLiteral">"basedir"</FONT>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String INSTALLER_VERSION_PROPERTY = <FONT CLASS="StringLiteral">"ant.install.config.version"</FONT>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String PROPERTIES_FILE_NAME = <FONT CLASS="StringLiteral">"ant.install.properties"</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String TARGETS_SUFFIX = <FONT CLASS="StringLiteral">"-targets"</FONT>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>     * This method no longer throws IOException since the requirement to print properties
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>     * has been removed.  By default properties will be printed since they are usefull
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>     * for debug but classes implementing this method should swallow all Exceptions
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>     * @param ctx InstallerContext
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>     * @param baseDir File
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>     */</FONT>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderProperties(<A HREF="../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx, File baseDir);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>}
+<FONT CLASS="LN">44</FONT><A NAME="44"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/ResourceBundleHelper.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/ResourceBundleHelper.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/ResourceBundleHelper.java.html	(revision 14989)
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.ResourceBundleHelper (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ResourceBundleHelper.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../org.tp23.antinstaller.index.html" target="packageFrame">org.tp23.antinstaller</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Import">import</FONT> java.text.MessageFormat;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> java.util.MissingResourceException;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * Helper class that will catch missing bundle entries and handle formatting
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * of message strings
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> *
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * @author mwilson
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @version $Id
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @since 0.7.4 patch 7
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ResourceBundleHelper
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>{
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Private">private</FONT> String bundleName;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Private">private</FONT> ResourceBundle resourceBundle;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> Object[] EMPTY_OBJ_ARRAY = <FONT CLASS="New">new</FONT> Object[<FONT CLASS="IntegerLiteral">0</FONT>];
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String EMPTY_STRING = <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> ResourceBundleHelper( <FONT CLASS="Final">final</FONT> String bundleName )
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.bundleName = bundleName;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        resourceBundle = ResourceBundle.getBundle( bundleName );
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> String getMessage( <FONT CLASS="Final">final</FONT> String key )
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="Return">return</FONT> getMessage( key, EMPTY_OBJ_ARRAY );
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> String getMessage( <FONT CLASS="Final">final</FONT> String key, <FONT CLASS="Final">final</FONT> Object obj  )
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="Return">return</FONT> getMessage( key, <FONT CLASS="New">new</FONT> Object[] { obj } );
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>     * Return a formatted message string.
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>     * @param key resource bundle key
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>     * @param objArray array of objects that will be used with formatting
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>     *                 string
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>     * @return formatted string or error message if the resource bundle
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     *         entry is missing
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>     */</FONT>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> String getMessage( String key, Object objArray[] )
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        String message;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="SingleLineComment">//Replace null values with empty strings - safer
+<FONT CLASS="LN">65</FONT><A NAME="65"></A></FONT>        <FONT CLASS="For">for</FONT>( <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; objArray.length; i++ )
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            <FONT CLASS="If">if</FONT>( objArray[i] == <FONT CLASS="Null">null</FONT> )
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>                objArray[i] = EMPTY_STRING;
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        String formatStr = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="Try">try</FONT>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        {
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            formatStr = resourceBundle.getString( key );
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="Catch">catch</FONT>( MissingResourceException missingResExc )
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            <FONT CLASS="SingleLineComment">//Handle missing resource below...
+<FONT CLASS="LN">82</FONT><A NAME="82"></A></FONT>        }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="If">if</FONT>( formatStr == <FONT CLASS="Null">null</FONT> )
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        {
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            StringBuffer strBuffer = <FONT CLASS="New">new</FONT> StringBuffer( <FONT CLASS="StringLiteral">"Message entry with key "</FONT> );
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            strBuffer.append( key );
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            strBuffer.append( <FONT CLASS="StringLiteral">" is missing from resource bundle "</FONT> );
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            strBuffer.append( bundleName );
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            strBuffer.append( <FONT CLASS="StringLiteral">"\n"</FONT> );
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            strBuffer.append( bundleName );
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            strBuffer.append( <FONT CLASS="StringLiteral">":: "</FONT> );
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            strBuffer.append( key );
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            <FONT CLASS="For">for</FONT>( <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; objArray.length; i++ )
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                strBuffer.append( <FONT CLASS="StringLiteral">" "</FONT> );
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                strBuffer.append( objArray[i].toString() );
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            message = strBuffer.toString();
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        <FONT CLASS="Else">else</FONT>
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            MessageFormat msgformat = <FONT CLASS="New">new</FONT> MessageFormat( formatStr );
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            message = msgformat.format( ( (Object) ( objArray ) ) );
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        <FONT CLASS="Return">return</FONT> message;
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>    }
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>}
+<FONT CLASS="LN">12</FONT><A NAME="112"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/ValidationException.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/ValidationException.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/ValidationException.java.html	(revision 14989)
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.ValidationException (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ValidationException.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../org.tp23.antinstaller.index.html" target="packageFrame">org.tp23.antinstaller</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> *
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * &lt;p&gt;Thrown if there is a failure during validation of human entered input. &lt;/p&gt;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @author Paul Hinds
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * @version $Id: ValidationException.java,v 1.1.1.1 2005/10/18 18:20:52 teknopaul Exp $
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ValidationException <FONT CLASS="Extends">extends</FONT> <A HREF="../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>{
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Public">public</FONT> ValidationException() {
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    }
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Public">public</FONT> ValidationException(String message) {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>        <FONT CLASS="Super">super</FONT>(message);
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Public">public</FONT> ValidationException(String message,Throwable cause) {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>        <FONT CLASS="Super">super</FONT>(message,cause);
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    }
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>}
+<FONT CLASS="LN">33</FONT><A NAME="33"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/FeedbackListener.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/FeedbackListener.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/FeedbackListener.java.html	(revision 14989)
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.FeedbackListener (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">FeedbackListener.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.antmod.index.html" target="packageFrame">org.tp23.antinstaller.antmod</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildEvent;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildListener;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">org.tp23.antinstaller.renderer.swing.SwingInstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> *
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * &lt;p&gt;Reports a message in the swing UI this mesage is reported in the
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * top of the window. &lt;/p&gt;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * &lt;p&gt;The Listeners should apparently never uses System.out or System.err&lt;/p&gt;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * This class is not really an Ant modification since it simply implements
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * a public interface but is here on the offchance that one day Ant changes
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * it's APIs
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @author Paul Hinds
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @version $Id: FeedbackListener.java,v 1.1.1.1 2005/10/18 18:20:52 teknopaul Exp $
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> */</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> FeedbackListener <FONT CLASS="Implements">implements</FONT> BuildListener{
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">SwingInstallerContext</A> swingCtx;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> FeedbackListener(<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">SwingInstallerContext</A> swingCtx) {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="This">this</FONT>.swingCtx=swingCtx;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>     * buildStarted This event results in User notification
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>     *
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>     * @param buildEvent BuildEvent
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     */</FONT>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> buildStarted(BuildEvent buildEvent) {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="SingleLineComment">//swingCtx.provideAntFeedBack(buildEvent.getMessage());
+<FONT CLASS="LN">50</FONT><A NAME="50"></A></FONT>        swingCtx.buildStarted(buildEvent);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>     * buildFinished This event results in User notification
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>     *
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>     * @param buildEvent BuildEvent
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>     */</FONT>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> buildFinished(BuildEvent buildEvent) {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        swingCtx.provideAntFeedBack(res.getString(<FONT CLASS="StringLiteral">"installFinished"</FONT>));
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        swingCtx.buildFinished(buildEvent);
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>     * targetStarted This event results in User notification
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>     *
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     * @param buildEvent BuildEvent
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     */</FONT>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> targetStarted(BuildEvent buildEvent) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        swingCtx.provideAntFeedBack(res.getString(<FONT CLASS="StringLiteral">"running"</FONT>)+buildEvent.getTarget());
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        swingCtx.targetStarted(buildEvent);
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>     * targetFinished This event is ignored
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>     * @param buildEvent BuildEvent
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>     */</FONT>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> targetFinished(BuildEvent buildEvent) {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        swingCtx.targetFinished(buildEvent);
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>     * taskStarted This event is ignored
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>     * @param buildEvent BuildEvent
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>     */</FONT>
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> taskStarted(BuildEvent buildEvent) {
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        <FONT CLASS="SingleLineComment">//swingCtx.provideAntFeedBack(buildEvent.getMessage());
+<FONT CLASS="LN">87</FONT><A NAME="87"></A></FONT>    }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>     * taskFinished This event is ignored
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>     * @param buildEvent BuildEvent
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>     */</FONT>
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> taskFinished(BuildEvent buildEvent) {
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="SingleLineComment">//swingCtx.provideAntFeedBack(buildEvent.getMessage());
+<FONT CLASS="LN">95</FONT><A NAME="95"></A></FONT>    }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>     * messageLogged This event is ignored
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>     * @param buildEvent BuildEvent
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>     */</FONT>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> messageLogged(BuildEvent buildEvent) {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        <FONT CLASS="SingleLineComment">//swingCtx.provideAntFeedBack(buildEvent.getMessage());
+<FONT CLASS="LN">03</FONT><A NAME="103"></A></FONT>    }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>}
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java.html	(revision 14989)
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.Jdk14RegexpMatcher (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Jdk14RegexpMatcher.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright  2001-2004 The Apache Software Foundation
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> *  Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *  you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> *  You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> *      http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> *  Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> *  distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> *  See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> *  limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> *
+<FONT CLASS="LN">16</FONT><A NAME="16"></A> */</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.antmod.index.html" target="packageFrame">org.tp23.antinstaller.antmod</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.Vector;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.regex.Matcher;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.regex.Pattern;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.regex.PatternSyntaxException;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.util.regexp.RegexpMatcher;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.util.regexp.RegexpUtil;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * Implementation of RegexpMatcher for the built-in regexp matcher of
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * JDK 1.4. UNIX_LINES option is enabled as a default.
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> *
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> */</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> Jdk14RegexpMatcher <FONT CLASS="Implements">implements</FONT> RegexpMatcher {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> String pattern;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> Jdk14RegexpMatcher() {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>     * Set the regexp pattern from the String description.
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>     */</FONT>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setPattern(String pattern) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="This">this</FONT>.pattern = pattern;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     * Get a String representation of the regexp pattern
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> String getPattern() {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="Return">return</FONT> pattern;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Protected">protected</FONT> Pattern getCompiledPattern(<FONT CLASS="Int">int</FONT> options)
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="Int">int</FONT> cOptions = getCompilerOptions(options);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            Pattern p = Pattern.compile(<FONT CLASS="This">this</FONT>.pattern, cOptions);
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            <FONT CLASS="Return">return</FONT> p;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        } <FONT CLASS="Catch">catch</FONT> (PatternSyntaxException e) {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(e);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     * Does the given argument match the pattern?
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>     */</FONT>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> matches(String argument) <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="Return">return</FONT> matches(argument, MATCH_DEFAULT);
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>     * Does the given argument match the pattern?
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>     */</FONT>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> matches(String input, <FONT CLASS="Int">int</FONT> options)
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            Pattern p = getCompiledPattern(options);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            <FONT CLASS="Return">return</FONT> p.matcher(input).find();
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(e);
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>     * Returns a Vector of matched groups found in the argument.
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>     *
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>     * &lt;p&gt;Group 0 will be the full match, the rest are the
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>     * parenthesized subexpressions&lt;/p&gt;.
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>     */</FONT>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="Public">public</FONT> Vector getGroups(String argument) <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="Return">return</FONT> getGroups(argument, MATCH_DEFAULT);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>     * Returns a Vector of matched groups found in the argument.
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>     *
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>     * &lt;p&gt;Group 0 will be the full match, the rest are the
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>     * parenthesized subexpressions&lt;/p&gt;.
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>     */</FONT>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="Public">public</FONT> Vector getGroups(String input, <FONT CLASS="Int">int</FONT> options)
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        Pattern p = getCompiledPattern(options);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        Matcher matcher = p.matcher(input);
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        <FONT CLASS="If">if</FONT> (!matcher.find()) {
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        Vector v = <FONT CLASS="New">new</FONT> Vector();
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        <FONT CLASS="Int">int</FONT> cnt = matcher.groupCount();
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt;= cnt; i++) {
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            String match = matcher.group(i);
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>            <FONT CLASS="SingleLineComment">// treat non-matching groups as empty matches
+<FONT CLASS="LN">14</FONT><A NAME="114"></A></FONT>            <FONT CLASS="If">if</FONT> (match == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>                match = <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            }
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>            v.addElement(match);
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        <FONT CLASS="Return">return</FONT> v;
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>    }
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Int">int</FONT> getCompilerOptions(<FONT CLASS="Int">int</FONT> options) {
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        <FONT CLASS="SingleLineComment">// be strict about line separator
+<FONT CLASS="LN">24</FONT><A NAME="124"></A></FONT>        <FONT CLASS="Int">int</FONT> cOptions = Pattern.UNIX_LINES;
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        <FONT CLASS="If">if</FONT> (RegexpUtil.hasFlag(options, MATCH_CASE_INSENSITIVE)) {
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>            cOptions |= Pattern.CASE_INSENSITIVE;
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>        }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        <FONT CLASS="If">if</FONT> (RegexpUtil.hasFlag(options, MATCH_MULTILINE)) {
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>            cOptions |= Pattern.MULTILINE;
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        }
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        <FONT CLASS="If">if</FONT> (RegexpUtil.hasFlag(options, MATCH_SINGLELINE)) {
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            cOptions |= Pattern.DOTALL;
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        <FONT CLASS="Return">return</FONT> cOptions;
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>}
+<FONT CLASS="LN">40</FONT><A NAME="140"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Jdk14RegexpRegexp.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Jdk14RegexpRegexp.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Jdk14RegexpRegexp.java.html	(revision 14989)
@@ -0,0 +1,112 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.Jdk14RegexpRegexp (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Jdk14RegexpRegexp.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright  2001-2004 The Apache Software Foundation
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> *  Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *  you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> *  You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> *      http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> *  Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> *  distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> *  See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> *  limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> *
+<FONT CLASS="LN">16</FONT><A NAME="16"></A> */</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.antmod.index.html" target="packageFrame">org.tp23.antinstaller.antmod</A>;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.regex.Matcher;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.regex.Pattern;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.util.regexp.Regexp;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.util.regexp.RegexpUtil;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="FormalComment">/***
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * Regular expression implementation using the JDK 1.4 regular expression package
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> Jdk14RegexpRegexp <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java.html">Jdk14RegexpMatcher</A> <FONT CLASS="Implements">implements</FONT> Regexp {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> Jdk14RegexpRegexp() {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Int">int</FONT> getSubsOptions(<FONT CLASS="Int">int</FONT> options) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Int">int</FONT> subsOptions = REPLACE_FIRST;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="If">if</FONT> (RegexpUtil.hasFlag(options, REPLACE_ALL)) {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            subsOptions = REPLACE_ALL;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Return">return</FONT> subsOptions;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> String substitute(String input, String argument, <FONT CLASS="Int">int</FONT> options)
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="SingleLineComment">// translate \1 to $(1) so that the Matcher will work
+<FONT CLASS="LN">48</FONT><A NAME="48"></A></FONT>        StringBuffer subst = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; argument.length(); i++) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            <FONT CLASS="Char">char</FONT> c = argument.charAt(i);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            <FONT CLASS="If">if</FONT> (c == <FONT CLASS="CharacerLiteral">'$'</FONT>) {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>                subst.append(<FONT CLASS="CharacerLiteral">'\\'</FONT>);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>                subst.append(<FONT CLASS="CharacerLiteral">'$'</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (c == <FONT CLASS="CharacerLiteral">'\\'</FONT>) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>                <FONT CLASS="If">if</FONT> (++i &lt; argument.length()) {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>                    c = argument.charAt(i);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>                    <FONT CLASS="Int">int</FONT> value = Character.digit(c, <FONT CLASS="IntegerLiteral">10</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>                    <FONT CLASS="If">if</FONT> (value &gt; -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>                        subst.append(<FONT CLASS="StringLiteral">"$"</FONT>).append(value);
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>                    } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>                        subst.append(c);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>                    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>                    <FONT CLASS="SingleLineComment">// XXX - should throw an exception instead?
+<FONT CLASS="LN">65</FONT><A NAME="65"></A></FONT>                    subst.append(<FONT CLASS="CharacerLiteral">'\\'</FONT>);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                subst.append(c);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        argument = subst.toString();
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="Int">int</FONT> sOptions = getSubsOptions(options);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        Pattern p = getCompiledPattern(options);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        StringBuffer sb = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        Matcher m = p.matcher(input);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="If">if</FONT> (RegexpUtil.hasFlag(sOptions, REPLACE_ALL)) {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            sb.append(m.replaceAll(argument));
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            <FONT CLASS="Boolean">boolean</FONT> res = m.find();
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="If">if</FONT> (res) {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                m.appendReplacement(sb, argument);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                m.appendTail(sb);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                sb.append(input);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        <FONT CLASS="Return">return</FONT> sb.toString();
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>}
+<FONT CLASS="LN">93</FONT><A NAME="93"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Launcher.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Launcher.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Launcher.java.html	(revision 14989)
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.Launcher (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Launcher.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright  2003-2004 The Apache Software Foundation
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> *  Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *  you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> *  You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> *      http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> *  Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> *  distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> *  See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> *  limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> *
+<FONT CLASS="LN">16</FONT><A NAME="16"></A> */</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.antmod.index.html" target="packageFrame">org.tp23.antinstaller.antmod</A>;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.net.MalformedURLException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.net.URL;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.net.URLClassLoader;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.util.Map;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> java.util.Properties;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> java.util.StringTokenizer;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.launch.LaunchException;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.launch.Locator;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> *  This is a launcher for Ant.
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> *
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * This file has been modified by Paul Hinds for Antinstaller and is not the same
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * as the one delivered with Ant 1.6
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> *
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> * @since Ant 1.6
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * @version $Id: Launcher.java,v 1.1.1.1 2005/10/18 18:20:54 teknopaul Exp $
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> */</FONT>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> Launcher {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="FormalComment">/** The Ant Home property */</FONT>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String ANTHOME_PROPERTY = <FONT CLASS="StringLiteral">"ant.home"</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="FormalComment">/** The Ant Library Directory property */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String ANTLIBDIR_PROPERTY = <FONT CLASS="StringLiteral">"ant.library.dir"</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="FormalComment">/** The location of a per-user library directory */</FONT>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String USER_LIBDIR = <FONT CLASS="StringLiteral">".ant/lib"</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="FormalComment">/** The startup class that is to be run */</FONT>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String MAIN_CLASS = <FONT CLASS="StringLiteral">"org.apache.tools.ant.Main"</FONT>;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> Map allProperties;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     * Addtional Constructor to pass password properties to Ant
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     * without saving them to a file.
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>     * Added by Paul Hinds
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>     * @param allProperties Properties
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>     */</FONT>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Public">public</FONT> Launcher(Map allProperties) {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="This">this</FONT>.allProperties = allProperties;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     * Run the launcher to launch Ant
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>     *
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>     * @param args the command line arguments
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>     *
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>     * @exception MalformedURLException if the URLs required for the classloader
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>     *            cannot be created.
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>     */</FONT>
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> run(String[] args, <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> LaunchException, MalformedURLException {
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            String antHomeProperty = System.getProperty(ANTHOME_PROPERTY);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            File antHome = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            File jarDir = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            File sourceJar = Locator.getClassSource(getClass());
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            jarDir = sourceJar.getParentFile();
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            <FONT CLASS="If">if</FONT> (antHomeProperty != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>                antHome = <FONT CLASS="New">new</FONT> File(antHomeProperty);
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            <FONT CLASS="If">if</FONT> (antHome == <FONT CLASS="Null">null</FONT> || !antHome.exists()) {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                antHome = jarDir.getParentFile();
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                System.setProperty(ANTHOME_PROPERTY, antHome.getAbsolutePath());
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>            <FONT CLASS="If">if</FONT> (!antHome.exists()) {
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> LaunchException(<FONT CLASS="StringLiteral">"Ant home is set incorrectly or ant could not be located"</FONT>);
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            List libPaths = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            List argList = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            String[] newArgs;
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; args.length; ++i) {
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>                <FONT CLASS="If">if</FONT> (args[i].equals(<FONT CLASS="StringLiteral">"-lib"</FONT>)) {
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>                    <FONT CLASS="If">if</FONT> (i == args.length - <FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>                        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> LaunchException(<FONT CLASS="StringLiteral">"The -lib argument must be followed by a library location"</FONT>);
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>                    }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>                    libPaths.add(args[++i]);
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>                }
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                    argList.add(args[i]);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>                }
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>            }
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>            <FONT CLASS="If">if</FONT> (libPaths.size() == <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>                newArgs = args;
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                newArgs = (String[]) argList.toArray(<FONT CLASS="New">new</FONT> String[<FONT CLASS="IntegerLiteral">0</FONT>]);
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>            }
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            List libPathURLs = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            <FONT CLASS="For">for</FONT> (Iterator i = libPaths.iterator(); i.hasNext(); ) {
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                String libPath = (String) i.next();
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>                StringTokenizer myTokenizer
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>                    = <FONT CLASS="New">new</FONT> StringTokenizer(libPath, System.getProperty(<FONT CLASS="StringLiteral">"path.separator"</FONT>));
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>                <FONT CLASS="While">while</FONT> (myTokenizer.hasMoreElements()) {
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>                    String elementName = myTokenizer.nextToken();
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>                    File element = <FONT CLASS="New">new</FONT> File(elementName);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>                    <FONT CLASS="If">if</FONT> (elementName.indexOf(<FONT CLASS="StringLiteral">"%"</FONT>) != -<FONT CLASS="IntegerLiteral">1</FONT> &amp;&amp; !element.exists()) {
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>                        <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>                    }
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>                    <FONT CLASS="If">if</FONT> (element.isDirectory()) {
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>                        <FONT CLASS="SingleLineComment">// add any jars in the directory
+<FONT CLASS="LN">46</FONT><A NAME="146"></A></FONT>                        URL[] dirURLs = Locator.getLocationURLs(element);
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>                        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> j = <FONT CLASS="IntegerLiteral">0</FONT>; j &lt; dirURLs.length; ++j) {
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>                            libPathURLs.add(dirURLs[j]);
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>                        }
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>                    }
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>                    libPathURLs.add(element.toURL());
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>                }
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>            }
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            URL[] libJars = (URL[]) libPathURLs.toArray(<FONT CLASS="New">new</FONT> URL[<FONT CLASS="IntegerLiteral">0</FONT>]);
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>            <FONT CLASS="SingleLineComment">// Now try and find JAVA_HOME
+<FONT CLASS="LN">59</FONT><A NAME="159"></A></FONT>            File toolsJar = Locator.getToolsJar();
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>            <FONT CLASS="SingleLineComment">// determine ant library directory for system jars: use property
+<FONT CLASS="LN">62</FONT><A NAME="162"></A></FONT>            <FONT CLASS="SingleLineComment">// or default using location of ant-launcher.jar
+<FONT CLASS="LN">63</FONT><A NAME="163"></A></FONT>            File antLibDir = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>            String antLibDirProperty = System.getProperty(ANTLIBDIR_PROPERTY);
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>            <FONT CLASS="If">if</FONT> (antLibDirProperty != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>                antLibDir = <FONT CLASS="New">new</FONT> File(antLibDirProperty);
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>            }
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>            <FONT CLASS="If">if</FONT> ( (antLibDir == <FONT CLASS="Null">null</FONT>) || !antLibDir.exists()) {
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>                antLibDir = jarDir;
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>                System.setProperty(ANTLIBDIR_PROPERTY, antLibDir.getAbsolutePath());
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>            }
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>            URL[] systemJars = Locator.getLocationURLs(antLibDir);
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>            File userLibDir
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>                = <FONT CLASS="New">new</FONT> File(System.getProperty(<FONT CLASS="StringLiteral">"user.home"</FONT>), USER_LIBDIR);
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>            URL[] userJars = Locator.getLocationURLs(userLibDir);
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>            <FONT CLASS="Int">int</FONT> numJars = libJars.length + userJars.length + systemJars.length;
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>            <FONT CLASS="If">if</FONT> (toolsJar != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>                numJars++;
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>            }
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>            URL[] jars = <FONT CLASS="New">new</FONT> URL[numJars];
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>            System.arraycopy(libJars, <FONT CLASS="IntegerLiteral">0</FONT>, jars, <FONT CLASS="IntegerLiteral">0</FONT>, libJars.length);
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>            System.arraycopy(userJars, <FONT CLASS="IntegerLiteral">0</FONT>, jars, libJars.length, userJars.length);
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>            System.arraycopy(systemJars, <FONT CLASS="IntegerLiteral">0</FONT>, jars, userJars.length + libJars.length,
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>                             systemJars.length);
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>            <FONT CLASS="If">if</FONT> (toolsJar != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>                jars[jars.length - <FONT CLASS="IntegerLiteral">1</FONT>] = toolsJar.toURL();
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>            }
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>            <FONT CLASS="SingleLineComment">// now update the class.path property
+<FONT CLASS="LN">95</FONT><A NAME="195"></A></FONT>            StringBuffer baseClassPath
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>                = <FONT CLASS="New">new</FONT> StringBuffer(System.getProperty(<FONT CLASS="StringLiteral">"java.class.path"</FONT>));
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>            <FONT CLASS="If">if</FONT> (baseClassPath.charAt(baseClassPath.length() - <FONT CLASS="IntegerLiteral">1</FONT>)
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>                == File.pathSeparatorChar) {
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>                baseClassPath.setLength(baseClassPath.length() - <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>            }
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; jars.length; ++i) {
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>                baseClassPath.append(File.pathSeparatorChar);
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>                baseClassPath.append(Locator.fromURI(jars[i].toString()));
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>            }
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>            System.setProperty(<FONT CLASS="StringLiteral">"java.class.path"</FONT>, baseClassPath.toString());
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>            URLClassLoader loader = <FONT CLASS="New">new</FONT> URLClassLoader(jars);
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>            Thread.currentThread().setContextClassLoader(loader);
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>                <A HREF="../../../../org/tp23/antinstaller/antmod/Main.java.html">Main</A> main = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/Main.java.html">Main</A>();
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>                Properties props = <FONT CLASS="New">new</FONT> Properties();
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>                props.putAll(allProperties);
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>                <FONT CLASS="Return">return</FONT> main.startAnt(newArgs, props, <FONT CLASS="Null">null</FONT>, cxt);
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>            }
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>            <FONT CLASS="Catch">catch</FONT> (Throwable t) {
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>                t.printStackTrace();
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>            }
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>        }
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable ex) {
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>            <FONT CLASS="SingleLineComment">// Essentially all of the above is nice to have as far as AntInstaller is concerned
+<FONT CLASS="LN">24</FONT><A NAME="224"></A></FONT>            <FONT CLASS="SingleLineComment">// ant.home may not be available when installing and application on a client that does not
+<FONT CLASS="LN">25</FONT><A NAME="225"></A></FONT>            <FONT CLASS="SingleLineComment">// have and never will have Ant.  However the code is left since sometimes AntInstaller can be used
+<FONT CLASS="LN">26</FONT><A NAME="226"></A></FONT>            <FONT CLASS="SingleLineComment">// for a general gui for Ant builds and features such and ANT_HOME/lib are useful
+<FONT CLASS="LN">27</FONT><A NAME="227"></A></FONT>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>                System.setProperty(ANTHOME_PROPERTY, <FONT CLASS="New">new</FONT> File(<FONT CLASS="StringLiteral">"."</FONT>).getAbsolutePath());
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>                <A HREF="../../../../org/tp23/antinstaller/antmod/Main.java.html">Main</A> main = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/Main.java.html">Main</A>();
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>                <FONT CLASS="SingleLineComment">// fix for bug:1177191
+<FONT CLASS="LN">31</FONT><A NAME="231"></A></FONT>                <FONT CLASS="SingleLineComment">// remove the -lib as discovered by Mark Anderson
+<FONT CLASS="LN">32</FONT><A NAME="232"></A></FONT>                String[] newArgs = <FONT CLASS="New">new</FONT> String[args.length-<FONT CLASS="IntegerLiteral">2</FONT>];
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>                <FONT CLASS="For">for</FONT>(<FONT CLASS="Int">int</FONT> i=<FONT CLASS="IntegerLiteral">0</FONT>,n=<FONT CLASS="IntegerLiteral">0</FONT>;i&lt;args.length;i++){
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>                    <FONT CLASS="If">if</FONT>(args[i].equals(<FONT CLASS="StringLiteral">"-lib"</FONT>)){
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>                        i++;
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>                        <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>                    }
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>                    newArgs[n++]=args[i];
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>                }
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>                Properties props = <FONT CLASS="New">new</FONT> Properties();
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>                props.putAll(allProperties);
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>                <FONT CLASS="Return">return</FONT> main.startAnt(newArgs, props, <FONT CLASS="Null">null</FONT>, cxt);
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>            }
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>            <FONT CLASS="Catch">catch</FONT> (Throwable t) {
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>                t.printStackTrace();
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>            }
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>}
+<FONT CLASS="LN">51</FONT><A NAME="251"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Main.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Main.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/Main.java.html	(revision 14989)
@@ -0,0 +1,1084 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.Main (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Main.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright  2000-2004 The Apache Software Foundation
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> *  Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *  you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> *  You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> *      http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> *  Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> *  distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> *  See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> *  limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> *
+<FONT CLASS="LN">16</FONT><A NAME="16"></A> */</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.antmod.index.html" target="packageFrame">org.tp23.antinstaller.antmod</A>;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.FileInputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.FileOutputStream;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.util.Enumeration;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.util.Properties;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> java.util.Vector;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildListener;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildLogger;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.DefaultLogger;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Diagnostics;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.ExitStatusException;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Project;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.ProjectHelper;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Target;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.input.DefaultInputHandler;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.input.InputHandler;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.launch.AntMain;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.util.JavaEnvUtils;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/PropertiesFileRenderer.java.html">org.tp23.antinstaller.PropertiesFileRenderer</A>;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * Command line entry point into Ant. This class is entered via the
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> * canonical `public static void main` entry point and reads the
+<FONT CLASS="LN">49</FONT><A NAME="49"></A> * command line arguments. It then assembles and executes an Ant
+<FONT CLASS="LN">50</FONT><A NAME="50"></A> * project.
+<FONT CLASS="LN">51</FONT><A NAME="51"></A> * &lt;p&gt;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A> * If you integrating Ant into some other tool, this is not the class
+<FONT CLASS="LN">53</FONT><A NAME="53"></A> * to use as an entry point. Please see the source code of this
+<FONT CLASS="LN">54</FONT><A NAME="54"></A> * class to see how it manipulates the Ant project classes.
+<FONT CLASS="LN">55</FONT><A NAME="55"></A> *
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>* This file has been modified by Paul Hinds for Antinstaller and is not the same
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>* as the one delivered with Ant 1.6
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>* @version $Id: Main.java,v 1.5 2007/01/12 10:41:48 anothermwilson Exp $
+<FONT CLASS="LN">59</FONT><A NAME="59"></A> */</FONT>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> Main <FONT CLASS="Implements">implements</FONT> AntMain {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="FormalComment">/** The default build file name. */</FONT>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String DEFAULT_BUILD_FILENAME = <FONT CLASS="StringLiteral">"build.xml"</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="FormalComment">/** Our current message output status. Follows Project.MSG_XXX. */</FONT>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> msgOutputLevel = Project.MSG_INFO;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="FormalComment">/** File that we are using for configuration. */</FONT>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Private">private</FONT> File buildFile; <FONT CLASS="MultiLineComment">/* null */</FONT>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="FormalComment">/** Stream to use for logging. */</FONT>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> PrintStream out = System.out;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="FormalComment">/** Stream that we are using for logging error messages. */</FONT>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> PrintStream err = System.err;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    <FONT CLASS="FormalComment">/** The build targets. */</FONT>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="Private">private</FONT> Vector targets = <FONT CLASS="New">new</FONT> Vector();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    <FONT CLASS="FormalComment">/** Set of properties that can be used by tasks. */</FONT>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="Private">private</FONT> Properties definedProps = <FONT CLASS="New">new</FONT> Properties();
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="FormalComment">/** Names of classes to add as listeners to project. */</FONT>
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    <FONT CLASS="Private">private</FONT> Vector listeners = <FONT CLASS="New">new</FONT> Vector(<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="FormalComment">/** File names of property files to load on startup. */</FONT>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="Private">private</FONT> Vector propertyFiles = <FONT CLASS="New">new</FONT> Vector(<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    <FONT CLASS="FormalComment">/** Indicates whether this build is to support interactive input */</FONT>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> allowInput = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="FormalComment">/** keep going mode */</FONT>
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> keepGoingMode = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>     * The Ant logger class. There may be only one logger. It will have
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>     * the right to use the 'out' PrintStream. The class must implements the
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>     * BuildLogger interface.
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>     */</FONT>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    <FONT CLASS="Private">private</FONT> String loggerClassname = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>     * The Ant InputHandler class.  There may be only one input
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>     * handler.
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>     */</FONT>
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>    <FONT CLASS="Private">private</FONT> String inputHandlerClassname = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>     * Whether or not output to the log is to be unadorned.
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>     */</FONT>
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> emacsMode = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>     * Whether or not this instance has successfully been
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>     * constructed and is ready to run.
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>     */</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> readyToRun = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>     * Whether or not we should only parse and display the project help
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>     * information.
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>     */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> projectHelp = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>     * Whether or not a logfile is being used. This is used to
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>     * check if the output streams must be closed.
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>     */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> isLogFileUsed = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>     * optional thread priority
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>     */</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>    <FONT CLASS="Private">private</FONT> Integer threadPriority = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>     * Installer Context
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>     */</FONT>
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>     * Prints the message of the Throwable if it (the message) is not
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>     * &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>     *
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>     * @param t Throwable to print the message of.
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>     *          Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>     */</FONT>
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> printMessage(Throwable t) {
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>        String message = t.getMessage();
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        <FONT CLASS="If">if</FONT> (message != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>            System.err.println(message);
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>        }
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>    }
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>     * Creates a new instance of this class using the
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>     * arguments specified, gives it any extra user properties which have been
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>     * specified, and then runs the build using the classloader provided.
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>     *
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>     * @param args Command line arguments. Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>     * @param additionalUserProperties Any extra properties to use in this
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>     *        build. May be &lt;code&gt;null&lt;/code&gt;, which is the equivalent to
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>     *        passing in an empty set of properties.
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>     * @param coreLoader Classloader used for core classes. May be
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>     *        &lt;code&gt;null&lt;/code&gt; in which case the system classloader is used.
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>     */</FONT>
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> start(String[] args, Properties additionalUserProperties,
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>                             ClassLoader coreLoader) {
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"Required by Ant interface but not used"</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>        <FONT CLASS="SingleLineComment">//Main m = new Main();
+<FONT CLASS="LN">70</FONT><A NAME="170"></A></FONT>        <FONT CLASS="SingleLineComment">//m.startAnt(args, additionalUserProperties, coreLoader);
+<FONT CLASS="LN">71</FONT><A NAME="171"></A></FONT>    }
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>    
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> startAnt(String[] args, Properties additionalUserProperties,
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>                         ClassLoader coreLoader) {
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"Required by Ant interface but not used"</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>        <FONT CLASS="SingleLineComment">//startAnt(args, additionalUserProperties, coreLoader, null); // FindBugs does not like this
+<FONT CLASS="LN">78</FONT><A NAME="178"></A></FONT>    }
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>     * Start Ant
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>     * @param args command line args
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>     * @param additionalUserProperties properties to set beyond those that
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>     *        may be specified on the args list
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>     * @param coreLoader - not used
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>     * @return the return code that was used for System.exit() in the original Ant 
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>     *
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>     * @since Ant 1.6
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>     */</FONT>
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> startAnt(String[] args, Properties additionalUserProperties,
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>                         ClassLoader coreLoader, <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>         <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>         out = ctx.getAntOutputRenderer().getOut();
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>         err = ctx.getAntOutputRenderer().getErr();
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>            Diagnostics.validateVersion();
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>            processArgs(args);
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>        } <FONT CLASS="Catch">catch</FONT> (Throwable exc) {
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>            handleLogfile();
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>            printMessage(exc);
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>        }
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>        <FONT CLASS="If">if</FONT> (additionalUserProperties != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>            <FONT CLASS="For">for</FONT> (Enumeration e = additionalUserProperties.keys();
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>                    e.hasMoreElements();) {
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>                String key = (String) e.nextElement();
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>                String property = additionalUserProperties.getProperty(key);
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>                definedProps.put(key, property);
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>            }
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>        }
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>        <FONT CLASS="SingleLineComment">// expect the worst
+<FONT CLASS="LN">13</FONT><A NAME="213"></A></FONT>        <FONT CLASS="Int">int</FONT> exitCode = <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>                runBuild(coreLoader);
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>                exitCode = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>            } <FONT CLASS="Catch">catch</FONT> (ExitStatusException ese) {
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>                exitCode = ese.getStatus();
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>                <FONT CLASS="If">if</FONT> (exitCode != <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>                    <FONT CLASS="Throw">throw</FONT> ese;
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>                }
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>            }
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>        } <FONT CLASS="Catch">catch</FONT> (BuildException be) {
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>            <FONT CLASS="If">if</FONT> (err != System.err) {
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>                printMessage(be);
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>            }
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>        } <FONT CLASS="Catch">catch</FONT> (Throwable exc) {
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>            exc.printStackTrace();
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>            printMessage(exc);
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>        } <FONT CLASS="Finally">finally</FONT> {
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>            handleLogfile();
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>        }
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>        <FONT CLASS="SingleLineComment">//mod by Paul Hinds
+<FONT CLASS="LN">35</FONT><A NAME="235"></A></FONT>        <FONT CLASS="Return">return</FONT> exitCode;
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>        <FONT CLASS="SingleLineComment">//System.exit(exitCode);
+<FONT CLASS="LN">37</FONT><A NAME="237"></A></FONT>    }
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>     * Close logfiles, if we have been writing to them.
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>     *
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>     * @since Ant 1.6
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>     */</FONT>
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> handleLogfile() {
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>        <FONT CLASS="If">if</FONT> (isLogFileUsed) {
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>            <FONT CLASS="If">if</FONT> (out != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>                    out.close();
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>                } <FONT CLASS="Catch">catch</FONT> (<FONT CLASS="Final">final</FONT> Exception e) {
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>                    <FONT CLASS="SingleLineComment">//ignore
+<FONT CLASS="LN">51</FONT><A NAME="251"></A></FONT>                }
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>            }
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>            <FONT CLASS="If">if</FONT> (err != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>                    err.close();
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>                } <FONT CLASS="Catch">catch</FONT> (<FONT CLASS="Final">final</FONT> Exception e) {
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>                    <FONT CLASS="SingleLineComment">//ignore
+<FONT CLASS="LN">58</FONT><A NAME="258"></A></FONT>                }
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>            }
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>        }
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>     * Command line entry point. This method kicks off the building
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>     * of a project object and executes a build using either a given
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>     * target or the default target.
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>     *
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>     * @param args Command line arguments. Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>     */</FONT>
+<FONT CLASS="LN">70</FONT><A NAME="270"></A><FONT CLASS="SingleLineComment">//    public static void main(String[] args) {
+<FONT CLASS="LN">71</FONT><A NAME="271"></A></FONT><FONT CLASS="SingleLineComment">//        start(args, null, null);
+<FONT CLASS="LN">72</FONT><A NAME="272"></A></FONT><FONT CLASS="SingleLineComment">//    }
+<FONT CLASS="LN">73</FONT><A NAME="273"></A></FONT><FONT CLASS="SingleLineComment">//
+<FONT CLASS="LN">74</FONT><A NAME="274"></A></FONT>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>     * Constructor used when creating Main for later arg processing
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>     * and startup
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>     */</FONT>
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>    <FONT CLASS="Public">public</FONT> Main() {
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>    }
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>     * Sole constructor, which parses and deals with command line
+<FONT CLASS="LN">83</FONT><A NAME="283"></A>     * arguments.
+<FONT CLASS="LN">84</FONT><A NAME="284"></A>     *
+<FONT CLASS="LN">85</FONT><A NAME="285"></A>     * @param args Command line arguments. Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">86</FONT><A NAME="286"></A>     *
+<FONT CLASS="LN">87</FONT><A NAME="287"></A>     * @exception BuildException if the specified build file doesn't exist
+<FONT CLASS="LN">88</FONT><A NAME="288"></A>     *                           or is a directory.
+<FONT CLASS="LN">89</FONT><A NAME="289"></A>     *
+<FONT CLASS="LN">90</FONT><A NAME="290"></A>     * @deprecated
+<FONT CLASS="LN">91</FONT><A NAME="291"></A>     */</FONT>
+<FONT CLASS="LN">92</FONT><A NAME="292"></A>    <FONT CLASS="Protected">protected</FONT> Main(String[] args) <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">93</FONT><A NAME="293"></A>        processArgs(args);
+<FONT CLASS="LN">94</FONT><A NAME="294"></A>    }
+<FONT CLASS="LN">95</FONT><A NAME="295"></A>
+<FONT CLASS="LN">96</FONT><A NAME="296"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">97</FONT><A NAME="297"></A>     * Process command line arguments.
+<FONT CLASS="LN">98</FONT><A NAME="298"></A>     * When ant is started from Launcher, the -lib argument does not get
+<FONT CLASS="LN">99</FONT><A NAME="299"></A>     * passed through to this routine.
+<FONT CLASS="LN">00</FONT><A NAME="300"></A>     *
+<FONT CLASS="LN">01</FONT><A NAME="301"></A>     * @param args the command line arguments.
+<FONT CLASS="LN">02</FONT><A NAME="302"></A>     *
+<FONT CLASS="LN">03</FONT><A NAME="303"></A>     * @since Ant 1.6
+<FONT CLASS="LN">04</FONT><A NAME="304"></A>     */</FONT>
+<FONT CLASS="LN">05</FONT><A NAME="305"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> processArgs(String[] args) {
+<FONT CLASS="LN">06</FONT><A NAME="306"></A>        String searchForThis = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">07</FONT><A NAME="307"></A>        PrintStream logTo = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">08</FONT><A NAME="308"></A>
+<FONT CLASS="LN">09</FONT><A NAME="309"></A>        <FONT CLASS="SingleLineComment">// cycle through given args
+<FONT CLASS="LN">10</FONT><A NAME="310"></A></FONT>
+<FONT CLASS="LN">11</FONT><A NAME="311"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; args.length; i++) {
+<FONT CLASS="LN">12</FONT><A NAME="312"></A>            String arg = args[i];
+<FONT CLASS="LN">13</FONT><A NAME="313"></A>
+<FONT CLASS="LN">14</FONT><A NAME="314"></A>            <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-help"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-h"</FONT>)) {
+<FONT CLASS="LN">15</FONT><A NAME="315"></A>                printUsage();
+<FONT CLASS="LN">16</FONT><A NAME="316"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">17</FONT><A NAME="317"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-version"</FONT>)) {
+<FONT CLASS="LN">18</FONT><A NAME="318"></A>                printVersion();
+<FONT CLASS="LN">19</FONT><A NAME="319"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">20</FONT><A NAME="320"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-diagnostics"</FONT>)) {
+<FONT CLASS="LN">21</FONT><A NAME="321"></A>                Diagnostics.doReport(System.out);
+<FONT CLASS="LN">22</FONT><A NAME="322"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">23</FONT><A NAME="323"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-quiet"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-q"</FONT>)) {
+<FONT CLASS="LN">24</FONT><A NAME="324"></A>                msgOutputLevel = Project.MSG_WARN;
+<FONT CLASS="LN">25</FONT><A NAME="325"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-verbose"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-v"</FONT>)) {
+<FONT CLASS="LN">26</FONT><A NAME="326"></A>                printVersion();
+<FONT CLASS="LN">27</FONT><A NAME="327"></A>                msgOutputLevel = Project.MSG_VERBOSE;
+<FONT CLASS="LN">28</FONT><A NAME="328"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-debug"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-d"</FONT>)) {
+<FONT CLASS="LN">29</FONT><A NAME="329"></A>                printVersion();
+<FONT CLASS="LN">30</FONT><A NAME="330"></A>                msgOutputLevel = Project.MSG_DEBUG;
+<FONT CLASS="LN">31</FONT><A NAME="331"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-noinput"</FONT>)) {
+<FONT CLASS="LN">32</FONT><A NAME="332"></A>                allowInput = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="333"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-logfile"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-l"</FONT>)) {
+<FONT CLASS="LN">34</FONT><A NAME="334"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">35</FONT><A NAME="335"></A>                    File logFile = <FONT CLASS="New">new</FONT> File(args[i + <FONT CLASS="IntegerLiteral">1</FONT>]);
+<FONT CLASS="LN">36</FONT><A NAME="336"></A>                    i++;
+<FONT CLASS="LN">37</FONT><A NAME="337"></A>                    logTo = <FONT CLASS="New">new</FONT> PrintStream(<FONT CLASS="New">new</FONT> FileOutputStream(logFile));
+<FONT CLASS="LN">38</FONT><A NAME="338"></A>                    isLogFileUsed = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">39</FONT><A NAME="339"></A>                } <FONT CLASS="Catch">catch</FONT> (IOException ioe) {
+<FONT CLASS="LN">40</FONT><A NAME="340"></A>                    String msg = <FONT CLASS="StringLiteral">"Cannot write on the specified log file. "</FONT>
+<FONT CLASS="LN">41</FONT><A NAME="341"></A>                        + <FONT CLASS="StringLiteral">"Make sure the path exists and you have write "</FONT>
+<FONT CLASS="LN">42</FONT><A NAME="342"></A>                        + <FONT CLASS="StringLiteral">"permissions."</FONT>;
+<FONT CLASS="LN">43</FONT><A NAME="343"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(msg);
+<FONT CLASS="LN">44</FONT><A NAME="344"></A>                } <FONT CLASS="Catch">catch</FONT> (ArrayIndexOutOfBoundsException aioobe) {
+<FONT CLASS="LN">45</FONT><A NAME="345"></A>                    String msg = <FONT CLASS="StringLiteral">"You must specify a log file when "</FONT>
+<FONT CLASS="LN">46</FONT><A NAME="346"></A>                        + <FONT CLASS="StringLiteral">"using the -log argument"</FONT>;
+<FONT CLASS="LN">47</FONT><A NAME="347"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(msg);
+<FONT CLASS="LN">48</FONT><A NAME="348"></A>                }
+<FONT CLASS="LN">49</FONT><A NAME="349"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-buildfile"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-file"</FONT>)
+<FONT CLASS="LN">50</FONT><A NAME="350"></A>                       || arg.equals(<FONT CLASS="StringLiteral">"-f"</FONT>)) {
+<FONT CLASS="LN">51</FONT><A NAME="351"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">52</FONT><A NAME="352"></A>                    buildFile = <FONT CLASS="New">new</FONT> File(args[i + <FONT CLASS="IntegerLiteral">1</FONT>].replace(<FONT CLASS="CharacerLiteral">'/'</FONT>, File.separatorChar));
+<FONT CLASS="LN">53</FONT><A NAME="353"></A>                    i++;
+<FONT CLASS="LN">54</FONT><A NAME="354"></A>                } <FONT CLASS="Catch">catch</FONT> (ArrayIndexOutOfBoundsException aioobe) {
+<FONT CLASS="LN">55</FONT><A NAME="355"></A>                    String msg = <FONT CLASS="StringLiteral">"You must specify a buildfile when "</FONT>
+<FONT CLASS="LN">56</FONT><A NAME="356"></A>                        + <FONT CLASS="StringLiteral">"using the -buildfile argument"</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="357"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(msg);
+<FONT CLASS="LN">58</FONT><A NAME="358"></A>                }
+<FONT CLASS="LN">59</FONT><A NAME="359"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-listener"</FONT>)) {
+<FONT CLASS="LN">60</FONT><A NAME="360"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">61</FONT><A NAME="361"></A>                    listeners.addElement(args[i + <FONT CLASS="IntegerLiteral">1</FONT>]);
+<FONT CLASS="LN">62</FONT><A NAME="362"></A>                    i++;
+<FONT CLASS="LN">63</FONT><A NAME="363"></A>                } <FONT CLASS="Catch">catch</FONT> (ArrayIndexOutOfBoundsException aioobe) {
+<FONT CLASS="LN">64</FONT><A NAME="364"></A>                    String msg = <FONT CLASS="StringLiteral">"You must specify a classname when "</FONT>
+<FONT CLASS="LN">65</FONT><A NAME="365"></A>                        + <FONT CLASS="StringLiteral">"using the -listener argument"</FONT>;
+<FONT CLASS="LN">66</FONT><A NAME="366"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(msg);
+<FONT CLASS="LN">67</FONT><A NAME="367"></A>                }
+<FONT CLASS="LN">68</FONT><A NAME="368"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.startsWith(<FONT CLASS="StringLiteral">"-D"</FONT>)) {
+<FONT CLASS="LN">69</FONT><A NAME="369"></A>
+<FONT CLASS="LN">70</FONT><A NAME="370"></A>                <FONT CLASS="MultiLineComment">/* Interestingly enough, we get to here when a user
+<FONT CLASS="LN">71</FONT><A NAME="371"></A>                 * uses -Dname=value. However, in some cases, the OS
+<FONT CLASS="LN">72</FONT><A NAME="372"></A>                 * goes ahead and parses this out to args
+<FONT CLASS="LN">73</FONT><A NAME="373"></A>                 *   {"-Dname", "value"}
+<FONT CLASS="LN">74</FONT><A NAME="374"></A>                 * so instead of parsing on "=", we just make the "-D"
+<FONT CLASS="LN">75</FONT><A NAME="375"></A>                 * characters go away and skip one argument forward.
+<FONT CLASS="LN">76</FONT><A NAME="376"></A>                 *
+<FONT CLASS="LN">77</FONT><A NAME="377"></A>                 * I don't know how to predict when the JDK is going
+<FONT CLASS="LN">78</FONT><A NAME="378"></A>                 * to help or not, so we simply look for the equals sign.
+<FONT CLASS="LN">79</FONT><A NAME="379"></A>                 */</FONT>
+<FONT CLASS="LN">80</FONT><A NAME="380"></A>
+<FONT CLASS="LN">81</FONT><A NAME="381"></A>                String name = arg.substring(<FONT CLASS="IntegerLiteral">2</FONT>, arg.length());
+<FONT CLASS="LN">82</FONT><A NAME="382"></A>                String value = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">83</FONT><A NAME="383"></A>                <FONT CLASS="Int">int</FONT> posEq = name.indexOf(<FONT CLASS="StringLiteral">"="</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="384"></A>                <FONT CLASS="If">if</FONT> (posEq &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">85</FONT><A NAME="385"></A>                    value = name.substring(posEq + <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">86</FONT><A NAME="386"></A>                    name = name.substring(<FONT CLASS="IntegerLiteral">0</FONT>, posEq);
+<FONT CLASS="LN">87</FONT><A NAME="387"></A>                } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (i &lt; args.length - <FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">88</FONT><A NAME="388"></A>                    value = args[++i];
+<FONT CLASS="LN">89</FONT><A NAME="389"></A>                } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">90</FONT><A NAME="390"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Missing value for property "</FONT>
+<FONT CLASS="LN">91</FONT><A NAME="391"></A>                                             + name);
+<FONT CLASS="LN">92</FONT><A NAME="392"></A>                }
+<FONT CLASS="LN">93</FONT><A NAME="393"></A>
+<FONT CLASS="LN">94</FONT><A NAME="394"></A>                definedProps.put(name, value);
+<FONT CLASS="LN">95</FONT><A NAME="395"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-logger"</FONT>)) {
+<FONT CLASS="LN">96</FONT><A NAME="396"></A>                <FONT CLASS="If">if</FONT> (loggerClassname != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">97</FONT><A NAME="397"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Only one logger class may "</FONT>
+<FONT CLASS="LN">98</FONT><A NAME="398"></A>                        + <FONT CLASS="StringLiteral">" be specified."</FONT>);
+<FONT CLASS="LN">99</FONT><A NAME="399"></A>                }
+<FONT CLASS="LN">00</FONT><A NAME="400"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">01</FONT><A NAME="401"></A>                    loggerClassname = args[++i];
+<FONT CLASS="LN">02</FONT><A NAME="402"></A>                } <FONT CLASS="Catch">catch</FONT> (ArrayIndexOutOfBoundsException aioobe) {
+<FONT CLASS="LN">03</FONT><A NAME="403"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"You must specify a classname when"</FONT>
+<FONT CLASS="LN">04</FONT><A NAME="404"></A>                                             + <FONT CLASS="StringLiteral">" using the -logger argument"</FONT>);
+<FONT CLASS="LN">05</FONT><A NAME="405"></A>                }
+<FONT CLASS="LN">06</FONT><A NAME="406"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-inputhandler"</FONT>)) {
+<FONT CLASS="LN">07</FONT><A NAME="407"></A>                <FONT CLASS="If">if</FONT> (inputHandlerClassname != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">08</FONT><A NAME="408"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Only one input handler class may "</FONT>
+<FONT CLASS="LN">09</FONT><A NAME="409"></A>                                             + <FONT CLASS="StringLiteral">"be specified."</FONT>);
+<FONT CLASS="LN">10</FONT><A NAME="410"></A>                }
+<FONT CLASS="LN">11</FONT><A NAME="411"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">12</FONT><A NAME="412"></A>                    inputHandlerClassname = args[++i];
+<FONT CLASS="LN">13</FONT><A NAME="413"></A>                } <FONT CLASS="Catch">catch</FONT> (ArrayIndexOutOfBoundsException aioobe) {
+<FONT CLASS="LN">14</FONT><A NAME="414"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"You must specify a classname when"</FONT>
+<FONT CLASS="LN">15</FONT><A NAME="415"></A>                                             + <FONT CLASS="StringLiteral">" using the -inputhandler"</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="416"></A>                                             + <FONT CLASS="StringLiteral">" argument"</FONT>);
+<FONT CLASS="LN">17</FONT><A NAME="417"></A>                }
+<FONT CLASS="LN">18</FONT><A NAME="418"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-emacs"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-e"</FONT>)) {
+<FONT CLASS="LN">19</FONT><A NAME="419"></A>                emacsMode = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">20</FONT><A NAME="420"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-projecthelp"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-p"</FONT>)) {
+<FONT CLASS="LN">21</FONT><A NAME="421"></A>                <FONT CLASS="SingleLineComment">// set the flag to display the targets and quit
+<FONT CLASS="LN">22</FONT><A NAME="422"></A></FONT>                projectHelp = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">23</FONT><A NAME="423"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-find"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-s"</FONT>)) {
+<FONT CLASS="LN">24</FONT><A NAME="424"></A>                <FONT CLASS="SingleLineComment">// eat up next arg if present, default to build.xml
+<FONT CLASS="LN">25</FONT><A NAME="425"></A></FONT>                <FONT CLASS="If">if</FONT> (i &lt; args.length - <FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">26</FONT><A NAME="426"></A>                    searchForThis = args[++i];
+<FONT CLASS="LN">27</FONT><A NAME="427"></A>                } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">28</FONT><A NAME="428"></A>                    searchForThis = DEFAULT_BUILD_FILENAME;
+<FONT CLASS="LN">29</FONT><A NAME="429"></A>                }
+<FONT CLASS="LN">30</FONT><A NAME="430"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.startsWith(<FONT CLASS="StringLiteral">"-propertyfile"</FONT>)) {
+<FONT CLASS="LN">31</FONT><A NAME="431"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">32</FONT><A NAME="432"></A>                    propertyFiles.addElement(args[i + <FONT CLASS="IntegerLiteral">1</FONT>]);
+<FONT CLASS="LN">33</FONT><A NAME="433"></A>                    i++;
+<FONT CLASS="LN">34</FONT><A NAME="434"></A>                } <FONT CLASS="Catch">catch</FONT> (ArrayIndexOutOfBoundsException aioobe) {
+<FONT CLASS="LN">35</FONT><A NAME="435"></A>                    String msg = <FONT CLASS="StringLiteral">"You must specify a property filename when "</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="436"></A>                        + <FONT CLASS="StringLiteral">"using the -propertyfile argument"</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="437"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(msg);
+<FONT CLASS="LN">38</FONT><A NAME="438"></A>                }
+<FONT CLASS="LN">39</FONT><A NAME="439"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-k"</FONT>) || arg.equals(<FONT CLASS="StringLiteral">"-keep-going"</FONT>)) {
+<FONT CLASS="LN">40</FONT><A NAME="440"></A>                keepGoingMode = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">41</FONT><A NAME="441"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.equals(<FONT CLASS="StringLiteral">"-nice"</FONT>)) {
+<FONT CLASS="LN">42</FONT><A NAME="442"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">43</FONT><A NAME="443"></A>                    threadPriority=Integer.decode(args[i + <FONT CLASS="IntegerLiteral">1</FONT>]);
+<FONT CLASS="LN">44</FONT><A NAME="444"></A>                } <FONT CLASS="Catch">catch</FONT> (ArrayIndexOutOfBoundsException aioobe) {
+<FONT CLASS="LN">45</FONT><A NAME="445"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(
+<FONT CLASS="LN">46</FONT><A NAME="446"></A>                            <FONT CLASS="StringLiteral">"You must supply a niceness value (1-10)"</FONT>+
+<FONT CLASS="LN">47</FONT><A NAME="447"></A>                            <FONT CLASS="StringLiteral">" after the -nice option"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="448"></A>                } <FONT CLASS="Catch">catch</FONT> (NumberFormatException e) {
+<FONT CLASS="LN">49</FONT><A NAME="449"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Unrecognized niceness value: "</FONT> +
+<FONT CLASS="LN">50</FONT><A NAME="450"></A>                            args[i + <FONT CLASS="IntegerLiteral">1</FONT>]);
+<FONT CLASS="LN">51</FONT><A NAME="451"></A>                }
+<FONT CLASS="LN">52</FONT><A NAME="452"></A>                i++;
+<FONT CLASS="LN">53</FONT><A NAME="453"></A>                <FONT CLASS="If">if</FONT>(threadPriority.intValue()&lt;Thread.MIN_PRIORITY ||
+<FONT CLASS="LN">54</FONT><A NAME="454"></A>                        threadPriority.intValue()&gt;Thread.MAX_PRIORITY) {
+<FONT CLASS="LN">55</FONT><A NAME="455"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(
+<FONT CLASS="LN">56</FONT><A NAME="456"></A>                            <FONT CLASS="StringLiteral">"Niceness value is out of the range 1-10"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="457"></A>                }
+<FONT CLASS="LN">58</FONT><A NAME="458"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (arg.startsWith(<FONT CLASS="StringLiteral">"-"</FONT>)) {
+<FONT CLASS="LN">59</FONT><A NAME="459"></A>                <FONT CLASS="SingleLineComment">// we don't have any more args to recognize!
+<FONT CLASS="LN">60</FONT><A NAME="460"></A></FONT>                String msg = <FONT CLASS="StringLiteral">"Unknown argument: "</FONT> + arg;
+<FONT CLASS="LN">61</FONT><A NAME="461"></A>                System.out.println(msg);
+<FONT CLASS="LN">62</FONT><A NAME="462"></A>                printUsage();
+<FONT CLASS="LN">63</FONT><A NAME="463"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">""</FONT>);
+<FONT CLASS="LN">64</FONT><A NAME="464"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">65</FONT><A NAME="465"></A>                <FONT CLASS="SingleLineComment">// if it's no other arg, it may be the target
+<FONT CLASS="LN">66</FONT><A NAME="466"></A></FONT>                targets.addElement(arg);
+<FONT CLASS="LN">67</FONT><A NAME="467"></A>            }
+<FONT CLASS="LN">68</FONT><A NAME="468"></A>        }
+<FONT CLASS="LN">69</FONT><A NAME="469"></A>
+<FONT CLASS="LN">70</FONT><A NAME="470"></A>        <FONT CLASS="SingleLineComment">// if buildFile was not specified on the command line,
+<FONT CLASS="LN">71</FONT><A NAME="471"></A></FONT>        <FONT CLASS="If">if</FONT> (buildFile == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">72</FONT><A NAME="472"></A>            <FONT CLASS="SingleLineComment">// but -find then search for it
+<FONT CLASS="LN">73</FONT><A NAME="473"></A></FONT>            <FONT CLASS="If">if</FONT> (searchForThis != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">74</FONT><A NAME="474"></A>                buildFile = findBuildFile(System.getProperty(<FONT CLASS="StringLiteral">"user.dir"</FONT>),
+<FONT CLASS="LN">75</FONT><A NAME="475"></A>                                          searchForThis);
+<FONT CLASS="LN">76</FONT><A NAME="476"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">77</FONT><A NAME="477"></A>                buildFile = <FONT CLASS="New">new</FONT> File(DEFAULT_BUILD_FILENAME);
+<FONT CLASS="LN">78</FONT><A NAME="478"></A>            }
+<FONT CLASS="LN">79</FONT><A NAME="479"></A>        }
+<FONT CLASS="LN">80</FONT><A NAME="480"></A>
+<FONT CLASS="LN">81</FONT><A NAME="481"></A>        <FONT CLASS="SingleLineComment">// make sure buildfile exists
+<FONT CLASS="LN">82</FONT><A NAME="482"></A></FONT>        <FONT CLASS="If">if</FONT> (!buildFile.exists()) {
+<FONT CLASS="LN">83</FONT><A NAME="483"></A>            System.out.println(<FONT CLASS="StringLiteral">"Buildfile: "</FONT> + buildFile + <FONT CLASS="StringLiteral">" does not exist!"</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="484"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Build failed"</FONT>);
+<FONT CLASS="LN">85</FONT><A NAME="485"></A>        }
+<FONT CLASS="LN">86</FONT><A NAME="486"></A>
+<FONT CLASS="LN">87</FONT><A NAME="487"></A>        <FONT CLASS="SingleLineComment">// make sure it's not a directory (this falls into the ultra
+<FONT CLASS="LN">88</FONT><A NAME="488"></A></FONT>        <FONT CLASS="SingleLineComment">// paranoid lets check everything category
+<FONT CLASS="LN">89</FONT><A NAME="489"></A></FONT>
+<FONT CLASS="LN">90</FONT><A NAME="490"></A>        <FONT CLASS="If">if</FONT> (buildFile.isDirectory()) {
+<FONT CLASS="LN">91</FONT><A NAME="491"></A>            System.out.println(<FONT CLASS="StringLiteral">"What? Buildfile: "</FONT> + buildFile + <FONT CLASS="StringLiteral">" is a dir!"</FONT>);
+<FONT CLASS="LN">92</FONT><A NAME="492"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Build failed"</FONT>);
+<FONT CLASS="LN">93</FONT><A NAME="493"></A>        }
+<FONT CLASS="LN">94</FONT><A NAME="494"></A>
+<FONT CLASS="LN">95</FONT><A NAME="495"></A>        <FONT CLASS="SingleLineComment">// Load the property files specified by -propertyfile
+<FONT CLASS="LN">96</FONT><A NAME="496"></A></FONT>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> propertyFileIndex = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">97</FONT><A NAME="497"></A>             propertyFileIndex &lt; propertyFiles.size();
+<FONT CLASS="LN">98</FONT><A NAME="498"></A>             propertyFileIndex++) {
+<FONT CLASS="LN">99</FONT><A NAME="499"></A>            String filename
+<FONT CLASS="LN">00</FONT><A NAME="500"></A>                = (String) propertyFiles.elementAt(propertyFileIndex);
+<FONT CLASS="LN">01</FONT><A NAME="501"></A>            Properties props = <FONT CLASS="New">new</FONT> Properties();
+<FONT CLASS="LN">02</FONT><A NAME="502"></A>            FileInputStream fis = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">03</FONT><A NAME="503"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">04</FONT><A NAME="504"></A>                fis = <FONT CLASS="New">new</FONT> FileInputStream(filename);
+<FONT CLASS="LN">05</FONT><A NAME="505"></A>                props.load(fis);
+<FONT CLASS="LN">06</FONT><A NAME="506"></A>            } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">07</FONT><A NAME="507"></A>                System.out.println(<FONT CLASS="StringLiteral">"Could not load property file "</FONT>
+<FONT CLASS="LN">08</FONT><A NAME="508"></A>                   + filename + <FONT CLASS="StringLiteral">": "</FONT> + e.getMessage());
+<FONT CLASS="LN">09</FONT><A NAME="509"></A>            } <FONT CLASS="Finally">finally</FONT> {
+<FONT CLASS="LN">10</FONT><A NAME="510"></A>                <FONT CLASS="If">if</FONT> (fis != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">11</FONT><A NAME="511"></A>                    <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">12</FONT><A NAME="512"></A>                        fis.close();
+<FONT CLASS="LN">13</FONT><A NAME="513"></A>                    } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">14</FONT><A NAME="514"></A>                        <FONT CLASS="SingleLineComment">// ignore
+<FONT CLASS="LN">15</FONT><A NAME="515"></A></FONT>                    }
+<FONT CLASS="LN">16</FONT><A NAME="516"></A>                }
+<FONT CLASS="LN">17</FONT><A NAME="517"></A>            }
+<FONT CLASS="LN">18</FONT><A NAME="518"></A>
+<FONT CLASS="LN">19</FONT><A NAME="519"></A>            <FONT CLASS="SingleLineComment">// ensure that -D properties take precedence
+<FONT CLASS="LN">20</FONT><A NAME="520"></A></FONT>            Enumeration propertyNames = props.propertyNames();
+<FONT CLASS="LN">21</FONT><A NAME="521"></A>            <FONT CLASS="While">while</FONT> (propertyNames.hasMoreElements()) {
+<FONT CLASS="LN">22</FONT><A NAME="522"></A>                String name = (String) propertyNames.nextElement();
+<FONT CLASS="LN">23</FONT><A NAME="523"></A>                <FONT CLASS="If">if</FONT> (definedProps.getProperty(name) == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">24</FONT><A NAME="524"></A>                    definedProps.put(name, props.getProperty(name));
+<FONT CLASS="LN">25</FONT><A NAME="525"></A>                }
+<FONT CLASS="LN">26</FONT><A NAME="526"></A>            }
+<FONT CLASS="LN">27</FONT><A NAME="527"></A>        }
+<FONT CLASS="LN">28</FONT><A NAME="528"></A>
+<FONT CLASS="LN">29</FONT><A NAME="529"></A>        <FONT CLASS="If">if</FONT> (msgOutputLevel &gt;= Project.MSG_INFO) {
+<FONT CLASS="LN">30</FONT><A NAME="530"></A>            System.out.println(<FONT CLASS="StringLiteral">"Buildfile: "</FONT> + buildFile);
+<FONT CLASS="LN">31</FONT><A NAME="531"></A>        }
+<FONT CLASS="LN">32</FONT><A NAME="532"></A>
+<FONT CLASS="LN">33</FONT><A NAME="533"></A>        <FONT CLASS="If">if</FONT> (logTo != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">34</FONT><A NAME="534"></A>            out = logTo;
+<FONT CLASS="LN">35</FONT><A NAME="535"></A>            err = logTo;
+<FONT CLASS="LN">36</FONT><A NAME="536"></A>            System.setOut(out);
+<FONT CLASS="LN">37</FONT><A NAME="537"></A>            System.setErr(err);
+<FONT CLASS="LN">38</FONT><A NAME="538"></A>        }
+<FONT CLASS="LN">39</FONT><A NAME="539"></A>        readyToRun = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">40</FONT><A NAME="540"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="541"></A>
+<FONT CLASS="LN">42</FONT><A NAME="542"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">43</FONT><A NAME="543"></A>     * Helper to get the parent file for a given file.
+<FONT CLASS="LN">44</FONT><A NAME="544"></A>     * &lt;p&gt;
+<FONT CLASS="LN">45</FONT><A NAME="545"></A>     * Added to simulate File.getParentFile() from JDK 1.2.
+<FONT CLASS="LN">46</FONT><A NAME="546"></A>     * @deprecated
+<FONT CLASS="LN">47</FONT><A NAME="547"></A>     *
+<FONT CLASS="LN">48</FONT><A NAME="548"></A>     * @param file   File to find parent of. Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">49</FONT><A NAME="549"></A>     * @return       Parent file or null if none
+<FONT CLASS="LN">50</FONT><A NAME="550"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="551"></A>    <FONT CLASS="Private">private</FONT> File getParentFile(File file) {
+<FONT CLASS="LN">52</FONT><A NAME="552"></A>        File parent = file.getParentFile();
+<FONT CLASS="LN">53</FONT><A NAME="553"></A>
+<FONT CLASS="LN">54</FONT><A NAME="554"></A>        <FONT CLASS="If">if</FONT> (parent != <FONT CLASS="Null">null</FONT> &amp;&amp; msgOutputLevel &gt;= Project.MSG_VERBOSE) {
+<FONT CLASS="LN">55</FONT><A NAME="555"></A>            System.out.println(<FONT CLASS="StringLiteral">"Searching in "</FONT> + parent.getAbsolutePath());
+<FONT CLASS="LN">56</FONT><A NAME="556"></A>        }
+<FONT CLASS="LN">57</FONT><A NAME="557"></A>
+<FONT CLASS="LN">58</FONT><A NAME="558"></A>        <FONT CLASS="Return">return</FONT> parent;
+<FONT CLASS="LN">59</FONT><A NAME="559"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="560"></A>
+<FONT CLASS="LN">61</FONT><A NAME="561"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">62</FONT><A NAME="562"></A>     * Search parent directories for the build file.
+<FONT CLASS="LN">63</FONT><A NAME="563"></A>     * &lt;p&gt;
+<FONT CLASS="LN">64</FONT><A NAME="564"></A>     * Takes the given target as a suffix to append to each
+<FONT CLASS="LN">65</FONT><A NAME="565"></A>     * parent directory in search of a build file.  Once the
+<FONT CLASS="LN">66</FONT><A NAME="566"></A>     * root of the file-system has been reached an exception
+<FONT CLASS="LN">67</FONT><A NAME="567"></A>     * is thrown.
+<FONT CLASS="LN">68</FONT><A NAME="568"></A>     *
+<FONT CLASS="LN">69</FONT><A NAME="569"></A>     * @param start  Leaf directory of search.
+<FONT CLASS="LN">70</FONT><A NAME="570"></A>     *               Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">71</FONT><A NAME="571"></A>     * @param suffix  Suffix filename to look for in parents.
+<FONT CLASS="LN">72</FONT><A NAME="572"></A>     *                Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">73</FONT><A NAME="573"></A>     *
+<FONT CLASS="LN">74</FONT><A NAME="574"></A>     * @return A handle to the build file if one is found
+<FONT CLASS="LN">75</FONT><A NAME="575"></A>     *
+<FONT CLASS="LN">76</FONT><A NAME="576"></A>     * @exception BuildException if no build file is found
+<FONT CLASS="LN">77</FONT><A NAME="577"></A>     */</FONT>
+<FONT CLASS="LN">78</FONT><A NAME="578"></A>    <FONT CLASS="Private">private</FONT> File findBuildFile(String start, String suffix)
+<FONT CLASS="LN">79</FONT><A NAME="579"></A>         <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">80</FONT><A NAME="580"></A>        <FONT CLASS="If">if</FONT> (msgOutputLevel &gt;= Project.MSG_INFO) {
+<FONT CLASS="LN">81</FONT><A NAME="581"></A>            System.out.println(<FONT CLASS="StringLiteral">"Searching for "</FONT> + suffix + <FONT CLASS="StringLiteral">" ..."</FONT>);
+<FONT CLASS="LN">82</FONT><A NAME="582"></A>        }
+<FONT CLASS="LN">83</FONT><A NAME="583"></A>
+<FONT CLASS="LN">84</FONT><A NAME="584"></A>        File parent = <FONT CLASS="New">new</FONT> File(<FONT CLASS="New">new</FONT> File(start).getAbsolutePath());
+<FONT CLASS="LN">85</FONT><A NAME="585"></A>        File file = <FONT CLASS="New">new</FONT> File(parent, suffix);
+<FONT CLASS="LN">86</FONT><A NAME="586"></A>
+<FONT CLASS="LN">87</FONT><A NAME="587"></A>        <FONT CLASS="SingleLineComment">// check if the target file exists in the current directory
+<FONT CLASS="LN">88</FONT><A NAME="588"></A></FONT>        <FONT CLASS="While">while</FONT> (!file.exists()) {
+<FONT CLASS="LN">89</FONT><A NAME="589"></A>            <FONT CLASS="SingleLineComment">// change to parent directory
+<FONT CLASS="LN">90</FONT><A NAME="590"></A></FONT>            parent = getParentFile(parent);
+<FONT CLASS="LN">91</FONT><A NAME="591"></A>
+<FONT CLASS="LN">92</FONT><A NAME="592"></A>            <FONT CLASS="SingleLineComment">// if parent is null, then we are at the root of the fs,
+<FONT CLASS="LN">93</FONT><A NAME="593"></A></FONT>            <FONT CLASS="SingleLineComment">// complain that we can't find the build file.
+<FONT CLASS="LN">94</FONT><A NAME="594"></A></FONT>            <FONT CLASS="If">if</FONT> (parent == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">95</FONT><A NAME="595"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Could not locate a build file!"</FONT>);
+<FONT CLASS="LN">96</FONT><A NAME="596"></A>            }
+<FONT CLASS="LN">97</FONT><A NAME="597"></A>
+<FONT CLASS="LN">98</FONT><A NAME="598"></A>            <FONT CLASS="SingleLineComment">// refresh our file handle
+<FONT CLASS="LN">99</FONT><A NAME="599"></A></FONT>            file = <FONT CLASS="New">new</FONT> File(parent, suffix);
+<FONT CLASS="LN">00</FONT><A NAME="600"></A>        }
+<FONT CLASS="LN">01</FONT><A NAME="601"></A>
+<FONT CLASS="LN">02</FONT><A NAME="602"></A>        <FONT CLASS="Return">return</FONT> file;
+<FONT CLASS="LN">03</FONT><A NAME="603"></A>    }
+<FONT CLASS="LN">04</FONT><A NAME="604"></A>
+<FONT CLASS="LN">05</FONT><A NAME="605"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">06</FONT><A NAME="606"></A>     * Executes the build. If the constructor for this instance failed
+<FONT CLASS="LN">07</FONT><A NAME="607"></A>     * (e.g. returned after issuing a warning), this method returns
+<FONT CLASS="LN">08</FONT><A NAME="608"></A>     * immediately.
+<FONT CLASS="LN">09</FONT><A NAME="609"></A>     *
+<FONT CLASS="LN">10</FONT><A NAME="610"></A>     * @param coreLoader The classloader to use to find core classes.
+<FONT CLASS="LN">11</FONT><A NAME="611"></A>     *                   May be &lt;code&gt;null&lt;/code&gt;, in which case the
+<FONT CLASS="LN">12</FONT><A NAME="612"></A>     *                   system classloader is used.
+<FONT CLASS="LN">13</FONT><A NAME="613"></A>     *
+<FONT CLASS="LN">14</FONT><A NAME="614"></A>     * @exception BuildException if the build fails
+<FONT CLASS="LN">15</FONT><A NAME="615"></A>     */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="616"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> runBuild(ClassLoader coreLoader) <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">17</FONT><A NAME="617"></A>
+<FONT CLASS="LN">18</FONT><A NAME="618"></A>        <FONT CLASS="If">if</FONT> (!readyToRun) {
+<FONT CLASS="LN">19</FONT><A NAME="619"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">20</FONT><A NAME="620"></A>        }
+<FONT CLASS="LN">21</FONT><A NAME="621"></A>
+<FONT CLASS="LN">22</FONT><A NAME="622"></A>        <FONT CLASS="Final">final</FONT> Project project = <FONT CLASS="New">new</FONT> Project();
+<FONT CLASS="LN">23</FONT><A NAME="623"></A>        project.setCoreLoader(coreLoader);
+<FONT CLASS="LN">24</FONT><A NAME="624"></A>
+<FONT CLASS="LN">25</FONT><A NAME="625"></A>        Throwable error = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">26</FONT><A NAME="626"></A>
+<FONT CLASS="LN">27</FONT><A NAME="627"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">28</FONT><A NAME="628"></A>            addBuildListeners(project);
+<FONT CLASS="LN">29</FONT><A NAME="629"></A>            addInputHandler(project);
+<FONT CLASS="LN">30</FONT><A NAME="630"></A>
+<FONT CLASS="LN">31</FONT><A NAME="631"></A>            PrintStream err = System.err;
+<FONT CLASS="LN">32</FONT><A NAME="632"></A>            PrintStream out = System.out;
+<FONT CLASS="LN">33</FONT><A NAME="633"></A>            InputStream in = System.in;
+<FONT CLASS="LN">34</FONT><A NAME="634"></A>
+<FONT CLASS="LN">35</FONT><A NAME="635"></A>            <FONT CLASS="SingleLineComment">// use a system manager that prevents from System.exit()
+<FONT CLASS="LN">36</FONT><A NAME="636"></A></FONT>            <FONT CLASS="SingleLineComment">// only in JDK &gt; 1.1
+<FONT CLASS="LN">37</FONT><A NAME="637"></A></FONT>            SecurityManager oldsm = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">38</FONT><A NAME="638"></A>            <FONT CLASS="If">if</FONT> (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_0)
+<FONT CLASS="LN">39</FONT><A NAME="639"></A>                &amp;&amp; !JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) {
+<FONT CLASS="LN">40</FONT><A NAME="640"></A>                oldsm = System.getSecurityManager();
+<FONT CLASS="LN">41</FONT><A NAME="641"></A>
+<FONT CLASS="LN">42</FONT><A NAME="642"></A>                <FONT CLASS="SingleLineComment">//SecurityManager can not be installed here for backwards
+<FONT CLASS="LN">43</FONT><A NAME="643"></A></FONT>                <FONT CLASS="SingleLineComment">//compatibility reasons (PD). Needs to be loaded prior to
+<FONT CLASS="LN">44</FONT><A NAME="644"></A></FONT>                <FONT CLASS="SingleLineComment">//ant class if we are going to implement it.
+<FONT CLASS="LN">45</FONT><A NAME="645"></A></FONT>                <FONT CLASS="SingleLineComment">//System.setSecurityManager(new NoExitSecurityManager());
+<FONT CLASS="LN">46</FONT><A NAME="646"></A></FONT>            }
+<FONT CLASS="LN">47</FONT><A NAME="647"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">48</FONT><A NAME="648"></A>                <FONT CLASS="If">if</FONT> (allowInput) {
+<FONT CLASS="LN">49</FONT><A NAME="649"></A>                    project.setDefaultInputStream(System.in);
+<FONT CLASS="LN">50</FONT><A NAME="650"></A>                }
+<FONT CLASS="LN">51</FONT><A NAME="651"></A>                <FONT CLASS="SingleLineComment">//System.setIn(new DemuxInputStream(project));
+<FONT CLASS="LN">52</FONT><A NAME="652"></A></FONT>                <FONT CLASS="SingleLineComment">//System.setOut(new PrintStream(new DemuxOutputStream(project, false)));
+<FONT CLASS="LN">53</FONT><A NAME="653"></A></FONT>                <FONT CLASS="SingleLineComment">//System.setErr(new PrintStream(new DemuxOutputStream(project, true)));
+<FONT CLASS="LN">54</FONT><A NAME="654"></A></FONT>
+<FONT CLASS="LN">55</FONT><A NAME="655"></A>
+<FONT CLASS="LN">56</FONT><A NAME="656"></A>                <FONT CLASS="If">if</FONT> (!projectHelp) {
+<FONT CLASS="LN">57</FONT><A NAME="657"></A>                    project.fireBuildStarted();
+<FONT CLASS="LN">58</FONT><A NAME="658"></A>                }
+<FONT CLASS="LN">59</FONT><A NAME="659"></A>
+<FONT CLASS="LN">60</FONT><A NAME="660"></A>                <FONT CLASS="SingleLineComment">// set the thread priorities
+<FONT CLASS="LN">61</FONT><A NAME="661"></A></FONT>                <FONT CLASS="If">if</FONT> (threadPriority != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">62</FONT><A NAME="662"></A>                    <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">63</FONT><A NAME="663"></A>                        project.log(<FONT CLASS="StringLiteral">"Setting Ant's thread priority to "</FONT>
+<FONT CLASS="LN">64</FONT><A NAME="664"></A>                                + threadPriority,Project.MSG_VERBOSE);
+<FONT CLASS="LN">65</FONT><A NAME="665"></A>                        Thread.currentThread().setPriority(threadPriority.intValue());
+<FONT CLASS="LN">66</FONT><A NAME="666"></A>                    } <FONT CLASS="Catch">catch</FONT> (SecurityException swallowed) {
+<FONT CLASS="LN">67</FONT><A NAME="667"></A>                        <FONT CLASS="SingleLineComment">//we cannot set the priority here.
+<FONT CLASS="LN">68</FONT><A NAME="668"></A></FONT>                        project.log(<FONT CLASS="StringLiteral">"A security manager refused to set the -nice value"</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="669"></A>                    }
+<FONT CLASS="LN">70</FONT><A NAME="670"></A>                }
+<FONT CLASS="LN">71</FONT><A NAME="671"></A>
+<FONT CLASS="LN">72</FONT><A NAME="672"></A>                project.init();
+<FONT CLASS="LN">73</FONT><A NAME="673"></A>                project.setUserProperty(<FONT CLASS="StringLiteral">"ant.version"</FONT>, getAntVersion());
+<FONT CLASS="LN">74</FONT><A NAME="674"></A>
+<FONT CLASS="LN">75</FONT><A NAME="675"></A>                <FONT CLASS="SingleLineComment">// set user-define properties
+<FONT CLASS="LN">76</FONT><A NAME="676"></A></FONT>                Enumeration e = definedProps.keys();
+<FONT CLASS="LN">77</FONT><A NAME="677"></A>                <FONT CLASS="While">while</FONT> (e.hasMoreElements()) {
+<FONT CLASS="LN">78</FONT><A NAME="678"></A>                    String arg = (String) e.nextElement();
+<FONT CLASS="LN">79</FONT><A NAME="679"></A>                    String value = (String) definedProps.get(arg);
+<FONT CLASS="LN">80</FONT><A NAME="680"></A>                    project.setUserProperty(arg, value);
+<FONT CLASS="LN">81</FONT><A NAME="681"></A>                }
+<FONT CLASS="LN">82</FONT><A NAME="682"></A>
+<FONT CLASS="LN">83</FONT><A NAME="683"></A>                project.setUserProperty(<FONT CLASS="StringLiteral">"ant.file"</FONT>,
+<FONT CLASS="LN">84</FONT><A NAME="684"></A>                                        buildFile.getAbsolutePath());
+<FONT CLASS="LN">85</FONT><A NAME="685"></A>                project.setKeepGoingMode(keepGoingMode);
+<FONT CLASS="LN">86</FONT><A NAME="686"></A>
+<FONT CLASS="LN">87</FONT><A NAME="687"></A>                ProjectHelper.configureProject(project, buildFile);
+<FONT CLASS="LN">88</FONT><A NAME="688"></A>
+<FONT CLASS="LN">89</FONT><A NAME="689"></A>                project.setBasedir(definedProps.getProperty(PropertiesFileRenderer.FILE_ROOT_PROPERTY));
+<FONT CLASS="LN">90</FONT><A NAME="690"></A>
+<FONT CLASS="LN">91</FONT><A NAME="691"></A>
+<FONT CLASS="LN">92</FONT><A NAME="692"></A>                <FONT CLASS="If">if</FONT> (projectHelp) {
+<FONT CLASS="LN">93</FONT><A NAME="693"></A>                    printDescription(project);
+<FONT CLASS="LN">94</FONT><A NAME="694"></A>                    printTargets(project, msgOutputLevel &gt; Project.MSG_INFO);
+<FONT CLASS="LN">95</FONT><A NAME="695"></A>                    <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">96</FONT><A NAME="696"></A>                }
+<FONT CLASS="LN">97</FONT><A NAME="697"></A>
+<FONT CLASS="LN">98</FONT><A NAME="698"></A>                <FONT CLASS="SingleLineComment">// make sure that we have a target to execute
+<FONT CLASS="LN">99</FONT><A NAME="699"></A></FONT>                <FONT CLASS="If">if</FONT> (targets.size() == <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">00</FONT><A NAME="700"></A>                    <FONT CLASS="If">if</FONT> (project.getDefaultTarget() != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">01</FONT><A NAME="701"></A>                        targets.addElement(project.getDefaultTarget());
+<FONT CLASS="LN">02</FONT><A NAME="702"></A>                    }
+<FONT CLASS="LN">03</FONT><A NAME="703"></A>                }
+<FONT CLASS="LN">04</FONT><A NAME="704"></A>                project.executeTargets(targets);
+<FONT CLASS="LN">05</FONT><A NAME="705"></A>            } <FONT CLASS="Finally">finally</FONT> {
+<FONT CLASS="LN">06</FONT><A NAME="706"></A>                <FONT CLASS="SingleLineComment">// put back the original security manager
+<FONT CLASS="LN">07</FONT><A NAME="707"></A></FONT>                <FONT CLASS="SingleLineComment">//The following will never eval to true. (PD)
+<FONT CLASS="LN">08</FONT><A NAME="708"></A></FONT>                <FONT CLASS="If">if</FONT> (oldsm != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">09</FONT><A NAME="709"></A>                    System.setSecurityManager(oldsm);
+<FONT CLASS="LN">10</FONT><A NAME="710"></A>                }
+<FONT CLASS="LN">11</FONT><A NAME="711"></A>
+<FONT CLASS="LN">12</FONT><A NAME="712"></A>                System.setOut(out);
+<FONT CLASS="LN">13</FONT><A NAME="713"></A>                System.setErr(err);
+<FONT CLASS="LN">14</FONT><A NAME="714"></A>                System.setIn(in);
+<FONT CLASS="LN">15</FONT><A NAME="715"></A>            }
+<FONT CLASS="LN">16</FONT><A NAME="716"></A>        } <FONT CLASS="Catch">catch</FONT> (RuntimeException exc) {
+<FONT CLASS="LN">17</FONT><A NAME="717"></A>            error = exc;
+<FONT CLASS="LN">18</FONT><A NAME="718"></A>            <FONT CLASS="Throw">throw</FONT> exc;
+<FONT CLASS="LN">19</FONT><A NAME="719"></A>        } <FONT CLASS="Catch">catch</FONT> (Error err) {
+<FONT CLASS="LN">20</FONT><A NAME="720"></A>            error = err;
+<FONT CLASS="LN">21</FONT><A NAME="721"></A>            <FONT CLASS="Throw">throw</FONT> err;
+<FONT CLASS="LN">22</FONT><A NAME="722"></A>        } <FONT CLASS="Finally">finally</FONT> {
+<FONT CLASS="LN">23</FONT><A NAME="723"></A>            <FONT CLASS="If">if</FONT> (!projectHelp) {
+<FONT CLASS="LN">24</FONT><A NAME="724"></A>                project.fireBuildFinished(error);
+<FONT CLASS="LN">25</FONT><A NAME="725"></A>            } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (error != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">26</FONT><A NAME="726"></A>                project.log(error.toString(), Project.MSG_ERR);
+<FONT CLASS="LN">27</FONT><A NAME="727"></A>            }
+<FONT CLASS="LN">28</FONT><A NAME="728"></A>        }
+<FONT CLASS="LN">29</FONT><A NAME="729"></A>    }
+<FONT CLASS="LN">30</FONT><A NAME="730"></A>
+<FONT CLASS="LN">31</FONT><A NAME="731"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="732"></A>     * Adds the listeners specified in the command line arguments,
+<FONT CLASS="LN">33</FONT><A NAME="733"></A>     * along with the default listener, to the specified project.
+<FONT CLASS="LN">34</FONT><A NAME="734"></A>     *
+<FONT CLASS="LN">35</FONT><A NAME="735"></A>     * @param project The project to add listeners to.
+<FONT CLASS="LN">36</FONT><A NAME="736"></A>     *                Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">37</FONT><A NAME="737"></A>     */</FONT>
+<FONT CLASS="LN">38</FONT><A NAME="738"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> addBuildListeners(Project project) {
+<FONT CLASS="LN">39</FONT><A NAME="739"></A>
+<FONT CLASS="LN">40</FONT><A NAME="740"></A>        <FONT CLASS="SingleLineComment">// Add the default listener
+<FONT CLASS="LN">41</FONT><A NAME="741"></A></FONT>        project.addBuildListener(createLogger());
+<FONT CLASS="LN">42</FONT><A NAME="742"></A>
+<FONT CLASS="LN">43</FONT><A NAME="743"></A>        <FONT CLASS="SingleLineComment">//Add the AntInstaller Listener
+<FONT CLASS="LN">44</FONT><A NAME="744"></A></FONT>        <FONT CLASS="If">if</FONT>(ctx.getBuildListener()!=<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">45</FONT><A NAME="745"></A>            project.addBuildListener(ctx.getBuildListener());
+<FONT CLASS="LN">46</FONT><A NAME="746"></A>        }
+<FONT CLASS="LN">47</FONT><A NAME="747"></A>
+<FONT CLASS="LN">48</FONT><A NAME="748"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; listeners.size(); i++) {
+<FONT CLASS="LN">49</FONT><A NAME="749"></A>            String className = (String) listeners.elementAt(i);
+<FONT CLASS="LN">50</FONT><A NAME="750"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">51</FONT><A NAME="751"></A>                BuildListener listener =
+<FONT CLASS="LN">52</FONT><A NAME="752"></A>                    (BuildListener) Class.forName(className).newInstance();
+<FONT CLASS="LN">53</FONT><A NAME="753"></A>                <FONT CLASS="If">if</FONT> (project != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">54</FONT><A NAME="754"></A>                    project.setProjectReference(listener);
+<FONT CLASS="LN">55</FONT><A NAME="755"></A>                }
+<FONT CLASS="LN">56</FONT><A NAME="756"></A>                project.addBuildListener(listener);
+<FONT CLASS="LN">57</FONT><A NAME="757"></A>            } <FONT CLASS="Catch">catch</FONT> (Throwable exc) {
+<FONT CLASS="LN">58</FONT><A NAME="758"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Unable to instantiate listener "</FONT>
+<FONT CLASS="LN">59</FONT><A NAME="759"></A>                    + className, exc);
+<FONT CLASS="LN">60</FONT><A NAME="760"></A>            }
+<FONT CLASS="LN">61</FONT><A NAME="761"></A>        }
+<FONT CLASS="LN">62</FONT><A NAME="762"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="763"></A>
+<FONT CLASS="LN">64</FONT><A NAME="764"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">65</FONT><A NAME="765"></A>     * Creates the InputHandler and adds it to the project.
+<FONT CLASS="LN">66</FONT><A NAME="766"></A>     *
+<FONT CLASS="LN">67</FONT><A NAME="767"></A>     * @param project the project instance.
+<FONT CLASS="LN">68</FONT><A NAME="768"></A>     *
+<FONT CLASS="LN">69</FONT><A NAME="769"></A>     * @exception BuildException if a specified InputHandler
+<FONT CLASS="LN">70</FONT><A NAME="770"></A>     *                           implementation could not be loaded.
+<FONT CLASS="LN">71</FONT><A NAME="771"></A>     */</FONT>
+<FONT CLASS="LN">72</FONT><A NAME="772"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> addInputHandler(Project project) <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">73</FONT><A NAME="773"></A>        InputHandler handler = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">74</FONT><A NAME="774"></A>        <FONT CLASS="If">if</FONT> (inputHandlerClassname == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">75</FONT><A NAME="775"></A>            handler = <FONT CLASS="New">new</FONT> DefaultInputHandler();
+<FONT CLASS="LN">76</FONT><A NAME="776"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">77</FONT><A NAME="777"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">78</FONT><A NAME="778"></A>                handler = (InputHandler)
+<FONT CLASS="LN">79</FONT><A NAME="779"></A>                    (Class.forName(inputHandlerClassname).newInstance());
+<FONT CLASS="LN">80</FONT><A NAME="780"></A>                <FONT CLASS="If">if</FONT> (project != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">81</FONT><A NAME="781"></A>                    project.setProjectReference(handler);
+<FONT CLASS="LN">82</FONT><A NAME="782"></A>                }
+<FONT CLASS="LN">83</FONT><A NAME="783"></A>            } <FONT CLASS="Catch">catch</FONT> (ClassCastException e) {
+<FONT CLASS="LN">84</FONT><A NAME="784"></A>                String msg = <FONT CLASS="StringLiteral">"The specified input handler class "</FONT>
+<FONT CLASS="LN">85</FONT><A NAME="785"></A>                    + inputHandlerClassname
+<FONT CLASS="LN">86</FONT><A NAME="786"></A>                    + <FONT CLASS="StringLiteral">" does not implement the InputHandler interface"</FONT>;
+<FONT CLASS="LN">87</FONT><A NAME="787"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(msg);
+<FONT CLASS="LN">88</FONT><A NAME="788"></A>            } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">89</FONT><A NAME="789"></A>                String msg = <FONT CLASS="StringLiteral">"Unable to instantiate specified input handler "</FONT>
+<FONT CLASS="LN">90</FONT><A NAME="790"></A>                    + <FONT CLASS="StringLiteral">"class "</FONT> + inputHandlerClassname + <FONT CLASS="StringLiteral">" : "</FONT>
+<FONT CLASS="LN">91</FONT><A NAME="791"></A>                    + e.getClass().getName();
+<FONT CLASS="LN">92</FONT><A NAME="792"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(msg);
+<FONT CLASS="LN">93</FONT><A NAME="793"></A>            }
+<FONT CLASS="LN">94</FONT><A NAME="794"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="795"></A>        project.setInputHandler(handler);
+<FONT CLASS="LN">96</FONT><A NAME="796"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="797"></A>
+<FONT CLASS="LN">98</FONT><A NAME="798"></A>    <FONT CLASS="SingleLineComment">// XXX: (Jon Skeet) Any reason for writing a message and then using a bare
+<FONT CLASS="LN">99</FONT><A NAME="799"></A></FONT>    <FONT CLASS="SingleLineComment">// RuntimeException rather than just using a BuildException here? Is it
+<FONT CLASS="LN">00</FONT><A NAME="800"></A></FONT>    <FONT CLASS="SingleLineComment">// in case the message could end up being written to no loggers (as the
+<FONT CLASS="LN">01</FONT><A NAME="801"></A></FONT>    <FONT CLASS="SingleLineComment">// loggers could have failed to be created due to this failure)?
+<FONT CLASS="LN">02</FONT><A NAME="802"></A></FONT>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">03</FONT><A NAME="803"></A>     * Creates the default build logger for sending build events to the ant
+<FONT CLASS="LN">04</FONT><A NAME="804"></A>     * log.
+<FONT CLASS="LN">05</FONT><A NAME="805"></A>     *
+<FONT CLASS="LN">06</FONT><A NAME="806"></A>     * @return the logger instance for this build.
+<FONT CLASS="LN">07</FONT><A NAME="807"></A>     */</FONT>
+<FONT CLASS="LN">08</FONT><A NAME="808"></A>    <FONT CLASS="Private">private</FONT> BuildLogger createLogger() {
+<FONT CLASS="LN">09</FONT><A NAME="809"></A>        BuildLogger logger = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">10</FONT><A NAME="810"></A>        <FONT CLASS="If">if</FONT> (loggerClassname != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">11</FONT><A NAME="811"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">12</FONT><A NAME="812"></A>                Class loggerClass = Class.forName(loggerClassname);
+<FONT CLASS="LN">13</FONT><A NAME="813"></A>                logger = (BuildLogger) (loggerClass.newInstance());
+<FONT CLASS="LN">14</FONT><A NAME="814"></A>            } <FONT CLASS="Catch">catch</FONT> (ClassCastException e) {
+<FONT CLASS="LN">15</FONT><A NAME="815"></A>                System.err.println(<FONT CLASS="StringLiteral">"The specified logger class "</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="816"></A>                    + loggerClassname
+<FONT CLASS="LN">17</FONT><A NAME="817"></A>                    + <FONT CLASS="StringLiteral">" does not implement the BuildLogger interface"</FONT>);
+<FONT CLASS="LN">18</FONT><A NAME="818"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> RuntimeException();
+<FONT CLASS="LN">19</FONT><A NAME="819"></A>            } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">20</FONT><A NAME="820"></A>                System.err.println(<FONT CLASS="StringLiteral">"Unable to instantiate specified logger "</FONT>
+<FONT CLASS="LN">21</FONT><A NAME="821"></A>                    + <FONT CLASS="StringLiteral">"class "</FONT> + loggerClassname + <FONT CLASS="StringLiteral">" : "</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="822"></A>                    + e.getClass().getName());
+<FONT CLASS="LN">23</FONT><A NAME="823"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> RuntimeException();
+<FONT CLASS="LN">24</FONT><A NAME="824"></A>            }
+<FONT CLASS="LN">25</FONT><A NAME="825"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">26</FONT><A NAME="826"></A>            logger = <FONT CLASS="New">new</FONT> DefaultLogger();
+<FONT CLASS="LN">27</FONT><A NAME="827"></A>        }
+<FONT CLASS="LN">28</FONT><A NAME="828"></A>
+<FONT CLASS="LN">29</FONT><A NAME="829"></A>        logger.setMessageOutputLevel(msgOutputLevel);
+<FONT CLASS="LN">30</FONT><A NAME="830"></A>        logger.setOutputPrintStream(out);
+<FONT CLASS="LN">31</FONT><A NAME="831"></A>        logger.setErrorPrintStream(err);
+<FONT CLASS="LN">32</FONT><A NAME="832"></A>        logger.setEmacsMode(emacsMode);
+<FONT CLASS="LN">33</FONT><A NAME="833"></A>
+<FONT CLASS="LN">34</FONT><A NAME="834"></A>        <FONT CLASS="Return">return</FONT> logger;
+<FONT CLASS="LN">35</FONT><A NAME="835"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="836"></A>
+<FONT CLASS="LN">37</FONT><A NAME="837"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="838"></A>     * Prints the usage information for this class to &lt;code&gt;System.out&lt;/code&gt;.
+<FONT CLASS="LN">39</FONT><A NAME="839"></A>     */</FONT>
+<FONT CLASS="LN">40</FONT><A NAME="840"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> printUsage() {
+<FONT CLASS="LN">41</FONT><A NAME="841"></A>        String lSep = System.getProperty(<FONT CLASS="StringLiteral">"line.separator"</FONT>);
+<FONT CLASS="LN">42</FONT><A NAME="842"></A>        StringBuffer msg = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">43</FONT><A NAME="843"></A>        msg.append(<FONT CLASS="StringLiteral">"ant [options] [target [target2 [target3] ...]]"</FONT> + lSep);
+<FONT CLASS="LN">44</FONT><A NAME="844"></A>        msg.append(<FONT CLASS="StringLiteral">"Options: "</FONT> + lSep);
+<FONT CLASS="LN">45</FONT><A NAME="845"></A>        msg.append(<FONT CLASS="StringLiteral">"  -help, -h              print this message"</FONT> + lSep);
+<FONT CLASS="LN">46</FONT><A NAME="846"></A>        msg.append(<FONT CLASS="StringLiteral">"  -projecthelp, -p       print project help information"</FONT> + lSep);
+<FONT CLASS="LN">47</FONT><A NAME="847"></A>        msg.append(<FONT CLASS="StringLiteral">"  -version               print the version information and exit"</FONT> + lSep);
+<FONT CLASS="LN">48</FONT><A NAME="848"></A>        msg.append(<FONT CLASS="StringLiteral">"  -diagnostics           print information that might be helpful to"</FONT> + lSep);
+<FONT CLASS="LN">49</FONT><A NAME="849"></A>        msg.append(<FONT CLASS="StringLiteral">"                         diagnose or report problems."</FONT> + lSep);
+<FONT CLASS="LN">50</FONT><A NAME="850"></A>        msg.append(<FONT CLASS="StringLiteral">"  -quiet, -q             be extra quiet"</FONT> + lSep);
+<FONT CLASS="LN">51</FONT><A NAME="851"></A>        msg.append(<FONT CLASS="StringLiteral">"  -verbose, -v           be extra verbose"</FONT> + lSep);
+<FONT CLASS="LN">52</FONT><A NAME="852"></A>        msg.append(<FONT CLASS="StringLiteral">"  -debug, -d             print debugging information"</FONT> + lSep);
+<FONT CLASS="LN">53</FONT><A NAME="853"></A>        msg.append(<FONT CLASS="StringLiteral">"  -emacs, -e             produce logging information without adornments"</FONT> + lSep);
+<FONT CLASS="LN">54</FONT><A NAME="854"></A>        msg.append(<FONT CLASS="StringLiteral">"  -lib &lt;path&gt;            specifies a path to search for jars and classes"</FONT> + lSep);
+<FONT CLASS="LN">55</FONT><A NAME="855"></A>        msg.append(<FONT CLASS="StringLiteral">"  -logfile &lt;file&gt;        use given file for log"</FONT> + lSep);
+<FONT CLASS="LN">56</FONT><A NAME="856"></A>        msg.append(<FONT CLASS="StringLiteral">"    -l     &lt;file&gt;                ''"</FONT> + lSep);
+<FONT CLASS="LN">57</FONT><A NAME="857"></A>        msg.append(<FONT CLASS="StringLiteral">"  -logger &lt;classname&gt;    the class which is to perform logging"</FONT> + lSep);
+<FONT CLASS="LN">58</FONT><A NAME="858"></A>        msg.append(<FONT CLASS="StringLiteral">"  -listener &lt;classname&gt;  add an instance of class as a project listener"</FONT> + lSep);
+<FONT CLASS="LN">59</FONT><A NAME="859"></A>        msg.append(<FONT CLASS="StringLiteral">"  -noinput               do not allow interactive input"</FONT> + lSep);
+<FONT CLASS="LN">60</FONT><A NAME="860"></A>        msg.append(<FONT CLASS="StringLiteral">"  -buildfile &lt;file&gt;      use given buildfile"</FONT> + lSep);
+<FONT CLASS="LN">61</FONT><A NAME="861"></A>        msg.append(<FONT CLASS="StringLiteral">"    -file    &lt;file&gt;              ''"</FONT> + lSep);
+<FONT CLASS="LN">62</FONT><A NAME="862"></A>        msg.append(<FONT CLASS="StringLiteral">"    -f       &lt;file&gt;              ''"</FONT> + lSep);
+<FONT CLASS="LN">63</FONT><A NAME="863"></A>        msg.append(<FONT CLASS="StringLiteral">"  -D&lt;property&gt;=&lt;value&gt;   use value for given property"</FONT> + lSep);
+<FONT CLASS="LN">64</FONT><A NAME="864"></A>        msg.append(<FONT CLASS="StringLiteral">"  -keep-going, -k        execute all targets that do not depend"</FONT> + lSep);
+<FONT CLASS="LN">65</FONT><A NAME="865"></A>        msg.append(<FONT CLASS="StringLiteral">"                         on failed target(s)"</FONT> + lSep);
+<FONT CLASS="LN">66</FONT><A NAME="866"></A>        msg.append(<FONT CLASS="StringLiteral">"  -propertyfile &lt;name&gt;   load all properties from file with -D"</FONT> + lSep);
+<FONT CLASS="LN">67</FONT><A NAME="867"></A>        msg.append(<FONT CLASS="StringLiteral">"                         properties taking precedence"</FONT> + lSep);
+<FONT CLASS="LN">68</FONT><A NAME="868"></A>        msg.append(<FONT CLASS="StringLiteral">"  -inputhandler &lt;class&gt;  the class which will handle input requests"</FONT> + lSep);
+<FONT CLASS="LN">69</FONT><A NAME="869"></A>        msg.append(<FONT CLASS="StringLiteral">"  -find &lt;file&gt;           (s)earch for buildfile towards the root of"</FONT> + lSep);
+<FONT CLASS="LN">70</FONT><A NAME="870"></A>        msg.append(<FONT CLASS="StringLiteral">"    -s  &lt;file&gt;           the filesystem and use it"</FONT> + lSep);
+<FONT CLASS="LN">71</FONT><A NAME="871"></A>        msg.append(<FONT CLASS="StringLiteral">"  -nice  number          A niceness value for the main thread:"</FONT> + lSep +
+<FONT CLASS="LN">72</FONT><A NAME="872"></A>                   <FONT CLASS="StringLiteral">"                         1 (lowest) to 10 (highest); 5 is the default"</FONT> + lSep);
+<FONT CLASS="LN">73</FONT><A NAME="873"></A>        System.out.println(msg.toString());
+<FONT CLASS="LN">74</FONT><A NAME="874"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="875"></A>
+<FONT CLASS="LN">76</FONT><A NAME="876"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">77</FONT><A NAME="877"></A>     * Prints the Ant version information to &lt;code&gt;System.out&lt;/code&gt;.
+<FONT CLASS="LN">78</FONT><A NAME="878"></A>     *
+<FONT CLASS="LN">79</FONT><A NAME="879"></A>     * @exception BuildException if the version information is unavailable
+<FONT CLASS="LN">80</FONT><A NAME="880"></A>     */</FONT>
+<FONT CLASS="LN">81</FONT><A NAME="881"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> printVersion() <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">82</FONT><A NAME="882"></A>        System.out.println(getAntVersion());
+<FONT CLASS="LN">83</FONT><A NAME="883"></A>    }
+<FONT CLASS="LN">84</FONT><A NAME="884"></A>
+<FONT CLASS="LN">85</FONT><A NAME="885"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">86</FONT><A NAME="886"></A>     * Cache of the Ant version information when it has been loaded.
+<FONT CLASS="LN">87</FONT><A NAME="887"></A>     */</FONT>
+<FONT CLASS="LN">88</FONT><A NAME="888"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> String antVersion = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">89</FONT><A NAME="889"></A>
+<FONT CLASS="LN">90</FONT><A NAME="890"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">91</FONT><A NAME="891"></A>     * Returns the Ant version information, if available. Once the information
+<FONT CLASS="LN">92</FONT><A NAME="892"></A>     * has been loaded once, it's cached and returned from the cache on future
+<FONT CLASS="LN">93</FONT><A NAME="893"></A>     * calls.
+<FONT CLASS="LN">94</FONT><A NAME="894"></A>     *
+<FONT CLASS="LN">95</FONT><A NAME="895"></A>     * @return the Ant version information as a String
+<FONT CLASS="LN">96</FONT><A NAME="896"></A>     *         (always non-&lt;code&gt;null&lt;/code&gt;)
+<FONT CLASS="LN">97</FONT><A NAME="897"></A>     *
+<FONT CLASS="LN">98</FONT><A NAME="898"></A>     * @exception BuildException if the version information is unavailable
+<FONT CLASS="LN">99</FONT><A NAME="899"></A>     */</FONT>
+<FONT CLASS="LN">00</FONT><A NAME="900"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Synchronized">synchronized</FONT> String getAntVersion() <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">01</FONT><A NAME="901"></A>        <FONT CLASS="If">if</FONT> (antVersion == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">02</FONT><A NAME="902"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">03</FONT><A NAME="903"></A>                Properties props = <FONT CLASS="New">new</FONT> Properties();
+<FONT CLASS="LN">04</FONT><A NAME="904"></A>                InputStream in =
+<FONT CLASS="LN">05</FONT><A NAME="905"></A>                    <A HREF="../../../../org/tp23/antinstaller/antmod/Main.java.html">Main</A>.<FONT CLASS="Class">class</FONT>.getResourceAsStream(<FONT CLASS="StringLiteral">"/org/apache/tools/ant/version.txt"</FONT>);
+<FONT CLASS="LN">06</FONT><A NAME="906"></A>                props.load(in);
+<FONT CLASS="LN">07</FONT><A NAME="907"></A>                in.close();
+<FONT CLASS="LN">08</FONT><A NAME="908"></A>
+<FONT CLASS="LN">09</FONT><A NAME="909"></A>                StringBuffer msg = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">10</FONT><A NAME="910"></A>                msg.append(<FONT CLASS="StringLiteral">"Apache Ant version "</FONT>);
+<FONT CLASS="LN">11</FONT><A NAME="911"></A>                msg.append(props.getProperty(<FONT CLASS="StringLiteral">"VERSION"</FONT>));
+<FONT CLASS="LN">12</FONT><A NAME="912"></A>                msg.append(<FONT CLASS="StringLiteral">" compiled on "</FONT>);
+<FONT CLASS="LN">13</FONT><A NAME="913"></A>                msg.append(props.getProperty(<FONT CLASS="StringLiteral">"DATE"</FONT>));
+<FONT CLASS="LN">14</FONT><A NAME="914"></A>                antVersion = msg.toString();
+<FONT CLASS="LN">15</FONT><A NAME="915"></A>            } <FONT CLASS="Catch">catch</FONT> (IOException ioe) {
+<FONT CLASS="LN">16</FONT><A NAME="916"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Could not load the version information:"</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="917"></A>                                         + ioe.getMessage());
+<FONT CLASS="LN">18</FONT><A NAME="918"></A>            } <FONT CLASS="Catch">catch</FONT> (NullPointerException npe) {
+<FONT CLASS="LN">19</FONT><A NAME="919"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Could not load the version information."</FONT>);
+<FONT CLASS="LN">20</FONT><A NAME="920"></A>            }
+<FONT CLASS="LN">21</FONT><A NAME="921"></A>        }
+<FONT CLASS="LN">22</FONT><A NAME="922"></A>        <FONT CLASS="Return">return</FONT> antVersion;
+<FONT CLASS="LN">23</FONT><A NAME="923"></A>    }
+<FONT CLASS="LN">24</FONT><A NAME="924"></A>
+<FONT CLASS="LN">25</FONT><A NAME="925"></A>     <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="926"></A>      * Prints the description of a project (if there is one) to
+<FONT CLASS="LN">27</FONT><A NAME="927"></A>      * &lt;code&gt;System.out&lt;/code&gt;.
+<FONT CLASS="LN">28</FONT><A NAME="928"></A>      *
+<FONT CLASS="LN">29</FONT><A NAME="929"></A>      * @param project The project to display a description of.
+<FONT CLASS="LN">30</FONT><A NAME="930"></A>      *                Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">31</FONT><A NAME="931"></A>      */</FONT>
+<FONT CLASS="LN">32</FONT><A NAME="932"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> printDescription(Project project) {
+<FONT CLASS="LN">33</FONT><A NAME="933"></A>       <FONT CLASS="If">if</FONT> (project.getDescription() != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">34</FONT><A NAME="934"></A>          project.log(project.getDescription());
+<FONT CLASS="LN">35</FONT><A NAME="935"></A>       }
+<FONT CLASS="LN">36</FONT><A NAME="936"></A>    }
+<FONT CLASS="LN">37</FONT><A NAME="937"></A>
+<FONT CLASS="LN">38</FONT><A NAME="938"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">39</FONT><A NAME="939"></A>     * Prints a list of all targets in the specified project to
+<FONT CLASS="LN">40</FONT><A NAME="940"></A>     * &lt;code&gt;System.out&lt;/code&gt;, optionally including subtargets.
+<FONT CLASS="LN">41</FONT><A NAME="941"></A>     *
+<FONT CLASS="LN">42</FONT><A NAME="942"></A>     * @param project The project to display a description of.
+<FONT CLASS="LN">43</FONT><A NAME="943"></A>     *                Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">44</FONT><A NAME="944"></A>     * @param printSubTargets Whether or not subtarget names should also be
+<FONT CLASS="LN">45</FONT><A NAME="945"></A>     *                        printed.
+<FONT CLASS="LN">46</FONT><A NAME="946"></A>     */</FONT>
+<FONT CLASS="LN">47</FONT><A NAME="947"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> printTargets(Project project, <FONT CLASS="Boolean">boolean</FONT> printSubTargets) {
+<FONT CLASS="LN">48</FONT><A NAME="948"></A>        <FONT CLASS="SingleLineComment">// find the target with the longest name
+<FONT CLASS="LN">49</FONT><A NAME="949"></A></FONT>        <FONT CLASS="Int">int</FONT> maxLength = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">50</FONT><A NAME="950"></A>        Enumeration ptargets = project.getTargets().elements();
+<FONT CLASS="LN">51</FONT><A NAME="951"></A>        String targetName;
+<FONT CLASS="LN">52</FONT><A NAME="952"></A>        String targetDescription;
+<FONT CLASS="LN">53</FONT><A NAME="953"></A>        Target currentTarget;
+<FONT CLASS="LN">54</FONT><A NAME="954"></A>        <FONT CLASS="SingleLineComment">// split the targets in top-level and sub-targets depending
+<FONT CLASS="LN">55</FONT><A NAME="955"></A></FONT>        <FONT CLASS="SingleLineComment">// on the presence of a description
+<FONT CLASS="LN">56</FONT><A NAME="956"></A></FONT>        Vector topNames = <FONT CLASS="New">new</FONT> Vector();
+<FONT CLASS="LN">57</FONT><A NAME="957"></A>        Vector topDescriptions = <FONT CLASS="New">new</FONT> Vector();
+<FONT CLASS="LN">58</FONT><A NAME="958"></A>        Vector subNames = <FONT CLASS="New">new</FONT> Vector();
+<FONT CLASS="LN">59</FONT><A NAME="959"></A>
+<FONT CLASS="LN">60</FONT><A NAME="960"></A>        <FONT CLASS="While">while</FONT> (ptargets.hasMoreElements()) {
+<FONT CLASS="LN">61</FONT><A NAME="961"></A>            currentTarget = (Target) ptargets.nextElement();
+<FONT CLASS="LN">62</FONT><A NAME="962"></A>            targetName = currentTarget.getName();
+<FONT CLASS="LN">63</FONT><A NAME="963"></A>            <FONT CLASS="If">if</FONT> (targetName.equals(<FONT CLASS="StringLiteral">""</FONT>)) {
+<FONT CLASS="LN">64</FONT><A NAME="964"></A>                <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="965"></A>            }
+<FONT CLASS="LN">66</FONT><A NAME="966"></A>            targetDescription = currentTarget.getDescription();
+<FONT CLASS="LN">67</FONT><A NAME="967"></A>            <FONT CLASS="SingleLineComment">// maintain a sorted list of targets
+<FONT CLASS="LN">68</FONT><A NAME="968"></A></FONT>            <FONT CLASS="If">if</FONT> (targetDescription == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">69</FONT><A NAME="969"></A>                <FONT CLASS="Int">int</FONT> pos = findTargetPosition(subNames, targetName);
+<FONT CLASS="LN">70</FONT><A NAME="970"></A>                subNames.insertElementAt(targetName, pos);
+<FONT CLASS="LN">71</FONT><A NAME="971"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">72</FONT><A NAME="972"></A>                <FONT CLASS="Int">int</FONT> pos = findTargetPosition(topNames, targetName);
+<FONT CLASS="LN">73</FONT><A NAME="973"></A>                topNames.insertElementAt(targetName, pos);
+<FONT CLASS="LN">74</FONT><A NAME="974"></A>                topDescriptions.insertElementAt(targetDescription, pos);
+<FONT CLASS="LN">75</FONT><A NAME="975"></A>                <FONT CLASS="If">if</FONT> (targetName.length() &gt; maxLength) {
+<FONT CLASS="LN">76</FONT><A NAME="976"></A>                    maxLength = targetName.length();
+<FONT CLASS="LN">77</FONT><A NAME="977"></A>                }
+<FONT CLASS="LN">78</FONT><A NAME="978"></A>            }
+<FONT CLASS="LN">79</FONT><A NAME="979"></A>        }
+<FONT CLASS="LN">80</FONT><A NAME="980"></A>
+<FONT CLASS="LN">81</FONT><A NAME="981"></A>        printTargets(project, topNames, topDescriptions, <FONT CLASS="StringLiteral">"Main targets:"</FONT>,
+<FONT CLASS="LN">82</FONT><A NAME="982"></A>                     maxLength);
+<FONT CLASS="LN">83</FONT><A NAME="983"></A>        <FONT CLASS="SingleLineComment">//if there were no main targets, we list all subtargets
+<FONT CLASS="LN">84</FONT><A NAME="984"></A></FONT>        <FONT CLASS="SingleLineComment">//as it means nothing has a description
+<FONT CLASS="LN">85</FONT><A NAME="985"></A></FONT>        <FONT CLASS="If">if</FONT> (topNames.size() == <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">86</FONT><A NAME="986"></A>            printSubTargets = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">87</FONT><A NAME="987"></A>        }
+<FONT CLASS="LN">88</FONT><A NAME="988"></A>        <FONT CLASS="If">if</FONT> (printSubTargets) {
+<FONT CLASS="LN">89</FONT><A NAME="989"></A>            printTargets(project, subNames, <FONT CLASS="Null">null</FONT>, <FONT CLASS="StringLiteral">"Other targets:"</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">90</FONT><A NAME="990"></A>        }
+<FONT CLASS="LN">91</FONT><A NAME="991"></A>
+<FONT CLASS="LN">92</FONT><A NAME="992"></A>        String defaultTarget = project.getDefaultTarget();
+<FONT CLASS="LN">93</FONT><A NAME="993"></A>        <FONT CLASS="If">if</FONT> (defaultTarget != <FONT CLASS="Null">null</FONT> &amp;&amp; !<FONT CLASS="StringLiteral">""</FONT>.equals(defaultTarget)) {
+<FONT CLASS="LN">94</FONT><A NAME="994"></A>            <FONT CLASS="SingleLineComment">// shouldn't need to check but...
+<FONT CLASS="LN">95</FONT><A NAME="995"></A></FONT>            project.log(<FONT CLASS="StringLiteral">"Default target: "</FONT> + defaultTarget);
+<FONT CLASS="LN">96</FONT><A NAME="996"></A>        }
+<FONT CLASS="LN">97</FONT><A NAME="997"></A>    }
+<FONT CLASS="LN">98</FONT><A NAME="998"></A>
+<FONT CLASS="LN">99</FONT><A NAME="999"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">00</FONT><A NAME="1000"></A>     * Searches for the correct place to insert a name into a list so as
+<FONT CLASS="LN">01</FONT><A NAME="1001"></A>     * to keep the list sorted alphabetically.
+<FONT CLASS="LN">02</FONT><A NAME="1002"></A>     *
+<FONT CLASS="LN">03</FONT><A NAME="1003"></A>     * @param names The current list of names. Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">04</FONT><A NAME="1004"></A>     * @param name  The name to find a place for.
+<FONT CLASS="LN">05</FONT><A NAME="1005"></A>     *              Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">06</FONT><A NAME="1006"></A>     *
+<FONT CLASS="LN">07</FONT><A NAME="1007"></A>     * @return the correct place in the list for the given name
+<FONT CLASS="LN">08</FONT><A NAME="1008"></A>     */</FONT>
+<FONT CLASS="LN">09</FONT><A NAME="1009"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> findTargetPosition(Vector names, String name) {
+<FONT CLASS="LN">10</FONT><A NAME="1010"></A>        <FONT CLASS="Int">int</FONT> res = names.size();
+<FONT CLASS="LN">11</FONT><A NAME="1011"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; names.size() &amp;&amp; res == names.size(); i++) {
+<FONT CLASS="LN">12</FONT><A NAME="1012"></A>            <FONT CLASS="If">if</FONT> (name.compareTo((String) names.elementAt(i)) &lt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">13</FONT><A NAME="1013"></A>                res = i;
+<FONT CLASS="LN">14</FONT><A NAME="1014"></A>            }
+<FONT CLASS="LN">15</FONT><A NAME="1015"></A>        }
+<FONT CLASS="LN">16</FONT><A NAME="1016"></A>        <FONT CLASS="Return">return</FONT> res;
+<FONT CLASS="LN">17</FONT><A NAME="1017"></A>    }
+<FONT CLASS="LN">18</FONT><A NAME="1018"></A>
+<FONT CLASS="LN">19</FONT><A NAME="1019"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="1020"></A>     * Writes a formatted list of target names to &lt;code&gt;System.out&lt;/code&gt;
+<FONT CLASS="LN">21</FONT><A NAME="1021"></A>     * with an optional description.
+<FONT CLASS="LN">22</FONT><A NAME="1022"></A>     *
+<FONT CLASS="LN">23</FONT><A NAME="1023"></A>     *
+<FONT CLASS="LN">24</FONT><A NAME="1024"></A>     * @param project the project instance.
+<FONT CLASS="LN">25</FONT><A NAME="1025"></A>     * @param names The names to be printed.
+<FONT CLASS="LN">26</FONT><A NAME="1026"></A>     *              Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">27</FONT><A NAME="1027"></A>     * @param descriptions The associated target descriptions.
+<FONT CLASS="LN">28</FONT><A NAME="1028"></A>     *                     May be &lt;code&gt;null&lt;/code&gt;, in which case
+<FONT CLASS="LN">29</FONT><A NAME="1029"></A>     *                     no descriptions are displayed.
+<FONT CLASS="LN">30</FONT><A NAME="1030"></A>     *                     If non-&lt;code&gt;null&lt;/code&gt;, this should have
+<FONT CLASS="LN">31</FONT><A NAME="1031"></A>     *                     as many elements as &lt;code&gt;names&lt;/code&gt;.
+<FONT CLASS="LN">32</FONT><A NAME="1032"></A>     * @param heading The heading to display.
+<FONT CLASS="LN">33</FONT><A NAME="1033"></A>     *                Should not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">34</FONT><A NAME="1034"></A>     * @param maxlen The maximum length of the names of the targets.
+<FONT CLASS="LN">35</FONT><A NAME="1035"></A>     *               If descriptions are given, they are padded to this
+<FONT CLASS="LN">36</FONT><A NAME="1036"></A>     *               position so they line up (so long as the names really
+<FONT CLASS="LN">37</FONT><A NAME="1037"></A>     *               &lt;i&gt;are&lt;/i&gt; shorter than this).
+<FONT CLASS="LN">38</FONT><A NAME="1038"></A>     */</FONT>
+<FONT CLASS="LN">39</FONT><A NAME="1039"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> printTargets(Project project, Vector names,
+<FONT CLASS="LN">40</FONT><A NAME="1040"></A>                                     Vector descriptions, String heading,
+<FONT CLASS="LN">41</FONT><A NAME="1041"></A>                                     <FONT CLASS="Int">int</FONT> maxlen) {
+<FONT CLASS="LN">42</FONT><A NAME="1042"></A>        <FONT CLASS="SingleLineComment">// now, start printing the targets and their descriptions
+<FONT CLASS="LN">43</FONT><A NAME="1043"></A></FONT>        String lSep = System.getProperty(<FONT CLASS="StringLiteral">"line.separator"</FONT>);
+<FONT CLASS="LN">44</FONT><A NAME="1044"></A>        <FONT CLASS="SingleLineComment">// got a bit annoyed that I couldn't find a pad function
+<FONT CLASS="LN">45</FONT><A NAME="1045"></A></FONT>        String spaces = <FONT CLASS="StringLiteral">"    "</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="1046"></A>        <FONT CLASS="While">while</FONT> (spaces.length() &lt;= maxlen) {
+<FONT CLASS="LN">47</FONT><A NAME="1047"></A>            spaces += spaces;
+<FONT CLASS="LN">48</FONT><A NAME="1048"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="1049"></A>        StringBuffer msg = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">50</FONT><A NAME="1050"></A>        msg.append(heading);
+<FONT CLASS="LN">51</FONT><A NAME="1051"></A>        msg.append(lSep);
+<FONT CLASS="LN">52</FONT><A NAME="1052"></A>        msg.append(lSep);
+<FONT CLASS="LN">53</FONT><A NAME="1053"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; names.size(); i++) {
+<FONT CLASS="LN">54</FONT><A NAME="1054"></A>            msg.append(<FONT CLASS="StringLiteral">" "</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="1055"></A>            msg.append(names.elementAt(i));
+<FONT CLASS="LN">56</FONT><A NAME="1056"></A>            <FONT CLASS="If">if</FONT> (descriptions != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">57</FONT><A NAME="1057"></A>                msg.append(spaces.substring(<FONT CLASS="IntegerLiteral">0</FONT>, maxlen - ((String) names.elementAt(i)).length() + <FONT CLASS="IntegerLiteral">2</FONT>));
+<FONT CLASS="LN">58</FONT><A NAME="1058"></A>                msg.append(descriptions.elementAt(i));
+<FONT CLASS="LN">59</FONT><A NAME="1059"></A>            }
+<FONT CLASS="LN">60</FONT><A NAME="1060"></A>            msg.append(lSep);
+<FONT CLASS="LN">61</FONT><A NAME="1061"></A>        }
+<FONT CLASS="LN">62</FONT><A NAME="1062"></A>        project.log(msg.toString());
+<FONT CLASS="LN">63</FONT><A NAME="1063"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="1064"></A>}
+<FONT CLASS="LN">65</FONT><A NAME="1065"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/ProjectHelper3.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/ProjectHelper3.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/ProjectHelper3.java.html	(revision 14989)
@@ -0,0 +1,1063 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.ProjectHelper3 (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ProjectHelper3.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright  2000-2004 The Apache Software Foundation
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> *  Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *  you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> *  You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> *      http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> *  Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> *  distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> *  See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> *  limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> *
+<FONT CLASS="LN">16</FONT><A NAME="16"></A> */</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.antmod.index.html" target="packageFrame">org.tp23.antinstaller.antmod</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.FileInputStream;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.FileNotFoundException;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.io.UnsupportedEncodingException;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.net.URL;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> java.util.Hashtable;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> java.util.Stack;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Location;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Project;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.ProjectHelper;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.RuntimeConfigurable;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Target;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Task;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.UnknownElement;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.helper.AntXMLContext;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.util.FileUtils;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.util.JAXPUtils;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="Import">import</FONT> org.xml.sax.Attributes;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A><FONT CLASS="Import">import</FONT> org.xml.sax.InputSource;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A><FONT CLASS="Import">import</FONT> org.xml.sax.Locator;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A><FONT CLASS="Import">import</FONT> org.xml.sax.SAXException;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A><FONT CLASS="Import">import</FONT> org.xml.sax.SAXParseException;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A><FONT CLASS="Import">import</FONT> org.xml.sax.XMLReader;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A><FONT CLASS="Import">import</FONT> org.xml.sax.helpers.DefaultHandler;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">50</FONT><A NAME="50"></A> * Sax2 based project reader
+<FONT CLASS="LN">51</FONT><A NAME="51"></A> * 
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>* This file has been modified by Paul Hinds for Antinstaller and is not the same
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>* as the ProjectHelper2 delivered with Ant 1.6 although almost identical
+<FONT CLASS="LN">54</FONT><A NAME="54"></A> */</FONT>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ProjectHelper3 <FONT CLASS="Extends">extends</FONT> ProjectHelper {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="MultiLineComment">/* Stateless */</FONT>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="SingleLineComment">// singletons - since all state is in the context
+<FONT CLASS="LN">59</FONT><A NAME="59"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> AntHandler elementHandler = <FONT CLASS="New">new</FONT> ElementHandler();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> AntHandler targetHandler = <FONT CLASS="New">new</FONT> TargetHandler();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> AntHandler mainHandler = <FONT CLASS="New">new</FONT> MainHandler();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> AntHandler projectHandler = <FONT CLASS="New">new</FONT> ProjectHandler();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>     * helper for path -&gt; URI and URI -&gt; path conversions.
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     */</FONT>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> FileUtils fu = FileUtils.newFileUtils();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>     * Parse an unknown element from a url
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>     *
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>     * @param project the current project
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>     * @param source  the url containing the task
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>     * @return a configured task
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>     * @exception BuildException if an error occurs
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>     */</FONT>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    <FONT CLASS="Public">public</FONT> UnknownElement parseUnknownElement(Project project, URL source)
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        Target dummyTarget = <FONT CLASS="New">new</FONT> Target();
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        dummyTarget.setProject(project);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        AntXMLContext context = <FONT CLASS="New">new</FONT> AntXMLContext(project);
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        context.addTarget(dummyTarget);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        context.setImplicitTarget(dummyTarget);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        parse(context.getProject(), source,
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>              <FONT CLASS="New">new</FONT> RootHandler(context, elementHandler));
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        Task[] tasks = dummyTarget.getTasks();
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="If">if</FONT> (tasks.length != <FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"No tasks defined"</FONT>);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        <FONT CLASS="Return">return</FONT> (UnknownElement) tasks[<FONT CLASS="IntegerLiteral">0</FONT>];
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>     * Parse a source xml input.
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>     *
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>     * @param project the current project
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>     * @param source  the xml source
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>     * @exception BuildException if an error occurs
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>     */</FONT>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> parse(Project project, Object source)
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        getImportStack().addElement(source);
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <FONT CLASS="SingleLineComment">//System.out.println("Adding " + source);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></FONT>        AntXMLContext context = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        context = (AntXMLContext) project.getReference(<FONT CLASS="StringLiteral">"ant.parsing.context"</FONT>);
+<FONT CLASS="LN">07</FONT><A NAME="107"></A><FONT CLASS="SingleLineComment">//        System.out.println("Parsing " + getImportStack().size() + " " +
+<FONT CLASS="LN">08</FONT><A NAME="108"></A></FONT><FONT CLASS="SingleLineComment">//                context+ " " + getImportStack() );
+<FONT CLASS="LN">09</FONT><A NAME="109"></A></FONT>        <FONT CLASS="If">if</FONT> (context == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            context = <FONT CLASS="New">new</FONT> AntXMLContext(project);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            project.addReference(<FONT CLASS="StringLiteral">"ant.parsing.context"</FONT>, context);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            project.addReference(<FONT CLASS="StringLiteral">"ant.targets"</FONT>, context.getTargets());
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        }
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        <FONT CLASS="If">if</FONT> (getImportStack().size() &gt; <FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            <FONT CLASS="SingleLineComment">// we are in an imported file.
+<FONT CLASS="LN">17</FONT><A NAME="117"></A></FONT>            context.setIgnoreProjectTag(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>            Target currentTarget = context.getCurrentTarget();
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>                Target newCurrent = <FONT CLASS="New">new</FONT> Target();
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                newCurrent.setProject(project);
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                newCurrent.setName(<FONT CLASS="StringLiteral">""</FONT>);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>                context.setCurrentTarget(newCurrent);
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>                parse(project, source, <FONT CLASS="New">new</FONT> RootHandler(context, mainHandler));
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>                newCurrent.execute();
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>            } <FONT CLASS="Finally">finally</FONT> {
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>                context.setCurrentTarget(currentTarget);
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>            <FONT CLASS="SingleLineComment">// top level file
+<FONT CLASS="LN">31</FONT><A NAME="131"></A></FONT>            parse(project, source, <FONT CLASS="New">new</FONT> RootHandler(context, mainHandler));
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>            <FONT CLASS="SingleLineComment">// Execute the top-level target
+<FONT CLASS="LN">33</FONT><A NAME="133"></A></FONT>            context.getImplicitTarget().execute();
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>     * Parses the project file, configuring the project as it goes.
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>     *
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>     * @param project the current project
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>     * @param source  the xml source
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>     * @param handler the root handler to use (contains the current context)
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>     * @exception BuildException if the configuration is invalid or cannot
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>     *                           be read
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>     */</FONT>
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> parse(Project project, Object source, RootHandler handler)
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>            <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        AntXMLContext context = handler.context;
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>        File buildFile = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        URL  url = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>        String buildFileName = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>        <FONT CLASS="If">if</FONT> (source <FONT CLASS="InstanceOf">instanceof</FONT> File) {
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            buildFile = (File) source;
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>            buildFile = fu.normalize(buildFile.getAbsolutePath());
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>            context.setBuildFile(buildFile);
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>            buildFileName = buildFile.toString();
+<FONT CLASS="LN">60</FONT><A NAME="160"></A><FONT CLASS="SingleLineComment">//         } else if (source instanceof InputStream ) {
+<FONT CLASS="LN">61</FONT><A NAME="161"></A></FONT>        } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (source <FONT CLASS="InstanceOf">instanceof</FONT> URL) {
+<FONT CLASS="LN">62</FONT><A NAME="162"></A><FONT CLASS="SingleLineComment">//          These commented out code is the only difference
+<FONT CLASS="LN">63</FONT><A NAME="163"></A></FONT><FONT CLASS="SingleLineComment">//          between this class and ProjectHelper2
+<FONT CLASS="LN">64</FONT><A NAME="164"></A></FONT><FONT CLASS="SingleLineComment">//            if (handler.getCurrentAntHandler() != elementHandler) {
+<FONT CLASS="LN">65</FONT><A NAME="165"></A></FONT><FONT CLASS="SingleLineComment">//                throw new BuildException(
+<FONT CLASS="LN">66</FONT><A NAME="166"></A></FONT><FONT CLASS="SingleLineComment">//                    "Source " + source.getClass().getName()
+<FONT CLASS="LN">67</FONT><A NAME="167"></A></FONT><FONT CLASS="SingleLineComment">//                    + " not supported by this plugin for "
+<FONT CLASS="LN">68</FONT><A NAME="168"></A></FONT><FONT CLASS="SingleLineComment">//                    + " non task xml");
+<FONT CLASS="LN">69</FONT><A NAME="169"></A></FONT><FONT CLASS="SingleLineComment">//            }
+<FONT CLASS="LN">70</FONT><A NAME="170"></A></FONT>            url = (URL) source;
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>            buildFileName = url.toString();
+<FONT CLASS="LN">72</FONT><A NAME="172"></A><FONT CLASS="SingleLineComment">//         } else if (source instanceof InputSource ) {
+<FONT CLASS="LN">73</FONT><A NAME="173"></A></FONT>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Source "</FONT> + source.getClass().getName()
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>                                     + <FONT CLASS="StringLiteral">" not supported by this plugin"</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>        }
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>        InputStream inputStream = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>        InputSource inputSource = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>            <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>             * SAX 2 style parser used to parse the given file.
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>             */</FONT>
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>            XMLReader parser = JAXPUtils.getNamespaceXMLReader();
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>            String uri = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>            <FONT CLASS="If">if</FONT> (buildFile != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>                uri = fu.toURI(buildFile.getAbsolutePath());
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>                inputStream = <FONT CLASS="New">new</FONT> FileInputStream(buildFile);
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>                inputStream = url.openStream();
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>                uri = url.toString(); <FONT CLASS="SingleLineComment">// ?? OK ??
+<FONT CLASS="LN">95</FONT><A NAME="195"></A></FONT>            }
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>            inputSource = <FONT CLASS="New">new</FONT> InputSource(inputStream);
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>            <FONT CLASS="If">if</FONT> (uri != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>                inputSource.setSystemId(uri);
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>            }
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>            project.log(<FONT CLASS="StringLiteral">"parsing buildfile "</FONT> + buildFileName
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>                        + <FONT CLASS="StringLiteral">" with URI = "</FONT> + uri, Project.MSG_VERBOSE);
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>            DefaultHandler hb = handler;
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>            parser.setContentHandler(hb);
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>            parser.setEntityResolver(hb);
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>            parser.setErrorHandler(hb);
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>            parser.setDTDHandler(hb);
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>            parser.parse(inputSource);
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>        } <FONT CLASS="Catch">catch</FONT> (SAXParseException exc) {
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>            Location location = <FONT CLASS="New">new</FONT> Location(exc.getSystemId(),
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>                exc.getLineNumber(), exc.getColumnNumber());
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>            Throwable t = exc.getException();
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>            <FONT CLASS="If">if</FONT> (t <FONT CLASS="InstanceOf">instanceof</FONT> BuildException) {
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>                BuildException be = (BuildException) t;
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>                <FONT CLASS="If">if</FONT> (be.getLocation() == Location.UNKNOWN_LOCATION) {
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>                    be.setLocation(location);
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>                }
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>                <FONT CLASS="Throw">throw</FONT> be;
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>            }
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(exc.getMessage(), t, location);
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>        } <FONT CLASS="Catch">catch</FONT> (SAXException exc) {
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>            Throwable t = exc.getException();
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>            <FONT CLASS="If">if</FONT> (t <FONT CLASS="InstanceOf">instanceof</FONT> BuildException) {
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>                <FONT CLASS="Throw">throw</FONT> (BuildException) t;
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>            }
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(exc.getMessage(), t);
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>        } <FONT CLASS="Catch">catch</FONT> (FileNotFoundException exc) {
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(exc);
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>        } <FONT CLASS="Catch">catch</FONT> (UnsupportedEncodingException exc) {
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>              <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Encoding of project file "</FONT>
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>                                       + buildFileName + <FONT CLASS="StringLiteral">" is invalid."</FONT>,
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>                                       exc);
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>        } <FONT CLASS="Catch">catch</FONT> (IOException exc) {
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Error reading project file "</FONT>
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>                                     + buildFileName + <FONT CLASS="StringLiteral">": "</FONT> + exc.getMessage(),
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>                                     exc);
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>        } <FONT CLASS="Finally">finally</FONT> {
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>            <FONT CLASS="If">if</FONT> (inputStream != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>                    inputStream.close();
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>                } <FONT CLASS="Catch">catch</FONT> (IOException ioe) {
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>                    <FONT CLASS="SingleLineComment">// ignore this
+<FONT CLASS="LN">47</FONT><A NAME="247"></A></FONT>                }
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>            }
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>        }
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>     * The common superclass for all SAX event handlers used to parse
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>     * the configuration file.
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>     *
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>     * The context will hold all state information. At each time
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>     * there is one active handler for the current element. It can
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>     * use onStartChild() to set an alternate handler for the child.
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>     */</FONT>
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> AntHandler  {
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>         * Handles the start of an element. This base implementation does
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>         * nothing.
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>         *
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>         * @param uri the namespace URI for the tag
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>         * @param tag The name of the element being started.
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>         *            Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>         * @param qname The qualified name of the element.
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>         * @param attrs Attributes of the element being started.
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>         *              Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>         * @param context The context that this element is in.
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>         *
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>         * @exception SAXParseException if this method is not overridden, or in
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>         *                              case of error in an overridden version
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>         */</FONT>
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> onStartElement(String uri, String tag, String qname,
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>                                   Attributes attrs,
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>                                   AntXMLContext context)
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>        }
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">83</FONT><A NAME="283"></A>         * Handles the start of an element. This base implementation just
+<FONT CLASS="LN">84</FONT><A NAME="284"></A>         * throws an exception - you must override this method if you expect
+<FONT CLASS="LN">85</FONT><A NAME="285"></A>         * child elements.
+<FONT CLASS="LN">86</FONT><A NAME="286"></A>         *
+<FONT CLASS="LN">87</FONT><A NAME="287"></A>         * @param uri The namespace uri for this element.
+<FONT CLASS="LN">88</FONT><A NAME="288"></A>         * @param tag The name of the element being started.
+<FONT CLASS="LN">89</FONT><A NAME="289"></A>         *            Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">90</FONT><A NAME="290"></A>         * @param qname The qualified name for this element.
+<FONT CLASS="LN">91</FONT><A NAME="291"></A>         * @param attrs Attributes of the element being started.
+<FONT CLASS="LN">92</FONT><A NAME="292"></A>         *              Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">93</FONT><A NAME="293"></A>         * @param context The current context.
+<FONT CLASS="LN">94</FONT><A NAME="294"></A>         * @return a handler (in the derived classes)
+<FONT CLASS="LN">95</FONT><A NAME="295"></A>         *
+<FONT CLASS="LN">96</FONT><A NAME="296"></A>         * @exception SAXParseException if this method is not overridden, or in
+<FONT CLASS="LN">97</FONT><A NAME="297"></A>         *                              case of error in an overridden version
+<FONT CLASS="LN">98</FONT><A NAME="298"></A>         */</FONT>
+<FONT CLASS="LN">99</FONT><A NAME="299"></A>        <FONT CLASS="Public">public</FONT> AntHandler onStartChild(String uri, String tag, String qname,
+<FONT CLASS="LN">00</FONT><A NAME="300"></A>                                       Attributes attrs,
+<FONT CLASS="LN">01</FONT><A NAME="301"></A>                                       AntXMLContext context)
+<FONT CLASS="LN">02</FONT><A NAME="302"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">03</FONT><A NAME="303"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> SAXParseException(<FONT CLASS="StringLiteral">"Unexpected element \""</FONT> + qname
+<FONT CLASS="LN">04</FONT><A NAME="304"></A>                + <FONT CLASS="StringLiteral">" \""</FONT>, context.getLocator());
+<FONT CLASS="LN">05</FONT><A NAME="305"></A>        }
+<FONT CLASS="LN">06</FONT><A NAME="306"></A>
+<FONT CLASS="LN">07</FONT><A NAME="307"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">08</FONT><A NAME="308"></A>         * Handle the end of a element.
+<FONT CLASS="LN">09</FONT><A NAME="309"></A>         *
+<FONT CLASS="LN">10</FONT><A NAME="310"></A>         * @param uri the namespace uri of the element
+<FONT CLASS="LN">11</FONT><A NAME="311"></A>         * @param tag the tag of the element
+<FONT CLASS="LN">12</FONT><A NAME="312"></A>         * @param qname the qualified name of the element
+<FONT CLASS="LN">13</FONT><A NAME="313"></A>         * @param context the current context
+<FONT CLASS="LN">14</FONT><A NAME="314"></A>         * @exception SAXParseException if an error occurs
+<FONT CLASS="LN">15</FONT><A NAME="315"></A>         */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="316"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> onEndChild(String uri, String tag, String qname,
+<FONT CLASS="LN">17</FONT><A NAME="317"></A>                                     AntXMLContext context)
+<FONT CLASS="LN">18</FONT><A NAME="318"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">19</FONT><A NAME="319"></A>        }
+<FONT CLASS="LN">20</FONT><A NAME="320"></A>
+<FONT CLASS="LN">21</FONT><A NAME="321"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="322"></A>         * This method is called when this element and all elements nested into it have been
+<FONT CLASS="LN">23</FONT><A NAME="323"></A>         * handled. I.e., this happens at the &amp;lt;/end_tag_of_the_element&amp;gt;.
+<FONT CLASS="LN">24</FONT><A NAME="324"></A>         * @param uri the namespace uri for this element
+<FONT CLASS="LN">25</FONT><A NAME="325"></A>         * @param tag the element name
+<FONT CLASS="LN">26</FONT><A NAME="326"></A>         * @param context the current context
+<FONT CLASS="LN">27</FONT><A NAME="327"></A>         */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="328"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> onEndElement(String uri, String tag,
+<FONT CLASS="LN">29</FONT><A NAME="329"></A>                                 AntXMLContext context) {
+<FONT CLASS="LN">30</FONT><A NAME="330"></A>        }
+<FONT CLASS="LN">31</FONT><A NAME="331"></A>
+<FONT CLASS="LN">32</FONT><A NAME="332"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="333"></A>         * Handles text within an element. This base implementation just
+<FONT CLASS="LN">34</FONT><A NAME="334"></A>         * throws an exception, you must override it if you expect content.
+<FONT CLASS="LN">35</FONT><A NAME="335"></A>         *
+<FONT CLASS="LN">36</FONT><A NAME="336"></A>         * @param buf A character array of the text within the element.
+<FONT CLASS="LN">37</FONT><A NAME="337"></A>         *            Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">38</FONT><A NAME="338"></A>         * @param start The start element in the array.
+<FONT CLASS="LN">39</FONT><A NAME="339"></A>         * @param count The number of characters to read from the array.
+<FONT CLASS="LN">40</FONT><A NAME="340"></A>         * @param context The current context.
+<FONT CLASS="LN">41</FONT><A NAME="341"></A>         *
+<FONT CLASS="LN">42</FONT><A NAME="342"></A>         * @exception SAXParseException if this method is not overridden, or in
+<FONT CLASS="LN">43</FONT><A NAME="343"></A>         *                              case of error in an overridden version
+<FONT CLASS="LN">44</FONT><A NAME="344"></A>         */</FONT>
+<FONT CLASS="LN">45</FONT><A NAME="345"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> characters(<FONT CLASS="Char">char</FONT>[] buf, <FONT CLASS="Int">int</FONT> start, <FONT CLASS="Int">int</FONT> count, AntXMLContext context)
+<FONT CLASS="LN">46</FONT><A NAME="346"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">47</FONT><A NAME="347"></A>            String s = <FONT CLASS="New">new</FONT> String(buf, start, count).trim();
+<FONT CLASS="LN">48</FONT><A NAME="348"></A>
+<FONT CLASS="LN">49</FONT><A NAME="349"></A>            <FONT CLASS="If">if</FONT> (s.length() &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">50</FONT><A NAME="350"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> SAXParseException(<FONT CLASS="StringLiteral">"Unexpected text \""</FONT> + s
+<FONT CLASS="LN">51</FONT><A NAME="351"></A>                    + <FONT CLASS="StringLiteral">"\""</FONT>, context.getLocator());
+<FONT CLASS="LN">52</FONT><A NAME="352"></A>            }
+<FONT CLASS="LN">53</FONT><A NAME="353"></A>        }
+<FONT CLASS="LN">54</FONT><A NAME="354"></A>
+<FONT CLASS="LN">55</FONT><A NAME="355"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">56</FONT><A NAME="356"></A>         * Will be called every time a namespace is reached.
+<FONT CLASS="LN">57</FONT><A NAME="357"></A>         * It'll verify if the ns was processed, and if not load the task
+<FONT CLASS="LN">58</FONT><A NAME="358"></A>         * definitions.
+<FONT CLASS="LN">59</FONT><A NAME="359"></A>         * @param uri The namespace uri.
+<FONT CLASS="LN">60</FONT><A NAME="360"></A>         */</FONT>
+<FONT CLASS="LN">61</FONT><A NAME="361"></A>        <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> checkNamespace(String uri) {
+<FONT CLASS="LN">62</FONT><A NAME="362"></A>
+<FONT CLASS="LN">63</FONT><A NAME="363"></A>        }
+<FONT CLASS="LN">64</FONT><A NAME="364"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="365"></A>
+<FONT CLASS="LN">66</FONT><A NAME="366"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">67</FONT><A NAME="367"></A>     * Handler for ant processing. Uses a stack of AntHandlers to
+<FONT CLASS="LN">68</FONT><A NAME="368"></A>     * implement each element ( the original parser used a recursive behavior,
+<FONT CLASS="LN">69</FONT><A NAME="369"></A>     * with the implicit execution stack )
+<FONT CLASS="LN">70</FONT><A NAME="370"></A>     */</FONT>
+<FONT CLASS="LN">71</FONT><A NAME="371"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> RootHandler <FONT CLASS="Extends">extends</FONT> DefaultHandler {
+<FONT CLASS="LN">72</FONT><A NAME="372"></A>        <FONT CLASS="Private">private</FONT> Stack antHandlers = <FONT CLASS="New">new</FONT> Stack();
+<FONT CLASS="LN">73</FONT><A NAME="373"></A>        <FONT CLASS="Private">private</FONT> AntHandler currentHandler = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">74</FONT><A NAME="374"></A>        <FONT CLASS="Private">private</FONT> AntXMLContext context;
+<FONT CLASS="LN">75</FONT><A NAME="375"></A>
+<FONT CLASS="LN">76</FONT><A NAME="376"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">77</FONT><A NAME="377"></A>         * Creates a new RootHandler instance.
+<FONT CLASS="LN">78</FONT><A NAME="378"></A>         *
+<FONT CLASS="LN">79</FONT><A NAME="379"></A>         * @param context The context for the handler.
+<FONT CLASS="LN">80</FONT><A NAME="380"></A>         * @param rootHandler The handler for the root element.
+<FONT CLASS="LN">81</FONT><A NAME="381"></A>         */</FONT>
+<FONT CLASS="LN">82</FONT><A NAME="382"></A>        <FONT CLASS="Public">public</FONT> RootHandler(AntXMLContext context, AntHandler rootHandler) {
+<FONT CLASS="LN">83</FONT><A NAME="383"></A>            currentHandler = rootHandler;
+<FONT CLASS="LN">84</FONT><A NAME="384"></A>            antHandlers.push(currentHandler);
+<FONT CLASS="LN">85</FONT><A NAME="385"></A>            <FONT CLASS="This">this</FONT>.context = context;
+<FONT CLASS="LN">86</FONT><A NAME="386"></A>        }
+<FONT CLASS="LN">87</FONT><A NAME="387"></A>
+<FONT CLASS="LN">88</FONT><A NAME="388"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">89</FONT><A NAME="389"></A>         * Returns the current ant handler object.
+<FONT CLASS="LN">90</FONT><A NAME="390"></A>         * @return the current ant handler.
+<FONT CLASS="LN">91</FONT><A NAME="391"></A>         */</FONT>
+<FONT CLASS="LN">92</FONT><A NAME="392"></A>        <FONT CLASS="Public">public</FONT> AntHandler getCurrentAntHandler() {
+<FONT CLASS="LN">93</FONT><A NAME="393"></A>            <FONT CLASS="Return">return</FONT> currentHandler;
+<FONT CLASS="LN">94</FONT><A NAME="394"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="395"></A>
+<FONT CLASS="LN">96</FONT><A NAME="396"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">97</FONT><A NAME="397"></A>         * Resolves file: URIs relative to the build file.
+<FONT CLASS="LN">98</FONT><A NAME="398"></A>         *
+<FONT CLASS="LN">99</FONT><A NAME="399"></A>         * @param publicId The public identifier, or &lt;code&gt;null&lt;/code&gt;
+<FONT CLASS="LN">00</FONT><A NAME="400"></A>         *                 if none is available. Ignored in this
+<FONT CLASS="LN">01</FONT><A NAME="401"></A>         *                 implementation.
+<FONT CLASS="LN">02</FONT><A NAME="402"></A>         * @param systemId The system identifier provided in the XML
+<FONT CLASS="LN">03</FONT><A NAME="403"></A>         *                 document. Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">04</FONT><A NAME="404"></A>         * @return an inputsource for this identifier
+<FONT CLASS="LN">05</FONT><A NAME="405"></A>         */</FONT>
+<FONT CLASS="LN">06</FONT><A NAME="406"></A>        <FONT CLASS="Public">public</FONT> InputSource resolveEntity(String publicId,
+<FONT CLASS="LN">07</FONT><A NAME="407"></A>                                         String systemId) {
+<FONT CLASS="LN">08</FONT><A NAME="408"></A>
+<FONT CLASS="LN">09</FONT><A NAME="409"></A>            context.getProject().log(<FONT CLASS="StringLiteral">"resolving systemId: "</FONT>
+<FONT CLASS="LN">10</FONT><A NAME="410"></A>                + systemId, Project.MSG_VERBOSE);
+<FONT CLASS="LN">11</FONT><A NAME="411"></A>
+<FONT CLASS="LN">12</FONT><A NAME="412"></A>            <FONT CLASS="If">if</FONT> (systemId.startsWith(<FONT CLASS="StringLiteral">"file:"</FONT>)) {
+<FONT CLASS="LN">13</FONT><A NAME="413"></A>                String path = fu.fromURI(systemId);
+<FONT CLASS="LN">14</FONT><A NAME="414"></A>
+<FONT CLASS="LN">15</FONT><A NAME="415"></A>                File file = <FONT CLASS="New">new</FONT> File(path);
+<FONT CLASS="LN">16</FONT><A NAME="416"></A>                <FONT CLASS="If">if</FONT> (!file.isAbsolute()) {
+<FONT CLASS="LN">17</FONT><A NAME="417"></A>                    file = fu.resolveFile(context.getBuildFileParent(), path);
+<FONT CLASS="LN">18</FONT><A NAME="418"></A>                }
+<FONT CLASS="LN">19</FONT><A NAME="419"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">20</FONT><A NAME="420"></A>                    InputSource inputSource =
+<FONT CLASS="LN">21</FONT><A NAME="421"></A>                            <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="New">new</FONT> FileInputStream(file));
+<FONT CLASS="LN">22</FONT><A NAME="422"></A>                    inputSource.setSystemId(fu.toURI(file.getAbsolutePath()));
+<FONT CLASS="LN">23</FONT><A NAME="423"></A>                    <FONT CLASS="Return">return</FONT> inputSource;
+<FONT CLASS="LN">24</FONT><A NAME="424"></A>                } <FONT CLASS="Catch">catch</FONT> (FileNotFoundException fne) {
+<FONT CLASS="LN">25</FONT><A NAME="425"></A>                    context.getProject().log(file.getAbsolutePath()
+<FONT CLASS="LN">26</FONT><A NAME="426"></A>                        + <FONT CLASS="StringLiteral">" could not be found"</FONT>, Project.MSG_WARN);
+<FONT CLASS="LN">27</FONT><A NAME="427"></A>                }
+<FONT CLASS="LN">28</FONT><A NAME="428"></A>
+<FONT CLASS="LN">29</FONT><A NAME="429"></A>            }
+<FONT CLASS="LN">30</FONT><A NAME="430"></A>            <FONT CLASS="SingleLineComment">// use default if not file or file not found
+<FONT CLASS="LN">31</FONT><A NAME="431"></A></FONT>            <FONT CLASS="Return">return</FONT> <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">32</FONT><A NAME="432"></A>        }
+<FONT CLASS="LN">33</FONT><A NAME="433"></A>
+<FONT CLASS="LN">34</FONT><A NAME="434"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">35</FONT><A NAME="435"></A>         * Handles the start of a project element. A project handler is created
+<FONT CLASS="LN">36</FONT><A NAME="436"></A>         * and initialised with the element name and attributes.
+<FONT CLASS="LN">37</FONT><A NAME="437"></A>         *
+<FONT CLASS="LN">38</FONT><A NAME="438"></A>         * @param uri The namespace uri for this element.
+<FONT CLASS="LN">39</FONT><A NAME="439"></A>         * @param tag The name of the element being started.
+<FONT CLASS="LN">40</FONT><A NAME="440"></A>         *            Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">41</FONT><A NAME="441"></A>         * @param qname The qualified name for this element.
+<FONT CLASS="LN">42</FONT><A NAME="442"></A>         * @param attrs Attributes of the element being started.
+<FONT CLASS="LN">43</FONT><A NAME="443"></A>         *              Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">44</FONT><A NAME="444"></A>         *
+<FONT CLASS="LN">45</FONT><A NAME="445"></A>         * @exception org.xml.sax.SAXParseException if the tag given is not
+<FONT CLASS="LN">46</FONT><A NAME="446"></A>         *                              &lt;code&gt;"project"&lt;/code&gt;
+<FONT CLASS="LN">47</FONT><A NAME="447"></A>         */</FONT>
+<FONT CLASS="LN">48</FONT><A NAME="448"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> startElement(String uri, String tag, String qname, Attributes attrs)
+<FONT CLASS="LN">49</FONT><A NAME="449"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">50</FONT><A NAME="450"></A>            AntHandler next
+<FONT CLASS="LN">51</FONT><A NAME="451"></A>                = currentHandler.onStartChild(uri, tag, qname, attrs, context);
+<FONT CLASS="LN">52</FONT><A NAME="452"></A>            antHandlers.push(currentHandler);
+<FONT CLASS="LN">53</FONT><A NAME="453"></A>            currentHandler = next;
+<FONT CLASS="LN">54</FONT><A NAME="454"></A>            currentHandler.onStartElement(uri, tag, qname, attrs, context);
+<FONT CLASS="LN">55</FONT><A NAME="455"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="456"></A>
+<FONT CLASS="LN">57</FONT><A NAME="457"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">58</FONT><A NAME="458"></A>         * Sets the locator in the project helper for future reference.
+<FONT CLASS="LN">59</FONT><A NAME="459"></A>         *
+<FONT CLASS="LN">60</FONT><A NAME="460"></A>         * @param locator The locator used by the parser.
+<FONT CLASS="LN">61</FONT><A NAME="461"></A>         *                Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">62</FONT><A NAME="462"></A>         */</FONT>
+<FONT CLASS="LN">63</FONT><A NAME="463"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDocumentLocator(Locator locator) {
+<FONT CLASS="LN">64</FONT><A NAME="464"></A>            context.setLocator(locator);
+<FONT CLASS="LN">65</FONT><A NAME="465"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="466"></A>
+<FONT CLASS="LN">67</FONT><A NAME="467"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">68</FONT><A NAME="468"></A>         * Handles the end of an element. Any required clean-up is performed
+<FONT CLASS="LN">69</FONT><A NAME="469"></A>         * by the onEndElement() method and then the original handler
+<FONT CLASS="LN">70</FONT><A NAME="470"></A>         * is restored to the parser.
+<FONT CLASS="LN">71</FONT><A NAME="471"></A>         *
+<FONT CLASS="LN">72</FONT><A NAME="472"></A>         * @param uri  The namespace URI for this element.
+<FONT CLASS="LN">73</FONT><A NAME="473"></A>         * @param name The name of the element which is ending.
+<FONT CLASS="LN">74</FONT><A NAME="474"></A>         *             Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">75</FONT><A NAME="475"></A>         * @param qName The qualified name for this element.
+<FONT CLASS="LN">76</FONT><A NAME="476"></A>         *
+<FONT CLASS="LN">77</FONT><A NAME="477"></A>         * @exception SAXException in case of error (not thrown in
+<FONT CLASS="LN">78</FONT><A NAME="478"></A>         *                         this implementation)
+<FONT CLASS="LN">79</FONT><A NAME="479"></A>         *
+<FONT CLASS="LN">80</FONT><A NAME="480"></A>         */</FONT>
+<FONT CLASS="LN">81</FONT><A NAME="481"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> endElement(String uri, String name, String qName) <FONT CLASS="Throws">throws</FONT> SAXException {
+<FONT CLASS="LN">82</FONT><A NAME="482"></A>            currentHandler.onEndElement(uri, name, context);
+<FONT CLASS="LN">83</FONT><A NAME="483"></A>            AntHandler prev = (AntHandler) antHandlers.pop();
+<FONT CLASS="LN">84</FONT><A NAME="484"></A>            currentHandler = prev;
+<FONT CLASS="LN">85</FONT><A NAME="485"></A>            <FONT CLASS="If">if</FONT> (currentHandler != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">86</FONT><A NAME="486"></A>                currentHandler.onEndChild(uri, name, qName, context);
+<FONT CLASS="LN">87</FONT><A NAME="487"></A>            }
+<FONT CLASS="LN">88</FONT><A NAME="488"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="489"></A>
+<FONT CLASS="LN">90</FONT><A NAME="490"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">91</FONT><A NAME="491"></A>         * Handle text within an element, calls currentHandler.characters.
+<FONT CLASS="LN">92</FONT><A NAME="492"></A>         *
+<FONT CLASS="LN">93</FONT><A NAME="493"></A>         * @param buf  A character array of the test.
+<FONT CLASS="LN">94</FONT><A NAME="494"></A>         * @param start The start offset in the array.
+<FONT CLASS="LN">95</FONT><A NAME="495"></A>         * @param count The number of characters to read.
+<FONT CLASS="LN">96</FONT><A NAME="496"></A>         * @exception SAXParseException if an error occurs
+<FONT CLASS="LN">97</FONT><A NAME="497"></A>         */</FONT>
+<FONT CLASS="LN">98</FONT><A NAME="498"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> characters(<FONT CLASS="Char">char</FONT>[] buf, <FONT CLASS="Int">int</FONT> start, <FONT CLASS="Int">int</FONT> count)
+<FONT CLASS="LN">99</FONT><A NAME="499"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">00</FONT><A NAME="500"></A>            currentHandler.characters(buf, start, count, context);
+<FONT CLASS="LN">01</FONT><A NAME="501"></A>        }
+<FONT CLASS="LN">02</FONT><A NAME="502"></A>
+<FONT CLASS="LN">03</FONT><A NAME="503"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">04</FONT><A NAME="504"></A>         * Start a namespace prefix to uri mapping
+<FONT CLASS="LN">05</FONT><A NAME="505"></A>         *
+<FONT CLASS="LN">06</FONT><A NAME="506"></A>         * @param prefix the namespace prefix
+<FONT CLASS="LN">07</FONT><A NAME="507"></A>         * @param uri the namespace uri
+<FONT CLASS="LN">08</FONT><A NAME="508"></A>         */</FONT>
+<FONT CLASS="LN">09</FONT><A NAME="509"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> startPrefixMapping(String prefix, String uri) {
+<FONT CLASS="LN">10</FONT><A NAME="510"></A>            context.startPrefixMapping(prefix, uri);
+<FONT CLASS="LN">11</FONT><A NAME="511"></A>        }
+<FONT CLASS="LN">12</FONT><A NAME="512"></A>
+<FONT CLASS="LN">13</FONT><A NAME="513"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">14</FONT><A NAME="514"></A>         * End a namepace prefix to uri mapping
+<FONT CLASS="LN">15</FONT><A NAME="515"></A>         *
+<FONT CLASS="LN">16</FONT><A NAME="516"></A>         * @param prefix the prefix that is not mapped anymore
+<FONT CLASS="LN">17</FONT><A NAME="517"></A>         */</FONT>
+<FONT CLASS="LN">18</FONT><A NAME="518"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> endPrefixMapping(String prefix) {
+<FONT CLASS="LN">19</FONT><A NAME="519"></A>            context.endPrefixMapping(prefix);
+<FONT CLASS="LN">20</FONT><A NAME="520"></A>        }
+<FONT CLASS="LN">21</FONT><A NAME="521"></A>    }
+<FONT CLASS="LN">22</FONT><A NAME="522"></A>
+<FONT CLASS="LN">23</FONT><A NAME="523"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="524"></A>     * The main handler - it handles the &amp;lt;project&amp;gt; tag.
+<FONT CLASS="LN">25</FONT><A NAME="525"></A>     *
+<FONT CLASS="LN">26</FONT><A NAME="526"></A>     * @see AntHandler
+<FONT CLASS="LN">27</FONT><A NAME="527"></A>     */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="528"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> MainHandler <FONT CLASS="Extends">extends</FONT> AntHandler {
+<FONT CLASS="LN">29</FONT><A NAME="529"></A>
+<FONT CLASS="LN">30</FONT><A NAME="530"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">31</FONT><A NAME="531"></A>         * Handle the project tag
+<FONT CLASS="LN">32</FONT><A NAME="532"></A>         *
+<FONT CLASS="LN">33</FONT><A NAME="533"></A>         * @param uri The namespace uri.
+<FONT CLASS="LN">34</FONT><A NAME="534"></A>         * @param name The element tag.
+<FONT CLASS="LN">35</FONT><A NAME="535"></A>         * @param qname The element qualified name.
+<FONT CLASS="LN">36</FONT><A NAME="536"></A>         * @param attrs The attributes of the element.
+<FONT CLASS="LN">37</FONT><A NAME="537"></A>         * @param context The current context.
+<FONT CLASS="LN">38</FONT><A NAME="538"></A>         * @return The project handler that handles subelements of project
+<FONT CLASS="LN">39</FONT><A NAME="539"></A>         * @exception SAXParseException if the qualified name is not "project".
+<FONT CLASS="LN">40</FONT><A NAME="540"></A>         */</FONT>
+<FONT CLASS="LN">41</FONT><A NAME="541"></A>        <FONT CLASS="Public">public</FONT> AntHandler onStartChild(String uri, String name, String qname,
+<FONT CLASS="LN">42</FONT><A NAME="542"></A>                                       Attributes attrs,
+<FONT CLASS="LN">43</FONT><A NAME="543"></A>                                       AntXMLContext context)
+<FONT CLASS="LN">44</FONT><A NAME="544"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">45</FONT><A NAME="545"></A>            <FONT CLASS="If">if</FONT> (name.equals(<FONT CLASS="StringLiteral">"project"</FONT>)
+<FONT CLASS="LN">46</FONT><A NAME="546"></A>                &amp;&amp; (uri.equals(<FONT CLASS="StringLiteral">""</FONT>) || uri.equals(ANT_CORE_URI))) {
+<FONT CLASS="LN">47</FONT><A NAME="547"></A>                <FONT CLASS="Return">return</FONT> ProjectHelper3.projectHandler;
+<FONT CLASS="LN">48</FONT><A NAME="548"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">49</FONT><A NAME="549"></A><FONT CLASS="SingleLineComment">//                 if (context.importlevel &gt; 0) {
+<FONT CLASS="LN">50</FONT><A NAME="550"></A></FONT><FONT CLASS="SingleLineComment">//                     // we are in an imported file. Allow top-level &lt;target&gt;.
+<FONT CLASS="LN">51</FONT><A NAME="551"></A></FONT><FONT CLASS="SingleLineComment">//                     if (qname.equals( "target" ) )
+<FONT CLASS="LN">52</FONT><A NAME="552"></A></FONT><FONT CLASS="SingleLineComment">//                         return ProjectHelper3.targetHandler;
+<FONT CLASS="LN">53</FONT><A NAME="553"></A></FONT><FONT CLASS="SingleLineComment">//                 }
+<FONT CLASS="LN">54</FONT><A NAME="554"></A></FONT>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> SAXParseException(<FONT CLASS="StringLiteral">"Unexpected element \""</FONT> + qname
+<FONT CLASS="LN">55</FONT><A NAME="555"></A>                    + <FONT CLASS="StringLiteral">"\" "</FONT> + name, context.getLocator());
+<FONT CLASS="LN">56</FONT><A NAME="556"></A>            }
+<FONT CLASS="LN">57</FONT><A NAME="557"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="558"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="559"></A>
+<FONT CLASS="LN">60</FONT><A NAME="560"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">61</FONT><A NAME="561"></A>     * Handler for the top level "project" element.
+<FONT CLASS="LN">62</FONT><A NAME="562"></A>     */</FONT>
+<FONT CLASS="LN">63</FONT><A NAME="563"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> ProjectHandler <FONT CLASS="Extends">extends</FONT> AntHandler {
+<FONT CLASS="LN">64</FONT><A NAME="564"></A>
+<FONT CLASS="LN">65</FONT><A NAME="565"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">66</FONT><A NAME="566"></A>         * Initialisation routine called after handler creation
+<FONT CLASS="LN">67</FONT><A NAME="567"></A>         * with the element name and attributes. The attributes which
+<FONT CLASS="LN">68</FONT><A NAME="568"></A>         * this handler can deal with are: &lt;code&gt;"default"&lt;/code&gt;,
+<FONT CLASS="LN">69</FONT><A NAME="569"></A>         * &lt;code&gt;"name"&lt;/code&gt;, &lt;code&gt;"id"&lt;/code&gt; and &lt;code&gt;"basedir"&lt;/code&gt;.
+<FONT CLASS="LN">70</FONT><A NAME="570"></A>         *
+<FONT CLASS="LN">71</FONT><A NAME="571"></A>         * @param uri The namespace URI for this element.
+<FONT CLASS="LN">72</FONT><A NAME="572"></A>         * @param tag Name of the element which caused this handler
+<FONT CLASS="LN">73</FONT><A NAME="573"></A>         *            to be created. Should not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">74</FONT><A NAME="574"></A>         *            Ignored in this implementation.
+<FONT CLASS="LN">75</FONT><A NAME="575"></A>         * @param qname The qualified name for this element.
+<FONT CLASS="LN">76</FONT><A NAME="576"></A>         * @param attrs Attributes of the element which caused this
+<FONT CLASS="LN">77</FONT><A NAME="577"></A>         *              handler to be created. Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">78</FONT><A NAME="578"></A>         * @param context The current context.
+<FONT CLASS="LN">79</FONT><A NAME="579"></A>         *
+<FONT CLASS="LN">80</FONT><A NAME="580"></A>         * @exception SAXParseException if an unexpected attribute is
+<FONT CLASS="LN">81</FONT><A NAME="581"></A>         *            encountered or if the &lt;code&gt;"default"&lt;/code&gt; attribute
+<FONT CLASS="LN">82</FONT><A NAME="582"></A>         *            is missing.
+<FONT CLASS="LN">83</FONT><A NAME="583"></A>         */</FONT>
+<FONT CLASS="LN">84</FONT><A NAME="584"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> onStartElement(String uri, String tag, String qname,
+<FONT CLASS="LN">85</FONT><A NAME="585"></A>                                   Attributes attrs,
+<FONT CLASS="LN">86</FONT><A NAME="586"></A>                                   AntXMLContext context)
+<FONT CLASS="LN">87</FONT><A NAME="587"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">88</FONT><A NAME="588"></A>            String id = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">89</FONT><A NAME="589"></A>            String baseDir = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">90</FONT><A NAME="590"></A>            <FONT CLASS="Boolean">boolean</FONT> nameAttributeSet = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="591"></A>
+<FONT CLASS="LN">92</FONT><A NAME="592"></A>            Project project = context.getProject();
+<FONT CLASS="LN">93</FONT><A NAME="593"></A>
+<FONT CLASS="LN">94</FONT><A NAME="594"></A>            <FONT CLASS="FormalComment">/** XXX I really don't like this - the XML processor is still
+<FONT CLASS="LN">95</FONT><A NAME="595"></A>             * too 'involved' in the processing. A better solution (IMO)
+<FONT CLASS="LN">96</FONT><A NAME="596"></A>             * would be to create UE for Project and Target too, and
+<FONT CLASS="LN">97</FONT><A NAME="597"></A>             * then process the tree and have Project/Target deal with
+<FONT CLASS="LN">98</FONT><A NAME="598"></A>             * its attributes ( similar with Description ).
+<FONT CLASS="LN">99</FONT><A NAME="599"></A>             *
+<FONT CLASS="LN">00</FONT><A NAME="600"></A>             * If we eventually switch to ( or add support for ) DOM,
+<FONT CLASS="LN">01</FONT><A NAME="601"></A>             * things will work smoothly - UE can be avoided almost completely
+<FONT CLASS="LN">02</FONT><A NAME="602"></A>             * ( it could still be created on demand, for backward compatibility )
+<FONT CLASS="LN">03</FONT><A NAME="603"></A>             */</FONT>
+<FONT CLASS="LN">04</FONT><A NAME="604"></A>
+<FONT CLASS="LN">05</FONT><A NAME="605"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; attrs.getLength(); i++) {
+<FONT CLASS="LN">06</FONT><A NAME="606"></A>                String attrUri = attrs.getURI(i);
+<FONT CLASS="LN">07</FONT><A NAME="607"></A>                <FONT CLASS="If">if</FONT> (attrUri != <FONT CLASS="Null">null</FONT>
+<FONT CLASS="LN">08</FONT><A NAME="608"></A>                    &amp;&amp; !attrUri.equals(<FONT CLASS="StringLiteral">""</FONT>)
+<FONT CLASS="LN">09</FONT><A NAME="609"></A>                    &amp;&amp; !attrUri.equals(uri)) {
+<FONT CLASS="LN">10</FONT><A NAME="610"></A>                    <FONT CLASS="Continue">continue</FONT>; <FONT CLASS="SingleLineComment">// Ignore attributes from unknown uris
+<FONT CLASS="LN">11</FONT><A NAME="611"></A></FONT>                }
+<FONT CLASS="LN">12</FONT><A NAME="612"></A>                String key = attrs.getLocalName(i);
+<FONT CLASS="LN">13</FONT><A NAME="613"></A>                String value = attrs.getValue(i);
+<FONT CLASS="LN">14</FONT><A NAME="614"></A>
+<FONT CLASS="LN">15</FONT><A NAME="615"></A>                <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"default"</FONT>)) {
+<FONT CLASS="LN">16</FONT><A NAME="616"></A>                    <FONT CLASS="If">if</FONT> (value != <FONT CLASS="Null">null</FONT> &amp;&amp; !value.equals(<FONT CLASS="StringLiteral">""</FONT>)) {
+<FONT CLASS="LN">17</FONT><A NAME="617"></A>                        <FONT CLASS="If">if</FONT> (!context.isIgnoringProjectTag()) {
+<FONT CLASS="LN">18</FONT><A NAME="618"></A>                            project.setDefault(value);
+<FONT CLASS="LN">19</FONT><A NAME="619"></A>                        }
+<FONT CLASS="LN">20</FONT><A NAME="620"></A>                    }
+<FONT CLASS="LN">21</FONT><A NAME="621"></A>                } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"name"</FONT>)) {
+<FONT CLASS="LN">22</FONT><A NAME="622"></A>                    <FONT CLASS="If">if</FONT> (value != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">23</FONT><A NAME="623"></A>                        context.setCurrentProjectName(value);
+<FONT CLASS="LN">24</FONT><A NAME="624"></A>                        nameAttributeSet = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">25</FONT><A NAME="625"></A>                        <FONT CLASS="If">if</FONT> (!context.isIgnoringProjectTag()) {
+<FONT CLASS="LN">26</FONT><A NAME="626"></A>                            project.setName(value);
+<FONT CLASS="LN">27</FONT><A NAME="627"></A>                            project.addReference(value, project);
+<FONT CLASS="LN">28</FONT><A NAME="628"></A>                        }
+<FONT CLASS="LN">29</FONT><A NAME="629"></A>                    }
+<FONT CLASS="LN">30</FONT><A NAME="630"></A>                } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"id"</FONT>)) {
+<FONT CLASS="LN">31</FONT><A NAME="631"></A>                    <FONT CLASS="If">if</FONT> (value != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">32</FONT><A NAME="632"></A>                        <FONT CLASS="SingleLineComment">// What's the difference between id and name ?
+<FONT CLASS="LN">33</FONT><A NAME="633"></A></FONT>                        <FONT CLASS="If">if</FONT> (!context.isIgnoringProjectTag()) {
+<FONT CLASS="LN">34</FONT><A NAME="634"></A>                            project.addReference(value, project);
+<FONT CLASS="LN">35</FONT><A NAME="635"></A>                        }
+<FONT CLASS="LN">36</FONT><A NAME="636"></A>                    }
+<FONT CLASS="LN">37</FONT><A NAME="637"></A>                } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"basedir"</FONT>)) {
+<FONT CLASS="LN">38</FONT><A NAME="638"></A>                    <FONT CLASS="If">if</FONT> (!context.isIgnoringProjectTag()) {
+<FONT CLASS="LN">39</FONT><A NAME="639"></A>                        baseDir = value;
+<FONT CLASS="LN">40</FONT><A NAME="640"></A>                    }
+<FONT CLASS="LN">41</FONT><A NAME="641"></A>                } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">42</FONT><A NAME="642"></A>                    <FONT CLASS="SingleLineComment">// XXX ignore attributes in a different NS ( maybe store them ? )
+<FONT CLASS="LN">43</FONT><A NAME="643"></A></FONT>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> SAXParseException(<FONT CLASS="StringLiteral">"Unexpected attribute \""</FONT>
+<FONT CLASS="LN">44</FONT><A NAME="644"></A>                        + attrs.getQName(i) + <FONT CLASS="StringLiteral">"\""</FONT>, context.getLocator());
+<FONT CLASS="LN">45</FONT><A NAME="645"></A>                }
+<FONT CLASS="LN">46</FONT><A NAME="646"></A>            }
+<FONT CLASS="LN">47</FONT><A NAME="647"></A>
+<FONT CLASS="LN">48</FONT><A NAME="648"></A>            <FONT CLASS="SingleLineComment">// XXX Move to Project ( so it is shared by all helpers )
+<FONT CLASS="LN">49</FONT><A NAME="649"></A></FONT>            String antFileProp = <FONT CLASS="StringLiteral">"ant.file."</FONT> + context.getCurrentProjectName();
+<FONT CLASS="LN">50</FONT><A NAME="650"></A>            String dup = project.getProperty(antFileProp);
+<FONT CLASS="LN">51</FONT><A NAME="651"></A>            <FONT CLASS="If">if</FONT> (dup != <FONT CLASS="Null">null</FONT> &amp;&amp; nameAttributeSet) {
+<FONT CLASS="LN">52</FONT><A NAME="652"></A>                File dupFile = <FONT CLASS="New">new</FONT> File(dup);
+<FONT CLASS="LN">53</FONT><A NAME="653"></A>                <FONT CLASS="If">if</FONT> (context.isIgnoringProjectTag()
+<FONT CLASS="LN">54</FONT><A NAME="654"></A>                    &amp;&amp; !dupFile.equals(context.getBuildFile())) {
+<FONT CLASS="LN">55</FONT><A NAME="655"></A>                    project.log(<FONT CLASS="StringLiteral">"Duplicated project name in import. Project "</FONT>
+<FONT CLASS="LN">56</FONT><A NAME="656"></A>                        + context.getCurrentProjectName() + <FONT CLASS="StringLiteral">" defined first in "</FONT>
+<FONT CLASS="LN">57</FONT><A NAME="657"></A>                        + dup + <FONT CLASS="StringLiteral">" and again in "</FONT> + context.getBuildFile(),
+<FONT CLASS="LN">58</FONT><A NAME="658"></A>                        Project.MSG_WARN);
+<FONT CLASS="LN">59</FONT><A NAME="659"></A>                }
+<FONT CLASS="LN">60</FONT><A NAME="660"></A>            }
+<FONT CLASS="LN">61</FONT><A NAME="661"></A>
+<FONT CLASS="LN">62</FONT><A NAME="662"></A>            <FONT CLASS="If">if</FONT> (context.getBuildFile() != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">63</FONT><A NAME="663"></A>                project.setUserProperty(<FONT CLASS="StringLiteral">"ant.file."</FONT>
+<FONT CLASS="LN">64</FONT><A NAME="664"></A>                    + context.getCurrentProjectName(),
+<FONT CLASS="LN">65</FONT><A NAME="665"></A>                    context.getBuildFile().toString());
+<FONT CLASS="LN">66</FONT><A NAME="666"></A>            }
+<FONT CLASS="LN">67</FONT><A NAME="667"></A>
+<FONT CLASS="LN">68</FONT><A NAME="668"></A>            <FONT CLASS="If">if</FONT> (context.isIgnoringProjectTag()) {
+<FONT CLASS="LN">69</FONT><A NAME="669"></A>                <FONT CLASS="SingleLineComment">// no further processing
+<FONT CLASS="LN">70</FONT><A NAME="670"></A></FONT>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">71</FONT><A NAME="671"></A>            }
+<FONT CLASS="LN">72</FONT><A NAME="672"></A>            <FONT CLASS="SingleLineComment">// set explicitly before starting ?
+<FONT CLASS="LN">73</FONT><A NAME="673"></A></FONT>            <FONT CLASS="If">if</FONT> (project.getProperty(<FONT CLASS="StringLiteral">"basedir"</FONT>) != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">74</FONT><A NAME="674"></A>                project.setBasedir(project.getProperty(<FONT CLASS="StringLiteral">"basedir"</FONT>));
+<FONT CLASS="LN">75</FONT><A NAME="675"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">76</FONT><A NAME="676"></A>                <FONT CLASS="SingleLineComment">// Default for baseDir is the location of the build file.
+<FONT CLASS="LN">77</FONT><A NAME="677"></A></FONT>                <FONT CLASS="If">if</FONT> (baseDir == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">78</FONT><A NAME="678"></A>                    project.setBasedir(context.getBuildFileParent().getAbsolutePath());
+<FONT CLASS="LN">79</FONT><A NAME="679"></A>                } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">80</FONT><A NAME="680"></A>                    <FONT CLASS="SingleLineComment">// check whether the user has specified an absolute path
+<FONT CLASS="LN">81</FONT><A NAME="681"></A></FONT>                    <FONT CLASS="If">if</FONT> ((<FONT CLASS="New">new</FONT> File(baseDir)).isAbsolute()) {
+<FONT CLASS="LN">82</FONT><A NAME="682"></A>                        project.setBasedir(baseDir);
+<FONT CLASS="LN">83</FONT><A NAME="683"></A>                    } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">84</FONT><A NAME="684"></A>                        project.setBaseDir(fu.resolveFile(
+<FONT CLASS="LN">85</FONT><A NAME="685"></A>                                               context.getBuildFileParent(), baseDir));
+<FONT CLASS="LN">86</FONT><A NAME="686"></A>                    }
+<FONT CLASS="LN">87</FONT><A NAME="687"></A>                }
+<FONT CLASS="LN">88</FONT><A NAME="688"></A>            }
+<FONT CLASS="LN">89</FONT><A NAME="689"></A>
+<FONT CLASS="LN">90</FONT><A NAME="690"></A>            project.addTarget(<FONT CLASS="StringLiteral">""</FONT>, context.getImplicitTarget());
+<FONT CLASS="LN">91</FONT><A NAME="691"></A>            context.setCurrentTarget(context.getImplicitTarget());
+<FONT CLASS="LN">92</FONT><A NAME="692"></A>        }
+<FONT CLASS="LN">93</FONT><A NAME="693"></A>
+<FONT CLASS="LN">94</FONT><A NAME="694"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">95</FONT><A NAME="695"></A>         * Handles the start of a top-level element within the project. An
+<FONT CLASS="LN">96</FONT><A NAME="696"></A>         * appropriate handler is created and initialised with the details
+<FONT CLASS="LN">97</FONT><A NAME="697"></A>         * of the element.
+<FONT CLASS="LN">98</FONT><A NAME="698"></A>         *
+<FONT CLASS="LN">99</FONT><A NAME="699"></A>         * @param uri The namespace URI for this element.
+<FONT CLASS="LN">00</FONT><A NAME="700"></A>         * @param name The name of the element being started.
+<FONT CLASS="LN">01</FONT><A NAME="701"></A>         *            Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">02</FONT><A NAME="702"></A>         * @param qname The qualified name for this element.
+<FONT CLASS="LN">03</FONT><A NAME="703"></A>         * @param attrs Attributes of the element being started.
+<FONT CLASS="LN">04</FONT><A NAME="704"></A>         *              Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">05</FONT><A NAME="705"></A>         * @param context The context for this element.
+<FONT CLASS="LN">06</FONT><A NAME="706"></A>         * @return a target or an element handler.
+<FONT CLASS="LN">07</FONT><A NAME="707"></A>         *
+<FONT CLASS="LN">08</FONT><A NAME="708"></A>         * @exception org.xml.sax.SAXParseException if the tag given is not
+<FONT CLASS="LN">09</FONT><A NAME="709"></A>         *            &lt;code&gt;"taskdef"&lt;/code&gt;, &lt;code&gt;"typedef"&lt;/code&gt;,
+<FONT CLASS="LN">10</FONT><A NAME="710"></A>         *            &lt;code&gt;"property"&lt;/code&gt;, &lt;code&gt;"target"&lt;/code&gt;
+<FONT CLASS="LN">11</FONT><A NAME="711"></A>         *            or a data type definition
+<FONT CLASS="LN">12</FONT><A NAME="712"></A>         */</FONT>
+<FONT CLASS="LN">13</FONT><A NAME="713"></A>        <FONT CLASS="Public">public</FONT> AntHandler onStartChild(String uri, String name, String qname,
+<FONT CLASS="LN">14</FONT><A NAME="714"></A>                                       Attributes attrs,
+<FONT CLASS="LN">15</FONT><A NAME="715"></A>                                       AntXMLContext context)
+<FONT CLASS="LN">16</FONT><A NAME="716"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">17</FONT><A NAME="717"></A>            <FONT CLASS="If">if</FONT> (name.equals(<FONT CLASS="StringLiteral">"target"</FONT>)
+<FONT CLASS="LN">18</FONT><A NAME="718"></A>                &amp;&amp; (uri.equals(<FONT CLASS="StringLiteral">""</FONT>) || uri.equals(ANT_CORE_URI))) {
+<FONT CLASS="LN">19</FONT><A NAME="719"></A>                <FONT CLASS="Return">return</FONT> ProjectHelper3.targetHandler;
+<FONT CLASS="LN">20</FONT><A NAME="720"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">21</FONT><A NAME="721"></A>                <FONT CLASS="Return">return</FONT> ProjectHelper3.elementHandler;
+<FONT CLASS="LN">22</FONT><A NAME="722"></A>            }
+<FONT CLASS="LN">23</FONT><A NAME="723"></A>        }
+<FONT CLASS="LN">24</FONT><A NAME="724"></A>
+<FONT CLASS="LN">25</FONT><A NAME="725"></A>    }
+<FONT CLASS="LN">26</FONT><A NAME="726"></A>
+<FONT CLASS="LN">27</FONT><A NAME="727"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="728"></A>     * Handler for "target" elements.
+<FONT CLASS="LN">29</FONT><A NAME="729"></A>     */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="730"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> TargetHandler <FONT CLASS="Extends">extends</FONT> AntHandler {
+<FONT CLASS="LN">31</FONT><A NAME="731"></A>
+<FONT CLASS="LN">32</FONT><A NAME="732"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="733"></A>         * Initialisation routine called after handler creation
+<FONT CLASS="LN">34</FONT><A NAME="734"></A>         * with the element name and attributes. The attributes which
+<FONT CLASS="LN">35</FONT><A NAME="735"></A>         * this handler can deal with are: &lt;code&gt;"name"&lt;/code&gt;,
+<FONT CLASS="LN">36</FONT><A NAME="736"></A>         * &lt;code&gt;"depends"&lt;/code&gt;, &lt;code&gt;"if"&lt;/code&gt;,
+<FONT CLASS="LN">37</FONT><A NAME="737"></A>         * &lt;code&gt;"unless"&lt;/code&gt;, &lt;code&gt;"id"&lt;/code&gt; and
+<FONT CLASS="LN">38</FONT><A NAME="738"></A>         * &lt;code&gt;"description"&lt;/code&gt;.
+<FONT CLASS="LN">39</FONT><A NAME="739"></A>         *
+<FONT CLASS="LN">40</FONT><A NAME="740"></A>         * @param uri The namespace URI for this element.
+<FONT CLASS="LN">41</FONT><A NAME="741"></A>         * @param tag Name of the element which caused this handler
+<FONT CLASS="LN">42</FONT><A NAME="742"></A>         *            to be created. Should not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">43</FONT><A NAME="743"></A>         *            Ignored in this implementation.
+<FONT CLASS="LN">44</FONT><A NAME="744"></A>         * @param qname The qualified name for this element.
+<FONT CLASS="LN">45</FONT><A NAME="745"></A>         * @param attrs Attributes of the element which caused this
+<FONT CLASS="LN">46</FONT><A NAME="746"></A>         *              handler to be created. Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">47</FONT><A NAME="747"></A>         * @param context The current context.
+<FONT CLASS="LN">48</FONT><A NAME="748"></A>         *
+<FONT CLASS="LN">49</FONT><A NAME="749"></A>         * @exception SAXParseException if an unexpected attribute is encountered
+<FONT CLASS="LN">50</FONT><A NAME="750"></A>         *            or if the &lt;code&gt;"name"&lt;/code&gt; attribute is missing.
+<FONT CLASS="LN">51</FONT><A NAME="751"></A>         */</FONT>
+<FONT CLASS="LN">52</FONT><A NAME="752"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> onStartElement(String uri, String tag, String qname,
+<FONT CLASS="LN">53</FONT><A NAME="753"></A>                                   Attributes attrs,
+<FONT CLASS="LN">54</FONT><A NAME="754"></A>                                   AntXMLContext context)
+<FONT CLASS="LN">55</FONT><A NAME="755"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">56</FONT><A NAME="756"></A>            String name = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="757"></A>            String depends = <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="758"></A>
+<FONT CLASS="LN">59</FONT><A NAME="759"></A>            Project project = context.getProject();
+<FONT CLASS="LN">60</FONT><A NAME="760"></A>            Target target = <FONT CLASS="New">new</FONT> Target();
+<FONT CLASS="LN">61</FONT><A NAME="761"></A>            target.setProject(project);
+<FONT CLASS="LN">62</FONT><A NAME="762"></A>            context.addTarget(target);
+<FONT CLASS="LN">63</FONT><A NAME="763"></A>
+<FONT CLASS="LN">64</FONT><A NAME="764"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; attrs.getLength(); i++) {
+<FONT CLASS="LN">65</FONT><A NAME="765"></A>                String attrUri = attrs.getURI(i);
+<FONT CLASS="LN">66</FONT><A NAME="766"></A>                <FONT CLASS="If">if</FONT> (attrUri != <FONT CLASS="Null">null</FONT>
+<FONT CLASS="LN">67</FONT><A NAME="767"></A>                    &amp;&amp; !attrUri.equals(<FONT CLASS="StringLiteral">""</FONT>)
+<FONT CLASS="LN">68</FONT><A NAME="768"></A>                    &amp;&amp; !attrUri.equals(uri)) {
+<FONT CLASS="LN">69</FONT><A NAME="769"></A>                    <FONT CLASS="Continue">continue</FONT>; <FONT CLASS="SingleLineComment">// Ignore attributes from unknown uris
+<FONT CLASS="LN">70</FONT><A NAME="770"></A></FONT>                }
+<FONT CLASS="LN">71</FONT><A NAME="771"></A>                String key = attrs.getLocalName(i);
+<FONT CLASS="LN">72</FONT><A NAME="772"></A>                String value = attrs.getValue(i);
+<FONT CLASS="LN">73</FONT><A NAME="773"></A>
+<FONT CLASS="LN">74</FONT><A NAME="774"></A>                <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"name"</FONT>)) {
+<FONT CLASS="LN">75</FONT><A NAME="775"></A>                    name = value;
+<FONT CLASS="LN">76</FONT><A NAME="776"></A>                    <FONT CLASS="If">if</FONT> (<FONT CLASS="StringLiteral">""</FONT>.equals(name)) {
+<FONT CLASS="LN">77</FONT><A NAME="777"></A>                        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"name attribute must "</FONT>
+<FONT CLASS="LN">78</FONT><A NAME="778"></A>                            + <FONT CLASS="StringLiteral">"not be empty"</FONT>);
+<FONT CLASS="LN">79</FONT><A NAME="779"></A>                    }
+<FONT CLASS="LN">80</FONT><A NAME="780"></A>                } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"depends"</FONT>)) {
+<FONT CLASS="LN">81</FONT><A NAME="781"></A>                    depends = value;
+<FONT CLASS="LN">82</FONT><A NAME="782"></A>                } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"if"</FONT>)) {
+<FONT CLASS="LN">83</FONT><A NAME="783"></A>                    target.setIf(value);
+<FONT CLASS="LN">84</FONT><A NAME="784"></A>                } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"unless"</FONT>)) {
+<FONT CLASS="LN">85</FONT><A NAME="785"></A>                    target.setUnless(value);
+<FONT CLASS="LN">86</FONT><A NAME="786"></A>                } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"id"</FONT>)) {
+<FONT CLASS="LN">87</FONT><A NAME="787"></A>                    <FONT CLASS="If">if</FONT> (value != <FONT CLASS="Null">null</FONT> &amp;&amp; !value.equals(<FONT CLASS="StringLiteral">""</FONT>)) {
+<FONT CLASS="LN">88</FONT><A NAME="788"></A>                        context.getProject().addReference(value, target);
+<FONT CLASS="LN">89</FONT><A NAME="789"></A>                    }
+<FONT CLASS="LN">90</FONT><A NAME="790"></A>                } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (key.equals(<FONT CLASS="StringLiteral">"description"</FONT>)) {
+<FONT CLASS="LN">91</FONT><A NAME="791"></A>                    target.setDescription(value);
+<FONT CLASS="LN">92</FONT><A NAME="792"></A>                } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">93</FONT><A NAME="793"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> SAXParseException(<FONT CLASS="StringLiteral">"Unexpected attribute \""</FONT>
+<FONT CLASS="LN">94</FONT><A NAME="794"></A>                        + key + <FONT CLASS="StringLiteral">"\""</FONT>, context.getLocator());
+<FONT CLASS="LN">95</FONT><A NAME="795"></A>                }
+<FONT CLASS="LN">96</FONT><A NAME="796"></A>            }
+<FONT CLASS="LN">97</FONT><A NAME="797"></A>
+<FONT CLASS="LN">98</FONT><A NAME="798"></A>            <FONT CLASS="If">if</FONT> (name == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">99</FONT><A NAME="799"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> SAXParseException(<FONT CLASS="StringLiteral">"target element appears without "</FONT>
+<FONT CLASS="LN">00</FONT><A NAME="800"></A>                    + <FONT CLASS="StringLiteral">"a name attribute"</FONT>, context.getLocator());
+<FONT CLASS="LN">01</FONT><A NAME="801"></A>            }
+<FONT CLASS="LN">02</FONT><A NAME="802"></A>
+<FONT CLASS="LN">03</FONT><A NAME="803"></A>            Hashtable currentTargets = project.getTargets();
+<FONT CLASS="LN">04</FONT><A NAME="804"></A>
+<FONT CLASS="LN">05</FONT><A NAME="805"></A>            <FONT CLASS="SingleLineComment">// If the name has already been defined ( import for example )
+<FONT CLASS="LN">06</FONT><A NAME="806"></A></FONT>            <FONT CLASS="If">if</FONT> (currentTargets.containsKey(name)) {
+<FONT CLASS="LN">07</FONT><A NAME="807"></A>                <FONT CLASS="If">if</FONT> (!context.isIgnoringProjectTag()) {
+<FONT CLASS="LN">08</FONT><A NAME="808"></A>                    <FONT CLASS="SingleLineComment">// not in a import'ed file
+<FONT CLASS="LN">09</FONT><A NAME="809"></A></FONT>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(
+<FONT CLASS="LN">10</FONT><A NAME="810"></A>                        <FONT CLASS="StringLiteral">"Duplicate target '"</FONT> + name + <FONT CLASS="StringLiteral">"'"</FONT>,
+<FONT CLASS="LN">11</FONT><A NAME="811"></A>                        <FONT CLASS="New">new</FONT> Location(context.getLocator().getSystemId(),
+<FONT CLASS="LN">12</FONT><A NAME="812"></A>                                     context.getLocator().getLineNumber(),
+<FONT CLASS="LN">13</FONT><A NAME="813"></A>                                     context.getLocator().getColumnNumber()));
+<FONT CLASS="LN">14</FONT><A NAME="814"></A>                }
+<FONT CLASS="LN">15</FONT><A NAME="815"></A>                <FONT CLASS="SingleLineComment">// Alter the name.
+<FONT CLASS="LN">16</FONT><A NAME="816"></A></FONT>                <FONT CLASS="If">if</FONT> (context.getCurrentProjectName() != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">17</FONT><A NAME="817"></A>                    String newName = context.getCurrentProjectName()
+<FONT CLASS="LN">18</FONT><A NAME="818"></A>                        + <FONT CLASS="StringLiteral">"."</FONT> + name;
+<FONT CLASS="LN">19</FONT><A NAME="819"></A>                    project.log(<FONT CLASS="StringLiteral">"Already defined in main or a previous import, "</FONT>
+<FONT CLASS="LN">20</FONT><A NAME="820"></A>                        + <FONT CLASS="StringLiteral">"define "</FONT> + name + <FONT CLASS="StringLiteral">" as "</FONT> + newName,
+<FONT CLASS="LN">21</FONT><A NAME="821"></A>                                Project.MSG_VERBOSE);
+<FONT CLASS="LN">22</FONT><A NAME="822"></A>                    name = newName;
+<FONT CLASS="LN">23</FONT><A NAME="823"></A>                } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">24</FONT><A NAME="824"></A>                    project.log(<FONT CLASS="StringLiteral">"Already defined in main or a previous import, "</FONT>
+<FONT CLASS="LN">25</FONT><A NAME="825"></A>                        + <FONT CLASS="StringLiteral">"ignore "</FONT> + name, Project.MSG_VERBOSE);
+<FONT CLASS="LN">26</FONT><A NAME="826"></A>                    name = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">27</FONT><A NAME="827"></A>                }
+<FONT CLASS="LN">28</FONT><A NAME="828"></A>            }
+<FONT CLASS="LN">29</FONT><A NAME="829"></A>
+<FONT CLASS="LN">30</FONT><A NAME="830"></A>            <FONT CLASS="If">if</FONT> (name != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">31</FONT><A NAME="831"></A>                target.setName(name);
+<FONT CLASS="LN">32</FONT><A NAME="832"></A>                project.addOrReplaceTarget(name, target);
+<FONT CLASS="LN">33</FONT><A NAME="833"></A>            }
+<FONT CLASS="LN">34</FONT><A NAME="834"></A>
+<FONT CLASS="LN">35</FONT><A NAME="835"></A>            <FONT CLASS="SingleLineComment">// take care of dependencies
+<FONT CLASS="LN">36</FONT><A NAME="836"></A></FONT>            <FONT CLASS="If">if</FONT> (depends.length() &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">37</FONT><A NAME="837"></A>                target.setDepends(depends);
+<FONT CLASS="LN">38</FONT><A NAME="838"></A>            }
+<FONT CLASS="LN">39</FONT><A NAME="839"></A>        }
+<FONT CLASS="LN">40</FONT><A NAME="840"></A>
+<FONT CLASS="LN">41</FONT><A NAME="841"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">42</FONT><A NAME="842"></A>         * Handles the start of an element within a target.
+<FONT CLASS="LN">43</FONT><A NAME="843"></A>         *
+<FONT CLASS="LN">44</FONT><A NAME="844"></A>         * @param uri The namespace URI for this element.
+<FONT CLASS="LN">45</FONT><A NAME="845"></A>         * @param name The name of the element being started.
+<FONT CLASS="LN">46</FONT><A NAME="846"></A>         *            Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">47</FONT><A NAME="847"></A>         * @param qname The qualified name for this element.
+<FONT CLASS="LN">48</FONT><A NAME="848"></A>         * @param attrs Attributes of the element being started.
+<FONT CLASS="LN">49</FONT><A NAME="849"></A>         *              Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">50</FONT><A NAME="850"></A>         * @param context The current context.
+<FONT CLASS="LN">51</FONT><A NAME="851"></A>         * @return an element handler.
+<FONT CLASS="LN">52</FONT><A NAME="852"></A>         *
+<FONT CLASS="LN">53</FONT><A NAME="853"></A>         * @exception SAXParseException if an error occurs when initialising
+<FONT CLASS="LN">54</FONT><A NAME="854"></A>         *                              the appropriate child handler
+<FONT CLASS="LN">55</FONT><A NAME="855"></A>         */</FONT>
+<FONT CLASS="LN">56</FONT><A NAME="856"></A>        <FONT CLASS="Public">public</FONT> AntHandler onStartChild(String uri, String name, String qname,
+<FONT CLASS="LN">57</FONT><A NAME="857"></A>                                       Attributes attrs,
+<FONT CLASS="LN">58</FONT><A NAME="858"></A>                                       AntXMLContext context)
+<FONT CLASS="LN">59</FONT><A NAME="859"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">60</FONT><A NAME="860"></A>            <FONT CLASS="Return">return</FONT> ProjectHelper3.elementHandler;
+<FONT CLASS="LN">61</FONT><A NAME="861"></A>        }
+<FONT CLASS="LN">62</FONT><A NAME="862"></A>
+<FONT CLASS="LN">63</FONT><A NAME="863"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">64</FONT><A NAME="864"></A>         * Handle the end of the project, sets the current target of the
+<FONT CLASS="LN">65</FONT><A NAME="865"></A>         * context to be the implicit target.
+<FONT CLASS="LN">66</FONT><A NAME="866"></A>         *
+<FONT CLASS="LN">67</FONT><A NAME="867"></A>         * @param uri The namespace URI of the element.
+<FONT CLASS="LN">68</FONT><A NAME="868"></A>         * @param tag The name of the element.
+<FONT CLASS="LN">69</FONT><A NAME="869"></A>         * @param context The current context.
+<FONT CLASS="LN">70</FONT><A NAME="870"></A>         */</FONT>
+<FONT CLASS="LN">71</FONT><A NAME="871"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> onEndElement(String uri, String tag, AntXMLContext context) {
+<FONT CLASS="LN">72</FONT><A NAME="872"></A>            context.setCurrentTarget(context.getImplicitTarget());
+<FONT CLASS="LN">73</FONT><A NAME="873"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="874"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="875"></A>
+<FONT CLASS="LN">76</FONT><A NAME="876"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">77</FONT><A NAME="877"></A>     * Handler for all project elements ( tasks, data types )
+<FONT CLASS="LN">78</FONT><A NAME="878"></A>     */</FONT>
+<FONT CLASS="LN">79</FONT><A NAME="879"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> ElementHandler <FONT CLASS="Extends">extends</FONT> AntHandler {
+<FONT CLASS="LN">80</FONT><A NAME="880"></A>
+<FONT CLASS="LN">81</FONT><A NAME="881"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">82</FONT><A NAME="882"></A>         * Constructor.
+<FONT CLASS="LN">83</FONT><A NAME="883"></A>         */</FONT>
+<FONT CLASS="LN">84</FONT><A NAME="884"></A>        <FONT CLASS="Public">public</FONT> ElementHandler() {
+<FONT CLASS="LN">85</FONT><A NAME="885"></A>        }
+<FONT CLASS="LN">86</FONT><A NAME="886"></A>
+<FONT CLASS="LN">87</FONT><A NAME="887"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">88</FONT><A NAME="888"></A>         * Initialisation routine called after handler creation
+<FONT CLASS="LN">89</FONT><A NAME="889"></A>         * with the element name and attributes. This configures
+<FONT CLASS="LN">90</FONT><A NAME="890"></A>         * the element with its attributes and sets it up with
+<FONT CLASS="LN">91</FONT><A NAME="891"></A>         * its parent container (if any). Nested elements are then
+<FONT CLASS="LN">92</FONT><A NAME="892"></A>         * added later as the parser encounters them.
+<FONT CLASS="LN">93</FONT><A NAME="893"></A>         *
+<FONT CLASS="LN">94</FONT><A NAME="894"></A>         * @param uri The namespace URI for this element.
+<FONT CLASS="LN">95</FONT><A NAME="895"></A>         * @param tag Name of the element which caused this handler
+<FONT CLASS="LN">96</FONT><A NAME="896"></A>         *            to be created. Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">97</FONT><A NAME="897"></A>         * @param qname The qualified name for this element.
+<FONT CLASS="LN">98</FONT><A NAME="898"></A>         * @param attrs Attributes of the element which caused this
+<FONT CLASS="LN">99</FONT><A NAME="899"></A>         *              handler to be created. Must not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">00</FONT><A NAME="900"></A>         * @param context The current context.
+<FONT CLASS="LN">01</FONT><A NAME="901"></A>         *
+<FONT CLASS="LN">02</FONT><A NAME="902"></A>         * @exception SAXParseException in case of error (not thrown in
+<FONT CLASS="LN">03</FONT><A NAME="903"></A>         *                              this implementation)
+<FONT CLASS="LN">04</FONT><A NAME="904"></A>         */</FONT>
+<FONT CLASS="LN">05</FONT><A NAME="905"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> onStartElement(String uri, String tag, String qname,
+<FONT CLASS="LN">06</FONT><A NAME="906"></A>                                   Attributes attrs,
+<FONT CLASS="LN">07</FONT><A NAME="907"></A>                                   AntXMLContext context)
+<FONT CLASS="LN">08</FONT><A NAME="908"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">09</FONT><A NAME="909"></A>            RuntimeConfigurable parentWrapper = context.currentWrapper();
+<FONT CLASS="LN">10</FONT><A NAME="910"></A>            Object parent = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">11</FONT><A NAME="911"></A>
+<FONT CLASS="LN">12</FONT><A NAME="912"></A>            <FONT CLASS="If">if</FONT> (parentWrapper != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">13</FONT><A NAME="913"></A>                parent = parentWrapper.getProxy();
+<FONT CLASS="LN">14</FONT><A NAME="914"></A>            }
+<FONT CLASS="LN">15</FONT><A NAME="915"></A>
+<FONT CLASS="LN">16</FONT><A NAME="916"></A>            <FONT CLASS="MultiLineComment">/* UnknownElement is used for tasks and data types - with
+<FONT CLASS="LN">17</FONT><A NAME="917"></A>               delayed eval */</FONT>
+<FONT CLASS="LN">18</FONT><A NAME="918"></A>            UnknownElement task = <FONT CLASS="New">new</FONT> UnknownElement(tag);
+<FONT CLASS="LN">19</FONT><A NAME="919"></A>            task.setProject(context.getProject());
+<FONT CLASS="LN">20</FONT><A NAME="920"></A>            task.setNamespace(uri);
+<FONT CLASS="LN">21</FONT><A NAME="921"></A>            task.setQName(qname);
+<FONT CLASS="LN">22</FONT><A NAME="922"></A>            task.setTaskType(
+<FONT CLASS="LN">23</FONT><A NAME="923"></A>                ProjectHelper.genComponentName(task.getNamespace(), tag));
+<FONT CLASS="LN">24</FONT><A NAME="924"></A>            task.setTaskName(qname);
+<FONT CLASS="LN">25</FONT><A NAME="925"></A>
+<FONT CLASS="LN">26</FONT><A NAME="926"></A>            Location location = <FONT CLASS="New">new</FONT> Location(context.getLocator().getSystemId(),
+<FONT CLASS="LN">27</FONT><A NAME="927"></A>                    context.getLocator().getLineNumber(),
+<FONT CLASS="LN">28</FONT><A NAME="928"></A>                    context.getLocator().getColumnNumber());
+<FONT CLASS="LN">29</FONT><A NAME="929"></A>            task.setLocation(location);
+<FONT CLASS="LN">30</FONT><A NAME="930"></A>            task.setOwningTarget(context.getCurrentTarget());
+<FONT CLASS="LN">31</FONT><A NAME="931"></A>
+<FONT CLASS="LN">32</FONT><A NAME="932"></A>            context.configureId(task, attrs);
+<FONT CLASS="LN">33</FONT><A NAME="933"></A>
+<FONT CLASS="LN">34</FONT><A NAME="934"></A>            <FONT CLASS="If">if</FONT> (parent != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">35</FONT><A NAME="935"></A>                <FONT CLASS="SingleLineComment">// Nested element
+<FONT CLASS="LN">36</FONT><A NAME="936"></A></FONT>                ((UnknownElement) parent).addChild(task);
+<FONT CLASS="LN">37</FONT><A NAME="937"></A>            }  <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">38</FONT><A NAME="938"></A>                <FONT CLASS="SingleLineComment">// Task included in a target ( including the default one ).
+<FONT CLASS="LN">39</FONT><A NAME="939"></A></FONT>                context.getCurrentTarget().addTask(task);
+<FONT CLASS="LN">40</FONT><A NAME="940"></A>            }
+<FONT CLASS="LN">41</FONT><A NAME="941"></A>
+<FONT CLASS="LN">42</FONT><A NAME="942"></A>            <FONT CLASS="SingleLineComment">// container.addTask(task);
+<FONT CLASS="LN">43</FONT><A NAME="943"></A></FONT>            <FONT CLASS="SingleLineComment">// This is a nop in UE: task.init();
+<FONT CLASS="LN">44</FONT><A NAME="944"></A></FONT>
+<FONT CLASS="LN">45</FONT><A NAME="945"></A>            RuntimeConfigurable wrapper
+<FONT CLASS="LN">46</FONT><A NAME="946"></A>                = <FONT CLASS="New">new</FONT> RuntimeConfigurable(task, task.getTaskName());
+<FONT CLASS="LN">47</FONT><A NAME="947"></A>
+<FONT CLASS="LN">48</FONT><A NAME="948"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; attrs.getLength(); i++) {
+<FONT CLASS="LN">49</FONT><A NAME="949"></A>                String name = attrs.getLocalName(i);
+<FONT CLASS="LN">50</FONT><A NAME="950"></A>                String attrUri = attrs.getURI(i);
+<FONT CLASS="LN">51</FONT><A NAME="951"></A>                <FONT CLASS="If">if</FONT> (attrUri != <FONT CLASS="Null">null</FONT>
+<FONT CLASS="LN">52</FONT><A NAME="952"></A>                    &amp;&amp; !attrUri.equals(<FONT CLASS="StringLiteral">""</FONT>)
+<FONT CLASS="LN">53</FONT><A NAME="953"></A>                    &amp;&amp; !attrUri.equals(uri)) {
+<FONT CLASS="LN">54</FONT><A NAME="954"></A>                    name = attrUri + <FONT CLASS="StringLiteral">":"</FONT> + attrs.getQName(i);
+<FONT CLASS="LN">55</FONT><A NAME="955"></A>                }
+<FONT CLASS="LN">56</FONT><A NAME="956"></A>                String value = attrs.getValue(i);
+<FONT CLASS="LN">57</FONT><A NAME="957"></A>                <FONT CLASS="SingleLineComment">// PR: Hack for ant-type value
+<FONT CLASS="LN">58</FONT><A NAME="958"></A></FONT>                <FONT CLASS="SingleLineComment">//  an ant-type is a component name which can
+<FONT CLASS="LN">59</FONT><A NAME="959"></A></FONT>                <FONT CLASS="SingleLineComment">// be namespaced, need to extract the name
+<FONT CLASS="LN">60</FONT><A NAME="960"></A></FONT>                <FONT CLASS="SingleLineComment">// and convert from qualified name to uri/name
+<FONT CLASS="LN">61</FONT><A NAME="961"></A></FONT>                <FONT CLASS="If">if</FONT> (ANT_TYPE.equals(name)
+<FONT CLASS="LN">62</FONT><A NAME="962"></A>                    || (ANT_CORE_URI.equals(attrUri)
+<FONT CLASS="LN">63</FONT><A NAME="963"></A>                        &amp;&amp; ANT_TYPE.equals(attrs.getLocalName(i)))) {
+<FONT CLASS="LN">64</FONT><A NAME="964"></A>                    name = ANT_TYPE;
+<FONT CLASS="LN">65</FONT><A NAME="965"></A>                    <FONT CLASS="Int">int</FONT> index = value.indexOf(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">66</FONT><A NAME="966"></A>                    <FONT CLASS="If">if</FONT> (index != -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">67</FONT><A NAME="967"></A>                        String prefix = value.substring(<FONT CLASS="IntegerLiteral">0</FONT>, index);
+<FONT CLASS="LN">68</FONT><A NAME="968"></A>                        String mappedUri = context.getPrefixMapping(prefix);
+<FONT CLASS="LN">69</FONT><A NAME="969"></A>                        <FONT CLASS="If">if</FONT> (mappedUri == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">70</FONT><A NAME="970"></A>                            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(
+<FONT CLASS="LN">71</FONT><A NAME="971"></A>                                <FONT CLASS="StringLiteral">"Unable to find XML NS prefix "</FONT> + prefix);
+<FONT CLASS="LN">72</FONT><A NAME="972"></A>                        }
+<FONT CLASS="LN">73</FONT><A NAME="973"></A>                        value = ProjectHelper.genComponentName(
+<FONT CLASS="LN">74</FONT><A NAME="974"></A>                            mappedUri, value.substring(index + <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">75</FONT><A NAME="975"></A>                    }
+<FONT CLASS="LN">76</FONT><A NAME="976"></A>                }
+<FONT CLASS="LN">77</FONT><A NAME="977"></A>                wrapper.setAttribute(name, value);
+<FONT CLASS="LN">78</FONT><A NAME="978"></A>            }
+<FONT CLASS="LN">79</FONT><A NAME="979"></A>
+<FONT CLASS="LN">80</FONT><A NAME="980"></A>            <FONT CLASS="If">if</FONT> (parentWrapper != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">81</FONT><A NAME="981"></A>                parentWrapper.addChild(wrapper);
+<FONT CLASS="LN">82</FONT><A NAME="982"></A>            }
+<FONT CLASS="LN">83</FONT><A NAME="983"></A>
+<FONT CLASS="LN">84</FONT><A NAME="984"></A>            context.pushWrapper(wrapper);
+<FONT CLASS="LN">85</FONT><A NAME="985"></A>        }
+<FONT CLASS="LN">86</FONT><A NAME="986"></A>
+<FONT CLASS="LN">87</FONT><A NAME="987"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">88</FONT><A NAME="988"></A>         * Adds text to the task, using the wrapper
+<FONT CLASS="LN">89</FONT><A NAME="989"></A>         *
+<FONT CLASS="LN">90</FONT><A NAME="990"></A>         * @param buf A character array of the text within the element.
+<FONT CLASS="LN">91</FONT><A NAME="991"></A>         *            Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">92</FONT><A NAME="992"></A>         * @param start The start element in the array.
+<FONT CLASS="LN">93</FONT><A NAME="993"></A>         * @param count The number of characters to read from the array.
+<FONT CLASS="LN">94</FONT><A NAME="994"></A>         * @param context The current context.
+<FONT CLASS="LN">95</FONT><A NAME="995"></A>         *
+<FONT CLASS="LN">96</FONT><A NAME="996"></A>         * @exception SAXParseException if the element doesn't support text
+<FONT CLASS="LN">97</FONT><A NAME="997"></A>         *
+<FONT CLASS="LN">98</FONT><A NAME="998"></A>         * @see ProjectHelper#addText(Project,java.lang.Object,char[],int,int)
+<FONT CLASS="LN">99</FONT><A NAME="999"></A>         */</FONT>
+<FONT CLASS="LN">00</FONT><A NAME="1000"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> characters(<FONT CLASS="Char">char</FONT>[] buf, <FONT CLASS="Int">int</FONT> start, <FONT CLASS="Int">int</FONT> count,
+<FONT CLASS="LN">01</FONT><A NAME="1001"></A>                               AntXMLContext context)
+<FONT CLASS="LN">02</FONT><A NAME="1002"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">03</FONT><A NAME="1003"></A>            RuntimeConfigurable wrapper = context.currentWrapper();
+<FONT CLASS="LN">04</FONT><A NAME="1004"></A>            wrapper.addText(buf, start, count);
+<FONT CLASS="LN">05</FONT><A NAME="1005"></A>        }
+<FONT CLASS="LN">06</FONT><A NAME="1006"></A>
+<FONT CLASS="LN">07</FONT><A NAME="1007"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">08</FONT><A NAME="1008"></A>         * Handles the start of an element within a target. Task containers
+<FONT CLASS="LN">09</FONT><A NAME="1009"></A>         * will always use another task handler, and all other tasks
+<FONT CLASS="LN">10</FONT><A NAME="1010"></A>         * will always use a nested element handler.
+<FONT CLASS="LN">11</FONT><A NAME="1011"></A>         *
+<FONT CLASS="LN">12</FONT><A NAME="1012"></A>         * @param uri The namespace URI for this element.
+<FONT CLASS="LN">13</FONT><A NAME="1013"></A>         * @param tag The name of the element being started.
+<FONT CLASS="LN">14</FONT><A NAME="1014"></A>         *            Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">15</FONT><A NAME="1015"></A>         * @param qname The qualified name for this element.
+<FONT CLASS="LN">16</FONT><A NAME="1016"></A>         * @param attrs Attributes of the element being started.
+<FONT CLASS="LN">17</FONT><A NAME="1017"></A>         *              Will not be &lt;code&gt;null&lt;/code&gt;.
+<FONT CLASS="LN">18</FONT><A NAME="1018"></A>         * @param context The current context.
+<FONT CLASS="LN">19</FONT><A NAME="1019"></A>         * @return The handler for elements.
+<FONT CLASS="LN">20</FONT><A NAME="1020"></A>         *
+<FONT CLASS="LN">21</FONT><A NAME="1021"></A>         * @exception SAXParseException if an error occurs when initialising
+<FONT CLASS="LN">22</FONT><A NAME="1022"></A>         *                              the appropriate child handler
+<FONT CLASS="LN">23</FONT><A NAME="1023"></A>         */</FONT>
+<FONT CLASS="LN">24</FONT><A NAME="1024"></A>        <FONT CLASS="Public">public</FONT> AntHandler onStartChild(String uri, String tag, String qname,
+<FONT CLASS="LN">25</FONT><A NAME="1025"></A>                                       Attributes attrs,
+<FONT CLASS="LN">26</FONT><A NAME="1026"></A>                                       AntXMLContext context)
+<FONT CLASS="LN">27</FONT><A NAME="1027"></A>            <FONT CLASS="Throws">throws</FONT> SAXParseException {
+<FONT CLASS="LN">28</FONT><A NAME="1028"></A>            <FONT CLASS="Return">return</FONT> ProjectHelper3.elementHandler;
+<FONT CLASS="LN">29</FONT><A NAME="1029"></A>        }
+<FONT CLASS="LN">30</FONT><A NAME="1030"></A>
+<FONT CLASS="LN">31</FONT><A NAME="1031"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="1032"></A>         * Handles the end of the element. This pops the wrapper from
+<FONT CLASS="LN">33</FONT><A NAME="1033"></A>         * the context.
+<FONT CLASS="LN">34</FONT><A NAME="1034"></A>         *
+<FONT CLASS="LN">35</FONT><A NAME="1035"></A>         * @param uri The namespace URI for the element.
+<FONT CLASS="LN">36</FONT><A NAME="1036"></A>         * @param tag The name of the element.
+<FONT CLASS="LN">37</FONT><A NAME="1037"></A>         * @param context The current context.
+<FONT CLASS="LN">38</FONT><A NAME="1038"></A>         */</FONT>
+<FONT CLASS="LN">39</FONT><A NAME="1039"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> onEndElement(String uri, String tag, AntXMLContext context) {
+<FONT CLASS="LN">40</FONT><A NAME="1040"></A>            context.popWrapper();
+<FONT CLASS="LN">41</FONT><A NAME="1041"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="1042"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="1043"></A>}
+<FONT CLASS="LN">44</FONT><A NAME="1044"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/RegexpMatcherFactory.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/RegexpMatcherFactory.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/RegexpMatcherFactory.java.html	(revision 14989)
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.RegexpMatcherFactory (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">RegexpMatcherFactory.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.antmod.index.html" target="packageFrame">org.tp23.antinstaller.antmod</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.util.regexp.RegexpMatcher;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * This class exists because the default Regexp handler is not part of ant.jar
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * @author Paul Hinds
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @version $Id: RegexpMatcherFactory.java,v 1.2 2006/12/21 00:03:05 teknopaul Exp $
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> */</FONT>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> RegexpMatcherFactory {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>     * 
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>     */</FONT>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> RegexpMatcherFactory() {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> RegexpMatcher newRegexpMatcher() <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="Try">try</FONT>{
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> org.apache.tools.ant.util.regexp.RegexpMatcherFactory().newRegexpMatcher(<FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="Catch">catch</FONT>(BuildException be){
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/Jdk14RegexpMatcher.java.html">Jdk14RegexpMatcher</A>();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>}
+<FONT CLASS="LN">44</FONT><A NAME="44"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/RuntimeLauncher.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/RuntimeLauncher.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/RuntimeLauncher.java.html	(revision 14989)
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.RuntimeLauncher (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">RuntimeLauncher.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright  2003-2004 The Apache Software Foundation
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> *  Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *  you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> *  You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> *      http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> *  Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> *  distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> *  See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> *  limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> *
+<FONT CLASS="LN">16</FONT><A NAME="16"></A> */</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.antmod.index.html" target="packageFrame">org.tp23.antinstaller.antmod</A>;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.net.URL;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.HashMap;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.Map;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Project;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.ProjectHelper;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/taskdefs/LogTask.java.html">org.tp23.antinstaller.antmod.taskdefs.LogTask</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/taskdefs/MessageTask.java.html">org.tp23.antinstaller.antmod.taskdefs.MessageTask</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java.html">org.tp23.antinstaller.antmod.taskdefs.PropertyTask</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/ExecInstall.java.html">org.tp23.antinstaller.runtime.ExecInstall</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/selfextract/NonExtractor.java.html">org.tp23.antinstaller.selfextract.NonExtractor</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/selfextract/SelfExtractor.java.html">org.tp23.antinstaller.selfextract.SelfExtractor</A>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> * This is a launcher for Ant which swallows all messages and logs.
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> *
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * This file has been modified by Paul Hinds for Antinstaller and is not the same
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * as the one delivered with Ant 1.6
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> *
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * @since Ant 1.6
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * @version $Id$
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> */</FONT>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> RuntimeLauncher {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Static">static</FONT> String CONTEXT_REFERENCE = <FONT CLASS="StringLiteral">"antinstaller.internal.context"</FONT>;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> Map allProperties = <FONT CLASS="New">new</FONT> HashMap();
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> Project project = <FONT CLASS="New">new</FONT> Project();
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Public">public</FONT> RuntimeLauncher(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateProps(){
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        allProperties.clear();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        allProperties.putAll(InstallerContext.getEnvironment());
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        allProperties.putAll(ctx.getInstaller().getResultContainer().getAllProperties());
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="SingleLineComment">// add properties
+<FONT CLASS="LN">63</FONT><A NAME="63"></A></FONT>        String arg;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        String value;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        Iterator iter = allProperties.keySet().iterator();
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="While">while</FONT> (iter.hasNext()) {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            arg = (String) iter.next();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            value = (String) allProperties.get(arg);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            project.setUserProperty(arg, value);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> parseProject(){
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        project.setCoreLoader(<FONT CLASS="This">this</FONT>.getClass().getClassLoader());
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="SingleLineComment">//project.addBuildListener(this);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A></FONT>        project.init();
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        ProjectHelper helper = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/ProjectHelper3.java.html">ProjectHelper3</A>();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        project.addReference(<FONT CLASS="StringLiteral">"ant.projectHelper"</FONT>, helper);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        <FONT CLASS="SingleLineComment">//SelfExtractor requirements
+<FONT CLASS="LN">82</FONT><A NAME="82"></A></FONT>        <FONT CLASS="If">if</FONT>(SelfExtractor.CONFIG_RESOURCE == ctx.getConfigResource()){
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            File buildXml = <FONT CLASS="New">new</FONT> File(ctx.getFileRoot(), ctx.getAntBuildFile());
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            <FONT CLASS="If">if</FONT>(!buildXml.exists()){
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                ctx.log(<FONT CLASS="StringLiteral">"No build file found??: "</FONT> + buildXml);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            helper.parse(project, buildXml);
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            project.setUserProperty(<FONT CLASS="StringLiteral">"ant.file"</FONT>, buildXml.getAbsolutePath());
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="SingleLineComment">//NonExtractor requirements
+<FONT CLASS="LN">92</FONT><A NAME="92"></A></FONT>        <FONT CLASS="If">if</FONT>(NonExtractor.CONFIG_RESOURCE == ctx.getConfigResource()){
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            URL buildIS = <FONT CLASS="This">this</FONT>.getClass().getResource(<FONT CLASS="StringLiteral">"/"</FONT> + ctx.getAntBuildFile());
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            helper.parse(project, buildIS);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            project.setUserProperty(<FONT CLASS="StringLiteral">"ant.file"</FONT>, buildIS.toExternalForm());
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                File enclosingJar = SelfExtractor.getEnclosingJar(<FONT CLASS="This">this</FONT>);
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>                project.setUserProperty(NonExtractor.ANTINSTALLER_JAR_PROPERTY, enclosingJar.getAbsolutePath());
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            } <FONT CLASS="Catch">catch</FONT> (RuntimeException e) {
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>                ctx.log(<FONT CLASS="StringLiteral">"No enclosing jar found"</FONT>);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <FONT CLASS="SingleLineComment">//Scripted install requirements
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></FONT>        <FONT CLASS="If">if</FONT>(ExecInstall.CONFIG_RESOURCE == ctx.getConfigResource()){
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>            File buildXml = <FONT CLASS="New">new</FONT> File(ctx.getFileRoot(), ctx.getAntBuildFile());
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>            helper.parse(project, buildXml);
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            <FONT CLASS="If">if</FONT>(!buildXml.exists()){
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>                ctx.log(<FONT CLASS="StringLiteral">"No build file found??: "</FONT> + buildXml);
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            }
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            project.setUserProperty(<FONT CLASS="StringLiteral">"ant.file"</FONT>, buildXml.getAbsolutePath());
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        project.setBaseDir(ctx.getFileRoot());
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        <FONT CLASS="SingleLineComment">// clever stuff for callbacks
+<FONT CLASS="LN">17</FONT><A NAME="117"></A></FONT>        project.addReference(CONTEXT_REFERENCE, ctx);
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        project.addTaskDefinition(<FONT CLASS="StringLiteral">"antinstaller-property"</FONT>, <A HREF="../../../../org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java.html">PropertyTask</A>.<FONT CLASS="Class">class</FONT>);
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        project.addTaskDefinition(<FONT CLASS="StringLiteral">"antinstaller-message"</FONT>, <A HREF="../../../../org/tp23/antinstaller/antmod/taskdefs/MessageTask.java.html">MessageTask</A>.<FONT CLASS="Class">class</FONT>);
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        project.addTaskDefinition(<FONT CLASS="StringLiteral">"antinstaller-log"</FONT>, <A HREF="../../../../org/tp23/antinstaller/antmod/taskdefs/LogTask.java.html">LogTask</A>.<FONT CLASS="Class">class</FONT>);
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>    }
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>     * Run the launcher to launch Ant with a specific target, there is no classpath
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>     * additions set or ant.home; everything should be loaded for this to run correctly.
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>     *
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>     * @param args the command line arguments
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>     */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> run(String target){
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>            ctx.getLogger().log(<FONT CLASS="StringLiteral">"internal target execution started:"</FONT> + target);
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>            project.fireBuildStarted();
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            project.executeTarget(target);
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            project.fireBuildFinished(<FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>            ctx.getLogger().log(<FONT CLASS="StringLiteral">"internal target execution successful:"</FONT> + target);
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>        }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable t) {
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            ctx.getLogger().log(<FONT CLASS="StringLiteral">"internal target execution error:"</FONT> + target);
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>            ctx.getLogger().log(ctx.getInstaller(), t);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>        }
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>}
+<FONT CLASS="LN">45</FONT><A NAME="145"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/GetResourceTask.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/GetResourceTask.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/GetResourceTask.java.html	(revision 14989)
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.taskdefs.GetResourceTask (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">GetResourceTask.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.antmod.taskdefs.index.html" target="packageFrame">org.tp23.antinstaller.antmod.taskdefs</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Task;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/selfextract/ResourceExtractor.java.html">org.tp23.antinstaller.selfextract.ResourceExtractor</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * Extracts a resource from the classpath into the filesystem
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @author teknopaul
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> *
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> GetResourceTask <FONT CLASS="Extends">extends</FONT> Task{
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    String resource;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    String dest;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    String regex;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    String replace;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> execute() <FONT CLASS="Throws">throws</FONT> BuildException{
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>            <A HREF="../../../../../org/tp23/antinstaller/selfextract/ResourceExtractor.java.html">ResourceExtractor</A> re = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/selfextract/ResourceExtractor.java.html">ResourceExtractor</A>();
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            <FONT CLASS="If">if</FONT>(regex != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>                re.copyResource(resource, <FONT CLASS="New">new</FONT> File(dest), regex, replace);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>            <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>                re.copyResourceBinary(resource, <FONT CLASS="New">new</FONT> File(dest));
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(e.getMessage());
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> String getDest() {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Return">return</FONT> dest;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDest(String file) {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="This">this</FONT>.dest = file;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> String getResource() {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Return">return</FONT> resource;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setResource(String resource) {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="This">this</FONT>.resource = resource;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> String getReplace() {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="Return">return</FONT> replace;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setReplace(String replace) {
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <FONT CLASS="This">this</FONT>.replace = replace;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> String getRegex() {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="Return">return</FONT> regex;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setRegex(String token) {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="This">this</FONT>.regex = token;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>}
+<FONT CLASS="LN">74</FONT><A NAME="74"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/LogTask.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/LogTask.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/LogTask.java.html	(revision 14989)
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.taskdefs.LogTask (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LogTask.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.antmod.taskdefs.index.html" target="packageFrame">org.tp23.antinstaller.antmod.taskdefs</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Task;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/antmod/RuntimeLauncher.java.html">org.tp23.antinstaller.antmod.RuntimeLauncher</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * usage: 
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * &amp;lt;antinstaller-log message="log message"/&amp;gt;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author teknopaul
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> *
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LogTask <FONT CLASS="Extends">extends</FONT> Task {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Private">private</FONT> String message;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>     * Ant Tasks must have a noargs constructor
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>     */</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> LogTask(){
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>     * the "main" method
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>     */</FONT>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> execute() <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx = (<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A>)getProject().getReference(RuntimeLauncher.CONTEXT_REFERENCE);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        ctx.log(message);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> String getMessage() {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Return">return</FONT> message;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setMessage(String message) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="This">this</FONT>.message = message;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>}
+<FONT CLASS="LN">55</FONT><A NAME="55"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/MessageTask.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/MessageTask.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/MessageTask.java.html	(revision 14989)
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.taskdefs.MessageTask (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">MessageTask.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.antmod.taskdefs.index.html" target="packageFrame">org.tp23.antinstaller.antmod.taskdefs</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Task;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/antmod/RuntimeLauncher.java.html">org.tp23.antinstaller.antmod.RuntimeLauncher</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * usage: 
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * &amp;lt;antinstaller-message message="output"/&amp;gt;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author teknopaul
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> *
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> MessageTask <FONT CLASS="Extends">extends</FONT> Task {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Private">private</FONT> String message;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>     * Ant Tasks must have a noargs constructor
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>     */</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> MessageTask(){
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>     * the "main" method
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>     */</FONT>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> execute() <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx = (<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A>)getProject().getReference(RuntimeLauncher.CONTEXT_REFERENCE);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        ctx.getMessageRenderer().printMessage(message);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> String getMessage() {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Return">return</FONT> message;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setMessage(String message) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="This">this</FONT>.message = message;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>}
+<FONT CLASS="LN">55</FONT><A NAME="55"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/antmod/taskdefs/PropertyTask.java.html	(revision 14989)
@@ -0,0 +1,134 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.antmod.taskdefs.PropertyTask (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">PropertyTask.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.antmod.taskdefs.index.html" target="packageFrame">org.tp23.antinstaller.antmod.taskdefs</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.Properties;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Task;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/antmod/RuntimeLauncher.java.html">org.tp23.antinstaller.antmod.RuntimeLauncher</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * usage: 
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * &amp;lt;antinstaller-property name="property.name" value="myValue"/&amp;gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;br /&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * or: 
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * &amp;lt;antinstaller-property resource="/resources/my.props"/&amp;gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @author teknopaul
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> *
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> */</FONT>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Class">class</FONT> PropertyTask <FONT CLASS="Extends">extends</FONT> Task {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> String name;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Private">private</FONT> String value;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> String resource;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>     * Ant Tasks must have a noargs constructor
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>     */</FONT>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> PropertyTask(){
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * the "main" method
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     */</FONT>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> execute() <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="If">if</FONT>(resource != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            executeResource();
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="If">if</FONT>(name == <FONT CLASS="Null">null</FONT> || value == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"either resource or (name and value) can not be null for antinstaller-property task"</FONT>);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            executePropVal();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> executePropVal(){
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx = (<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A>)getProject().getReference(RuntimeLauncher.CONTEXT_REFERENCE);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        ctx.log(<FONT CLASS="StringLiteral">"setting property: name="</FONT> + name + <FONT CLASS="StringLiteral">", value="</FONT> + value);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        ctx.getInstaller().getResultContainer().setProperty(name, value);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="SingleLineComment">// FindBugs - this class should stay final since getResourceAsStream() may not work in subclasses
+<FONT CLASS="LN">68</FONT><A NAME="68"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> executeResource() <FONT CLASS="Throws">throws</FONT> BuildException{
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx = (<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A>)getProject().getReference(RuntimeLauncher.CONTEXT_REFERENCE);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        InputStream is = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(resource);
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="If">if</FONT>(is == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            ctx.log(<FONT CLASS="StringLiteral">"Can not find resource: "</FONT> + resource);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Can not find resource: "</FONT> + resource);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            Properties props = <FONT CLASS="New">new</FONT> Properties();
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            props.load(is);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            is.close();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()){
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                ctx.log(<FONT CLASS="StringLiteral">"loaded properties: "</FONT> + props.size());
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            ctx.getInstaller().getResultContainer().getAllProperties().putAll(props);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            ctx.log(<FONT CLASS="StringLiteral">"Can not load resource: "</FONT> + resource);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Can not load resource: "</FONT> + resource);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    <FONT CLASS="Public">public</FONT> String getName() {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="Return">return</FONT> name;
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setName(String name) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="This">this</FONT>.name = name;
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    <FONT CLASS="Public">public</FONT> String getValue() {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <FONT CLASS="Return">return</FONT> value;
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String value) {
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="This">this</FONT>.value = value;
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>    }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>    <FONT CLASS="Public">public</FONT> String getResource() {
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        <FONT CLASS="Return">return</FONT> resource;
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>    }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setResource(String resource) {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        <FONT CLASS="This">this</FONT>.resource = resource;
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>}
+<FONT CLASS="LN">15</FONT><A NAME="115"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/AppRootInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/AppRootInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/AppRootInput.java.html	(revision 14989)
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.AppRootInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AppRootInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> *
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * &lt;p&gt;Input type to select a directory and validate it by checking the existence of
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * files relative to the directory selected.  An Expected use for this is to find the
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * Application root of an exiting app on the clients machine.  for example to find
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * Tomcat, ask the user to select the tomcat root and check the existence of ./conf/tomcat-users.xml
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * and ./webapps &lt;/p&gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @author Paul Hinds
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @version $Id: AppRootInput.java,v 1.2 2005/10/23 14:39:20 teknopaul Exp $
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> */</FONT>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AppRootInput
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/DirectoryInput.java.html">DirectoryInput</A> {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Private">private</FONT> String checkFile1;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Private">private</FONT> String checkFile2;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Private">private</FONT> String checkDir1;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Private">private</FONT> String checkDir2;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> AppRootInput() {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     * Called to validate the user input
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>     */</FONT>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="If">if</FONT> (getInputResult() == <FONT CLASS="Null">null</FONT>)<FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <A HREF="../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr = cxt.getMessageRenderer();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        String directorySelected = getInputResult();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        File file = <FONT CLASS="New">new</FONT> File(directorySelected);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="SingleLineComment">// removed in response to BUG:1303230
+<FONT CLASS="LN">58</FONT><A NAME="58"></A></FONT><FONT CLASS="SingleLineComment">//      if(!file.exists()){
+<FONT CLASS="LN">59</FONT><A NAME="59"></A></FONT><FONT CLASS="SingleLineComment">//          if(mr.prompt(res.getString("dirNotExistCreate"))){
+<FONT CLASS="LN">60</FONT><A NAME="60"></A></FONT><FONT CLASS="SingleLineComment">//              boolean ok = file.mkdirs();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A></FONT><FONT CLASS="SingleLineComment">//              if(!ok)mr.printMessage(res.getString("dirNotCreated"));
+<FONT CLASS="LN">62</FONT><A NAME="62"></A></FONT><FONT CLASS="SingleLineComment">//          }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A></FONT><FONT CLASS="SingleLineComment">//      }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A></FONT>        <FONT CLASS="If">if</FONT>(!file.isDirectory()){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            mr.printMessage(res.getString(<FONT CLASS="StringLiteral">"dirNotExist"</FONT>)+<FONT CLASS="StringLiteral">":"</FONT>+file.getAbsolutePath());
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(checkFile1!=<FONT CLASS="Null">null</FONT> &amp;&amp; ! checkExists(mr,file,checkFile1)){
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT> ;
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(checkFile2!=<FONT CLASS="Null">null</FONT> &amp;&amp; ! checkExists(mr,file,checkFile2)){
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT> ;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(checkDir1!=<FONT CLASS="Null">null</FONT> &amp;&amp; ! checkExists(mr,file,checkDir1)){
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT> ;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(checkDir2!=<FONT CLASS="Null">null</FONT> &amp;&amp; ! checkExists(mr,file,checkDir2)){
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT> ;
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> checkExists(<A HREF="../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr,File root,String check){
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        File checkFile = <FONT CLASS="New">new</FONT> File(root,checkFile1);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        <FONT CLASS="If">if</FONT>(!checkFile.exists()){
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            reportMissing(mr,checkFile);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> reportMissing(<A HREF="../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr,File missing){
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        StringBuffer message = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        message.append(res.getString(<FONT CLASS="StringLiteral">"appRootInvalid"</FONT>));
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        message.append(System.getProperty(<FONT CLASS="StringLiteral">"line.separator"</FONT>));
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        <FONT CLASS="If">if</FONT>(missing.isDirectory()){
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            message.append(res.getString(<FONT CLASS="StringLiteral">"dirNotExist"</FONT>));
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            message.append(res.getString(<FONT CLASS="StringLiteral">"fileNotExist"</FONT>));
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        message.append(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        message.append(missing.getAbsolutePath());
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        mr.printMessage(message.toString());
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>    <FONT CLASS="Public">public</FONT> String getCheckDir1() {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        <FONT CLASS="Return">return</FONT> checkDir1;
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    <FONT CLASS="Public">public</FONT> String getCheckDir2() {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        <FONT CLASS="Return">return</FONT> checkDir2;
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>    <FONT CLASS="Public">public</FONT> String getCheckFile1() {
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        <FONT CLASS="Return">return</FONT> checkFile1;
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>    }
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>    <FONT CLASS="Public">public</FONT> String getCheckFile2() {
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        <FONT CLASS="Return">return</FONT> checkFile2;
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>    }
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setCheckFile2(String checkFile2) {
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        <FONT CLASS="This">this</FONT>.checkFile2 = checkFile2;
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>    }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setCheckFile1(String checkFile1) {
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        <FONT CLASS="This">this</FONT>.checkFile1 = checkFile1;
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>    }
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setCheckDir2(String checkDir2) {
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        <FONT CLASS="This">this</FONT>.checkDir2 = checkDir2;
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setCheckDir1(String checkDir1) {
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        <FONT CLASS="This">this</FONT>.checkDir1 = checkDir1;
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>    
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>     * Not used at runtime.
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>     * @return boolean
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>     */</FONT>
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>        <FONT CLASS="If">if</FONT>(getDisplayText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>            System.out.println(<FONT CLASS="StringLiteral">"AppRoot:displayText must be set"</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>        <FONT CLASS="If">if</FONT>(getProperty()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>            System.out.println(<FONT CLASS="StringLiteral">"AppRoot:property must be set"</FONT>);
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            System.out.println(<FONT CLASS="StringLiteral">"AppRoot:defaultValue must be set"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>}
+<FONT CLASS="LN">63</FONT><A NAME="163"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/CheckboxInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/CheckboxInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/CheckboxInput.java.html	(revision 14989)
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.CheckboxInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CheckboxInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> *
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * &lt;p&gt;Input type for boolean choices represented as a checkbox in swing and a yes/no option
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * on the command line &lt;/p&gt;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author Paul Hinds
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id: CheckboxInput.java,v 1.3 2006/12/07 02:42:22 teknopaul Exp $
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CheckboxInput
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>{
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> String force;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> CheckboxInput() {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> String getForce() {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="Return">return</FONT> force;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setForce(String force) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="This">this</FONT>.force = force;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String trueOrFalse){
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            setInputResult(trueOrFalse);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>     * Called to validate the user input
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>     * @TODO should validate against non internationalized true or false flags 
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>     */</FONT>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>     * Not used at runtime.
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     * @return boolean
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>     */</FONT>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="If">if</FONT>(getProperty()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            System.out.println(<FONT CLASS="StringLiteral">"Checkbox:property must be set"</FONT>);
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="If">if</FONT>(getDisplayText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            System.out.println(<FONT CLASS="StringLiteral">"Checkbox:displayText must be set"</FONT>);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        <FONT CLASS="If">if</FONT>(!InputField.requiredBoolean(getDefaultValue())){
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            System.out.println(<FONT CLASS="StringLiteral">"Checkbox:defaultValue must be true or false"</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="If">if</FONT>(!InputField.optionalBoolean(getForce())){
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            System.out.println(<FONT CLASS="StringLiteral">"Checkbox:defaultValue must be true or false or null"</FONT>);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>}
+<FONT CLASS="LN">87</FONT><A NAME="87"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/CommentOutput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/CommentOutput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/CommentOutput.java.html	(revision 14989)
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.CommentOutput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CommentOutput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> *
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * &lt;p&gt;This "Input type" is strictly for Output! Unlike all the other
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * concrete classes in this package CommentOutputs refer to text
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * that will be printed but nothing will be collected from
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * the user.&lt;/p&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * The text outputted in Comments will have property values resolved
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * if they are in the format ${property.name}
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @author Paul Hinds
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @version $Id: CommentOutput.java,v 1.2 2006/03/24 18:25:58 teknopaul Exp $
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> */</FONT>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CommentOutput
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Private">private</FONT> String bold;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> String title;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> CommentOutput() {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> String getBold() {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="Return">return</FONT> bold;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setBold(String bold) {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="This">this</FONT>.bold = bold;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> String getTitle() {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="Return">return</FONT> title;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setTitle(String title) {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="This">this</FONT>.title = title;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> String getDisplayText() {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="Return">return</FONT>  resultContainer.getDefaultValue(<FONT CLASS="Super">super</FONT>.getDisplayText()) ;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Public">public</FONT> String getExplanatoryText() {
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <FONT CLASS="Return">return</FONT> resultContainer.getDefaultValue(<FONT CLASS="Super">super</FONT>.getExplanatoryText());
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>     * Called to validate the user input
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>     */</FONT>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     * Not used at runtime.
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>     * @return boolean
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>     */</FONT>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A><FONT CLASS="SingleLineComment">//  null accepted now if only using explanatory text        
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></FONT><FONT CLASS="SingleLineComment">//      if(getDisplayText() == null){
+<FONT CLASS="LN">84</FONT><A NAME="84"></A></FONT><FONT CLASS="SingleLineComment">//          System.out.println("Comment:displayText must be set");
+<FONT CLASS="LN">85</FONT><A NAME="85"></A></FONT><FONT CLASS="SingleLineComment">//          return false;
+<FONT CLASS="LN">86</FONT><A NAME="86"></A></FONT><FONT CLASS="SingleLineComment">//      }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A></FONT>        <FONT CLASS="If">if</FONT>(!InputField.optionalBoolean(getBold())){
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            System.out.println(<FONT CLASS="StringLiteral">"Comment:bold must be true or false or null:"</FONT> + getBold());
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="If">if</FONT>(!InputField.optionalBoolean(getTitle())){
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            System.out.println(<FONT CLASS="StringLiteral">"Comment:title must be true or false or null:"</FONT> + getTitle());
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>}
+<FONT CLASS="LN">98</FONT><A NAME="98"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ConditionalField.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ConditionalField.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ConditionalField.java.html	(revision 14989)
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.ConditionalField (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ConditionalField.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">org.tp23.antinstaller.runtime.logic.Expression</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java.html">org.tp23.antinstaller.runtime.logic.ExpressionBuilder</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * Container for other &lt;code&gt;OutputField&lt;/code&gt; members that will be
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * conditionally updated. Typical use is with &lt;code&gt;&amp;lt;hidden&amp;gt;&lt;/code&gt;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * to conditionally set property values.
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> *
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author mwilson
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @since 0.7.4 patch 7
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> */</FONT>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ConditionalField <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A> {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Private">private</FONT> String ifProperty;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>[] fields;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setIfProperty(<FONT CLASS="Final">final</FONT> String expressionStr) {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="This">this</FONT>.ifProperty = expressionStr;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> String getIfProperty() {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Return">return</FONT> ifProperty;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>[] getFields() {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Return">return</FONT> fields;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setFields(<A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>[] fields) {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="This">this</FONT>.fields = fields;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>     * Runtime validation of user input
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>     *
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>     * @param context Installer context
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     * @return &lt;code&gt;true&lt;/code&gt; if user input is valid, otherwise &lt;code&gt;false&lt;/code&gt;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>     * @throws ValidationException
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>     */</FONT>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> context)
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A> {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            getExpression();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            <FONT CLASS="If">if</FONT> ((fields != <FONT CLASS="Null">null</FONT>) &amp;&amp; (fields.length &gt; <FONT CLASS="IntegerLiteral">0</FONT>)) {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>                <FONT CLASS="For">for</FONT> (; (i &lt; fields.length) &amp;&amp; (fields[i].validate(context)); i++) {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>                <FONT CLASS="If">if</FONT> (i == fields.length) {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        } <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> configExc) {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            <FONT CLASS="If">if</FONT>(context.getInstaller().isVerbose()) {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                context.log(configExc);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>     * Build-time validation of installer configuration file
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>     *
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>     * @return &lt;code&gt;true&lt;/code&gt; if configuration is ok, otherwise &lt;code&gt;false&lt;/code&gt;
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>     */</FONT>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            getExpression();
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            <FONT CLASS="If">if</FONT> ((fields != <FONT CLASS="Null">null</FONT>) &amp;&amp; (fields.length &gt; <FONT CLASS="IntegerLiteral">0</FONT>)) {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                <FONT CLASS="For">for</FONT> (; (i &lt; fields.length) &amp;&amp; (fields[i].validateObject()); i++) {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>                <FONT CLASS="If">if</FONT> (i == fields.length) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>                System.out.println(<FONT CLASS="StringLiteral">"Invalid field:"</FONT> + fields[i]);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        } <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> configExc) {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            System.out.println(<FONT CLASS="StringLiteral">"Invalid conditional expression: "</FONT> + configExc);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>     * Get the conditional expression in preparation for evaluation
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>     *
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>     * @throws ConfigurationException if the expression is invalid
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>     */</FONT>
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> getExpression() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        <FONT CLASS="If">if</FONT> (expression == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            expression = ExpressionBuilder.parseLogicalExpressions(resultContainer, ifProperty);
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        <FONT CLASS="Return">return</FONT> expression;
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>    }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>}
+<FONT CLASS="LN">20</FONT><A NAME="120"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ConfirmPasswordTextInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ConfirmPasswordTextInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ConfirmPasswordTextInput.java.html	(revision 14989)
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.ConfirmPasswordTextInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ConfirmPasswordTextInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * a second password filed that checks to see if a password entered twice matches
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * @author Paul Hinds
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * @version $Id$
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> */</FONT>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ConfirmPasswordTextInput
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">PasswordTextInput</A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>{
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Private">private</FONT> String origField;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>     * Called to validate the user input, if the confirm flag is set
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>     * and there is a password field on the same page with the same property name
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>     * both passwords must match for validation to pass
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>     */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] otherFields = ctx.getCurrentPage().getOutputField();
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; otherFields.length; i++) {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            <FONT CLASS="If">if</FONT>(otherFields[i] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">PasswordTextInput</A> &amp;&amp;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>                    otherFields[i] != <FONT CLASS="This">this</FONT>){
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>                <A HREF="../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">PasswordTextInput</A> pwd = (<A HREF="../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">PasswordTextInput</A>)otherFields[i];
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>                <FONT CLASS="If">if</FONT>(pwd.getProperty().equals(getOrigField())){
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="This">this</FONT>.getInputResult().equals(pwd.getInputResult());
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>                }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>(<FONT CLASS="StringLiteral">"Confirm password requires a PasswordTextInput, on the same page, with  property "</FONT> + getOrigField());
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="If">if</FONT> ( ! <FONT CLASS="Super">super</FONT>.validateObject()){
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="If">if</FONT>(getOrigField() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            System.out.println(<FONT CLASS="StringLiteral">"ConfirmPassword:origField must be set"</FONT>);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="SingleLineComment">// @TODO check the orig field exists
+<FONT CLASS="LN">59</FONT><A NAME="59"></A></FONT>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Public">public</FONT> String getOrigField() {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Return">return</FONT> origField;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOrigField(String origField) {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="This">this</FONT>.origField = origField;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>}
+<FONT CLASS="LN">71</FONT><A NAME="71"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/DateInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/DateInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/DateInput.java.html	(revision 14989)
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.DateInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">DateInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.text.DateFormat;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.text.ParseException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.text.SimpleDateFormat;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.Date;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> *
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * &lt;p&gt;Free text input type with validation a SimpleDataFormat instance. &lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * &lt;p&gt;By default the date format is &lt;code&gt;dd/MM/yyyy&lt;/code&gt; unless it
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * is overriden in teh antinstall-config.xml file. &lt;/p&gt;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @author Paul Hinds
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @version $Id: DateInput.java,v 1.1.1.1 2005/10/18 18:20:54 teknopaul Exp $
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> DateInput
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>{
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> String dateFormat = <FONT CLASS="StringLiteral">"dd/MM/yyyy"</FONT>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> DateFormat formatter = <FONT CLASS="New">new</FONT> SimpleDateFormat(dateFormat);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> DateInput() {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        formatter.setLenient(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> String getDateFormat() {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Return">return</FONT> dateFormat;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDateFormat(String dateFormat) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            formatter = <FONT CLASS="New">new</FONT> SimpleDateFormat(dateFormat);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            formatter.setLenient(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            <FONT CLASS="This">this</FONT>.dateFormat = dateFormat;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="Catch">catch</FONT> (RuntimeException e) {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputException.java.html">InputException</A>(<FONT CLASS="StringLiteral">"Invalid date format in DateInput"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String dir){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        setInputResult(dir);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>     * Called to validate the user input
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     */</FONT>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="If">if</FONT> (getInputResult() == <FONT CLASS="Null">null</FONT>)<FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        String toTest = getInputResult();
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            formatter.parse(toTest);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="Catch">catch</FONT> (ParseException ex) {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDefaultValue(String defaultValue) {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        <FONT CLASS="If">if</FONT>(defaultValue.equals(<FONT CLASS="StringLiteral">"TODAY"</FONT>)){
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            <FONT CLASS="This">this</FONT>.defaultValue = formatter.format(<FONT CLASS="New">new</FONT> Date());
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            <FONT CLASS="This">this</FONT>.defaultValue = defaultValue;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>     * Not used at runtime.
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>     * @return boolean
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>     */</FONT>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="If">if</FONT>(getDisplayText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            System.out.println(<FONT CLASS="StringLiteral">"Date:displayText must be set"</FONT>);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        <FONT CLASS="If">if</FONT>(getProperty()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            System.out.println(<FONT CLASS="StringLiteral">"Date:property must be set"</FONT>);
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            System.out.println(<FONT CLASS="StringLiteral">"Date:defaultValue must be set"</FONT>);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>    }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>}
+<FONT CLASS="LN">08</FONT><A NAME="108"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/DirectoryInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/DirectoryInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/DirectoryInput.java.html	(revision 14989)
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.DirectoryInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">DirectoryInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * &lt;p&gt;Input type to select a directory &lt;/p&gt;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @author Paul Hinds
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @version $Id: DirectoryInput.java,v 1.5 2007/01/28 10:25:48 teknopaul Exp $
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> DirectoryInput
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OSSpecific.java.html">OSSpecific</A> {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> abort = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> String create;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Private">private</FONT> String checkExists;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> DirectoryInput() {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * Called to validate the user input
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     */</FONT>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="If">if</FONT> (getInputResult() == <FONT CLASS="Null">null</FONT>)<FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <A HREF="../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr = cxt.getMessageRenderer();
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        String selectedName = getInputResult();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="SingleLineComment">// handle no directory option
+<FONT CLASS="LN">54</FONT><A NAME="54"></A></FONT>        <FONT CLASS="If">if</FONT>( <FONT CLASS="StringLiteral">""</FONT>.equals(selectedName) ){
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            <FONT CLASS="If">if</FONT>( InputField.isTrue(create) || InputField.isTrue(checkExists) ){
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>                mr.printMessage(res.getString(<FONT CLASS="StringLiteral">"dirNotExist"</FONT>));
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        } 
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        File file = <FONT CLASS="New">new</FONT> File(selectedName);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="If">if</FONT>(InputField.isTrue(create)){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            <FONT CLASS="If">if</FONT>(!file.exists()){
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>                    <FONT CLASS="If">if</FONT>(mr.prompt(res.getString(<FONT CLASS="StringLiteral">"dirNotExistCreate"</FONT>) + <FONT CLASS="StringLiteral">"\n"</FONT> + file.getAbsolutePath())){
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                        <FONT CLASS="Boolean">boolean</FONT> ok = file.mkdirs();
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>                        <FONT CLASS="If">if</FONT>(!ok){
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>                            mr.printMessage(res.getString(<FONT CLASS="StringLiteral">"dirNotCreated"</FONT>));
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>                        }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                    }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>                }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> ex) {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                    mr.printMessage(res.getString(<FONT CLASS="StringLiteral">"canNotCreateFile"</FONT>) + <FONT CLASS="StringLiteral">"\n"</FONT> + file.getAbsolutePath());
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                    <FONT CLASS="SingleLineComment">//FIXME should not throw here, should do something better so users on linux can chmod where necessary
+<FONT CLASS="LN">77</FONT><A NAME="77"></A></FONT>                    <FONT CLASS="SingleLineComment">// then try again
+<FONT CLASS="LN">78</FONT><A NAME="78"></A></FONT>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>(res.getString(<FONT CLASS="StringLiteral">"canNotCreateFile"</FONT>),ex);
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>                    
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="If">if</FONT>(InputField.isTrue(checkExists)){
+<FONT CLASS="LN">84</FONT><A NAME="84"></A><FONT CLASS="SingleLineComment">//          if( ( !file.exists() || !file.isDirectory() ) &amp;&amp; triedToCreate){
+<FONT CLASS="LN">85</FONT><A NAME="85"></A></FONT><FONT CLASS="SingleLineComment">//              //TODO add some usefull text here to explain that we can not continue
+<FONT CLASS="LN">86</FONT><A NAME="86"></A></FONT><FONT CLASS="SingleLineComment">//          }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A></FONT>            <FONT CLASS="If">if</FONT>(!file.exists() || !file.isDirectory()){
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                mr.printMessage(res.getString(<FONT CLASS="StringLiteral">"dirNotExist"</FONT>) + <FONT CLASS="StringLiteral">"\n"</FONT> + file.getAbsolutePath());
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort() {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        <FONT CLASS="Return">return</FONT> abort;
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAbort(<FONT CLASS="Boolean">boolean</FONT> abort) {
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        <FONT CLASS="This">this</FONT>.abort = abort;
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    <FONT CLASS="Public">public</FONT> String getCreate() {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <FONT CLASS="Return">return</FONT> create;
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setCreate(String create) {
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        <FONT CLASS="This">this</FONT>.create = create;
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>    }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String dir){
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        setInputResult(dir);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    <FONT CLASS="Public">public</FONT> String getCheckExists() {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        <FONT CLASS="Return">return</FONT> checkExists;
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setCheckExists(String checkExists) {
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        <FONT CLASS="This">this</FONT>.checkExists = checkExists;
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>    }
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>     * Not used at runtime.
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>     * @return boolean
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>     */</FONT>
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        <FONT CLASS="If">if</FONT>(getDisplayText() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            System.out.println(<FONT CLASS="StringLiteral">"Directory:displayText must be set"</FONT>);
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        }
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        <FONT CLASS="If">if</FONT>(getProperty() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>            System.out.println(<FONT CLASS="StringLiteral">"Directory:property must be set"</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            System.out.println(<FONT CLASS="StringLiteral">"Directory:defaultValue must be set"</FONT>);
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        }
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue().equals(<FONT CLASS="StringLiteral">""</FONT>)){
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>            <FONT CLASS="If">if</FONT>( isTrue(getCreate()) || isTrue(getCheckExists()) ) {
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>                System.out.println(<FONT CLASS="StringLiteral">"Directory:defaultValue must be set if checkExists or create are true"</FONT>);
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>            }
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>        <FONT CLASS="If">if</FONT>(!InputField.optionalBoolean(getCreate())){
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>            System.out.println(<FONT CLASS="StringLiteral">"Directory:create must be true or false or null"</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        <FONT CLASS="If">if</FONT>(!InputField.optionalBoolean(getCheckExists())){
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>            System.out.println(<FONT CLASS="StringLiteral">"Directory:checkExists must be true or false or null"</FONT>);
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        }
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>}
+<FONT CLASS="LN">57</FONT><A NAME="157"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ExtValidatedTextInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ExtValidatedTextInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ExtValidatedTextInput.java.html	(revision 14989)
@@ -0,0 +1,128 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.ExtValidatedTextInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ExtValidatedTextInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> *
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * &lt;p&gt;Free text input type with validation using a custon supplied class.&lt;/p&gt;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * This enable very coplext validation, for example, a class could be written
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * to validate a port number enterd by a user that tries to open a socket
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * on the port and returns false to the validate method if the socket is in use. 
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @author Paul Hinds
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @version $Id: ExtValidatedTextInput.java,v 1.2 2007/01/09 22:41:41 teknopaul Exp $
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ExtValidatedTextInput
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/ValidatedTextInput.java.html">ValidatedTextInput</A>{
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> String validationClass;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/input/Validator.java.html">Validator</A> validator;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Private">private</FONT> Throwable throwable ;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> ExtValidatedTextInput() {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String dir){
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        setInputResult(dir);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> String getValidationClass() {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Return">return</FONT> validationClass;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValidationClass(String validationClass) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="This">this</FONT>.validationClass = validationClass;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            validator = (<A HREF="../../../../org/tp23/antinstaller/input/Validator.java.html">Validator</A>)Class.forName(validationClass).newInstance();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> ex) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputException.java.html">InputException</A>(<FONT CLASS="StringLiteral">"Invalid Class in ExtValidated text input"</FONT>);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>     * Called to validate the user input
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>     */</FONT>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        String result = getInputResult();
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="Try">try</FONT>{
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            validator.validate(result,ctx);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            throwable = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="Catch">catch</FONT>(Throwable t){
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            throwable = t;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>     * @return Returns the validator.
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     */</FONT>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../org/tp23/antinstaller/input/Validator.java.html">Validator</A> getValidator() {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="Return">return</FONT> validator;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>     * Not used at runtime.
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>     * @return boolean
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>     */</FONT>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        <FONT CLASS="If">if</FONT>(getDisplayText() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            System.out.println(<FONT CLASS="StringLiteral">"ExtValidated:displayText must be set"</FONT>);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        <FONT CLASS="If">if</FONT>(getProperty() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            System.out.println(<FONT CLASS="StringLiteral">"ExtValidated:property must be set"</FONT>);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        <FONT CLASS="If">if</FONT>(getValidationClass() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            System.out.println(<FONT CLASS="StringLiteral">"ExtValidated:validationClass must be set"</FONT>);
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>     * @return Returns the throwable.
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>     */</FONT>
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    <FONT CLASS="Public">public</FONT> Throwable getThrowable() {
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        <FONT CLASS="Return">return</FONT> throwable;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>}
+<FONT CLASS="LN">09</FONT><A NAME="109"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/FileInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/FileInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/FileInput.java.html	(revision 14989)
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.FileInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">FileInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> *
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * &lt;p&gt;Input type to select a directory &lt;/p&gt;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @author Paul Hinds
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @version $Id: FileInput.java,v 1.2 2007/01/28 10:25:48 teknopaul Exp $
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> FileInput
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OSSpecific.java.html">OSSpecific</A>{
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> abort = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> String checkExists;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> FileInput() {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>     * Called to validate the user input
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>     */</FONT>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="If">if</FONT> (getInputResult() == <FONT CLASS="Null">null</FONT>) { <FONT CLASS="SingleLineComment">// this does not happen
+<FONT CLASS="LN">47</FONT><A NAME="47"></A></FONT>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="If">if</FONT>(InputField.isTrue(checkExists)){
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            File file = <FONT CLASS="New">new</FONT> File(getInputResult());
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            <FONT CLASS="If">if</FONT>(!file.exists()){
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort() {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="Return">return</FONT> abort;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAbort(<FONT CLASS="Boolean">boolean</FONT> abort) {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="This">this</FONT>.abort = abort;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Public">public</FONT> String getCheckExists() {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="Return">return</FONT> checkExists;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setCheckExists(String checkExists) {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="This">this</FONT>.checkExists = checkExists;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String dir){
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        setInputResult(dir);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     * Not used at runtime.
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>     * @return boolean
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>     */</FONT>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        <FONT CLASS="If">if</FONT>(getDisplayText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            System.out.println(<FONT CLASS="StringLiteral">"File:displayText must be set"</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        <FONT CLASS="If">if</FONT>(getProperty()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            System.out.println(<FONT CLASS="StringLiteral">"File:property must be set"</FONT>);
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            System.out.println(<FONT CLASS="StringLiteral">"File:defaultValue must be set"</FONT>);
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="If">if</FONT>(!InputField.optionalBoolean(getCheckExists())){
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            System.out.println(<FONT CLASS="StringLiteral">"File:checkExists must be true or false or null"</FONT>);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>}
+<FONT CLASS="LN">01</FONT><A NAME="101"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/HiddenPropertyInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/HiddenPropertyInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/HiddenPropertyInput.java.html	(revision 14989)
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.HiddenPropertyInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">HiddenPropertyInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @author mwilson
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * @version $Id
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * @since 0.7.4 patch 6
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> */</FONT>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> HiddenPropertyInput <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>{
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Public">public</FONT> HiddenPropertyInput()
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    }
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue( String propValue )
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="SingleLineComment">//Use default value to allow updates when page re-displayed
+<FONT CLASS="LN">34</FONT><A NAME="34"></A></FONT>        setDefaultValue( propValue );
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>     * Called to validate the non-existent user input
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>     */</FONT>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate( <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt ) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * Not used at runtime.
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     *
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     * @return boolean
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject()
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="Final">final</FONT> String typeName = <FONT CLASS="StringLiteral">"hidden"</FONT>;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="If">if</FONT>( getProperty() == <FONT CLASS="Null">null</FONT> )
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            System.out.println( typeName + <FONT CLASS="StringLiteral">": property must be set"</FONT> );
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="If">if</FONT>( getDefaultValue() == <FONT CLASS="Null">null</FONT> )
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            System.out.println( typeName + <FONT CLASS="StringLiteral">": value must be set"</FONT> );
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>}
+<FONT CLASS="LN">68</FONT><A NAME="68"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/InputException.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/InputException.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/InputException.java.html	(revision 14989)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.InputException (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">InputException.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A>
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A>
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * @author Paul Hinds
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * @version $Id: InputException.java,v 1.1.1.1 2005/10/18 18:20:55 teknopaul Exp $
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> */</FONT>
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> InputException <FONT CLASS="Extends">extends</FONT> RuntimeException {
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A>    <FONT CLASS="Public">public</FONT> InputException(String message){
+<FONT CLASS="LN">10</FONT><A NAME="10"></A>        <FONT CLASS="Super">super</FONT>(message);
+<FONT CLASS="LN">11</FONT><A NAME="11"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="12"></A>}
+<FONT CLASS="LN">13</FONT><A NAME="13"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/InputField.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/InputField.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/InputField.java.html	(revision 14989)
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.InputField (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">InputField.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.MissingResourceException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> *
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * &lt;p&gt;Object representation of an inputField XML Element &lt;/p&gt;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * &lt;p&gt;Also used to hold data of the results of the installer questions &lt;/p&gt;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author Paul Hinds
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @version $Id: InputField.java,v 1.4 2006/12/07 02:50:27 teknopaul Exp $
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Class">class</FONT> InputField
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="SingleLineComment">// i18n support
+<FONT CLASS="LN">32</FONT><A NAME="32"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> ResourceBundle langPack = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Static">static</FONT>{
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>            langPack = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"resources.LanguagePack"</FONT>);
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        } <FONT CLASS="Catch">catch</FONT> (MissingResourceException e) {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>            <FONT CLASS="SingleLineComment">// ignore, signifies no lang packs installed  
+<FONT CLASS="LN">38</FONT><A NAME="38"></A></FONT>        }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Private">private</FONT> String property;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Protected">protected</FONT> String defaultValue;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>     * Flag to indicate that the user has already editted this field
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>     */</FONT>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> editted = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> InputField() {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> String getDisplayText() {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="If">if</FONT>(langPack != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="Return">return</FONT> langPack.getString(getProperty() + <FONT CLASS="StringLiteral">".displayText"</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Return">return</FONT> displayText;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> String getExplanatoryText() {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="If">if</FONT>(langPack != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>                <FONT CLASS="Return">return</FONT> langPack.getString(getProperty() + <FONT CLASS="StringLiteral">".explanatoryText"</FONT>);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            } <FONT CLASS="Catch">catch</FONT> (MissingResourceException e) {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                <FONT CLASS="SingleLineComment">// ignore and return null explanatoryText is optional
+<FONT CLASS="LN">64</FONT><A NAME="64"></A></FONT>            }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="Return">return</FONT> explanatoryText;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>     * Returns the input result if there is one and if this is a PropertyField
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>     * @return String
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>     */</FONT>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Public">public</FONT> String getInputResult() {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        <FONT CLASS="Return">return</FONT> resultContainer.getProperty(property);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInputResult(String inputResult) {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        resultContainer.setProperty(property, inputResult);
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isEditted() {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        <FONT CLASS="Return">return</FONT> editted;
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setEditted(<FONT CLASS="Boolean">boolean</FONT> editted) {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="This">this</FONT>.editted = editted;
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setResultContainer(<A HREF="../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> resultContainer) {
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="This">this</FONT>.resultContainer = resultContainer;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    <FONT CLASS="Public">public</FONT> String getProperty() {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="Return">return</FONT> property;
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setProperty(String property) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="This">this</FONT>.property = property;
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    <FONT CLASS="Public">public</FONT> String getDefaultValue() {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <FONT CLASS="Return">return</FONT> resultContainer.getDefaultValue(defaultValue);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDefaultValue(String defaultValue) {
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="This">this</FONT>.defaultValue = defaultValue;
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>    }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>}
+<FONT CLASS="LN">08</FONT><A NAME="108"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/LargeSelectInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/LargeSelectInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/LargeSelectInput.java.html	(revision 14989)
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.LargeSelectInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LargeSelectInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.MissingResourceException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> *
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Input type to choose a single value from a (numbered) list of options &lt;/p&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * &lt;p&gt;This input is designed to handle larger lists of options &lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @author Paul Hinds
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @version $Id: LargeSelectInput.java,v 1.3 2006/12/07 02:50:27 teknopaul Exp $
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LargeSelectInput
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>{
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="SingleLineComment">// i18n support
+<FONT CLASS="LN">40</FONT><A NAME="40"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> ResourceBundle langPack = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> optionIdx = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Static">static</FONT>{
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            langPack = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"resources.LanguagePack"</FONT>);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        } <FONT CLASS="Catch">catch</FONT> (MissingResourceException e) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            <FONT CLASS="SingleLineComment">// ignore, signifies no lang packs installed  
+<FONT CLASS="LN">47</FONT><A NAME="47"></A></FONT>        }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput.Option</A>[] options;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> LargeSelectInput() {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput.Option</A>[] getOptions() {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="Return">return</FONT> options;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOptions(<A HREF="../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput.Option</A>[] options) {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="This">this</FONT>.options = options;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> Option getNewOption(){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> Option();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> Option {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> idx = ++optionIdx;
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="Private">private</FONT> String text;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="Public">public</FONT> String value;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setText(String text) {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            <FONT CLASS="This">this</FONT>.text = text;
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="Public">public</FONT> String getText() {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            <FONT CLASS="If">if</FONT>(langPack != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>                <FONT CLASS="Return">return</FONT> langPack.getString(getProperty() + <FONT CLASS="StringLiteral">"."</FONT> + idx +<FONT CLASS="StringLiteral">".displayText"</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="Return">return</FONT> text;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String dir){
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        setInputResult(dir);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>     * Called to validate the user input
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>     */</FONT>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        <FONT CLASS="If">if</FONT>(getInputResult()==<FONT CLASS="Null">null</FONT>)<FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        String value = getInputResult();
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        <FONT CLASS="Boolean">boolean</FONT> ok = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; options.length; i++) {
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            ok |= options[i].value.equals(value);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        <FONT CLASS="Return">return</FONT> ok;
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>     * Not used at runtime.
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>     * @return boolean
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>     */</FONT>
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        <FONT CLASS="If">if</FONT>(getDisplayText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            System.out.println(<FONT CLASS="StringLiteral">"LargeSelect:displayText must be set"</FONT>);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        }
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        <FONT CLASS="If">if</FONT>(getProperty()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            System.out.println(<FONT CLASS="StringLiteral">"LargeSelect:property must be set"</FONT>);
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            System.out.println(<FONT CLASS="StringLiteral">"LargeSelect:defaultValue must be set"</FONT>);
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        <FONT CLASS="If">if</FONT>(getOptions()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>            System.out.println(<FONT CLASS="StringLiteral">"LargeSelect:option must have at least two options"</FONT>);
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        }
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        <FONT CLASS="If">if</FONT>(getOptions().length&lt;<FONT CLASS="IntegerLiteral">2</FONT>){
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>            System.out.println(<FONT CLASS="StringLiteral">"LargeSelect:option must have at least two options"</FONT>);
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        }
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; getOptions().length; i++) {
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            Option o = getOptions()[i];
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>            <FONT CLASS="If">if</FONT>(o.getText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                System.out.println(<FONT CLASS="StringLiteral">"LargeSelect:option:text must be set"</FONT>);
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>            }
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            <FONT CLASS="If">if</FONT>(o.value==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>                System.out.println(<FONT CLASS="StringLiteral">"LargeSelect:option:value must be set"</FONT>);
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            }
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>        }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        <FONT CLASS="Boolean">boolean</FONT> defaultExists = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; getOptions().length; i++) {
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>            Option o = getOptions()[i];
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>            <FONT CLASS="If">if</FONT>(o.value.equals(getDefaultValue())){
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>                defaultExists=<FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>            }
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>        <FONT CLASS="If">if</FONT>(!defaultExists){
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>            System.out.println(<FONT CLASS="StringLiteral">"LargeSelect:option:Default must be one of the options"</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>}
+<FONT CLASS="LN">52</FONT><A NAME="152"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/OSSpecific.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/OSSpecific.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/OSSpecific.java.html	(revision 14989)
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.OSSpecific (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">OSSpecific.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * Operating System Specific input fields have different default values for Unix and Windoze
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * TODO something more with defaults for optionally supporting more OSs
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Class">class</FONT> OSSpecific <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A> {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Private">private</FONT> String defaultValueWin;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Public">public</FONT> String getDefaultValue(<FONT CLASS="Boolean">boolean</FONT> correctForOS) {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>        <FONT CLASS="If">if</FONT>(InstallerContext.isUnix() || defaultValueWin == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>            <FONT CLASS="If">if</FONT>(<FONT CLASS="StringLiteral">""</FONT>.equals(defaultValue)){
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>            }
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>            <FONT CLASS="Return">return</FONT> resultContainer.getDefaultFileRef(defaultValue);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        }
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>            <FONT CLASS="If">if</FONT>(<FONT CLASS="StringLiteral">""</FONT>.equals(defaultValueWin)){
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>            }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>            <FONT CLASS="Return">return</FONT> resultContainer.getDefaultFileRef(defaultValueWin);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> String getDefaultValueWin() {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Return">return</FONT> defaultValueWin;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDefaultValueWin(String defaultValueWin) {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="This">this</FONT>.defaultValueWin = defaultValueWin;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>}
+<FONT CLASS="LN">50</FONT><A NAME="50"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/OutputField.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/OutputField.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/OutputField.java.html	(revision 14989)
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.OutputField (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">OutputField.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.MissingResourceException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * This is the super class of all "Input types".  It is called OutputField since
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * it handles the base features of "Input types" for outputing text for
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * the user to read.  It also encapsulates some convenience methods for
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * interpreting boolean values from the command line and in configuration files.
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Class">class</FONT> OutputField {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="SingleLineComment">// i18n support
+<FONT CLASS="LN">32</FONT><A NAME="32"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> ResourceBundle langPack = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> commentIdx = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Static">static</FONT>{
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>            langPack = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"resources.LanguagePack"</FONT>);
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        } <FONT CLASS="Catch">catch</FONT> (MissingResourceException e) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>            <FONT CLASS="SingleLineComment">// ignore, signifies no lang packs installed 
+<FONT CLASS="LN">39</FONT><A NAME="39"></A></FONT>        }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="MultiLineComment">/* This is redundant unless language packs are used
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>     */</FONT>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Private">private</FONT> String name = <FONT CLASS="StringLiteral">"comment."</FONT> + ++commentIdx;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Protected">protected</FONT> String displayText;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Protected">protected</FONT> String explanatoryText;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> resultContainer;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> OutputField() {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="MultiLineComment">/* This is redundant unless language packs are used
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>     */</FONT>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> String getName() {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="Return">return</FONT> name;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="MultiLineComment">/* This is redundant unless language packs are used
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>     */</FONT>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setName(String name) {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="This">this</FONT>.name = name;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Public">public</FONT> String getDisplayText() {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="If">if</FONT>(langPack != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            <FONT CLASS="Return">return</FONT> langPack.getString(getName() + <FONT CLASS="StringLiteral">".displayText"</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="Return">return</FONT> displayText;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDisplayText(String displayText) {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        <FONT CLASS="This">this</FONT>.displayText = displayText;
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    <FONT CLASS="Public">public</FONT> String getExplanatoryText() {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="If">if</FONT>(langPack != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                <FONT CLASS="Return">return</FONT> langPack.getString(getName() + <FONT CLASS="StringLiteral">".explanatoryText"</FONT>);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            } <FONT CLASS="Catch">catch</FONT> (MissingResourceException e) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                <FONT CLASS="SingleLineComment">// ignore and return null explanatoryText is optional
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></FONT>            }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        <FONT CLASS="Return">return</FONT> explanatoryText;
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setExplanatoryText(String explanatoryText) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="This">this</FONT>.explanatoryText = explanatoryText;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setResultContainer(<A HREF="../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> resultContainer) {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="This">this</FONT>.resultContainer = resultContainer;
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>     * Validate the user input (or lack of it)
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>     * This method should return false if the validation fails an throw an exception
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>     * if it is not possible to validate or there is an error.
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>     *
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>     * @param cxt InstallerContext
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>     * @throws ValidationException thrown in error conditions not validation failure
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>     * @return boolean
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>     */</FONT>
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>;
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>     * Used to validate the configuration, this can be run prior to distributing the
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>     * installer to check that the config is valid. Will not be used at runtime.
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>     * @throws ValidationException
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>     * @return boolean
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>     */</FONT>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject();
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    <FONT CLASS="SingleLineComment">//////////////////////Static convenience methods
+<FONT CLASS="LN">16</FONT><A NAME="116"></A></FONT>
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        <FONT CLASS="FormalComment">/** true if specified and true or yes.
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>         *  N.B it is possible for X,  isTrue(X) == isFalse(X); 
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>         *  This occurs if the value is null.
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>         */</FONT>
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> isTrue(String value){
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>            <FONT CLASS="If">if</FONT>(value == <FONT CLASS="Null">null</FONT>)<FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>            <FONT CLASS="Return">return</FONT> value.equalsIgnoreCase(<FONT CLASS="StringLiteral">"true"</FONT>) || value.equalsIgnoreCase(<FONT CLASS="StringLiteral">"yes"</FONT>);
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        }
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        <FONT CLASS="FormalComment">/** same as isTrue() but default is false if not specified */</FONT>
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> isFalse(String value){
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>            <FONT CLASS="If">if</FONT>(value == <FONT CLASS="Null">null</FONT>)<FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            <FONT CLASS="Return">return</FONT> value.equalsIgnoreCase(<FONT CLASS="StringLiteral">"false"</FONT>) || value.equalsIgnoreCase(<FONT CLASS="StringLiteral">"no"</FONT>);
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        }
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>         * Return true if the value is set to true or false, returns false if the value is null
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>         * @param value String
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>         * @return boolean
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>         */</FONT>
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> requiredBoolean(String value){
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            <FONT CLASS="Return">return</FONT> isTrue(value) || isFalse(value);
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>        }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>         * Return true if the value is set to true or false, returns false if the value is null
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>         * @param value String
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>         * @return boolean
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>         */</FONT>
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> optionalBoolean(String value){
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>            <FONT CLASS="Return">return</FONT> value == <FONT CLASS="Null">null</FONT> || isTrue(value) || isFalse(value);
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>        }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>}
+<FONT CLASS="LN">47</FONT><A NAME="147"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/PasswordTextInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/PasswordTextInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/PasswordTextInput.java.html	(revision 14989)
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.PasswordTextInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">PasswordTextInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * &lt;p&gt;Free validated text input type that does not echo the value in the GUI.&lt;/p&gt;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * &lt;p&gt;This class implements SecretPropertyField so the
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * values are not printed in the properties file.  It is the responsibility of the renderer
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * not to show the password. Hiding is currently not supported on the console.&lt;/p&gt;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author Paul Hinds
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @version $Id: PasswordTextInput.java,v 1.3 2006/12/21 00:03:09 teknopaul Exp $
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> PasswordTextInput
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/ValidatedTextInput.java.html">ValidatedTextInput</A> <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../org/tp23/antinstaller/input/SecretPropertyField.java.html">SecretPropertyField</A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>{
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> String textMask = <FONT CLASS="StringLiteral">"false"</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>     * @return Returns true if text masking is requested.
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>     */</FONT>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> String getTextMask() {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Return">return</FONT> textMask;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>     * @param textMask The textMask value true or false.
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>     */</FONT>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setTextMask(String textMask) {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="This">this</FONT>.textMask = textMask;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * Used by checkConfig to validate the configuration file
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     * not at runtime
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     * @return boolean
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="If">if</FONT>( ! InputField.optionalBoolean(getTextMask())){
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            System.out.println(<FONT CLASS="StringLiteral">"Comment:textMask must be true or false or null:"</FONT> + getTextMask());
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="If">if</FONT>(getDisplayText() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            System.out.println(<FONT CLASS="StringLiteral">"Password:displayText must be set"</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="If">if</FONT>(getProperty() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            System.out.println(<FONT CLASS="StringLiteral">"Password:property must be set"</FONT>);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            System.out.println(<FONT CLASS="StringLiteral">"Password:defaultValue must be set"</FONT>);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="If">if</FONT>(getRegex() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            System.out.println(<FONT CLASS="StringLiteral">"Password:regex must be set"</FONT>);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>}
+<FONT CLASS="LN">76</FONT><A NAME="76"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ResultContainer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ResultContainer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ResultContainer.java.html	(revision 14989)
@@ -0,0 +1,210 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.ResultContainer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ResultContainer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.HashMap;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.Map;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.Properties;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Data Holder for results of the data collection and convenience methods for
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * obtaining default values containing ${prop.name}/blah syntax &lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @todo   Ensure in the validator (and Docs) that developers only add ${refs} for properties set on earlier pages
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @author Paul Hinds
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @version $Id: ResultContainer.java,v 1.6 2007/01/28 10:25:48 teknopaul Exp $
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> */</FONT>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ResultContainer {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> HashMap properties = <FONT CLASS="New">new</FONT> HashMap();
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Private">private</FONT> Properties environment = InstallerContext.getEnvironment();
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> File installRoot;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> ResultContainer() {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>     * fetch a string for File and Directory inputs that expands ${refs} and
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>     * also creates absolute paths from relative paths in the default value
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * @param defaultString String
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     * @return String
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     */</FONT>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> String getDefaultFileRef(String defaultString){
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="If">if</FONT>(defaultString == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        String expandedRefs = getDefaultValue(defaultString);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        File ref = <FONT CLASS="New">new</FONT> File(expandedRefs);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="If">if</FONT>(!ref.isAbsolute()){
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            String path = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>                path = <FONT CLASS="New">new</FONT> File(installRoot, expandedRefs).getCanonicalPath();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                <FONT CLASS="SingleLineComment">// this is a bugger, but it should not happen it implies . or ..
+<FONT CLASS="LN">64</FONT><A NAME="64"></A></FONT>                <FONT CLASS="SingleLineComment">// can not be resolved, all we can do is return the . or .. and hope
+<FONT CLASS="LN">65</FONT><A NAME="65"></A></FONT>                <FONT CLASS="SingleLineComment">// it works later
+<FONT CLASS="LN">66</FONT><A NAME="66"></A></FONT>                 path = <FONT CLASS="New">new</FONT> File(installRoot, expandedRefs).getAbsolutePath();
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            <FONT CLASS="Return">return</FONT> path;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            String path = ref.getAbsolutePath();
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            <FONT CLASS="Return">return</FONT> path;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>     *
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     * Handles dereferenceing ${propName} syntax in default value fields
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     * @param defaultString String a plain String or a String with ${ref} references
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>     * @return String
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>     */</FONT>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="Public">public</FONT> String getDefaultValue(String defaultString) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        <FONT CLASS="If">if</FONT>(defaultString == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        <FONT CLASS="Char">char</FONT>[] characters = defaultString.toCharArray();
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="Char">char</FONT> c;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        StringBuffer result = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        StringBuffer propertyNameBuffer = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="Boolean">boolean</FONT> inProp = <FONT CLASS="False">false</FONT>; <FONT CLASS="SingleLineComment">// state flag indicating parsing a propertyName
+<FONT CLASS="LN">92</FONT><A NAME="92"></A></FONT>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; characters.length;) {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            c = characters[i];
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            <FONT CLASS="If">if</FONT> ( c == <FONT CLASS="CharacerLiteral">'$'</FONT> &amp;&amp; ( characters.length &gt; i + <FONT CLASS="IntegerLiteral">1</FONT> &amp;&amp; characters[i + <FONT CLASS="IntegerLiteral">1</FONT>] == <FONT CLASS="CharacerLiteral">'{'</FONT> ) ){
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>                <FONT CLASS="If">if</FONT>(inProp){
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                    <FONT CLASS="SingleLineComment">//Nested property
+<FONT CLASS="LN">97</FONT><A NAME="97"></A></FONT>                    <FONT CLASS="Int">int</FONT> endIndex = defaultString.indexOf( <FONT CLASS="CharacerLiteral">'}'</FONT>, i + <FONT CLASS="IntegerLiteral">1</FONT> );
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>                    <FONT CLASS="If">if</FONT>( endIndex != -<FONT CLASS="IntegerLiteral">1</FONT> ) {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>                        ++endIndex;
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>                        propertyNameBuffer.append( getDefaultValue( defaultString.substring( i, endIndex ) ) );
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>                        i = endIndex;
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                        <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                    }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>                    <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>                        result.append(propertyNameBuffer.toString());
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>                        propertyNameBuffer = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>                    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>                }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>                <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>                    inProp = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                    propertyNameBuffer.append(c);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>                    ++i;
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>                    <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>                }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (c == <FONT CLASS="CharacerLiteral">'{'</FONT>) {
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>                <FONT CLASS="If">if</FONT> (inProp) {
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>                    propertyNameBuffer.append(c);
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>                    <FONT CLASS="If">if</FONT>(characters[i - <FONT CLASS="IntegerLiteral">1</FONT>] != <FONT CLASS="CharacerLiteral">'$'</FONT>) {
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>                        inProp=<FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                        result.append(propertyNameBuffer.toString());
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                        propertyNameBuffer = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>                    }
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>                    ++i;
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>                    <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>                }
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>            }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (c == <FONT CLASS="CharacerLiteral">'}'</FONT>) {
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>                <FONT CLASS="If">if</FONT> (inProp) {
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                    appendProperty(propertyNameBuffer, result);
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                    propertyNameBuffer = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>                    inProp = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>                    ++i;
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>                    <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                }
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            }
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            <FONT CLASS="If">if</FONT> (!inProp) result.append(c);
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>            <FONT CLASS="Else">else</FONT> propertyNameBuffer.append(c);
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            ++i;
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>        }
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>        <FONT CLASS="If">if</FONT>(propertyNameBuffer.length() != <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>            result.append(propertyNameBuffer.toString());
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        }
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        <FONT CLASS="Return">return</FONT> result.toString();
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>    <FONT CLASS="Public">public</FONT> HashMap getResults() {
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>        <FONT CLASS="Return">return</FONT> properties;
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setProperty(String key, String value){
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>        properties.put(key, value);
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>    <FONT CLASS="Public">public</FONT> String getProperty(String key){
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>        <FONT CLASS="Return">return</FONT> (String)properties.get(key);
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallRoot(File installRoot) {
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>        <FONT CLASS="This">this</FONT>.installRoot = installRoot;
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>     * @since 0.7.1 to support installs from readonly media
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>     * @return Map
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>     */</FONT>
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>    <FONT CLASS="Public">public</FONT> Map getAllProperties(){
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        <FONT CLASS="Return">return</FONT> properties;
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>    }
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>     * Appends the property if found or inserts an empty string.
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>     * This method now supports loading environment variables.
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>     * @param propertyNameBuffer StringBuffer
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>     * @param result StringBuffer
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>     */</FONT>
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> appendProperty(StringBuffer propertyNameBuffer, StringBuffer result) {
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>        String propertyName = propertyNameBuffer.toString();
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>        String key = propertyName.substring(<FONT CLASS="IntegerLiteral">2</FONT>);
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>        String value = (String)properties.get(key);
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>        <FONT CLASS="If">if</FONT>(value == <FONT CLASS="Null">null</FONT> &amp;&amp; key.startsWith(InstallerContext.ENV_PREFIX)) {
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>            value = environment.getProperty(key);
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>        }
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>        <FONT CLASS="If">if</FONT>(value == <FONT CLASS="Null">null</FONT> &amp;&amp; key.startsWith(InstallerContext.JAVA_PREFIX)) {
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>            value = environment.getProperty(key);
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>        }
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>        <FONT CLASS="If">if</FONT> (value != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>            result.append(value);
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>    }
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>}
+<FONT CLASS="LN">91</FONT><A NAME="191"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/SecretPropertyField.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/SecretPropertyField.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/SecretPropertyField.java.html	(revision 14989)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.SecretPropertyField (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SecretPropertyField.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> *
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * &lt;p&gt;An InputField that should not have its property printed to the properties
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * file, probably for security reasons such as a PasswordTextInput &lt;/p&gt;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * &lt;p&gt;It is imperative that all classes that implement this interface extend
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>* InputField &lt;/p&gt;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @author Paul Hinds
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @version $Id: SecretPropertyField.java,v 1.1.1.1 2005/10/18 18:20:55 teknopaul Exp $
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> SecretPropertyField{
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>}
+<FONT CLASS="LN">31</FONT><A NAME="31"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/SelectInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/SelectInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/SelectInput.java.html	(revision 14989)
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.SelectInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SelectInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.MissingResourceException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> *
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Input type to choose a single value from a (numbered) list of options &lt;/p&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * &lt;p&gt;N.B. subclassed for TargetSelectInput &lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @author Paul Hinds
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @version $Id: SelectInput.java,v 1.4 2006/12/07 02:50:27 teknopaul Exp $
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SelectInput
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>{
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="SingleLineComment">// i18n support
+<FONT CLASS="LN">40</FONT><A NAME="40"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> ResourceBundle langPack = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> optionIdx = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Static">static</FONT>{
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            langPack = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"resources.LanguagePack"</FONT>);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        } <FONT CLASS="Catch">catch</FONT> (MissingResourceException e) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            <FONT CLASS="SingleLineComment">// ignore, signifies no lang packs installed  
+<FONT CLASS="LN">47</FONT><A NAME="47"></A></FONT>        }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput.Option</A>[] options;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> SelectInput() {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput.Option</A>[] getOptions() {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="Return">return</FONT> options;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOptions(<A HREF="../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput.Option</A>[] options) {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="This">this</FONT>.options = options;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> Option getNewOption(){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> Option();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> Option {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> idx = ++optionIdx;
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="Private">private</FONT> String text;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="Public">public</FONT> String value;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setText(String text) {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            <FONT CLASS="This">this</FONT>.text = text;
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="Public">public</FONT> String getText() {
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            <FONT CLASS="If">if</FONT>(langPack != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>                <FONT CLASS="Return">return</FONT> langPack.getString(getProperty() + <FONT CLASS="StringLiteral">"."</FONT> + idx +<FONT CLASS="StringLiteral">".displayText"</FONT>);
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            <FONT CLASS="Return">return</FONT> text;
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String value){
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        setInputResult(value);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="If">if</FONT>(getInputResult() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        String value = getInputResult();
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="Boolean">boolean</FONT> ok = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; options.length; i++) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            ok |= options[i].value.equals(value);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        <FONT CLASS="Return">return</FONT> ok;
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>     * Not used at runtime.
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>     * @return boolean
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>     */</FONT>
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        <FONT CLASS="If">if</FONT>(getDisplayText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            System.out.println(<FONT CLASS="StringLiteral">"Select:displayText must be set"</FONT>);
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        <FONT CLASS="If">if</FONT>(getProperty()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>            System.out.println(<FONT CLASS="StringLiteral">"Select:property must be set"</FONT>);
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>            System.out.println(<FONT CLASS="StringLiteral">"Select:defaultValue must be set"</FONT>);
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        }
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        <FONT CLASS="If">if</FONT>(getOptions()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>            System.out.println(<FONT CLASS="StringLiteral">"Select:option must have at least two options"</FONT>);
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        }
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        <FONT CLASS="If">if</FONT>(getOptions().length&lt;<FONT CLASS="IntegerLiteral">2</FONT>){
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>            System.out.println(<FONT CLASS="StringLiteral">"Select:option must have at least two options"</FONT>);
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; getOptions().length; i++) {
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>            Option o = getOptions()[i];
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>            <FONT CLASS="If">if</FONT>(o.getText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                System.out.println(<FONT CLASS="StringLiteral">"Select:option:text must be set"</FONT>);
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            }
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            <FONT CLASS="If">if</FONT>(o.value==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                System.out.println(<FONT CLASS="StringLiteral">"Select:option:value must be set"</FONT>);
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        }
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        <FONT CLASS="Boolean">boolean</FONT> defaultExists = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; getOptions().length; i++) {
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>            Option o = getOptions()[i];
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>            <FONT CLASS="If">if</FONT>(o.value.equals(getDefaultValue())){
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>                defaultExists=<FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>            }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>        }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>        <FONT CLASS="If">if</FONT>(!defaultExists){
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>            System.out.println(<FONT CLASS="StringLiteral">"Select:option:Default must be one of the options"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        }
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>}
+<FONT CLASS="LN">53</FONT><A NAME="153"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/Target.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/Target.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/Target.java.html	(revision 14989)
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.Target (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Target.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * Indicates the input type is a target based type and requires special
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * processing in the properties loader
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * @author teknopaul
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> *
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> */</FONT>
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> Target {
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> getIdx();
+<FONT CLASS="LN">10</FONT><A NAME="10"></A>    <FONT CLASS="Public">public</FONT> String getTarget();
+<FONT CLASS="LN">11</FONT><A NAME="11"></A>}
+<FONT CLASS="LN">12</FONT><A NAME="12"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/TargetInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/TargetInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/TargetInput.java.html	(revision 14989)
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.TargetInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TargetInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> *
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * &lt;p&gt;Input type to select targets to install &lt;/p&gt;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * If the osSpecific flag is set the OS of the current system will
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * be appended to the name of the target actually by ant run so that different
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * Targets can be run according to the target platform.
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * This feature goes against the principles of
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * building cross platform installers, but is provided so that common installer
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * tasks such as creating icons and shortcuts can be run on Windows for
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * all those useless users who can't run a command script ;)
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * &lt;br&gt;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * Currently there are two modes strict and not strict (lax).&lt;/p&gt;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * &lt;p&gt;Strict target will return the target name plus the exact String in the
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * System Property "os.name" this means you will have to provide targets for
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> * every possible OS version. See
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> * &lt;a href="http://lopica.sourceforge.net/os.html"&gt;this page&lt;/a&gt; for a list of possible values
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * There are a great many but you may not want to consider some of the options.&lt;/p&gt;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * &lt;p&gt;Lax target will return one of the following strings only
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * &lt;ul&gt;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> * &lt;li&gt;"[target-name]-linux" - Linux &lt;/li&gt;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * &lt;li&gt;"[target-name]-mac" - Mac OS and Mac OS X&lt;/li&gt;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * &lt;li&gt;"[target-name]-sun" - SunOS and Solaris&lt;/li&gt;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * &lt;li&gt;"[target-name]-win" - Windows *&lt;/li&gt;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * &lt;li&gt;"[target-name]-other" - any thing else&lt;/li&gt;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * &lt;/ul&gt;&lt;/p&gt; so you only have to create 5 ant targets to support all the cases.
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A> * @author Paul Hinds
+<FONT CLASS="LN">51</FONT><A NAME="51"></A> * @version $Id: TargetInput.java,v 1.3 2006/12/07 02:42:22 teknopaul Exp $
+<FONT CLASS="LN">52</FONT><A NAME="52"></A> */</FONT>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TargetInput
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../org/tp23/antinstaller/input/Target.java.html">Target</A>{
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Private">private</FONT> String target;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Private">private</FONT> String force;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> String osSpecific;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> String strict;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="SingleLineComment">//targets are ordered
+<FONT CLASS="LN">63</FONT><A NAME="63"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> idx;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> globalIdx = <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> TargetInput() {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        idx = getGlobalIdx();
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Public">public</FONT> String getTarget() {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="If">if</FONT>(isTrue(osSpecific)){
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            <FONT CLASS="Return">return</FONT> getOSSpecificTarget();
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            <FONT CLASS="Return">return</FONT> target;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>     * Used to fetch the target value that was set in the config file
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>     * @return
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>     */</FONT>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Public">public</FONT> String getTargetName() {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="Return">return</FONT> target;
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setTarget(String target) {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        <FONT CLASS="This">this</FONT>.target = target;
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        setProperty(target);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="Public">public</FONT> String getForce() {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="Return">return</FONT> force;
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setForce(String force) {
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        <FONT CLASS="This">this</FONT>.force = force;
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    <FONT CLASS="Public">public</FONT> String getStrict() {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        <FONT CLASS="Return">return</FONT> strict;
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setStrict(String strict) {
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        <FONT CLASS="This">this</FONT>.strict = strict;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>    <FONT CLASS="Public">public</FONT> String getOsSpecific() {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        <FONT CLASS="Return">return</FONT> osSpecific;
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOsSpecific(String osSpecific) {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        <FONT CLASS="This">this</FONT>.osSpecific = osSpecific;
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>     * Called to validate the user input
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>     */</FONT>
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A> {
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        <FONT CLASS="SingleLineComment">//setInputResult(target);
+<FONT CLASS="LN">22</FONT><A NAME="122"></A></FONT>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>    }
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>     * Not used at runtime.
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>     * @return boolean
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>     */</FONT>
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>        <FONT CLASS="If">if</FONT>(getDisplayText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            System.out.println(<FONT CLASS="StringLiteral">"Target:displayText must be set"</FONT>);
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        }
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>        <FONT CLASS="If">if</FONT>(getTarget()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>            System.out.println(<FONT CLASS="StringLiteral">"Target:target must be set"</FONT>);
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>        }
+<FONT CLASS="LN">41</FONT><A NAME="141"></A><FONT CLASS="SingleLineComment">//      if(getTarget().equals("default")){
+<FONT CLASS="LN">42</FONT><A NAME="142"></A></FONT><FONT CLASS="SingleLineComment">//          System.out.println("Target:target can not be \"default\"");
+<FONT CLASS="LN">43</FONT><A NAME="143"></A></FONT><FONT CLASS="SingleLineComment">//          return false;
+<FONT CLASS="LN">44</FONT><A NAME="144"></A></FONT><FONT CLASS="SingleLineComment">//      }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A></FONT>        <FONT CLASS="If">if</FONT>(!InputField.optionalBoolean(getForce())){
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>            System.out.println(<FONT CLASS="StringLiteral">"Target:force must be true or false or null"</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        <FONT CLASS="If">if</FONT>(!InputField.optionalBoolean(getStrict())){
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>            System.out.println(<FONT CLASS="StringLiteral">"Target:strict must be true or false or null"</FONT>);
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        }
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>        <FONT CLASS="If">if</FONT>(!InputField.optionalBoolean(getOsSpecific())){
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>            System.out.println(<FONT CLASS="StringLiteral">"Target:osSpecific must be true or false or null"</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>        }
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        <FONT CLASS="If">if</FONT>(!InputField.requiredBoolean(getDefaultValue())){
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>            System.out.println(<FONT CLASS="StringLiteral">"Target:defaultValue must be true or false"</FONT>);
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>        }
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> getIdx() {
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>        <FONT CLASS="Return">return</FONT> idx;
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> getGlobalIdx() {
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        <FONT CLASS="Return">return</FONT> globalIdx++;
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>    }
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>    <FONT CLASS="Public">public</FONT> String getOSSpecificTarget() {
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>        <FONT CLASS="If">if</FONT>(isTrue(strict)){
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>            <FONT CLASS="Return">return</FONT> getStrictTarget();
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="Return">return</FONT> getLaxTarget();
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>    }
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>    <FONT CLASS="Private">private</FONT> String getStrictTarget(){
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>        <FONT CLASS="Return">return</FONT> target + getOsSpecificSuffix();
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>    }
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>    <FONT CLASS="Private">private</FONT> String getLaxTarget(){
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>        <FONT CLASS="Return">return</FONT> target + getLaxOsSpecificSuffix();
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>    }
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>     * N.B.  should have added a "-" but to late to change now and not important
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>     * @return
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>     */</FONT>
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> String getOsSpecificSuffix(){
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>        <FONT CLASS="Return">return</FONT> System.getProperty(<FONT CLASS="StringLiteral">"os.name"</FONT>);
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>    }
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> String getLaxOsSpecificSuffix(){
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>        String osName = System.getProperty(<FONT CLASS="StringLiteral">"os.name"</FONT>).toLowerCase();
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        <FONT CLASS="If">if</FONT>(osName.indexOf(<FONT CLASS="StringLiteral">"linux"</FONT>) != -<FONT CLASS="IntegerLiteral">1</FONT>){
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"-linux"</FONT>;
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>        }
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>        <FONT CLASS="If">if</FONT>(osName.indexOf(<FONT CLASS="StringLiteral">"mac"</FONT>) != -<FONT CLASS="IntegerLiteral">1</FONT>){
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"-mac"</FONT>;
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>        }
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>        <FONT CLASS="If">if</FONT>(osName.indexOf(<FONT CLASS="StringLiteral">"windows"</FONT>) != -<FONT CLASS="IntegerLiteral">1</FONT>){
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"-win"</FONT>;
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>        }
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>        <FONT CLASS="If">if</FONT>(osName.indexOf(<FONT CLASS="StringLiteral">"solaris"</FONT>) != -<FONT CLASS="IntegerLiteral">1</FONT> || osName.indexOf(<FONT CLASS="StringLiteral">"sunos"</FONT>) != -<FONT CLASS="IntegerLiteral">1</FONT>){
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"-sun"</FONT>;
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>        }
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"-other"</FONT>;
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>        
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>    }
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>}
+<FONT CLASS="LN">10</FONT><A NAME="210"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/TargetSelectInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/TargetSelectInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/TargetSelectInput.java.html	(revision 14989)
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.TargetSelectInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TargetSelectInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds, Mark Anderson
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * &lt;p&gt;Input type to choose a single value from a (numbered) list of options
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * which will be rendered as radio buttons in the Swing GUI &lt;/p&gt;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * REF: 1177206
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * @author Paul Hinds, Mark Anderson
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @version $Id: TargetSelectInput.java,v 1.4 2006/12/21 00:03:08 teknopaul Exp $
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> */</FONT>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TargetSelectInput
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput</A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../org/tp23/antinstaller/input/Target.java.html">Target</A>{
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="SingleLineComment">//targets are ordered
+<FONT CLASS="LN">32</FONT><A NAME="32"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> idx;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> TargetSelectInput() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        idx = TargetInput.getGlobalIdx();
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    }
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> getIdx() {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="Return">return</FONT> idx;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> String getTarget(){
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="Super">super</FONT>.getDefaultValue();
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     * Not used at runtime.
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     * @return boolean
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="If">if</FONT>(getDisplayText() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            System.out.println(<FONT CLASS="StringLiteral">"TargetSelect:displayText must be set"</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="If">if</FONT>(getProperty() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            System.out.println(<FONT CLASS="StringLiteral">"TargetSelect:property must be set"</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            System.out.println(<FONT CLASS="StringLiteral">"TargetSelect:defaultValue must be set"</FONT>);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="If">if</FONT>(getOptions() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            System.out.println(<FONT CLASS="StringLiteral">"TargetSelect:option must have at least two options"</FONT>);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="If">if</FONT>(getOptions().length &lt; <FONT CLASS="IntegerLiteral">2</FONT>){
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            System.out.println(<FONT CLASS="StringLiteral">"TargetSelect:option must have at least two options"</FONT>);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; getOptions().length; i++) {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            Option o = getOptions()[i];
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            <FONT CLASS="If">if</FONT>(o.getText() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                System.out.println(<FONT CLASS="StringLiteral">"TargetSelect:option:text must be set"</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            <FONT CLASS="If">if</FONT>(o.value == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>                System.out.println(<FONT CLASS="StringLiteral">"TargetSelect:option:value must be set"</FONT>);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="Boolean">boolean</FONT> defaultExists = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; getOptions().length; i++) {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            Option o = getOptions()[i];
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            <FONT CLASS="If">if</FONT>(o.value.equals(getDefaultValue())){
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>                defaultExists=<FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A><FONT CLASS="SingleLineComment">//          if(o.value.equals("default")){
+<FONT CLASS="LN">90</FONT><A NAME="90"></A></FONT><FONT CLASS="SingleLineComment">//              System.out.println("Target:target can not be \"default\"");
+<FONT CLASS="LN">91</FONT><A NAME="91"></A></FONT><FONT CLASS="SingleLineComment">//              return false;
+<FONT CLASS="LN">92</FONT><A NAME="92"></A></FONT><FONT CLASS="SingleLineComment">//          }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A></FONT>        }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="If">if</FONT>(!defaultExists){
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            System.out.println(<FONT CLASS="StringLiteral">"TargetSelect:option:Default must be one of the options"</FONT>);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>}
+<FONT CLASS="LN">01</FONT><A NAME="101"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/UnvalidatedTextInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/UnvalidatedTextInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/UnvalidatedTextInput.java.html	(revision 14989)
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.UnvalidatedTextInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">UnvalidatedTextInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> *
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * &lt;p&gt;Free text input type &lt;/p&gt;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @author Paul Hinds
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @version $Id: UnvalidatedTextInput.java,v 1.1.1.1 2005/10/18 18:20:54 teknopaul Exp $
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> UnvalidatedTextInput
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>{
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> UnvalidatedTextInput() {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String dir){
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        setInputResult(dir);
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>     * Called to validate the user input
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>     */</FONT>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     * Not used at runtime.
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     * @return boolean
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="If">if</FONT>(getDisplayText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            System.out.println(<FONT CLASS="StringLiteral">"Simple:displayText must be set"</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="If">if</FONT>(getProperty()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            System.out.println(<FONT CLASS="StringLiteral">"Simple:property must be set"</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            System.out.println(<FONT CLASS="StringLiteral">"Simple:defualtValue must be set"</FONT>);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>}
+<FONT CLASS="LN">67</FONT><A NAME="67"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ValidatedTextInput.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ValidatedTextInput.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/ValidatedTextInput.java.html	(revision 14989)
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.ValidatedTextInput (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ValidatedTextInput.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.regex.Matcher;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.regex.Pattern;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> *
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Free text input type with validation using regular expressions&lt;/p&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @author Paul Hinds
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @version $Id: ValidatedTextInput.java,v 1.2 2006/12/21 00:03:09 teknopaul Exp $
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ValidatedTextInput
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>{
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> String regex;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> Pattern pattern;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="SingleLineComment">//private RegexpMatcher matcher; // use ant version in an attempt to support jdk1.3
+<FONT CLASS="LN">39</FONT><A NAME="39"></A></FONT>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> ValidatedTextInput() {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValue(String dir){
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        setInputResult(dir);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> String getRegex() {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Return">return</FONT> regex;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setRegex(String regex) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="This">this</FONT>.regex = regex;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <FONT CLASS="SingleLineComment">//matcher = new RegexpMatcherFactory().newRegexpMatcher();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A></FONT>            <FONT CLASS="SingleLineComment">//matcher.setPattern(regex);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A></FONT>            pattern = Pattern.compile(regex);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Catch">catch</FONT> (BuildException ex) {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputException.java.html">InputException</A>(<FONT CLASS="StringLiteral">"Invalid regex in Validated text input"</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>     * Called to validate the user input
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     */</FONT>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validate(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> cxt) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            <FONT CLASS="If">if</FONT> (getInputResult() == <FONT CLASS="Null">null</FONT>)<FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            String toTest = getInputResult();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            Matcher matcher = pattern.matcher(toTest);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="SingleLineComment">//boolean matches =  matcher.matches(toTest);
+<FONT CLASS="LN">71</FONT><A NAME="71"></A></FONT>            <FONT CLASS="Boolean">boolean</FONT> matches =  matcher.matches();
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            <FONT CLASS="Return">return</FONT> matches;
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable e) {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            cxt.log(e);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>     * Used by checkConfig to validate the configuration file.
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>     * Not used at runtime.
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>     * @return boolean
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>     */</FONT>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateObject() {
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="If">if</FONT>(getDisplayText()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            System.out.println(<FONT CLASS="StringLiteral">"Validated:displayText must be set"</FONT>);
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="If">if</FONT>(getProperty()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            System.out.println(<FONT CLASS="StringLiteral">"Validated:property must be set"</FONT>);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="If">if</FONT>(getDefaultValue()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            System.out.println(<FONT CLASS="StringLiteral">"Validated:defaultValue must be set"</FONT>);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <FONT CLASS="If">if</FONT>(getRegex()==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            System.out.println(<FONT CLASS="StringLiteral">"Validated:regex must be set"</FONT>);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="Try">try</FONT>{
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            <FONT CLASS="SingleLineComment">//matcher = new RegexpMatcherFactory().newRegexpMatcher();
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></FONT>            <FONT CLASS="SingleLineComment">//matcher.setPattern(getRegex());
+<FONT CLASS="LN">06</FONT><A NAME="106"></A></FONT>        }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e){
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            System.out.println(<FONT CLASS="StringLiteral">"Validated:regex must compile"</FONT>);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        }
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>}
+<FONT CLASS="LN">14</FONT><A NAME="114"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/Validator.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/Validator.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/input/Validator.java.html	(revision 14989)
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.input.Validator (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Validator.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.input.index.html" target="packageFrame">org.tp23.antinstaller.input</A>;
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A>
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A><FONT CLASS="Import">import</FONT> java.util.Locale;
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A>
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A>
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A>
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * A no args constructor should be provided
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * @author Paul Hinds
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * @version $Id: Validator.java,v 1.1.1.1 2005/10/18 18:20:54 teknopaul Exp $
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> */</FONT>
+<FONT CLASS="LN">13</FONT><A NAME="13"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> Validator {
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>     * Validate the user entry.  The InstallerContext is provided to allow
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>     * conditional failure based on user input. for example the implementation
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>     * of this class could call the following code after failing to open a socket
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>     * &lt;pre&gt;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>     * boolean usrOverride = ctx.getMessageRenderer().prompt("Prot not available are you sure?");
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>     * if(userOverride)return true;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>     * else{
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>     *  throw new SocketException();
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>     * }
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>     * &lt;/pre&gt;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>     * @param text  may be null it is up to the validator to decide if null or ""
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>     * is acceptable
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>     * @throws Exception
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>     */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> validate(String text,<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx)<FONT CLASS="Throws">throws</FONT> Exception;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>     * This method should return a string for every exception that might be 
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>     * thrown by the validate method.  The top level Throwable should be 
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>     * handled at least.  
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>     * @param ex
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>     * @param l Locale (ignored, but one day we should be internationalized)
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>     * @return
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>     */</FONT>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> String getErrorMessage(Throwable ex,Locale l);
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>}
+<FONT CLASS="LN">41</FONT><A NAME="41"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/LicensePage.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/LicensePage.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/LicensePage.java.html	(revision 14989)
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.page.LicensePage (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LicensePage.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.page.index.html" target="packageFrame">org.tp23.antinstaller.page</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * &lt;p&gt;Represents a license page witha  resouce that contains the text of the licenses &lt;/p&gt;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author Paul Hinds
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @version $Id: LicensePage.java,v 1.1.1.1 2005/10/18 18:21:04 teknopaul Exp $
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LicensePage
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Private">private</FONT> String resource;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> String usePaging;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> LicensePage() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> String getResource() {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Return">return</FONT> resource;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setResource(String resource) {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="This">this</FONT>.resource = resource;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> String getUsePaging() {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Return">return</FONT> usePaging;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setUsePaging(String usePaging) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="This">this</FONT>.usePaging = usePaging;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>}
+<FONT CLASS="LN">53</FONT><A NAME="53"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/Page.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/Page.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/Page.java.html	(revision 14989)
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.page.Page (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Page.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.page.index.html" target="packageFrame">org.tp23.antinstaller.page</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.MissingResourceException;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.Set;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.util.StringTokenizer;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.util.TreeSet;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/TargetInput.java.html">org.tp23.antinstaller.input.TargetInput</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">org.tp23.antinstaller.runtime.IfPropertyHelper</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> *
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * &lt;p&gt;Represents a page in the installer. &lt;/p&gt;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * &lt;p&gt;This object maintians an ordered list of targets that have been selected
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>* so that when ant is run the targets are run in the correct order.  If
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>* Targets exist in multiple pages they are run in the order they appear in the config file.  &lt;/p&gt;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * @author Paul Hinds
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * @version $Id: Page.java,v 1.10 2007/01/19 00:24:36 teknopaul Exp $
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> */</FONT>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Class">class</FONT> Page {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A><FONT CLASS="SingleLineComment">//   i18n support
+<FONT CLASS="LN">47</FONT><A NAME="47"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> ResourceBundle langPack = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Static">static</FONT>{
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            langPack = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"LanguagePack"</FONT>);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        } <FONT CLASS="Catch">catch</FONT> (MissingResourceException e) {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <FONT CLASS="SingleLineComment">// ignore, signifies no lang packs installed  
+<FONT CLASS="LN">53</FONT><A NAME="53"></A></FONT>        }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="SingleLineComment">//private static final int MAX_TARGETS = 10;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A></FONT>    <FONT CLASS="Private">private</FONT> String name;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Private">private</FONT> String displayText;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Private">private</FONT> String imageResource;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] outputField;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> abort;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     *  target to be called as the installer is running
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>     */</FONT>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> String postDisplayTarget;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Private">private</FONT> Set targets = <FONT CLASS="New">new</FONT> TreeSet();
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Public">public</FONT> Page() {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Public">public</FONT> String getName() {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="Return">return</FONT> name;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setName(String name) {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="This">this</FONT>.name = name;
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    <FONT CLASS="Public">public</FONT> String getDisplayText() {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        <FONT CLASS="If">if</FONT>(langPack != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            <FONT CLASS="Return">return</FONT> langPack.getString(<FONT CLASS="StringLiteral">"page."</FONT> + getName() + <FONT CLASS="StringLiteral">".displayText"</FONT>);
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="Return">return</FONT> displayText;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDisplayText(String displayText) {
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="This">this</FONT>.displayText = displayText;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    <FONT CLASS="Public">public</FONT> String getImageResource() {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="Return">return</FONT> imageResource;
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setImageResource(String imageResource) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="This">this</FONT>.imageResource = imageResource;
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] getOutputField() {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <FONT CLASS="Return">return</FONT> outputField;
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] outputField) {
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="This">this</FONT>.outputField = outputField;
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>    }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>    <FONT CLASS="Public">public</FONT> String getPostDisplayTarget() {
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        <FONT CLASS="Return">return</FONT> postDisplayTarget;
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>    }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setPostDisplayTarget(String runtimeTarget) {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        <FONT CLASS="This">this</FONT>.postDisplayTarget = runtimeTarget;
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>     * These are the ant targets that will be run, this is decided after
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>     * the Page has been displayed.  For example if the user chooses not
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>     * to enter a field that may signify that a target should not be run
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>     * @return A sorted List a list of Ant targets as Strings;
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>     * @throws InstallException 
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>     */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>    <FONT CLASS="Public">public</FONT> List getTargets(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        List results = <FONT CLASS="New">new</FONT> ArrayList(targets.size());
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>            Iterator iter = targets.iterator();
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>            <A HREF="../../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A> helper = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A>(ctx);
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>            <FONT CLASS="While">while</FONT>(iter.hasNext()){
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>                IndexedTarget idxTarget = (IndexedTarget)iter.next();
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>                <FONT CLASS="If">if</FONT>( IndexedTarget.PAGE.equals(idxTarget.getTargetType()) ){
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                    <FONT CLASS="If">if</FONT>( helper.ifProperty(<FONT CLASS="This">this</FONT>) || helper.ifTarget(<FONT CLASS="This">this</FONT>, ctx.getInstaller().getPages() ) ){
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                        results.add(idxTarget.target);
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>                    }
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>                }
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>                <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                    results.add(idxTarget.target);
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>                }
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        } <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> e) {
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            <FONT CLASS="SingleLineComment">// should not happen at runtime if ifProperty has been validated
+<FONT CLASS="LN">40</FONT><A NAME="140"></A></FONT>            e.printStackTrace();
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>            ctx.log(ctx.getInstaller().isVerbose(), e);
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> RuntimeException();
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        }
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        <FONT CLASS="Return">return</FONT> results;
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>     * get input targets that are selected and all page targets, independent of
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>     * the ifProperty value 
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>     * @return
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>    <FONT CLASS="Public">public</FONT> List getAllTargets() {
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        List results = <FONT CLASS="New">new</FONT> ArrayList(targets.size());
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>        Iterator iter = targets.iterator();
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>        <FONT CLASS="While">while</FONT>(iter.hasNext()){
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>            IndexedTarget idxTarget = (IndexedTarget)iter.next();
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            results.add(idxTarget.target);
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>        <FONT CLASS="Return">return</FONT> results;
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>     * Comma separated list of targets for this page, called when parsing the
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>     * config file
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>     * @param target String
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>     */</FONT>
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setTarget(String targetList) {
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>        StringTokenizer st = <FONT CLASS="New">new</FONT> StringTokenizer(targetList, <FONT CLASS="StringLiteral">","</FONT>);
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        <FONT CLASS="While">while</FONT> (st.hasMoreTokens()) {
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>            targets.add(<FONT CLASS="New">new</FONT> IndexedTarget(TargetInput.getGlobalIdx(), 
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>                    st.nextToken(),
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>                    IndexedTarget.PAGE));
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>     * Adds an INPUT target to the Page config
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>     * @param idx
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>     * @param target
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>     */</FONT>
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> addTarget(<FONT CLASS="Int">int</FONT> idx, String target) {
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>        <FONT CLASS="This">this</FONT>.targets.add(<FONT CLASS="New">new</FONT> IndexedTarget(idx, target, IndexedTarget.INPUT));
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> removeTarget(<FONT CLASS="Int">int</FONT> idx) {
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>        <FONT CLASS="This">this</FONT>.targets.remove(<FONT CLASS="New">new</FONT> IndexedTarget(idx, <FONT CLASS="Null">null</FONT>));
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>    }
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>     * returns true if the page has the current target set
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>     * @param target String
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>     * @return boolean
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>     */</FONT>
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isTarget(String target) {
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>        <FONT CLASS="If">if</FONT>(target == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>        }
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>        Iterator iter = targets.iterator();
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        <FONT CLASS="While">while</FONT>(iter.hasNext()) {
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>            IndexedTarget idxTarget = (IndexedTarget)iter.next();
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>            <FONT CLASS="If">if</FONT>(idxTarget.target.equals(target)){
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>            }
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>        }
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>    }
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>     * @return a List of IndexedTarget objects
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>     */</FONT>
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>    <FONT CLASS="Public">public</FONT> List getPageTargets(){
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>        List toReturn = <FONT CLASS="New">new</FONT> ArrayList(targets.size());
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>        Iterator iter = targets.iterator();
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>        <FONT CLASS="While">while</FONT>(iter.hasNext()) {
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>            IndexedTarget idxTarget = (IndexedTarget)iter.next();
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>            <FONT CLASS="If">if</FONT>( IndexedTarget.PAGE.equals(idxTarget.targetType) ){
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>                toReturn.add(idxTarget);
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>            }
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>        }
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>        <FONT CLASS="Return">return</FONT> toReturn;
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>    }
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>     * @return a List of IndexedTarget objects
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>     */</FONT>
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>    <FONT CLASS="Public">public</FONT> List getElementTargets(){
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>        List toReturn = <FONT CLASS="New">new</FONT> ArrayList(targets.size());
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>        Iterator iter = targets.iterator();
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>        <FONT CLASS="While">while</FONT>(iter.hasNext()) {
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>            IndexedTarget idxTarget = (IndexedTarget)iter.next();
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>            <FONT CLASS="If">if</FONT>( IndexedTarget.INPUT.equals(idxTarget.targetType) ){
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>                toReturn.add(idxTarget);
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>            }
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>        }
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>        <FONT CLASS="Return">return</FONT> toReturn;
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>    }
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>     * This is called after the page is displayed, a page can return false to indicate
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>     * that the installation should abort.  Should be false if the cancel button is pressed.
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>     * System.exit is not called to allow the installer to clean up temporary files.
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>     * @return boolean
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>     */</FONT>
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort() {
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>        <FONT CLASS="Return">return</FONT> abort;
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAbort(<FONT CLASS="Boolean">boolean</FONT> abort) {
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>        <FONT CLASS="This">this</FONT>.abort = abort;
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> IndexedTarget <FONT CLASS="Implements">implements</FONT> Comparable{
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>        
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String PAGE = <FONT CLASS="StringLiteral">"page"</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String INPUT = <FONT CLASS="StringLiteral">"input"</FONT>;
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>        
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>        <FONT CLASS="Int">int</FONT> idx;
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>        String target;
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>        String targetType = INPUT;
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>        
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>        IndexedTarget(<FONT CLASS="Int">int</FONT> idx, String target){
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>            <FONT CLASS="This">this</FONT>.idx = idx;
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>            <FONT CLASS="This">this</FONT>.target = target;
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>        IndexedTarget(<FONT CLASS="Int">int</FONT> idx, String target, String targetType){
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>            <FONT CLASS="This">this</FONT>.idx = idx;
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>            <FONT CLASS="This">this</FONT>.target = target;
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>            <FONT CLASS="This">this</FONT>.targetType = targetType;
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>        
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> equals(Object target){
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>            IndexedTarget test = (IndexedTarget)target;
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>            <FONT CLASS="Return">return</FONT> test.idx == idx;
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>        }
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>        <FONT CLASS="SingleLineComment">// FindBugs - part of equals() contract
+<FONT CLASS="LN">69</FONT><A NAME="269"></A></FONT>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> hashCode(){
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="This">this</FONT>.idx;
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> compareTo(Object o) {
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>            IndexedTarget test = (IndexedTarget)o;
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>            <FONT CLASS="Return">return</FONT> idx - test.idx;
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>        <FONT CLASS="Public">public</FONT> String getTarget() {
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>            <FONT CLASS="Return">return</FONT> target;
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>        }
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>        <FONT CLASS="Public">public</FONT> String getTargetType() {
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>            <FONT CLASS="Return">return</FONT> targetType;
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>        }
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>
+<FONT CLASS="LN">83</FONT><A NAME="283"></A>    }
+<FONT CLASS="LN">84</FONT><A NAME="284"></A>}
+<FONT CLASS="LN">85</FONT><A NAME="285"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/ProgressPage.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/ProgressPage.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/ProgressPage.java.html	(revision 14989)
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.page.ProgressPage (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ProgressPage.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.page.index.html" target="packageFrame">org.tp23.antinstaller.page</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ProgressPage <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>{
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>    
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> showTargets = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Public">public</FONT> ProgressPage() {
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    }
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>     * @return Returns the showTargets.
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>     */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isShowTargets() {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="Return">return</FONT> showTargets;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>     * @param showTargets indicates that the graphical display of
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>     * progress should be used in the Swing renderer
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>     */</FONT>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setShowTargets(<FONT CLASS="Boolean">boolean</FONT> showTargets) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.showTargets = showTargets;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setShowTargets(String strShowTargets) {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="This">this</FONT>.showTargets = OutputField.isTrue(strShowTargets);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>}
+<FONT CLASS="LN">44</FONT><A NAME="44"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/SimpleInputPage.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/SimpleInputPage.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/SimpleInputPage.java.html	(revision 14989)
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.page.SimpleInputPage (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SimpleInputPage.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.page.index.html" target="packageFrame">org.tp23.antinstaller.page</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SimpleInputPage
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Private">private</FONT> String ifTarget;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Private">private</FONT> String ifProperty;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> overflow;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> SimpleInputPage() {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    }
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> String getIfTarget() {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Return">return</FONT> ifTarget;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setIfTarget(String ifTarget) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.ifTarget = ifTarget;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> String getIfProperty() {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="Return">return</FONT> ifProperty;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setIfProperty(String ifProperty) {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="This">this</FONT>.ifProperty = ifProperty;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isOverflow() {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="Return">return</FONT> overflow;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverflow(<FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="This">this</FONT>.overflow = overflow;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverflow(String strOverflow) {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="This">this</FONT>.overflow = OutputField.isTrue(strOverflow);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>}
+<FONT CLASS="LN">58</FONT><A NAME="58"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/SplashPage.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/SplashPage.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/SplashPage.java.html	(revision 14989)
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.page.SplashPage (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SplashPage.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.page.index.html" target="packageFrame">org.tp23.antinstaller.page</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SplashPage
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> {
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>    <FONT CLASS="Private">private</FONT> String splashResource;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>    <FONT CLASS="Private">private</FONT> String altText;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>    <FONT CLASS="Public">public</FONT> SplashPage() {
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    }
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Public">public</FONT> String getSplashResource() {
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>        <FONT CLASS="Return">return</FONT> splashResource;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    }
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setSplashResource(String splashResource) {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>        <FONT CLASS="This">this</FONT>.splashResource = splashResource;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    }
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> String getAltText() {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Return">return</FONT> altText;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAltText(String altText) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.altText = altText;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>}
+<FONT CLASS="LN">41</FONT><A NAME="41"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/TextPage.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/TextPage.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/page/TextPage.java.html	(revision 14989)
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.page.TextPage (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TextPage.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.page.index.html" target="packageFrame">org.tp23.antinstaller.page</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TextPage
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> {
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>    
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>    <FONT CLASS="Private">private</FONT> String htmlResource;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>    <FONT CLASS="Private">private</FONT> String textResource;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Public">public</FONT> TextPage() {
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    }
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Public">public</FONT> String getHtmlResource() {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>        <FONT CLASS="Return">return</FONT> htmlResource;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    }
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setHtmlResource(String htmlResource) {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <FONT CLASS="This">this</FONT>.htmlResource = htmlResource;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> String getTextResource() {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="Return">return</FONT> textResource;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setTextResource(String textResource) {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="This">this</FONT>.textResource = textResource;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>}
+<FONT CLASS="LN">43</FONT><A NAME="43"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/AntOutputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/AntOutputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/AntOutputRenderer.java.html	(revision 14989)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.AntOutputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AntOutputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.renderer.index.html" target="packageFrame">org.tp23.antinstaller.renderer</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> AntOutputRenderer {
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>    <FONT CLASS="Public">public</FONT> PrintStream getOut();
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>    <FONT CLASS="Public">public</FONT> PrintStream getErr();
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>}
+<FONT CLASS="LN">25</FONT><A NAME="25"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/MessageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/MessageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/MessageRenderer.java.html	(revision 14989)
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.MessageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">MessageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.renderer.index.html" target="packageFrame">org.tp23.antinstaller.renderer</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * &lt;p&gt;Abstract message renderer asking user questions or providing feedback&lt;/p&gt;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author Paul Hinds
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @version $Id: MessageRenderer.java,v 1.1.1.1 2005/10/18 18:20:59 teknopaul Exp $
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> MessageRenderer {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallerContext(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx);
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>     * Print a message for which there is not option to reply
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>     * @param message String
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>     */</FONT>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> printMessage(String message);
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>     * ask the user for Yes or No
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>     * @param message String
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>     * @return boolean  true = Yes  false = No
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>     */</FONT>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> prompt(String message);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>}
+<FONT CLASS="LN">43</FONT><A NAME="43"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/PageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/PageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/PageRenderer.java.html	(revision 14989)
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.PageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">PageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.renderer.index.html" target="packageFrame">org.tp23.antinstaller.renderer</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> PageRenderer {
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx);
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> getContext();
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> renderPage(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> Exception;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>}
+<FONT CLASS="LN">26</FONT><A NAME="26"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/RendererFactory.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/RendererFactory.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/RendererFactory.java.html	(revision 14989)
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.RendererFactory (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">RendererFactory.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.renderer.index.html" target="packageFrame">org.tp23.antinstaller.renderer</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">org.tp23.antinstaller.renderer.swing.SwingOutputFieldRenderer</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">org.tp23.antinstaller.renderer.swing.SwingPageRenderer</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">org.tp23.antinstaller.renderer.text.AbstractTextPageRenderer</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">org.tp23.antinstaller.renderer.text.TextOutputFieldRenderer</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> *
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Fetches an instance of a Renderers by using the class of the method parameter and
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * a naming convention &lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @author Paul Hinds
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * @version $Id: RendererFactory.java,v 1.3 2006/12/21 00:03:30 teknopaul Exp $
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> */</FONT>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> RendererFactory {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> RendererFactory() {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> getTextRenderer(<A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field) <FONT CLASS="Throws">throws</FONT> ClassNotFoundException {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        String fullyQualified = field.getClass().getName();
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Int">int</FONT> lastDot = fullyQualified.lastIndexOf(<FONT CLASS="CharacerLiteral">'.'</FONT>);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="If">if</FONT> (lastDot == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"InputField can not be a member of the default package"</FONT>);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Int">int</FONT> prevDot = fullyQualified.substring(<FONT CLASS="IntegerLiteral">0</FONT>,lastDot-<FONT CLASS="IntegerLiteral">1</FONT>).lastIndexOf(<FONT CLASS="CharacerLiteral">'.'</FONT>, lastDot - <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="If">if</FONT> (prevDot == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"InputField can not be a member of a single level package"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        StringBuffer rendererClassName = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        rendererClassName.append(fullyQualified.substring(<FONT CLASS="IntegerLiteral">0</FONT>, prevDot));
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        rendererClassName.append(<FONT CLASS="StringLiteral">".renderer.text."</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        rendererClassName.append(fullyQualified.substring(lastDot + <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        rendererClassName.append(<FONT CLASS="StringLiteral">"Renderer"</FONT>);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            Class clazz = Class.forName(rendererClassName.toString());
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            <FONT CLASS="Return">return</FONT> (<A HREF="../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A>) clazz.newInstance();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> ClassNotFoundException(<FONT CLASS="StringLiteral">"Class does not meet the contract for TextInputFieldRenderer:"</FONT> + rendererClassName);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">AbstractTextPageRenderer</A> getTextPageRenderer(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> ClassNotFoundException {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        String fullyQualified = page.getClass().getName();
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="Int">int</FONT> lastDot = fullyQualified.lastIndexOf(<FONT CLASS="CharacerLiteral">'.'</FONT>);
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="If">if</FONT> (lastDot == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"Pages can not be a member of the default package"</FONT>);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="Int">int</FONT> prevDot = fullyQualified.substring(<FONT CLASS="IntegerLiteral">0</FONT>,lastDot-<FONT CLASS="IntegerLiteral">1</FONT>).lastIndexOf(<FONT CLASS="CharacerLiteral">'.'</FONT>, lastDot - <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="If">if</FONT> (prevDot == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"Pages can not be a member of a single level package"</FONT>);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        StringBuffer rendererClassName = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        rendererClassName.append(fullyQualified.substring(<FONT CLASS="IntegerLiteral">0</FONT>, prevDot));
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        rendererClassName.append(<FONT CLASS="StringLiteral">".renderer.text."</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        rendererClassName.append(fullyQualified.substring(lastDot + <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        rendererClassName.append(<FONT CLASS="StringLiteral">"Renderer"</FONT>);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            Class clazz = Class.forName(rendererClassName.toString());
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="Return">return</FONT> (<A HREF="../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">AbstractTextPageRenderer</A>) clazz.newInstance();
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> ClassNotFoundException(<FONT CLASS="StringLiteral">"Class does not meet the contract for TextPageRenderer:"</FONT> + rendererClassName);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> getSwingPageRenderer(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> ClassNotFoundException {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        String fullyQualified = page.getClass().getName();
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        <FONT CLASS="Int">int</FONT> lastDot = fullyQualified.lastIndexOf(<FONT CLASS="CharacerLiteral">'.'</FONT>);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="If">if</FONT> (lastDot == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"Pages can not be a member of the default package"</FONT>);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="Int">int</FONT> prevDot = fullyQualified.substring(<FONT CLASS="IntegerLiteral">0</FONT>,lastDot-<FONT CLASS="IntegerLiteral">1</FONT>).lastIndexOf(<FONT CLASS="CharacerLiteral">'.'</FONT>, lastDot - <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="If">if</FONT> (prevDot == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"Pages can not be a member of a single level package"</FONT>);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        StringBuffer rendererClassName = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        rendererClassName.append(fullyQualified.substring(<FONT CLASS="IntegerLiteral">0</FONT>, prevDot));
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        rendererClassName.append(<FONT CLASS="StringLiteral">".renderer.swing."</FONT>);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        rendererClassName.append(fullyQualified.substring(lastDot + <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        rendererClassName.append(<FONT CLASS="StringLiteral">"Renderer"</FONT>);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            Class clazz = Class.forName(rendererClassName.toString());
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            <FONT CLASS="Return">return</FONT> (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) clazz.newInstance();
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> ClassNotFoundException(<FONT CLASS="StringLiteral">"Class does not meet the contract for SwingPageRenderer:"</FONT> + rendererClassName);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        }
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    }
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>    
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> getSwingRenderer(<A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field) <FONT CLASS="Throws">throws</FONT> ClassNotFoundException {
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        String fullyQualified = field.getClass().getName();
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        <FONT CLASS="Int">int</FONT> lastDot = fullyQualified.lastIndexOf(<FONT CLASS="CharacerLiteral">'.'</FONT>);
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        <FONT CLASS="If">if</FONT> (lastDot == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"OutputField can not be a member of the default package"</FONT>);
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        }
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        <FONT CLASS="Int">int</FONT> prevDot = fullyQualified.substring(<FONT CLASS="IntegerLiteral">0</FONT>,lastDot-<FONT CLASS="IntegerLiteral">1</FONT>).lastIndexOf(<FONT CLASS="CharacerLiteral">'.'</FONT>, lastDot - <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        <FONT CLASS="If">if</FONT> (prevDot == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> UnsupportedOperationException(<FONT CLASS="StringLiteral">"OutputField can not be a member of a single level package"</FONT>);
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        }
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        StringBuffer rendererClassName = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        rendererClassName.append(fullyQualified.substring(<FONT CLASS="IntegerLiteral">0</FONT>, prevDot));
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        rendererClassName.append(<FONT CLASS="StringLiteral">".renderer.swing."</FONT>);
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        rendererClassName.append(fullyQualified.substring(lastDot + <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        rendererClassName.append(<FONT CLASS="StringLiteral">"Renderer"</FONT>);
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            Class clazz = Class.forName(rendererClassName.toString());
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>            <FONT CLASS="Return">return</FONT> (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A>) clazz.newInstance();
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        }
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>            ex.printStackTrace();
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> ClassNotFoundException(<FONT CLASS="StringLiteral">"Class does not meet the contract for SwingInputFieldRenderer:"</FONT> + rendererClassName);
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>}
+<FONT CLASS="LN">37</FONT><A NAME="137"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIButton.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIButton.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIButton.java.html	(revision 14989)
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.AIButton (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AIButton.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.Action;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.Icon;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.JButton;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * A JButton with altered prefered size to facilitate fixing the width
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * but still using a GridBagLayout
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author Paul Hinds
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id: AIButton.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AIButton <FONT CLASS="Extends">extends</FONT> JButton {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> AIButton() {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> AIButton(String text) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Super">super</FONT>(text);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> AIButton(Action a) {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Super">super</FONT>(a);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> AIButton(Icon icon) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Super">super</FONT>(icon);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> AIButton(String text, Icon icon) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Super">super</FONT>(text, icon);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Private">private</FONT> Dimension prefSize = <FONT CLASS="New">new</FONT> Dimension(SizeConstants.BUTTON_WIDTH, 
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>                                               SizeConstants.FIELD_HEIGHT);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> Dimension getMinimumSize() {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> Dimension getPreferredSize() {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverflow(Dimension prefSize) {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="This">this</FONT>.prefSize = prefSize;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> Dimension getMaximumSize() {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>}</pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AICheckBox.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AICheckBox.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AICheckBox.java.html	(revision 14989)
@@ -0,0 +1,102 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.AICheckBox (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AICheckBox.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.Action;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.Icon;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.JCheckBox;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * A JCheckBox with altered prefered size to facilitate fixing the width
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * but still using a GridBagLayout
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author Paul Hinds
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id: AICheckBox.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AICheckBox <FONT CLASS="Extends">extends</FONT> JCheckBox {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> AICheckBox() {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> AICheckBox(String text) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Super">super</FONT>(text);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> AICheckBox(String text, <FONT CLASS="Boolean">boolean</FONT> selected) {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Super">super</FONT>(text, selected);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> AICheckBox(Action a) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Super">super</FONT>(a);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> AICheckBox(Icon icon) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Super">super</FONT>(icon);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> AICheckBox(Icon icon, <FONT CLASS="Boolean">boolean</FONT> selected) {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="Super">super</FONT>(icon, selected);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Public">public</FONT> AICheckBox(String text, Icon icon) {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="Super">super</FONT>(text, icon);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> AICheckBox(String text, Icon icon, <FONT CLASS="Boolean">boolean</FONT> selected) {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="Super">super</FONT>(text, icon, selected);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> Dimension prefSize = <FONT CLASS="New">new</FONT> Dimension(SizeConstants.FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> Dimension getMinimumSize() {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Public">public</FONT> Dimension getPreferredSize() {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverflow(Dimension prefSize) {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="This">this</FONT>.prefSize = prefSize;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="Public">public</FONT> Dimension getMaximumSize() {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>}
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AILabel.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AILabel.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AILabel.java.html	(revision 14989)
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.AILabel (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AILabel.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.Icon;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * A JLabel with altered prefered size to facilitate fixing the width
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * but still using a GridBagLayout
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @author Paul Hinds
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @version $Id: AILabel.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AILabel <FONT CLASS="Extends">extends</FONT> JLabel {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> AILabel() {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> AILabel(String text) {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="Super">super</FONT>(text);
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> AILabel(String text, <FONT CLASS="Int">int</FONT> horizontalAlignment) {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="Super">super</FONT>(text, horizontalAlignment);
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> AILabel(Icon image) {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Super">super</FONT>(image);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> AILabel(Icon image, <FONT CLASS="Int">int</FONT> horizontalAlignment) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="Super">super</FONT>(image, horizontalAlignment);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> AILabel(String text, Icon icon, <FONT CLASS="Int">int</FONT> horizontalAlignment) {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="Super">super</FONT>(text, icon, horizontalAlignment);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Private">private</FONT> Dimension prefSize= <FONT CLASS="New">new</FONT> Dimension(SizeConstants.LABEL_WIDTH,
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            SizeConstants.FIELD_HEIGHT);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> Dimension getMinimumSize() {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> Dimension getPreferredSize() {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverflow(Dimension prefSize) {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="This">this</FONT>.prefSize = prefSize;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> Dimension getMaximumSize() {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>}
+<FONT CLASS="LN">66</FONT><A NAME="66"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIPasswordField.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIPasswordField.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIPasswordField.java.html	(revision 14989)
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.AIPasswordField (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AIPasswordField.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A>
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A>
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A><FONT CLASS="Import">import</FONT> javax.swing.JPasswordField;
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A><FONT CLASS="Import">import</FONT> javax.swing.text.Document;
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A>
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A>
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * @author Paul Hinds
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * @version $Id: AIPasswordField.java,v 1.3 2006/12/21 00:02:59 teknopaul Exp $
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> */</FONT>
+<FONT CLASS="LN">13</FONT><A NAME="13"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AIPasswordField <FONT CLASS="Extends">extends</FONT> JPasswordField {
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>    <FONT CLASS="Public">public</FONT> AIPasswordField() {
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>    }
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>    <FONT CLASS="Public">public</FONT> AIPasswordField(<FONT CLASS="Int">int</FONT> columns) {
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>        <FONT CLASS="Super">super</FONT>(columns);
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>    }
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    <FONT CLASS="Public">public</FONT> AIPasswordField(String text) {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>        <FONT CLASS="Super">super</FONT>(text);
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    }
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Public">public</FONT> AIPasswordField(String text, <FONT CLASS="Int">int</FONT> columns) {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>        <FONT CLASS="Super">super</FONT>(text, columns);
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    }
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> AIPasswordField(Document doc, String txt, <FONT CLASS="Int">int</FONT> columns) {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <FONT CLASS="Super">super</FONT>(doc, txt, columns);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> Dimension prefSize = <FONT CLASS="New">new</FONT> Dimension(SizeConstants.FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> Dimension getMinimumSize() {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> Dimension getPreferredSize() {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverflow(Dimension prefSize) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="This">this</FONT>.prefSize = prefSize;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> Dimension getMaximumSize() {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>}
+<FONT CLASS="LN">53</FONT><A NAME="53"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIRadioButton.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIRadioButton.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIRadioButton.java.html	(revision 14989)
@@ -0,0 +1,102 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.AIRadioButton (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AIRadioButton.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.Action;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.Icon;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.JRadioButton;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * A JRadioButton with altered prefered size to facilitate fixing the width
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * but still using a GridBagLayout
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author Paul Hinds
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id: AIRadioButton.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AIRadioButton <FONT CLASS="Extends">extends</FONT> JRadioButton {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> AIRadioButton() {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> AIRadioButton(String text) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Super">super</FONT>(text);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> AIRadioButton(String text, <FONT CLASS="Boolean">boolean</FONT> selected) {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Super">super</FONT>(text, selected);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> AIRadioButton(Action a) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Super">super</FONT>(a);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> AIRadioButton(Icon icon) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Super">super</FONT>(icon);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> AIRadioButton(Icon icon, <FONT CLASS="Boolean">boolean</FONT> selected) {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="Super">super</FONT>(icon, selected);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Public">public</FONT> AIRadioButton(String text, Icon icon) {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="Super">super</FONT>(text, icon);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> AIRadioButton(String text, Icon icon, <FONT CLASS="Boolean">boolean</FONT> selected) {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="Super">super</FONT>(text, icon, selected);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> Dimension prefSize = <FONT CLASS="New">new</FONT> Dimension(SizeConstants.FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> Dimension getMinimumSize() {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Public">public</FONT> Dimension getPreferredSize() {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverflow(Dimension prefSize) {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="This">this</FONT>.prefSize = prefSize;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="Public">public</FONT> Dimension getMaximumSize() {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>}
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIShortTextField.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIShortTextField.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AIShortTextField.java.html	(revision 14989)
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.AIShortTextField (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AIShortTextField.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.JTextField;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.text.Document;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * A JTextField with altered prefered size to facilitate fixing the width
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * but still using a GridBagLayout. This text field is for use inconjunction
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * with a button for example file chooser.
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author Paul Hinds
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id: AIShortTextField.java,v 1.2 2006/12/09 15:26:10 teknopaul Exp $
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AIShortTextField <FONT CLASS="Extends">extends</FONT> JTextField {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> AIShortTextField() {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> AIShortTextField(<FONT CLASS="Int">int</FONT> columns) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Super">super</FONT>(columns);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> AIShortTextField(String text) {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Super">super</FONT>(text);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> AIShortTextField(String text, <FONT CLASS="Int">int</FONT> columns) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Super">super</FONT>(text, columns);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> AIShortTextField(Document doc, String text, <FONT CLASS="Int">int</FONT> columns) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Super">super</FONT>(doc, text, columns);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Private">private</FONT> Dimension prefSize = <FONT CLASS="New">new</FONT> Dimension(SizeConstants.SHORT_FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> Dimension getMinimumSize() {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> Dimension getPreferredSize() {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverflow(Dimension prefSize) {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="This">this</FONT>.prefSize = prefSize;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Public">public</FONT> Dimension getMaximumSize() {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>}
+<FONT CLASS="LN">72</FONT><A NAME="72"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AITextfield.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AITextfield.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AITextfield.java.html	(revision 14989)
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.AITextfield (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AITextfield.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.JTextField;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.text.Document;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * A JTextField with altered prefered size to facilitate fixing the width
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * but still using a GridBagLayout
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @author Paul Hinds
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @version $Id: AITextfield.java,v 1.2 2006/12/09 15:26:09 teknopaul Exp $
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AITextfield <FONT CLASS="Extends">extends</FONT> JTextField {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> AITextfield() {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> AITextfield(<FONT CLASS="Int">int</FONT> columns) {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="Super">super</FONT>(columns);
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> AITextfield(String text) {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="Super">super</FONT>(text);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> AITextfield(String text, <FONT CLASS="Int">int</FONT> columns) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="Super">super</FONT>(text, columns);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> AITextfield(Document doc, String text, <FONT CLASS="Int">int</FONT> columns) {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="Super">super</FONT>(doc, text, columns);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Private">private</FONT> Dimension prefSize = <FONT CLASS="New">new</FONT> Dimension(SizeConstants.FIELD_WIDTH, SizeConstants.FIELD_HEIGHT);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Public">public</FONT> Dimension getMinimumSize() {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> Dimension getPreferredSize() {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverflow(Dimension prefSize) {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="This">this</FONT>.prefSize = prefSize;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Public">public</FONT> Dimension getMaximumSize() {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="Return">return</FONT> prefSize;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>}</pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AppRootInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AppRootInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/AppRootInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.AppRootInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AppRootInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AppRootInputRenderer
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/DirectoryInputRenderer.java.html">DirectoryInputRenderer</A> {
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>}
+<FONT CLASS="LN">21</FONT><A NAME="21"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/CheckboxInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/CheckboxInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/CheckboxInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,110 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.CheckboxInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CheckboxInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionListener;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CheckboxInput.java.html">org.tp23.antinstaller.input.CheckboxInput</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CheckboxInputRenderer
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CheckboxInput.java.html">CheckboxInput</A> inputField;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Protected">protected</FONT> JLabel fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AICheckBox.java.html">AICheckBox</A> checkBox = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AICheckBox.java.html">AICheckBox</A>();
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> CheckboxInputRenderer() {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent){
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            jbInit();
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            e.printStackTrace();
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> inputField) {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="This">this</FONT>.inputField = (<A HREF="../../../../../org/tp23/antinstaller/input/CheckboxInput.java.html">CheckboxInput</A>)inputField;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="Boolean">boolean</FONT> selected = checkBox.isSelected();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="If">if</FONT>(selected)inputField.setValue(<FONT CLASS="StringLiteral">"true"</FONT>);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Else">else</FONT> inputField.setValue(<FONT CLASS="StringLiteral">"false"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue(){
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="If">if</FONT>(!inputField.isEditted()){
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            String newDefault = inputField.getDefaultValue();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            checkBox.setSelected(InputField.isTrue(newDefault));
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        fieldLabel.setText(inputField.getDisplayText());
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        checkBox.setSelected(OutputField.isTrue(inputField.getDefaultValue()));
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        checkBox.setEnabled(!OutputField.isTrue(inputField.getForce()));
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        checkBox.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>                updateInputField();
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                inputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        });
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content, <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row, <FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        content.add(fieldLabel, cf.getCell(row, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        content.add(checkBox, cf.getCell(row, <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            checkBox.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>     * renderError
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>     */</FONT>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>}
+<FONT CLASS="LN">91</FONT><A NAME="91"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ClasspathHTMLEditorKit.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ClasspathHTMLEditorKit.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ClasspathHTMLEditorKit.java.html	(revision 14989)
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.ClasspathHTMLEditorKit (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ClasspathHTMLEditorKit.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.net.URL;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.text.Element;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.text.View;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.text.ViewFactory;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.text.html.HTML;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.text.html.HTMLEditorKit;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.text.html.ImageView;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * HTMLEditor kit that replaces the source of images in the document
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * with resources loaded from the classpath.
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @author teknopaul
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ClasspathHTMLEditorKit <FONT CLASS="Extends">extends</FONT> HTMLEditorKit {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> ViewFactory getViewFactory(){
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> HTMLEditorKit.HTMLFactory(){
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>            
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>            <FONT CLASS="Public">public</FONT> View create(Element elem){
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>                <FONT CLASS="If">if</FONT>(! elem.getName().equals(<FONT CLASS="StringLiteral">"img"</FONT>)){
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="Super">super</FONT>.create(elem);
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>                }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> ImageView(elem){
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>                    <FONT CLASS="Public">public</FONT> URL getImageURL() {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>                        String src = (String)getElement().getAttributes().
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>                            getAttribute(HTML.Attribute.SRC);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>                        <FONT CLASS="Return">return</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/TextPageRenderer.java.html">TextPageRenderer</A>.<FONT CLASS="Class">class</FONT>.getResource(src);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>                    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>                };
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        };
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>}
+<FONT CLASS="LN">55</FONT><A NAME="55"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java.html	(revision 14989)
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.CommentOutputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CommentOutputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Font;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.text.JTextComponent;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">org.tp23.antinstaller.input.CommentOutput</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CommentOutputRenderer
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A> fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="SingleLineComment">// hack callback, should move this to superclass
+<FONT CLASS="LN">34</FONT><A NAME="34"></A></FONT>    <FONT CLASS="Protected">protected</FONT> JTextComponent explanatoryTextField;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> Font boldCommentFont;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> Font titleCommentFont;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Static">static</FONT>{
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        boldCommentFont = <FONT CLASS="New">new</FONT> JLabel().getFont();<FONT CLASS="SingleLineComment">// reusing the variable
+<FONT CLASS="LN">40</FONT><A NAME="40"></A></FONT>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            boldCommentFont = <FONT CLASS="New">new</FONT> Font(boldCommentFont.getFamily(), Font.BOLD, boldCommentFont.getSize());
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>            titleCommentFont = <FONT CLASS="New">new</FONT> Font(boldCommentFont.getFamily(), Font.BOLD, <FONT CLASS="IntegerLiteral">16</FONT>);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            <FONT CLASS="SingleLineComment">// lets not fail due to font errors
+<FONT CLASS="LN">46</FONT><A NAME="46"></A></FONT>        }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> CommentOutputRenderer() {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent){
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            jbInit();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            e.printStackTrace();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> outputField) {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="This">this</FONT>.outputField = (<A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">CommentOutput</A>)outputField;<FONT CLASS="SingleLineComment">// trap ClassCast bugs early
+<FONT CLASS="LN">63</FONT><A NAME="63"></A></FONT>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A><FONT CLASS="SingleLineComment">//   hack callback, should move this to superclass
+<FONT CLASS="LN">68</FONT><A NAME="68"></A></FONT>    <FONT CLASS="Public">public</FONT> JTextComponent getExplanatoryTextField() {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="Return">return</FONT> explanatoryTextField;
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A><FONT CLASS="SingleLineComment">//  hack callback, should move this to superclass
+<FONT CLASS="LN">72</FONT><A NAME="72"></A></FONT>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setExplanatoryTextField(JTextComponent explanatoryTextField) {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="This">this</FONT>.explanatoryTextField = explanatoryTextField;
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>     * Since comments may now include expanded properties this should be called when the 
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     * field is rendered.  For no ONLY comment fields have property values expanded
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     */</FONT>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue(){
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        fieldLabel.setText(outputField.getDisplayText());
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        <FONT CLASS="If">if</FONT>(explanatoryTextField != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            explanatoryTextField.setText(outputField.getExplanatoryText());
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="SingleLineComment">// FindBugs - cast is performed here to avoid overriding protected superclass field 
+<FONT CLASS="LN">88</FONT><A NAME="88"></A></FONT>        <A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">CommentOutput</A> cOutputField = (<A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">CommentOutput</A>)outputField;
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        fieldLabel.setText(cOutputField.getDisplayText());
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        <FONT CLASS="If">if</FONT>( OutputField.isTrue(cOutputField.getBold()) ){
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            fieldLabel.setFont(boldCommentFont);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="If">if</FONT>( OutputField.isTrue(cOutputField.getTitle()) ){
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            fieldLabel.setFont(titleCommentFont);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content, <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row, <FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        content.add(fieldLabel, cf.getSpan(row));
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            fieldLabel.setOverflow(SizeConstants.OVERFLOW_TOTAL_SIZE);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            fieldLabel.setOverflow(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.FIELD_WIDTH + SizeConstants.LABEL_WIDTH, SizeConstants.FIELD_HEIGHT));
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>     * renderError
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>     */</FONT>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>    }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>}
+<FONT CLASS="LN">16</FONT><A NAME="116"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ConditionalFieldRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ConditionalFieldRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ConditionalFieldRenderer.java.html	(revision 14989)
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.ConditionalFieldRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ConditionalFieldRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ResourceBundleHelper.java.html">org.tp23.antinstaller.ResourceBundleHelper</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">org.tp23.antinstaller.input.ConditionalField</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/RendererFactory.java.html">org.tp23.antinstaller.renderer.RendererFactory</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">org.tp23.antinstaller.runtime.logic.Expression</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * Conditionally render a collection of fields.
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * For now, will ONLY handle &lt;code&gt;&amp;lt;hiddeb&amp;gt;&lt;/code&gt; fields
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> *
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @author mwilson
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @version $Id
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @since 0.7.4 patch 7
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ConditionalFieldRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/ResourceBundleHelper.java.html">ResourceBundleHelper</A> resHelper = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/ResourceBundleHelper.java.html">ResourceBundleHelper</A>( <FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT> );
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A> condField;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> ArrayList renderers = <FONT CLASS="New">new</FONT> ArrayList( );
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> ConditionalFieldRenderer() {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent( JPanel parent ) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        condField = (<A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A>) outputField;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>[] fields = condField.getFields();
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; fields.length; i++) {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>                <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> renderer = RendererFactory.getSwingRenderer(fields[i]);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>                renderer.setOutputField(fields[i]);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>                renderer.setInstallerContext(ctx);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>                renderers.add( renderer );
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            <FONT CLASS="Catch">catch</FONT>( ClassNotFoundException clsNotFndExc ) {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField() {
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="If">if</FONT>( expressionIsTrue() ) {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            <FONT CLASS="Int">int</FONT> listSize  = renderers.size();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            <FONT CLASS="For">for</FONT>( <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; listSize; i++ ) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>                <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> renderer = (<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A>) renderers.get( i );
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>                renderer.updateInputField();
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue() {
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        <FONT CLASS="If">if</FONT>( expressionIsTrue() ) {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            <FONT CLASS="Int">int</FONT> listSize  = renderers.size();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="For">for</FONT>( <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; listSize; i++ ) {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> renderer = (<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A>) renderers.get( i );
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>                renderer.updateDefaultValue();
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="Int">int</FONT> listSize  = renderers.size();
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        <FONT CLASS="For">for</FONT>( <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; listSize; i++ ) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> renderer = (<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A>) renderers.get( i );
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            renderer.renderError();
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf( JPanel content, <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf, <FONT CLASS="Int">int</FONT> row, <FONT CLASS="Boolean">boolean</FONT> overflow ) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="Return">return</FONT> row;
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> expressionIsTrue() {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expr = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            expr = condField.getExpression();
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <FONT CLASS="Catch">catch</FONT>( <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> configExc ) {
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            ctx.log( resHelper.getMessage( <FONT CLASS="StringLiteral">"invalid.conditional.expression"</FONT>, configExc ) );
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>         <FONT CLASS="Return">return</FONT> expr.evaluate();
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    }
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>}
+<FONT CLASS="LN">12</FONT><A NAME="112"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ConfirmPasswordTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ConfirmPasswordTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ConfirmPasswordTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.ConfirmPasswordTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ConfirmPasswordTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ConfirmPasswordTextInputRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/PasswordTextInputRenderer.java.html">PasswordTextInputRenderer</A>{
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>    
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Protected">protected</FONT> String getErrorMessage(){
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>        <FONT CLASS="Return">return</FONT> res.getString(<FONT CLASS="StringLiteral">"passwordsDoNotMatch"</FONT>);
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    }
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>}
+<FONT CLASS="LN">28</FONT><A NAME="28"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/DateInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/DateInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/DateInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.DateInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">DateInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Color;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.FocusAdapter;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.event.FocusEvent;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.event.KeyAdapter;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.awt.event.KeyEvent;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">org.tp23.antinstaller.input.DateInput</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> DateInputRenderer
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">DateInput</A> inputField;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A> fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AITextfield.java.html">AITextfield</A> jTextField = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AITextfield.java.html">AITextfield</A>();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Protected">protected</FONT> Color origFore;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> DateInputRenderer() {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        origFore = jTextField.getForeground();
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent){
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            jbInit();
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            e.printStackTrace();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> inputField) {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="This">this</FONT>.inputField = (<A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">DateInput</A>)inputField;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="This">this</FONT>.inputField.setValue(<FONT CLASS="This">this</FONT>.inputField.getDefaultValue());
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        inputField.setValue(jTextField.getText());
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue(){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="If">if</FONT>(!inputField.isEditted())jTextField.setText(inputField.getDefaultValue());
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        fieldLabel.setText(inputField.getDisplayText());
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        jTextField.setText(inputField.getDefaultValue());
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        jTextField.addKeyListener(<FONT CLASS="New">new</FONT> KeyAdapter() {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> keyTyped(KeyEvent e) {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                <FONT CLASS="If">if</FONT>(e.getKeyChar() != <FONT CLASS="CharacerLiteral">'\t'</FONT>){
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>                    inputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        });
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        jTextField.addFocusListener(<FONT CLASS="New">new</FONT> FocusAdapter() {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> focusLost(FocusEvent fe){
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>                jTextField.setForeground(origFore);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        });
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content, <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row,<FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        content.add(fieldLabel, cf.getCell(row, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        content.add(jTextField, cf.getCell(row, <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            jTextField.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>     * renderError
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>     */</FONT>
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr = ctx.getMessageRenderer();
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        mr.printMessage(res.getString(<FONT CLASS="StringLiteral">"notCorrectFormat"</FONT>) + <FONT CLASS="StringLiteral">"\n\n "</FONT> + inputField.getDateFormat());
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <FONT CLASS="SingleLineComment">//fixed BUG1295944 mr.printMessage("The field is not of the correct format\n\n "+inputField.getDateFormat());
+<FONT CLASS="LN">00</FONT><A NAME="100"></A></FONT>        <FONT CLASS="This">this</FONT>.jTextField.requestFocus();
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        <FONT CLASS="This">this</FONT>.jTextField.setForeground(Color.red);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>}
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/DirectoryInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/DirectoryInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/DirectoryInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.DirectoryInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">DirectoryInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionListener;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.JFileChooser;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DirectoryInput.java.html">org.tp23.antinstaller.input.DirectoryInput</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/widget/DefaultingDirectoryChooser.java.html">org.tp23.gui.widget.DefaultingDirectoryChooser</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> DirectoryInputRenderer
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String EMPTY_STRING = <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DirectoryInput.java.html">DirectoryInput</A> inputField;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> createMode;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/gui/widget/DefaultingDirectoryChooser.java.html">DefaultingDirectoryChooser</A> chooser = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A> fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIShortTextField.java.html">AIShortTextField</A> jTextField = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIShortTextField.java.html">AIShortTextField</A>();
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIButton.java.html">AIButton</A> browseButton = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIButton.java.html">AIButton</A>();
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Protected">protected</FONT> JPanel browsePanel = <FONT CLASS="New">new</FONT> JPanel();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Private">private</FONT> JPanel parent;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> DirectoryInputRenderer() {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent){
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="This">this</FONT>.parent = parent;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            jbInit();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            e.printStackTrace();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> inputField) {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="This">this</FONT>.inputField = (<A HREF="../../../../../org/tp23/antinstaller/input/DirectoryInput.java.html">DirectoryInput</A>)inputField;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="This">this</FONT>.inputField.setValue(<FONT CLASS="This">this</FONT>.inputField.getDefaultValue(<FONT CLASS="True">true</FONT>));
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="This">this</FONT>.createMode = OutputField.isTrue(<FONT CLASS="This">this</FONT>.inputField.getCreate());
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="If">if</FONT>( !inputField.getDefaultValue(<FONT CLASS="True">true</FONT>).equals(jTextField.getText()) ){
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            inputField.setEditted(<FONT CLASS="True">true</FONT>);            
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        inputField.setValue(jTextField.getText());  
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue(){
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        <FONT CLASS="If">if</FONT>(!inputField.isEditted())jTextField.setText(inputField.getDefaultValue(<FONT CLASS="True">true</FONT>));
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        BorderLayout bl = <FONT CLASS="New">new</FONT> BorderLayout();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="SingleLineComment">//bl.setHgap(3);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A></FONT>        browsePanel.setLayout(bl);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        fieldLabel.setText(inputField.getDisplayText());
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        jTextField.setText(inputField.getDefaultValue(<FONT CLASS="True">true</FONT>));
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        browsePanel.add(jTextField, BorderLayout.CENTER);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        browsePanel.add(browseButton, BorderLayout.EAST);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        browseButton.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>                File selectedFile = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                <FONT CLASS="If">if</FONT>(chooser==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                    chooser = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/gui/widget/DefaultingDirectoryChooser.java.html">DefaultingDirectoryChooser</A>(createMode);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>                    chooser.setFileHidingEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                <FONT CLASS="SingleLineComment">//PR 1468823 - if input is cleared, dialogue won't be displayed
+<FONT CLASS="LN">94</FONT><A NAME="94"></A></FONT>                String dirPath = jTextField.getText();
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>                <FONT CLASS="If">if</FONT>( dirPath == <FONT CLASS="Null">null</FONT> ) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                    dirPath = EMPTY_STRING;
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>                dirPath = dirPath.trim();
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>                <FONT CLASS="If">if</FONT>( dirPath.length() == <FONT CLASS="IntegerLiteral">0</FONT> ) {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>                    dirPath = inputField.getDefaultValue(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                    jTextField.setText(dirPath);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>                chooser.setDefaultDirectory(<FONT CLASS="New">new</FONT> File(dirPath));
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>                <FONT CLASS="Int">int</FONT> returnVal = chooser.showDialog(parent, e.getActionCommand());
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>                <FONT CLASS="If">if</FONT> (returnVal == JFileChooser.APPROVE_OPTION) {
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>                    selectedFile = chooser.getSelectedFile();
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>                }
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>                <FONT CLASS="If">if</FONT> (selectedFile != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                    jTextField.setText(selectedFile.getAbsolutePath());
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>                    inputField.setValue(selectedFile.getAbsolutePath());
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>                    inputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>                }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        });
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        browseButton.setText(res.getString(<FONT CLASS="StringLiteral">"selectFolder"</FONT>));
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        browseButton.setPreferredSize(<FONT CLASS="New">new</FONT> Dimension(<FONT CLASS="IntegerLiteral">150</FONT>, SizeConstants.FIELD_HEIGHT));
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        jTextField.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                updateInputField();
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>            }
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        });
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>    }
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content,<A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row,<FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>        content.add(fieldLabel,cf.getCell(row,<FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        content.add(browsePanel,cf.getCell(row,<FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>            jTextField.setOverflow(SizeConstants.OVERFLOW_SHORT_FIELD_SIZE);
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        }
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>     * renderError
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>     */</FONT>
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>        jTextField.requestFocus();
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>}
+<FONT CLASS="LN">44</FONT><A NAME="144"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ExtValidatedTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ExtValidatedTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ExtValidatedTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.ExtValidatedTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ExtValidatedTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Color;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ExtValidatedTextInput.java.html">org.tp23.antinstaller.input.ExtValidatedTextInput</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/Validator.java.html">org.tp23.antinstaller.input.Validator</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ExtValidatedTextInputRenderer
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java.html">ValidatedTextInputRenderer</A> {
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>     * renderError
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>     */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr = ctx.getMessageRenderer();
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/ExtValidatedTextInput.java.html">ExtValidatedTextInput</A> extVal = (<A HREF="../../../../../org/tp23/antinstaller/input/ExtValidatedTextInput.java.html">ExtValidatedTextInput</A>)inputField;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/Validator.java.html">Validator</A> validator = extVal.getValidator();
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        Throwable t = extVal.getThrowable();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        mr.printMessage(validator.getErrorMessage(t, <FONT CLASS="Null">null</FONT>));
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="This">this</FONT>.jTextField.requestFocus();
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="This">this</FONT>.jTextField.setForeground(Color.red);
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>}
+<FONT CLASS="LN">41</FONT><A NAME="41"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/FileInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/FileInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/FileInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.FileInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">FileInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Color;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionListener;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.awt.event.FocusAdapter;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.awt.event.FocusEvent;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> javax.swing.JFileChooser;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/FileInput.java.html">org.tp23.antinstaller.input.FileInput</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> FileInputRenderer
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/FileInput.java.html">FileInput</A> inputField;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A> fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIShortTextField.java.html">AIShortTextField</A> jTextField = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIShortTextField.java.html">AIShortTextField</A>();
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIButton.java.html">AIButton</A> browseButton = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIButton.java.html">AIButton</A>();
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Protected">protected</FONT> JPanel browsePanel = <FONT CLASS="New">new</FONT> JPanel();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Private">private</FONT> Color origFore = jTextField.getForeground();
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Private">private</FONT> JPanel parent;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> FileInputRenderer() {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent){
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="This">this</FONT>.parent=parent;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            jbInit();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            e.printStackTrace();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> inputField) {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="This">this</FONT>.inputField = (<A HREF="../../../../../org/tp23/antinstaller/input/FileInput.java.html">FileInput</A>)inputField;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="This">this</FONT>.inputField.setValue(<FONT CLASS="This">this</FONT>.inputField.getDefaultValue(<FONT CLASS="True">true</FONT>));
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="If">if</FONT>( !inputField.getDefaultValue(<FONT CLASS="True">true</FONT>).equals(jTextField.getText()) ){
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            inputField.setEditted(<FONT CLASS="True">true</FONT>);            
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        inputField.setValue(jTextField.getText());
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue(){
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="If">if</FONT>(!inputField.isEditted())jTextField.setText(inputField.getDefaultValue(<FONT CLASS="True">true</FONT>));
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        BorderLayout bl = <FONT CLASS="New">new</FONT> BorderLayout();
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="SingleLineComment">//bl.setHgap(3);
+<FONT CLASS="LN">79</FONT><A NAME="79"></A></FONT>        browsePanel.setLayout(bl);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        fieldLabel.setText(inputField.getDisplayText());
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        jTextField.setText(inputField.getDefaultValue(<FONT CLASS="True">true</FONT>));
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        browsePanel.add(jTextField, BorderLayout.CENTER);
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        browsePanel.add(browseButton, BorderLayout.EAST);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        browseButton.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                File selectedFile = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                JFileChooser chooser = <FONT CLASS="New">new</FONT> JFileChooser();
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                chooser.setFileHidingEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>                chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                <FONT CLASS="If">if</FONT> (jTextField.getText() != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                    chooser.setCurrentDirectory(<FONT CLASS="New">new</FONT> File(jTextField.getText()).getParentFile());
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>                <FONT CLASS="Int">int</FONT> returnVal = chooser.showDialog(parent, e.getActionCommand());
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>                <FONT CLASS="If">if</FONT> (returnVal == JFileChooser.APPROVE_OPTION) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                    selectedFile = chooser.getSelectedFile();
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>                <FONT CLASS="If">if</FONT> (selectedFile != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>                    jTextField.setText(selectedFile.getAbsolutePath());
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>                    inputField.setValue(selectedFile.getAbsolutePath());
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>                    inputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>            }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        });
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        browseButton.setText(res.getString(<FONT CLASS="StringLiteral">"selectFile"</FONT>));
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        browseButton.setPreferredSize(<FONT CLASS="New">new</FONT> Dimension(<FONT CLASS="IntegerLiteral">150</FONT>, SizeConstants.FIELD_HEIGHT));
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        jTextField.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>                updateInputField();
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        });
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        jTextField.addFocusListener(<FONT CLASS="New">new</FONT> FocusAdapter() {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> focusLost(FocusEvent fe){
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>                jTextField.setForeground(origFore);
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            }
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        });
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>    }
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content,<A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row,<FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        content.add(fieldLabel,cf.getCell(row,<FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        content.add(browsePanel,cf.getCell(row,<FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>            jTextField.setOverflow(SizeConstants.OVERFLOW_SHORT_FIELD_SIZE);
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        }
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>    }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>     * renderError
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>     */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr = ctx.getMessageRenderer();
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        mr.printMessage(res.getString(<FONT CLASS="StringLiteral">"fileNotExist"</FONT>));
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        <FONT CLASS="This">this</FONT>.jTextField.requestFocus();
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>        <FONT CLASS="This">this</FONT>.jTextField.setForeground(Color.red);
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>}
+<FONT CLASS="LN">40</FONT><A NAME="140"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/HiddenPropertyInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/HiddenPropertyInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/HiddenPropertyInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.HiddenPropertyInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">HiddenPropertyInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/HiddenPropertyInput.java.html">org.tp23.antinstaller.input.HiddenPropertyInput</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * Swing UI hidden property renderer - displays nothing
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> *
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author mwilson
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @version $Id
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @since 0.7.4 patch 6
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> HiddenPropertyInputRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>{
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <A HREF="../../../../../org/tp23/antinstaller/input/HiddenPropertyInput.java.html">HiddenPropertyInput</A> inputField;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField( <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> ioField )
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        inputField = (<A HREF="../../../../../org/tp23/antinstaller/input/HiddenPropertyInput.java.html">HiddenPropertyInput</A>) ioField;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        inputField.setInputResult( inputField.getDefaultValue() );
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent( JPanel parent )
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField()
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue()
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="If">if</FONT>( !inputField.isEditted() )
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            inputField.setInputResult( inputField.getDefaultValue() );
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError()
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf( JPanel content, <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf, <FONT CLASS="Int">int</FONT> row, <FONT CLASS="Boolean">boolean</FONT> overflow )
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="Return">return</FONT> row;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>}
+<FONT CLASS="LN">67</FONT><A NAME="67"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/LargeSelectInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/LargeSelectInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/LargeSelectInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.LargeSelectInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LargeSelectInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.event.ItemEvent;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.ItemListener;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.JComboBox;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">org.tp23.antinstaller.input.LargeSelectInput</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LargeSelectInputRenderer
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput</A> inputField;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Protected">protected</FONT> JLabel fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Protected">protected</FONT> JComboBox optionCombo = <FONT CLASS="New">new</FONT> JComboBox();
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="SingleLineComment">//private int numOfEntries = 2;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A></FONT>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> LargeSelectInputRenderer() {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent){
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            jbInit();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            e.printStackTrace();
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> inputField) {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="This">this</FONT>.inputField=(<A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput</A>)inputField;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="SingleLineComment">//this.numOfEntries=this.inputField.getOptions().length;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A></FONT>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="Int">int</FONT> selectedIdx = optionCombo.getSelectedIndex();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="If">if</FONT> (selectedIdx != -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            inputField.setValue(inputField.getOptions()[selectedIdx].value);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }<FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            inputField.setValue(inputField.getDefaultValue());
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue(){
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="If">if</FONT>(!inputField.isEditted()){
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            String newDefault = inputField.getDefaultValue();
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            <FONT CLASS="For">for</FONT>(<FONT CLASS="Int">int</FONT> i=<FONT CLASS="IntegerLiteral">0</FONT>;i&lt;optionCombo.getItemCount();i++){
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                <FONT CLASS="If">if</FONT>(newDefault.equals(inputField.getOptions()[i].value)){
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                    optionCombo.setSelectedIndex(i);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>                }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        fieldLabel.setText(inputField.getDisplayText());
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput.Option</A>[] options = inputField.getOptions();
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; options.length; i++) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            optionCombo.addItem(options[i].getText());
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            <FONT CLASS="If">if</FONT>(options[i].value.equals(inputField.getDefaultValue())){
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                optionCombo.setSelectedIndex(i);
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        optionCombo.addItemListener(<FONT CLASS="New">new</FONT> ItemListener(){
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> itemStateChanged(ItemEvent e) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                inputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        });
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content,<A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row,<FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        content.add(fieldLabel,cf.getCell(row,<FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        content.add(optionCombo,cf.getCell(row,<FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            optionCombo.setPreferredSize(SizeConstants.OVERFLOW_FIELD_SIZE);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>     * renderError
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>     */</FONT>
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        ctx.getMessageRenderer().printMessage(res.getString(<FONT CLASS="StringLiteral">"notValidSelection"</FONT>));
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        optionCombo.requestFocus();
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>}
+<FONT CLASS="LN">17</FONT><A NAME="117"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/LicensePageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/LicensePageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/LicensePageRenderer.java.html	(revision 14989)
@@ -0,0 +1,123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.LicensePageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LicensePageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.BorderFactory;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.JScrollPane;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.JTextArea;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">org.tp23.antinstaller.page.LicensePage</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> *
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * &lt;p&gt;Renders the license page &lt;/p&gt;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>* @todo this could be an input type and simple renderer
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * @author Paul Hinds
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * @version $Id: LicensePageRenderer.java,v 1.5 2007/01/12 10:49:09 anothermwilson Exp $
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> */</FONT>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LicensePageRenderer
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Private">private</FONT> JTextArea licenseTextArea = <FONT CLASS="New">new</FONT> JTextArea();
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Private">private</FONT> JScrollPane scrollPane = <FONT CLASS="New">new</FONT> JScrollPane();
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> LicensePageRenderer(){
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateFields()<FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>; <FONT CLASS="SingleLineComment">// @todo option to force accepting or tick box to accept
+<FONT CLASS="LN">55</FONT><A NAME="55"></A></FONT>    }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> instanceInit() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        String resource = ((<A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">LicensePage</A>)page).getResource();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        InputStream licensein = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(resource);
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="If">if</FONT> (licensein == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"License resource '"</FONT> + resource + <FONT CLASS="StringLiteral">"' is missing from installer"</FONT>);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        BufferedReader reader = <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(licensein));
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        StringBuffer sb = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        String line;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="While">while</FONT>((line = reader.readLine()) != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            sb.append(line);
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            sb.append(<FONT CLASS="CharacerLiteral">'\n'</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        licenseTextArea.setText(sb.toString());
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        licenseTextArea.setTabSize(<FONT CLASS="IntegerLiteral">4</FONT>);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        licenseTextArea.setAutoscrolls(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        licenseTextArea.setCaretPosition(<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        licenseTextArea.setEditable(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        licenseTextArea.setLineWrap(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        licenseTextArea.setWrapStyleWord(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        licenseTextArea.setBorder(BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">2</FONT>, <FONT CLASS="IntegerLiteral">2</FONT>, <FONT CLASS="IntegerLiteral">2</FONT>, <FONT CLASS="IntegerLiteral">2</FONT>));
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        scrollPane.getViewport().add(licenseTextArea);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        scrollPane.setBorder(BorderFactory.createCompoundBorder(
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                        BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>),
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                        BorderFactory.createEtchedBorder()));
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="This">this</FONT>.add(scrollPane, BorderLayout.CENTER);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        getNextButton().setText( res.getString( <FONT CLASS="StringLiteral">"license.next.text"</FONT> ) );
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        getNextButton().setIcon(getImage(<FONT CLASS="StringLiteral">"/resources/icons/ok.png"</FONT>));
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        getCancelButton().setText( res.getString( <FONT CLASS="StringLiteral">"license.cancel.text"</FONT> ) );
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputFields(){
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        ;
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>     * updateDefaultValues
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>     */</FONT>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValues() {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>}
+<FONT CLASS="LN">04</FONT><A NAME="104"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html	(revision 14989)
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.PageCompletionListener (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">PageCompletionListener.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * &lt;p&gt;Called when a page is complete and the user presses next.
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>* At this point the pages fields are validated.  If validation passes
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>* the next page is shown &lt;/p&gt;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @author Paul Hinds
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @version $Id: PageCompletionListener.java,v 1.1.1.1 2005/10/18 18:21:01 teknopaul Exp $
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> PageCompletionListener {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> pageComplete(<A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page);
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> pageBack(<A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>}
+<FONT CLASS="LN">34</FONT><A NAME="34"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/PasswordTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/PasswordTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/PasswordTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.PasswordTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">PasswordTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Color;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.KeyAdapter;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.event.KeyEvent;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> PasswordTextInputRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java.html">ValidatedTextInputRenderer</A>{
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> PasswordTextInputRenderer() {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="This">this</FONT>.jTextField = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIPasswordField.java.html">AIPasswordField</A>();
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        origFore = jTextField.getForeground(); <FONT CLASS="SingleLineComment">// this is lazy there must be a way to shift this line of code to the superclass (is it worth it)
+<FONT CLASS="LN">35</FONT><A NAME="35"></A></FONT>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr = ctx.getMessageRenderer();
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        mr.printMessage( getErrorMessage() );
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="SingleLineComment">// fixed BUG:1295944 mr.printMessage("The password is not of the correct format\n\n e.g. "+inputField.getDefaultValue());
+<FONT CLASS="LN">42</FONT><A NAME="42"></A></FONT>        <FONT CLASS="This">this</FONT>.jTextField.requestFocus();
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="This">this</FONT>.jTextField.setForeground(Color.red);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        jTextField.addKeyListener(<FONT CLASS="New">new</FONT> KeyAdapter() {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> keyTyped(KeyEvent e) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>                <FONT CLASS="If">if</FONT>(e.getKeyChar() != <FONT CLASS="CharacerLiteral">'\t'</FONT>){
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>                    inputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>                }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        });
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content, <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row, <FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        content.add(fieldLabel, cf.getCell(row, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        content.add(jTextField, cf.getCell(row, <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            ((<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIPasswordField.java.html">AIPasswordField</A>)jTextField).setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Protected">protected</FONT> String getErrorMessage(){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="Return">return</FONT> res.getString(<FONT CLASS="StringLiteral">"notCorrectPasswordFormat"</FONT>) + 
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>                <FONT CLASS="StringLiteral">"\n\n e.g. "</FONT> + 
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                inputField.getDefaultValue();
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>}
+<FONT CLASS="LN">67</FONT><A NAME="67"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ProgressPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ProgressPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ProgressPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,216 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.ProgressPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ProgressPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.Insets;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.Rectangle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionListener;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> javax.swing.BorderFactory;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> javax.swing.JScrollPane;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> javax.swing.JTabbedPane;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> javax.swing.JToggleButton;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/ProgressPage.java.html">org.tp23.antinstaller.page.ProgressPage</A>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">org.tp23.antinstaller.renderer.AntOutputRenderer</A>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/widget/SystemOutJTextArea.java.html">org.tp23.gui.widget.SystemOutJTextArea</A>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> *
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * @todo change absolute to Border layout and panels
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> * @author Paul Hinds
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * @version $Id: ProgressPageRenderer.java,v 1.4 2006/12/21 00:03:00 teknopaul Exp $
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> */</FONT>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ProgressPageRenderer
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A> {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> MESSAGE_PANEL_HEIGHT = <FONT CLASS="IntegerLiteral">30</FONT>;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Private">private</FONT> JPanel contentPanel = <FONT CLASS="New">new</FONT> JPanel();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Private">private</FONT> JTabbedPane jTabbedPane = <FONT CLASS="New">new</FONT> JTabbedPane();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Private">private</FONT> JPanel messagesPanel = <FONT CLASS="New">new</FONT> JPanel();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Private">private</FONT> BorderLayout borderLayout1 = <FONT CLASS="New">new</FONT> BorderLayout();
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Private">private</FONT> JToggleButton jToggleButton = <FONT CLASS="New">new</FONT> JToggleButton();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Private">private</FONT> JLabel feedBackLabel = <FONT CLASS="New">new</FONT> JLabel();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/gui/widget/SystemOutJTextArea.java.html">SystemOutJTextArea</A> outPanel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/gui/widget/SystemOutJTextArea.java.html">SystemOutJTextArea</A>();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/gui/widget/SystemOutJTextArea.java.html">SystemOutJTextArea</A> errPanel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/gui/widget/SystemOutJTextArea.java.html">SystemOutJTextArea</A>();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> showTargets = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Private">private</FONT> JScrollPane progressScrollPane = <FONT CLASS="New">new</FONT> JScrollPane();;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/ProgressPanel.java.html">ProgressPanel</A> progressPanel;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> ProgressPageRenderer() {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        errPanel.setAsSystemErr();
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        outPanel.setAsSystemOut();
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>     * getErr
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>     * @return PrintStream
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>     */</FONT>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="Public">public</FONT> PrintStream getErr() {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="Return">return</FONT> errPanel.getOut();
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>     * getOut
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>     * @return PrintStream
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>     */</FONT>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    <FONT CLASS="Public">public</FONT> PrintStream getOut() {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="Return">return</FONT> outPanel.getOut();
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>     * instanceInit
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>     */</FONT>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> instanceInit() {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        showTargets = ((<A HREF="../../../../../org/tp23/antinstaller/page/ProgressPage.java.html">ProgressPage</A>)page).isShowTargets();
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        contentPanel.setLayout(borderLayout1);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="This">this</FONT>.add(contentPanel,BorderLayout.CENTER);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="SingleLineComment">//progressScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A></FONT>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        messagesPanel.setLayout(<FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        Dimension messPanelSize = <FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH,MESSAGE_PANEL_HEIGHT);
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        messagesPanel.setSize(messPanelSize);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        messagesPanel.setPreferredSize(messPanelSize);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        messagesPanel.setMaximumSize(messPanelSize);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        messagesPanel.setMinimumSize(messPanelSize);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <FONT CLASS="SingleLineComment">//FIXME not i18n properly since the sentence is not correct ordering in German
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></FONT>        feedBackLabel.setText(res.getString(<FONT CLASS="StringLiteral">"click"</FONT>)+<FONT CLASS="StringLiteral">" "</FONT>+ctx.getInstaller().getFinishButtonText()+<FONT CLASS="StringLiteral">" "</FONT>+res.getString(<FONT CLASS="StringLiteral">"toContinue"</FONT>));
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        feedBackLabel.setBounds(<FONT CLASS="New">new</FONT> Rectangle(<FONT CLASS="IntegerLiteral">115</FONT>, <FONT CLASS="IntegerLiteral">7</FONT>, <FONT CLASS="IntegerLiteral">272</FONT>, <FONT CLASS="IntegerLiteral">22</FONT>));
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        jToggleButton.setText(res.getString(<FONT CLASS="StringLiteral">"showDetails"</FONT>));
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        jToggleButton.setBounds(<FONT CLASS="New">new</FONT> Rectangle(<FONT CLASS="IntegerLiteral">5</FONT>, <FONT CLASS="IntegerLiteral">7</FONT>, <FONT CLASS="IntegerLiteral">104</FONT>, <FONT CLASS="IntegerLiteral">22</FONT>));
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        jToggleButton.setMargin(<FONT CLASS="New">new</FONT> Insets(<FONT CLASS="IntegerLiteral">0</FONT>,<FONT CLASS="IntegerLiteral">0</FONT>,<FONT CLASS="IntegerLiteral">0</FONT>,<FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        messagesPanel.add(jToggleButton, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        messagesPanel.add(feedBackLabel, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        jToggleButton.addActionListener(<FONT CLASS="New">new</FONT> ActionListener(){
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>                <FONT CLASS="If">if</FONT>(jToggleButton.isSelected()){
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>                    <FONT CLASS="If">if</FONT>(showTargets){
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>                        contentPanel.remove(progressScrollPane);
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>                    }
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>                    contentPanel.add(jTabbedPane, BorderLayout.CENTER);
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>                    contentPanel.doLayout();
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>                    contentPanel.repaint();
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                }
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>                    contentPanel.remove(jTabbedPane);
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>                    <FONT CLASS="If">if</FONT>(showTargets){
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>                        contentPanel.add(progressScrollPane, BorderLayout.CENTER);
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>                        progressScrollPane.revalidate();
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>                    }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>                    contentPanel.doLayout();
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>                    contentPanel.repaint();
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                }
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>            }
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        });
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>        jToggleButton.setIcon(getImage(<FONT CLASS="StringLiteral">"/resources/icons/showdetails.png"</FONT>));
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        contentPanel.add(messagesPanel, BorderLayout.NORTH);
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        <FONT CLASS="If">if</FONT>(showTargets){
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            progressScrollPane.setBorder(BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">10</FONT>,<FONT CLASS="IntegerLiteral">5</FONT>,<FONT CLASS="IntegerLiteral">5</FONT>,<FONT CLASS="IntegerLiteral">5</FONT>));
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>            contentPanel.add(progressScrollPane, BorderLayout.CENTER);
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        }
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>        jTabbedPane.add(res.getString(<FONT CLASS="StringLiteral">"output"</FONT>), outPanel);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>        jTabbedPane.add(res.getString(<FONT CLASS="StringLiteral">"errors"</FONT>), errPanel);
+<FONT CLASS="LN">42</FONT><A NAME="142"></A><FONT CLASS="SingleLineComment">//      if(OutputField.isTrue( ctx.getInstaller().getAntialiased())){
+<FONT CLASS="LN">43</FONT><A NAME="143"></A></FONT><FONT CLASS="SingleLineComment">//          outPanel.setAntialiased(true);
+<FONT CLASS="LN">44</FONT><A NAME="144"></A></FONT><FONT CLASS="SingleLineComment">//          errPanel.setAntialiased(true);
+<FONT CLASS="LN">45</FONT><A NAME="145"></A></FONT><FONT CLASS="SingleLineComment">//      }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A></FONT>
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>        <FONT CLASS="SingleLineComment">//jTabbedPane.setVisible(false);
+<FONT CLASS="LN">48</FONT><A NAME="148"></A></FONT>        jTabbedPane.setBorder(BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">5</FONT>,<FONT CLASS="IntegerLiteral">5</FONT>,<FONT CLASS="IntegerLiteral">5</FONT>,<FONT CLASS="IntegerLiteral">5</FONT>));
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        contentPanel.setMaximumSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, Integer.MAX_VALUE));
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>        contentPanel.setMinimumSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, <FONT CLASS="IntegerLiteral">100</FONT>));
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>        contentPanel.setPreferredSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.PAGE_HEIGHT-<FONT CLASS="IntegerLiteral">100</FONT>));
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        <FONT CLASS="SingleLineComment">//contentPanel.add(jTabbedPane, null);
+<FONT CLASS="LN">53</FONT><A NAME="153"></A></FONT>        <FONT CLASS="SingleLineComment">//jTabbedPane.setBounds(new Rectangle(4, MESSAGE_PANEL_HEIGHT, PAGE_WIDTH-12, 214));
+<FONT CLASS="LN">54</FONT><A NAME="154"></A></FONT>
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>        <FONT CLASS="This">this</FONT>.getNextButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>        <FONT CLASS="This">this</FONT>.getFinishButton().setText(ctx.getInstaller().getFinishButtonText());
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        <FONT CLASS="This">this</FONT>.getFinishButton().setEnabled(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">SwingInstallerContext</A> swingCtx){
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>        <FONT CLASS="Super">super</FONT>.setContext(swingCtx);
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>        <FONT CLASS="If">if</FONT>(showTargets){
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>            progressPanel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/ProgressPanel.java.html">ProgressPanel</A>(swingCtx.getInstallerContext());
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>            progressScrollPane.getViewport().add(progressPanel);
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>            <FONT CLASS="This">this</FONT>.swingCtx.setProgressPanel(progressPanel);
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>        }
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        <FONT CLASS="This">this</FONT>.swingCtx.setFeedBackLabel(feedBackLabel);
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>    }
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>     * updateInputFields
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>     */</FONT>
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputFields() {
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>     * validateFields
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>     *
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>     * @return boolean
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>     */</FONT>
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateFields() {
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>    }
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>     * updateDefaultValues
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>     */</FONT>
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValues() {
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>}
+<FONT CLASS="LN">97</FONT><A NAME="197"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ProgressPanel.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ProgressPanel.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ProgressPanel.java.html	(revision 14989)
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.ProgressPanel (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ProgressPanel.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Color;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.Font;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.Graphics;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.awt.Graphics2D;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.awt.Rectangle;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.awt.RenderingHints;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> javax.swing.Scrollable;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildEvent;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Target;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> * Progress panel prints a graphical view of the progress of the Ant targets
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * being run.  It supports displaying one layer of dependent targets.
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * @author Paul Hinds
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * @version $Id: ProgressPanel.java,v 1.5 2006/12/21 00:02:59 teknopaul Exp $
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> */</FONT>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ProgressPanel <FONT CLASS="Extends">extends</FONT> JPanel <FONT CLASS="Implements">implements</FONT> Scrollable{
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> tHeight = <FONT CLASS="IntegerLiteral">19</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> leftIndent = <FONT CLASS="IntegerLiteral">15</FONT>;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> DONE = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> INPROGRESS = <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> TODO = <FONT CLASS="IntegerLiteral">2</FONT>;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> Color progressColor = <FONT CLASS="New">new</FONT> Color(<FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">125</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> Font mainFont = <FONT CLASS="New">new</FONT> Font(<FONT CLASS="StringLiteral">"Dialog"</FONT>, Font.PLAIN, <FONT CLASS="IntegerLiteral">11</FONT>);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> Font subFont = <FONT CLASS="New">new</FONT> Font(<FONT CLASS="StringLiteral">"Dialog"</FONT>, Font.PLAIN, <FONT CLASS="IntegerLiteral">10</FONT>);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    List targets = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> mainTargetPos = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Private">private</FONT> ProgressModel currentPM = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> ProgressPanel(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="Super">super</FONT>(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> prepareCalledTargets(){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        List targetStrings = ctx.getInstaller().getTargets(ctx);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        Iterator iter = targetStrings.iterator();
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        targets = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="While">while</FONT> (iter.hasNext()) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            String tgt = (String) iter.next();
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            targets.add(<FONT CLASS="New">new</FONT> ProgressModel(tgt));
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="This">this</FONT>.setSize(getSize());<FONT CLASS="SingleLineComment">// panel size changes
+<FONT CLASS="LN">73</FONT><A NAME="73"></A></FONT>        revalidate();
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        repaint();
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     * This method assumes that we are send target started methods in order
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     * but that we do not have the information about "depends" targets and have to
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>     * insert the information as it arrives.  If a TargetStarted event arrives that
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>     * is not the expected target is is assumed to be a depends.
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>     * @param buildEvent
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>     */</FONT>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> targetStarted(BuildEvent buildEvent){
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            Target tgt = buildEvent.getTarget();
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            ProgressModel pm = (ProgressModel)targets.get(mainTargetPos);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            pm.state = INPROGRESS;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            <FONT CLASS="If">if</FONT>(tgt.getName().equals(pm.name)){
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                <FONT CLASS="SingleLineComment">// main target
+<FONT CLASS="LN">90</FONT><A NAME="90"></A></FONT>                currentPM = pm;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                mainTargetPos++;
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                revalidate();
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                repaint();
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                <FONT CLASS="SingleLineComment">//dependency
+<FONT CLASS="LN">97</FONT><A NAME="97"></A></FONT>                ProgressModel dependency = <FONT CLASS="New">new</FONT> ProgressModel(tgt.getName());
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>                dependency.state = INPROGRESS;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>                <FONT CLASS="If">if</FONT>(currentPM != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>                    currentPM.state = DONE;<FONT CLASS="SingleLineComment">// this to catch antcall strangenesses
+<FONT CLASS="LN">01</FONT><A NAME="101"></A></FONT>                }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                currentPM = dependency;
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                pm.subTargets.add(dependency);
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>                <FONT CLASS="This">this</FONT>.setSize(getSize());<FONT CLASS="SingleLineComment">// panel size changes
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></FONT>                revalidate();
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>                repaint();
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>            }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            ctx.log(e);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> targetFinished() {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        <FONT CLASS="SingleLineComment">// BUG 1494105 reports NPE here, looks like no targets specified in his antinstaller-config.xml
+<FONT CLASS="LN">15</FONT><A NAME="115"></A></FONT>        currentPM.state = DONE;
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>    }
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>     * N.B. buildFinished must be fired manually in Ant
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>     */</FONT>
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> buildFinished() {
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        <FONT CLASS="SingleLineComment">// this is done because antcall sometimes results in targetFinished not being called
+<FONT CLASS="LN">23</FONT><A NAME="123"></A></FONT>        setToDone(targets);
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        repaint();
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>    }
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>    
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setToDone(List pModels){
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>        <FONT CLASS="If">if</FONT>(pModels == <FONT CLASS="Null">null</FONT> || pModels.size() == <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        }
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        Iterator iter = pModels.iterator();
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        <FONT CLASS="While">while</FONT> (iter.hasNext()) {
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            ProgressModel pm = (ProgressModel)iter.next();
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            pm.state = DONE;
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>            setToDone(pm.subTargets);
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        }
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>     */</FONT>
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> paintComponent(Graphics g){
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>        <FONT CLASS="Super">super</FONT>.paintComponent(g);
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>        <FONT CLASS="If">if</FONT>(targets == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A><FONT CLASS="SingleLineComment">//      g.setColor(getBackground());
+<FONT CLASS="LN">46</FONT><A NAME="146"></A></FONT><FONT CLASS="SingleLineComment">//      g.fillRect(g.getClipBounds().x,
+<FONT CLASS="LN">47</FONT><A NAME="147"></A></FONT><FONT CLASS="SingleLineComment">//                  g.getClipBounds().y,
+<FONT CLASS="LN">48</FONT><A NAME="148"></A></FONT><FONT CLASS="SingleLineComment">//                  g.getClipBounds().width,
+<FONT CLASS="LN">49</FONT><A NAME="149"></A></FONT><FONT CLASS="SingleLineComment">//                  g.getClipBounds().height);
+<FONT CLASS="LN">50</FONT><A NAME="150"></A></FONT>        Iterator iter = targets.iterator();
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>        <FONT CLASS="Int">int</FONT> offset = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        <FONT CLASS="For">for</FONT>(<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">1</FONT>; iter.hasNext(); i++){
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>            ProgressModel pmodel = (ProgressModel)iter.next();
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>            drawTarget(pmodel, (Graphics2D)g, offset, i &lt; targets.size(), i &gt; <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>            offset += tHeight;
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            offset += pmodel.subTargets.size() * tHeight;
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> Dimension getPreferredSize(){
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>        <FONT CLASS="Return">return</FONT> getSize();
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>     * @see java.awt.Component#getSize()
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>     */</FONT>
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> Dimension getSize() {
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        <FONT CLASS="If">if</FONT>(targets == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, tHeight * <FONT CLASS="IntegerLiteral">5</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>        <FONT CLASS="Int">int</FONT> count = targets.size();
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>        Iterator iter = targets.iterator();
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>        <FONT CLASS="While">while</FONT>(iter.hasNext()){
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>            ProgressModel pmodel = (ProgressModel)iter.next();
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>            count += pmodel.subTargets.size();
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, count * tHeight);
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>    }
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>     *
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>     * @param target the main target to be rendered
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>     * @param g
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>     * @param yOffset the vertical offset where this target should be drawn
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>     * @param hasMore if false this target is the last in the list
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>     * @param hasPrev if false this target is the first in the list
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>     */</FONT>
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> drawTarget(ProgressModel target, Graphics2D g,
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>            <FONT CLASS="Int">int</FONT> yOffset, <FONT CLASS="Boolean">boolean</FONT> hasMore, <FONT CLASS="Boolean">boolean</FONT> hasPrev){
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>        g.setFont(mainFont);
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>        g.setColor(Color.gray);
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>        <FONT CLASS="SingleLineComment">//7 vertical line (up)
+<FONT CLASS="LN">92</FONT><A NAME="192"></A></FONT>        <FONT CLASS="If">if</FONT>(hasPrev){
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>            g.drawLine(leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, yOffset, leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, yOffset + <FONT CLASS="IntegerLiteral">8</FONT>);
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>        <FONT CLASS="SingleLineComment">//7 vertical line (down)
+<FONT CLASS="LN">96</FONT><A NAME="196"></A></FONT>        <FONT CLASS="If">if</FONT>(hasMore || target.subTargets.size() &gt; <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>            g.drawLine(leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, (tHeight/<FONT CLASS="IntegerLiteral">2</FONT>) + yOffset, 
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>                    leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, tHeight + yOffset);
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>        }
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>        <FONT CLASS="SingleLineComment">// sideways line
+<FONT CLASS="LN">01</FONT><A NAME="201"></A></FONT>        <FONT CLASS="Int">int</FONT> xOffset = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>        g.drawLine(leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, <FONT CLASS="IntegerLiteral">8</FONT> + yOffset, leftIndent + xOffset + <FONT CLASS="IntegerLiteral">20</FONT>, <FONT CLASS="IntegerLiteral">8</FONT> + yOffset);
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>        <FONT CLASS="If">if</FONT>(target.state == DONE){
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>            g.setColor(Color.darkGray);
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>        }
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>        <FONT CLASS="If">if</FONT>(target.state == INPROGRESS){
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>            g.setColor(progressColor);
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>        }
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>        <FONT CLASS="If">if</FONT>(target.state == TODO){
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>            g.setColor(Color.gray);
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>        }
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>        g.fillRoundRect(leftIndent + xOffset + <FONT CLASS="IntegerLiteral">3</FONT>, yOffset + <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">11</FONT>, <FONT CLASS="IntegerLiteral">9</FONT>, <FONT CLASS="IntegerLiteral">7</FONT>, <FONT CLASS="IntegerLiteral">7</FONT>);
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>        g.setColor(Color.black);
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>        g.drawString(target.name, leftIndent + xOffset + <FONT CLASS="IntegerLiteral">22</FONT>, <FONT CLASS="IntegerLiteral">13</FONT> + yOffset);
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>        <FONT CLASS="If">if</FONT>(target.subTargets.size() &gt; <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>            Iterator iter = target.subTargets.iterator();
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>            <FONT CLASS="For">for</FONT>(<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">1</FONT>; iter.hasNext(); i++){
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>                drawSubTarget((ProgressModel)iter.next(), g, 
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>                        yOffset += tHeight, hasMore | i &lt; target.subTargets.size());
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>            }
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>        }
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>    }
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> drawSubTarget(ProgressModel target, Graphics2D g, 
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>            <FONT CLASS="Int">int</FONT> yOffset, <FONT CLASS="Boolean">boolean</FONT> hasMore){
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>        g.setFont(subFont);
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>        g.setColor(Color.gray);
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>        <FONT CLASS="SingleLineComment">//7 vertical line (up)
+<FONT CLASS="LN">29</FONT><A NAME="229"></A></FONT>        g.drawLine(leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, yOffset, leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, yOffset + <FONT CLASS="IntegerLiteral">8</FONT>);
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>        <FONT CLASS="SingleLineComment">//7 vertical line (down)
+<FONT CLASS="LN">31</FONT><A NAME="231"></A></FONT>        <FONT CLASS="If">if</FONT>(hasMore){
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>            g.drawLine(leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, (tHeight/<FONT CLASS="IntegerLiteral">2</FONT>) + yOffset, leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, tHeight + yOffset);
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>        }
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>        <FONT CLASS="Int">int</FONT> xOffset = <FONT CLASS="IntegerLiteral">15</FONT>;
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>        <FONT CLASS="SingleLineComment">// sideways line
+<FONT CLASS="LN">36</FONT><A NAME="236"></A></FONT>        g.drawLine(leftIndent + <FONT CLASS="IntegerLiteral">8</FONT>, <FONT CLASS="IntegerLiteral">8</FONT> + yOffset, leftIndent + xOffset + <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">8</FONT> + yOffset);
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>        <FONT CLASS="If">if</FONT>(target.state == DONE){
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>            g.setColor(Color.darkGray);
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>        }
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>        <FONT CLASS="If">if</FONT>(target.state == INPROGRESS){
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>            g.setColor(progressColor);
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>        }
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>        <FONT CLASS="If">if</FONT>(target.state == TODO){
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>            g.setColor(Color.gray);
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>        }
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>        g.fillRoundRect(leftIndent + xOffset + <FONT CLASS="IntegerLiteral">4</FONT>, yOffset + <FONT CLASS="IntegerLiteral">5</FONT>, <FONT CLASS="IntegerLiteral">9</FONT>, <FONT CLASS="IntegerLiteral">7</FONT>, <FONT CLASS="IntegerLiteral">7</FONT>, <FONT CLASS="IntegerLiteral">7</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>        g.setColor(Color.black);
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>        g.drawString(target.name, leftIndent + xOffset + <FONT CLASS="IntegerLiteral">15</FONT>, <FONT CLASS="IntegerLiteral">12</FONT> + yOffset);
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> Dimension getPreferredScrollableViewportSize(){
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>        <FONT CLASS="Return">return</FONT> getPreferredSize();
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Int">int</FONT> getScrollableUnitIncrement(Rectangle visibleRect, <FONT CLASS="Int">int</FONT> orientation, <FONT CLASS="Int">int</FONT> direction){
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>        <FONT CLASS="Return">return</FONT> tHeight;
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Int">int</FONT> getScrollableBlockIncrement(Rectangle visibleRect, <FONT CLASS="Int">int</FONT> orientation, <FONT CLASS="Int">int</FONT> direction){
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>        <FONT CLASS="Return">return</FONT> tHeight * <FONT CLASS="IntegerLiteral">3</FONT>;
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Boolean">boolean</FONT> getScrollableTracksViewportWidth(){
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Boolean">boolean</FONT> getScrollableTracksViewportHeight(){
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> ProgressModel{
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>        <FONT CLASS="Int">int</FONT> state = TODO;
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>        String name;
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>        List subTargets = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>        <FONT CLASS="Public">public</FONT> ProgressModel(String name){
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>            <FONT CLASS="This">this</FONT>.name = name;
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>        <FONT CLASS="Int">int</FONT> getHeight(){
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>            <FONT CLASS="Return">return</FONT> tHeight + subTargets.size() * tHeight;
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>        }
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>    }
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>}
+<FONT CLASS="LN">80</FONT><A NAME="280"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SelectInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SelectInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SelectInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.SelectInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SelectInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.event.ItemEvent;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.ItemListener;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.Enumeration;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.ButtonGroup;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.JRadioButton;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">org.tp23.antinstaller.input.SelectInput</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SelectInputRenderer
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput</A> inputField;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Protected">protected</FONT> JLabel fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Protected">protected</FONT> ButtonGroup optionGroup = <FONT CLASS="New">new</FONT> ButtonGroup();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> SelectInputRenderer() {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent){
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            jbInit();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            ctx.log(e.getMessage());
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>                ctx.log(e);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> inputField) {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="This">this</FONT>.inputField = (<A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput</A>)inputField;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        Enumeration enumumeration = optionGroup.getElements();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="For">for</FONT>(; enumumeration.hasMoreElements(); i++){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            JRadioButton o = (JRadioButton)enumumeration.nextElement();
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            <FONT CLASS="If">if</FONT>(o.isSelected()) {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>                inputField.setValue(inputField.getOptions()[i].value);
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="If">if</FONT>(i &gt; inputField.getOptions().length) {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            inputField.setValue(inputField.getDefaultValue());
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue() {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="If">if</FONT>(!inputField.isEditted()) {
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            String newDefault = inputField.getDefaultValue();
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            Enumeration enumeration = optionGroup.getElements();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="For">for</FONT>(<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; enumeration.hasMoreElements(); i++){
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                <FONT CLASS="If">if</FONT>(newDefault.equals(inputField.getOptions()[i].value)) {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>                    JRadioButton jrb = (JRadioButton) enumeration.nextElement();
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                    jrb.setSelected(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                    <FONT CLASS="SingleLineComment">// @todo should break?
+<FONT CLASS="LN">84</FONT><A NAME="84"></A></FONT>                } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                    enumeration.nextElement();
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        fieldLabel.setText(inputField.getDisplayText());
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput.Option</A>[] options = inputField.getOptions();
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; options.length; i++) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            JRadioButton jrb = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIRadioButton.java.html">AIRadioButton</A>(options[i].getText());
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            optionGroup.add(jrb);
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            <FONT CLASS="If">if</FONT>(options[i].value.equals(inputField.getDefaultValue())){
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>                jrb.setSelected(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            jrb.addItemListener(<FONT CLASS="New">new</FONT> ItemListener(){
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> itemStateChanged(ItemEvent e) {
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                    inputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>                }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            });
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content,<A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row,<FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        content.add(fieldLabel,cf.getCell(row, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        Enumeration enumeration = optionGroup.getElements();
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        <FONT CLASS="SingleLineComment">// there should be at least two
+<FONT CLASS="LN">12</FONT><A NAME="112"></A></FONT>        enumeration.hasMoreElements();
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIRadioButton.java.html">AIRadioButton</A> jrb = (<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIRadioButton.java.html">AIRadioButton</A>)enumeration.nextElement();
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        content.add(jrb,cf.getCell(row++, <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        <FONT CLASS="If">if</FONT>(overflow) {
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            jrb.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        }
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        JPanel empty = <FONT CLASS="New">new</FONT> JPanel();
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        <FONT CLASS="While">while</FONT>(enumeration.hasMoreElements()){
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>            jrb = (<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AIRadioButton.java.html">AIRadioButton</A>)enumeration.nextElement();
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>            content.add(empty,cf.getCell(row, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>            content.add(jrb,cf.getCell(row++, <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>            <FONT CLASS="If">if</FONT>(overflow) {
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>                jrb.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>            }
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        }
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        <FONT CLASS="Return">return</FONT> row;
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>     * renderError
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>     */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        ctx.getMessageRenderer().printMessage(res.getString(<FONT CLASS="StringLiteral">"notValidSelection"</FONT>));
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        <FONT CLASS="SingleLineComment">// fixed BUG:1295944  ctx.getMessageRenderer().printMessage("Not a valid selection");
+<FONT CLASS="LN">36</FONT><A NAME="136"></A></FONT>        <FONT CLASS="SingleLineComment">//optionGroup.requestFocus();
+<FONT CLASS="LN">37</FONT><A NAME="137"></A></FONT>    }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>}
+<FONT CLASS="LN">39</FONT><A NAME="139"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SimpleInputPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SimpleInputPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SimpleInputPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.SimpleInputPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SimpleInputPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Color;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.Font;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.awt.GridBagLayout;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.awt.Insets;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.BorderFactory;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> javax.swing.JScrollPane;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> javax.swing.JTextArea;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">org.tp23.antinstaller.input.CommentOutput</A>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">org.tp23.antinstaller.page.SimpleInputPage</A>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/RendererFactory.java.html">org.tp23.antinstaller.renderer.RendererFactory</A>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> *
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * &lt;p&gt;This PageRenderer just renders a list of SwingInputRenderers using
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>* a BoxLayout &lt;/p&gt;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * @author Paul Hinds
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * @version $Id: SimpleInputPageRenderer.java,v 1.6 2006/12/27 21:46:35 teknopaul Exp $
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> */</FONT>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SimpleInputPageRenderer
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>     <FONT CLASS="SingleLineComment">//Prevent displayText and explanatoryText being rendered using different fonts
+<FONT CLASS="LN">53</FONT><A NAME="53"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> Font defaultFont = <FONT CLASS="New">new</FONT> JLabel().getFont();
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Private">private</FONT> JPanel contentPanel = <FONT CLASS="New">new</FONT> JPanel();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Private">private</FONT> GridBagLayout gridLayout = <FONT CLASS="New">new</FONT> GridBagLayout();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A>(); <FONT CLASS="SingleLineComment">// GridBagConstraintsFactory
+<FONT CLASS="LN">59</FONT><A NAME="59"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> overflow = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="SingleLineComment">// used in overflow
+<FONT CLASS="LN">61</FONT><A NAME="61"></A></FONT>    JScrollPane scroller = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Private">private</FONT> ArrayList renderers = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Public">public</FONT> SimpleInputPageRenderer(){
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateFields() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A> {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields = page.getOutputField();
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; fields.length; i++) {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            <FONT CLASS="If">if</FONT>(!fields[i].validate(ctx)){
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>                <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> renderer = (<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A>)renderers.get(i);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                renderer.renderError();
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputFields(){
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; renderers.size(); i++) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            ((<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A>)renderers.get(i)).updateInputField();
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValues(){
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; renderers.size(); i++) {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            ((<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A>)renderers.get(i)).updateDefaultValue();
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> instanceInit() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        overflow = ((<A HREF="../../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>)page).isOverflow();
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            <FONT CLASS="SingleLineComment">//WARNING this causes flickering in the UI 
+<FONT CLASS="LN">96</FONT><A NAME="96"></A></FONT>            contentPanel.setMaximumSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH - <FONT CLASS="IntegerLiteral">50</FONT>, SizeConstants.PAGE_HEIGHT));
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            scroller = <FONT CLASS="New">new</FONT> JScrollPane();
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            scroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            scroller.setBorder(BorderFactory.createCompoundBorder(
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>                            BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">4</FONT>,<FONT CLASS="IntegerLiteral">4</FONT>,<FONT CLASS="IntegerLiteral">4</FONT>,<FONT CLASS="IntegerLiteral">4</FONT>),
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                            BorderFactory.createEtchedBorder()              
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                            ));
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            add(scroller, BorderLayout.CENTER);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            scroller.getViewport().add(contentPanel);
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>            <FONT CLASS="SingleLineComment">//contentPanel.setBackground(Color.red);
+<FONT CLASS="LN">07</FONT><A NAME="107"></A></FONT>        }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            <FONT CLASS="This">this</FONT>.add(contentPanel, BorderLayout.CENTER);
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            contentPanel.setBorder(BorderFactory.createEmptyBorder(SizeConstants.TOP_INDENT, <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>));
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields = page.getOutputField();
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        contentPanel.setDoubleBuffered(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        contentPanel.setLayout(gridLayout);
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        <FONT CLASS="Int">int</FONT> row = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; fields.length; i++) {
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>            <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> renderer = RendererFactory.getSwingRenderer(fields[i]);
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>            String text = fields[i].getExplanatoryText();
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>            <FONT CLASS="If">if</FONT>(fields[i].getExplanatoryText() != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                JTextArea area = <FONT CLASS="New">new</FONT> DisplayTextArea(contentPanel.getBackground(), contentPanel.getForeground());
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                area.setIgnoreRepaint(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>                area.setFont( defaultFont );
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>                area.setText(text);
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>                contentPanel.add(area, cf.getSpan(row++));
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>                <FONT CLASS="If">if</FONT>(fields[i] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">CommentOutput</A>){
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>                    <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java.html">CommentOutputRenderer</A> crenderer = (<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/CommentOutputRenderer.java.html">CommentOutputRenderer</A>)renderer;
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>                    crenderer.setExplanatoryTextField(area);
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>                    <FONT CLASS="If">if</FONT>(fields[i].getDisplayText() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                        <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                    }
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>                }
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            }
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            renderer.setOutputField(fields[i]);
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>            renderer.setInstallerContext(ctx);
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            renderer.initComponent(contentPanel);
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            row = renderer.addSelf(contentPanel, cf, row, overflow);
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>            renderers.add(renderer);
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        }
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>        contentPanel.add(<FONT CLASS="New">new</FONT> JPanel(), cf.getVertGlue(row++));
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>}
+<FONT CLASS="LN">43</FONT><A NAME="143"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">44</FONT><A NAME="144"></A> * A JTextArea that is not editable and looks like a JLabel but uses 
+<FONT CLASS="LN">45</FONT><A NAME="145"></A> * JTextAreas ability to wrap.  Also has a fixed prefered width; 
+<FONT CLASS="LN">46</FONT><A NAME="146"></A> * @author Paul Hinds
+<FONT CLASS="LN">47</FONT><A NAME="147"></A> * @version $Id: SimpleInputPageRenderer.java,v 1.6 2006/12/27 21:46:35 teknopaul Exp $
+<FONT CLASS="LN">48</FONT><A NAME="148"></A> */</FONT>
+<FONT CLASS="LN">49</FONT><A NAME="149"></A><FONT CLASS="Class">class</FONT> DisplayTextArea <FONT CLASS="Extends">extends</FONT> JTextArea{
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>    DisplayTextArea(Color back, Color fore){
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        <FONT CLASS="This">this</FONT>.setBackground(back);
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>        <FONT CLASS="This">this</FONT>.setForeground(fore);
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>        <FONT CLASS="This">this</FONT>.setLineWrap(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>        <FONT CLASS="This">this</FONT>.setWrapStyleWord(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>        <FONT CLASS="This">this</FONT>.setEditable(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        <FONT CLASS="This">this</FONT>.setSelectionColor(back);
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>        <FONT CLASS="This">this</FONT>.setSelectionColor(back);
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>        <FONT CLASS="This">this</FONT>.setMargin(<FONT CLASS="New">new</FONT> Insets(<FONT CLASS="IntegerLiteral">5</FONT>,<FONT CLASS="IntegerLiteral">0</FONT>,<FONT CLASS="IntegerLiteral">0</FONT>,<FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>    <FONT CLASS="Public">public</FONT> Dimension getPreferredSize(){
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>        Dimension pref = <FONT CLASS="Super">super</FONT>.getPreferredSize();
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH - <FONT CLASS="IntegerLiteral">40</FONT>, pref.height);
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>    <FONT CLASS="Public">public</FONT> Dimension getMinimumSize(){
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        Dimension pref = <FONT CLASS="Super">super</FONT>.getMinimumSize();
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH - <FONT CLASS="IntegerLiteral">40</FONT>, pref.height);
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>    }
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>}
+<FONT CLASS="LN">71</FONT><A NAME="171"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SizeConstants.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SizeConstants.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SizeConstants.java.html	(revision 14989)
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.SizeConstants (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SizeConstants.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * Extracted contants with aim of making these variables configurable
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * @author teknopaul
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SizeConstants {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="SingleLineComment">// Page size constants
+<FONT CLASS="LN">26</FONT><A NAME="26"></A></FONT>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> PAGE_WIDTH = <FONT CLASS="IntegerLiteral">472</FONT>; <FONT CLASS="SingleLineComment">// orig value 472
+<FONT CLASS="LN">27</FONT><A NAME="27"></A></FONT>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> PAGE_HEIGHT = <FONT CLASS="IntegerLiteral">400</FONT>;<FONT CLASS="SingleLineComment">// orig value 400
+<FONT CLASS="LN">28</FONT><A NAME="28"></A></FONT>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> LABEL_WIDTH = <FONT CLASS="IntegerLiteral">175</FONT>;<FONT CLASS="SingleLineComment">// orig value 175
+<FONT CLASS="LN">29</FONT><A NAME="29"></A></FONT>    
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> TITLE_IMAGE_HEIGHT = <FONT CLASS="IntegerLiteral">100</FONT>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> TITLE_PANEL_HEIGHT = <FONT CLASS="IntegerLiteral">75</FONT>; <FONT CLASS="SingleLineComment">// suspect this is irrelevant
+<FONT CLASS="LN">32</FONT><A NAME="32"></A></FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="SingleLineComment">// Field size constants
+<FONT CLASS="LN">34</FONT><A NAME="34"></A></FONT>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> LEFT_INDENT = <FONT CLASS="IntegerLiteral">15</FONT>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> TOP_INDENT = <FONT CLASS="IntegerLiteral">8</FONT>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> BUTTON_WIDTH = <FONT CLASS="IntegerLiteral">90</FONT>; <FONT CLASS="SingleLineComment">// file and directory chooser
+<FONT CLASS="LN">37</FONT><A NAME="37"></A></FONT>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> FIELD_HEIGHT = <FONT CLASS="IntegerLiteral">20</FONT>;<FONT CLASS="SingleLineComment">// field Y
+<FONT CLASS="LN">38</FONT><A NAME="38"></A></FONT>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> FIELD_WIDTH = SizeConstants.PAGE_WIDTH - SizeConstants.LABEL_WIDTH - SizeConstants.LEFT_INDENT;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> SHORT_FIELD_WIDTH = FIELD_WIDTH - SizeConstants.BUTTON_WIDTH;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="SingleLineComment">// overflow resizing
+<FONT CLASS="LN">41</FONT><A NAME="41"></A></FONT>    <FONT CLASS="SingleLineComment">// in the gridbaglayout is seems that only preferred size
+<FONT CLASS="LN">42</FONT><A NAME="42"></A></FONT>    <FONT CLASS="SingleLineComment">// is significant
+<FONT CLASS="LN">43</FONT><A NAME="43"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> OVERFLOW_REDUCTION = <FONT CLASS="IntegerLiteral">40</FONT>;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> Dimension OVERFLOW_FIELD_SIZE = <FONT CLASS="New">new</FONT> Dimension(FIELD_WIDTH - OVERFLOW_REDUCTION, FIELD_HEIGHT);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> Dimension OVERFLOW_SHORT_FIELD_SIZE = <FONT CLASS="New">new</FONT> Dimension(FIELD_WIDTH - SizeConstants.BUTTON_WIDTH - OVERFLOW_REDUCTION, FIELD_HEIGHT);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> Dimension OVERFLOW_TOTAL_SIZE = <FONT CLASS="New">new</FONT> Dimension(FIELD_WIDTH + SizeConstants.LABEL_WIDTH - OVERFLOW_REDUCTION, FIELD_HEIGHT);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>}
+<FONT CLASS="LN">49</FONT><A NAME="49"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SplashPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SplashPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SplashPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.SplashPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SplashPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.ByteArrayOutputStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.ImageIcon;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SplashPage.java.html">org.tp23.antinstaller.page.SplashPage</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * A page containing only a single image. 
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * 
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @author teknopaul
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SplashPageRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>{
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> JLabel imagePanel = <FONT CLASS="New">new</FONT> JLabel();
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> SplashPageRenderer() {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateFields()<FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> instanceInit() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        String resource = ((<A HREF="../../../../../org/tp23/antinstaller/page/SplashPage.java.html">SplashPage</A>)page).getSplashResource();
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        ByteArrayOutputStream baos = <FONT CLASS="New">new</FONT> ByteArrayOutputStream();
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        InputStream in = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(resource);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="If">if</FONT>(in == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"Splash page resource is missing: "</FONT> + resource);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Byte">byte</FONT>[] buffer = <FONT CLASS="New">new</FONT> <FONT CLASS="Byte">byte</FONT>[<FONT CLASS="IntegerLiteral">2048</FONT>];
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="Int">int</FONT> read = -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="While">while</FONT> ( (read = in.read(buffer)) != -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            baos.write(buffer, <FONT CLASS="IntegerLiteral">0</FONT>, read);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        ImageIcon icon = <FONT CLASS="New">new</FONT> ImageIcon(baos.toByteArray());
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        imagePanel.setHorizontalAlignment(JLabel.CENTER);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        imagePanel.setIcon(icon);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="This">this</FONT>.add(imagePanel, BorderLayout.CENTER);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputFields(){
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        ;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>     * updateDefaultValues
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>     */</FONT>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValues() {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>}
+<FONT CLASS="LN">73</FONT><A NAME="73"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html	(revision 14989)
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.SwingInstallerContext (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SwingInstallerContext.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> javax.swing.JFrame;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.SwingUtilities;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildEvent;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/SwingRunner.java.html">org.tp23.antinstaller.runtime.SwingRunner</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SwingInstallerContext{
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> JFrame masterFrame;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Private">private</FONT> JLabel feedBackPanel;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/ProgressPanel.java.html">ProgressPanel</A> progressPanel;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> SwingInstallerContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx,
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>                                 JFrame masterFrame) {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        SwingInstallerContext.masterFrame = masterFrame;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> JFrame getMasterFrame() {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="Return">return</FONT> masterFrame;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/SwingRunner.java.html">SwingRunner</A> getSwingRunner() {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Return">return</FONT> (<A HREF="../../../../../org/tp23/antinstaller/runtime/SwingRunner.java.html">SwingRunner</A>)ctx.getRunner();
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setFeedBackLabel(JLabel feedBackPanel) {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="This">this</FONT>.feedBackPanel = feedBackPanel;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     * The progress panel is optional so not calling this method
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>     * should not cause errors or NPEs
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>     * @param progressPanel
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>     */</FONT>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setProgressPanel(<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/ProgressPanel.java.html">ProgressPanel</A> progressPanel) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="This">this</FONT>.progressPanel = progressPanel;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> buildStarted(BuildEvent buildEvent) {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        provideAntFeedBack(buildEvent.getMessage());
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            SwingUtilities.invokeAndWait(<FONT CLASS="New">new</FONT> Runnable(){
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>                <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> run(){
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                    <FONT CLASS="If">if</FONT>(SwingInstallerContext.<FONT CLASS="This">this</FONT>.progressPanel != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>                        SwingInstallerContext.<FONT CLASS="This">this</FONT>.progressPanel.prepareCalledTargets();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>                    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            });
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) { <FONT CLASS="SingleLineComment">//Interrupted or InvocationTarget
+<FONT CLASS="LN">69</FONT><A NAME="69"></A></FONT>            SwingInstallerContext.<FONT CLASS="This">this</FONT>.ctx.log(e);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> buildFinished(BuildEvent buildEvent) {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        <FONT CLASS="If">if</FONT>(<FONT CLASS="This">this</FONT>.progressPanel != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                SwingUtilities.invokeLater(<FONT CLASS="New">new</FONT> Runnable(){
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>                    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> run(){
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>                        SwingInstallerContext.<FONT CLASS="This">this</FONT>.progressPanel.buildFinished();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>                    }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                });
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            } <FONT CLASS="Catch">catch</FONT> (Exception e) { <FONT CLASS="SingleLineComment">//Interrupted or InvocationTarget
+<FONT CLASS="LN">82</FONT><A NAME="82"></A></FONT>                SwingInstallerContext.<FONT CLASS="This">this</FONT>.ctx.log(e);
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            }           
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> targetStarted(BuildEvent buildEvent) {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        TargetStarted targetStarted = <FONT CLASS="New">new</FONT> TargetStarted();
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        targetStarted.buildEvent = buildEvent;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            <FONT CLASS="If">if</FONT>(<FONT CLASS="This">this</FONT>.progressPanel != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                <FONT CLASS="SingleLineComment">//Invoke and wait used since strict ordering od started and finished is requried
+<FONT CLASS="LN">93</FONT><A NAME="93"></A></FONT>                SwingUtilities.invokeAndWait(targetStarted);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) { <FONT CLASS="SingleLineComment">//Interrupted or InvocationTarget
+<FONT CLASS="LN">96</FONT><A NAME="96"></A></FONT>            SwingInstallerContext.<FONT CLASS="This">this</FONT>.ctx.log(e);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        }           
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> targetFinished(BuildEvent buildEvent) {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            <FONT CLASS="SingleLineComment">//Invoke and wait used since strict ordering od started and finished is requried
+<FONT CLASS="LN">03</FONT><A NAME="103"></A></FONT>            SwingUtilities.invokeAndWait(<FONT CLASS="New">new</FONT> Runnable(){
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>                <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> run(){
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>                    <FONT CLASS="If">if</FONT>(SwingInstallerContext.<FONT CLASS="This">this</FONT>.progressPanel != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>                        SwingInstallerContext.<FONT CLASS="This">this</FONT>.progressPanel.targetFinished();
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>                    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>                }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            });
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) { <FONT CLASS="SingleLineComment">//Interrupted or InvocationTarget
+<FONT CLASS="LN">11</FONT><A NAME="111"></A></FONT>            SwingInstallerContext.<FONT CLASS="This">this</FONT>.ctx.log(e);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    }
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>    
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> provideAntFeedBack(String message){
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        <FONT CLASS="SingleLineComment">// We should never have Ant running without a ProgressPane
+<FONT CLASS="LN">17</FONT><A NAME="117"></A></FONT>        <FONT CLASS="SingleLineComment">// but do an if null here in case future FilterChains are different
+<FONT CLASS="LN">18</FONT><A NAME="118"></A></FONT>        ProvideAntFeedBack provideAntFeedBack = <FONT CLASS="New">new</FONT> ProvideAntFeedBack();
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        provideAntFeedBack.message = message;
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>            <FONT CLASS="If">if</FONT>(feedBackPanel != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                SwingUtilities.invokeLater(provideAntFeedBack);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>            }
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) { <FONT CLASS="SingleLineComment">//Interrupted or InvocationTarget
+<FONT CLASS="LN">25</FONT><A NAME="125"></A></FONT>            SwingInstallerContext.<FONT CLASS="This">this</FONT>.ctx.log(e);
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        }
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>    }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>    
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>    
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>     * @return Returns the ctx.
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>     */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> getInstallerContext() {
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        <FONT CLASS="Return">return</FONT> ctx;
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>    
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Class">class</FONT> TargetStarted <FONT CLASS="Implements">implements</FONT> Runnable{
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        <FONT CLASS="Private">private</FONT> BuildEvent buildEvent;
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> run(){
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>            SwingInstallerContext.<FONT CLASS="This">this</FONT>.progressPanel.targetStarted(buildEvent);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Class">class</FONT> ProvideAntFeedBack <FONT CLASS="Implements">implements</FONT> Runnable{
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        <FONT CLASS="Private">private</FONT> String message;
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> run(){
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>            SwingInstallerContext.<FONT CLASS="This">this</FONT>.feedBackPanel.setText(message);
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>        }
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>}
+<FONT CLASS="LN">50</FONT><A NAME="150"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html	(revision 14989)
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.SwingMessageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SwingMessageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> javax.swing.JFrame;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> javax.swing.JOptionPane;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.SwingUtilities;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> *
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * &lt;p&gt;Render User messages in Popup windows &lt;/p&gt;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @author Paul Hinds
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @version $Id: SwingMessageRenderer.java,v 1.4 2006/12/21 00:02:59 teknopaul Exp $
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SwingMessageRenderer
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> JFrame owner = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> SwingMessageRenderer() {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> SwingMessageRenderer(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallerContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> printMessage(String message){
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        MessageRunnable messageRunnable = <FONT CLASS="New">new</FONT> MessageRunnable();
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        messageRunnable.message = message;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="If">if</FONT>(SwingUtilities.isEventDispatchThread()){
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            messageRunnable.run();
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>                SwingUtilities.invokeAndWait(messageRunnable);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            } <FONT CLASS="Catch">catch</FONT> (Exception e) { <FONT CLASS="SingleLineComment">// Interrupted or InvocationTarget
+<FONT CLASS="LN">59</FONT><A NAME="59"></A></FONT>                ctx.log(e);
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> prompt(String message){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        OptionRunnable optionRunnable = <FONT CLASS="New">new</FONT> OptionRunnable();
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        optionRunnable.message = message;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="If">if</FONT>(SwingUtilities.isEventDispatchThread()){
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            optionRunnable.run();
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                SwingUtilities.invokeAndWait(optionRunnable);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            } <FONT CLASS="Catch">catch</FONT> (Exception e) { <FONT CLASS="SingleLineComment">// Interrupted or InvocationTarget
+<FONT CLASS="LN">74</FONT><A NAME="74"></A></FONT>                ctx.log(e);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        <FONT CLASS="Return">return</FONT> optionRunnable.ok;
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>     * @param owner The owner to set.
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>     */</FONT>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOwner(JFrame owner) {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="This">this</FONT>.owner = owner;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Class">class</FONT> MessageRunnable <FONT CLASS="Implements">implements</FONT> Runnable{
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        String message;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> run() {
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            JOptionPane.showMessageDialog(SwingMessageRenderer.<FONT CLASS="This">this</FONT>.owner, 
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                    message, <FONT CLASS="StringLiteral">"Message"</FONT>, JOptionPane.INFORMATION_MESSAGE );
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Class">class</FONT> OptionRunnable <FONT CLASS="Implements">implements</FONT> Runnable{
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        String message;
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="Boolean">boolean</FONT> ok;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> run() {
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            <FONT CLASS="Int">int</FONT> ret = JOptionPane.showConfirmDialog(SwingMessageRenderer.<FONT CLASS="This">this</FONT>.owner,
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>                    message,
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                    <FONT CLASS="StringLiteral">"Question"</FONT>,
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                    JOptionPane.YES_NO_OPTION);
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            <FONT CLASS="If">if</FONT> (ret == JOptionPane.YES_OPTION) {
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>                ok = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>            }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>                ok = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            }
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        }
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>}
+<FONT CLASS="LN">14</FONT><A NAME="114"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html	(revision 14989)
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.SwingOutputFieldRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SwingOutputFieldRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> *
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * &lt;p&gt;Instances of this interface should have a no args constructor.
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>* They sould
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>* be Swing JComponent (e.g. subclass JPanel) and render normally responding
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>* to update paint and requests to change Look &amp; Feel in a normal way. &lt;/p&gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Instances of this class should follow the naming convention. for each OutputField
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>* Xxx in the package org.tp23.antinstaller.input  there should exist a SwingOutputFieldRenderer
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>* called org.tp23.antinstaller.renderer.swing.XxxRenderer&lt;/p&gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @author Paul Hinds
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * @version $Id: SwingOutputFieldRenderer.java,v 1.5 2007/01/04 22:57:17 teknopaul Exp $
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> */</FONT>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Class">class</FONT> SwingOutputFieldRenderer{
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="SingleLineComment">//TODO From FindBugs - sometimes this field is not used in subclasses to avoid casting
+<FONT CLASS="LN">40</FONT><A NAME="40"></A></FONT>    <FONT CLASS="SingleLineComment">// replace with for example, getInputField() that casts in InputRenderers
+<FONT CLASS="LN">41</FONT><A NAME="41"></A></FONT>    <FONT CLASS="SingleLineComment">// requires work in ConditionalFieldRenderer
+<FONT CLASS="LN">42</FONT><A NAME="42"></A></FONT>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> outputField;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>     * this should hold a local reference and set the input fields default value
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * if one exists
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     * @param inputField InputField
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     */</FONT>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> outputField){
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="This">this</FONT>.outputField = outputField;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>     * Init the swing components
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>     */</FONT>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     * Called by the Page prior to firing pagecompletion events
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>     */</FONT>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Void">void</FONT> updateInputField();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>     * Called to update the defaults from the ResultContainer
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     */</FONT>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     * Called when validation fails
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>     */</FONT>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Void">void</FONT> renderError();
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>     * Called when the renderer should add itself to the content pane;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>     * @param content the panel to which the Renderer should add itself
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>     * @param GridBagConstraintsFactory
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>     * @param row the current row index in the table
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>     * @param components should adjust preferred size when the overflow flag is set
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>     * to compensate for width loss due to the scroll bar
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     * @return the row index after adding all its components
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     */</FONT>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content, <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf, <FONT CLASS="Int">int</FONT> row, <FONT CLASS="Boolean">boolean</FONT> overflow);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallerContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>}
+<FONT CLASS="LN">87</FONT><A NAME="87"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.SwingPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SwingPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Color;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.Font;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.awt.GridLayout;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionListener;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.io.ByteArrayOutputStream;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> javax.swing.BorderFactory;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> javax.swing.ImageIcon;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> javax.swing.JButton;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> javax.swing.border.Border;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> *
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> * &lt;p&gt;Abstract super class for page renderers.  setPage will always be called. &lt;/p&gt;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * &lt;p&gt;Subclasses should implement instanceInit for initialising swing components
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * on the page. &lt;/p&gt;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * @author Paul Hinds
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * @version $Id: SwingPageRenderer.java,v 1.10 2007/01/19 00:24:35 teknopaul Exp $
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> */</FONT>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Class">class</FONT> SwingPageRenderer
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Extends">extends</FONT> JPanel {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="SingleLineComment">// gui components
+<FONT CLASS="LN">54</FONT><A NAME="54"></A></FONT>    <FONT CLASS="Private">private</FONT> BorderLayout borderLayout1 = <FONT CLASS="New">new</FONT> BorderLayout();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="SingleLineComment">// holds the next back buttons etc
+<FONT CLASS="LN">57</FONT><A NAME="57"></A></FONT>    <FONT CLASS="Private">private</FONT> JPanel controlPanel = <FONT CLASS="New">new</FONT> JPanel();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Private">private</FONT> JButton backButton = <FONT CLASS="New">new</FONT> JButton();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> JButton cancelButton = <FONT CLASS="New">new</FONT> JButton();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> JButton nextButton = <FONT CLASS="New">new</FONT> JButton();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Private">private</FONT> JButton finishButton = <FONT CLASS="New">new</FONT> JButton();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Private">private</FONT> JPanel titlePanel = <FONT CLASS="New">new</FONT> JPanel();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> JLabel titleLabel = <FONT CLASS="New">new</FONT> JLabel();
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Private">private</FONT> JLabel imagePanel = <FONT CLASS="New">new</FONT> JLabel(); <FONT CLASS="SingleLineComment">// Graphic for the installer
+<FONT CLASS="LN">67</FONT><A NAME="67"></A></FONT>    <FONT CLASS="Private">private</FONT> GridLayout titleLayout = <FONT CLASS="New">new</FONT> GridLayout();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="SingleLineComment">// app components
+<FONT CLASS="LN">70</FONT><A NAME="70"></A></FONT>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">SwingInstallerContext</A> swingCtx;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html">PageCompletionListener</A> listener;
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="Private">private</FONT> Border bevelBorder;
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> Font titleFont;
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="Static">static</FONT>{
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        titleFont = <FONT CLASS="New">new</FONT> JLabel().getFont();
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            titleFont = <FONT CLASS="New">new</FONT> Font(titleFont.getFamily(), Font.BOLD, <FONT CLASS="IntegerLiteral">14</FONT>);
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> ex) {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            <FONT CLASS="SingleLineComment">// lets not fail due to font errors
+<FONT CLASS="LN">85</FONT><A NAME="85"></A></FONT>        }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="Public">public</FONT> SwingPageRenderer(){
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setPage(<A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page){
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        <FONT CLASS="This">this</FONT>.page = page;
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            jbInit();
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> e) {
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            ctx.log(e.getMessage());
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>                ctx.log(e);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">SwingInstallerContext</A> swingCtx){
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        <FONT CLASS="This">this</FONT>.ctx = swingCtx.getInstallerContext();
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        <FONT CLASS="This">this</FONT>.swingCtx = swingCtx;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>    
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        <FONT CLASS="This">this</FONT>.setDoubleBuffered(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        <FONT CLASS="SingleLineComment">//emptyBorder = BorderFactory.createEmptyBorder(2,5,2,2);
+<FONT CLASS="LN">14</FONT><A NAME="114"></A></FONT>        <FONT CLASS="SingleLineComment">//bevelBorder = BorderFactory.createCompoundBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(116, 116, 112),new Color(166, 166, 161)),BorderFactory.createEmptyBorder(2,SwingInputFieldRenderer.LEFT_INDENT,2,2));
+<FONT CLASS="LN">15</FONT><A NAME="115"></A></FONT>        bevelBorder = BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.black,<FONT CLASS="IntegerLiteral">1</FONT>),BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">2</FONT>,SizeConstants.LEFT_INDENT,<FONT CLASS="IntegerLiteral">2</FONT>,<FONT CLASS="IntegerLiteral">2</FONT>));
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        bevelBorder = BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(),BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">2</FONT>,SizeConstants.LEFT_INDENT,<FONT CLASS="IntegerLiteral">2</FONT>,<FONT CLASS="IntegerLiteral">2</FONT>));
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        Border tripleBorder = BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">3</FONT>,<FONT CLASS="IntegerLiteral">4</FONT>,<FONT CLASS="IntegerLiteral">1</FONT>,<FONT CLASS="IntegerLiteral">4</FONT>),bevelBorder);
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        <FONT CLASS="This">this</FONT>.setLayout(borderLayout1);
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        titleLabel.setBorder(tripleBorder);
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        controlPanel.setBorder(tripleBorder);
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        <FONT CLASS="This">this</FONT>.add(titlePanel, BorderLayout.NORTH);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        <FONT CLASS="This">this</FONT>.add(controlPanel, BorderLayout.SOUTH);
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        <FONT CLASS="SingleLineComment">// title panel
+<FONT CLASS="LN">26</FONT><A NAME="126"></A></FONT>        titlePanel.add(imagePanel, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        titlePanel.add(titleLabel, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        titlePanel.setLayout(titleLayout);
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        titleLayout.setColumns(<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        titleLayout.setHgap(<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        titleLayout.setRows(<FONT CLASS="IntegerLiteral">2</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>        titleLayout.setVgap(<FONT CLASS="IntegerLiteral">2</FONT>);
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        titlePanel.setMinimumSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_PANEL_HEIGHT));
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        titlePanel.setMaximumSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_PANEL_HEIGHT));
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        titlePanel.setPreferredSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_PANEL_HEIGHT));
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        titleLabel.setText(page.getDisplayText());
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        titleLabel.setFont(titleFont);
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>        setImage(page.getImageResource());
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>        imagePanel.setMinimumSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_IMAGE_HEIGHT));
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>        imagePanel.setMaximumSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_IMAGE_HEIGHT));
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        imagePanel.setPreferredSize(<FONT CLASS="New">new</FONT> Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.TITLE_IMAGE_HEIGHT));
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>        <FONT CLASS="SingleLineComment">// Ctrl Panel
+<FONT CLASS="LN">46</FONT><A NAME="146"></A></FONT>        controlPanel.add(cancelButton, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>        controlPanel.add(backButton, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>        controlPanel.add(nextButton, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        controlPanel.add(finishButton, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>        backButton.setText(res.getString(<FONT CLASS="StringLiteral">"backButton"</FONT>));<FONT CLASS="SingleLineComment">// "&lt;&lt; Back");
+<FONT CLASS="LN">51</FONT><A NAME="151"></A></FONT>        cancelButton.setText(res.getString(<FONT CLASS="StringLiteral">"cancelButton"</FONT>));<FONT CLASS="SingleLineComment">// "Cancel");
+<FONT CLASS="LN">52</FONT><A NAME="152"></A></FONT>        nextButton.setText(res.getString(<FONT CLASS="StringLiteral">"nextButton"</FONT>));<FONT CLASS="SingleLineComment">// "Next &gt;&gt;");
+<FONT CLASS="LN">53</FONT><A NAME="153"></A></FONT>        finishButton.setText(ctx.getInstaller().getFinishButtonText());
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>        finishButton.setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>        setEventListeners();
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>        setIcons();
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Void">void</FONT> instanceInit() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> ;
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Void">void</FONT> updateInputFields();
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValues();
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Boolean">boolean</FONT> validateFields()<FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>;
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setPageCompletionListener(<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html">PageCompletionListener</A> listener){
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>        <FONT CLASS="This">this</FONT>.listener = listener;
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setImage(String resource) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A>{
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>        <FONT CLASS="If">if</FONT>(resource == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>           resource = ctx.getInstaller().getDefaultImageResource();
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>        ImageIcon icon = getImage(resource);
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>        imagePanel.setIcon(icon);
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>    
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>    <FONT CLASS="Protected">protected</FONT> ImageIcon getImage(String resource){
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>            <FONT CLASS="If">if</FONT> (resource != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>                ByteArrayOutputStream baos = <FONT CLASS="New">new</FONT> ByteArrayOutputStream();
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>                InputStream in = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(resource);
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>                <FONT CLASS="Byte">byte</FONT>[] buffer = <FONT CLASS="New">new</FONT> <FONT CLASS="Byte">byte</FONT>[<FONT CLASS="IntegerLiteral">2048</FONT>];
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>                <FONT CLASS="Int">int</FONT> read = -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>                <FONT CLASS="While">while</FONT> ( (read = in.read(buffer)) != -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>                    baos.write(buffer, <FONT CLASS="IntegerLiteral">0</FONT>, read);
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>                }
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>                ImageIcon icon = <FONT CLASS="New">new</FONT> ImageIcon(baos.toByteArray());
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>                <FONT CLASS="Return">return</FONT> icon;
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>            }
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> ex) {
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>            ctx.log(<FONT CLASS="StringLiteral">"Can't load image resource:"</FONT> + resource);
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()){
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>                ctx.log(ex);
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>            }
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>    
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>    
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setEventListeners(){
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>        backButton.addActionListener(<FONT CLASS="New">new</FONT> ActionListener(){
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e){
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>                listener.pageBack(page);
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>            }
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>        });
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>        cancelButton.addActionListener(<FONT CLASS="New">new</FONT> ActionListener(){
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e){
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>                page.setAbort(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>                <FONT CLASS="If">if</FONT> (ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>                    ctx.log(<FONT CLASS="StringLiteral">"Abort called"</FONT>);
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>                }
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>                listener.pageComplete(page);
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>            }
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>        });
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>        nextButton.addActionListener(<FONT CLASS="New">new</FONT> ActionListener(){
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e){
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>                listener.pageComplete(page);
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>            }
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>        });
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>        finishButton.addActionListener(<FONT CLASS="New">new</FONT> ActionListener(){
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e){
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>                <FONT CLASS="If">if</FONT>(finishButton.getText().equals(res.getString(<FONT CLASS="StringLiteral">"exit"</FONT>))) {
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>                    <FONT CLASS="SingleLineComment">//TODO FindBugs this will prevent cleanup in FinalizerFilter
+<FONT CLASS="LN">24</FONT><A NAME="224"></A></FONT>                    System.exit(<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>                }
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>                listener.pageComplete(page);
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>                <FONT CLASS="SingleLineComment">//((SwingInstallerContext)ctx).getSwingRunner().finish();
+<FONT CLASS="LN">28</FONT><A NAME="228"></A></FONT>            }
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>        });
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>    }
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>    
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setIcons(){
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>        backButton.setIcon(getImage(<FONT CLASS="StringLiteral">"/resources/icons/back.png"</FONT>));
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>        cancelButton.setIcon(getImage(<FONT CLASS="StringLiteral">"/resources/icons/cancel.png"</FONT>));
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>        nextButton.setIcon(getImage(<FONT CLASS="StringLiteral">"/resources/icons/next.png"</FONT>));
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>        finishButton.setIcon(getImage(<FONT CLASS="StringLiteral">"/resources/icons/finish.png"</FONT>));
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>    <FONT CLASS="Public">public</FONT> JButton getCancelButton() {
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>        <FONT CLASS="Return">return</FONT> cancelButton;
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> getCtx() {
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>        <FONT CLASS="Return">return</FONT> ctx;
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>    <FONT CLASS="Public">public</FONT> JPanel getControlPanel() {
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>        <FONT CLASS="Return">return</FONT> controlPanel;
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>    <FONT CLASS="Public">public</FONT> JLabel getImagePanel() {
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>        <FONT CLASS="Return">return</FONT> imagePanel;
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>    <FONT CLASS="Public">public</FONT> JButton getNextButton() {
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>        <FONT CLASS="Return">return</FONT> nextButton;
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>    <FONT CLASS="Public">public</FONT> JLabel getTitleLabel() {
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>        <FONT CLASS="Return">return</FONT> titleLabel;
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>    <FONT CLASS="Public">public</FONT> JButton getFinishButton() {
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>        <FONT CLASS="Return">return</FONT> finishButton;
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>    <FONT CLASS="Public">public</FONT> JButton getBackButton() {
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>        <FONT CLASS="Return">return</FONT> backButton;
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>}
+<FONT CLASS="LN">70</FONT><A NAME="270"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/TargetInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/TargetInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/TargetInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.TargetInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TargetInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionListener;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">org.tp23.antinstaller.input.TargetInput</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TargetInputRenderer
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A> outputField;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A> fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AICheckBox.java.html">AICheckBox</A> targetCheckBox = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AICheckBox.java.html">AICheckBox</A>();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> TargetInputRenderer() {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent){
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            jbInit();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>            ctx.log(e.getMessage());
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>                ctx.log(e);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> outputField) {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="This">this</FONT>.outputField = (<A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A>)outputField;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        String target = outputField.getTarget();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="Int">int</FONT> targetIdx = outputField.getIdx();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="Boolean">boolean</FONT> selected = targetCheckBox.isSelected();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        outputField.setInputResult(String.valueOf(selected));
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="If">if</FONT>(selected &amp;&amp; !ctx.getCurrentPage().getAllTargets().contains(target)){
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            ctx.getCurrentPage().addTarget(targetIdx, target);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(!selected &amp;&amp; ctx.getCurrentPage().isTarget(target)){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            ctx.getCurrentPage().removeTarget(targetIdx);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue(){
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="If">if</FONT>(!outputField.isEditted()){
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            targetCheckBox.setSelected(InputField.isTrue(outputField.getDefaultValue()));
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        fieldLabel.setText(outputField.getDisplayText());
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        targetCheckBox.setSelected(InputField.isTrue(outputField.getDefaultValue()));
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        <FONT CLASS="If">if</FONT>(InputField.isTrue(outputField.getForce())){
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            targetCheckBox.setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        targetCheckBox.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                updateInputField();
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                outputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        });
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content,<A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row,<FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        content.add(fieldLabel,cf.getCell(row, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        content.add(targetCheckBox,cf.getCell(row, <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            targetCheckBox.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>     * renderError
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>     */</FONT>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>}
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/TargetSelectInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/TargetSelectInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/TargetSelectInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.TargetSelectInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TargetSelectInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds, Mark Anderson
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.Enumeration;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.JRadioButton;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">org.tp23.antinstaller.input.TargetSelectInput</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * 
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author Paul Hinds, Mark Anderson
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @version $Id: TargetSelectInputRenderer.java,v 1.3 2006/08/04 17:13:24 anothermwilson Exp $
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TargetSelectInputRenderer
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SelectInputRenderer.java.html">SelectInputRenderer</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> TargetSelectInputRenderer() {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        Enumeration enumeration = optionGroup.getElements();
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="Int">int</FONT> targetIdx = ((<A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A>)inputField).getIdx();
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="For">for</FONT>(; enumeration.hasMoreElements(); i++){
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            JRadioButton o = (JRadioButton)enumeration.nextElement();
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            ctx.getCurrentPage().removeTarget(targetIdx);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            <FONT CLASS="If">if</FONT>(o.isSelected()){
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>                String target = inputField.getOptions()[i].value;        
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>                ctx.getCurrentPage().addTarget(targetIdx, target);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>                inputField.setValue(target);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>                <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="If">if</FONT>(i &gt; inputField.getOptions().length){
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            inputField.setValue(inputField.getDefaultValue());
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>}
+<FONT CLASS="LN">54</FONT><A NAME="54"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/TextPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/TextPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/TextPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.TextPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TextPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.BorderFactory;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.JScrollPane;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.JTextPane;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> javax.swing.text.html.HTMLEditorKit;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/TextPage.java.html">org.tp23.antinstaller.page.TextPage</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * A page containing a text file's contents, may be HTML in swing.
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * The HTML supported is the standard Swing subset of HTML3.2 so 
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * it really just adds a bit of formatting and looks pretty bad.
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * The page is also parsed and property references in the document
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> * are converted to the runtime values.
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> * e.g. ${java.user.name} would be replaced with the current user in the HTML text.
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * 
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * Both the html page and embeded images are loaded from the classpath so
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * can be packaged in the jar.
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> * 
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * The default font and background are determined by 
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * the LAF.
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * @author teknopaul
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> *
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> */</FONT>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TextPageRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>{
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Private">private</FONT> JTextPane textPane = <FONT CLASS="New">new</FONT> JTextPane();
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Private">private</FONT> StringBuffer buffer = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> TextPageRenderer() {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> validateFields()<FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>{
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> instanceInit() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">Exception</A> {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="Final">final</FONT> String resource = ((<A HREF="../../../../../org/tp23/antinstaller/page/TextPage.java.html">TextPage</A>)page).getHtmlResource();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        InputStream in = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(resource);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="If">if</FONT>(in == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"Html page resource is missing:"</FONT> + resource);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        BufferedReader br = <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(in));
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        String read = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="While">while</FONT> ( (read = br.readLine()) != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            buffer.append(read);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="SingleLineComment">// as per FindBugs 
+<FONT CLASS="LN">72</FONT><A NAME="72"></A></FONT>        br.close();
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        JLabel defaults = <FONT CLASS="New">new</FONT> JLabel();
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        textPane.setBackground(defaults.getBackground());
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        textPane.setEditable(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        textPane.setContentType(<FONT CLASS="StringLiteral">"text/html"</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        HTMLEditorKit classpathKit = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/ClasspathHTMLEditorKit.java.html">ClasspathHTMLEditorKit</A>();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        textPane.setEditorKit(classpathKit);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        textPane.setAutoscrolls(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        String rule = <FONT CLASS="StringLiteral">"body{font-family:"</FONT> + defaults.getFont().getFamily() + 
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="StringLiteral">";font-size:"</FONT> + defaults.getFont().getSize() + <FONT CLASS="StringLiteral">"}"</FONT>;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        classpathKit.getStyleSheet().addRule(rule);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        textPane.setBorder(BorderFactory.createEmptyBorder());
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        JScrollPane scroller = <FONT CLASS="New">new</FONT> JScrollPane();
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        scroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        scroller.setBorder(BorderFactory.createCompoundBorder(
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                        BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>),
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                        BorderFactory.createEtchedBorder()              
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                        ));
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        add(scroller, BorderLayout.CENTER);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        scroller.getViewport().add(textPane);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        <FONT CLASS="This">this</FONT>.add(scroller, BorderLayout.CENTER);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputFields(){
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>     * updateDefaultValues
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>     */</FONT>
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValues() {
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        <FONT CLASS="SingleLineComment">// parse property references
+<FONT CLASS="LN">09</FONT><A NAME="109"></A></FONT>        String parsedHtml = ctx.getInstaller().getResultContainer().getDefaultValue(buffer.toString());
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        textPane.setText(parsedHtml);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        textPane.setCaretPosition(<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>}
+<FONT CLASS="LN">14</FONT><A NAME="114"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/UnvalidatedTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/UnvalidatedTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/UnvalidatedTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.UnvalidatedTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">UnvalidatedTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionListener;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.event.KeyAdapter;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.event.KeyEvent;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/UnvalidatedTextInput.java.html">org.tp23.antinstaller.input.UnvalidatedTextInput</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> UnvalidatedTextInputRenderer
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/UnvalidatedTextInput.java.html">UnvalidatedTextInput</A> inputField;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A> fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AITextfield.java.html">AITextfield</A> jTextField = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AITextfield.java.html">AITextfield</A>();
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> UnvalidatedTextInputRenderer() {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent){
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>            jbInit();
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            ctx.log(e.getMessage());
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>                ctx.log(e);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> inputField) {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="This">this</FONT>.inputField=(<A HREF="../../../../../org/tp23/antinstaller/input/UnvalidatedTextInput.java.html">UnvalidatedTextInput</A>)inputField;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="This">this</FONT>.inputField.setValue(<FONT CLASS="This">this</FONT>.inputField.getDefaultValue());
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField(){
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        inputField.setValue(jTextField.getText());
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue(){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="If">if</FONT>(!inputField.isEditted())jTextField.setText(inputField.getDefaultValue());
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        fieldLabel.setText(inputField.getDisplayText());
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        jTextField.setText(inputField.getDefaultValue());
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        jTextField.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>                updateInputField();
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        });
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        jTextField.addKeyListener(<FONT CLASS="New">new</FONT> KeyAdapter() {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> keyTyped(KeyEvent e) {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                <FONT CLASS="If">if</FONT> (e.getKeyChar() != <FONT CLASS="CharacerLiteral">'\t'</FONT>) {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                    inputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        });
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content,<A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf,  <FONT CLASS="Int">int</FONT> row,<FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        content.add(fieldLabel,cf.getCell(row,<FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        content.add(jTextField,cf.getCell(row,<FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="If">if</FONT>(overflow){
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            jTextField.setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>     * renderError
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>     */</FONT>
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>}
+<FONT CLASS="LN">96</FONT><A NAME="96"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/ValidatedTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.ValidatedTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ValidatedTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.swing.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Color;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.FocusAdapter;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.event.FocusEvent;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.event.KeyAdapter;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.awt.event.KeyEvent;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.JTextField;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ValidatedTextInput.java.html">org.tp23.antinstaller.input.ValidatedTextInput</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/gui/GBCF.java.html">org.tp23.gui.GBCF</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ValidatedTextInputRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/SwingOutputFieldRenderer.java.html">SwingOutputFieldRenderer</A> {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ValidatedTextInput.java.html">ValidatedTextInput</A> inputField;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A> fieldLabel = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AILabel.java.html">AILabel</A>();
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Protected">protected</FONT> JTextField jTextField = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AITextfield.java.html">AITextfield</A>();
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Protected">protected</FONT> Color origFore;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> ValidatedTextInputRenderer() {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        origFore = jTextField.getForeground();
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> initComponent(JPanel parent) {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            jbInit();
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            ctx.log(e.getMessage());
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            <FONT CLASS="If">if</FONT> (ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>                ctx.log(e);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOutputField(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> inputField) {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="This">this</FONT>.inputField = (<A HREF="../../../../../org/tp23/antinstaller/input/ValidatedTextInput.java.html">ValidatedTextInput</A>) inputField;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="This">this</FONT>.inputField.setValue(<FONT CLASS="This">this</FONT>.inputField.getDefaultValue());
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateInputField() {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        inputField.setValue(jTextField.getText());
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> updateDefaultValue() {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="If">if</FONT> (!inputField.isEditted()) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            jTextField.setText(inputField.getDefaultValue());
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        fieldLabel.setText(inputField.getDisplayText());
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        jTextField.setText(inputField.getDefaultValue());
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        jTextField.addFocusListener(<FONT CLASS="New">new</FONT> FocusAdapter() {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> focusLost(FocusEvent fe) {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>                jTextField.setForeground(origFore);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        });
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        jTextField.addKeyListener(<FONT CLASS="New">new</FONT> KeyAdapter() {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> keyTyped(KeyEvent e) {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                <FONT CLASS="If">if</FONT> (e.getKeyChar() != <FONT CLASS="CharacerLiteral">'\t'</FONT>) {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                    inputField.setEditted(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        });
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> addSelf(JPanel content, <A HREF="../../../../../org/tp23/gui/GBCF.java.html">GBCF</A> cf, <FONT CLASS="Int">int</FONT> row, <FONT CLASS="Boolean">boolean</FONT> overflow) {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        content.add(fieldLabel, cf.getCell(row, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        content.add(jTextField, cf.getCell(row, <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="If">if</FONT> (overflow) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            ((<A HREF="../../../../../org/tp23/antinstaller/renderer/swing/AITextfield.java.html">AITextfield</A>) jTextField).setOverflow(SizeConstants.OVERFLOW_FIELD_SIZE);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        <FONT CLASS="Return">return</FONT> ++row;
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>     * renderError
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>     */</FONT>
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError() {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr = ctx.getMessageRenderer();
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        mr.printMessage(res.getString(<FONT CLASS="StringLiteral">"notCorrectFormat"</FONT>) + <FONT CLASS="StringLiteral">"\n\n e.g. "</FONT>
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>                + inputField.getDefaultValue());
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        <FONT CLASS="This">this</FONT>.jTextField.requestFocus();
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        <FONT CLASS="This">this</FONT>.jTextField.setForeground(Color.red);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>    }
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>}
+<FONT CLASS="LN">12</FONT><A NAME="112"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html	(revision 14989)
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.plaf.LookAndFeelFactory (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LookAndFeelFactory.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../../org.tp23.antinstaller.renderer.swing.plaf.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing.plaf</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.lang.reflect.Method;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> javax.swing.LookAndFeel;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.UIManager;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author Paul Hinds
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id: LookAndFeelFactory.java,v 1.9 2007/01/28 21:31:08 teknopaul Exp $
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LookAndFeelFactory {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String DEFAULT_LAF = <FONT CLASS="StringLiteral">"org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"</FONT>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String GREYMETAL_LAF = <FONT CLASS="StringLiteral">"greymetal"</FONT>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String NATIVE_LAF = <FONT CLASS="StringLiteral">"native"</FONT>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String JGOODIES_LAF = <FONT CLASS="StringLiteral">"jgoodies"</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String NULL_LAF = <FONT CLASS="StringLiteral">"null"</FONT>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> String specifiedLAF;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>     * 
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>     */</FONT>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> LookAndFeelFactory(<A HREF="../../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="This">this</FONT>.specifiedLAF = ctx.getInstaller().getLookAndFeel();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setLAF(){
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        String lafClassName = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="Try">try</FONT>{
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            lafClassName = getLafFromToken(specifiedLAF);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            <FONT CLASS="If">if</FONT>(lafClassName == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            LookAndFeel look = (LookAndFeel)Class.forName(lafClassName).newInstance();
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            ctx.log(<FONT CLASS="StringLiteral">"Setting look and feel:"</FONT> + lafClassName);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            UIManager.setLookAndFeel(look);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            <FONT CLASS="Boolean">boolean</FONT> antialias = OutputField.isTrue(ctx.getInstaller().getAntialiased());
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            <FONT CLASS="SingleLineComment">// Reflection used here to avoid dependencies on JGoodies
+<FONT CLASS="LN">62</FONT><A NAME="62"></A></FONT>            <FONT CLASS="If">if</FONT>(antialias){
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                Method setAntialiased = look.getClass().getMethod(<FONT CLASS="StringLiteral">"setAntiAliased"</FONT>, <FONT CLASS="New">new</FONT> Class[]{<FONT CLASS="Boolean">boolean</FONT>.<FONT CLASS="Class">class</FONT>});
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>                <FONT CLASS="If">if</FONT>(setAntialiased != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>                    ctx.log(<FONT CLASS="StringLiteral">"Setting antialiasing:"</FONT> + antialias);
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                    <FONT CLASS="SingleLineComment">// JDK1.5 warning fix
+<FONT CLASS="LN">67</FONT><A NAME="67"></A></FONT>                    Object[] args = <FONT CLASS="New">new</FONT> Boolean[]{<FONT CLASS="New">new</FONT> Boolean(antialias)};
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                    setAntialiased.invoke(<FONT CLASS="Null">null</FONT>, args);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>                }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        }<FONT CLASS="Catch">catch</FONT>(Exception ex ){
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            ctx.getLogger().log(<FONT CLASS="StringLiteral">"Can not correctly set Look And Feel:"</FONT> + ex.getMessage());
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            ctx.getLogger().log(ctx.getInstaller(), ex);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> isDefault(String laf){
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="Return">return</FONT> ( laf == <FONT CLASS="Null">null</FONT> || laf.equals(JGOODIES_LAF) || laf.equals(DEFAULT_LAF) );
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>     * Gets a look and feel class name respecting the tokens supported
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>     * such as jgoodies, null, native and greymetal
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>     * @param token
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>     * @return look and feel class name
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>     */</FONT>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> String getLafFromToken(String token) {
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        String laf = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        <FONT CLASS="If">if</FONT>(token == <FONT CLASS="Null">null</FONT> || token.equals(JGOODIES_LAF)) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            laf = DEFAULT_LAF;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(token.equals(NULL_LAF)) {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            laf = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(token.equals(NATIVE_LAF)) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            laf = UIManager.getSystemLookAndFeelClassName();
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(token.equals(GREYMETAL_LAF)) {
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            laf = <FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.swing.plaf.ModMetalLookAndFeel"</FONT>;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            laf = token;
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="Return">return</FONT> laf;
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>    }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>}
+<FONT CLASS="LN">06</FONT><A NAME="106"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/plaf/ModMetalLookAndFeel.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/plaf/ModMetalLookAndFeel.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/plaf/ModMetalLookAndFeel.java.html	(revision 14989)
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.plaf.ModMetalLookAndFeel (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ModMetalLookAndFeel.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../../org.tp23.antinstaller.renderer.swing.plaf.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing.plaf</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.Font;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Insets;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.LookAndFeel;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.UIDefaults;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.UIManager;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.plaf.metal.MetalLookAndFeel;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>        
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>        
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * This LAF is a replacement for Metal for those of us who can't stand the
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * exsessive use of the &lt;b&gt;BOLD&lt;/b&gt; font in the default MetalLookAndFeel
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * but don't want a heavy LAF that uses excessive memory or increases download
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * size.  The excessive use of Sun's corporate color purple has also been
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * removed, but icons have been left as they are since they would add
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * to the download size significantly.
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @author Paul Hinds
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * @version $Id: ModMetalLookAndFeel.java,v 1.3 2006/12/21 00:03:03 teknopaul Exp $
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> */</FONT>      
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ModMetalLookAndFeel <FONT CLASS="Extends">extends</FONT> MetalLookAndFeel {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Long">long</FONT> serialVersionUID = <FONT CLASS="IntegerLiteral">1L</FONT>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> isInstalled = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> Font defaultFont = <FONT CLASS="New">new</FONT> Font(<FONT CLASS="StringLiteral">"Dialog"</FONT>,Font.PLAIN,<FONT CLASS="IntegerLiteral">11</FONT>);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>     
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>     
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>     <FONT CLASS="Public">public</FONT> ModMetalLookAndFeel(){
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>         <FONT CLASS="If">if</FONT>(!isInstalled){
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>             isInstalled = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>             UIManager.installLookAndFeel(<FONT CLASS="New">new</FONT> javax.swing.UIManager.LookAndFeelInfo(<FONT CLASS="StringLiteral">"ModMetal"</FONT>, <FONT CLASS="StringLiteral">"org.tp23.laf.modmetal.ModMetalLookAndFeel"</FONT>));
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>         }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> setAntiAliased(<FONT CLASS="Boolean">boolean</FONT> antialiased){
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>         
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>     }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>     <FONT CLASS="Public">public</FONT> String getID(){
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>         <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"ModMetalLookAndFeel"</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>     }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     <FONT CLASS="Public">public</FONT> String getName()
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>     {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>         <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"ModMetalLookAndFeel"</FONT>;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>     }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     <FONT CLASS="Public">public</FONT> String getDescription(){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>         <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"Metal LAF with minor changes to default Fonts"</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>     }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isNativeLookAndFeel(){
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>         <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>     }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>     <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isSupportedLookAndFeel(){
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>         <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>     }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>     <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> initClassDefaults(UIDefaults table){
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>         <FONT CLASS="Super">super</FONT>.initClassDefaults(table);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>     <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> createDefaultTheme(){
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>         setCurrentTheme(<FONT CLASS="New">new</FONT> <A HREF="../../../../../../org/tp23/antinstaller/renderer/swing/plaf/ModMetalTheme.java.html">ModMetalTheme</A>());
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>         <FONT CLASS="Super">super</FONT>.createDefaultTheme();
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>     }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>     <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> initSystemColorDefaults(UIDefaults table){
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>         <FONT CLASS="Super">super</FONT>.initSystemColorDefaults(table);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>     }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>     <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> initComponentDefaults(UIDefaults table){
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>         <FONT CLASS="Super">super</FONT>.initComponentDefaults(table);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>         table.put(<FONT CLASS="StringLiteral">"Button.font"</FONT>, defaultFont);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>         table.put(<FONT CLASS="StringLiteral">"Checkbox.font"</FONT>, defaultFont);
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>         table.put(<FONT CLASS="StringLiteral">"CheckboxMenuItem.font"</FONT>, defaultFont);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>         table.put(<FONT CLASS="StringLiteral">"ComboBox.font"</FONT>, defaultFont);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>         table.put(<FONT CLASS="StringLiteral">"ComboBox.font"</FONT>, defaultFont);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>         table.put(<FONT CLASS="StringLiteral">"FormattedTextField.font"</FONT>, defaultFont);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>         table.put(<FONT CLASS="StringLiteral">"Label.font"</FONT>, defaultFont);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>         table.put(<FONT CLASS="StringLiteral">"List.font"</FONT>, defaultFont);
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>         table.put(<FONT CLASS="StringLiteral">"Menu.font"</FONT>, defaultFont);
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>         table.put(<FONT CLASS="StringLiteral">"MenuItem.font"</FONT>, defaultFont);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>         table.put(<FONT CLASS="StringLiteral">"PopupMenu.font"</FONT>, defaultFont);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>         table.put(<FONT CLASS="StringLiteral">"ProgressBar.font"</FONT>, defaultFont);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>         table.put(<FONT CLASS="StringLiteral">"RadioButton.font"</FONT>, defaultFont);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>         table.put(<FONT CLASS="StringLiteral">"RadioButtonMenuItem.font"</FONT>, defaultFont);
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>         table.put(<FONT CLASS="StringLiteral">"TextArea.font"</FONT>, defaultFont);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>         table.put(<FONT CLASS="StringLiteral">"TextField.font"</FONT>, defaultFont);
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>         table.put(<FONT CLASS="StringLiteral">"TextPane.font"</FONT>, defaultFont);
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>         table.put(<FONT CLASS="StringLiteral">"TabbedPane.font"</FONT>, defaultFont);
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>         table.put(<FONT CLASS="StringLiteral">"ToggleButton.font"</FONT>, defaultFont);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>         table.put(<FONT CLASS="StringLiteral">"Tree.font"</FONT>, defaultFont);
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>         table.put(<FONT CLASS="StringLiteral">"Viewport.font"</FONT>, defaultFont);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>         table.put(<FONT CLASS="StringLiteral">"OptionPane.errorIcon"</FONT>, LookAndFeel.makeIcon(MetalLookAndFeel.<FONT CLASS="Class">class</FONT>, <FONT CLASS="StringLiteral">"icons/Error.gif"</FONT>));
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>         table.put(<FONT CLASS="StringLiteral">"OptionPane.informationIcon"</FONT>, LookAndFeel.makeIcon(MetalLookAndFeel.<FONT CLASS="Class">class</FONT>, <FONT CLASS="StringLiteral">"icons/Inform.gif"</FONT>));
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>         table.put(<FONT CLASS="StringLiteral">"OptionPane.warningIcon"</FONT>, LookAndFeel.makeIcon(MetalLookAndFeel.<FONT CLASS="Class">class</FONT>, <FONT CLASS="StringLiteral">"icons/Warn.gif"</FONT>));
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>         table.put(<FONT CLASS="StringLiteral">"Button.margin"</FONT>, <FONT CLASS="New">new</FONT> Insets(<FONT CLASS="IntegerLiteral">2</FONT>,<FONT CLASS="IntegerLiteral">4</FONT>,<FONT CLASS="IntegerLiteral">2</FONT>,<FONT CLASS="IntegerLiteral">4</FONT>));
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>     }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>    
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>}
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        
+<FONT CLASS="LN">19</FONT><A NAME="119"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/plaf/ModMetalTheme.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/plaf/ModMetalTheme.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/swing/plaf/ModMetalTheme.java.html	(revision 14989)
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.swing.plaf.ModMetalTheme (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ModMetalTheme.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../../org.tp23.antinstaller.renderer.swing.plaf.index.html" target="packageFrame">org.tp23.antinstaller.renderer.swing.plaf</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> javax.swing.plaf.ColorUIResource;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> javax.swing.plaf.metal.DefaultMetalTheme;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * @author Paul Hinds
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * @version $Id: ModMetalTheme.java,v 1.4 2006/12/21 00:03:03 teknopaul Exp $
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> */</FONT>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ModMetalTheme <FONT CLASS="Extends">extends</FONT> DefaultMetalTheme{
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ColorUIResource primary1 = <FONT CLASS="New">new</FONT> ColorUIResource(
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>                                  <FONT CLASS="IntegerLiteral">102</FONT>, <FONT CLASS="IntegerLiteral">102</FONT>, <FONT CLASS="IntegerLiteral">102</FONT>);
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ColorUIResource primary2 = <FONT CLASS="New">new</FONT> ColorUIResource(
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>                                  <FONT CLASS="IntegerLiteral">153</FONT>, <FONT CLASS="IntegerLiteral">153</FONT>, <FONT CLASS="IntegerLiteral">153</FONT>);
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ColorUIResource primary3 = <FONT CLASS="New">new</FONT> ColorUIResource(
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>                                  <FONT CLASS="IntegerLiteral">204</FONT>, <FONT CLASS="IntegerLiteral">204</FONT>, <FONT CLASS="IntegerLiteral">204</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ColorUIResource secondary1 = <FONT CLASS="New">new</FONT> ColorUIResource(
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>                                  <FONT CLASS="IntegerLiteral">192</FONT>, <FONT CLASS="IntegerLiteral">192</FONT>, <FONT CLASS="IntegerLiteral">192</FONT>);
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ColorUIResource secondary2 = <FONT CLASS="New">new</FONT> ColorUIResource(
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>                                  <FONT CLASS="IntegerLiteral">213</FONT>, <FONT CLASS="IntegerLiteral">213</FONT>, <FONT CLASS="IntegerLiteral">213</FONT>);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ColorUIResource secondary3 = <FONT CLASS="New">new</FONT> ColorUIResource(
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>                                  <FONT CLASS="IntegerLiteral">234</FONT>, <FONT CLASS="IntegerLiteral">234</FONT>, <FONT CLASS="IntegerLiteral">234</FONT>);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="SingleLineComment">// these are blue in Metal Default Theme
+<FONT CLASS="LN">44</FONT><A NAME="44"></A></FONT>        <FONT CLASS="Protected">protected</FONT> ColorUIResource getPrimary1() { <FONT CLASS="Return">return</FONT> primary1; } 
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="Protected">protected</FONT> ColorUIResource getPrimary2() { <FONT CLASS="Return">return</FONT> primary2; }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Protected">protected</FONT> ColorUIResource getPrimary3() { <FONT CLASS="Return">return</FONT> primary3; }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="SingleLineComment">// these are gray in Metal Default Theme
+<FONT CLASS="LN">49</FONT><A NAME="49"></A></FONT>        <FONT CLASS="Protected">protected</FONT> ColorUIResource getSecondary1() { <FONT CLASS="Return">return</FONT> secondary1; }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Protected">protected</FONT> ColorUIResource getSecondary2() { <FONT CLASS="Return">return</FONT> secondary2; }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="Protected">protected</FONT> ColorUIResource getSecondary3() { <FONT CLASS="Return">return</FONT> secondary3; }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>}
+<FONT CLASS="LN">54</FONT><A NAME="54"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.AbstractTextPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AbstractTextPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/PageRenderer.java.html">org.tp23.antinstaller.renderer.PageRenderer</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * renamed from TextPageRenderer in version 0.8 to enable
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * the use of the page type TextPage, TextPageRenderer is now 
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * the renderer for these page types
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @author teknopaul
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> *
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> */</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Class">class</FONT> AbstractTextPageRenderer
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/PageRenderer.java.html">PageRenderer</A> {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> PAGE_BLANK_LINES = <FONT CLASS="IntegerLiteral">20</FONT>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> PAGE_DECO_WIDTH = <FONT CLASS="IntegerLiteral">80</FONT>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Protected">protected</FONT> BufferedReader reader;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Protected">protected</FONT> PrintStream out;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> AbstractTextPageRenderer() {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> getContext(){
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="Return">return</FONT> ctx;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> init( BufferedReader reader, PrintStream out){
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="This">this</FONT>.out = out;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="This">this</FONT>.reader = reader;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>     *
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>     * @param page Page
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>     * @throws InstallException
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     * @return boolean false implys user aborted
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>     */</FONT>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Boolean">boolean</FONT> renderPage(<A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> printHeader(<A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; PAGE_BLANK_LINES; i++) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            out.println();
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; PAGE_DECO_WIDTH; i++) {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            out.print(<FONT CLASS="CharacerLiteral">'~'</FONT>);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        out.println();
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        out.println(<FONT CLASS="StringLiteral">"  "</FONT> + page.getDisplayText());
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; PAGE_DECO_WIDTH; i++) {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            out.print(<FONT CLASS="CharacerLiteral">'~'</FONT>);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        out.println();
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        out.println();
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        out.println();
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Char">char</FONT>[] affimativeChars = parseChars(res.getString(<FONT CLASS="StringLiteral">"affirmativeChars"</FONT>));
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Char">char</FONT>[] parseChars(String commaSeparated){
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        <FONT CLASS="Char">char</FONT>[] input = commaSeparated.toCharArray();
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="Char">char</FONT>[] theChars = <FONT CLASS="New">new</FONT> <FONT CLASS="Char">char</FONT>[input.length];
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        <FONT CLASS="Int">int</FONT> j = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; input.length; i++) {
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            <FONT CLASS="If">if</FONT>(Character.isWhitespace(input[i]))<FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            <FONT CLASS="If">if</FONT>(<FONT CLASS="CharacerLiteral">','</FONT> == input[i]) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            <FONT CLASS="Else">else</FONT> theChars[j++] = input[i];
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        <FONT CLASS="Char">char</FONT>[] toReturn = <FONT CLASS="New">new</FONT> <FONT CLASS="Char">char</FONT>[j];
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        System.arraycopy(theChars,<FONT CLASS="IntegerLiteral">0</FONT>,toReturn,<FONT CLASS="IntegerLiteral">0</FONT>,j);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        <FONT CLASS="Return">return</FONT> toReturn;
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>     * does the string represent true default = true
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>     * @param entered String
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>     * @return boolean
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>     */</FONT>
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> isTrue(String entered){
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        <FONT CLASS="If">if</FONT>(entered.length() == <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        }
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        <FONT CLASS="Char">char</FONT> first = entered.charAt(<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        <FONT CLASS="Boolean">boolean</FONT> isTrue= <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; affimativeChars.length; i++) {
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>            isTrue |= Character.toUpperCase(first) == affimativeChars[i];
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        <FONT CLASS="Return">return</FONT> isTrue;
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>    }
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>}
+<FONT CLASS="LN">22</FONT><A NAME="122"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/AppRootInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/AppRootInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/AppRootInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.AppRootInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AppRootInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AppRootInputRenderer
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/DirectoryInputRenderer.java.html">DirectoryInputRenderer</A> {
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>}
+<FONT CLASS="LN">21</FONT><A NAME="21"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.CheckboxInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CheckboxInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CheckboxInput.java.html">org.tp23.antinstaller.input.CheckboxInput</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CheckboxInputRenderer
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> CheckboxInputRenderer() {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/CheckboxInput.java.html">CheckboxInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/CheckboxInput.java.html">CheckboxInput</A>) field;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        out.print(iField.getDisplayText());
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        out.print(<FONT CLASS="StringLiteral">"   ["</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        out.print(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        out.print(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        out.print(iField.getDefaultValue());
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        out.print(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="If">if</FONT> (InputField.isTrue(iField.getForce())) {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            out.println(res.getString(<FONT CLASS="StringLiteral">"_required_"</FONT>));
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            iField.setValue(iField.getDefaultValue());
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            out.println();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        String input = reader.readLine();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        out.println();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="If">if</FONT> (input == <FONT CLASS="Null">null</FONT> || input.trim().equals(<FONT CLASS="StringLiteral">""</FONT>)) {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            input = iField.getDefaultValue();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="If">if</FONT>(InputField.isTrue(input)){
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            iField.setValue(<FONT CLASS="StringLiteral">"true"</FONT>);
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="SingleLineComment">//@TODO should accept true or false only and complain toher wise looping till sensible input
+<FONT CLASS="LN">70</FONT><A NAME="70"></A></FONT>        <FONT CLASS="SingleLineComment">//else if (InputField.isFalse(input)){
+<FONT CLASS="LN">71</FONT><A NAME="71"></A></FONT>        <FONT CLASS="SingleLineComment">//  iField.setValue("false");
+<FONT CLASS="LN">72</FONT><A NAME="72"></A></FONT>        <FONT CLASS="SingleLineComment">//}
+<FONT CLASS="LN">73</FONT><A NAME="73"></A></FONT>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            iField.setValue(<FONT CLASS="StringLiteral">"false"</FONT>);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort() {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>     * renderError
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>     *
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>     * @param field InputField
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>     * @param in InputStream
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>     * @param out PrintStream
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>     */</FONT>
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>}
+<FONT CLASS="LN">94</FONT><A NAME="94"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/CommentOutputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/CommentOutputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/CommentOutputRenderer.java.html	(revision 14989)
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.CommentOutputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CommentOutputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">org.tp23.antinstaller.input.CommentOutput</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CommentOutputRenderer
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> CommentOutputRenderer() {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    }
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">CommentOutput</A> comField = (<A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">CommentOutput</A>) field;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        String text = field.getDisplayText();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="If">if</FONT>(text == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="If">if</FONT>( OutputField.isTrue(comField.getBold()) ){
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            text = text.toUpperCase();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>( OutputField.isTrue(comField.getTitle()) ){
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            text = text.toUpperCase();
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        out.println(text);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort(){
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>     * renderError
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>     *
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     * @param field InputField
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>     * @param out PrintStream
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>     */</FONT>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>}
+<FONT CLASS="LN">69</FONT><A NAME="69"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ConditionalFieldRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ConditionalFieldRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ConditionalFieldRenderer.java.html	(revision 14989)
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.ConditionalFieldRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ConditionalFieldRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ResourceBundleHelper.java.html">org.tp23.antinstaller.ResourceBundleHelper</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">org.tp23.antinstaller.input.ConditionalField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * Conditionally render a collection of fields
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> *
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @author mwilson
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @version $Id
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @since 0.7.4.patch 7
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ConditionalFieldRenderer <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>{
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/ResourceBundleHelper.java.html">ResourceBundleHelper</A> res = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/ResourceBundleHelper.java.html">ResourceBundleHelper</A>(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> context;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext( <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> context )
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="This">this</FONT>.context = context;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput( <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out )
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>, <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>, IOException
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A> conditional = (<A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A>) field;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="Try">try</FONT>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            <FONT CLASS="If">if</FONT>( conditional.getExpression().evaluate() )
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>                fields = conditional.getFields();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>                SimpleInputPageRenderer.renderFields( context, fields, reader, out);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="Catch">catch</FONT>( <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> configExc )
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>( res.getMessage( <FONT CLASS="StringLiteral">"invalid.conditional.expression"</FONT>, conditional.getIfProperty()),
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>                                                        configExc );
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="Catch">catch</FONT>( ClassNotFoundException clsNotFoundExc )
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>( res.getMessage( <FONT CLASS="StringLiteral">"text.render.not.found"</FONT> ),
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                                                        clsNotFoundExc );
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError( <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out ) <FONT CLASS="Throws">throws</FONT> IOException
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="SingleLineComment">//renderOutput will have already rendered any errors
+<FONT CLASS="LN">79</FONT><A NAME="79"></A></FONT>    }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort()
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>}
+<FONT CLASS="LN">86</FONT><A NAME="86"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ConfirmPasswordTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ConfirmPasswordTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ConfirmPasswordTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.ConfirmPasswordTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ConfirmPasswordTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A>
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A>
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ConfirmPasswordTextInputRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/PasswordTextInputRenderer.java.html">PasswordTextInputRenderer</A> {
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A>    
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A>    
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A>    <FONT CLASS="Protected">protected</FONT> String getErrorMessage(){
+<FONT CLASS="LN">10</FONT><A NAME="10"></A>        <FONT CLASS="Return">return</FONT> res.getString(<FONT CLASS="StringLiteral">"passwordsDoNotMatch"</FONT>);
+<FONT CLASS="LN">11</FONT><A NAME="11"></A>    }   
+<FONT CLASS="LN">12</FONT><A NAME="12"></A>
+<FONT CLASS="LN">13</FONT><A NAME="13"></A>}
+<FONT CLASS="LN">14</FONT><A NAME="14"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/DateInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/DateInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/DateInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.DateInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">DateInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">org.tp23.antinstaller.input.DateInput</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> DateInputRenderer
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> DateInputRenderer() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">DateInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">DateInput</A>) field;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        out.print(field.getDisplayText());
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        out.print(<FONT CLASS="StringLiteral">"   ["</FONT>);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        out.print(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        out.print(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        out.print(iField.getDefaultValue());
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        out.println(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A><FONT CLASS="SingleLineComment">// @TODO check this from the patch submitted for bug 1469254
+<FONT CLASS="LN">52</FONT><A NAME="52"></A></FONT>        String input = reader.readLine();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        out.println();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="If">if</FONT>(input==<FONT CLASS="Null">null</FONT> || input.equals(<FONT CLASS="StringLiteral">""</FONT>))input = iField.getDefaultValue();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        iField.setInputResult(input);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">DateInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">DateInput</A>) field;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        out.println(<FONT CLASS="StringLiteral">"The input is not in the correct format:"</FONT>+iField.getDateFormat());
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        renderOutput(field, reader, out);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort(){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>}
+<FONT CLASS="LN">67</FONT><A NAME="67"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/DirectoryInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/DirectoryInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/DirectoryInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.DirectoryInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">DirectoryInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DirectoryInput.java.html">org.tp23.antinstaller.input.DirectoryInput</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> DirectoryInputRenderer <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> DirectoryInputRenderer() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/DirectoryInput.java.html">DirectoryInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/DirectoryInput.java.html">DirectoryInput</A>) field;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        out.print(iField.getDisplayText());
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        out.print(<FONT CLASS="StringLiteral">"   ["</FONT>);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        out.print(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        out.print(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        out.print(iField.getDefaultValue(<FONT CLASS="True">true</FONT>));
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        out.print(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        out.println();
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        String input = reader.readLine();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        out.println();
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="If">if</FONT> (input == <FONT CLASS="Null">null</FONT> || input.equals(<FONT CLASS="StringLiteral">""</FONT>)) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            input = iField.getDefaultValue(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            <FONT CLASS="If">if</FONT>(<FONT CLASS="StringLiteral">""</FONT>.equals(input)) { <FONT CLASS="SingleLineComment">// if we have empty default and empty input getAbsolutePath() produces a temporary directory
+<FONT CLASS="LN">57</FONT><A NAME="57"></A></FONT>                iField.setInputResult(<FONT CLASS="StringLiteral">""</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>                iField.setInputResult(<FONT CLASS="New">new</FONT> File(input).getAbsolutePath());
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            iField.setInputResult(<FONT CLASS="New">new</FONT> File(input).getAbsolutePath());
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort() {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>     * renderError
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>     * 
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>     * @param field
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>     *            InputField
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     * @param in
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     *            InputStream
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>     * @param out
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>     *            PrintStream
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>     */</FONT>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        renderOutput(field, reader, out);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>}
+<FONT CLASS="LN">87</FONT><A NAME="87"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ExtValidatedTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ExtValidatedTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ExtValidatedTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.ExtValidatedTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ExtValidatedTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ExtValidatedTextInput.java.html">org.tp23.antinstaller.input.ExtValidatedTextInput</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/Validator.java.html">org.tp23.antinstaller.input.Validator</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ExtValidatedTextInputRenderer
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java.html">ValidatedTextInputRenderer</A> {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/ExtValidatedTextInput.java.html">ExtValidatedTextInput</A> extVal = (<A HREF="../../../../../org/tp23/antinstaller/input/ExtValidatedTextInput.java.html">ExtValidatedTextInput</A>) field;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/Validator.java.html">Validator</A> validator = extVal.getValidator();
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        Throwable t = extVal.getThrowable();
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        String message = validator.getErrorMessage(t,<FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        out.println(message);
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        renderOutput(field, reader, out);
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>}
+<FONT CLASS="LN">39</FONT><A NAME="39"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/FileInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/FileInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/FileInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.FileInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">FileInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/FileInput.java.html">org.tp23.antinstaller.input.FileInput</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> FileInputRenderer
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> FileInputRenderer() {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/FileInput.java.html">FileInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/FileInput.java.html">FileInput</A>) field;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        out.print(iField.getDisplayText());
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        out.print(<FONT CLASS="StringLiteral">"   ["</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        out.print(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        out.print(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        out.print(iField.getDefaultValue(<FONT CLASS="True">true</FONT>));
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        out.print(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        out.println();
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        String input = reader.readLine();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        out.println();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="If">if</FONT>(input == <FONT CLASS="Null">null</FONT> || input.equals(<FONT CLASS="StringLiteral">""</FONT>)){
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            input = iField.getDefaultValue(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        iField.setInputResult(<FONT CLASS="New">new</FONT> File(input).getAbsolutePath());
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> mr = ctx.getMessageRenderer();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        mr.printMessage(res.getString(<FONT CLASS="StringLiteral">"fileDoesNotExist"</FONT>));
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        renderOutput(field, reader, out);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort(){
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>}
+<FONT CLASS="LN">71</FONT><A NAME="71"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/HiddenPropertyInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/HiddenPropertyInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/HiddenPropertyInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.HiddenPropertyInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">HiddenPropertyInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/HiddenPropertyInput.java.html">org.tp23.antinstaller.input.HiddenPropertyInput</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * Text UI Renderer for hidden properties - displays nothing
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> *
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @author mwilson
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @version $Id
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @since 0.7.4 patch 6
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> HiddenPropertyInputRenderer <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>{
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext( <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx )
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput( <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out ) <FONT CLASS="Throws">throws</FONT> IOException
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/HiddenPropertyInput.java.html">HiddenPropertyInput</A> propertyField = (<A HREF="../../../../../org/tp23/antinstaller/input/HiddenPropertyInput.java.html">HiddenPropertyInput</A>) field;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="If">if</FONT>( !propertyField.isEditted() )
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            propertyField.setInputResult( propertyField.getDefaultValue() );
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError( <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out ) <FONT CLASS="Throws">throws</FONT> IOException
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort()
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>}
+<FONT CLASS="LN">59</FONT><A NAME="59"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/LargeSelectInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/LargeSelectInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/LargeSelectInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.LargeSelectInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LargeSelectInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">org.tp23.antinstaller.input.LargeSelectInput</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LargeSelectInputRenderer
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String nextChar = res.getString(<FONT CLASS="StringLiteral">"nextChar"</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> LargeSelectInputRenderer() {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    }
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput</A>) field;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        printText(iField,out,reader);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        String input = reader.readLine();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        out.println();
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="If">if</FONT>(input == <FONT CLASS="Null">null</FONT> || input.equals(<FONT CLASS="StringLiteral">""</FONT>)) {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            input = iField.getDefaultValue();
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>                <FONT CLASS="Int">int</FONT> idx = Integer.parseInt(input.trim());
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>                input = iField.getOptions()[idx - <FONT CLASS="IntegerLiteral">1</FONT>].value;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            } <FONT CLASS="Catch">catch</FONT>(Exception numFormatOrIndexOutOfBounds) {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        iField.setInputResult(input);
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort(){
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> printText(<A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput</A> iField, PrintStream out,BufferedReader reader) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        out.println(iField.getDisplayText());
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput.Option</A>[] options = iField.getOptions();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        out.print(<FONT CLASS="StringLiteral">"  "</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        out.println(res.getString(<FONT CLASS="StringLiteral">"availableOptions"</FONT>));
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        StringBuffer optionsData = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; options.length; i++) {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            optionsData.append(<FONT CLASS="StringLiteral">"  "</FONT>);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            optionsData.append(i+<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            optionsData.append(<FONT CLASS="StringLiteral">") "</FONT>);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            optionsData.append(options[i].getText());
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            <FONT CLASS="If">if</FONT>(iField.getDefaultValue().equals(options[i].value)){
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>                optionsData.append(<FONT CLASS="StringLiteral">" ["</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>                optionsData.append(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>                optionsData.append(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            optionsData.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        optionsData.append(<FONT CLASS="StringLiteral">"  "</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        optionsData.append(res.getString(<FONT CLASS="StringLiteral">"enterNumber"</FONT>)).append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        <A HREF="../../../../../org/tp23/antinstaller/renderer/text/Pager.java.html">Pager</A> pager = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/Pager.java.html">Pager</A>(optionsData.toString());
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        String command = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="Do">do</FONT> {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            <FONT CLASS="If">if</FONT> (!pager.next(out)) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            out.println();
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            out.println(getNextInstructions());
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            command = reader.readLine();
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="While">while</FONT> (command.toUpperCase().startsWith( nextChar ));
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        pager.rest(out);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>     * renderError
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>     *
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>     * @param field InputField
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>     * @param out PrintStream
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>     */</FONT>
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        ctx.getMessageRenderer().printMessage(<FONT CLASS="StringLiteral">"Not a valid selection"</FONT>);
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        renderOutput(field, reader, out);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>    <FONT CLASS="Private">private</FONT> String getNextInstructions() {
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        <FONT CLASS="Return">return</FONT> res.getString(<FONT CLASS="StringLiteral">"large_select_next"</FONT>);
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>    }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>}
+<FONT CLASS="LN">16</FONT><A NAME="116"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/LicensePageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/LicensePageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/LicensePageRenderer.java.html	(revision 14989)
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.LicensePageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LicensePageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">org.tp23.antinstaller.page.LicensePage</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LicensePageRenderer
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">AbstractTextPageRenderer</A> {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String nextChar = res.getString(<FONT CLASS="StringLiteral">"nextChar"</FONT>);
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> usePaging = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> LicensePageRenderer() {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> renderPage(<A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="If">if</FONT> (page <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">LicensePage</A>) {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>            <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">LicensePage</A> lPage = (<A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">LicensePage</A>) page;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            String strUsePaging = lPage.getUsePaging();
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            usePaging = strUsePaging!=<FONT CLASS="Null">null</FONT> &amp;&amp; isTrue(strUsePaging);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            <FONT CLASS="Return">return</FONT> renderLicensePage(lPage);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Wrong Renderer in LicensePageRenderer.renderPage"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> renderLicensePage(<A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">LicensePage</A> page) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            BufferedReader commandReader = reader;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            out.println();
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            out.println(res.getString(<FONT CLASS="StringLiteral">"clickViewLicense"</FONT>));
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            commandReader.readLine();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            String resource = page.getResource();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            InputStream licensein = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(resource);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            <FONT CLASS="If">if</FONT> (licensein == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"License resource '"</FONT> + resource + <FONT CLASS="StringLiteral">"' is missing from installer"</FONT>);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            BufferedReader reader = <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(licensein));
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            printHeader(page);
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            String lineread = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            StringBuffer sb = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="While">while</FONT> ( (lineread = reader.readLine()) != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>                sb.append(lineread);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                sb.append(<FONT CLASS="CharacerLiteral">'\n'</FONT>);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            <FONT CLASS="SingleLineComment">// as per FindBugs
+<FONT CLASS="LN">75</FONT><A NAME="75"></A></FONT>            reader.close();
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            String command = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            <A HREF="../../../../../org/tp23/antinstaller/renderer/text/Pager.java.html">Pager</A> pager = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/Pager.java.html">Pager</A>(sb.toString());
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="If">if</FONT> (usePaging) {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                <FONT CLASS="Do">do</FONT> {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>                    <FONT CLASS="If">if</FONT> (!pager.next(out)) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                        <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                    }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                    out.println();
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                    out.println(getNextInstructions());
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                    command = commandReader.readLine();
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>                }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                <FONT CLASS="While">while</FONT> (command.toUpperCase().startsWith(nextChar));
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                pager.rest(out);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                out.println(pager.getText());
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; PAGE_DECO_WIDTH; i++) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                out.print(<FONT CLASS="CharacerLiteral">'~'</FONT>);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            out.println();
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            out.println(res.getString(<FONT CLASS="StringLiteral">"licenseAccept"</FONT>));
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            command = commandReader.readLine();
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            command = command.trim();
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            <FONT CLASS="If">if</FONT> (isTrue(command)) {
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>                page.setAbort(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        }
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not able to read license file"</FONT>, ex);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    }
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    <FONT CLASS="Private">private</FONT> String getNextInstructions() {
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        <FONT CLASS="Return">return</FONT> res.getString(<FONT CLASS="StringLiteral">"license_next"</FONT>);
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>    }
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>}
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>
+<FONT CLASS="LN">20</FONT><A NAME="120"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/Pager.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/Pager.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/Pager.java.html	(revision 14989)
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.Pager (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Pager.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> *
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * &lt;p&gt;Used for the Text/Console input to show pages of text as opposed to displaying
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>* a long list of text that scrolls off the top of the page. &lt;/p&gt;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @author Paul Hinds
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @version $Id: Pager.java,v 1.2 2006/12/21 00:09:19 teknopaul Exp $
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> Pager {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Char">char</FONT>[] text;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> linesPerPage = <FONT CLASS="IntegerLiteral">20</FONT>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> charsPerLine = <FONT CLASS="IntegerLiteral">80</FONT>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> stringIndex = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> Pager(String text) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.text = text.toCharArray();
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> Pager(){
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> String getText() {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> String(text);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setText(String text) {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="This">this</FONT>.text = text.toCharArray();
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>     * Print the rest of the text
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>     */</FONT>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> rest(PrintStream out){
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="While">while</FONT>(next(out));
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>}
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>     * Print the next page
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     * @param out PrintStream
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>     * @return boolean true if there is more text
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>     */</FONT>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> next(PrintStream out){
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="Int">int</FONT> lineChars = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Int">int</FONT> lastSpace = -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="SingleLineComment">// loop past charaters, increment with lines
+<FONT CLASS="LN">65</FONT><A NAME="65"></A></FONT>        <FONT CLASS="Char">char</FONT>[] lineBuffer = <FONT CLASS="New">new</FONT> <FONT CLASS="Char">char</FONT>[charsPerLine+<FONT CLASS="IntegerLiteral">1</FONT>];
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> lines = <FONT CLASS="IntegerLiteral">0</FONT>; lines &lt; linesPerPage;) {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            <FONT CLASS="If">if</FONT>(stringIndex &gt;= text.length){
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            lineBuffer[lineChars] = text[stringIndex];
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            <FONT CLASS="If">if</FONT>(text[stringIndex] == <FONT CLASS="CharacerLiteral">' '</FONT>){
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                lastSpace = lineChars;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            <FONT CLASS="If">if</FONT>(text[stringIndex] == <FONT CLASS="CharacerLiteral">'\n'</FONT>){
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                String tmp = <FONT CLASS="New">new</FONT> String(lineBuffer, <FONT CLASS="IntegerLiteral">0</FONT>, lineChars + <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                out.print(tmp);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>                lines++;
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>                lineChars = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>                lastSpace = -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(lineChars == charsPerLine){
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                <FONT CLASS="SingleLineComment">// handle lines ending with the last full word
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></FONT>                <FONT CLASS="If">if</FONT>(lastSpace != -<FONT CLASS="IntegerLiteral">1</FONT>){
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                    out.println(<FONT CLASS="New">new</FONT> String(lineBuffer, <FONT CLASS="IntegerLiteral">0</FONT>, lastSpace));
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                    stringIndex = stringIndex - (charsPerLine - lastSpace);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>                <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                    out.println(<FONT CLASS="New">new</FONT> String(lineBuffer, <FONT CLASS="IntegerLiteral">0</FONT>, lineChars));
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>                lines++;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                lineChars = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                lastSpace = -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>                lineChars++;
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            stringIndex++;
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>}
+<FONT CLASS="LN">02</FONT><A NAME="102"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/PasswordTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/PasswordTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/PasswordTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.PasswordTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">PasswordTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">org.tp23.antinstaller.input.PasswordTextInput</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> PasswordTextInputRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java.html">ValidatedTextInputRenderer</A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> PasswordTextInputRenderer() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">PasswordTextInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">PasswordTextInput</A>) field;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        StringBuffer displayText = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        displayText.append(field.getDisplayText());
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        displayText.append(<FONT CLASS="StringLiteral">"   ["</FONT>);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        displayText.append(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        displayText.append(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        displayText.append(iField.getDefaultValue());
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        displayText.append(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        String input = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="If">if</FONT>(OutputField.isTrue(iField.getTextMask())){
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            input = <FONT CLASS="New">new</FONT> PasswordField().getPassword(displayText.toString());
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            System.out.print(<FONT CLASS="StringLiteral">"\r                                                      "</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            out.println(displayText.toString());
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            input = reader.readLine();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        out.println();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        out.println();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="If">if</FONT>(input == <FONT CLASS="Null">null</FONT> || input.equals(<FONT CLASS="StringLiteral">""</FONT>)){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            input = iField.getDefaultValue();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        iField.setInputResult(input);
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        out.println(getErrorMessage());
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        renderOutput(field, reader, out);
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort(){
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="Protected">protected</FONT> String getErrorMessage(){
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        <FONT CLASS="Return">return</FONT> res.getString(<FONT CLASS="StringLiteral">"notCorrectPasswordFormat"</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    <FONT CLASS="SingleLineComment">// shame this does not work
+<FONT CLASS="LN">81</FONT><A NAME="81"></A></FONT>    <FONT CLASS="SingleLineComment">// does any one know a way to not echo passwords?
+<FONT CLASS="LN">82</FONT><A NAME="82"></A></FONT><FONT CLASS="SingleLineComment">//  private String readInput(InputStreamReader reader, PrintStream out) throws IOException{
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></FONT><FONT CLASS="SingleLineComment">//      StringBuffer sb = new StringBuffer();
+<FONT CLASS="LN">84</FONT><A NAME="84"></A></FONT><FONT CLASS="SingleLineComment">//      char c = 0;
+<FONT CLASS="LN">85</FONT><A NAME="85"></A></FONT><FONT CLASS="SingleLineComment">//      while((c=(char)reader.read())!='\n'){
+<FONT CLASS="LN">86</FONT><A NAME="86"></A></FONT><FONT CLASS="SingleLineComment">//          if(c==8)sb.setLength(sb.length()-1);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A></FONT><FONT CLASS="SingleLineComment">//          sb.append(c);
+<FONT CLASS="LN">88</FONT><A NAME="88"></A></FONT><FONT CLASS="SingleLineComment">//          out.print((char)8);
+<FONT CLASS="LN">89</FONT><A NAME="89"></A></FONT><FONT CLASS="SingleLineComment">//          out.flush();
+<FONT CLASS="LN">90</FONT><A NAME="90"></A></FONT><FONT CLASS="SingleLineComment">//      }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A></FONT><FONT CLASS="SingleLineComment">//      return sb.toString();
+<FONT CLASS="LN">92</FONT><A NAME="92"></A></FONT><FONT CLASS="SingleLineComment">//  }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A></FONT>    
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    <FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>     * 
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>     * Taken from the SUN website
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>     * @author Paul Hinds
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>     * @version $Id: PasswordTextInputRenderer.java,v 1.4 2007/01/04 22:57:18 teknopaul Exp $
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>     */</FONT>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    <FONT CLASS="Class">class</FONT> MaskingThread <FONT CLASS="Extends">extends</FONT> Thread {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> stop = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> index;
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="Private">private</FONT> String prompt;
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        <FONT CLASS="Public">public</FONT> MaskingThread(String prompt) {
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>            <FONT CLASS="This">this</FONT>.prompt = prompt;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> run() {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            <FONT CLASS="While">while</FONT> (!stop) {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>                    <FONT CLASS="SingleLineComment">// attempt masking at this rate
+<FONT CLASS="LN">13</FONT><A NAME="113"></A></FONT>                    <FONT CLASS="This">this</FONT>.sleep(<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>                }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>                <FONT CLASS="Catch">catch</FONT> (InterruptedException iex) {
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>                    iex.printStackTrace();
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>                }
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>                <FONT CLASS="If">if</FONT> (!stop) {
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>                    System.out.print(<FONT CLASS="StringLiteral">"\r"</FONT> + prompt + <FONT CLASS="StringLiteral">" \r"</FONT> + prompt);
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>                }
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                System.out.flush();
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>            }
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        }
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> stopMasking() {
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>            <FONT CLASS="This">this</FONT>.stop = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>    
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> PasswordField {
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>         *@param prompt The prompt to display to the user.
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>         *@return The password as entered by the user.
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>         */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        String getPassword(String prompt) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            <FONT CLASS="SingleLineComment">// password holder
+<FONT CLASS="LN">38</FONT><A NAME="138"></A></FONT>            StringBuffer password = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            MaskingThread maskingthread = <FONT CLASS="New">new</FONT> MaskingThread(prompt);
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>            Thread thread = <FONT CLASS="New">new</FONT> Thread(maskingthread);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>            thread.start();
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>            <FONT CLASS="SingleLineComment">// block until enter is pressed
+<FONT CLASS="LN">43</FONT><A NAME="143"></A></FONT>            <FONT CLASS="While">while</FONT> (<FONT CLASS="True">true</FONT>) {
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>                <FONT CLASS="Char">char</FONT> c = (<FONT CLASS="Char">char</FONT>) System.in.read();
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>                <FONT CLASS="SingleLineComment">// assume enter pressed, stop masking
+<FONT CLASS="LN">46</FONT><A NAME="146"></A></FONT>                maskingthread.stopMasking();
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>                <FONT CLASS="If">if</FONT> (c == <FONT CLASS="CharacerLiteral">'\r'</FONT>) {
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>                    c = (<FONT CLASS="Char">char</FONT>) System.in.read();
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>                    <FONT CLASS="If">if</FONT> (c == <FONT CLASS="CharacerLiteral">'\n'</FONT>) {
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>                        <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>                    }
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>                    <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>                        <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>                    }
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>                }
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>                <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (c == <FONT CLASS="CharacerLiteral">'\n'</FONT>) {
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>                }
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>                <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>                    <FONT CLASS="SingleLineComment">// store the password
+<FONT CLASS="LN">61</FONT><A NAME="161"></A></FONT>                    password.append(c);
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>                }
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>            }
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>            <FONT CLASS="Return">return</FONT> password.toString();
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>}
+<FONT CLASS="LN">68</FONT><A NAME="168"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ProgressPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ProgressPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ProgressPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.ProgressPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ProgressPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">org.tp23.antinstaller.renderer.AntOutputRenderer</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ProgressPageRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">AbstractTextPageRenderer</A> <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A> {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    <FONT CLASS="Public">public</FONT> ProgressPageRenderer() {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    }
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>     * getErr
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>     *
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>     * @return PrintStream
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>     */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> PrintStream getErr() {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="Return">return</FONT> System.err;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>     * getOut
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>     *
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>     * @return PrintStream
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>     */</FONT>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> PrintStream getOut() {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="Return">return</FONT> System.out;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>     * renderPage
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>     *
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>     * @param page Page
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>     * @return boolean
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     */</FONT>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> renderPage(<A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            printHeader(page);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Can not print header"</FONT>);<FONT CLASS="SingleLineComment">// not very likely!!
+<FONT CLASS="LN">65</FONT><A NAME="65"></A></FONT>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>}
+<FONT CLASS="LN">69</FONT><A NAME="69"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/SelectInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/SelectInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/SelectInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.SelectInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SelectInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">org.tp23.antinstaller.input.SelectInput</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SelectInputRenderer
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> SelectInputRenderer() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput</A>) field;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        printText(iField,out);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        String input = reader.readLine();
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        out.println();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="If">if</FONT>(input == <FONT CLASS="Null">null</FONT> || input.equals(<FONT CLASS="StringLiteral">""</FONT>)){
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            input = iField.getDefaultValue();
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>                <FONT CLASS="Int">int</FONT> idx = Integer.parseInt(input.trim());
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>                input = iField.getOptions()[idx - <FONT CLASS="IntegerLiteral">1</FONT>].value;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            } <FONT CLASS="Catch">catch</FONT>(Exception numFormatOrIndexOutOfBounds){
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        iField.setInputResult(input);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort(){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> printText(<A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput</A> iField, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        out.println(iField.getDisplayText());
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput.Option</A>[] options = iField.getOptions();
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        out.print(<FONT CLASS="StringLiteral">"  "</FONT>);
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        out.println(res.getString(<FONT CLASS="StringLiteral">"enterNumber"</FONT>));
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; options.length; i++) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            out.print(<FONT CLASS="StringLiteral">"  "</FONT>);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            out.print(i+<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            out.print(<FONT CLASS="StringLiteral">") "</FONT>);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            out.print(options[i].getText());
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            <FONT CLASS="If">if</FONT>(iField.getDefaultValue().equals(options[i].value)){
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                out.print(<FONT CLASS="StringLiteral">" ["</FONT>);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                out.print(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                out.print(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            out.println();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>     * renderError
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>     *
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>     * @param field InputField
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>     * @param in InputStream
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>     * @param out PrintStream
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>     */</FONT>
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        ctx.getMessageRenderer().printMessage(<FONT CLASS="StringLiteral">"Not a valid selection"</FONT>);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        renderOutput(field, reader, out);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>}
+<FONT CLASS="LN">96</FONT><A NAME="96"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/SimpleInputPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/SimpleInputPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/SimpleInputPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.SimpleInputPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SimpleInputPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">org.tp23.antinstaller.page.SimpleInputPage</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/RendererFactory.java.html">org.tp23.antinstaller.renderer.RendererFactory</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SimpleInputPageRenderer
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">AbstractTextPageRenderer</A> {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> SimpleInputPageRenderer() {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> renderPage(<A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>{
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="If">if</FONT> (page <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>                <FONT CLASS="Return">return</FONT> renderSimpleInputPage( (<A HREF="../../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>) page);
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            <FONT CLASS="Catch">catch</FONT> (ClassNotFoundException ex) {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>                <FONT CLASS="SingleLineComment">// this would be a code error
+<FONT CLASS="LN">43</FONT><A NAME="43"></A></FONT>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Cant find acceptable TextField renderer in SimpleInputPageRenderer.renderPage:"</FONT> + ex.getMessage(),
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>                                           ex);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            <FONT CLASS="SingleLineComment">//this would be a code error
+<FONT CLASS="LN">49</FONT><A NAME="49"></A></FONT>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Wrong Renderer in SimpleInputPageRenderer.renderPage"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> renderSimpleInputPage(<A HREF="../../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A> page)
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>, ClassNotFoundException, <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            printHeader(page);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields = page.getOutputField();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            <FONT CLASS="Return">return</FONT> renderFields( getContext(), fields, reader, out );
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            <FONT CLASS="SingleLineComment">// If you cant write to the console there is not much you can do
+<FONT CLASS="LN">64</FONT><A NAME="64"></A></FONT>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"IOException"</FONT>,ex);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> renderFields( <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> context, <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields, BufferedReader reader, PrintStream out )
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            <FONT CLASS="Throws">throws</FONT> ClassNotFoundException, IOException, <A HREF="../../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A>, <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> f = <FONT CLASS="IntegerLiteral">0</FONT>; f &lt; fields.length; f++) {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            String text = fields[f].getExplanatoryText();
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            <FONT CLASS="If">if</FONT>(text != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                out.println(text);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                out.println();
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> frenderer = RendererFactory.getTextRenderer(fields[f]);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            frenderer.setContext( context );
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            frenderer.renderOutput(fields[f], reader, out);
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="If">if</FONT> (frenderer.isAbort()) {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            <FONT CLASS="While">while</FONT>(!fields[f].validate( context ) ){
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                frenderer.renderError(fields[f], reader, out);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            };
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>}
+<FONT CLASS="LN">92</FONT><A NAME="92"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/SplashPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/SplashPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/SplashPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.SplashPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SplashPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SplashPage.java.html">org.tp23.antinstaller.page.SplashPage</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SplashPageRenderer <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">AbstractTextPageRenderer</A> {
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Public">public</FONT> SplashPageRenderer() {
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    }
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> renderPage(<A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>        <FONT CLASS="If">if</FONT> (page <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SplashPage.java.html">SplashPage</A>) {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>            <A HREF="../../../../../org/tp23/antinstaller/page/SplashPage.java.html">SplashPage</A> sPage = (<A HREF="../../../../../org/tp23/antinstaller/page/SplashPage.java.html">SplashPage</A>) page;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>            <FONT CLASS="Return">return</FONT> renderSplashPage(sPage);
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        }
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Wrong Renderer in SplashPageRenderer.renderPage"</FONT>);
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        }
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> renderSplashPage(<A HREF="../../../../../org/tp23/antinstaller/page/SplashPage.java.html">SplashPage</A> page) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>            printHeader(page);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            out.println();
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            out.println(page.getAltText());
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>            reader.read();
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"IOException"</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>}
+<FONT CLASS="LN">50</FONT><A NAME="50"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TargetInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TargetInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TargetInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.TargetInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TargetInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">org.tp23.antinstaller.input.TargetInput</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TargetInputRenderer
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> TargetInputRenderer() {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    }
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A>) field;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        out.println(<FONT CLASS="StringLiteral">"Install the following component?"</FONT>);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        out.print(iField.getDisplayText());
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        out.print(<FONT CLASS="StringLiteral">"   ["</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        out.print(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        out.print(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        out.print(iField.getDefaultValue());
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        out.print(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="If">if</FONT> (InputField.isTrue(iField.getForce())) {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            out.print(<FONT CLASS="StringLiteral">"   ["</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            out.print(res.getString(<FONT CLASS="StringLiteral">"_required_"</FONT>));
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            out.println(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            ctx.getCurrentPage().addTarget(iField.getIdx(), iField.getTarget());
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            iField.setInputResult(<FONT CLASS="StringLiteral">"true"</FONT>);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            out.println();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        out.println();
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        String input = reader.readLine();
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        out.println();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="If">if</FONT> (input == <FONT CLASS="Null">null</FONT> || input.trim().equals(<FONT CLASS="StringLiteral">""</FONT>)){
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            input = iField.getDefaultValue();
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="If">if</FONT>(InputField.isTrue(input)){
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            ctx.getCurrentPage().addTarget(iField.getIdx(), iField.getTarget());
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            iField.setInputResult(<FONT CLASS="StringLiteral">"true"</FONT>);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            ctx.getCurrentPage().removeTarget(iField.getIdx());
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            iField.setInputResult(<FONT CLASS="StringLiteral">"false"</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort() {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>     * renderError
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>     *
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>     * @param field InputField
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>     * @param out PrintStream
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>     */</FONT>
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>}
+<FONT CLASS="LN">97</FONT><A NAME="97"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TargetSelectInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TargetSelectInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TargetSelectInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.TargetSelectInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TargetSelectInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds, Mark Anderson
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">org.tp23.antinstaller.input.TargetSelectInput</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * 
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author Paul Hinds, Mark Anderson
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id: TargetSelectInputRenderer.java,v 1.3 2007/01/09 22:41:40 teknopaul Exp $
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TargetSelectInputRenderer
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/SelectInputRenderer.java.html">SelectInputRenderer</A> {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> TargetSelectInputRenderer() {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A>) field;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        printText(iField,out);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        String input = reader.readLine();
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        out.println();
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="If">if</FONT>(input == <FONT CLASS="Null">null</FONT> || input.equals(<FONT CLASS="StringLiteral">""</FONT>))
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            input = iField.getDefaultValue();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            <FONT CLASS="Try">try</FONT>{
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>                <FONT CLASS="Int">int</FONT> idx = Integer.parseInt(input.trim());
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>                input = iField.getOptions()[idx - <FONT CLASS="IntegerLiteral">1</FONT>].value;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            } <FONT CLASS="Catch">catch</FONT>(Exception numFormatOrIndexOutOfBounds) {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        ctx.getCurrentPage().removeTarget(iField.getIdx());
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        ctx.getCurrentPage().addTarget(iField.getIdx(), input);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        iField.setInputResult(input);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> printText(<A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A> iField, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        out.println(iField.getDisplayText());
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput.Option</A>[] options = iField.getOptions();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        out.print(<FONT CLASS="StringLiteral">"  "</FONT>);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        out.println(res.getString(<FONT CLASS="StringLiteral">"enterNumber"</FONT>));
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; options.length; i++) {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            out.print(<FONT CLASS="StringLiteral">"  "</FONT>);
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            out.print(i+<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            out.print(<FONT CLASS="StringLiteral">") "</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            out.print(options[i].getText());
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="If">if</FONT>(iField.getDefaultValue().equals(options[i].value)){
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>                out.print(<FONT CLASS="StringLiteral">" ["</FONT>);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                out.print(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>                out.print(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            out.println();
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>    }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>}
+<FONT CLASS="LN">80</FONT><A NAME="80"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TextMessageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TextMessageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TextMessageRenderer.java.html	(revision 14989)
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.TextMessageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TextMessageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> *
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * &lt;p&gt;Render user messages to the console &lt;/p&gt;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @author Paul Hinds
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @version $Id: TextMessageRenderer.java,v 1.3 2007/01/09 22:41:40 teknopaul Exp $
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> */</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TextMessageRenderer
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> TextMessageRenderer() {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallerContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> printMessage(String message){
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        System.out.println(message);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> prompt(String message){
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            System.out.println(message);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <FONT CLASS="SingleLineComment">// FIXME need to read directly from InputStreamReader and stop at first \n or \r
+<FONT CLASS="LN">53</FONT><A NAME="53"></A></FONT>            <FONT CLASS="SingleLineComment">// test the following
+<FONT CLASS="LN">54</FONT><A NAME="54"></A></FONT><FONT CLASS="SingleLineComment">//          InputStreamReader isr = new InputStreamReader(System.in);           
+<FONT CLASS="LN">55</FONT><A NAME="55"></A></FONT><FONT CLASS="SingleLineComment">//          int intChar = -1;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A></FONT><FONT CLASS="SingleLineComment">//          StringBuffer sb = new StringBuffer();
+<FONT CLASS="LN">57</FONT><A NAME="57"></A></FONT><FONT CLASS="SingleLineComment">//          while((intChar = isr.read()) != -1 &amp;&amp; intChar != '\n' &amp;&amp; intChar != '\r'){
+<FONT CLASS="LN">58</FONT><A NAME="58"></A></FONT><FONT CLASS="SingleLineComment">//              sb.append((char)intChar);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A></FONT><FONT CLASS="SingleLineComment">//          }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A></FONT><FONT CLASS="SingleLineComment">//          String line = sb.toString();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A></FONT>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            BufferedReader reader = <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(System.in));
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            String line = reader.readLine();
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            <FONT CLASS="If">if</FONT> (line != <FONT CLASS="Null">null</FONT> &amp;&amp; !line.equals(<FONT CLASS="StringLiteral">""</FONT>) &amp;&amp; line.trim().length() &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>                <FONT CLASS="Return">return</FONT> Character.toUpperCase(line.trim().charAt(<FONT CLASS="IntegerLiteral">0</FONT>)) == <FONT CLASS="CharacerLiteral">'Y'</FONT> ||
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                    Character.toUpperCase(line.trim().charAt(<FONT CLASS="IntegerLiteral">0</FONT>)) == <FONT CLASS="CharacerLiteral">'T'</FONT> ;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> RuntimeException(<FONT CLASS="StringLiteral">"IOException"</FONT>, ex);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>}
+<FONT CLASS="LN">75</FONT><A NAME="75"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html	(revision 14989)
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.TextOutputFieldRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TextOutputFieldRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> *
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * &lt;p&gt;Renders text OutputFields, TextOutputFieldRenderer should provide a no args constructor. &lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * &lt;p&gt;The package name for TextOutputFieldRenderer is critical&lt;/p&gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * BufferedInputStream is used for input to prevent new Buffered reader swallowing more input from the
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * input stream than is strictly required
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * @author Paul Hinds
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> * @version $Id: TextOutputFieldRenderer.java,v 1.4 2006/12/21 00:03:01 teknopaul Exp $
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> */</FONT>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> TextOutputFieldRenderer {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>, IOException;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>     * Called when validation fails
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>     * @param field InputField
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>     * @param in InputStream
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * @param out PrintStream
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     * @throws IOException
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     */</FONT>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="FormalComment">/** fields have abort for text since each field has its own input line*/</FONT>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>}
+<FONT CLASS="LN">54</FONT><A NAME="54"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TextPageRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TextPageRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/TextPageRenderer.java.html	(revision 14989)
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.TextPageRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TextPageRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/TextPage.java.html">org.tp23.antinstaller.page.TextPage</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TextPageRenderer
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">AbstractTextPageRenderer</A> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String nextChar = res.getString(<FONT CLASS="StringLiteral">"nextChar"</FONT>);
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> TextPageRenderer() {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    }
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> renderPage(<A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="If">if</FONT> (page <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/TextPage.java.html">TextPage</A>) {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            <A HREF="../../../../../org/tp23/antinstaller/page/TextPage.java.html">TextPage</A> lPage = (<A HREF="../../../../../org/tp23/antinstaller/page/TextPage.java.html">TextPage</A>) page;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            <FONT CLASS="Return">return</FONT> renderTextPage(lPage);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Wrong Renderer in TextPageRenderer.renderPage"</FONT>);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> renderTextPage(<A HREF="../../../../../org/tp23/antinstaller/page/TextPage.java.html">TextPage</A> page) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            BufferedReader commandReader = reader;<FONT CLASS="SingleLineComment">//new BufferedReader(new InputStreamReader(in));
+<FONT CLASS="LN">51</FONT><A NAME="51"></A></FONT>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            String resource = page.getTextResource();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            InputStream textin = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(resource);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            BufferedReader reader = <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(textin));
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            printHeader(page);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            String lineread = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            StringBuffer sb = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            <FONT CLASS="While">while</FONT> ( (lineread = reader.readLine()) != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>                sb.append(lineread);
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>                sb.append(<FONT CLASS="CharacerLiteral">'\n'</FONT>);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            <FONT CLASS="SingleLineComment">// as per FindBugs
+<FONT CLASS="LN">64</FONT><A NAME="64"></A></FONT>            reader.close();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            <FONT CLASS="SingleLineComment">// parse property references
+<FONT CLASS="LN">67</FONT><A NAME="67"></A></FONT>            String parsedText = getContext().getInstaller().getResultContainer().getDefaultValue(sb.toString());
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            String command = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <A HREF="../../../../../org/tp23/antinstaller/renderer/text/Pager.java.html">Pager</A> pager = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/Pager.java.html">Pager</A>(parsedText);
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            <FONT CLASS="Do">do</FONT> {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                <FONT CLASS="If">if</FONT> (!pager.next(out)) {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                out.println();
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                out.println(getNextInstructions());
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>                command = commandReader.readLine();
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="While">while</FONT> (command.toUpperCase().startsWith(nextChar));
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            pager.rest(out);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; PAGE_DECO_WIDTH; i++) {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                out.print(<FONT CLASS="CharacerLiteral">'~'</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            out.println();
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            out.println(res.getString(<FONT CLASS="StringLiteral">"clickViewText"</FONT>));
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            commandReader.readLine();
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not able to read text file"</FONT>, ex);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    <FONT CLASS="Private">private</FONT> String getNextInstructions() {
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="Return">return</FONT> res.getString(<FONT CLASS="StringLiteral">"license_next"</FONT>);
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>}
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/UnvalidatedTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/UnvalidatedTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/UnvalidatedTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.UnvalidatedTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">UnvalidatedTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/UnvalidatedTextInput.java.html">org.tp23.antinstaller.input.UnvalidatedTextInput</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> UnvalidatedTextInputRenderer
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> UnvalidatedTextInputRenderer() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/UnvalidatedTextInput.java.html">UnvalidatedTextInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/UnvalidatedTextInput.java.html">UnvalidatedTextInput</A>) field;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        out.print(field.getDisplayText());
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        out.print(<FONT CLASS="StringLiteral">"   ["</FONT>);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        out.print(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        out.print(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        out.print(iField.getDefaultValue());
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        out.print(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="SingleLineComment">//BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+<FONT CLASS="LN">53</FONT><A NAME="53"></A></FONT>        out.println();
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        String input = reader.readLine();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        out.println();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="If">if</FONT>(input==<FONT CLASS="Null">null</FONT> || input.equals(<FONT CLASS="StringLiteral">""</FONT>))input=iField.getDefaultValue();
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        iField.setInputResult(input);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort(){
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     * renderError
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     *
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>     * @param field InputField
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>     * @param in InputStream
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>     * @param out PrintStream
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>     */</FONT>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>}
+<FONT CLASS="LN">75</FONT><A NAME="75"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/renderer/text/ValidatedTextInputRenderer.java.html	(revision 14989)
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.renderer.text.ValidatedTextInputRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ValidatedTextInputRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.renderer.text.index.html" target="packageFrame">org.tp23.antinstaller.renderer.text</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ValidatedTextInput.java.html">org.tp23.antinstaller.input.ValidatedTextInput</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ValidatedTextInputRenderer
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/text/TextOutputFieldRenderer.java.html">TextOutputFieldRenderer</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> ValidatedTextInputRenderer() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setContext(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderOutput(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/ValidatedTextInput.java.html">ValidatedTextInput</A> iField = (<A HREF="../../../../../org/tp23/antinstaller/input/ValidatedTextInput.java.html">ValidatedTextInput</A>) field;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        out.print(field.getDisplayText());
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        out.print(<FONT CLASS="StringLiteral">"   ["</FONT>);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        out.print(res.getString(<FONT CLASS="StringLiteral">"_default_"</FONT>));
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        out.print(<FONT CLASS="StringLiteral">":"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        out.print(iField.getDefaultValue());
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        out.println(<FONT CLASS="StringLiteral">"]"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="SingleLineComment">//BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+<FONT CLASS="LN">53</FONT><A NAME="53"></A></FONT>        String input = reader.readLine();
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        out.println();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="If">if</FONT>(input==<FONT CLASS="Null">null</FONT> || input.equals(<FONT CLASS="StringLiteral">""</FONT>))input=iField.getDefaultValue();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        iField.setInputResult(input);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderError(<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field, BufferedReader reader, PrintStream out) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="SingleLineComment">//ValidatedTextInput iField = (ValidatedTextInput) field;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A></FONT>        out.println(<FONT CLASS="StringLiteral">"The input is not of the correct format"</FONT>);
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        renderOutput(field, reader, out);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isAbort(){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>}
+<FONT CLASS="LN">67</FONT><A NAME="67"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/AntRunner.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/AntRunner.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/AntRunner.java.html	(revision 14989)
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.AntRunner (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AntRunner.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/RuntimeLauncher.java.html">org.tp23.antinstaller.antmod.RuntimeLauncher</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * Abstract Runner superclass that handles the runPost(page) to execute
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * ant tasks mid display.
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author teknopaul
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> */</FONT>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Class">class</FONT> AntRunner <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/Runner.java.html">Runner</A>{
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/RuntimeLauncher.java.html">RuntimeLauncher</A> launcher = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> AntRunner(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> runPost(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page){
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        String postTarget = page.getPostDisplayTarget();
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="If">if</FONT>(postTarget != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            <FONT CLASS="If">if</FONT>(launcher == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>                prepareLauncher();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>            launcher.updateProps();
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>            launcher.run(postTarget);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * This should never get run if there are no postTargets
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     *
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     */</FONT>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> prepareLauncher(){
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        launcher = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/RuntimeLauncher.java.html">RuntimeLauncher</A>(ctx);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        launcher.parseProject();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>}
+<FONT CLASS="LN">55</FONT><A NAME="55"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/AutoSwingRunner.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/AutoSwingRunner.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/AutoSwingRunner.java.html	(revision 14989)
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.AutoSwingRunner (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AutoSwingRunner.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">org.tp23.antinstaller.renderer.swing.SwingPageRenderer</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * Swing runner that starts with the last page bypassing all the other pages.
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * This will be used during auto builds where the properties are already known.
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @author teknopaul
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> *
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AutoSwingRunner <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/SwingRunner.java.html">SwingRunner</A> {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> AutoSwingRunner(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <FONT CLASS="Super">super</FONT>(ctx);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> showFirstPage() <FONT CLASS="Throws">throws</FONT> Exception {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages = installer.getPages();
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="SingleLineComment">// run all postDisplayTargets as if the pages were shown
+<FONT CLASS="LN">37</FONT><A NAME="37"></A></FONT>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>            <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page = pages[i];
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            <FONT CLASS="If">if</FONT>(page.getPostDisplayTarget() != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>                <FONT CLASS="If">if</FONT>( ifHelper.ifProperty(page) &amp;&amp; 
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>                    ifHelper.ifTarget(page, ctx.getInstaller().getPages()) ){ <FONT CLASS="SingleLineComment">// page would have been shown
+<FONT CLASS="LN">42</FONT><A NAME="42"></A></FONT>                    runPost(page);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>                }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="SingleLineComment">// shows the LAST page directly which should be the Progress page
+<FONT CLASS="LN">48</FONT><A NAME="48"></A></FONT>        ctx.setCurrentPage(pages[pages.length - <FONT CLASS="IntegerLiteral">1</FONT>]);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        List pageRenderers = getPageRenderers();
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        renderNext((<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>)pageRenderers.get(pageRenderers.size() - <FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>}
+<FONT CLASS="LN">54</FONT><A NAME="54"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/AutoTextRunner.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/AutoTextRunner.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/AutoTextRunner.java.html	(revision 14989)
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.AutoTextRunner (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AutoTextRunner.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AutoTextRunner <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/TextRunner.java.html">TextRunner</A> {
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Public">public</FONT> AutoTextRunner(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>        <FONT CLASS="Super">super</FONT>(ctx);
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> runInstaller() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages = installer.getPages();
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <FONT CLASS="SingleLineComment">// run all postDisplayTargets as if the pages were shown
+<FONT CLASS="LN">33</FONT><A NAME="33"></A></FONT>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>            <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page = pages[i];
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>            <FONT CLASS="If">if</FONT>(page.getPostDisplayTarget() != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>                <FONT CLASS="If">if</FONT>( ifHelper.ifProperty(page) &amp;&amp; 
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>                    ifHelper.ifTarget(page, ctx.getInstaller().getPages()) ) { <FONT CLASS="SingleLineComment">// page would have been shown
+<FONT CLASS="LN">38</FONT><A NAME="38"></A></FONT>                    runPost(page);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>                }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>}
+<FONT CLASS="LN">46</FONT><A NAME="46"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/ConfigurationException.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/ConfigurationException.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/ConfigurationException.java.html	(revision 14989)
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.ConfigurationException (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ConfigurationException.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * &lt;p&gt;A Runtime exception that implies the config file is wrong.&lt;/p&gt;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> */</FONT>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ConfigurationException
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Public">public</FONT> ConfigurationException() {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> ConfigurationException(String message) {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="Super">super</FONT>(message);
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> ConfigurationException(String message, Throwable cause) {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="Super">super</FONT>(message, cause);
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    }
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>}
+<FONT CLASS="LN">39</FONT><A NAME="39"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/ConfigurationLoader.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/ConfigurationLoader.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/ConfigurationLoader.java.html	(revision 14989)
@@ -0,0 +1,373 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.ConfigurationLoader (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ConfigurationLoader.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.HashSet;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.Set;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">org.tp23.antinstaller.Installer</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/PropertiesFileRenderer.java.html">org.tp23.antinstaller.PropertiesFileRenderer</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/ConditionalField.java.html">org.tp23.antinstaller.input.ConditionalField</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/ResultContainer.java.html">org.tp23.antinstaller.input.ResultContainer</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/SelectInput.java.html">org.tp23.antinstaller.input.SelectInput</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/TargetInput.java.html">org.tp23.antinstaller.input.TargetInput</A>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">org.tp23.antinstaller.input.TargetSelectInput</A>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/ProgressPage.java.html">org.tp23.antinstaller.page.ProgressPage</A>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">org.tp23.antinstaller.page.SimpleInputPage</A>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html">org.tp23.antinstaller.renderer.swing.plaf.LookAndFeelFactory</A>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java.html">org.tp23.antinstaller.runtime.exe.LoadConfigFilter</A>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/PropertyLoaderFilter.java.html">org.tp23.antinstaller.runtime.exe.PropertyLoaderFilter</A>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java.html">org.tp23.antinstaller.runtime.logic.ExpressionBuilder</A>;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> *
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * &lt;p&gt;Loads the configuration file into memory as an Installer object. &lt;/p&gt;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * &lt;p&gt;This class also contains the main() method to check the config files for common errors &lt;/p&gt;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> * @todo this should be an interface not a class
+<FONT CLASS="LN">49</FONT><A NAME="49"></A> * @author Paul Hinds
+<FONT CLASS="LN">50</FONT><A NAME="50"></A> * @version $Id: ConfigurationLoader.java,v 1.15 2007/01/28 08:44:43 teknopaul Exp $
+<FONT CLASS="LN">51</FONT><A NAME="51"></A> */</FONT>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ConfigurationLoader <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java.html">LoadConfigFilter</A>{
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>     * Command line config checker
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>     * @param args String[]
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>     * @throws InstallException 
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     */</FONT>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> main(String[] args) {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationLoader.java.html">ConfigurationLoader</A> configurationLoader = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationLoader.java.html">ConfigurationLoader</A>();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        String configFile = INSTALLER_CONFIG_FILE;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="If">if</FONT>(args.length &gt; <FONT CLASS="IntegerLiteral">1</FONT> &amp;&amp; args[<FONT CLASS="IntegerLiteral">1</FONT>].endsWith(<FONT CLASS="StringLiteral">".xml"</FONT>)){
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            configFile = args[<FONT CLASS="IntegerLiteral">1</FONT>];
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <FONT CLASS="Int">int</FONT> ret = <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            configurationLoader.readConfig(<FONT CLASS="New">new</FONT> File(args[<FONT CLASS="IntegerLiteral">0</FONT>]), configFile);
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            ret = configurationLoader.validate();
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="If">if</FONT>(ret &gt; <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>                System.out.println(<FONT CLASS="StringLiteral">"VALIDATION FAILED"</FONT>);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> ex) {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            ex.printStackTrace();
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            System.exit(ret);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            ex.printStackTrace();
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            System.exit(ret);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        } <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> ex) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="SingleLineComment">// probably ifProperty syntax wrong
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></FONT>            ex.printStackTrace();
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            System.exit(ret);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>     * This method is not valid until super.readConfig() has been run
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>     * @return
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>     */</FONT>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> getInstaller(){
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        <FONT CLASS="Return">return</FONT> installer;
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> validate() <FONT CLASS="Throws">throws</FONT> IOException, <A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>, <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>{
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages = installer.getPages();
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="Boolean">boolean</FONT> foundErrors = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        Set pageNames = <FONT CLASS="New">new</FONT> HashSet();
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        Set targets = <FONT CLASS="New">new</FONT> HashSet();
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        Set propertyNames = <FONT CLASS="New">new</FONT> HashSet();
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        Set pagePropertyNames = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <FONT CLASS="If">if</FONT>(validateInstallerAttributes()){
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> p = <FONT CLASS="IntegerLiteral">0</FONT>; p &lt; pages.length; p++) {
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>           System.out.println(<FONT CLASS="StringLiteral">"Checking page: "</FONT> + pages[p].getName() );
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            <FONT CLASS="If">if</FONT>(pageNames.contains(pages[p].getName())){
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                System.out.println(<FONT CLASS="StringLiteral">"Error: page name '"</FONT>
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>                                    + pages[p].getName()
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>                                    + <FONT CLASS="StringLiteral">"' repeated - auto loading of configuration will fail"</FONT>);
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>                foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            pageNames.add(pages[p].getName());
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>            
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>            <FONT CLASS="SingleLineComment">//TODO check page requirements
+<FONT CLASS="LN">19</FONT><A NAME="119"></A></FONT>            <FONT CLASS="SingleLineComment">//test ifProperty syntax
+<FONT CLASS="LN">20</FONT><A NAME="120"></A></FONT>            <FONT CLASS="SingleLineComment">// TODO passes validation even if nothing will evaluate
+<FONT CLASS="LN">21</FONT><A NAME="121"></A></FONT>            <FONT CLASS="If">if</FONT> (pages[p] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>) {
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A> sPage = (<A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>)pages[p];
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>                <FONT CLASS="If">if</FONT>(sPage.getIfProperty() != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>                    <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>                        <A HREF="../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> mock = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A>();
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>                        ExpressionBuilder.parseLogicalExpressions( mock,
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>                                sPage.getIfProperty() );
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>                    }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>                    <FONT CLASS="Catch">catch</FONT>( <A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> configExc ){
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                        System.out.println(<FONT CLASS="StringLiteral">"Error: loading ifProperty,"</FONT> + sPage.getIfProperty() + <FONT CLASS="StringLiteral">" ,page: "</FONT> + pages[p].getName() );
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                        foundErrors = <FONT CLASS="True">true</FONT>;   
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>                    }
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>                }
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            pagePropertyNames = <FONT CLASS="New">new</FONT> HashSet();
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>            
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields = pages[p].getOutputField();
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> f = <FONT CLASS="IntegerLiteral">0</FONT>; f &lt; fields.length; f++) {
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>                <FONT CLASS="If">if</FONT>(!fields[f].validateObject()){
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>                    foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>                    System.out.println(<FONT CLASS="StringLiteral">"Error in page:"</FONT> + pages[p].getName());
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>                }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>                <FONT CLASS="If">if</FONT>(fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A>){
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>                    <A HREF="../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A> tgtInput = (<A HREF="../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A>)fields[f];
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>                    targets.add(tgtInput.getTarget());
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>                }
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>                <FONT CLASS="If">if</FONT>(fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A> &amp;&amp; !(fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A>) ){
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>                    <A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A> genericInput = (<A HREF="../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>)fields[f];
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>                    <FONT CLASS="If">if</FONT>(genericInput.getProperty().endsWith(PropertiesFileRenderer.TARGETS_SUFFIX)){
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>                        System.out.println(<FONT CLASS="StringLiteral">"Error: invalid property name:"</FONT> + genericInput.getProperty());
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>                        System.out.println(<FONT CLASS="StringLiteral">"InputField names must not end with -targets"</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>                    }
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>                    String propertyName = genericInput.getProperty();
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>                    <FONT CLASS="SingleLineComment">//System.out.println("Checking page.property: " + pages[p].getName() + "," + propertyName );
+<FONT CLASS="LN">57</FONT><A NAME="157"></A></FONT>                    <FONT CLASS="If">if</FONT>(propertyNames.contains(propertyName)){
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>                        <FONT CLASS="SingleLineComment">//foundErrors = true;
+<FONT CLASS="LN">59</FONT><A NAME="159"></A></FONT>                        System.out.println(<FONT CLASS="StringLiteral">"Repeated property name:"</FONT>  + propertyName);
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>                        System.out.println(<FONT CLASS="StringLiteral">"Loading defaults from file will probably not work:"</FONT>  + propertyName);
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>                    }
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>                    <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>                        propertyNames.add(propertyName);
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>                    }
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>                    <FONT CLASS="SingleLineComment">// repeated properties on the same page are an error always
+<FONT CLASS="LN">66</FONT><A NAME="166"></A></FONT>                    <FONT CLASS="If">if</FONT>(pagePropertyNames.contains(propertyName)){
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>                        foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>                        System.out.println(<FONT CLASS="StringLiteral">"Repeated property name: page="</FONT> + 
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>                                pages[p].getName() + <FONT CLASS="StringLiteral">", property="</FONT> + propertyName);
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>                    }
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>                    <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>                        pagePropertyNames.add(propertyName);
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>                    }
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>                    
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>                }
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>            }
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>            
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>        }
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>        System.out.println(<FONT CLASS="StringLiteral">"Finished checking config inputs"</FONT>);
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>        <FONT CLASS="SingleLineComment">// check page structure
+<FONT CLASS="LN">81</FONT><A NAME="181"></A></FONT>        <FONT CLASS="If">if</FONT>(!(pages[pages.length-<FONT CLASS="IntegerLiteral">1</FONT>] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/page/ProgressPage.java.html">ProgressPage</A>)){
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>            foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>            System.out.println(<FONT CLASS="StringLiteral">"Last Page should be a progress page"</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>        }
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>            <FONT CLASS="If">if</FONT> (pages[pages.length-<FONT CLASS="IntegerLiteral">1</FONT>].getPostDisplayTarget() != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>                foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>                System.out.println(<FONT CLASS="StringLiteral">"Progress pages do not support postDisplayTarget"</FONT>);
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>            }
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>        }
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>        <FONT CLASS="SingleLineComment">// check for targets
+<FONT CLASS="LN">92</FONT><A NAME="192"></A></FONT>        <FONT CLASS="Int">int</FONT> numOfPageTargets = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> p = <FONT CLASS="IntegerLiteral">0</FONT>; p &lt; pages.length; p++) {
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>            numOfPageTargets += pages[p].getAllTargets().size();
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>        }
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>        <FONT CLASS="If">if</FONT>(numOfPageTargets == <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>            System.out.println(<FONT CLASS="StringLiteral">"Warning: No Page Targets (not a problem if there are target input types)"</FONT>);
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>        }
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>        
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>        Iterator iter = targets.iterator();
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>        <FONT CLASS="While">while</FONT> (iter.hasNext()) {
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>            String tgt = (String) iter.next();
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>            <FONT CLASS="If">if</FONT>(tgt.endsWith(PropertiesFileRenderer.TARGETS_SUFFIX)){
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>                System.out.println(<FONT CLASS="StringLiteral">"Error: invalid target name:"</FONT> + tgt);
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>                System.out.println(<FONT CLASS="StringLiteral">"Target names must not end with -targets"</FONT>);
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>                foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>            }
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>        }
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>        <FONT CLASS="SingleLineComment">//@todo check targets exist in build.xml remember OSSpecific could be tricky to validate
+<FONT CLASS="LN">11</FONT><A NAME="211"></A></FONT>        
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>        <FONT CLASS="Int">int</FONT> numOfTargetInputs = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>        <FONT CLASS="SingleLineComment">// check ifTargets
+<FONT CLASS="LN">14</FONT><A NAME="214"></A></FONT>        ArrayList targetsSoFar = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> p = <FONT CLASS="IntegerLiteral">0</FONT>; p &lt; pages.length; p++) {
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>            <FONT CLASS="If">if</FONT>(pages[p] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>){
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>                <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A> simple = (<A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>)pages[p];
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>                String ifTarget = simple.getIfTarget();
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>                <FONT CLASS="If">if</FONT>(ifTarget != <FONT CLASS="Null">null</FONT> &amp;&amp; !targetsSoFar.contains(ifTarget)){
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>                    System.out.println(<FONT CLASS="StringLiteral">"ifTarget="</FONT> + ifTarget);
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>                    System.out.println(<FONT CLASS="StringLiteral">"ifTarget will never test true, no prior target in page:"</FONT>+pages[p].getName());
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>                    <FONT CLASS="SingleLineComment">// disabled due to bug 1412658 could be reinstated with proper test and OSSpecific handling 
+<FONT CLASS="LN">23</FONT><A NAME="223"></A></FONT>                    <FONT CLASS="SingleLineComment">//foundErrors = true;
+<FONT CLASS="LN">24</FONT><A NAME="224"></A></FONT>                }
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>            }
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>            <FONT CLASS="SingleLineComment">// add after to ensure testing previous pages
+<FONT CLASS="LN">27</FONT><A NAME="227"></A></FONT>            targetsSoFar.addAll(pages[p].getAllTargets());
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>            <A HREF="../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields = pages[p].getOutputField();
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> f = <FONT CLASS="IntegerLiteral">0</FONT>; f &lt; fields.length; f++) {
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>                <FONT CLASS="If">if</FONT>(fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A>){
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>                    <FONT CLASS="If">if</FONT>(numOfTargetInputs == <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>                        System.out.println(<FONT CLASS="StringLiteral">"Found target input type"</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>                    }
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>                    numOfTargetInputs++;
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>                    <A HREF="../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A> ti = (<A HREF="../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A>)fields[f];
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>                    targetsSoFar.add(ti.getTarget());
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>                }
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>                <FONT CLASS="If">if</FONT>(fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A>){
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>                    <FONT CLASS="If">if</FONT>(numOfTargetInputs == <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>                        System.out.println(<FONT CLASS="StringLiteral">"Found target input type"</FONT>);
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>                    }
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>                    numOfTargetInputs++;
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>                    <A HREF="../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A> ti = (<A HREF="../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A>)fields[f];
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>                    <A HREF="../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput.Option</A>[] options = ti.getOptions();
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>                    <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; options.length; i++) {
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>                        <A HREF="../../../../org/tp23/antinstaller/input/SelectInput.java.html">SelectInput.Option</A> option = options[i];
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>                        targetsSoFar.add(option.value);
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>                    }
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>                }
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>            }
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>        }
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>        <FONT CLASS="If">if</FONT>(numOfPageTargets == <FONT CLASS="IntegerLiteral">0</FONT> &amp;&amp; numOfTargetInputs == <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>            System.out.println(<FONT CLASS="StringLiteral">"Warning: No targets found, installer may do nothing."</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="255"></A><FONT CLASS="SingleLineComment">//      if(targetsSoFar.contains("default")){
+<FONT CLASS="LN">56</FONT><A NAME="256"></A></FONT><FONT CLASS="SingleLineComment">//          System.out.println("Target:target can not be \"default\"");
+<FONT CLASS="LN">57</FONT><A NAME="257"></A></FONT><FONT CLASS="SingleLineComment">//          foundErrors = true;
+<FONT CLASS="LN">58</FONT><A NAME="258"></A></FONT><FONT CLASS="SingleLineComment">//      }
+<FONT CLASS="LN">59</FONT><A NAME="259"></A></FONT>
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>        System.out.println(<FONT CLASS="StringLiteral">"Finished checking config"</FONT>);
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>        <FONT CLASS="If">if</FONT>(!foundErrors){
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>        }
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> validateInstallerAttributes(){
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>        
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>        System.out.println(<FONT CLASS="StringLiteral">"Checking installer: "</FONT> + installer.getName() );
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>        <FONT CLASS="Boolean">boolean</FONT> foundErrors = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>        
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>        String[] validBooleanValues = {<FONT CLASS="StringLiteral">"true"</FONT>, <FONT CLASS="StringLiteral">"false"</FONT>};
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>        foundErrors |= validateValue(<FONT CLASS="StringLiteral">"antialiased"</FONT>, installer.getAntialiased(), <FONT CLASS="True">true</FONT>, validBooleanValues);
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>        <FONT CLASS="SingleLineComment">// done in DTD
+<FONT CLASS="LN">77</FONT><A NAME="277"></A></FONT>        <FONT CLASS="SingleLineComment">//foundErrors |= validateValue("verbose", installer.isVerbose(), true, validBooleanValues);
+<FONT CLASS="LN">78</FONT><A NAME="278"></A></FONT>        <FONT CLASS="SingleLineComment">//foundErrors |= validateValue("debug", installer.isDebug(), true, validBooleanValues);
+<FONT CLASS="LN">79</FONT><A NAME="279"></A></FONT>        
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>        String[] validLAFValues = {LookAndFeelFactory.DEFAULT_LAF,
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>                LookAndFeelFactory.GREYMETAL_LAF,
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>                LookAndFeelFactory.NATIVE_LAF,
+<FONT CLASS="LN">83</FONT><A NAME="283"></A>                LookAndFeelFactory.JGOODIES_LAF,
+<FONT CLASS="LN">84</FONT><A NAME="284"></A>                LookAndFeelFactory.NULL_LAF };
+<FONT CLASS="LN">85</FONT><A NAME="285"></A>        <FONT CLASS="If">if</FONT>( validateValue(<FONT CLASS="StringLiteral">"lookAndFeel"</FONT>, installer.getLookAndFeel(), <FONT CLASS="True">true</FONT>, validLAFValues) ){
+<FONT CLASS="LN">86</FONT><A NAME="286"></A>            System.out.println(<FONT CLASS="StringLiteral">"Warning: non standard LookAndFeel ensure the correct classes are on the classpath at runtime:"</FONT> + installer.getLookAndFeel());
+<FONT CLASS="LN">87</FONT><A NAME="287"></A>        }
+<FONT CLASS="LN">88</FONT><A NAME="288"></A>        
+<FONT CLASS="LN">89</FONT><A NAME="289"></A>        <FONT CLASS="If">if</FONT> (installer.getName() == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">90</FONT><A NAME="290"></A>            System.out.println(<FONT CLASS="StringLiteral">"Error: installer element attribute does not exist: name"</FONT>);
+<FONT CLASS="LN">91</FONT><A NAME="291"></A>            foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">92</FONT><A NAME="292"></A>        }
+<FONT CLASS="LN">93</FONT><A NAME="293"></A>        
+<FONT CLASS="LN">94</FONT><A NAME="294"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">95</FONT><A NAME="295"></A>            String wide = installer.getWide();
+<FONT CLASS="LN">96</FONT><A NAME="296"></A>            <FONT CLASS="If">if</FONT>(wide != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">97</FONT><A NAME="297"></A>                installer.parseWideValue(wide);
+<FONT CLASS="LN">98</FONT><A NAME="298"></A>            }
+<FONT CLASS="LN">99</FONT><A NAME="299"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">00</FONT><A NAME="300"></A>            System.out.println(<FONT CLASS="StringLiteral">"Error: installer element attribute incorrect format (e.g. 600:275): wide"</FONT>);
+<FONT CLASS="LN">01</FONT><A NAME="301"></A>            foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">02</FONT><A NAME="302"></A>        }
+<FONT CLASS="LN">03</FONT><A NAME="303"></A>        
+<FONT CLASS="LN">04</FONT><A NAME="304"></A>        String[] validLoadDefaultValues = {PropertyLoaderFilter.FALSE,
+<FONT CLASS="LN">05</FONT><A NAME="305"></A>                PropertyLoaderFilter.LOAD,
+<FONT CLASS="LN">06</FONT><A NAME="306"></A>                PropertyLoaderFilter.PROMPT, 
+<FONT CLASS="LN">07</FONT><A NAME="307"></A>                PropertyLoaderFilter.PROMPT_AUTO};
+<FONT CLASS="LN">08</FONT><A NAME="308"></A>        
+<FONT CLASS="LN">09</FONT><A NAME="309"></A>        <FONT CLASS="Boolean">boolean</FONT> loadDefaultsNull = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">10</FONT><A NAME="310"></A>        <FONT CLASS="If">if</FONT>( installer.supportsAutoBuild() ){
+<FONT CLASS="LN">11</FONT><A NAME="311"></A>            loadDefaultsNull = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">12</FONT><A NAME="312"></A>        }
+<FONT CLASS="LN">13</FONT><A NAME="313"></A>        foundErrors |= validateValue(<FONT CLASS="StringLiteral">"loadDefaults"</FONT>, installer.getLoadDefaults(), loadDefaultsNull, validLoadDefaultValues);
+<FONT CLASS="LN">14</FONT><A NAME="314"></A>
+<FONT CLASS="LN">15</FONT><A NAME="315"></A>        <A HREF="../../../../org/tp23/antinstaller/runtime/VersionHelper.java.html">VersionHelper</A> vHelper = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/VersionHelper.java.html">VersionHelper</A>();
+<FONT CLASS="LN">16</FONT><A NAME="316"></A>        <FONT CLASS="If">if</FONT>( installer.supportsAutoBuild() ){
+<FONT CLASS="LN">17</FONT><A NAME="317"></A>            <FONT CLASS="If">if</FONT>( ! vHelper.isValid(installer.getVersion()) ){
+<FONT CLASS="LN">18</FONT><A NAME="318"></A>                System.out.println(<FONT CLASS="StringLiteral">"Error: invalid version attribute, required for -auto builds:"</FONT> + installer.getVersion());
+<FONT CLASS="LN">19</FONT><A NAME="319"></A>                foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">20</FONT><A NAME="320"></A>            }
+<FONT CLASS="LN">21</FONT><A NAME="321"></A>        }
+<FONT CLASS="LN">22</FONT><A NAME="322"></A>        <FONT CLASS="If">if</FONT>(installer.getVersion() != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">23</FONT><A NAME="323"></A>            <FONT CLASS="If">if</FONT>( ! vHelper.isValid(installer.getVersion()) ){
+<FONT CLASS="LN">24</FONT><A NAME="324"></A>                System.out.println(<FONT CLASS="StringLiteral">"Error: invalid version attribute format examples 1.2.0 , 0.2beta:"</FONT> + installer.getVersion());
+<FONT CLASS="LN">25</FONT><A NAME="325"></A>                foundErrors = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">26</FONT><A NAME="326"></A>            }
+<FONT CLASS="LN">27</FONT><A NAME="327"></A>        }
+<FONT CLASS="LN">28</FONT><A NAME="328"></A>        
+<FONT CLASS="LN">29</FONT><A NAME="329"></A>        <FONT CLASS="Return">return</FONT> foundErrors;
+<FONT CLASS="LN">30</FONT><A NAME="330"></A>    }
+<FONT CLASS="LN">31</FONT><A NAME="331"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="332"></A>     * @return foundErrors  (true if there was an error)
+<FONT CLASS="LN">33</FONT><A NAME="333"></A>     */</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="334"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> validateValue(String att, String value, <FONT CLASS="Boolean">boolean</FONT> allowsNull, String[] validValues){
+<FONT CLASS="LN">35</FONT><A NAME="335"></A>        <FONT CLASS="If">if</FONT>(value == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">36</FONT><A NAME="336"></A>            <FONT CLASS="If">if</FONT>(!allowsNull){
+<FONT CLASS="LN">37</FONT><A NAME="337"></A>                System.out.println(<FONT CLASS="StringLiteral">"Error: installer element attribute does not exist: "</FONT> + att);
+<FONT CLASS="LN">38</FONT><A NAME="338"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">39</FONT><A NAME="339"></A>            }
+<FONT CLASS="LN">40</FONT><A NAME="340"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">41</FONT><A NAME="341"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="342"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">43</FONT><A NAME="343"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; validValues.length; i++) {
+<FONT CLASS="LN">44</FONT><A NAME="344"></A>                <FONT CLASS="If">if</FONT>(validValues[i].equals(value)){
+<FONT CLASS="LN">45</FONT><A NAME="345"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="346"></A>                }
+<FONT CLASS="LN">47</FONT><A NAME="347"></A>            }
+<FONT CLASS="LN">48</FONT><A NAME="348"></A>            System.out.println(<FONT CLASS="StringLiteral">"Error: installer element attribute not valid value: "</FONT> + att);
+<FONT CLASS="LN">49</FONT><A NAME="349"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">50</FONT><A NAME="350"></A>        }
+<FONT CLASS="LN">51</FONT><A NAME="351"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="352"></A>
+<FONT CLASS="LN">53</FONT><A NAME="353"></A>}
+<FONT CLASS="LN">54</FONT><A NAME="354"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/ExecInstall.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/ExecInstall.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/ExecInstall.java.html	(revision 14989)
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.ExecInstall (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ExecInstall.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">org.tp23.antinstaller.renderer.MessageRenderer</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">org.tp23.antinstaller.runtime.exe.ExecuteFilter</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java.html">org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">org.tp23.antinstaller.runtime.exe.FilterChain</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterFactory.java.html">org.tp23.antinstaller.runtime.exe.FilterFactory</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FinalizerFilter.java.html">org.tp23.antinstaller.runtime.exe.FinalizerFilter</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/selfextract/SelfExtractor.java.html">org.tp23.antinstaller.selfextract.SelfExtractor</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * This is the Applications entry point, it has a main method to run the
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * installer. The main method is only for scripted installs.
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * 
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> * It is here that the command line options are parsed and it
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> * is determined which type of install (swing or text) will be run.
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * &lt;p&gt;Reads the config, determines the runner, runs it and outputs the
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * properties file,  The Ant targets are then called by the AntRunner.
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * This class also builds the internal Objects from the XML config file.&lt;/p&gt;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> * &lt;p&gt;This class can also be called by external tools to launch the installer
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * currently two options are provided to lauch from Jars. &lt;/p&gt;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * @author Paul Hinds
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * @version $Id: ExecInstall.java,v 1.9 2007/01/19 00:24:36 teknopaul Exp $
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> */</FONT>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ExecInstall {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String CONFIG_RESOURCE = <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/runtime/exe/script.fconfig"</FONT>;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A>();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">FilterChain</A> chain;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>     * @param chain chain of filters to be executed
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     */</FONT>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> ExecInstall(<A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">FilterChain</A> chain){
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="This">this</FONT>.chain = chain;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     * Execute the installer, this reads the config fetches a runner and runs the install.
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     * Once the install pages have finished an AntRunner is used to run Ant
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>     */</FONT>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec() {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <A HREF="../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A>[] filters = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            chain.init(ctx);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            filters = chain.getFilters();
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> e) {
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            <FONT CLASS="SingleLineComment">// This is a developer error or the package has not been built correctly
+<FONT CLASS="LN">78</FONT><A NAME="78"></A></FONT>            <FONT CLASS="SingleLineComment">// It should never happen in a tested build
+<FONT CLASS="LN">79</FONT><A NAME="79"></A></FONT>            e.printStackTrace();
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            System.exit(<FONT CLASS="IntegerLiteral">1</FONT>); <FONT CLASS="SingleLineComment">// called manually since in Win it was not shutting down properly
+<FONT CLASS="LN">81</FONT><A NAME="81"></A></FONT>        }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>loop:   <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; filters.length; i++) {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            <FONT CLASS="Try">try</FONT>{
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                ctx.log(<FONT CLASS="StringLiteral">"Filter: "</FONT> + filters[i].getClass().getName());
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                filters[i].exec(ctx);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java.html">ExecuteRunnerFilter.AbortException</A> abort){
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                <A HREF="../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> vLogger = ctx.getMessageRenderer();
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                vLogger.printMessage(abort.getMessage());
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>                ctx.log(<FONT CLASS="StringLiteral">"Aborted"</FONT>);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FinalizerFilter.java.html">FinalizerFilter</A> ff = (<A HREF="../../../../org/tp23/antinstaller/runtime/exe/FinalizerFilter.java.html">FinalizerFilter</A>)filters[filters.length - <FONT CLASS="IntegerLiteral">1</FONT>];
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                ff.exec(ctx);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                System.exit(<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> ex) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                <FONT CLASS="SingleLineComment">// write errors to the log
+<FONT CLASS="LN">98</FONT><A NAME="98"></A></FONT>                ctx.log(<FONT CLASS="StringLiteral">"Installation error: "</FONT> + ex.getMessage() + <FONT CLASS="StringLiteral">": "</FONT> + ex.getClass().toString());
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>                <FONT CLASS="Boolean">boolean</FONT> verbose = <FONT CLASS="True">true</FONT>; <FONT CLASS="SingleLineComment">// be verbose if we cant load the config
+<FONT CLASS="LN">00</FONT><A NAME="100"></A></FONT>                <FONT CLASS="If">if</FONT>(ctx.getInstaller() != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>                    verbose =  ctx.getInstaller().isVerbose();
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                ctx.log(verbose, ex);
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>                <FONT CLASS="SingleLineComment">// write detailed errors to stdout for the GUI screens and text
+<FONT CLASS="LN">06</FONT><A NAME="106"></A></FONT>                <FONT CLASS="If">if</FONT> (ctx.getRunner() <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/TextRunner.java.html">TextRunner</A>) {
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>                    <FONT CLASS="If">if</FONT>(verbose){
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>                        ex.printStackTrace();
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>                    }
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>                }
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>                    <FONT CLASS="If">if</FONT>(verbose){
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>                        ex.printStackTrace(System.err);
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>                    }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>                }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>                
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>                <FONT CLASS="SingleLineComment">// report the error to the user
+<FONT CLASS="LN">18</FONT><A NAME="118"></A></FONT>                <A HREF="../../../../org/tp23/antinstaller/renderer/MessageRenderer.java.html">MessageRenderer</A> vLogger = ctx.getMessageRenderer();
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>                <FONT CLASS="If">if</FONT>(vLogger != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>                    vLogger.printMessage(res.getString(<FONT CLASS="StringLiteral">"installationFailed"</FONT>) + <FONT CLASS="StringLiteral">"\n"</FONT> + ex.getMessage());
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                    <FONT CLASS="SingleLineComment">//Fixed BUG:1295944 vLogger.printMessage("Install failed\n" + ex.getMessage());
+<FONT CLASS="LN">22</FONT><A NAME="122"></A></FONT>                } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>                    System.err.println(res.getString(<FONT CLASS="StringLiteral">"installationFailed"</FONT>) + ex.getClass().getName());
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>                    System.err.println(ex.getMessage());
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>                }
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>                <FONT CLASS="If">if</FONT>(ctx.getRunner() != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>                    ctx.getRunner().fatalError();
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>                    <FONT CLASS="Break">break</FONT> loop;
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                }
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                <FONT CLASS="Else">else</FONT> {  <FONT CLASS="SingleLineComment">// the screens did not even start e.g. XML config error
+<FONT CLASS="LN">32</FONT><A NAME="132"></A></FONT>                    System.exit(<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>                }
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        }
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>     * &lt;p&gt;Runs the installer from a script.&lt;/p&gt;
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>     * 
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>     * This install can be run from a set of files for example from a CD.
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>     * @see org.tp23.antinstaller.selfextract.NonExtractor
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>     * @see org.tp23.antinstaller.selfextract.SelfExtractor
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>     * 
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>     * @param args String[]  args are "default" or "swing" or "text" followed by the root directory of the install
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>     */</FONT>
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> main(String[] args) {
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>            <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">FilterChain</A> chain = FilterFactory.factory(CONFIG_RESOURCE);     
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>            <A HREF="../../../../org/tp23/antinstaller/runtime/ExecInstall.java.html">ExecInstall</A> installExec = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/ExecInstall.java.html">ExecInstall</A>(chain);
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            <FONT CLASS="If">if</FONT>(installExec.parseArgs(args, <FONT CLASS="True">true</FONT>)){
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>                installExec.exec();
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>            }
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> e) {
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>            <FONT CLASS="SingleLineComment">// Installer developer error
+<FONT CLASS="LN">62</FONT><A NAME="162"></A></FONT>            System.out.println(<FONT CLASS="StringLiteral">"Cant load filter chain:/org/tp23/antinstaller/runtime/exe/script.fconfig"</FONT>);
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>            e.printStackTrace();
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>        }
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>    
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>     * This method has been designed for backward compatibility with
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>     * existing scripts.  The root dir is passed on the command line for scripted
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>     * installs but is determined automatically for installs from self-extracting Jars
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>     * @param args
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>     * @param requiresRootDir set to true if the args must include the root directory
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>     */</FONT>
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> parseArgs(String[] args, <FONT CLASS="Boolean">boolean</FONT> requiresRootDir){
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>        String uiOverride = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>        String installType = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>        String installRoot = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>        
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>        <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>        <FONT CLASS="If">if</FONT>(args.length &gt; i &amp;&amp; !args[i].startsWith(<FONT CLASS="StringLiteral">"-"</FONT>)) {
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>            uiOverride = args[i];
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>            i++;
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>            ctx.setUIOverride(uiOverride);
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>        }
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>        
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>        <FONT CLASS="If">if</FONT>(requiresRootDir){
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>            <FONT CLASS="If">if</FONT>(args.length &gt; i &amp;&amp; !args[i].startsWith(<FONT CLASS="StringLiteral">"-"</FONT>)) {
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>                installRoot = args[i];
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>                i++;
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>                ctx.setFileRoot(<FONT CLASS="New">new</FONT> File(installRoot));
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>            }
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>            <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>                printUsage();
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>            }
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>        }
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>        <FONT CLASS="SingleLineComment">// additional params should all have a -something prefix
+<FONT CLASS="LN">98</FONT><A NAME="198"></A></FONT>        <FONT CLASS="For">for</FONT> (; i &lt; args.length; i++) {
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>            <FONT CLASS="SingleLineComment">// RFE 1569628
+<FONT CLASS="LN">00</FONT><A NAME="200"></A></FONT>            <FONT CLASS="If">if</FONT>(<FONT CLASS="StringLiteral">"-type"</FONT>.equals(args[i]) &amp;&amp; args.length &gt; i + <FONT CLASS="IntegerLiteral">1</FONT>){
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>                installType = args[i + <FONT CLASS="IntegerLiteral">1</FONT>];
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>                i++;
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>                String configFileName = <FONT CLASS="StringLiteral">"antinstall-config-"</FONT> + installType + <FONT CLASS="StringLiteral">".xml"</FONT>;
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>                String buildFileName = <FONT CLASS="StringLiteral">"build-"</FONT> + installType + <FONT CLASS="StringLiteral">".xml"</FONT>;
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>                ctx.setInstallerConfigFile(configFileName);
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>                ctx.setAntBuildFile(buildFileName);
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>            }
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>        }
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>        
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> printUsage(){
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>        System.out.println(<FONT CLASS="StringLiteral">"Usage java -cp $CLASSPATH org.tp23.antinstaller.ExecInstall [text|swing|default] [install root] (-type [buildtype])"</FONT>);
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>    }
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>     * Sets the UI override from the command line
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>     * @param installRoot
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>     */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="222"></A><FONT CLASS="SingleLineComment">//  public void setUIOverride(String override) {
+<FONT CLASS="LN">23</FONT><A NAME="223"></A></FONT><FONT CLASS="SingleLineComment">//      ctx.setUIOverride(override);
+<FONT CLASS="LN">24</FONT><A NAME="224"></A></FONT><FONT CLASS="SingleLineComment">//  }
+<FONT CLASS="LN">25</FONT><A NAME="225"></A></FONT>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>     * This is generated by the Main class which knows where it has
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>     * extracted or where it has run from
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>     * @param installRoot
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>     */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallRoot(File installRoot) {
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>        ctx.setFileRoot(installRoot);
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>     * This is AntInstalls temporary space which will generally be deleted
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>     * except in debug mode when it is left to view the build process.
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>     * installRoot and tempRoot can be the same if the directory
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>     * is a new empty directory
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>     * @param tempDir directory to be used for temporary storage
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>     */</FONT>
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setTempRoot(File tempDir) {
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>        addShutdownHook(tempDir);
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>    }
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>     * This shutdown hook is to facilitate debugging the app can be left open
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>     * in the GUI view and the resources will not be deleted.  Upon exit
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>     * temporary files will be removed.  This is required because the 
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>     * deleteOnExit() method fails if the directory is filled with files.
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>     * @param tempDir
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> addShutdownHook(<FONT CLASS="Final">final</FONT> File tempDir){
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>        Runnable hook = <FONT CLASS="New">new</FONT> Runnable(){
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> run(){
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>                <FONT CLASS="If">if</FONT>(ctx.getInstaller() != <FONT CLASS="Null">null</FONT> &amp;&amp;
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>                   ctx.getInstaller().isDebug()) <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>                <FONT CLASS="If">if</FONT>(tempDir != <FONT CLASS="Null">null</FONT> &amp;&amp; tempDir.exists() &amp;&amp; tempDir.isDirectory()){
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>                    SelfExtractor.deleteRecursive(tempDir);
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>                }
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>            }
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>        };
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>        Thread cleanUp = <FONT CLASS="New">new</FONT> Thread(hook);
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>        cleanUp.setDaemon(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>        Runtime.getRuntime().addShutdownHook(cleanUp);
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>    }
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>}
+<FONT CLASS="LN">67</FONT><A NAME="267"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/IfPropertyHelper.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/IfPropertyHelper.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/IfPropertyHelper.java.html	(revision 14989)
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.IfPropertyHelper (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">IfPropertyHelper.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">org.tp23.antinstaller.page.SimpleInputPage</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">org.tp23.antinstaller.runtime.logic.Expression</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java.html">org.tp23.antinstaller.runtime.logic.ExpressionBuilder</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * &lt;p&gt;Encapsulates code fo the ifProperty feature&lt;/p&gt;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * N.B.  It is the installer generator's responsibility to ensure that properties passed
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * to the less than or greater than test are valid Numbers.
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * The internal Java format used is a Double so avalid regex would be
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * something like [0-9]+\.*[0-9]*  or [0-9]+ for an Integer.
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * The rather strange -=  and += syntax is used because &amp;gt; and &amp;lt;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * must be escaped to &amp;amp;gt; and &amp;amp;lt; in XML attributes and the legibility
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * of the configuration files would be impared.
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * REF: 1145496
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * @author Paul Hinds
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> * @version $Id: IfPropertyHelper.java,v 1.5 2007/01/19 00:24:36 teknopaul Exp $
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> */</FONT>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> IfPropertyHelper {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> IfPropertyHelper(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * @return boolean true to SHOW the page
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     */</FONT>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> ifProperty(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> next) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="SingleLineComment">// show page if ifProperty is specified and property is correct
+<FONT CLASS="LN">51</FONT><A NAME="51"></A></FONT>        <FONT CLASS="If">if</FONT>(next <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>) {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A> conditionalPage = (<A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>) next;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            String ifProperty = conditionalPage.getIfProperty();
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="If">if</FONT> (ifProperty != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>                <A HREF="../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>                    expression = ExpressionBuilder.parseLogicalExpressions( ctx.getInstaller().getResultContainer(),
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>                                                                                   ifProperty );
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>                }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>                <FONT CLASS="Catch">catch</FONT>( <A HREF="../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> configExc ) {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>( <FONT CLASS="StringLiteral">"Error parsing ifProperty condition for page "</FONT> + next.getName(),
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>                                                configExc );    
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>                <FONT CLASS="Return">return</FONT> expression.evaluate();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>; <FONT CLASS="SingleLineComment">// show the page by default
+<FONT CLASS="LN">69</FONT><A NAME="69"></A></FONT>    }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>     * @return boolean true to SHOW the page
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>     */</FONT>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> ifTarget(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> next, <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages){
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="SingleLineComment">// skip iftarget specified and target is missing
+<FONT CLASS="LN">76</FONT><A NAME="76"></A></FONT>        <FONT CLASS="If">if</FONT>(next <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>){
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A> conditionalPage = (<A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>) next;
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            String ifTarget = conditionalPage.getIfTarget();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="If">if</FONT> (ifTarget != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                <FONT CLASS="Boolean">boolean</FONT> show = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>                <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> p = <FONT CLASS="IntegerLiteral">0</FONT>; p &lt; pages.length; p++) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                    show |= pages[p].isTarget(ifTarget);
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                <FONT CLASS="Return">return</FONT> show;
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>}
+<FONT CLASS="LN">90</FONT><A NAME="90"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/Logger.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/Logger.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/Logger.java.html	(revision 14989)
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.Logger (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Logger.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">org.tp23.antinstaller.Installer</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> Logger {
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> log(String message);
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> log(Throwable exception);
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>     * Logs the stack trace only if the installer is in verbose mode
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>     * @param installer
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>     * @param exception
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>     */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> log(<A HREF="../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer, Throwable exception);
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setFileName(String fileName) <FONT CLASS="Throws">throws</FONT> IOException;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>     * Get the name of the file used for logging
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>     * @return path to file or &lt;code&gt;null&lt;/code&gt; if not initialised
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>     */</FONT>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Public">public</FONT> String getFileName();
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> close();
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>}
+<FONT CLASS="LN">45</FONT><A NAME="45"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/Runner.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/Runner.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/Runner.java.html	(revision 14989)
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.Runner (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Runner.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> *
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * &lt;p&gt;A Runner runs the user interaction screens, not ant.
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * The base interface for TextRunner and SwingRunner &lt;/p&gt;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * &lt;p&gt;Instances of this interface should have a constructor that takes
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * an InstallerContext as an argument&lt;/p&gt;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * Due to historic bad naming convention there exists an AntRunner which has
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * no connection to this interface. 
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @author Paul Hinds
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @version $Id: Runner.java,v 1.2 2006/03/24 18:27:28 teknopaul Exp $
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> */</FONT>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> Runner {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>     * Renders the installer screens.  This method should block until
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>     * the UI has finished
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>     * @throws InstallException
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>     * @return boolean false implies user aborted
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>     */</FONT>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> runInstaller() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>     * Called after Ant has finished so the Runner can clean up or provide feedback
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>     */</FONT>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> antFinished();
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>     * Called if the install failed for some reason and can not continue;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>     *
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>     */</FONT>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> fatalError();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>}
+<FONT CLASS="LN">57</FONT><A NAME="57"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/SimpleLogger.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/SimpleLogger.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/SimpleLogger.java.html	(revision 14989)
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.SimpleLogger (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SimpleLogger.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedWriter;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.FileWriter;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.PrintWriter;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.StringWriter;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">org.tp23.antinstaller.Installer</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * A Logger class that does not report errors
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * 
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @author Paul Hinds
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @version $Id: SimpleLogger.java,v 1.4 2007/01/19 00:24:36 teknopaul Exp $
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> */</FONT>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SimpleLogger <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/Logger.java.html">Logger</A> {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    BufferedWriter fos;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> String fileName;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> SimpleLogger() {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>     * This method initialises the logger
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>     */</FONT>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setFileName(String fileName) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="This">this</FONT>.fileName = fileName;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>            fos = <FONT CLASS="New">new</FONT> BufferedWriter(<FONT CLASS="New">new</FONT> FileWriter(fileName, <FONT CLASS="False">false</FONT>));
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            fos.write(<FONT CLASS="StringLiteral">"Logger initialized"</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            fos.newLine();
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            fos = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> String getFileName() {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Return">return</FONT> fileName;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    }
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> log(String message) {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="If">if</FONT> (fos == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            fos.write(message);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            fos.newLine();
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            fos.flush();
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> RuntimeException(<FONT CLASS="StringLiteral">"Can not write to logs"</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> log(<A HREF="../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer, Throwable exception) {
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="If">if</FONT> (installer != <FONT CLASS="Null">null</FONT> &amp;&amp; installer.isVerbose()) {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            log(exception);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> log(Throwable exception) {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="If">if</FONT> (fos == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            StringWriter writer = <FONT CLASS="New">new</FONT> StringWriter();
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            exception.printStackTrace(<FONT CLASS="New">new</FONT> PrintWriter(writer));
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            String s = writer.getBuffer().toString();
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            fos.write(s);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            fos.newLine();
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        } <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> RuntimeException(<FONT CLASS="StringLiteral">"Can not write to logs"</FONT>);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> close() {
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            <FONT CLASS="If">if</FONT> (fos != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>                fos.flush();
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                fos.close();
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>                fos = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            System.err.println(<FONT CLASS="StringLiteral">"Can't close logger"</FONT>);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>     * Called by the garbage collector on an object when garbage collection
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>     * determines that there are no more references to the object.
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>     * 
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>     * @throws Throwable
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>     *             the &lt;code&gt;Exception&lt;/code&gt; raised by this method
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>     * @todo Implement this java.lang.Object method
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>     */</FONT>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> finalize() <FONT CLASS="Throws">throws</FONT> Throwable {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        <FONT CLASS="If">if</FONT> (fos != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            fos.flush();
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            fos.close();
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        }
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>    }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>}
+<FONT CLASS="LN">21</FONT><A NAME="121"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/SwingRunner.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/SwingRunner.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/SwingRunner.java.html	(revision 14989)
@@ -0,0 +1,407 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.SwingRunner (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SwingRunner.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.GraphicsConfiguration;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.ByteArrayOutputStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.ImageIcon;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.JFrame;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">org.tp23.antinstaller.Installer</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/FeedbackListener.java.html">org.tp23.antinstaller.antmod.FeedbackListener</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">org.tp23.antinstaller.renderer.AntOutputRenderer</A>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/RendererFactory.java.html">org.tp23.antinstaller.renderer.RendererFactory</A>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html">org.tp23.antinstaller.renderer.swing.PageCompletionListener</A>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SizeConstants.java.html">org.tp23.antinstaller.renderer.swing.SizeConstants</A>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">org.tp23.antinstaller.renderer.swing.SwingInstallerContext</A>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html">org.tp23.antinstaller.renderer.swing.SwingMessageRenderer</A>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">org.tp23.antinstaller.renderer.swing.SwingPageRenderer</A>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * &lt;p&gt;Runs the installer in a JFrame window &lt;/p&gt;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * &lt;p&gt;This class uses the Installer object tree as its data source and renderers
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * from the org.tp23.antinstaller.renderer.swing package &lt;/p&gt;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * Runners must also create a MessageRenderer and make it available in the
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * InstallerContext
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A> *
+<FONT CLASS="LN">51</FONT><A NAME="51"></A> * @author Paul Hinds
+<FONT CLASS="LN">52</FONT><A NAME="52"></A> * @version $Id: SwingRunner.java,v 1.11 2007/01/19 00:24:36 teknopaul Exp $
+<FONT CLASS="LN">53</FONT><A NAME="53"></A> */</FONT>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SwingRunner <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/AntRunner.java.html">AntRunner</A> <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/Runner.java.html">Runner</A>, <A HREF="../../../../org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html">PageCompletionListener</A> {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">SwingInstallerContext</A> swingCtx = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> JFrame frame = <FONT CLASS="New">new</FONT> JFrame();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> List pageRenderers;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Volatile">volatile</FONT> <FONT CLASS="Boolean">boolean</FONT> doAnt = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Protected">protected</FONT> Thread initialThread;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A> ifHelper;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="SingleLineComment">// context local property refs
+<FONT CLASS="LN">66</FONT><A NAME="66"></A></FONT>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/Logger.java.html">Logger</A> logger;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="Public">public</FONT> SwingRunner(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="Super">super</FONT>(ctx);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        swingCtx = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">SwingInstallerContext</A>(ctx, frame);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html">SwingMessageRenderer</A> smr = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html">SwingMessageRenderer</A>();
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        smr.setOwner(frame);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        ctx.setMessageRenderer(smr);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        ctx.setBuildListener(<FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/FeedbackListener.java.html">FeedbackListener</A>(swingCtx));
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        ifHelper = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A>(ctx);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        logger = ctx.getLogger();
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        installer = ctx.getInstaller();
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>     * Renders the installer in a Swing GUI, this method blocks until
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>     * the UI has finished
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>     *
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>     * @return boolean false implies user aborted
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>     * @throws InstallException
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>     */</FONT>
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> runInstaller() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            frame.setTitle(installer.getName());
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            frame.setSize(SizeConstants.PAGE_WIDTH, SizeConstants.PAGE_HEIGHT);
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            frame.getRootPane().setDoubleBuffered(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            setLocation(frame);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            setIcon(frame, installer);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            preparePages(installer.getPages(), ctx);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>            showFirstPage();
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            <FONT CLASS="SingleLineComment">// need to  block here until pages are complete
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></FONT>            initialThread = Thread.currentThread();
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>                Thread.sleep(Long.MAX_VALUE);
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            }
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            <FONT CLASS="Catch">catch</FONT> (InterruptedException ex1) {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            <FONT CLASS="Return">return</FONT> doAnt;
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        }
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> ex) {
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            logger.log(<FONT CLASS="StringLiteral">"Fatal exception: "</FONT> + ex.getMessage());
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            <FONT CLASS="If">if</FONT> (ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>                logger.log(ex);
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>            }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>            ctx.getMessageRenderer().printMessage(<FONT CLASS="StringLiteral">"Fatal exception: "</FONT> + ex.getMessage());
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">""</FONT>, ex);
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        }
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>    }
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> pageBack(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) {
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        <FONT CLASS="If">if</FONT> (page.isAbort()) {
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>            abort();
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>        }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages = installer.getPages();
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>            <FONT CLASS="If">if</FONT> (pages[i] == page) {
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>                <FONT CLASS="SingleLineComment">// found current page
+<FONT CLASS="LN">33</FONT><A NAME="133"></A></FONT>                <FONT CLASS="If">if</FONT> (i &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                    <FONT CLASS="SingleLineComment">//skip pages if the ifTarget or ifProperty attributes exist and fail
+<FONT CLASS="LN">36</FONT><A NAME="136"></A></FONT>                    <FONT CLASS="Int">int</FONT> nextIdx = i - <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>                    <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>                        <FONT CLASS="While">while</FONT> (<FONT CLASS="True">true</FONT>) {
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>                            <FONT CLASS="If">if</FONT> (!ifHelper.ifTarget(pages[nextIdx], pages) ||
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>                                    !ifHelper.ifProperty(pages[nextIdx])) {
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>                                <FONT CLASS="SingleLineComment">//Continue looping
+<FONT CLASS="LN">42</FONT><A NAME="142"></A></FONT>                                --nextIdx;
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>                            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>                                <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>                            }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>                        }
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>                    }
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>                    <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> instExc) {
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>                        logger.log(<FONT CLASS="StringLiteral">"InstallException rendering page:"</FONT> + page.getName());
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>                        logger.log(installer, instExc);
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>                    }
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>                    <FONT CLASS="SingleLineComment">//for(;ifTargetSkip(pages[nextIdx], pages);nextIdx--);
+<FONT CLASS="LN">54</FONT><A NAME="154"></A></FONT>
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>                    <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(nextIdx);
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>                    ctx.setCurrentPage(pages[nextIdx]);
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>                    <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>                        renderNext(renderer);
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>                    }
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>                    <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> ex) {
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>                        logger.log(<FONT CLASS="StringLiteral">"InstallExcepiton rendering page:"</FONT> + page.getName());
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>                        logger.log(installer, ex);
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>                    }
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>                    <FONT CLASS="Catch">catch</FONT> (ClassNotFoundException ex) {
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>                        logger.log(<FONT CLASS="StringLiteral">"ClassNotFoundException rendering page:"</FONT> + page.getName());
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>                        logger.log(installer, ex);
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>                    }
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>                    <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>                }
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>            }
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>     * Called when a page is complete and the next button is pressed.
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>     * This method is called by the event thread that looses exceptions so Throwable
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>     * is caught
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>     *
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>     * @param page Page
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>     */</FONT>
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> pageComplete(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) {
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>            <FONT CLASS="If">if</FONT> (page.isAbort()) {
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>                abort();
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>            }
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>            runPost(page);
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>            <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages = installer.getPages();
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>            <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> currentRenderer;
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>                <FONT CLASS="If">if</FONT> (pages[i] == page) { <FONT CLASS="SingleLineComment">// found current page
+<FONT CLASS="LN">92</FONT><A NAME="192"></A></FONT>                    currentRenderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(i);
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>                    <FONT CLASS="SingleLineComment">// check validation
+<FONT CLASS="LN">94</FONT><A NAME="194"></A></FONT>                    <FONT CLASS="Boolean">boolean</FONT> validationPassed = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>                    <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>                        currentRenderer.updateInputFields();
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>                        validationPassed = currentRenderer.validateFields();
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>                    } <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A> ve) {
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>                        logger.log(<FONT CLASS="StringLiteral">"ValidationException rendering page:"</FONT> + page.getName());
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>                        logger.log(installer, ve);
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>                        <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>                    }
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>                    <FONT CLASS="If">if</FONT> (!validationPassed) {
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>                        <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>                    }
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>                    <FONT CLASS="If">if</FONT> (i &lt; pages.length - <FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>                        <FONT CLASS="SingleLineComment">//more pages left
+<FONT CLASS="LN">11</FONT><A NAME="211"></A></FONT>
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>                        <FONT CLASS="SingleLineComment">// skip the page if the ifTarget or ifProperty dictate it
+<FONT CLASS="LN">13</FONT><A NAME="213"></A></FONT>                        <FONT CLASS="Int">int</FONT> nextIdx = i + <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>                        <FONT CLASS="While">while</FONT> (<FONT CLASS="True">true</FONT>) {
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>                            <FONT CLASS="If">if</FONT> (!ifHelper.ifTarget(pages[nextIdx], pages) ||
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>                                    !ifHelper.ifProperty(pages[nextIdx])) {
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>                                <FONT CLASS="SingleLineComment">//Continue looping
+<FONT CLASS="LN">18</FONT><A NAME="218"></A></FONT>                                nextIdx++;
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>                            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>                                <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>                            }
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>                        }
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>                        <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(nextIdx);
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>                        ctx.setCurrentPage(pages[nextIdx]);
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>                        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>                            renderNext(renderer);
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>                        }
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>                        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> ex) {
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>                            logger.log(<FONT CLASS="StringLiteral">"InstallException rendering page:"</FONT> + page.getName());
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>                            logger.log(installer, ex);
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>                        }
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>                        <FONT CLASS="Catch">catch</FONT> (ClassNotFoundException ex) {
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>                            logger.log(<FONT CLASS="StringLiteral">"ClassNotFoundException rendering page:"</FONT> + page.getName());
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>                            logger.log(installer, ex);
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>                        }
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>                        <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>                    }
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>                    <FONT CLASS="If">if</FONT> (i == pages.length - <FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>                        <FONT CLASS="SingleLineComment">// all done
+<FONT CLASS="LN">42</FONT><A NAME="242"></A></FONT>                        currentRenderer.getBackButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>                        currentRenderer.getNextButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>                        currentRenderer.getFinishButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>                        doAnt = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>                        initialThread.interrupt();
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>                        <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>                    }
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>                }
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>            }
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>        }
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable e) {
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>            ctx.log(<FONT CLASS="StringLiteral">"Throwable during page completion:"</FONT> + e.getMessage());
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>            <FONT CLASS="If">if</FONT> (ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>                ctx.log(e);
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>            }
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> showFirstPage() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> {
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>        ctx.setCurrentPage(installer.getPages()[<FONT CLASS="IntegerLiteral">0</FONT>]);
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>        renderNext((<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(<FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> preparePages(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages, <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> {
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>        pageRenderers = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>            <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = RendererFactory.getSwingPageRenderer(pages[i]);
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>            <FONT CLASS="If">if</FONT> (i == <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>                renderer.getBackButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>            }
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>            renderer.setContext(swingCtx);
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>            renderer.setPageCompletionListener(<FONT CLASS="This">this</FONT>);
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>            renderer.setPage(pages[i]);
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>            renderer.instanceInit();
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>            pageRenderers.add(renderer);
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>            <FONT CLASS="If">if</FONT> (renderer <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A>) {
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>                ctx.setAntOutputRenderer((<A HREF="../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A>) renderer);
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>            }
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>        }
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>    }
+<FONT CLASS="LN">83</FONT><A NAME="283"></A>
+<FONT CLASS="LN">84</FONT><A NAME="284"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> renderNext(<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer) <FONT CLASS="Throws">throws</FONT> ClassNotFoundException, <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">85</FONT><A NAME="285"></A>        renderer.updateDefaultValues();
+<FONT CLASS="LN">86</FONT><A NAME="286"></A>        frame.getContentPane().removeAll();
+<FONT CLASS="LN">87</FONT><A NAME="287"></A>        frame.getContentPane().add(renderer);
+<FONT CLASS="LN">88</FONT><A NAME="288"></A>        frame.getContentPane().repaint();
+<FONT CLASS="LN">89</FONT><A NAME="289"></A>        frame.show();
+<FONT CLASS="LN">90</FONT><A NAME="290"></A>        <FONT CLASS="If">if</FONT> (renderer.getNextButton().isEnabled()) {
+<FONT CLASS="LN">91</FONT><A NAME="291"></A>            renderer.getNextButton().requestFocus();
+<FONT CLASS="LN">92</FONT><A NAME="292"></A>        } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (renderer.getFinishButton().isEnabled()) {
+<FONT CLASS="LN">93</FONT><A NAME="293"></A>            renderer.getFinishButton().requestFocus();
+<FONT CLASS="LN">94</FONT><A NAME="294"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="295"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="296"></A>
+<FONT CLASS="LN">97</FONT><A NAME="297"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setLocation(JFrame frame) {
+<FONT CLASS="LN">98</FONT><A NAME="298"></A>        GraphicsConfiguration config = frame.getGraphicsConfiguration();
+<FONT CLASS="LN">99</FONT><A NAME="299"></A>        <FONT CLASS="Int">int</FONT> x = (<FONT CLASS="Int">int</FONT>) config.getBounds().getCenterX() - (SizeConstants.PAGE_WIDTH / <FONT CLASS="IntegerLiteral">2</FONT>);
+<FONT CLASS="LN">00</FONT><A NAME="300"></A>        <FONT CLASS="Int">int</FONT> y = (<FONT CLASS="Int">int</FONT>) config.getBounds().getCenterY() - (SizeConstants.PAGE_HEIGHT / <FONT CLASS="IntegerLiteral">2</FONT>);
+<FONT CLASS="LN">01</FONT><A NAME="301"></A>        frame.setLocation(x, y);
+<FONT CLASS="LN">02</FONT><A NAME="302"></A>        frame.setResizable(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">03</FONT><A NAME="303"></A>    }
+<FONT CLASS="LN">04</FONT><A NAME="304"></A>
+<FONT CLASS="LN">05</FONT><A NAME="305"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setIcon(JFrame frame, <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer) {
+<FONT CLASS="LN">06</FONT><A NAME="306"></A>        String iconResource = installer.getWindowIcon();
+<FONT CLASS="LN">07</FONT><A NAME="307"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">08</FONT><A NAME="308"></A>            <FONT CLASS="If">if</FONT> (iconResource == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">09</FONT><A NAME="309"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">10</FONT><A NAME="310"></A>            }
+<FONT CLASS="LN">11</FONT><A NAME="311"></A>            InputStream in = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(iconResource);
+<FONT CLASS="LN">12</FONT><A NAME="312"></A>            ByteArrayOutputStream baos = <FONT CLASS="New">new</FONT> ByteArrayOutputStream();
+<FONT CLASS="LN">13</FONT><A NAME="313"></A>            <FONT CLASS="Byte">byte</FONT>[] buffer = <FONT CLASS="New">new</FONT> <FONT CLASS="Byte">byte</FONT>[<FONT CLASS="IntegerLiteral">256</FONT>];
+<FONT CLASS="LN">14</FONT><A NAME="314"></A>            <FONT CLASS="Int">int</FONT> read = <FONT CLASS="IntegerLiteral">0</FONT>; <FONT CLASS="SingleLineComment">// The number of bytes read from the stream
+<FONT CLASS="LN">15</FONT><A NAME="315"></A></FONT>            <FONT CLASS="For">for</FONT> (read = in.read(buffer); read != -<FONT CLASS="IntegerLiteral">1</FONT>; read = in.read(buffer)) {
+<FONT CLASS="LN">16</FONT><A NAME="316"></A>                baos.write(buffer, <FONT CLASS="IntegerLiteral">0</FONT>, read);
+<FONT CLASS="LN">17</FONT><A NAME="317"></A>            }
+<FONT CLASS="LN">18</FONT><A NAME="318"></A>            ImageIcon icon = <FONT CLASS="New">new</FONT> ImageIcon(baos.toByteArray());
+<FONT CLASS="LN">19</FONT><A NAME="319"></A>            <FONT CLASS="SingleLineComment">//Image icon = Toolkit.getDefaultToolkit().createImage(baos.toByteArray());
+<FONT CLASS="LN">20</FONT><A NAME="320"></A></FONT>            frame.setIconImage(icon.getImage());
+<FONT CLASS="LN">21</FONT><A NAME="321"></A>        }
+<FONT CLASS="LN">22</FONT><A NAME="322"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> ex) {
+<FONT CLASS="LN">23</FONT><A NAME="323"></A>            <FONT CLASS="SingleLineComment">// we can live with out an icon
+<FONT CLASS="LN">24</FONT><A NAME="324"></A></FONT>            logger.log(<FONT CLASS="StringLiteral">"Can not load icon resource: "</FONT> + iconResource);
+<FONT CLASS="LN">25</FONT><A NAME="325"></A>            logger.log(installer, ex);
+<FONT CLASS="LN">26</FONT><A NAME="326"></A>        }
+<FONT CLASS="LN">27</FONT><A NAME="327"></A>    }
+<FONT CLASS="LN">28</FONT><A NAME="328"></A>
+<FONT CLASS="LN">29</FONT><A NAME="329"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> antFinished() {
+<FONT CLASS="LN">30</FONT><A NAME="330"></A>        <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(pageRenderers.size() - <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">31</FONT><A NAME="331"></A>        renderer.getBackButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">32</FONT><A NAME="332"></A>        renderer.getNextButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="333"></A>        renderer.getCancelButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">34</FONT><A NAME="334"></A>        renderer.getFinishButton().setText(res.getString(<FONT CLASS="StringLiteral">"exit"</FONT>));
+<FONT CLASS="LN">35</FONT><A NAME="335"></A>        renderer.getFinishButton().setEnabled(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">36</FONT><A NAME="336"></A>        renderer.getFinishButton().requestFocus();
+<FONT CLASS="LN">37</FONT><A NAME="337"></A>        renderer.getTitleLabel().setText(res.getString(<FONT CLASS="StringLiteral">"complete"</FONT>));
+<FONT CLASS="LN">38</FONT><A NAME="338"></A>        ctx.getAntOutputRenderer().getErr().flush();
+<FONT CLASS="LN">39</FONT><A NAME="339"></A>        ctx.getAntOutputRenderer().getOut().flush();
+<FONT CLASS="LN">40</FONT><A NAME="340"></A>        ctx.getMessageRenderer().printMessage(res.getString(<FONT CLASS="StringLiteral">"finished"</FONT>));
+<FONT CLASS="LN">41</FONT><A NAME="341"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="342"></A>
+<FONT CLASS="LN">43</FONT><A NAME="343"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> fatalError() {
+<FONT CLASS="LN">44</FONT><A NAME="344"></A>        List renderers = getPageRenderers();
+<FONT CLASS="LN">45</FONT><A NAME="345"></A>        <FONT CLASS="If">if</FONT> ((renderers != <FONT CLASS="Null">null</FONT>) &amp;&amp; (renderers.size() &gt; <FONT CLASS="IntegerLiteral">0</FONT>)) {
+<FONT CLASS="LN">46</FONT><A NAME="346"></A>            <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) renderers.get(renderers.size() - <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="347"></A>            renderer.getBackButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="348"></A>            renderer.getNextButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="349"></A>            renderer.getCancelButton().setEnabled(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="350"></A>            renderer.getFinishButton().setText(res.getString(<FONT CLASS="StringLiteral">"exit"</FONT>));
+<FONT CLASS="LN">51</FONT><A NAME="351"></A>            renderer.getFinishButton().setEnabled(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">52</FONT><A NAME="352"></A>            renderer.getFinishButton().requestFocus();
+<FONT CLASS="LN">53</FONT><A NAME="353"></A>            renderer.getTitleLabel().setText(res.getString(<FONT CLASS="StringLiteral">"failed"</FONT>));
+<FONT CLASS="LN">54</FONT><A NAME="354"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="355"></A>        <FONT CLASS="SingleLineComment">// else - we're done here, or should we call abort()?
+<FONT CLASS="LN">56</FONT><A NAME="356"></A></FONT>    }
+<FONT CLASS="LN">57</FONT><A NAME="357"></A>
+<FONT CLASS="LN">58</FONT><A NAME="358"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">59</FONT><A NAME="359"></A>     * Returns a string representation of the object.
+<FONT CLASS="LN">60</FONT><A NAME="360"></A>     *
+<FONT CLASS="LN">61</FONT><A NAME="361"></A>     * @return a string representation of the object.
+<FONT CLASS="LN">62</FONT><A NAME="362"></A>     */</FONT>
+<FONT CLASS="LN">63</FONT><A NAME="363"></A>    <FONT CLASS="Public">public</FONT> String toString() {
+<FONT CLASS="LN">64</FONT><A NAME="364"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"SwingRunner"</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="365"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="366"></A>
+<FONT CLASS="LN">67</FONT><A NAME="367"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> abort() {
+<FONT CLASS="LN">68</FONT><A NAME="368"></A>        <FONT CLASS="This">this</FONT>.doAnt = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">69</FONT><A NAME="369"></A>        initialThread.interrupt();
+<FONT CLASS="LN">70</FONT><A NAME="370"></A>    }
+<FONT CLASS="LN">71</FONT><A NAME="371"></A>
+<FONT CLASS="LN">72</FONT><A NAME="372"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">73</FONT><A NAME="373"></A>     * @return Returns the frame.
+<FONT CLASS="LN">74</FONT><A NAME="374"></A>     */</FONT>
+<FONT CLASS="LN">75</FONT><A NAME="375"></A>    <FONT CLASS="Public">public</FONT> JFrame getFrame() {
+<FONT CLASS="LN">76</FONT><A NAME="376"></A>        <FONT CLASS="Return">return</FONT> frame;
+<FONT CLASS="LN">77</FONT><A NAME="377"></A>    }
+<FONT CLASS="LN">78</FONT><A NAME="378"></A>
+<FONT CLASS="LN">79</FONT><A NAME="379"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">80</FONT><A NAME="380"></A>     * This method is only valid after the PageRenderers have been generated
+<FONT CLASS="LN">81</FONT><A NAME="381"></A>     *
+<FONT CLASS="LN">82</FONT><A NAME="382"></A>     * @return Returns the pageRenderers.
+<FONT CLASS="LN">83</FONT><A NAME="383"></A>     */</FONT>
+<FONT CLASS="LN">84</FONT><A NAME="384"></A>    <FONT CLASS="Public">public</FONT> List getPageRenderers() {
+<FONT CLASS="LN">85</FONT><A NAME="385"></A>        <FONT CLASS="Return">return</FONT> pageRenderers;
+<FONT CLASS="LN">86</FONT><A NAME="386"></A>    }
+<FONT CLASS="LN">87</FONT><A NAME="387"></A>}
+<FONT CLASS="LN">88</FONT><A NAME="388"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/TextRunner.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/TextRunner.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/TextRunner.java.html	(revision 14989)
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.TextRunner (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TextRunner.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">org.tp23.antinstaller.Installer</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">org.tp23.antinstaller.page.SimpleInputPage</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">org.tp23.antinstaller.renderer.AntOutputRenderer</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/RendererFactory.java.html">org.tp23.antinstaller.renderer.RendererFactory</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">org.tp23.antinstaller.renderer.text.AbstractTextPageRenderer</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/text/TextMessageRenderer.java.html">org.tp23.antinstaller.renderer.text.TextMessageRenderer</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> *
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> * &lt;p&gt;Runs the installer from the text only command line (console) &lt;/p&gt;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> * &lt;p&gt;This class uses the Installer object tree as its data source and renderers
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * from the org.tp23.antinstaller.renderer.text package &lt;/p&gt;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * &lt;p&gt;Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * @author Paul Hinds
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * @version $Id: TextRunner.java,v 1.10 2007/01/19 00:24:36 teknopaul Exp $
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> */</FONT>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> TextRunner <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/AntRunner.java.html">AntRunner</A> 
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/Runner.java.html">Runner</A> {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/Logger.java.html">Logger</A> logger;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A> ifHelper;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> TextRunner(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="Super">super</FONT>(ctx);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="This">this</FONT>.installer = ctx.getInstaller();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="This">this</FONT>.logger = ctx.getLogger();
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        ctx.setMessageRenderer(<FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/text/TextMessageRenderer.java.html">TextMessageRenderer</A>());
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        ctx.setAntOutputRenderer(<FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A>(){
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            <FONT CLASS="Public">public</FONT> PrintStream getErr() {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>                <FONT CLASS="Return">return</FONT> System.err;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            <FONT CLASS="Public">public</FONT> PrintStream getOut() {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>                <FONT CLASS="Return">return</FONT> System.out;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        });
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="This">this</FONT>.ifHelper = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A>(ctx);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>     * Renders the installer on the command line, this method blocks until
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>     * the UI has finished
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     * @throws InstallException
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     * @return boolean false implies the install was aborted
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>     */</FONT>
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> runInstaller() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            <FONT CLASS="Return">return</FONT> renderPages(installer.getPages());
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            logger.log(<FONT CLASS="StringLiteral">"FATAL exception during installation:"</FONT>+ex.getMessage());
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            logger.log(installer, ex);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            ctx.getMessageRenderer().printMessage(res.getString(<FONT CLASS="StringLiteral">"installationFailed"</FONT>) + <FONT CLASS="StringLiteral">":"</FONT> + ex.getMessage());
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            <FONT CLASS="SingleLineComment">//Fixed BUG: ctx.getMessageRenderer().printMessage("Installation failed:"+ex.getMessage());
+<FONT CLASS="LN">90</FONT><A NAME="90"></A></FONT>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Installation failed"</FONT>, ex);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> renderPages(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages) <FONT CLASS="Throws">throws</FONT> ClassNotFoundException, <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>{
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> next = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            next = pages[i];
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            <FONT CLASS="If">if</FONT>(next <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>){
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>                <FONT CLASS="SingleLineComment">// skip iftarget specified and missing
+<FONT CLASS="LN">02</FONT><A NAME="102"></A></FONT>                <FONT CLASS="If">if</FONT>(!ifHelper.ifTarget(next, pages))<FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                <FONT CLASS="SingleLineComment">// skip page if ifProperty is specified and property is missing
+<FONT CLASS="LN">04</FONT><A NAME="104"></A></FONT>                <FONT CLASS="If">if</FONT>(!ifHelper.ifProperty(next))<FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>            <A HREF="../../../../org/tp23/antinstaller/renderer/text/AbstractTextPageRenderer.java.html">AbstractTextPageRenderer</A> renderer = RendererFactory.getTextPageRenderer(next);
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            renderer.setContext(ctx);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            renderer.init( <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(System.in)), System.out);
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            ctx.setCurrentPage(next);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            renderer.renderPage(next);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            <FONT CLASS="If">if</FONT> (next.isAbort()){
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            runPost(next);
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        }
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>    }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> getInstallerContext() {
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        <FONT CLASS="Return">return</FONT> ctx;
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>    }
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>     * Called when Ant has finished its work
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>     */</FONT>
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> antFinished() {
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        System.out.println(res.getString(<FONT CLASS="StringLiteral">"finished"</FONT>));
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        <FONT CLASS="SingleLineComment">//System.exit(0);
+<FONT CLASS="LN">31</FONT><A NAME="131"></A></FONT>    }
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>     * Called is Ant failed to install correctly
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>     */</FONT>
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> fatalError(){
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        System.out.println(res.getString(<FONT CLASS="StringLiteral">"failed"</FONT>));
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>        <FONT CLASS="SingleLineComment">//System.exit(1);
+<FONT CLASS="LN">38</FONT><A NAME="138"></A></FONT>    }
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>    <FONT CLASS="Public">public</FONT> String toString() {
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"TextRunner"</FONT>;
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>}
+<FONT CLASS="LN">44</FONT><A NAME="144"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/VersionHelper.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/VersionHelper.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/VersionHelper.java.html	(revision 14989)
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.VersionHelper (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">VersionHelper.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.StringTokenizer;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * Version helper accepts version numbers of the following format.
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * [major][clause].[minor][clause].[minor][clause].... ad infinitum
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * 
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * If the Java flag is set to true an attempt is made to parse the string as if it were
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * returned by System.getProperty("java.version");
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * Since pre 1.3.1 the system is not parsable the default is to accept the string
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * if there is a format error.
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * 
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * For the non java syntax getting the string wrong will result in failed tests
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @author teknopaul
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> *
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> VersionHelper {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String CLAUSE_ALPHA = <FONT CLASS="StringLiteral">"alpha"</FONT>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String CLAUSE_BETA = <FONT CLASS="StringLiteral">"beta"</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String CLAUSE_GAMMA = <FONT CLASS="StringLiteral">"gamma"</FONT>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String CLAUSE_JAVA_BETA = <FONT CLASS="StringLiteral">"ea"</FONT>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> equalOrHigher(<FONT CLASS="Final">final</FONT> String test, <FONT CLASS="Final">final</FONT> String version) {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="Return">return</FONT> equalOrHigher(test, version, <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> majorVersionCompatible(<FONT CLASS="Final">final</FONT> String test, <FONT CLASS="Final">final</FONT> String version) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="Return">return</FONT> getMajorVersion(test) == getMajorVersion(version);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>     * 
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>     * @param test java version string being tested
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>     * @param version java version string being used as reference
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>     * @param javaSyntax
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>     * @return true if the value of &lt;code&gt;test&lt;/code&gt; is greater than or equal to the value of &lt;code&gt;version&lt;/code&gt;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>     */</FONT>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> equalOrHigher(<FONT CLASS="Final">final</FONT> String test, <FONT CLASS="Final">final</FONT> String version, <FONT CLASS="Final">final</FONT> <FONT CLASS="Boolean">boolean</FONT> javaSyntax) {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            StringTokenizer testSt = <FONT CLASS="New">new</FONT> StringTokenizer(test, <FONT CLASS="StringLiteral">"."</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            StringTokenizer verSt = <FONT CLASS="New">new</FONT> StringTokenizer(version, <FONT CLASS="StringLiteral">"."</FONT>);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            <FONT CLASS="While">while</FONT> (<FONT CLASS="True">true</FONT>) {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>                <FONT CLASS="Boolean">boolean</FONT> testMore = testSt.hasMoreTokens(); 
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>                <FONT CLASS="Boolean">boolean</FONT> verMore = verSt.hasMoreTokens();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                <FONT CLASS="If">if</FONT>( ! testMore || ! verMore ){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>                }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                String testToken = testSt.nextToken();
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>                String verToken = verSt.nextToken();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                <FONT CLASS="Short">short</FONT> testVer = getVersion(testToken);
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>                <FONT CLASS="Short">short</FONT> versionVer = getVersion(verToken);
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>                <FONT CLASS="If">if</FONT>( testVer == versionVer ) {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>                    <FONT CLASS="If">if</FONT> ( equalClause(getClause( testToken ), getClause(verToken)) ) {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                        <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>                    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                    <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                        <FONT CLASS="Return">return</FONT> higherClause(getClause( testToken ), getClause( verToken ), javaSyntax);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                    }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>                }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>                <FONT CLASS="Return">return</FONT> testVer &gt; versionVer ;
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            <FONT CLASS="SingleLineComment">// equal up to one not having minor details
+<FONT CLASS="LN">81</FONT><A NAME="81"></A></FONT>            <FONT CLASS="If">if</FONT>( countDots(test) &gt;= countDots(version) ){
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            <FONT CLASS="Return">return</FONT> test.equals(version);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            <FONT CLASS="SingleLineComment">// syntax exceptions
+<FONT CLASS="LN">87</FONT><A NAME="87"></A></FONT>            <FONT CLASS="If">if</FONT>(javaSyntax){
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>; <FONT CLASS="SingleLineComment">// return true for Java since pre 1.3.1 or other JVMs could get any old rubbish
+<FONT CLASS="LN">89</FONT><A NAME="89"></A></FONT>            }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isValid(<FONT CLASS="Final">final</FONT> String version) {
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            StringTokenizer verSt = <FONT CLASS="New">new</FONT> StringTokenizer(version, <FONT CLASS="StringLiteral">"."</FONT>);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            <FONT CLASS="Boolean">boolean</FONT> verMore = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>            <FONT CLASS="For">for</FONT> (; verMore = verSt.hasMoreTokens(); i++) {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>                
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>                String verToken = verSt.nextToken();
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                <FONT CLASS="If">if</FONT>(<FONT CLASS="StringLiteral">""</FONT>.equals(verToken)){
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>                }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>                <FONT CLASS="SingleLineComment">// may throw NumberFormatExceptions
+<FONT CLASS="LN">07</FONT><A NAME="107"></A></FONT>                getVersion(verToken);
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>                String clause = getClause(verToken);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>                <FONT CLASS="If">if</FONT>( ! <FONT CLASS="StringLiteral">""</FONT>.equals(clause)){
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>                    <FONT CLASS="Short">short</FONT> clauseS = clauseToShort(clause);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                    <FONT CLASS="If">if</FONT>( ! (clauseS == <FONT CLASS="IntegerLiteral">1</FONT> || clauseS == <FONT CLASS="IntegerLiteral">2</FONT> || clauseS == <FONT CLASS="IntegerLiteral">3</FONT> )){
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>                        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>                    }
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>                }         
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            <FONT CLASS="If">if</FONT>( ! verMore &amp;&amp; i == <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>; <FONT CLASS="SingleLineComment">// nothing there!
+<FONT CLASS="LN">18</FONT><A NAME="118"></A></FONT>            }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        } 
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>            <FONT CLASS="SingleLineComment">// syntax exceptions
+<FONT CLASS="LN">24</FONT><A NAME="124"></A></FONT>            <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        }
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>    }
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>     * @return the number part of the clause
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>     */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Short">short</FONT> getVersion(<FONT CLASS="Final">final</FONT> String section) {
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        StringBuffer sb = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; section.length(); i++) {
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            <FONT CLASS="Char">char</FONT> c = section.charAt(i);
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            <FONT CLASS="If">if</FONT>(Character.isDigit(c)) {
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                sb.append(c);
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            }
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>                <FONT CLASS="Return">return</FONT> Short.parseShort( sb.toString() );
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            }
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>        }
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>        <FONT CLASS="If">if</FONT>(sb.length() &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>            <FONT CLASS="Return">return</FONT> Short.parseShort( sb.toString() );
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        }
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>    
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>     * @return  the clause eg beta or ""
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>     */</FONT>
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>    <FONT CLASS="Private">private</FONT> String getClause(<FONT CLASS="Final">final</FONT> String section) {
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; section.length(); i++) {
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>            <FONT CLASS="Char">char</FONT> c = section.charAt(i);
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>            <FONT CLASS="If">if</FONT>(Character.isDigit(c)) {
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>                <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>            }
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>                <FONT CLASS="Return">return</FONT> section.substring(i);
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>            }
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> higherClause(<FONT CLASS="Final">final</FONT> String test, <FONT CLASS="Final">final</FONT> String clause, <FONT CLASS="Final">final</FONT> <FONT CLASS="Boolean">boolean</FONT> javaSyntax) {
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>        <FONT CLASS="If">if</FONT>(javaSyntax) {
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>            <FONT CLASS="Return">return</FONT> clauseJavaToShort(test) &gt; clauseJavaToShort(clause);
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>        }
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>            <FONT CLASS="Return">return</FONT> clauseToShort(test) &gt; clauseToShort(clause);
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>            
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> equalClause(<FONT CLASS="Final">final</FONT> String test, <FONT CLASS="Final">final</FONT> String clause) {
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>        <FONT CLASS="Return">return</FONT> clauseToShort(test) == clauseToShort(clause);
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>    
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Short">short</FONT> clauseToShort(String clause) {
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>        <FONT CLASS="If">if</FONT>(clause.startsWith(<FONT CLASS="StringLiteral">"-"</FONT>)){
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>            clause = clause.substring(<FONT CLASS="IntegerLiteral">1</FONT>); <FONT CLASS="SingleLineComment">// knock off java style 1-beta dashes
+<FONT CLASS="LN">79</FONT><A NAME="179"></A></FONT>        }
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>        <FONT CLASS="If">if</FONT>( CLAUSE_ALPHA.equals(clause) ) {
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">3</FONT>;
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>        }
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>( CLAUSE_BETA.equals(clause) ) {
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">2</FONT>;
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>        }
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>( CLAUSE_GAMMA.equals(clause) ) {
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>        <FONT CLASS="If">if</FONT>(clause.startsWith(<FONT CLASS="StringLiteral">"_"</FONT>)) { <FONT CLASS="SingleLineComment">// java build version support 1_03-ea-beta  (discarding the sub sub clause "-ea-beta" because I'm lazy)
+<FONT CLASS="LN">90</FONT><A NAME="190"></A></FONT>            <FONT CLASS="Int">int</FONT> hasDash = clause.indexOf(<FONT CLASS="CharacerLiteral">'-'</FONT>);
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>            <FONT CLASS="If">if</FONT>(hasDash &gt; -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>                <FONT CLASS="Return">return</FONT> Short.parseShort(clause.substring(<FONT CLASS="IntegerLiteral">1</FONT>, hasDash));
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>            }
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>                <FONT CLASS="Return">return</FONT> Short.parseShort(clause.substring(<FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>            }
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="Return">return</FONT> Short.MAX_VALUE; <FONT CLASS="SingleLineComment">// no clause assumes higher
+<FONT CLASS="LN">99</FONT><A NAME="199"></A></FONT>    }
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>    
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Short">short</FONT> clauseJavaToShort(String clause) {
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>        <FONT CLASS="If">if</FONT>(clause.startsWith(<FONT CLASS="StringLiteral">"-"</FONT>)){
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>            clause = clause.substring(<FONT CLASS="IntegerLiteral">1</FONT>); <FONT CLASS="SingleLineComment">// knock off java style 1-beta dashes
+<FONT CLASS="LN">04</FONT><A NAME="204"></A></FONT>        }
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>( CLAUSE_JAVA_BETA.equals(clause) ) {  <FONT CLASS="SingleLineComment">// -ea early access are assumed to be less good
+<FONT CLASS="LN">06</FONT><A NAME="206"></A></FONT>            <FONT CLASS="Return">return</FONT> -<FONT CLASS="IntegerLiteral">2</FONT>;
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>        }
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>        <FONT CLASS="If">if</FONT>(clause.startsWith(<FONT CLASS="StringLiteral">"_"</FONT>)) { <FONT CLASS="SingleLineComment">// java build version support 1_03-ea-beta  (discarding the sub sub clause "-ea-beta" because I'm lazy)
+<FONT CLASS="LN">09</FONT><A NAME="209"></A></FONT>            <FONT CLASS="Int">int</FONT> hasDash = clause.indexOf(<FONT CLASS="CharacerLiteral">'-'</FONT>);
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>            <FONT CLASS="If">if</FONT>(hasDash &gt; -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>                <FONT CLASS="Return">return</FONT> Short.parseShort(clause.substring(<FONT CLASS="IntegerLiteral">1</FONT>, hasDash));
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>            }
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>                <FONT CLASS="Return">return</FONT> Short.parseShort(clause.substring(<FONT CLASS="IntegerLiteral">1</FONT>));
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>            }
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>        }
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="Return">return</FONT> <FONT CLASS="IntegerLiteral">0</FONT>; <FONT CLASS="SingleLineComment">// no clause assumes lower in Java speak
+<FONT CLASS="LN">18</FONT><A NAME="218"></A></FONT>    }
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Short">short</FONT> countDots(<FONT CLASS="Final">final</FONT> String fullver){
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>        <FONT CLASS="Short">short</FONT> count = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; fullver.length(); i++) {
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>            <FONT CLASS="If">if</FONT>(fullver.charAt(i) == <FONT CLASS="CharacerLiteral">'.'</FONT>) {
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>                count++;
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>            }
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>        }
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>        <FONT CLASS="Return">return</FONT> count;
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>    
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Short">short</FONT> getMajorVersion(String test){
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>        <FONT CLASS="Return">return</FONT> getVersion(test);
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>}
+<FONT CLASS="LN">35</FONT><A NAME="235"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/AntLauncherFilter.java.html	(revision 14989)
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.AntLauncherFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AntLauncherFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.Map;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ResourceBundleHelper.java.html">org.tp23.antinstaller.ResourceBundleHelper</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/antmod/Launcher.java.html">org.tp23.antinstaller.antmod.Launcher</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> *
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * &lt;p&gt;Runs the Ant script using the Apache Ant launcher.&lt;/p&gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;This runner uses a modified version of the Apache launcher to provide us
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * with feed back as to the state of the install &lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @todo get better feed back and progress for the targets that have run successfully
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @todo this should be an interface not a class
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * @author Paul Hinds
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * @version $Id: AntLauncherFilter.java,v 1.6 2007/01/12 14:47:44 anothermwilson Exp $
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> */</FONT>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AntLauncherFilter <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A> {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/ResourceBundleHelper.java.html">ResourceBundleHelper</A> resHelper = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/ResourceBundleHelper.java.html">ResourceBundleHelper</A>(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> AntLauncherFilter() {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose())ctx.log(<FONT CLASS="StringLiteral">"Starting Ant Launcher"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            <FONT CLASS="SingleLineComment">//TODO this should be refactored to installer
+<FONT CLASS="LN">52</FONT><A NAME="52"></A></FONT>            List argsList = ctx.getInstaller().getTargets(ctx);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            String[] argsArr = <FONT CLASS="New">new</FONT> String[argsList.size() + <FONT CLASS="IntegerLiteral">4</FONT>];
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            argsList.toArray(argsArr);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            <FONT CLASS="If">if</FONT> (ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>                ctx.log(<FONT CLASS="StringLiteral">"Running targets:"</FONT> + printArray(argsArr));
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            System.out.println(<FONT CLASS="StringLiteral">"Targets:"</FONT>+printArray(argsArr));
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            argsArr[argsArr.length-<FONT CLASS="IntegerLiteral">2</FONT>] = <FONT CLASS="StringLiteral">"-lib"</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            argsArr[argsArr.length-<FONT CLASS="IntegerLiteral">1</FONT>] = <FONT CLASS="StringLiteral">"antlib"</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>            argsArr[argsArr.length-<FONT CLASS="IntegerLiteral">4</FONT>] = <FONT CLASS="StringLiteral">"-buildfile"</FONT>;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>            argsArr[argsArr.length - <FONT CLASS="IntegerLiteral">3</FONT>] = ctx.getFileRoot().getAbsolutePath() +
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>                    System.getProperty(<FONT CLASS="StringLiteral">"file.separator"</FONT>) +
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                    ctx.getAntBuildFile();
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="SingleLineComment">//Launcher uses stdout and stderr by default
+<FONT CLASS="LN">71</FONT><A NAME="71"></A></FONT>            System.setOut(ctx.getAntOutputRenderer().getOut());
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            System.setErr(ctx.getAntOutputRenderer().getErr());
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            Map properties = ctx.getInstaller().getResultContainer().getAllProperties();
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            <A HREF="../../../../../org/tp23/antinstaller/antmod/Launcher.java.html">Launcher</A> launcher = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/antmod/Launcher.java.html">Launcher</A>(properties);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            <FONT CLASS="Int">int</FONT> ok = launcher.run(argsArr, ctx);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            <FONT CLASS="If">if</FONT>(ok!=<FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>( resHelper.getMessage( <FONT CLASS="StringLiteral">"ant.failure"</FONT> ) );
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>                <FONT CLASS="SingleLineComment">//the default ctx.setInstallSucceded(false);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A></FONT>            }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                ctx.setInstallSucceded(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            ctx.log(<FONT CLASS="StringLiteral">"Ant finished"</FONT>);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            ctx.getRunner().antFinished();
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable ex) {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Error running the install, "</FONT> + ex.getMessage(), ex);
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>     * Used for debug to print the targets to system.out
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>     * @param args Object[]
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>     * @return String
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>     */</FONT>
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    <FONT CLASS="Private">private</FONT> String printArray(Object[] args){
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        StringBuffer sb = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; args.length-<FONT CLASS="IntegerLiteral">4</FONT>; i++) {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            <FONT CLASS="If">if</FONT> (i &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>                sb.append(<FONT CLASS="CharacerLiteral">','</FONT>);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            sb.append(args[i]);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        }
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <FONT CLASS="Return">return</FONT> sb.toString();
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>}
+<FONT CLASS="LN">07</FONT><A NAME="107"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/AntProjectFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/AntProjectFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/AntProjectFilter.java.html	(revision 14989)
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.AntProjectFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">AntProjectFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.FileOutputStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.net.MalformedURLException;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.net.URL;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.net.URLClassLoader;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> java.util.Map;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> java.util.Properties;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildListener;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.DefaultLogger;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Diagnostics;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Project;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.ProjectHelper;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.input.DefaultInputHandler;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.launch.Locator;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/antmod/ProjectHelper3.java.html">org.tp23.antinstaller.antmod.ProjectHelper3</A>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/selfextract/NonExtractor.java.html">org.tp23.antinstaller.selfextract.NonExtractor</A>;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/selfextract/SelfExtractor.java.html">org.tp23.antinstaller.selfextract.SelfExtractor</A>;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> *
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * &lt;p&gt;This AntRunner runs Ant builds directly from a Jar without having to extract
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * the build.xml to temporary space.&lt;/p&gt;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A> * @author Paul Hinds
+<FONT CLASS="LN">51</FONT><A NAME="51"></A> * @version $Id: AntProjectFilter.java,v 1.10 2007/01/28 08:44:39 teknopaul Exp $
+<FONT CLASS="LN">52</FONT><A NAME="52"></A> */</FONT>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> AntProjectFilter <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A>{
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="SingleLineComment">//TODO certain jars are added from Ant default directories that are probably not needed
+<FONT CLASS="LN">56</FONT><A NAME="56"></A></FONT>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> String antVersion = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="FormalComment">/** The Ant Home property - from default Launcher  */</FONT>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String ANTHOME_PROPERTY = <FONT CLASS="StringLiteral">"ant.home"</FONT>;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="FormalComment">/** The location of a per-user library directory - from default Launcher */</FONT>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String USER_LIBDIR = <FONT CLASS="StringLiteral">".ant/lib"</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Public">public</FONT> AntProjectFilter() {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>     * run Ant
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>     *
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>     * @param ctx InstallerContext
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>     * @throws InstallException
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>     * @todo Implement this org.tp23.antinstaller.runtime.AntRunner method
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>     */</FONT>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()) {
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            ctx.log(<FONT CLASS="StringLiteral">"Starting Ant Project"</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            Project project = <FONT CLASS="New">new</FONT> Project();
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            appendClassPath();
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>            setAntHome(ctx);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            project.setCoreLoader(<FONT CLASS="This">this</FONT>.getClass().getClassLoader());
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            DefaultLogger antLogger = <FONT CLASS="New">new</FONT> DefaultLogger();
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            antLogger.setOutputPrintStream(ctx.getAntOutputRenderer().getOut());
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            antLogger.setErrorPrintStream(ctx.getAntOutputRenderer().getErr());
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            antLogger.setMessageOutputLevel(Project.MSG_INFO);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            BuildListener bl = ctx.getBuildListener();
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            <FONT CLASS="If">if</FONT>(bl != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                project.addBuildListener(bl);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            project.addBuildListener(antLogger);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            <FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>             * Log useful ant task output to the log file to help debugging
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>             * and for customer support
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>             */</FONT>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            <FONT CLASS="Final">final</FONT> String logFileName = ctx.getLogger().getFileName();
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            <FONT CLASS="If">if</FONT>( logFileName != <FONT CLASS="Null">null</FONT> &amp;&amp; logFileName.length() &gt; <FONT CLASS="IntegerLiteral">0</FONT> )
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>            {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>                PrintStream stream = <FONT CLASS="New">new</FONT> PrintStream( <FONT CLASS="New">new</FONT> FileOutputStream(logFileName, <FONT CLASS="True">true</FONT>), <FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>                DefaultLogger antFileLogger = <FONT CLASS="New">new</FONT> DefaultLogger();
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>                antFileLogger.setOutputPrintStream( stream );
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>                antFileLogger.setErrorPrintStream( stream );
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>                <FONT CLASS="Int">int</FONT> logLevel = (ctx.getInstaller().isVerbose())
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>                                    ? Project.MSG_VERBOSE
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>                                    : Project.MSG_INFO;
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                antFileLogger.setMessageOutputLevel( logLevel );
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>                project.addBuildListener( antFileLogger );
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            <FONT CLASS="SingleLineComment">// irrelevant really but might help someone on a command line
+<FONT CLASS="LN">17</FONT><A NAME="117"></A></FONT>            project.setInputHandler(<FONT CLASS="New">new</FONT> DefaultInputHandler());
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>            project.fireBuildStarted();
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>            
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>            project.init();
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>            project.setUserProperty(<FONT CLASS="StringLiteral">"ant.version"</FONT>, getAntVersion());
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>            <FONT CLASS="SingleLineComment">// add properties
+<FONT CLASS="LN">25</FONT><A NAME="125"></A></FONT>            <FONT CLASS="SingleLineComment">// N.B. properties are not loaded from the file it exists for debugging installers
+<FONT CLASS="LN">26</FONT><A NAME="126"></A></FONT>            String arg;
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>            String value;
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            Map properties = ctx.getInstaller().getResultContainer().getAllProperties();
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>            Iterator iter = properties.keySet().iterator();
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>            <FONT CLASS="While">while</FONT> (iter.hasNext()) {
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                arg = (String) iter.next();
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>                value = (String) properties.get(arg);
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>                project.setUserProperty(arg, value);
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>            
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            <FONT CLASS="SingleLineComment">// From here we immitate Main
+<FONT CLASS="LN">37</FONT><A NAME="137"></A></FONT>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>                Diagnostics.validateVersion();
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            } <FONT CLASS="Catch">catch</FONT> (Throwable exc) {
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>                <FONT CLASS="SingleLineComment">// minimal messages for the benefit of the command line install
+<FONT CLASS="LN">41</FONT><A NAME="141"></A></FONT>                System.err.println(<FONT CLASS="StringLiteral">"Version error:"</FONT> + exc.getClass() + <FONT CLASS="StringLiteral">","</FONT> + exc.getMessage());
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>                <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>            }
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>             
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>            ProjectHelper helper = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/antmod/ProjectHelper3.java.html">ProjectHelper3</A>();
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>            project.addReference(<FONT CLASS="StringLiteral">"ant.projectHelper"</FONT>, helper);
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>            
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>            File buildXml = <FONT CLASS="New">new</FONT> File(ctx.getFileRoot(), ctx.getAntBuildFile());
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>            <FONT CLASS="If">if</FONT>(buildXml.exists()){
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>                helper.parse(project, buildXml);
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>                project.setUserProperty(<FONT CLASS="StringLiteral">"ant.file"</FONT>,buildXml.getAbsolutePath());
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>                URL buildIS = <FONT CLASS="This">this</FONT>.getClass().getResource(<FONT CLASS="StringLiteral">"/"</FONT> + ctx.getAntBuildFile());
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>                helper.parse(project, buildIS);
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>                project.setUserProperty(<FONT CLASS="StringLiteral">"ant.file"</FONT>, buildIS.toExternalForm());
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            }
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>            
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>            File enclosingJar = SelfExtractor.getEnclosingJar(<FONT CLASS="This">this</FONT>);
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>            project.setUserProperty(NonExtractor.ANTINSTALLER_JAR_PROPERTY , enclosingJar.getAbsolutePath());
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>            System.out.println(NonExtractor.ANTINSTALLER_JAR_PROPERTY + enclosingJar.getAbsolutePath());
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>            <FONT CLASS="SingleLineComment">//what is this !?! project.setKeepGoingMode(keepGoingMode);
+<FONT CLASS="LN">63</FONT><A NAME="163"></A></FONT>
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>            project.setBaseDir(ctx.getFileRoot());
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>            project.executeTargets(ctx.getInstaller().getTargets(ctx));
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>            project.fireBuildFinished(<FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>            ctx.setInstallSucceded(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>            ctx.log(<FONT CLASS="StringLiteral">"Ant finished"</FONT>);
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>        }
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable e) {
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Error running the install, "</FONT> + e.getMessage(), e);
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>        <FONT CLASS="Finally">finally</FONT> {
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>            ctx.getRunner().antFinished();
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>        }
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>    }
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Synchronized">synchronized</FONT> String getAntVersion() <FONT CLASS="Throws">throws</FONT> BuildException {
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>         <FONT CLASS="If">if</FONT> (antVersion == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>             <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>                 Properties props = <FONT CLASS="New">new</FONT> Properties();
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>                 InputStream in =
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>                     <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/AntProjectFilter.java.html">AntProjectFilter</A>.<FONT CLASS="Class">class</FONT>.getResourceAsStream(<FONT CLASS="StringLiteral">"/org/apache/tools/ant/version.txt"</FONT>);
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>                 props.load(in);
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>                 in.close();
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>                 StringBuffer msg = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>                 msg.append(<FONT CLASS="StringLiteral">"Apache Ant version "</FONT>);
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>                 msg.append(props.getProperty(<FONT CLASS="StringLiteral">"VERSION"</FONT>));
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>                 msg.append(<FONT CLASS="StringLiteral">" compiled on "</FONT>);
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>                 msg.append(props.getProperty(<FONT CLASS="StringLiteral">"DATE"</FONT>));
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>                 antVersion = msg.toString();
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>             } <FONT CLASS="Catch">catch</FONT> (IOException ioe) {
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>                 <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Could not load the version information:"</FONT>
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>                                          + ioe.getMessage());
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>             } <FONT CLASS="Catch">catch</FONT> (NullPointerException npe) {
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>                 <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Could not load the version information."</FONT>);
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>             }
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>         }
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>         <FONT CLASS="Return">return</FONT> antVersion;
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>     }
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>    
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>     * Append extra Ant jars to the classpath the original classpath 
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>     * is not removed incase the installer is launched from a script
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>     *
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>     */</FONT>
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> appendClassPath(){
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>            <FONT CLASS="SingleLineComment">// now update the class.path property
+<FONT CLASS="LN">13</FONT><A NAME="213"></A></FONT>            StringBuffer baseClassPath
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>                = <FONT CLASS="New">new</FONT> StringBuffer(System.getProperty(<FONT CLASS="StringLiteral">"java.class.path"</FONT>));
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>            <FONT CLASS="If">if</FONT> (baseClassPath.charAt(baseClassPath.length() - <FONT CLASS="IntegerLiteral">1</FONT>)
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>                == File.pathSeparatorChar) {
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>                baseClassPath.setLength(baseClassPath.length() - <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>            }
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>            URL[] jars = getLibPaths();
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; jars.length; ++i) {
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>                baseClassPath.append(File.pathSeparatorChar);
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>                baseClassPath.append(Locator.fromURI(jars[i].toString()));
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>            }
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>            System.setProperty(<FONT CLASS="StringLiteral">"java.class.path"</FONT>, baseClassPath.toString());
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>            URLClassLoader loader = <FONT CLASS="New">new</FONT> URLClassLoader(jars);
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>            Thread.currentThread().setContextClassLoader(loader);
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>        }
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>        <FONT CLASS="Catch">catch</FONT> (MalformedURLException e) {
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>            <FONT CLASS="SingleLineComment">// swallow exception, normally all resources are already loaded
+<FONT CLASS="LN">32</FONT><A NAME="232"></A></FONT>            System.err.println(<FONT CLASS="StringLiteral">"Invalid Jar path"</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>        }
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>    
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>    
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>     * Ant home is not a requirement but can exist prior to loading
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>     * the default Ant mechanism of using the current Jars parent
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>     * is consipicuously absent, do not rely on ANT_HOME out side of a 
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>     * controlled environment (e.g. a normal install)
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>     */</FONT>
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> setAntHome(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>        String antHomeProperty = System.getProperty(ANTHOME_PROPERTY);
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>        <FONT CLASS="If">if</FONT>(antHomeProperty==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>            System.setProperty(ANTHOME_PROPERTY, ctx.getFileRoot().getAbsolutePath());
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>        }
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>    }
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>    
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>     * To maintain compatability with previous verisons currently the only
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>     * Ant command line argument supported is the -lib parameter with the value
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>     * "antlib"
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>     * @TODO this should probably be removed
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>     * @throws MalformedURLException
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>     */</FONT>
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> URL[] getLibPaths() <FONT CLASS="Throws">throws</FONT> MalformedURLException{
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>        
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>        <FONT CLASS="SingleLineComment">// add all Jars from the ./antlib directory at the time of the build
+<FONT CLASS="LN">60</FONT><A NAME="260"></A></FONT>        <FONT CLASS="SingleLineComment">// this is NOT based on ANT_HOME
+<FONT CLASS="LN">61</FONT><A NAME="261"></A></FONT>        URL[] libJars = Locator.getLocationURLs(<FONT CLASS="New">new</FONT> File(<FONT CLASS="StringLiteral">"antlib"</FONT>));
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>        <FONT CLASS="SingleLineComment">// add all the Jars from ~/.ant/lib
+<FONT CLASS="LN">64</FONT><A NAME="264"></A></FONT>        <FONT CLASS="SingleLineComment">// this is probably irrelevant for a normal install
+<FONT CLASS="LN">65</FONT><A NAME="265"></A></FONT>        URL[] userJars = Locator.getLocationURLs(<FONT CLASS="New">new</FONT> File(USER_LIBDIR));
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>        <FONT CLASS="SingleLineComment">// Now try and find JAVA_HOME
+<FONT CLASS="LN">68</FONT><A NAME="268"></A></FONT>        File toolsJar = Locator.getToolsJar();
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>        <FONT CLASS="Int">int</FONT> jarsLength = libJars.length + userJars.length + (toolsJar!=<FONT CLASS="Null">null</FONT>?<FONT CLASS="IntegerLiteral">1</FONT>:<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>        URL[] allJars = <FONT CLASS="New">new</FONT> URL[jarsLength];
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>        <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>        <FONT CLASS="If">if</FONT>(toolsJar != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>            allJars[i++] = toolsJar.toURL();
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>        <FONT CLASS="If">if</FONT>(libJars.length != <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>            System.arraycopy(libJars, <FONT CLASS="IntegerLiteral">0</FONT>, allJars, i, libJars.length);
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>            i += libJars.length;
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>        }
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>        <FONT CLASS="If">if</FONT>(userJars.length != <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>            System.arraycopy(userJars, <FONT CLASS="IntegerLiteral">0</FONT>, allJars, i, userJars.length);
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>            <FONT CLASS="SingleLineComment">//i+=userJars.length;
+<FONT CLASS="LN">83</FONT><A NAME="283"></A></FONT>            <FONT CLASS="SingleLineComment">//assert(allJars.length=i-1);
+<FONT CLASS="LN">84</FONT><A NAME="284"></A></FONT>        }
+<FONT CLASS="LN">85</FONT><A NAME="285"></A>        <FONT CLASS="Return">return</FONT> libJars;
+<FONT CLASS="LN">86</FONT><A NAME="286"></A>    }
+<FONT CLASS="LN">87</FONT><A NAME="287"></A>    
+<FONT CLASS="LN">88</FONT><A NAME="288"></A>
+<FONT CLASS="LN">89</FONT><A NAME="289"></A>}
+<FONT CLASS="LN">90</FONT><A NAME="290"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/CreateLoggerFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/CreateLoggerFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/CreateLoggerFilter.java.html	(revision 14989)
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.CreateLoggerFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CreateLoggerFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/SimpleLogger.java.html">org.tp23.antinstaller.runtime.SimpleLogger</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * Creates a suitable logger for the install.  The logging does not
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * throw exceptions since it is mainly for debug and we dont want to 
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * stop an install just because logging is not working
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author Paul Hinds
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id: CreateLoggerFilter.java,v 1.3 2007/01/09 22:41:40 teknopaul Exp $
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CreateLoggerFilter <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A> {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String LOG_FILE_NAME = <FONT CLASS="StringLiteral">"ant.install.log"</FONT>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>     */</FONT>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <A HREF="../../../../../org/tp23/antinstaller/runtime/SimpleLogger.java.html">SimpleLogger</A> logger = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/SimpleLogger.java.html">SimpleLogger</A>();
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        ctx.setLogger( logger );
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            String defaultName = <FONT CLASS="StringLiteral">"./ant.install.log"</FONT>;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>            <FONT CLASS="SingleLineComment">// @since 0.7.1 RFE-1154368 for installs from CD where ./ is not writable
+<FONT CLASS="LN">43</FONT><A NAME="43"></A></FONT>            File defaultFile = <FONT CLASS="New">new</FONT> File(defaultName);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>                <FONT CLASS="If">if</FONT>( !defaultFile.exists() ){
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>                    defaultFile.createNewFile();
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>                }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            <FONT CLASS="Catch">catch</FONT>(Exception e) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>                ;<FONT CLASS="SingleLineComment">// ignore canWrite() will return false
+<FONT CLASS="LN">51</FONT><A NAME="51"></A></FONT>            }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <FONT CLASS="If">if</FONT>(defaultFile.canWrite()) {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>                logger.setFileName(defaultName);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>                String tempDir = ctx.getFileRoot().getAbsolutePath();
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>                logger.setFileName(tempDir+System.getProperty(<FONT CLASS="StringLiteral">"file.separator"</FONT>) + LOG_FILE_NAME);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            ctx.log(<FONT CLASS="StringLiteral">"Ant basedir:"</FONT> + ctx.getFileRoot().getCanonicalPath());
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable ex1) {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            ex1.printStackTrace();
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            logger.close();
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            <FONT CLASS="SingleLineComment">// swallow exceptions
+<FONT CLASS="LN">65</FONT><A NAME="65"></A></FONT>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>}
+<FONT CLASS="LN">69</FONT><A NAME="69"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/CreateUIFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/CreateUIFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/CreateUIFilter.java.html	(revision 14989)
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.CreateUIFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CreateUIFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.StringTokenizer;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html">org.tp23.antinstaller.renderer.swing.plaf.LookAndFeelFactory</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/AutoSwingRunner.java.html">org.tp23.antinstaller.runtime.AutoSwingRunner</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/AutoTextRunner.java.html">org.tp23.antinstaller.runtime.AutoTextRunner</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/Runner.java.html">org.tp23.antinstaller.runtime.Runner</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/SwingRunner.java.html">org.tp23.antinstaller.runtime.SwingRunner</A>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/TextRunner.java.html">org.tp23.antinstaller.runtime.TextRunner</A>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * Creates the Runner instance for the execution UI and sets up an appropriate
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * message renderer.
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @author Paul Hinds
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * @version $Id: CreateUIFilter.java,v 1.7 2007/01/28 17:49:15 teknopaul Exp $
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> */</FONT>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CreateUIFilter <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A> {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>     * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>     */</FONT>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()){
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>                ctx.log(<FONT CLASS="StringLiteral">"Creating UI classes"</FONT>);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>            ctx.setRunner(getRunner(ctx));
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            ctx.log(<FONT CLASS="StringLiteral">"Created UI classes"</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Unable to create the user interface"</FONT>, e);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        }
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> e) {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(e.getMessage(), e);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     * Determines which Runner to use text or swing or "auto" UIs which skip past the properties sreens.
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>     * @param override String if this paramter is not null it will be used. If
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>     * swing and there is no graphics environment the install will fail, if it is left
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>     * as null a check is made to see if there is a Graphics Environment and swing is used
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>     * if there are no errors, if there are errors the system falls back to the text console
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     *
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>     * @throws IOException
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>     * @return Runner
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     */</FONT>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/AutoSwingRunner.java.html">Runner</A> getRunner(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> IOException, <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="If">if</FONT>(ctx.getUIOverride() != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="If">if</FONT> (ctx.getUIOverride().equalsIgnoreCase(<FONT CLASS="StringLiteral">"swing"</FONT>)){
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>                <FONT CLASS="If">if</FONT>(isUi(<FONT CLASS="StringLiteral">"swing"</FONT>, ctx.getInstaller().getUi())){
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                    <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html">LookAndFeelFactory</A>(ctx).setLAF();
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/AutoSwingRunner.java.html">SwingRunner</A>(ctx);
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                }<FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not a permited UI override, swing is not allowed"</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                }
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="If">if</FONT> (ctx.getUIOverride().equalsIgnoreCase(<FONT CLASS="StringLiteral">"text"</FONT>)){
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                <FONT CLASS="If">if</FONT>(isUi(<FONT CLASS="StringLiteral">"text"</FONT>, ctx.getInstaller().getUi())){
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/AutoTextRunner.java.html">TextRunner</A>(ctx);
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                }<FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not a permited UI override, text is not allowed"</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            <FONT CLASS="If">if</FONT> (ctx.getUIOverride().equalsIgnoreCase(<FONT CLASS="StringLiteral">"swing-auto"</FONT>)){
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                <FONT CLASS="If">if</FONT>(isUi(<FONT CLASS="StringLiteral">"swing-auto"</FONT>, ctx.getInstaller().getUi())){
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                    <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html">LookAndFeelFactory</A>(ctx).setLAF();
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/AutoSwingRunner.java.html">AutoSwingRunner</A>(ctx);
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                }<FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not a permited UI override, swing-auto is not allowed"</FONT>);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>            }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            <FONT CLASS="If">if</FONT> (ctx.getUIOverride().equalsIgnoreCase(<FONT CLASS="StringLiteral">"text-auto"</FONT>)){
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>                <FONT CLASS="If">if</FONT>(isUi(<FONT CLASS="StringLiteral">"text-auto"</FONT>, ctx.getInstaller().getUi())){
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/AutoTextRunner.java.html">AutoTextRunner</A>(ctx);
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>                }<FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not a permited UI override, text-auto is not allowed"</FONT>);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>                }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        <FONT CLASS="SingleLineComment">//else do stuff to work out if there is a graphics context
+<FONT CLASS="LN">06</FONT><A NAME="106"></A></FONT>        <FONT CLASS="Try">try</FONT>{
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>            java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            <FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>             * Above test is not enough to be sure that we can use the graphics env
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>             * so do remaining setup within try/catch block
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>             */</FONT>
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html">LookAndFeelFactory</A>(ctx).setLAF();
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/AutoSwingRunner.java.html">SwingRunner</A>(ctx);
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        } <FONT CLASS="Catch">catch</FONT> (Throwable e){
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            System.out.println(<FONT CLASS="StringLiteral">"No graphics environment available, reverting to text"</FONT>);
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            System.out.println();
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/AutoTextRunner.java.html">TextRunner</A>(ctx);
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>    }
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>    
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>    
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> isUi(String ui, String commaSeparatedUiList){
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        StringTokenizer st = <FONT CLASS="New">new</FONT> StringTokenizer(commaSeparatedUiList, <FONT CLASS="StringLiteral">","</FONT>);
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        <FONT CLASS="While">while</FONT>(st.hasMoreTokens()){
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>            <FONT CLASS="If">if</FONT>(st.nextToken().equals(ui)){
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>            }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>        }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>    }
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>}
+<FONT CLASS="LN">33</FONT><A NAME="133"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html	(revision 14989)
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.ExecuteFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ExecuteFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * The Execute engine is being replaced with a filter pattern to enable
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * further extension of the system,  Initiallly a hardcoded filter chain
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * will be used subsequently to be replaced by a pluggable mechanism.
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @author Paul Hinds
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @version $Id: ExecuteFilter.java,v 1.1.1.1 2005/10/18 18:20:57 teknopaul Exp $
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> ExecuteFilter {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>}
+<FONT CLASS="LN">32</FONT><A NAME="32"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java.html	(revision 14989)
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ExecuteRunnerFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * Executes the Screens part of the build
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * @author Paul Hinds
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @version $Id: ExecuteRunnerFilter.java,v 1.3 2006/12/21 01:48:51 teknopaul Exp $
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> */</FONT>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ExecuteRunnerFilter <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A> {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>     * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>     */</FONT>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()){
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>            ctx.log(<FONT CLASS="StringLiteral">"Starting UI Screens"</FONT>);
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="Boolean">boolean</FONT> ok = ctx.getRunner().runInstaller();
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="If">if</FONT>(!ok){
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> AbortException(<FONT CLASS="StringLiteral">"Install Aborted"</FONT>);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        ctx.log(<FONT CLASS="StringLiteral">"Install screens rendered"</FONT>);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> AbortException <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>{
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="Public">public</FONT> AbortException(String message){
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            <FONT CLASS="Super">super</FONT>(message);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>}
+<FONT CLASS="LN">49</FONT><A NAME="49"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/FilterChain.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/FilterChain.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/FilterChain.java.html	(revision 14989)
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.FilterChain (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">FilterChain.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * A filter chain is a series of operations to be run by the ExecInstall class.
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * This defines the sequence of events in the installer and provides for pluggable
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * extra sequences for example post installtion messages or running the application.
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * All FilterChains should end in a FinalizerFilter.
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @author Paul Hinds
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @version $Id: FilterChain.java,v 1.1.1.1 2005/10/18 18:20:57 teknopaul Exp $
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> FilterChain {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> init(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx);
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A>[] getFilters();
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>}
+<FONT CLASS="LN">33</FONT><A NAME="33"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/FilterFactory.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/FilterFactory.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/FilterFactory.java.html	(revision 14989)
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.FilterFactory (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">FilterFactory.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * Loads FilterChains from resource files on the classpath with lists of class
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * names listed in order.  In the files lines starting with # and blank
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * lines are ignored
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @author Paul Hinds
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @version $Id: FilterFactory.java,v 1.4 2007/01/04 22:57:18 teknopaul Exp $
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> FilterFactory {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String FILTER_RESOURCE = <FONT CLASS="StringLiteral">"/antinstall-config.fconfig"</FONT>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> FilterFactory() {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">FilterChain</A> factory(String configResource) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>{
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            InputStream is = <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/FilterFactory.java.html">FilterFactory</A>.<FONT CLASS="Class">class</FONT>.getResourceAsStream(configResource);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            BufferedReader br = <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(is));
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>            String filterClass = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            <FONT CLASS="Final">final</FONT> List filterChain = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            <FONT CLASS="While">while</FONT>((filterClass = br.readLine())!=<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>                <FONT CLASS="If">if</FONT>(filterClass.startsWith(<FONT CLASS="StringLiteral">"#"</FONT>))<FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>                filterClass = filterClass.trim();
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>                <FONT CLASS="If">if</FONT>(filterClass.equals(<FONT CLASS="StringLiteral">""</FONT>)){
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>                    <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>                }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>                filterChain.add( Class.forName(filterClass).newInstance() );
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>            }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            br.close();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> DynamicFilterChain(configResource, filterChain);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            e.printStackTrace();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            e.printStackTrace();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Can not create FilterChain"</FONT>);
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> DynamicFilterChain <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">FilterChain</A>{
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A>[] filters;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="Private">private</FONT> String configResource;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        <FONT CLASS="Private">private</FONT> DynamicFilterChain(String configResource, List filterChain){
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            <FONT CLASS="This">this</FONT>.configResource = configResource;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            filters = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A>[filterChain.size()];
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            filterChain.toArray(filters);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> init(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            ctx.setConfigResource(configResource);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        <FONT CLASS="Public">public</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A>[] getFilters(){
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            <FONT CLASS="Return">return</FONT> filters;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    };
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>}
+<FONT CLASS="LN">87</FONT><A NAME="87"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/FinalizerFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/FinalizerFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/FinalizerFilter.java.html	(revision 14989)
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.FinalizerFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">FinalizerFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * This filter is called at the end of the install. This is not the 
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * last Java operation since a shutDownHook is present to delete temporary
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * files and in the GUI version the screen should not dissappear.
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * All filter chains must end in a FinalizerFilter or subclass
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * and the exec method must not throw an Exception.
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * 
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @author Paul Hinds
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @version $Id: FinalizerFilter.java,v 1.3 2007/01/04 22:57:17 teknopaul Exp $
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> */</FONT>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> FinalizerFilter <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A> {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="SingleLineComment">// TODO as per FindBugs the System.exit(0) in SwingPageRenderer prevents this running
+<FONT CLASS="LN">34</FONT><A NAME="34"></A></FONT>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>     * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>     */</FONT>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx){
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            ctx.log(<FONT CLASS="StringLiteral">"Finalizing"</FONT>);
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            ctx.getLogger().close();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable e) {
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>            e.printStackTrace();
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>}
+<FONT CLASS="LN">48</FONT><A NAME="48"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/InputStreamLoadConfigFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/InputStreamLoadConfigFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/InputStreamLoadConfigFilter.java.html	(revision 14989)
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.InputStreamLoadConfigFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">InputStreamLoadConfigFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @author Paul Hinds
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @version $Id: InputStreamLoadConfigFilter.java,v 1.4 2007/01/28 08:44:39 teknopaul Exp $
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> InputStreamLoadConfigFilter <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java.html">LoadConfigFilter</A> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>            InputStream config = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(<FONT CLASS="StringLiteral">"/"</FONT> + ctx.getInstallerConfigFile());
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>            <FONT CLASS="If">if</FONT>(config == <FONT CLASS="Null">null</FONT>){ <FONT CLASS="SingleLineComment">// passed in incorrectly on the command line or bad installer
+<FONT CLASS="LN">38</FONT><A NAME="38"></A></FONT>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> IOException();
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            }
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            readConfig(ctx.getFileRoot(), config);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            ctx.setInstaller(installer);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>            ctx.log(<FONT CLASS="StringLiteral">"Config loaded"</FONT>);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        }
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not able to load and read the AntInstaller config"</FONT>,e);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> e) {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not able to load and read the AntInstaller config"</FONT>,e);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    }
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>}
+<FONT CLASS="LN">52</FONT><A NAME="52"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/LoadConfigFilter.java.html	(revision 14989)
@@ -0,0 +1,497 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.LoadConfigFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LoadConfigFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.FileInputStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.lang.reflect.InvocationTargetException;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.lang.reflect.Method;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.xml.parsers.DocumentBuilder;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> javax.xml.parsers.DocumentBuilderFactory;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/Installer.java.html">org.tp23.antinstaller.Installer</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/AppRootInput.java.html">org.tp23.antinstaller.input.AppRootInput</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CheckboxInput.java.html">org.tp23.antinstaller.input.CheckboxInput</A>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">org.tp23.antinstaller.input.CommentOutput</A>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">org.tp23.antinstaller.input.ConditionalField</A>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConfirmPasswordTextInput.java.html">org.tp23.antinstaller.input.ConfirmPasswordTextInput</A>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">org.tp23.antinstaller.input.DateInput</A>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DirectoryInput.java.html">org.tp23.antinstaller.input.DirectoryInput</A>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ExtValidatedTextInput.java.html">org.tp23.antinstaller.input.ExtValidatedTextInput</A>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/FileInput.java.html">org.tp23.antinstaller.input.FileInput</A>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/HiddenPropertyInput.java.html">org.tp23.antinstaller.input.HiddenPropertyInput</A>;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">org.tp23.antinstaller.input.LargeSelectInput</A>;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">org.tp23.antinstaller.input.PasswordTextInput</A>;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/SelectInput.java.html">org.tp23.antinstaller.input.SelectInput</A>;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">org.tp23.antinstaller.input.TargetInput</A>;
+<FONT CLASS="LN">48</FONT><A NAME="48"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">org.tp23.antinstaller.input.TargetSelectInput</A>;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/UnvalidatedTextInput.java.html">org.tp23.antinstaller.input.UnvalidatedTextInput</A>;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ValidatedTextInput.java.html">org.tp23.antinstaller.input.ValidatedTextInput</A>;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">org.tp23.antinstaller.page.LicensePage</A>;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/ProgressPage.java.html">org.tp23.antinstaller.page.ProgressPage</A>;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">org.tp23.antinstaller.page.SimpleInputPage</A>;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SplashPage.java.html">org.tp23.antinstaller.page.SplashPage</A>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/TextPage.java.html">org.tp23.antinstaller.page.TextPage</A>;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A><FONT CLASS="Import">import</FONT> org.w3c.dom.Document;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A><FONT CLASS="Import">import</FONT> org.w3c.dom.Element;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A><FONT CLASS="Import">import</FONT> org.w3c.dom.NamedNodeMap;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A><FONT CLASS="Import">import</FONT> org.w3c.dom.Node;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A><FONT CLASS="Import">import</FONT> org.w3c.dom.NodeList;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A><FONT CLASS="Import">import</FONT> org.xml.sax.EntityResolver;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A><FONT CLASS="Import">import</FONT> org.xml.sax.InputSource;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">68</FONT><A NAME="68"></A> * Loads the Ant Install configuration and sets the Installer object back
+<FONT CLASS="LN">69</FONT><A NAME="69"></A> * into the context.  A similar technique to the apache digester is used to
+<FONT CLASS="LN">70</FONT><A NAME="70"></A> * populate object attributes in this class.
+<FONT CLASS="LN">71</FONT><A NAME="71"></A> * N.B. The only types that can be set for object attributes are Strings, booleans
+<FONT CLASS="LN">72</FONT><A NAME="72"></A> * or ints.
+<FONT CLASS="LN">73</FONT><A NAME="73"></A> * @author Paul Hinds
+<FONT CLASS="LN">74</FONT><A NAME="74"></A> * @version $Id: LoadConfigFilter.java,v 1.9 2007/01/28 08:44:39 teknopaul Exp $
+<FONT CLASS="LN">75</FONT><A NAME="75"></A> */</FONT>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LoadConfigFilter <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A> {
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="SingleLineComment">//TODO move to InstallerContext
+<FONT CLASS="LN">79</FONT><A NAME="79"></A></FONT>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String INSTALLER_CONFIG_FILE = <FONT CLASS="StringLiteral">"antinstall-config.xml"</FONT>;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/Installer.java.html">Installer</A>();
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>     * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>     */</FONT>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        <FONT CLASS="This">this</FONT>.ctx = ctx;
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            installer = readConfig(ctx.getFileRoot(), ctx.getInstallerConfigFile());
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            ctx.setInstaller(installer);
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            ctx.log(<FONT CLASS="StringLiteral">"Config loaded"</FONT>);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not able to load and read the AntInstaller config"</FONT>, e);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> e) {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">"Not able to load and read the AntInstaller config"</FONT>, e);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>     * Currently read the config using any available XML parser
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>     * This method reads the config from the file system
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>     * @param fileRoot The directory where the config file is stored
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>     * @param the name of the configuration file (usually antinstall-config.xml)
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>     * @return Installer
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>     */</FONT>
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    <FONT CLASS="Public">public</FONT> <A HREF="../../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> readConfig(File fileRoot, String fileName) <FONT CLASS="Throws">throws</FONT> IOException, <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        installer.getResultContainer().setInstallRoot(fileRoot);
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        File config = <FONT CLASS="New">new</FONT> File(fileRoot, fileName);
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        <FONT CLASS="If">if</FONT>(!config.exists()){ <FONT CLASS="SingleLineComment">// passed in incorrectly on the command line or bad installer
+<FONT CLASS="LN">16</FONT><A NAME="116"></A></FONT>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> IOException();
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        }
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        InputSource xmlInp = <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="New">new</FONT> FileInputStream(config));
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        readConfig(xmlInp);
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        <FONT CLASS="Return">return</FONT> installer;
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>    }
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>     * This overloaded method reads from the provided input stream to facilitate
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>     * reading configs directly from the Jar, the file root is still needed 
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>     * for Ant's basedir. Used by InputStreamLoadConfigFilter
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>     * @return Installer
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>     */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> readConfig(File fileRoot, InputStream configSource) <FONT CLASS="Throws">throws</FONT> IOException, <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        installer.getResultContainer().setInstallRoot(fileRoot);
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>        InputSource xmlInp = <FONT CLASS="New">new</FONT> InputSource(configSource);
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        readConfig(xmlInp);
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        <FONT CLASS="Return">return</FONT> installer;
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>     * Currently read the config using any available XML parser
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>     * @todo read the installer with only xerces
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>     * @return Installer
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>     */</FONT>
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>    <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> readConfig(InputSource xmlInp) <FONT CLASS="Throws">throws</FONT> IOException, <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>        Document doc = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>            DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>            DocumentBuilder parser = docBuilderFactory.newDocumentBuilder();
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>            
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>            <FONT CLASS="SingleLineComment">// RFE [ 1475361 ] Using a custom entity resolver
+<FONT CLASS="LN">52</FONT><A NAME="152"></A></FONT>            String entityResolverClass = System.getProperty(<FONT CLASS="StringLiteral">"antinstaller.EntityResolverClass"</FONT>);
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>            EntityResolver er = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>            <FONT CLASS="If">if</FONT>(entityResolverClass != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>                <FONT CLASS="Try">try</FONT>{
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>                    er = (EntityResolver)Class.forName(entityResolverClass).newInstance();
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>                }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>                <FONT CLASS="Catch">catch</FONT>(Exception e){
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>                    <FONT CLASS="SingleLineComment">// Property error use default this is a very specific requirement
+<FONT CLASS="LN">60</FONT><A NAME="160"></A></FONT>                    er = <FONT CLASS="New">new</FONT> CustomEntityResolver();
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>                }
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>            }
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>            <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>                er = <FONT CLASS="New">new</FONT> CustomEntityResolver();
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>            }
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>            
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>            parser.setEntityResolver(er);
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>            doc = parser.parse(xmlInp);
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>            Element root = doc.getDocumentElement();
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>            root.normalize();
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>            setProperties(installer, root.getAttributes());
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>            NodeList allPages = root.getElementsByTagName(<FONT CLASS="StringLiteral">"page"</FONT>);
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>            <FONT CLASS="SingleLineComment">//TODO make this pluggable
+<FONT CLASS="LN">75</FONT><A NAME="175"></A></FONT>            getPages(installer, allPages);
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>        }
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>        <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> IOException(<FONT CLASS="StringLiteral">"DomFactory error: caused by:"</FONT> + e.getClass() + <FONT CLASS="StringLiteral">":"</FONT> + e.getMessage());
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>        }
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>        <FONT CLASS="Return">return</FONT> installer;
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>    }
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>     * Used when reading the config
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>     * @param allPages NodeList
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>     * @throws ConfigurationException
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>     */</FONT>
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> getPages(<A HREF="../../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installerConfig, NodeList allPages) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>        ArrayList pages = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; allPages.getLength(); i++) {
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>            Element pageElem = (Element) allPages.item(i);
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>            <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">Page</A> page = getPageType(pageElem.getAttribute(<FONT CLASS="StringLiteral">"type"</FONT>));
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>            setProperties(page, pageElem.getAttributes());
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>            pages.add(page);
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>            getOutputFields(page, pageElem);
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>        }
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>        <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">Page</A>[] pageArr = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">Page</A>[pages.size()];
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>        pages.toArray(pageArr);
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>        installerConfig.setPages(pageArr);
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>    }
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>     * Used when reading the config
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>     * @param page Page
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>     * @param pageElem Element
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>     * @throws ConfigurationException
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>     */</FONT>
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> getOutputFields(<A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">Page</A> page, Element pageElem) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>        page.setOutputField( getInnerOutputFields( pageElem ));
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] getInnerOutputFields( Element elem) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>         NodeList allFields = elem.getChildNodes();
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>         ArrayList fields = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>         <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; allFields.getLength(); i++) {
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>             <FONT CLASS="If">if</FONT>(! (allFields.item(i) <FONT CLASS="InstanceOf">instanceof</FONT> Element))<FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>             Element fieldElem = (Element)allFields.item(i);
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>             <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field = getOutputFieldType(fieldElem.getNodeName(), fieldElem);
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>             <FONT CLASS="If">if</FONT>(field != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>                 setProperties(field, fieldElem.getAttributes());
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>                 fields.add(field);
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>                 field.setResultContainer(installer.getResultContainer());
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>             }
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>         }
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>         <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fieldArr = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[fields.size()];
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>         <FONT CLASS="Return">return</FONT> (<A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[])fields.toArray(fieldArr);
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>     }
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>     * Used when reading the config
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>     * @param type String
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>     * @throws ConfigurationException
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>     * @return Page
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>     */</FONT>
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">Page</A> getPageType(String type) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>        <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"license"</FONT>)) {
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/LicensePage.java.html">LicensePage</A>();
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>        }
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"input"</FONT>)) {
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SimpleInputPage.java.html">SimpleInputPage</A>();
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>        }
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"progress"</FONT>)) {
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/ProgressPage.java.html">ProgressPage</A>();
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>        }
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"splash"</FONT>)) {
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/SplashPage.java.html">SplashPage</A>();
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>        }
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"text"</FONT>)) {
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/TextPage.java.html">TextPage</A>();
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>        }
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"Unknown Page type:"</FONT> + type);
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>     * Used when reading the config
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>     * @param type String
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>     * @param field Element
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>     * @throws ConfigurationException
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>     * @return InputField
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>     */</FONT>
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> getOutputFieldType(String type, Element field) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>        <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"text"</FONT>)) {
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/UnvalidatedTextInput.java.html">UnvalidatedTextInput</A>();
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"directory"</FONT>)) {
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DirectoryInput.java.html">DirectoryInput</A>();
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>        }
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"target"</FONT>)) {
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A>();
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"file"</FONT>)) {
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/FileInput.java.html">FileInput</A>();
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>        }
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"comment"</FONT>)) {
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CommentOutput.java.html">CommentOutput</A>();
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>        }
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"checkbox"</FONT>)) {
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/CheckboxInput.java.html">CheckboxInput</A>();
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>        }
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"validated"</FONT>)) {
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ExtValidatedTextInput.java.html">ValidatedTextInput</A>();
+<FONT CLASS="LN">83</FONT><A NAME="283"></A>        }
+<FONT CLASS="LN">84</FONT><A NAME="284"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"ext-validated"</FONT>)) {
+<FONT CLASS="LN">85</FONT><A NAME="285"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ExtValidatedTextInput.java.html">ExtValidatedTextInput</A>();
+<FONT CLASS="LN">86</FONT><A NAME="286"></A>        }
+<FONT CLASS="LN">87</FONT><A NAME="287"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"password"</FONT>)) {
+<FONT CLASS="LN">88</FONT><A NAME="288"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConfirmPasswordTextInput.java.html">PasswordTextInput</A>();
+<FONT CLASS="LN">89</FONT><A NAME="289"></A>        }
+<FONT CLASS="LN">90</FONT><A NAME="290"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"password-confirm"</FONT>)) {
+<FONT CLASS="LN">91</FONT><A NAME="291"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConfirmPasswordTextInput.java.html">ConfirmPasswordTextInput</A>();
+<FONT CLASS="LN">92</FONT><A NAME="292"></A>        }
+<FONT CLASS="LN">93</FONT><A NAME="293"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"hidden"</FONT>)) {
+<FONT CLASS="LN">94</FONT><A NAME="294"></A>             <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/HiddenPropertyInput.java.html">HiddenPropertyInput</A>();
+<FONT CLASS="LN">95</FONT><A NAME="295"></A>         }
+<FONT CLASS="LN">96</FONT><A NAME="296"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"date"</FONT>)) {
+<FONT CLASS="LN">97</FONT><A NAME="297"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/DateInput.java.html">DateInput</A>();
+<FONT CLASS="LN">98</FONT><A NAME="298"></A>        }
+<FONT CLASS="LN">99</FONT><A NAME="299"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"app-root"</FONT>)) {
+<FONT CLASS="LN">00</FONT><A NAME="300"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/AppRootInput.java.html">AppRootInput</A>();
+<FONT CLASS="LN">01</FONT><A NAME="301"></A>        }
+<FONT CLASS="LN">02</FONT><A NAME="302"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"conditional"</FONT>)) {
+<FONT CLASS="LN">03</FONT><A NAME="303"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A> conditionalField = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A>();
+<FONT CLASS="LN">04</FONT><A NAME="304"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] outFields = getInnerOutputFields( field );
+<FONT CLASS="LN">05</FONT><A NAME="305"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>[] inFields = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>[ outFields.length ];
+<FONT CLASS="LN">06</FONT><A NAME="306"></A>            <FONT CLASS="For">for</FONT>( <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; outFields.length; i++ ) {
+<FONT CLASS="LN">07</FONT><A NAME="307"></A>                inFields[i] = (<A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>) outFields[i];
+<FONT CLASS="LN">08</FONT><A NAME="308"></A>            }
+<FONT CLASS="LN">09</FONT><A NAME="309"></A>            conditionalField.setFields( inFields );
+<FONT CLASS="LN">10</FONT><A NAME="310"></A>            <FONT CLASS="Return">return</FONT> conditionalField;
+<FONT CLASS="LN">11</FONT><A NAME="311"></A>        }
+<FONT CLASS="LN">12</FONT><A NAME="312"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"select"</FONT>)) {
+<FONT CLASS="LN">13</FONT><A NAME="313"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">SelectInput</A> sInput = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">SelectInput</A>();
+<FONT CLASS="LN">14</FONT><A NAME="314"></A>            NodeList allOptions = field.getElementsByTagName(<FONT CLASS="StringLiteral">"option"</FONT>);
+<FONT CLASS="LN">15</FONT><A NAME="315"></A>            ArrayList options = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">16</FONT><A NAME="316"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; allOptions.getLength(); i++) {
+<FONT CLASS="LN">17</FONT><A NAME="317"></A>                Element optionElem = (Element) allOptions.item(i);
+<FONT CLASS="LN">18</FONT><A NAME="318"></A>                <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">SelectInput.Option</A> option = sInput.getNewOption();
+<FONT CLASS="LN">19</FONT><A NAME="319"></A>                option.setText(optionElem.getAttribute(<FONT CLASS="StringLiteral">"text"</FONT>));
+<FONT CLASS="LN">20</FONT><A NAME="320"></A>                option.value = optionElem.getAttribute(<FONT CLASS="StringLiteral">"value"</FONT>);
+<FONT CLASS="LN">21</FONT><A NAME="321"></A>                options.add(option);
+<FONT CLASS="LN">22</FONT><A NAME="322"></A>            }
+<FONT CLASS="LN">23</FONT><A NAME="323"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">SelectInput.Option</A>[] optionArr = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">SelectInput.Option</A>[options.size()];
+<FONT CLASS="LN">24</FONT><A NAME="324"></A>            options.toArray(optionArr);
+<FONT CLASS="LN">25</FONT><A NAME="325"></A>            sInput.setOptions(optionArr);
+<FONT CLASS="LN">26</FONT><A NAME="326"></A>
+<FONT CLASS="LN">27</FONT><A NAME="327"></A>            <FONT CLASS="Return">return</FONT> sInput;
+<FONT CLASS="LN">28</FONT><A NAME="328"></A>        }
+<FONT CLASS="LN">29</FONT><A NAME="329"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"target-select"</FONT>)) {
+<FONT CLASS="LN">30</FONT><A NAME="330"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A> sInput = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A>();
+<FONT CLASS="LN">31</FONT><A NAME="331"></A>            NodeList allOptions = field.getElementsByTagName(<FONT CLASS="StringLiteral">"option"</FONT>);
+<FONT CLASS="LN">32</FONT><A NAME="332"></A>            ArrayList options = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">33</FONT><A NAME="333"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; allOptions.getLength(); i++) {
+<FONT CLASS="LN">34</FONT><A NAME="334"></A>                Element optionElem = (Element) allOptions.item(i);
+<FONT CLASS="LN">35</FONT><A NAME="335"></A>                <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">SelectInput.Option</A> option = sInput.getNewOption();
+<FONT CLASS="LN">36</FONT><A NAME="336"></A>                option.setText(optionElem.getAttribute(<FONT CLASS="StringLiteral">"text"</FONT>));
+<FONT CLASS="LN">37</FONT><A NAME="337"></A>                option.value = optionElem.getAttribute(<FONT CLASS="StringLiteral">"value"</FONT>);
+<FONT CLASS="LN">38</FONT><A NAME="338"></A>                options.add(option);
+<FONT CLASS="LN">39</FONT><A NAME="339"></A>            }
+<FONT CLASS="LN">40</FONT><A NAME="340"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">SelectInput.Option</A>[] optionArr = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">SelectInput.Option</A>[options.size()];
+<FONT CLASS="LN">41</FONT><A NAME="341"></A>            options.toArray(optionArr);
+<FONT CLASS="LN">42</FONT><A NAME="342"></A>            sInput.setOptions(optionArr);
+<FONT CLASS="LN">43</FONT><A NAME="343"></A>
+<FONT CLASS="LN">44</FONT><A NAME="344"></A>            <FONT CLASS="Return">return</FONT> sInput;
+<FONT CLASS="LN">45</FONT><A NAME="345"></A>        }
+<FONT CLASS="LN">46</FONT><A NAME="346"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (type.equalsIgnoreCase(<FONT CLASS="StringLiteral">"large-select"</FONT>)) {
+<FONT CLASS="LN">47</FONT><A NAME="347"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput</A> sInput = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput</A>();
+<FONT CLASS="LN">48</FONT><A NAME="348"></A>            NodeList allOptions = field.getElementsByTagName(<FONT CLASS="StringLiteral">"option"</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="349"></A>            ArrayList options = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">50</FONT><A NAME="350"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; allOptions.getLength(); i++) {
+<FONT CLASS="LN">51</FONT><A NAME="351"></A>                Element optionElem = (Element) allOptions.item(i);
+<FONT CLASS="LN">52</FONT><A NAME="352"></A>                <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput.Option</A> option = sInput.getNewOption();
+<FONT CLASS="LN">53</FONT><A NAME="353"></A>                option.setText(optionElem.getAttribute(<FONT CLASS="StringLiteral">"text"</FONT>));
+<FONT CLASS="LN">54</FONT><A NAME="354"></A>                option.value = optionElem.getAttribute(<FONT CLASS="StringLiteral">"value"</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="355"></A>                options.add(option);
+<FONT CLASS="LN">56</FONT><A NAME="356"></A>            }
+<FONT CLASS="LN">57</FONT><A NAME="357"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput.Option</A>[] optionArr = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/LargeSelectInput.java.html">LargeSelectInput.Option</A>[options.size()];
+<FONT CLASS="LN">58</FONT><A NAME="358"></A>            options.toArray(optionArr);
+<FONT CLASS="LN">59</FONT><A NAME="359"></A>            sInput.setOptions(optionArr);
+<FONT CLASS="LN">60</FONT><A NAME="360"></A>
+<FONT CLASS="LN">61</FONT><A NAME="361"></A>            <FONT CLASS="Return">return</FONT> sInput;
+<FONT CLASS="LN">62</FONT><A NAME="362"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="363"></A>        System.out.println(<FONT CLASS="StringLiteral">"Unrecognised Input Element:"</FONT>+type);
+<FONT CLASS="LN">64</FONT><A NAME="364"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="365"></A>        <FONT CLASS="SingleLineComment">//throw new ConfigurationException("Unknown Input Field type:" + type);
+<FONT CLASS="LN">66</FONT><A NAME="366"></A></FONT>    }
+<FONT CLASS="LN">67</FONT><A NAME="367"></A>
+<FONT CLASS="LN">68</FONT><A NAME="368"></A>
+<FONT CLASS="LN">69</FONT><A NAME="369"></A>
+<FONT CLASS="LN">70</FONT><A NAME="370"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">71</FONT><A NAME="371"></A>     * Calls bean setter methods based on attribures found. Could use BeanUtils here
+<FONT CLASS="LN">72</FONT><A NAME="372"></A>     * but we want to stay clear of external dependencies.
+<FONT CLASS="LN">73</FONT><A NAME="373"></A>     * @param bean Object
+<FONT CLASS="LN">74</FONT><A NAME="374"></A>     * @param map NamedNodeMap
+<FONT CLASS="LN">75</FONT><A NAME="375"></A>     */</FONT>
+<FONT CLASS="LN">76</FONT><A NAME="376"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setProperties(Object bean, NamedNodeMap map) {
+<FONT CLASS="LN">77</FONT><A NAME="377"></A>        <FONT CLASS="Int">int</FONT> numAtts = map.getLength();
+<FONT CLASS="LN">78</FONT><A NAME="378"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> a = <FONT CLASS="IntegerLiteral">0</FONT>; a &lt; numAtts; a++) {
+<FONT CLASS="LN">79</FONT><A NAME="379"></A>            Node attribute = map.item(a);
+<FONT CLASS="LN">80</FONT><A NAME="380"></A>            String name = attribute.getNodeName();
+<FONT CLASS="LN">81</FONT><A NAME="381"></A>            String value = attribute.getNodeValue();
+<FONT CLASS="LN">82</FONT><A NAME="382"></A>            String methodName = <FONT CLASS="StringLiteral">"set"</FONT> + Character.toUpperCase(name.charAt(<FONT CLASS="IntegerLiteral">0</FONT>)) + name.substring(<FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">83</FONT><A NAME="383"></A>            Method[] allMethods = bean.getClass().getMethods();
+<FONT CLASS="LN">84</FONT><A NAME="384"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> m = <FONT CLASS="IntegerLiteral">0</FONT>; m &lt; allMethods.length; m++) {
+<FONT CLASS="LN">85</FONT><A NAME="385"></A>                <FONT CLASS="If">if</FONT> (allMethods[m].getName().equals(methodName)) {
+<FONT CLASS="LN">86</FONT><A NAME="386"></A>                    <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">87</FONT><A NAME="387"></A>                        Class[] parameters = allMethods[m].getParameterTypes();
+<FONT CLASS="LN">88</FONT><A NAME="388"></A>                        Object[] paramValues;
+<FONT CLASS="LN">89</FONT><A NAME="389"></A>                        <FONT CLASS="If">if</FONT> (parameters[<FONT CLASS="IntegerLiteral">0</FONT>].equals(Boolean.<FONT CLASS="Class">class</FONT>)) {
+<FONT CLASS="LN">90</FONT><A NAME="390"></A>                            paramValues = <FONT CLASS="New">new</FONT> Boolean[<FONT CLASS="IntegerLiteral">1</FONT>];
+<FONT CLASS="LN">91</FONT><A NAME="391"></A>                            <FONT CLASS="If">if</FONT> ( OutputField.isTrue(value) ) {
+<FONT CLASS="LN">92</FONT><A NAME="392"></A>                                paramValues[<FONT CLASS="IntegerLiteral">0</FONT>] = Boolean.TRUE;
+<FONT CLASS="LN">93</FONT><A NAME="393"></A>                            }
+<FONT CLASS="LN">94</FONT><A NAME="394"></A>                            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">95</FONT><A NAME="395"></A>                                paramValues[<FONT CLASS="IntegerLiteral">0</FONT>] = Boolean.FALSE;
+<FONT CLASS="LN">96</FONT><A NAME="396"></A>                            }
+<FONT CLASS="LN">97</FONT><A NAME="397"></A>                        }
+<FONT CLASS="LN">98</FONT><A NAME="398"></A>                        <FONT CLASS="Else">else</FONT>
+<FONT CLASS="LN">99</FONT><A NAME="399"></A>                        <FONT CLASS="If">if</FONT> (parameters[<FONT CLASS="IntegerLiteral">0</FONT>].equals(Integer.<FONT CLASS="Class">class</FONT>)) {
+<FONT CLASS="LN">00</FONT><A NAME="400"></A>                            paramValues = <FONT CLASS="New">new</FONT> Integer[<FONT CLASS="IntegerLiteral">1</FONT>];
+<FONT CLASS="LN">01</FONT><A NAME="401"></A>                            paramValues[<FONT CLASS="IntegerLiteral">0</FONT>] = <FONT CLASS="New">new</FONT> Integer(value);
+<FONT CLASS="LN">02</FONT><A NAME="402"></A>                        }
+<FONT CLASS="LN">03</FONT><A NAME="403"></A>                        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">04</FONT><A NAME="404"></A>                            paramValues = <FONT CLASS="New">new</FONT> String[<FONT CLASS="IntegerLiteral">1</FONT>];
+<FONT CLASS="LN">05</FONT><A NAME="405"></A>                            paramValues[<FONT CLASS="IntegerLiteral">0</FONT>] = value;
+<FONT CLASS="LN">06</FONT><A NAME="406"></A>                        }
+<FONT CLASS="LN">07</FONT><A NAME="407"></A>                        allMethods[m].invoke(bean, paramValues);
+<FONT CLASS="LN">08</FONT><A NAME="408"></A>                        <FONT CLASS="Continue">continue</FONT>;
+<FONT CLASS="LN">09</FONT><A NAME="409"></A>                    }
+<FONT CLASS="LN">10</FONT><A NAME="410"></A>                    <FONT CLASS="Catch">catch</FONT> (IndexOutOfBoundsException ex) {
+<FONT CLASS="LN">11</FONT><A NAME="411"></A>                        <FONT CLASS="SingleLineComment">// not the setter we are looking for
+<FONT CLASS="LN">12</FONT><A NAME="412"></A></FONT>                        <FONT CLASS="SingleLineComment">// this is the wrong overloaded method
+<FONT CLASS="LN">13</FONT><A NAME="413"></A></FONT>                        <FONT CLASS="Continue">continue</FONT>; 
+<FONT CLASS="LN">14</FONT><A NAME="414"></A>                    }
+<FONT CLASS="LN">15</FONT><A NAME="415"></A>                    <FONT CLASS="SingleLineComment">// Ignore reflection errors and continue
+<FONT CLASS="LN">16</FONT><A NAME="416"></A></FONT>                    <FONT CLASS="Catch">catch</FONT> (IllegalArgumentException e) {
+<FONT CLASS="LN">17</FONT><A NAME="417"></A>                    }
+<FONT CLASS="LN">18</FONT><A NAME="418"></A>                    <FONT CLASS="Catch">catch</FONT> (IllegalAccessException e) {                  
+<FONT CLASS="LN">19</FONT><A NAME="419"></A>                    }
+<FONT CLASS="LN">20</FONT><A NAME="420"></A>                    <FONT CLASS="Catch">catch</FONT> (InvocationTargetException e) {                       
+<FONT CLASS="LN">21</FONT><A NAME="421"></A>                    }
+<FONT CLASS="LN">22</FONT><A NAME="422"></A>                }
+<FONT CLASS="LN">23</FONT><A NAME="423"></A>            }
+<FONT CLASS="LN">24</FONT><A NAME="424"></A>        }
+<FONT CLASS="LN">25</FONT><A NAME="425"></A>    }
+<FONT CLASS="LN">26</FONT><A NAME="426"></A>
+<FONT CLASS="LN">27</FONT><A NAME="427"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Class">class</FONT> CustomEntityResolver <FONT CLASS="Implements">implements</FONT> EntityResolver{
+<FONT CLASS="LN">28</FONT><A NAME="428"></A>        <FONT CLASS="Public">public</FONT> InputSource resolveEntity(String publicId, String systemId) {
+<FONT CLASS="LN">29</FONT><A NAME="429"></A>            
+<FONT CLASS="LN">30</FONT><A NAME="430"></A>            <FONT CLASS="If">if</FONT> (publicId.equals(<FONT CLASS="StringLiteral">"-//tp23 //DTD Ant Installer Config//EN"</FONT>) &amp;&amp;
+<FONT CLASS="LN">31</FONT><A NAME="431"></A>                systemId.equals(<FONT CLASS="StringLiteral">"http://antinstaller.sf.net/dtd/antinstall-config-0.2.dtd"</FONT>)) {
+<FONT CLASS="LN">32</FONT><A NAME="432"></A>                InputSource localSrc = <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(
+<FONT CLASS="LN">33</FONT><A NAME="433"></A>                    <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/antinstall-config-0.2.dtd"</FONT>));
+<FONT CLASS="LN">34</FONT><A NAME="434"></A>                <FONT CLASS="Return">return</FONT> localSrc;
+<FONT CLASS="LN">35</FONT><A NAME="435"></A>            }
+<FONT CLASS="LN">36</FONT><A NAME="436"></A>            <FONT CLASS="If">if</FONT> (publicId.equals(<FONT CLASS="StringLiteral">"-//tp23 //DTD Ant Installer Config//EN"</FONT>) &amp;&amp;
+<FONT CLASS="LN">37</FONT><A NAME="437"></A>                systemId.equals(<FONT CLASS="StringLiteral">"http://antinstaller.sf.net/dtd/antinstall-config-0.3.dtd"</FONT>)) {
+<FONT CLASS="LN">38</FONT><A NAME="438"></A>                InputSource localSrc = <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(
+<FONT CLASS="LN">39</FONT><A NAME="439"></A>                    <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/antinstall-config-0.3.dtd"</FONT>));
+<FONT CLASS="LN">40</FONT><A NAME="440"></A>                <FONT CLASS="Return">return</FONT> localSrc;
+<FONT CLASS="LN">41</FONT><A NAME="441"></A>            }
+<FONT CLASS="LN">42</FONT><A NAME="442"></A>            <FONT CLASS="If">if</FONT> (publicId.equals(<FONT CLASS="StringLiteral">"-//tp23 //DTD Ant Installer Config//EN"</FONT>) &amp;&amp;
+<FONT CLASS="LN">43</FONT><A NAME="443"></A>                systemId.equals(<FONT CLASS="StringLiteral">"http://antinstaller.sf.net/dtd/antinstall-config-0.4.dtd"</FONT>)) {
+<FONT CLASS="LN">44</FONT><A NAME="444"></A>                InputSource localSrc = <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(
+<FONT CLASS="LN">45</FONT><A NAME="445"></A>                    <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/antinstall-config-0.4.dtd"</FONT>));
+<FONT CLASS="LN">46</FONT><A NAME="446"></A>                <FONT CLASS="Return">return</FONT> localSrc;
+<FONT CLASS="LN">47</FONT><A NAME="447"></A>            }
+<FONT CLASS="LN">48</FONT><A NAME="448"></A>            <FONT CLASS="If">if</FONT> (publicId.equals(<FONT CLASS="StringLiteral">"-//tp23 //DTD Ant Installer Config//EN"</FONT>) &amp;&amp;
+<FONT CLASS="LN">49</FONT><A NAME="449"></A>                systemId.equals(<FONT CLASS="StringLiteral">"http://antinstaller.sf.net/dtd/antinstall-config-0.5.dtd"</FONT>)) {
+<FONT CLASS="LN">50</FONT><A NAME="450"></A>                InputSource localSrc = <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(
+<FONT CLASS="LN">51</FONT><A NAME="451"></A>                    <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/antinstall-config-0.5.dtd"</FONT>));
+<FONT CLASS="LN">52</FONT><A NAME="452"></A>                <FONT CLASS="Return">return</FONT> localSrc;
+<FONT CLASS="LN">53</FONT><A NAME="453"></A>            }
+<FONT CLASS="LN">54</FONT><A NAME="454"></A>            <FONT CLASS="If">if</FONT> (publicId.equals(<FONT CLASS="StringLiteral">"-//tp23 //DTD Ant Installer Config//EN"</FONT>) &amp;&amp;
+<FONT CLASS="LN">55</FONT><A NAME="455"></A>                systemId.equals(<FONT CLASS="StringLiteral">"http://antinstaller.sf.net/dtd/antinstall-config-0.6.dtd"</FONT>)) {
+<FONT CLASS="LN">56</FONT><A NAME="456"></A>                InputSource localSrc = <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(
+<FONT CLASS="LN">57</FONT><A NAME="457"></A>                    <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/antinstall-config-0.6.dtd"</FONT>));
+<FONT CLASS="LN">58</FONT><A NAME="458"></A>                <FONT CLASS="Return">return</FONT> localSrc;
+<FONT CLASS="LN">59</FONT><A NAME="459"></A>            }
+<FONT CLASS="LN">60</FONT><A NAME="460"></A>            <FONT CLASS="If">if</FONT> (publicId.equals(<FONT CLASS="StringLiteral">"-//tp23 //DTD Ant Installer Config//EN"</FONT>) &amp;&amp;
+<FONT CLASS="LN">61</FONT><A NAME="461"></A>                systemId.equals(<FONT CLASS="StringLiteral">"http://antinstaller.sf.net/dtd/antinstall-config-0.7.dtd"</FONT>)) {
+<FONT CLASS="LN">62</FONT><A NAME="462"></A>                InputSource localSrc = <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(
+<FONT CLASS="LN">63</FONT><A NAME="463"></A>                    <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/antinstall-config-0.7.dtd"</FONT>));
+<FONT CLASS="LN">64</FONT><A NAME="464"></A>                <FONT CLASS="Return">return</FONT> localSrc;
+<FONT CLASS="LN">65</FONT><A NAME="465"></A>            }
+<FONT CLASS="LN">66</FONT><A NAME="466"></A>            <FONT CLASS="If">if</FONT> (publicId.equals(<FONT CLASS="StringLiteral">"-//tp23 //DTD Ant Installer Config//EN"</FONT>) &amp;&amp;
+<FONT CLASS="LN">67</FONT><A NAME="467"></A>                systemId.equals(<FONT CLASS="StringLiteral">"http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd"</FONT>)) {
+<FONT CLASS="LN">68</FONT><A NAME="468"></A>                InputSource localSrc = <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(
+<FONT CLASS="LN">69</FONT><A NAME="469"></A>                    <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/antinstall-config-0.8.dtd"</FONT>));
+<FONT CLASS="LN">70</FONT><A NAME="470"></A>                <FONT CLASS="Return">return</FONT> localSrc;
+<FONT CLASS="LN">71</FONT><A NAME="471"></A>            }
+<FONT CLASS="LN">72</FONT><A NAME="472"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">73</FONT><A NAME="473"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">74</FONT><A NAME="474"></A>            }
+<FONT CLASS="LN">75</FONT><A NAME="475"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="476"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="477"></A>}
+<FONT CLASS="LN">78</FONT><A NAME="478"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/PropertyLoaderFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/PropertyLoaderFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/PropertyLoaderFilter.java.html	(revision 14989)
@@ -0,0 +1,439 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.PropertyLoaderFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">PropertyLoaderFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limiations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.FileInputStream;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.FileNotFoundException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.Collections;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.util.Properties;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> java.util.StringTokenizer;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/Installer.java.html">org.tp23.antinstaller.Installer</A>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/PropertiesFileRenderer.java.html">org.tp23.antinstaller.PropertiesFileRenderer</A>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">org.tp23.antinstaller.input.ConditionalField</A>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">org.tp23.antinstaller.input.InputField</A>;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">org.tp23.antinstaller.input.OutputField</A>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">org.tp23.antinstaller.input.PasswordTextInput</A>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">org.tp23.antinstaller.input.TargetInput</A>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">org.tp23.antinstaller.input.TargetSelectInput</A>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/VersionHelper.java.html">org.tp23.antinstaller.runtime.VersionHelper</A>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteRunnerFilter.java.html">org.tp23.antinstaller.runtime.exe.ExecuteRunnerFilter.AbortException</A>;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * Loads properties from a file of default properties if found.
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * the Installer element should define an attribute
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * loadDefaults with one of the following values.
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> * &lt;li&gt;false - do not look for defaults&lt;/li&gt;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A> * &lt;li&gt;prompt - look for properties and ask if they should be used if found&lt;/li&gt;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A> * &lt;li&gt;load - look for defaults if found load them&lt;/li&gt;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A> * &lt;li&gt;prompt-auto - wierd case where installer permits zero user interaction running only from antinstaller-config.xml defaults&lt;/li&gt;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A> * 
+<FONT CLASS="LN">53</FONT><A NAME="53"></A> * N.B. this is not a generic property loader but one specifically for properties files
+<FONT CLASS="LN">54</FONT><A NAME="54"></A> * generated by a previous run of an identical installer or one that according to the version
+<FONT CLASS="LN">55</FONT><A NAME="55"></A> * number is compatible, see PropertyTask for loading other property sets
+<FONT CLASS="LN">56</FONT><A NAME="56"></A> * FIXME i18n for AbortExceptoins
+<FONT CLASS="LN">57</FONT><A NAME="57"></A> * @author teknopaul
+<FONT CLASS="LN">58</FONT><A NAME="58"></A> *
+<FONT CLASS="LN">59</FONT><A NAME="59"></A> */</FONT>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> PropertyLoaderFilter <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A> {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String LOAD = <FONT CLASS="StringLiteral">"true"</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String PROMPT = <FONT CLASS="StringLiteral">"prompt"</FONT>;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String PROMPT_AUTO = <FONT CLASS="StringLiteral">"prompt-auto"</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String FALSE = <FONT CLASS="StringLiteral">"false"</FONT>;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String DEFAULT_PROPERTIES_FILE_PROPERTY = <FONT CLASS="StringLiteral">"antinstaller.properties"</FONT>;
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> String fileNameProperty;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> definedPropertiesCount;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>     * Default constructor required for an ExecuteFilter implementation.
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>     * The default property name given by @see{DEFAULT_PROPERTIES_FILE_PROPERTY}
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>     * is used with this constructor
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>     */</FONT>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    <FONT CLASS="Public">public</FONT> PropertyLoaderFilter() {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        <FONT CLASS="This">this</FONT>( DEFAULT_PROPERTIES_FILE_PROPERTY );
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>     * Constructor that allows the name of the property containg the properties file
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>     * to be specified
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>     *
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>     * @param fileNameProperty property containing the name of file
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>     */</FONT>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    <FONT CLASS="Public">public</FONT> PropertyLoaderFilter( <FONT CLASS="Final">final</FONT> String fileNameProperty ) {
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        <FONT CLASS="This">this</FONT>.fileNameProperty = fileNameProperty;
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>     * Execute the filter action - in this case pre-setting InputField values
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>     * with values loaded from a properties file (if present)
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>     *
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>     * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>     * @param ctx context data
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>     * @throws InstallException if an error occurred loading pre-defined properties
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>     */</FONT>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <A HREF="../../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer = ctx.getInstaller();
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        String loadDefaults = installer.getLoadDefaults();
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        <FONT CLASS="If">if</FONT>(installer.isVerbose()) {
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>            ctx.log(<FONT CLASS="StringLiteral">"loadDefaults attribute:"</FONT> + loadDefaults);
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        <FONT CLASS="Boolean">boolean</FONT> load = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        <FONT CLASS="If">if</FONT>(loadDefaults == <FONT CLASS="Null">null</FONT> || FALSE.equals(loadDefaults)) {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            <FONT CLASS="If">if</FONT>(installer.isVerbose()) {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                ctx.log(<FONT CLASS="StringLiteral">"Not loading defaults"</FONT>);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        }
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        ctx.log( <FONT CLASS="StringLiteral">"Checking for predefined properties"</FONT>);
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        Properties predefinedProps = loadPredefinedProperties( ctx, fileNameProperty );
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        definedPropertiesCount = predefinedProps.size();
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        <FONT CLASS="Boolean">boolean</FONT> foundProps = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        <FONT CLASS="If">if</FONT>( definedPropertiesCount == <FONT CLASS="IntegerLiteral">0</FONT> ) {
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>            ctx.log( <FONT CLASS="StringLiteral">"No predefined properties"</FONT>);
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        }
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>            foundProps = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        <FONT CLASS="If">if</FONT>( foundProps &amp;&amp; PROMPT.equals(loadDefaults) ) {
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>            load = ctx.getMessageRenderer().prompt(res.getString(<FONT CLASS="StringLiteral">"promptLoadDefaults"</FONT>));
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        }
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>( foundProps &amp;&amp; PROMPT_AUTO.equals(loadDefaults)) {
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            load = ctx.getMessageRenderer().prompt(res.getString(<FONT CLASS="StringLiteral">"promptLoadDefaults"</FONT>));
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>        }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>( foundProps &amp;&amp; LOAD.equals(loadDefaults) ) {
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            load = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>        }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        <FONT CLASS="If">if</FONT>( (!foundProps || !load) &amp;&amp; 
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>                ctx.isAutoBuild() &amp;&amp; 
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>                PROMPT.equals(loadDefaults) ) {
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>            ctx.log( <FONT CLASS="StringLiteral">"Cant run -auto install without properties"</FONT>);
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> AbortException(<FONT CLASS="StringLiteral">"Install Aborted: cant load ant.install.properties"</FONT>);
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>        <FONT CLASS="If">if</FONT>(load) {
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>            <FONT CLASS="If">if</FONT>(installer.isVerbose()) {
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>                ctx.log(<FONT CLASS="StringLiteral">"Loading defaults"</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>            }
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>            
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>            <FONT CLASS="SingleLineComment">// version control
+<FONT CLASS="LN">52</FONT><A NAME="152"></A></FONT>            String propertiesVersion = predefinedProps.getProperty(PropertiesFileRenderer.INSTALLER_VERSION_PROPERTY);
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>            String configVersion = ctx.getInstaller().getVersion();
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>            <FONT CLASS="If">if</FONT>(propertiesVersion != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>                <A HREF="../../../../../org/tp23/antinstaller/runtime/VersionHelper.java.html">VersionHelper</A> helper = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/VersionHelper.java.html">VersionHelper</A>();
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>                <FONT CLASS="If">if</FONT>( ( ! propertiesVersion.equals(configVersion)) &amp;&amp; 
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>                        helper.equalOrHigher(configVersion , propertiesVersion) ) {
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>                    
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>                    <FONT CLASS="SingleLineComment">// let major versions pass but prompt for differences
+<FONT CLASS="LN">60</FONT><A NAME="160"></A></FONT>                    <FONT CLASS="If">if</FONT>( (! ctx.isAutoBuild()) &amp;&amp; helper.majorVersionCompatible(configVersion , propertiesVersion) ){
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>                        <FONT CLASS="If">if</FONT>( ! ctx.getMessageRenderer().prompt(res.getString(<FONT CLASS="StringLiteral">"propertiesVersionMismatch"</FONT>)) ){
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>                            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> AbortException(<FONT CLASS="StringLiteral">"Install Aborted: existing configuration is not compatible, config version: "</FONT> + configVersion);
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>                        }
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>                    }
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>                    <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>                        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> AbortException(<FONT CLASS="StringLiteral">"Install Aborted: existing configuration is not compatible, config version: "</FONT> + configVersion);
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>                    }
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>                }
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>                
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>            }
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> AbortException(<FONT CLASS="StringLiteral">"Install Aborted: local ant.install.properties missing config version, must be equal or lower than: "</FONT> + configVersion);
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>            }
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>            <FONT CLASS="SingleLineComment">// end version control
+<FONT CLASS="LN">75</FONT><A NAME="175"></A></FONT>
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>            <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] allPages = installer.getPages();
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>            handleDefaults( ctx, allPages, predefinedProps );
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>        }
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>    <FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>     * Use the supplied properties to pre-populate the page fields
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>     */</FONT>
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> handleDefaults( <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx, <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] allPages, Properties props ) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>        <FONT CLASS="For">for</FONT>( <FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; allPages.length; i++ ) {
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] fields = allPages[i].getOutputField();
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>            setInputValues( ctx, allPages[i], fields, props );
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>        }
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setInputValues( <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx, <A HREF="../../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page, <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A>[] outputFields, Properties props )
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>            <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        <FONT CLASS="SingleLineComment">//Should never happen, but guard against it
+<FONT CLASS="LN">95</FONT><A NAME="195"></A></FONT>        <FONT CLASS="If">if</FONT>( outputFields == <FONT CLASS="Null">null</FONT> ) {
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>            <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>        <FONT CLASS="SingleLineComment">// find relevant targets
+<FONT CLASS="LN">00</FONT><A NAME="200"></A></FONT>        String targets = props.getProperty(page.getName() + PropertiesFileRenderer.TARGETS_SUFFIX);
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>        List targetsList = splitTargets(targets);
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> j = <FONT CLASS="IntegerLiteral">0</FONT>; j &lt; outputFields.length; j++) {
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>            <A HREF="../../../../../org/tp23/antinstaller/input/OutputField.java.html">OutputField</A> field = outputFields[j];
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>            <FONT CLASS="If">if</FONT>( field <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A> )  {
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>                <A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A> condField = (<A HREF="../../../../../org/tp23/antinstaller/input/ConditionalField.java.html">ConditionalField</A>) field;
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>                setInputValues( ctx, page, condField.getFields(), props );
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>            }
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>            <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>( field <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A> ) {
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>                <A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A> input = (<A HREF="../../../../../org/tp23/antinstaller/input/InputField.java.html">InputField</A>)field;
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>                String propName = input.getProperty();
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>                <FONT CLASS="If">if</FONT>( props.containsKey( propName ) ) {
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>                    String value = props.getProperty(propName);
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>                    <FONT CLASS="If">if</FONT>( ctx.getInstaller().isDebug() ) {
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>                           ctx.log( <FONT CLASS="StringLiteral">"Setting "</FONT> + propName + <FONT CLASS="StringLiteral">"="</FONT> + value );
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>                    }
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>                    input.setDefaultValue(value); <FONT CLASS="SingleLineComment">// does not evaluate references
+<FONT CLASS="LN">21</FONT><A NAME="221"></A></FONT>                    input.setInputResult(value);
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>                    input.setEditted( <FONT CLASS="True">true</FONT> );
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>                    <FONT CLASS="If">if</FONT>(field <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/PasswordTextInput.java.html">PasswordTextInput</A>) {
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>                        <FONT CLASS="If">if</FONT>(value == <FONT CLASS="Null">null</FONT> ){
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>                            ctx.getMessageRenderer().printMessage(res.getString(<FONT CLASS="StringLiteral">"promptMissingDefaultPassword"</FONT>));
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>                        }
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>                    }
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>                    <FONT CLASS="SingleLineComment">// TARGET TYPES
+<FONT CLASS="LN">32</FONT><A NAME="232"></A></FONT>                    <FONT CLASS="If">if</FONT>(field <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A>) {
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>                        <FONT CLASS="SingleLineComment">// Target and SelectTarget
+<FONT CLASS="LN">34</FONT><A NAME="234"></A></FONT>                        <A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A> tgtInput = (<A HREF="../../../../../org/tp23/antinstaller/input/TargetInput.java.html">TargetInput</A>)field;
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>                        page.removeTarget(tgtInput.getIdx());
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>                        <FONT CLASS="SingleLineComment">// if target was selected
+<FONT CLASS="LN">37</FONT><A NAME="237"></A></FONT>                        <FONT CLASS="If">if</FONT>( ! InputField.isFalse(value)) {
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>                            page.addTarget(tgtInput.getIdx(), tgtInput.getTarget()); <FONT CLASS="SingleLineComment">// returns the OS specific suffix if relevant
+<FONT CLASS="LN">39</FONT><A NAME="239"></A></FONT>                            <FONT CLASS="SingleLineComment">// DEBUG
+<FONT CLASS="LN">40</FONT><A NAME="240"></A></FONT>                            <FONT CLASS="If">if</FONT>( ! targetsList.contains(tgtInput.getTarget()) ){ 
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>                                <FONT CLASS="SingleLineComment">// could be caused by someone trying to copy a file across platforms (not a good idea)
+<FONT CLASS="LN">42</FONT><A NAME="242"></A></FONT>                                ctx.log(<FONT CLASS="StringLiteral">"Defaults error: targets list for page "</FONT> + page.getName()
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>                                        + <FONT CLASS="StringLiteral">" should contain a TargetInput that was true"</FONT>);
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>                            }
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>                        }
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>                        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>                            <FONT CLASS="If">if</FONT>(InputField.isTrue( tgtInput.getForce()) ) {
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>                                String msg = <FONT CLASS="StringLiteral">"Defaults error: forced target for page "</FONT> + page.getName()
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>                                + <FONT CLASS="StringLiteral">" has been removed"</FONT>;
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>                                ctx.log(msg);
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>                                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(msg);
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>                            }
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>                        }
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>                    }
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>                    <FONT CLASS="If">if</FONT>(field <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A>) {
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>                        <A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A> tgtInput = (<A HREF="../../../../../org/tp23/antinstaller/input/TargetSelectInput.java.html">TargetSelectInput</A>)field;
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>                        page.removeTarget(tgtInput.getIdx());
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>                        <FONT CLASS="SingleLineComment">// one target must be selected (what if the page was not shown??)
+<FONT CLASS="LN">59</FONT><A NAME="259"></A></FONT>                        page.addTarget(tgtInput.getIdx(), value);
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>                    }
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>                }
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>            }
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>            <FONT CLASS="SingleLineComment">//TODO: Should properties that are present in properties file but which do not appear
+<FONT CLASS="LN">64</FONT><A NAME="264"></A></FONT>            <FONT CLASS="SingleLineComment">//      as an InputField be set in the ResultContainer so that they can be used by later
+<FONT CLASS="LN">65</FONT><A NAME="265"></A></FONT>            <FONT CLASS="SingleLineComment">//      "if" conditions? - no other properties should be loaded separately from additional
+<FONT CLASS="LN">66</FONT><A NAME="266"></A></FONT>            <FONT CLASS="SingleLineComment">//      resource files if there is a requirement for that using an postDisplayTarget - PH
+<FONT CLASS="LN">67</FONT><A NAME="267"></A></FONT>        }
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>        <FONT CLASS="SingleLineComment">//Page targets should be handled by the config loader process and indexed correctly
+<FONT CLASS="LN">70</FONT><A NAME="270"></A></FONT>        List pageTargets = page.getTargets(ctx);
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>        Iterator iter = targetsList.iterator();
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>        <FONT CLASS="While">while</FONT> (iter.hasNext()) {
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>            String targetPerProps = (String) iter.next();
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>            <FONT CLASS="If">if</FONT>( ! pageTargets.contains(targetPerProps)) {
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>                ctx.log(<FONT CLASS="StringLiteral">"Defaults warning: targets list for page "</FONT> + page.getName()
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>                        + <FONT CLASS="StringLiteral">" should contain "</FONT> + targetPerProps);
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>            }
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>        }
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">83</FONT><A NAME="283"></A>     * Check if external properties have been loaded
+<FONT CLASS="LN">84</FONT><A NAME="284"></A>     *
+<FONT CLASS="LN">85</FONT><A NAME="285"></A>     * @return &lt;code&gt;true&lt;/code&gt; if an external properties file was configured and contained
+<FONT CLASS="LN">86</FONT><A NAME="286"></A>     *       at least one property
+<FONT CLASS="LN">87</FONT><A NAME="287"></A>     */</FONT>
+<FONT CLASS="LN">88</FONT><A NAME="288"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> isPropertiesLoaded() {
+<FONT CLASS="LN">89</FONT><A NAME="289"></A>        <FONT CLASS="Return">return</FONT> (definedPropertiesCount &gt; <FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">90</FONT><A NAME="290"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="291"></A>
+<FONT CLASS="LN">92</FONT><A NAME="292"></A>    <FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">93</FONT><A NAME="293"></A>     * Primarily for unit testing
+<FONT CLASS="LN">94</FONT><A NAME="294"></A>     */</FONT>
+<FONT CLASS="LN">95</FONT><A NAME="295"></A>    <FONT CLASS="Int">int</FONT> getPropertiesFoundCount() {
+<FONT CLASS="LN">96</FONT><A NAME="296"></A>        <FONT CLASS="Return">return</FONT> definedPropertiesCount;
+<FONT CLASS="LN">97</FONT><A NAME="297"></A>    }
+<FONT CLASS="LN">98</FONT><A NAME="298"></A>
+<FONT CLASS="LN">99</FONT><A NAME="299"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">00</FONT><A NAME="300"></A>     * Load properties from a properties file if present.
+<FONT CLASS="LN">01</FONT><A NAME="301"></A>     * The name of the properties file is checked for in the following order.
+<FONT CLASS="LN">02</FONT><A NAME="302"></A>     * &lt;p&gt;
+<FONT CLASS="LN">03</FONT><A NAME="303"></A>     * If the parameter fileNamePropertyName is not null:
+<FONT CLASS="LN">04</FONT><A NAME="304"></A>     * &lt;ul&gt;
+<FONT CLASS="LN">05</FONT><A NAME="305"></A>     * &lt;li&gt;the environment is checked for an environmentvariable with that name&lt;/li&gt;
+<FONT CLASS="LN">06</FONT><A NAME="306"></A>     * &lt;li&gt;java system properties are checked for a property with that name&lt;/li&gt;
+<FONT CLASS="LN">07</FONT><A NAME="307"></A>     * &lt;/ul&gt;
+<FONT CLASS="LN">08</FONT><A NAME="308"></A>     * If the file name has not been found, or if &lt;code&gt;fileNamePropertyName == null&lt;/code&gt;
+<FONT CLASS="LN">09</FONT><A NAME="309"></A>     * then the default file name is used - @see{org.tp23.antinstaller.PropertiesFileRenderer#PROPERTIES_FILE_NAME}
+<FONT CLASS="LN">10</FONT><A NAME="310"></A>     *
+<FONT CLASS="LN">11</FONT><A NAME="311"></A>     * @param context installer context
+<FONT CLASS="LN">12</FONT><A NAME="312"></A>     * @param fileNamePropertyName name of environment variable or java system property containing the
+<FONT CLASS="LN">13</FONT><A NAME="313"></A>     *                             name of the properties file to be loaded or &lt;code&gt;null&lt;/code&gt;
+<FONT CLASS="LN">14</FONT><A NAME="314"></A>     * @return properties
+<FONT CLASS="LN">15</FONT><A NAME="315"></A>     * @throws InstallException if the properties file is missing or an error occurs loading it
+<FONT CLASS="LN">16</FONT><A NAME="316"></A>     */</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="317"></A>    <FONT CLASS="Private">private</FONT> Properties loadPredefinedProperties( <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> context,
+<FONT CLASS="LN">18</FONT><A NAME="318"></A>                                                 <FONT CLASS="Final">final</FONT> String           fileNamePropertyName )
+<FONT CLASS="LN">19</FONT><A NAME="319"></A>            <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">20</FONT><A NAME="320"></A>
+<FONT CLASS="LN">21</FONT><A NAME="321"></A>        Properties contextProps = InstallerContext.getEnvironment();
+<FONT CLASS="LN">22</FONT><A NAME="322"></A>        String propertiesFileName = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">23</FONT><A NAME="323"></A>        <FONT CLASS="Boolean">boolean</FONT> failSilently = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">24</FONT><A NAME="324"></A>
+<FONT CLASS="LN">25</FONT><A NAME="325"></A>        <FONT CLASS="If">if</FONT>( fileNamePropertyName != <FONT CLASS="Null">null</FONT> ) {
+<FONT CLASS="LN">26</FONT><A NAME="326"></A>            propertiesFileName = contextProps.getProperty( InstallerContext.ENV_PREFIX + fileNamePropertyName );
+<FONT CLASS="LN">27</FONT><A NAME="327"></A>
+<FONT CLASS="LN">28</FONT><A NAME="328"></A>            <FONT CLASS="If">if</FONT>( propertiesFileName == <FONT CLASS="Null">null</FONT> ) {
+<FONT CLASS="LN">29</FONT><A NAME="329"></A>                propertiesFileName =
+<FONT CLASS="LN">30</FONT><A NAME="330"></A>                        contextProps.getProperty( InstallerContext.JAVA_PREFIX + fileNamePropertyName );
+<FONT CLASS="LN">31</FONT><A NAME="331"></A>            }
+<FONT CLASS="LN">32</FONT><A NAME="332"></A>
+<FONT CLASS="LN">33</FONT><A NAME="333"></A>            <FONT CLASS="If">if</FONT>( propertiesFileName != <FONT CLASS="Null">null</FONT> ) {
+<FONT CLASS="LN">34</FONT><A NAME="334"></A>                <FONT CLASS="SingleLineComment">//Properties have been passed explicitly to installer so must load them
+<FONT CLASS="LN">35</FONT><A NAME="335"></A></FONT>                failSilently = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">36</FONT><A NAME="336"></A>            }
+<FONT CLASS="LN">37</FONT><A NAME="337"></A>        }
+<FONT CLASS="LN">38</FONT><A NAME="338"></A>
+<FONT CLASS="LN">39</FONT><A NAME="339"></A>        <FONT CLASS="If">if</FONT>( propertiesFileName == <FONT CLASS="Null">null</FONT> ) {
+<FONT CLASS="LN">40</FONT><A NAME="340"></A>            propertiesFileName = PropertiesFileRenderer.PROPERTIES_FILE_NAME;
+<FONT CLASS="LN">41</FONT><A NAME="341"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="342"></A>
+<FONT CLASS="LN">43</FONT><A NAME="343"></A>        Properties definedProperties = <FONT CLASS="New">new</FONT> Properties( );
+<FONT CLASS="LN">44</FONT><A NAME="344"></A>
+<FONT CLASS="LN">45</FONT><A NAME="345"></A>        <FONT CLASS="If">if</FONT>( propertiesFileName != <FONT CLASS="Null">null</FONT> ) {
+<FONT CLASS="LN">46</FONT><A NAME="346"></A>            File definedPropertiesFile = <FONT CLASS="New">new</FONT> File( propertiesFileName );
+<FONT CLASS="LN">47</FONT><A NAME="347"></A>            context.log( <FONT CLASS="StringLiteral">"Loading pre-defined properties from file "</FONT>
+<FONT CLASS="LN">48</FONT><A NAME="348"></A>                           + definedPropertiesFile.getAbsolutePath());
+<FONT CLASS="LN">49</FONT><A NAME="349"></A>
+<FONT CLASS="LN">50</FONT><A NAME="350"></A>            <FONT CLASS="SingleLineComment">//TODO: Support loading properties file from via classloader as a resource
+<FONT CLASS="LN">51</FONT><A NAME="351"></A></FONT>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">52</FONT><A NAME="352"></A>                FileInputStream istream = <FONT CLASS="New">new</FONT> FileInputStream( definedPropertiesFile );
+<FONT CLASS="LN">53</FONT><A NAME="353"></A>                definedProperties.load( istream );
+<FONT CLASS="LN">54</FONT><A NAME="354"></A>                istream.close();
+<FONT CLASS="LN">55</FONT><A NAME="355"></A>            }
+<FONT CLASS="LN">56</FONT><A NAME="356"></A>            <FONT CLASS="Catch">catch</FONT>( FileNotFoundException fnfExc ) {
+<FONT CLASS="LN">57</FONT><A NAME="357"></A>                <FONT CLASS="If">if</FONT>( !failSilently ) {
+<FONT CLASS="LN">58</FONT><A NAME="358"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>( <FONT CLASS="StringLiteral">"Defined properties file "</FONT>
+<FONT CLASS="LN">59</FONT><A NAME="359"></A>                                                + definedPropertiesFile.getAbsolutePath()
+<FONT CLASS="LN">60</FONT><A NAME="360"></A>                                                + <FONT CLASS="StringLiteral">" doesn't exist"</FONT> );
+<FONT CLASS="LN">61</FONT><A NAME="361"></A>                }
+<FONT CLASS="LN">62</FONT><A NAME="362"></A>            }
+<FONT CLASS="LN">63</FONT><A NAME="363"></A>            <FONT CLASS="Catch">catch</FONT>( IOException ioExc ) {
+<FONT CLASS="LN">64</FONT><A NAME="364"></A>                <FONT CLASS="If">if</FONT>( !failSilently ) {
+<FONT CLASS="LN">65</FONT><A NAME="365"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>( <FONT CLASS="StringLiteral">"Unable to read contents of defined properties file "</FONT>
+<FONT CLASS="LN">66</FONT><A NAME="366"></A>                                                 + definedPropertiesFile.getAbsolutePath(),
+<FONT CLASS="LN">67</FONT><A NAME="367"></A>                                                ioExc );
+<FONT CLASS="LN">68</FONT><A NAME="368"></A>                }
+<FONT CLASS="LN">69</FONT><A NAME="369"></A>            }
+<FONT CLASS="LN">70</FONT><A NAME="370"></A>
+<FONT CLASS="LN">71</FONT><A NAME="371"></A>            <FONT CLASS="If">if</FONT>( context.getInstaller().isDebug() ) {
+<FONT CLASS="LN">72</FONT><A NAME="372"></A>                logPropertiesLoaded( context, definedProperties, definedPropertiesFile );
+<FONT CLASS="LN">73</FONT><A NAME="373"></A>            }
+<FONT CLASS="LN">74</FONT><A NAME="374"></A>
+<FONT CLASS="LN">75</FONT><A NAME="375"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="376"></A>
+<FONT CLASS="LN">77</FONT><A NAME="377"></A>        <FONT CLASS="Return">return</FONT> definedProperties;
+<FONT CLASS="LN">78</FONT><A NAME="378"></A>    }
+<FONT CLASS="LN">79</FONT><A NAME="379"></A>
+<FONT CLASS="LN">80</FONT><A NAME="380"></A>
+<FONT CLASS="LN">81</FONT><A NAME="381"></A>    <FONT CLASS="SingleLineComment">// Debug - log properties loaded
+<FONT CLASS="LN">82</FONT><A NAME="382"></A></FONT>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> logPropertiesLoaded( <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> context,
+<FONT CLASS="LN">83</FONT><A NAME="383"></A>                                      <FONT CLASS="Final">final</FONT> Properties properties,
+<FONT CLASS="LN">84</FONT><A NAME="384"></A>                                      <FONT CLASS="Final">final</FONT> File propertiesFile ) {
+<FONT CLASS="LN">85</FONT><A NAME="385"></A>        Iterator iterator = properties.keySet().iterator();
+<FONT CLASS="LN">86</FONT><A NAME="386"></A>        context.log( <FONT CLASS="StringLiteral">"Predefined properties ("</FONT>
+<FONT CLASS="LN">87</FONT><A NAME="387"></A>                        + definedPropertiesCount
+<FONT CLASS="LN">88</FONT><A NAME="388"></A>                        + <FONT CLASS="StringLiteral">") loaded from "</FONT>
+<FONT CLASS="LN">89</FONT><A NAME="389"></A>                        + propertiesFile.getAbsolutePath()
+<FONT CLASS="LN">90</FONT><A NAME="390"></A>                        + <FONT CLASS="StringLiteral">"..."</FONT> );
+<FONT CLASS="LN">91</FONT><A NAME="391"></A>        <FONT CLASS="While">while</FONT>( iterator.hasNext() ) {
+<FONT CLASS="LN">92</FONT><A NAME="392"></A>            String key = (String) iterator.next();
+<FONT CLASS="LN">93</FONT><A NAME="393"></A>            context.log( key + <FONT CLASS="StringLiteral">"="</FONT> + properties.getProperty( key ) );
+<FONT CLASS="LN">94</FONT><A NAME="394"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="395"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="396"></A>
+<FONT CLASS="LN">97</FONT><A NAME="397"></A>    <FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">98</FONT><A NAME="398"></A>     * Could do a String.split(",") but want to avoid 1.4 specific stuff generally
+<FONT CLASS="LN">99</FONT><A NAME="399"></A>     * @param commaSeparated
+<FONT CLASS="LN">00</FONT><A NAME="400"></A>     * @return
+<FONT CLASS="LN">01</FONT><A NAME="401"></A>     */</FONT>
+<FONT CLASS="LN">02</FONT><A NAME="402"></A>    <FONT CLASS="Private">private</FONT> List splitTargets(String commaSeparated) {
+<FONT CLASS="LN">03</FONT><A NAME="403"></A>        <FONT CLASS="If">if</FONT>(commaSeparated == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">04</FONT><A NAME="404"></A>            <FONT CLASS="Return">return</FONT> Collections.EMPTY_LIST;
+<FONT CLASS="LN">05</FONT><A NAME="405"></A>        }
+<FONT CLASS="LN">06</FONT><A NAME="406"></A>        StringTokenizer st = <FONT CLASS="New">new</FONT> StringTokenizer(commaSeparated, <FONT CLASS="StringLiteral">","</FONT>);
+<FONT CLASS="LN">07</FONT><A NAME="407"></A>        List targets = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">08</FONT><A NAME="408"></A>        <FONT CLASS="While">while</FONT> (st.hasMoreElements()) {
+<FONT CLASS="LN">09</FONT><A NAME="409"></A>            String element = st.nextToken();
+<FONT CLASS="LN">10</FONT><A NAME="410"></A>            <FONT CLASS="If">if</FONT>(element != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">11</FONT><A NAME="411"></A>                element = element.trim();
+<FONT CLASS="LN">12</FONT><A NAME="412"></A>                <FONT CLASS="If">if</FONT>(element.length() &gt; <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">13</FONT><A NAME="413"></A>                    targets.add(element.trim());
+<FONT CLASS="LN">14</FONT><A NAME="414"></A>                }
+<FONT CLASS="LN">15</FONT><A NAME="415"></A>            }
+<FONT CLASS="LN">16</FONT><A NAME="416"></A>        }
+<FONT CLASS="LN">17</FONT><A NAME="417"></A>        <FONT CLASS="Return">return</FONT> targets;
+<FONT CLASS="LN">18</FONT><A NAME="418"></A>    }
+<FONT CLASS="LN">19</FONT><A NAME="419"></A>}
+<FONT CLASS="LN">20</FONT><A NAME="420"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/PropertyPrinterFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/PropertyPrinterFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/exe/PropertyPrinterFilter.java.html	(revision 14989)
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.PropertyPrinterFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">PropertyPrinterFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/DefaultPropertiesFileRenderer.java.html">org.tp23.antinstaller.DefaultPropertiesFileRenderer</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java.html">org.tp23.antinstaller.ExplicitPropertiesFileRenderer</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/PropertiesFileRenderer.java.html">org.tp23.antinstaller.PropertiesFileRenderer</A>;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">org.tp23.antinstaller.input.ResultContainer</A>;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @author Paul Hinds
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @version $Id: PropertyPrinterFilter.java,v 1.5 2006/12/28 00:57:53 teknopaul Exp $
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> PropertyPrinterFilter <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ExecuteFilter.java.html">ExecuteFilter</A> {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>     * @see org.tp23.antinstaller.runtime.exe.ExecuteFilter#exec(org.tp23.antinstaller.InstallerContext)
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>     */</FONT>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> results = ctx.getInstaller().getResultContainer();
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        results.setProperty(PropertiesFileRenderer.FILE_ROOT_PROPERTY,
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>                            ctx.getFileRoot().getAbsolutePath());
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        printProperties(ctx);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()){
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            ctx.log(<FONT CLASS="StringLiteral">"Properties printed:"</FONT> + ctx.getFileRoot().getAbsolutePath() 
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>                    + File.separatorChar + PropertiesFileRenderer.PROPERTIES_FILE_NAME);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>     *
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>     * @param installer Installer
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>     * @throws IOException
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>     */</FONT>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> printProperties(<A HREF="../../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <A HREF="../../../../../org/tp23/antinstaller/DefaultPropertiesFileRenderer.java.html">PropertiesFileRenderer</A> propRenderer;
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()){
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            propRenderer = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/ExplicitPropertiesFileRenderer.java.html">ExplicitPropertiesFileRenderer</A>();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            propRenderer = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/DefaultPropertiesFileRenderer.java.html">DefaultPropertiesFileRenderer</A>();
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="SingleLineComment">// render properties for reuse in auto builds
+<FONT CLASS="LN">64</FONT><A NAME="64"></A></FONT>        File currentDir = <FONT CLASS="New">new</FONT> File(<FONT CLASS="StringLiteral">"."</FONT>);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        ctx.log(<FONT CLASS="StringLiteral">"auto build supported: "</FONT> + ctx.getInstaller().supportsAutoBuild());
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="Boolean">boolean</FONT> alreadyWritten = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="If">if</FONT>(currentDir.canWrite() &amp;&amp; ctx.getInstaller().supportsAutoBuild()){
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            <FONT CLASS="If">if</FONT>(ctx.getInstaller().isVerbose()){
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>                    ctx.log(<FONT CLASS="StringLiteral">"Rendering properties in the current directory: "</FONT> + currentDir.getCanonicalPath());
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>                } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                    <FONT CLASS="SingleLineComment">// oh well never mind
+<FONT CLASS="LN">73</FONT><A NAME="73"></A></FONT>                }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            propRenderer.renderProperties(ctx, currentDir);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            alreadyWritten = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        <FONT CLASS="If">if</FONT>( ! currentDir.equals(ctx.getFileRoot()) || !alreadyWritten){
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            propRenderer.renderProperties(ctx, ctx.getFileRoot());
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>}
+<FONT CLASS="LN">84</FONT><A NAME="84"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/CompoundExpression.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/CompoundExpression.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/CompoundExpression.java.html	(revision 14989)
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.CompoundExpression (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CompoundExpression.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: CompoundExpression.java,v 1.1 2006/09/08 19:16:22
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *          anothermwilson Exp $
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CompoundExpression <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression1;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalTest.java.html">LogicalTest</A> test;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression2;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Public">public</FONT> CompoundExpression(<A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expr1, <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalTest.java.html">LogicalTest</A> logicalTest, <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expr2) {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>        <FONT CLASS="This">this</FONT>.expression1 = expr1;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="This">this</FONT>.expression2 = expr2;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <FONT CLASS="This">this</FONT>.test = logicalTest;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> evaluate() {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="Return">return</FONT> test.getTestResult(expression1, expression2);
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>}
+<FONT CLASS="LN">39</FONT><A NAME="39"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/EndsWithTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/EndsWithTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/EndsWithTest.java.html	(revision 14989)
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.EndsWithTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">EndsWithTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">17</FONT><A NAME="17"></A> * @author mwilson
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @version $Id: EndsWithTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> */</FONT>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> EndsWithTest <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A> {
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>    
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String[] TEST_TOKENS = { <FONT CLASS="StringLiteral">"$="</FONT> };
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens() {
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>        <FONT CLASS="Return">return</FONT> TEST_TOKENS;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    }
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<FONT CLASS="Final">final</FONT> String value, <FONT CLASS="Final">final</FONT> String expectedValue) {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>        <FONT CLASS="Return">return</FONT> (value != <FONT CLASS="Null">null</FONT>) &amp;&amp; value.endsWith(expectedValue);
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>}
+<FONT CLASS="LN">34</FONT><A NAME="34"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/EqualsTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/EqualsTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/EqualsTest.java.html	(revision 14989)
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.EqualsTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">EqualsTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: EqualsTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> EqualsTest <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A> {
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String[] TEST_TOKENS = { <FONT CLASS="StringLiteral">"=="</FONT>, <FONT CLASS="StringLiteral">"="</FONT> };
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens() {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>        <FONT CLASS="Return">return</FONT> TEST_TOKENS;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<FONT CLASS="Final">final</FONT> String propValue, <FONT CLASS="Final">final</FONT> String expectedValue) {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="SingleLineComment">// Where the expected value is null, empty string must also match
+<FONT CLASS="LN">32</FONT><A NAME="32"></A></FONT>        <FONT CLASS="If">if</FONT> (expectedValue == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>            <FONT CLASS="Return">return</FONT> (propValue == <FONT CLASS="Null">null</FONT>) || propValue.equals(<FONT CLASS="StringLiteral">""</FONT>);
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>        }
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="If">if</FONT> ((propValue != <FONT CLASS="Null">null</FONT>) &amp;&amp; propValue.equals(expectedValue)) {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>}
+<FONT CLASS="LN">43</FONT><A NAME="43"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/Expression.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/Expression.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/Expression.java.html	(revision 14989)
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.Expression (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Expression.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: Expression.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> Expression {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> evaluate();
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>}
+<FONT CLASS="LN">26</FONT><A NAME="26"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/ExpressionBuilder.java.html	(revision 14989)
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.ExpressionBuilder (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ExpressionBuilder.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Import">import</FONT> java.util.Arrays;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> java.util.Comparator;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.util.HashMap;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.util.Map;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">org.tp23.antinstaller.input.ResultContainer</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author mwilson
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @version $Id: ExpressionBuilder.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> */</FONT>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ExpressionBuilder {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> GROUPING_START_OPERATOR = <FONT CLASS="CharacerLiteral">'('</FONT>;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> GROUPING_END_OPERATOR = <FONT CLASS="CharacerLiteral">')'</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A>[] testValueConditions = { 
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/EndsWithTest.java.html">EndsWithTest</A>(), 
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/EqualsTest.java.html">EqualsTest</A>(), 
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/GreaterThanOrEqualsTest.java.html">GreaterThanOrEqualsTest</A>(),
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LessThanOrEqualsTest.java.html">LessThanOrEqualsTest</A>(), 
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/NotEqualsTest.java.html">NotEqualsTest</A>(), 
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/StartsWithTest.java.html">StartsWithTest</A>() 
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    };
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalTest.java.html">LogicalTest</A>[] testLogicalConditions = { 
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalAndTest.java.html">LogicalAndTest</A>(), 
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalOrTest.java.html">LogicalOrTest</A>() 
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    };
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java.html">SingleExpressionTest</A> SINGLE_EXPRESSION_TEST = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java.html">SingleExpressionTest</A>();
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> Map tokenMap = <FONT CLASS="New">new</FONT> HashMap();
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> String[] valueTokens;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> String[] logicalTokens;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Static">static</FONT> {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; testValueConditions.length; i++) {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            String[] tmpTokens = testValueConditions[i].getTestTokens();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> j = <FONT CLASS="IntegerLiteral">0</FONT>; j &lt; tmpTokens.length; j++) {
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>                tokenMap.put(tmpTokens[j], testValueConditions[i]);
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        valueTokens = <FONT CLASS="New">new</FONT> String[tokenMap.size()];
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <FONT CLASS="Int">int</FONT> index = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; testValueConditions.length; i++) {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            String[] tmpTokens = testValueConditions[i].getTestTokens();
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> j = <FONT CLASS="IntegerLiteral">0</FONT>; j &lt; tmpTokens.length; j++) {
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>                valueTokens[index++] = tmpTokens[j];
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            }
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        Comparator lengthComparator = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/StringLengthComparator.java.html">StringLengthComparator</A>();
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="SingleLineComment">//Have to sort so that longest test operator is checked for first
+<FONT CLASS="LN">76</FONT><A NAME="76"></A></FONT>        Arrays.sort(valueTokens, lengthComparator);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        index = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> mapInitialSize = tokenMap.size();
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; testLogicalConditions.length; i++) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            String[] tmpTokens = testLogicalConditions[i].getTestTokens();
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> j = <FONT CLASS="IntegerLiteral">0</FONT>; j &lt; tmpTokens.length; j++) {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                tokenMap.put(tmpTokens[j], testLogicalConditions[i]);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        logicalTokens = <FONT CLASS="New">new</FONT> String[tokenMap.size() - mapInitialSize];
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; testLogicalConditions.length; i++) {
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            String[] tmpTokens = testLogicalConditions[i].getTestTokens();
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> j = <FONT CLASS="IntegerLiteral">0</FONT>; j &lt; tmpTokens.length; j++) {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                logicalTokens[index++] = tmpTokens[j];
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        Arrays.sort(logicalTokens, lengthComparator);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> parseLogicalExpressions(<A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> container, String exprStr) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        <FONT CLASS="Int">int</FONT> startIndex = skipWhiteSpace(exprStr, <FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        <FONT CLASS="Int">int</FONT> index = exprStr.indexOf(GROUPING_START_OPERATOR, startIndex);
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        <FONT CLASS="If">if</FONT> (index == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            <FONT CLASS="Return">return</FONT> getSimpleExpression(container, exprStr.substring(startIndex));
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        <FONT CLASS="If">if</FONT> (index != <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"Illegal ifProperty value: If present, grouping operator "</FONT> + GROUPING_START_OPERATOR
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>                    + <FONT CLASS="StringLiteral">" must be at start of property string"</FONT>);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        ++startIndex; <FONT CLASS="SingleLineComment">//Skip over grouping operator
+<FONT CLASS="LN">14</FONT><A NAME="114"></A></FONT>
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        <FONT CLASS="Int">int</FONT> endIndex = exprStr.indexOf(GROUPING_END_OPERATOR, startIndex);
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        <FONT CLASS="If">if</FONT> (endIndex == -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"Missing closing grouping bracket "</FONT> + GROUPING_END_OPERATOR + <FONT CLASS="StringLiteral">" in expression "</FONT> + exprStr);
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        }
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        <FONT CLASS="SingleLineComment">//Check that this isn't an attempt tu use nested logical tests - not supported
+<FONT CLASS="LN">22</FONT><A NAME="122"></A></FONT>        <FONT CLASS="Int">int</FONT> tstIndex = exprStr.indexOf(GROUPING_START_OPERATOR, startIndex);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        <FONT CLASS="If">if</FONT> ((tstIndex != -<FONT CLASS="IntegerLiteral">1</FONT>) &amp;&amp; (tstIndex &lt; endIndex)) {
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"Nesting of logical operations is not supported: "</FONT> + exprStr);
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        }
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expr1 = parseLogicalExpressions(container, exprStr.substring(startIndex, endIndex));
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>            <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalTest.java.html">LogicalTest</A> test = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>            startIndex = endIndex + <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            <FONT CLASS="SingleLineComment">//Look for logical operator token
+<FONT CLASS="LN">35</FONT><A NAME="135"></A></FONT>            String logicalToken = getLogicalToken(exprStr, startIndex);
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>            <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; logicalTokens.length; i++) {
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>                <FONT CLASS="If">if</FONT> (logicalTokens[i].compareTo(logicalToken) == <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>                    test = (<A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalTest.java.html">LogicalTest</A>) tokenMap.get(logicalTokens[i]);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>                    index = exprStr.indexOf(logicalTokens[i], startIndex);
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>                    startIndex = index + logicalTokens[i].length();
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>                }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>            }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>            <FONT CLASS="If">if</FONT> (test == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/CompoundExpression.java.html">CompoundExpression</A>(expr1, SINGLE_EXPRESSION_TEST, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>                startIndex = skipWhiteSpace(exprStr, startIndex);
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>                String expr2Str = exprStr.substring(startIndex, exprStr.length());
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/CompoundExpression.java.html">CompoundExpression</A>(expr1, test, parseLogicalExpressions(container, expr2Str));
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>            }
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>        } <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">Exception</A> e) {
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"Invalid ifProperty expression"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> getSimpleExpression(<A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> resultContainer, String exprStr) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>            <FONT CLASS="Int">int</FONT> index = -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>            <FONT CLASS="Int">int</FONT> i;
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>            <FONT CLASS="For">for</FONT> (i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; valueTokens.length; i++) {
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>                index = exprStr.indexOf(valueTokens[i]);
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>                <FONT CLASS="If">if</FONT> (index != -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>                }
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>            }
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/SimpleExpression.java.html">SimpleExpression</A>(resultContainer, exprStr.substring(<FONT CLASS="IntegerLiteral">0</FONT>, index), (<A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A>) tokenMap.get(valueTokens[i]), exprStr
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>                    .substring(index + valueTokens[i].length()));
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>        } <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">Exception</A> e) { <FONT CLASS="SingleLineComment">// can be StringIndexOutOfBoundsException - PH
+<FONT CLASS="LN">76</FONT><A NAME="176"></A></FONT>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"Invalid ifProperty expression"</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>        }
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>    }
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> skipWhiteSpace(<FONT CLASS="Final">final</FONT> String str, <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> startIndex) {
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>        <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> strLen = str.length();
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>        <FONT CLASS="Int">int</FONT> index = startIndex;
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>        <FONT CLASS="While">while</FONT> (index &lt; strLen) {
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>            <FONT CLASS="If">if</FONT> ((str.charAt(index) != <FONT CLASS="CharacerLiteral">' '</FONT>) &amp;&amp; (str.charAt(index) != <FONT CLASS="CharacerLiteral">'\t'</FONT>)) {
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>                <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>            }
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>            ++index;
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>        }
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>        <FONT CLASS="Return">return</FONT> index;
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>    }
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> String getLogicalToken(<FONT CLASS="Final">final</FONT> String str, <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> startIndex) {
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>        <FONT CLASS="Final">final</FONT> <FONT CLASS="Int">int</FONT> strLen = str.length();
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>        <FONT CLASS="Int">int</FONT> tokenStart = skipWhiteSpace(str, startIndex);
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>        <FONT CLASS="Int">int</FONT> endIndex = tokenStart;
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>        <FONT CLASS="While">while</FONT> (endIndex &lt; strLen) {
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>            <FONT CLASS="Int">int</FONT> chr = str.charAt(endIndex);
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>            <FONT CLASS="If">if</FONT> ((chr == <FONT CLASS="CharacerLiteral">' '</FONT>) || (chr == <FONT CLASS="CharacerLiteral">'\t'</FONT>) || (chr == GROUPING_START_OPERATOR)) {
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>                <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>            }
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>            ++endIndex;
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>        }
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>        <FONT CLASS="Return">return</FONT> str.substring(tokenStart, endIndex);
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>    }
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>}
+<FONT CLASS="LN">12</FONT><A NAME="212"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/GreaterThanOrEqualsTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/GreaterThanOrEqualsTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/GreaterThanOrEqualsTest.java.html	(revision 14989)
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.GreaterThanOrEqualsTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">GreaterThanOrEqualsTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">17</FONT><A NAME="17"></A> * @author mwilson
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @version $Id: GreaterThanOrEqualsTest.java,v 1.1 2006/09/08 19:16:27
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> *          anothermwilson Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> GreaterThanOrEqualsTest <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A> {
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String[] TEST_TOKENS = { <FONT CLASS="StringLiteral">"+="</FONT> };
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens() {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>        <FONT CLASS="Return">return</FONT> TEST_TOKENS;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<FONT CLASS="Final">final</FONT> String value1, <FONT CLASS="Final">final</FONT> String value2) {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="Return">return</FONT> Double.parseDouble(value1) &gt;= Double.parseDouble(value2);
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>}
+<FONT CLASS="LN">34</FONT><A NAME="34"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LessThanOrEqualsTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LessThanOrEqualsTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LessThanOrEqualsTest.java.html	(revision 14989)
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.LessThanOrEqualsTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LessThanOrEqualsTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">17</FONT><A NAME="17"></A> * @author mwilson
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @version $Id: LessThanOrEqualsTest.java,v 1.1 2006/09/08 19:16:27
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> *          anothermwilson Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LessThanOrEqualsTest <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A> {
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String[] TEST_TOKENS = { <FONT CLASS="StringLiteral">"-="</FONT> };
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens() {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>        <FONT CLASS="Return">return</FONT> TEST_TOKENS;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<FONT CLASS="Final">final</FONT> String value1, <FONT CLASS="Final">final</FONT> String value2) {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="Return">return</FONT> Double.parseDouble(value1) &lt;= Double.parseDouble(value2);
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>}
+<FONT CLASS="LN">34</FONT><A NAME="34"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LiteralValue.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LiteralValue.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LiteralValue.java.html	(revision 14989)
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.LiteralValue (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LiteralValue.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: LiteralValue.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LiteralValue <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Value.java.html">Value</A> {
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String NULL = <FONT CLASS="StringLiteral">"null"</FONT>;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> String value;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Public">public</FONT> LiteralValue(<FONT CLASS="Final">final</FONT> String value) {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>        <FONT CLASS="If">if</FONT> ((value != <FONT CLASS="Null">null</FONT>) &amp;&amp; (value.equals(NULL))) {
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>            <FONT CLASS="This">this</FONT>.value = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>            <FONT CLASS="This">this</FONT>.value = value;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> String getValue() {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="Return">return</FONT> value;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>}
+<FONT CLASS="LN">39</FONT><A NAME="39"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LogicalAndTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LogicalAndTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LogicalAndTest.java.html	(revision 14989)
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.LogicalAndTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LogicalAndTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: LogicalAndTest.java,v 1.1 2006/09/08 19:16:28 anothermwilson
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *          Exp $
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LogicalAndTest <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalTest.java.html">LogicalTest</A> {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String[] TEST_TOKENS = { <FONT CLASS="StringLiteral">"&amp;&amp;"</FONT>, <FONT CLASS="StringLiteral">"AND"</FONT> };
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens() {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>        <FONT CLASS="Return">return</FONT> TEST_TOKENS;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    }
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression1, <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression2) {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="Boolean">boolean</FONT> result = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="If">if</FONT> (expression1 != <FONT CLASS="Null">null</FONT> &amp;&amp; expression2 != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>            result = expression1.evaluate() &amp;&amp; expression2.evaluate();
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="Return">return</FONT> result;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>}
+<FONT CLASS="LN">42</FONT><A NAME="42"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LogicalOrTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LogicalOrTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LogicalOrTest.java.html	(revision 14989)
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.LogicalOrTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LogicalOrTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: LogicalOrTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LogicalOrTest <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalTest.java.html">LogicalTest</A> {
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String[] TEST_TOKENS = { <FONT CLASS="StringLiteral">"||"</FONT>, <FONT CLASS="StringLiteral">"OR"</FONT> };
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens() {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>        <FONT CLASS="Return">return</FONT> TEST_TOKENS;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression1, <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression2) {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="Boolean">boolean</FONT> isTrue = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="If">if</FONT> (expression1 != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>            isTrue = expression1.evaluate();
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        }
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="If">if</FONT> (!isTrue &amp;&amp; (expression2 != <FONT CLASS="Null">null</FONT>)) {
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>            isTrue = expression2.evaluate();
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="Return">return</FONT> isTrue;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>}
+<FONT CLASS="LN">44</FONT><A NAME="44"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LogicalTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LogicalTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/LogicalTest.java.html	(revision 14989)
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.LogicalTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LogicalTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: LogicalTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> LogicalTest <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/TestOperator.java.html">TestOperator</A> {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression1, <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression2);
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>}
+<FONT CLASS="LN">28</FONT><A NAME="28"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/NotEqualsTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/NotEqualsTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/NotEqualsTest.java.html	(revision 14989)
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.NotEqualsTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">NotEqualsTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: NotEqualsTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> NotEqualsTest <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A> {
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>    
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String[] TEST_TOKENS = { <FONT CLASS="StringLiteral">"!="</FONT> };
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens() {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>        <FONT CLASS="Return">return</FONT> TEST_TOKENS;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<FONT CLASS="Final">final</FONT> String propValue, <FONT CLASS="Final">final</FONT> String expectedValue) {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="If">if</FONT> (expectedValue == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>            <FONT CLASS="Return">return</FONT> propValue != <FONT CLASS="Null">null</FONT> &amp;&amp; !propValue.equals(<FONT CLASS="StringLiteral">""</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        }
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="Return">return</FONT> (propValue == <FONT CLASS="Null">null</FONT>) || !propValue.equals(expectedValue);
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>}
+<FONT CLASS="LN">39</FONT><A NAME="39"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/SimpleExpression.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/SimpleExpression.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/SimpleExpression.java.html	(revision 14989)
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.SimpleExpression (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SimpleExpression.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">org.tp23.antinstaller.input.ResultContainer</A>;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">org.tp23.antinstaller.runtime.ConfigurationException</A>;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * @author mwilson
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * @version $Id: SimpleExpression.java,v 1.1 2006/09/08 19:16:30 anothermwilson
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> *          Exp $
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> */</FONT>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SimpleExpression <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Value.java.html">Value</A> value1;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A> testCondition;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Value.java.html">Value</A> value2;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> String literalValue1;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> String literalValue2;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> SimpleExpression(
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>                <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> resultContainer, 
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>                <FONT CLASS="Final">final</FONT> String value1, 
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>                <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A> test, 
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>                <FONT CLASS="Final">final</FONT> String value2)
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="This">this</FONT>.literalValue1 = value1;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="This">this</FONT>.value1 = getValue(resultContainer, value1);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="This">this</FONT>.testCondition = test;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        <FONT CLASS="This">this</FONT>.literalValue2 = value2;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="This">this</FONT>.value2 = getValue(resultContainer, value2);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> evaluate() {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="Return">return</FONT> testCondition.getTestResult(value1, value2);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Value.java.html">Value</A> getValue(<A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> container, String valueStr) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A> {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="If">if</FONT> ( (valueStr.length() &gt; <FONT CLASS="IntegerLiteral">0</FONT>) &amp;&amp; (valueStr.charAt(<FONT CLASS="IntegerLiteral">0</FONT>) == <FONT CLASS="CharacerLiteral">'$'</FONT>) ) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            <FONT CLASS="If">if</FONT> ( valueStr.startsWith(<FONT CLASS="StringLiteral">"${"</FONT>) &amp;&amp; valueStr.endsWith(<FONT CLASS="StringLiteral">"}"</FONT>) ) {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>                <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/VariableValue.java.html">VariableValue</A>(container, valueStr);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/ConfigurationException.java.html">ConfigurationException</A>(<FONT CLASS="StringLiteral">"Badly formed variable: '"</FONT> + valueStr + <FONT CLASS="StringLiteral">"'"</FONT>);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LiteralValue.java.html">LiteralValue</A>(valueStr);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Public">public</FONT> String toString() {
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"["</FONT> + literalValue1 + <FONT CLASS="StringLiteral">"=="</FONT> + literalValue2 + <FONT CLASS="StringLiteral">"]"</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>}
+<FONT CLASS="LN">69</FONT><A NAME="69"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/SingleExpressionTest.java.html	(revision 14989)
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.SingleExpressionTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SingleExpressionTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: SingleExpressionTest.java,v 1.1 2006/09/08 19:16:30
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *          anothermwilson Exp $
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SingleExpressionTest <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/LogicalTest.java.html">LogicalTest</A> {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String[] EMPTY_TOKEN_LIST = <FONT CLASS="New">new</FONT> String[<FONT CLASS="IntegerLiteral">0</FONT>];
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression1, <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Expression.java.html">Expression</A> expression2) {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>        <FONT CLASS="Return">return</FONT> expression1.evaluate();
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    }
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens() {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <FONT CLASS="Return">return</FONT> EMPTY_TOKEN_LIST;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>}
+<FONT CLASS="LN">35</FONT><A NAME="35"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/StartsWithTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/StartsWithTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/StartsWithTest.java.html	(revision 14989)
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.StartsWithTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">StartsWithTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: StartsWithTest.java,v 1.1 2006/09/08 19:16:30 anothermwilson
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> *          Exp $
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> StartsWithTest <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/ValuesTest.java.html">ValuesTest</A> {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String[] TEST_TOKENS = { <FONT CLASS="StringLiteral">"^="</FONT> };
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens() {
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>        <FONT CLASS="Return">return</FONT> TEST_TOKENS;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    }
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<FONT CLASS="Final">final</FONT> String value1, <FONT CLASS="Final">final</FONT> String value2) {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <FONT CLASS="Return">return</FONT> (value1 != <FONT CLASS="Null">null</FONT>) &amp;&amp; value1.startsWith(value2);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>}
+<FONT CLASS="LN">36</FONT><A NAME="36"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/StringLengthComparator.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/StringLengthComparator.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/StringLengthComparator.java.html	(revision 14989)
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.StringLengthComparator (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">StringLengthComparator.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> java.util.Comparator;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.taskdefs.Length;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * Compare strings based on their length. Used by ExpressionBuilder to ensure
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * that longest match is attempted first.
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * 
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * @author mwilson
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * @version $Id: StringLengthComparator.java,v 1.1 2006/09/08 19:16:31
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> *          anothermwilson Exp $
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> StringLengthComparator <FONT CLASS="Implements">implements</FONT> Comparator {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>     * Sort by descending String length
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>     * 
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>     * @param o1 first string
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>     * @param o2 second string
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>     * @return difference between the length of o2 and o1
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>     */</FONT>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> compare(Object o1, Object o2) {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        String str1 = (String) o1;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        String str2 = (String) o2;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        <FONT CLASS="Return">return</FONT> (str2.length() - str1.length());
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>    
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>}
+<FONT CLASS="LN">47</FONT><A NAME="47"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/TestOperator.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/TestOperator.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/TestOperator.java.html	(revision 14989)
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.TestOperator (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">TestOperator.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: TestOperator.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> TestOperator {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>    
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Public">public</FONT> String[] getTestTokens();
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>}
+<FONT CLASS="LN">28</FONT><A NAME="28"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/Value.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/Value.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/Value.java.html	(revision 14989)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.Value (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Value.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: Value.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Interface">interface</FONT> Value {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Public">public</FONT> String getValue();
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>}
+<FONT CLASS="LN">27</FONT><A NAME="27"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/ValuesTest.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/ValuesTest.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/ValuesTest.java.html	(revision 14989)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.ValuesTest (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ValuesTest.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="18"></A> * @author mwilson
+<FONT CLASS="LN">19</FONT><A NAME="19"></A> * @version $Id: ValuesTest.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> */</FONT>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Class">class</FONT> ValuesTest <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/TestOperator.java.html">TestOperator</A> {
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Value.java.html">Value</A> value1, <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Value.java.html">Value</A> value2) {
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>        <FONT CLASS="Return">return</FONT> getTestResult(value1.getValue(), value2.getValue());
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    }
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Abstract">abstract</FONT> <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> getTestResult(<FONT CLASS="Final">final</FONT> String value1Str, <FONT CLASS="Final">final</FONT> String value2Str);
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>}
+<FONT CLASS="LN">31</FONT><A NAME="31"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/VariableValue.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/VariableValue.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/logic/VariableValue.java.html	(revision 14989)
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.logic.VariableValue (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">VariableValue.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A>
+<FONT CLASS="LN">15</FONT><A NAME="15"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.logic.index.html" target="packageFrame">org.tp23.antinstaller.runtime.logic</A>;
+<FONT CLASS="LN">16</FONT><A NAME="16"></A>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">org.tp23.antinstaller.input.ResultContainer</A>;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="20"></A> * @author mwilson
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * @version $Id: VariableValue.java,v 1.2 2006/12/21 00:03:18 teknopaul Exp $
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * @since 0.7.4 patch 2
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> */</FONT>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> VariableValue <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/logic/Value.java.html">Value</A> {
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> valueHolder;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Final">final</FONT> String propertyName;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Public">public</FONT> VariableValue(<FONT CLASS="Final">final</FONT> <A HREF="../../../../../org/tp23/antinstaller/input/ResultContainer.java.html">ResultContainer</A> container, <FONT CLASS="Final">final</FONT> String propertyName) {
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>        valueHolder = container;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>        <FONT CLASS="This">this</FONT>.propertyName = propertyName;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> String getValue() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        <FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>         * Use somewhat misleadingly named method getDefaultValue() It doesn't
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>         * return the default value, it returns the current value of a property
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>         * referenced by the use of ${propertyname} syntax
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>         */</FONT>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="Return">return</FONT> valueHolder.getDefaultValue(propertyName);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>}
+<FONT CLASS="LN">43</FONT><A NAME="43"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/NonExtractor.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/NonExtractor.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/NonExtractor.java.html	(revision 14989)
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.selfextract.NonExtractor (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">NonExtractor.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A> <FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.selfextract.index.html" target="packageFrame">org.tp23.antinstaller.selfextract</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/ExecInstall.java.html">org.tp23.antinstaller.runtime.ExecInstall</A>;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">org.tp23.antinstaller.runtime.exe.FilterChain</A>;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterFactory.java.html">org.tp23.antinstaller.runtime.exe.FilterFactory</A>;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * This class is a replacement for the SelfExtractor that provides a similar
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * function to the SelfExtractor but avoids the need to extract all the
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * files prior to running the build.  When using this extractor the project
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * is run from the Jar but It is the Ant builds responsibility to access
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * resources from within the Jar the Jar itself can be referenced using 
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * the Ant property "antinstaller.jar".  The build file is automatically read
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * from the Jar.
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * @author Paul Hinds
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * @version $Id: NonExtractor.java,v 1.4 2006/12/15 21:16:39 teknopaul Exp $
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> */</FONT>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> NonExtractor <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/selfextract/SelfExtractor.java.html">SelfExtractor</A>{
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="FormalComment">/** used by AntProjectFilter */</FONT>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String ANTINSTALLER_JAR_PROPERTY = <FONT CLASS="StringLiteral">"antinstaller.jar"</FONT>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String CONFIG_RESOURCE = <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/runtime/exe/nonextractor.fconfig"</FONT>;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>     * Run method to use from the command line. This is fired via an entry in the 
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>     * MANIFEST.MF in the Jar
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>     *@param  args  The command line arguments
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>     */</FONT>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> main(String[] args) {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            <A HREF="../../../../org/tp23/antinstaller/selfextract/SelfExtractor.java.html">SelfExtractor</A> extractor = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            extractor = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/selfextract/NonExtractor.java.html">NonExtractor</A>();
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">FilterChain</A> chain = FilterFactory.factory(CONFIG_RESOURCE);
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <A HREF="../../../../org/tp23/antinstaller/runtime/ExecInstall.java.html">ExecInstall</A> installExec = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/ExecInstall.java.html">ExecInstall</A>(chain);
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            installExec.parseArgs(args, <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            <FONT CLASS="SingleLineComment">// create temporary space for the build to be removed on exit
+<FONT CLASS="LN">56</FONT><A NAME="56"></A></FONT>            File temp = extractor.makeTempDir();
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            installExec.setTempRoot(temp);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>            installExec.setInstallRoot(temp);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            installExec.exec();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> e) {
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            System.out.println(<FONT CLASS="StringLiteral">"Can't load filter chain: "</FONT> + CONFIG_RESOURCE);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            e.printStackTrace();
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>}
+<FONT CLASS="LN">67</FONT><A NAME="67"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/ProgressIndicator.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/ProgressIndicator.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/ProgressIndicator.java.html	(revision 14989)
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.selfextract.ProgressIndicator (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ProgressIndicator.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.selfextract.index.html" target="packageFrame">org.tp23.antinstaller.selfextract</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Cursor;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.GraphicsConfiguration;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.awt.GridBagConstraints;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.awt.GridBagLayout;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.awt.Insets;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.io.ByteArrayOutputStream;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> javax.swing.BorderFactory;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> javax.swing.ImageIcon;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> javax.swing.JFrame;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> javax.swing.JLabel;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> javax.swing.JPanel;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> javax.swing.JProgressBar;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> javax.swing.UIManager;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> javax.swing.border.BevelBorder;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> javax.swing.border.Border;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> *
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * &lt;p&gt;Frame to indicate progress of the extraction of a SelfExctracting archive &lt;/p&gt;
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * @author Paul Hinds
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> * @version $Id: ProgressIndicator.java,v 1.3 2007/01/28 08:44:40 teknopaul Exp $
+<FONT CLASS="LN">49</FONT><A NAME="49"></A> */</FONT>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ProgressIndicator
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Extends">extends</FONT> JFrame {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String IMAGE_RESOURCE = <FONT CLASS="StringLiteral">"/resources/extract-image.png"</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Private">private</FONT> JPanel jPanel1 = <FONT CLASS="New">new</FONT> JPanel();
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Private">private</FONT> JProgressBar jProgressBar1 = <FONT CLASS="New">new</FONT> JProgressBar();
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Private">private</FONT> JLabel textLabel = <FONT CLASS="New">new</FONT> JLabel();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Private">private</FONT> Border border1;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> max = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> PAGE_WIDTH = <FONT CLASS="IntegerLiteral">160</FONT>;
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> PAGE_HEIGHT = <FONT CLASS="IntegerLiteral">110</FONT>; <FONT CLASS="SingleLineComment">// 35 is text + bar
+<FONT CLASS="LN">63</FONT><A NAME="63"></A></FONT>    <FONT CLASS="Private">private</FONT> String title = res.getString(<FONT CLASS="StringLiteral">"extracting"</FONT>);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>    <FONT CLASS="Private">private</FONT> JLabel imagePanel = <FONT CLASS="New">new</FONT> JLabel();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    GridBagLayout gridBagLayout1 = <FONT CLASS="New">new</FONT> GridBagLayout();
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> useIcon = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="Public">public</FONT> ProgressIndicator(<FONT CLASS="Int">int</FONT> max) {
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        <FONT CLASS="This">this</FONT>.max = max;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        jbInit();
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="Public">public</FONT> ProgressIndicator(<FONT CLASS="Int">int</FONT> max, String title) {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="This">this</FONT>.max = max;
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        <FONT CLASS="This">this</FONT>.title = title;
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        jbInit();
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setLocation() {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        GraphicsConfiguration config = getGraphicsConfiguration();
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="Int">int</FONT> x = (<FONT CLASS="Int">int</FONT>) config.getBounds().getCenterX() - (PAGE_WIDTH / <FONT CLASS="IntegerLiteral">2</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="Int">int</FONT> y = (<FONT CLASS="Int">int</FONT>) config.getBounds().getCenterY() - (PAGE_HEIGHT / <FONT CLASS="IntegerLiteral">2</FONT>);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        setLocation(x, y);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    }
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jbInit() {
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        border1 = BorderFactory.createCompoundBorder(
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            BorderFactory.createBevelBorder(BevelBorder.RAISED),
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            BorderFactory.createEmptyBorder(<FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>, <FONT CLASS="IntegerLiteral">4</FONT>));
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        jPanel1.setLayout(gridBagLayout1);
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="Int">int</FONT> row = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="This">this</FONT>.getContentPane().add(jPanel1, BorderLayout.CENTER);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        <FONT CLASS="If">if</FONT> (useIcon) {
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            PAGE_HEIGHT = <FONT CLASS="IntegerLiteral">110</FONT>;
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            setImage();
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            jPanel1.add(imagePanel, <FONT CLASS="New">new</FONT> GridBagConstraints(<FONT CLASS="IntegerLiteral">0</FONT>, row++, <FONT CLASS="IntegerLiteral">1</FONT>, <FONT CLASS="IntegerLiteral">1</FONT>, <FONT CLASS="FloatPointLiteral">0.1</FONT>, <FONT CLASS="FloatPointLiteral">0.9</FONT>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>                , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, <FONT CLASS="New">new</FONT> Insets(<FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>), <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>            <FONT CLASS="This">this</FONT>.setSize(<FONT CLASS="New">new</FONT> Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            PAGE_HEIGHT = <FONT CLASS="IntegerLiteral">40</FONT>;
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            <FONT CLASS="This">this</FONT>.setSize(<FONT CLASS="New">new</FONT> Dimension(PAGE_WIDTH, <FONT CLASS="IntegerLiteral">35</FONT>));
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        jPanel1.setBorder(border1);
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        jPanel1.setMaximumSize(<FONT CLASS="New">new</FONT> Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        jPanel1.setMinimumSize(<FONT CLASS="New">new</FONT> Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        jPanel1.setPreferredSize(<FONT CLASS="New">new</FONT> Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>        textLabel.setText(title);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        <FONT CLASS="This">this</FONT>.setTitle(title);
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        jPanel1.add(textLabel, <FONT CLASS="New">new</FONT> GridBagConstraints(<FONT CLASS="IntegerLiteral">0</FONT>, row++, <FONT CLASS="IntegerLiteral">1</FONT>, <FONT CLASS="IntegerLiteral">1</FONT>, <FONT CLASS="FloatPointLiteral">0.1</FONT>, <FONT CLASS="FloatPointLiteral">0.1</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            , GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, <FONT CLASS="New">new</FONT> Insets(<FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>), <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        jPanel1.add(jProgressBar1, <FONT CLASS="New">new</FONT> GridBagConstraints(<FONT CLASS="IntegerLiteral">0</FONT>, row++, <FONT CLASS="IntegerLiteral">1</FONT>, <FONT CLASS="IntegerLiteral">1</FONT>, <FONT CLASS="FloatPointLiteral">0.1</FONT>, <FONT CLASS="FloatPointLiteral">0.1</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>            , GridBagConstraints.SOUTH, GridBagConstraints.HORIZONTAL, <FONT CLASS="New">new</FONT> Insets(<FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>), <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>));
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        jProgressBar1.setMinimum(<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        jProgressBar1.setMaximum(max);
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        <FONT CLASS="This">this</FONT>.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        <FONT CLASS="This">this</FONT>.setSize(<FONT CLASS="New">new</FONT> Dimension(PAGE_WIDTH, PAGE_HEIGHT));
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        <FONT CLASS="This">this</FONT>.setResizable(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        <FONT CLASS="This">this</FONT>.setUndecorated(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        setLocation();
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>    }
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> tick() {
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        jProgressBar1.setValue(jProgressBar1.getValue() + <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>    }
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setImage() {
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>            ByteArrayOutputStream baos = <FONT CLASS="New">new</FONT> ByteArrayOutputStream();
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            InputStream in = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(IMAGE_RESOURCE);
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>            <FONT CLASS="Byte">byte</FONT>[] buffer = <FONT CLASS="New">new</FONT> <FONT CLASS="Byte">byte</FONT>[<FONT CLASS="IntegerLiteral">2048</FONT>];
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>            <FONT CLASS="Int">int</FONT> read = -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>            <FONT CLASS="While">while</FONT> ( (read = in.read(buffer)) != -<FONT CLASS="IntegerLiteral">1</FONT>) {
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>                baos.write(buffer, <FONT CLASS="IntegerLiteral">0</FONT>, read);
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>            }
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            ImageIcon icon = <FONT CLASS="New">new</FONT> ImageIcon(baos.toByteArray());
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>            imagePanel.setHorizontalAlignment(JLabel.CENTER);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>            imagePanel.setIcon(icon);
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>        }
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>     * TODO move to JUnit
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>     * @param args
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> main(String[] args) {
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>            <A HREF="../../../../org/tp23/antinstaller/selfextract/ProgressIndicator.java.html">ProgressIndicator</A> indicator = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>            indicator = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/selfextract/ProgressIndicator.java.html">ProgressIndicator</A>(<FONT CLASS="IntegerLiteral">200</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>            indicator.show();
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            UIManager.setLookAndFeel(<FONT CLASS="StringLiteral">"org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>            <FONT CLASS="SingleLineComment">// not concerned about Look and Feel
+<FONT CLASS="LN">60</FONT><A NAME="160"></A></FONT>        }
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>}
+<FONT CLASS="LN">64</FONT><A NAME="164"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/ResourceExtractor.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/ResourceExtractor.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/ResourceExtractor.java.html	(revision 14989)
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.selfextract.ResourceExtractor (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ResourceExtractor.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.selfextract.index.html" target="packageFrame">org.tp23.antinstaller.selfextract</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.FileOutputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * Copies resources from the Classpath to the filesystem replacing regex with replacement
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * and correcting line endings
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * @author teknopaul
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> *
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ResourceExtractor {
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>     * @param resource Must start with / e.g. /org/tp23/myFile.txt
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>     * @param dest
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>     * @throws IOException 
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>     */</FONT>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> copyResource(String resource, File dest, String regex, String replace) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        InputStream is = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(resource);
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>        <FONT CLASS="If">if</FONT>(is == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> IOException(<FONT CLASS="StringLiteral">"Can not find resource: "</FONT> + resource);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        InputStreamReader isr = <FONT CLASS="New">new</FONT> InputStreamReader(is);
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        BufferedReader br = <FONT CLASS="New">new</FONT> BufferedReader(isr);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        FileOutputStream bos = <FONT CLASS="New">new</FONT> FileOutputStream(dest);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        String line = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="While">while</FONT>((line = br.readLine()) != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>            bos.write(line.replaceAll(regex, replace).getBytes());
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            bos.write(System.getProperty(<FONT CLASS="StringLiteral">"line.separator"</FONT>).getBytes());
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        bos.flush();
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        bos.close();
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        br.close();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>     * @param resource Must start with / e.g. /org/tp23/myFile.txt
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>     * @param dest
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>     * @throws IOException 
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>     */</FONT>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> copyResourceBinary(String resource, File dest) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        InputStream is = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(resource);
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        <FONT CLASS="If">if</FONT>(is == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> IOException(<FONT CLASS="StringLiteral">"Can not find resource: "</FONT> + resource);
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        FileOutputStream bos = <FONT CLASS="New">new</FONT> FileOutputStream(dest);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <FONT CLASS="Byte">byte</FONT>[] buffer = <FONT CLASS="New">new</FONT> <FONT CLASS="Byte">byte</FONT>[<FONT CLASS="IntegerLiteral">1024</FONT>];
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        <FONT CLASS="For">for</FONT>(<FONT CLASS="Int">int</FONT> read = <FONT CLASS="IntegerLiteral">0</FONT>; (read = is.read(buffer)) &gt; <FONT CLASS="IntegerLiteral">0</FONT>; ){
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>            bos.write(buffer, <FONT CLASS="IntegerLiteral">0</FONT>, read);
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        bos.flush();
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        bos.close();
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        is.close();
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>}
+<FONT CLASS="LN">75</FONT><A NAME="75"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/SelfExtractor.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/SelfExtractor.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/selfextract/SelfExtractor.java.html	(revision 14989)
@@ -0,0 +1,503 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.selfextract.SelfExtractor (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SelfExtractor.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.selfextract.index.html" target="packageFrame">org.tp23.antinstaller.selfextract</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.HeadlessException;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.BufferedOutputStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.FileFilter;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.FileInputStream;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.io.FileNotFoundException;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.io.FileOutputStream;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> java.net.URL;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> java.util.jar.JarEntry;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> java.util.jar.JarFile;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> java.util.jar.JarInputStream;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> javax.swing.JOptionPane;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> javax.swing.UIManager;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/plaf/LookAndFeelFactory.java.html">org.tp23.antinstaller.renderer.swing.plaf.LookAndFeelFactory</A>;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/ExecInstall.java.html">org.tp23.antinstaller.runtime.ExecInstall</A>;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">org.tp23.antinstaller.runtime.exe.FilterChain</A>;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterFactory.java.html">org.tp23.antinstaller.runtime.exe.FilterFactory</A>;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> *
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * &lt;p&gt;Finds a file reference to the Jar that loads this class and then extracts that Jar
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * to a temporary directory &lt;/p&gt;
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> * &lt;p&gt; &lt;/p&gt;
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * @author Paul Hinds
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> * @version $Id: SelfExtractor.java,v 1.10 2007/01/28 08:44:40 teknopaul Exp $
+<FONT CLASS="LN">48</FONT><A NAME="48"></A> */</FONT>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SelfExtractor {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String CONFIG_RESOURCE = <FONT CLASS="StringLiteral">"/org/tp23/antinstaller/runtime/exe/selfextractor.fconfig"</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Private">private</FONT> File extractDir;
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Private">private</FONT> File archiveFile;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> overwrite = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> DEFAULT_BUFFER_SIZE = <FONT CLASS="IntegerLiteral">1024</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Int">int</FONT> BUFFER_SIZE = DEFAULT_BUFFER_SIZE;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Boolean">boolean</FONT> graphicsEnv = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> String lookAndFeel = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     * returns the Jar that the reference object was loaded from.  If it was not
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>     * loaded from a jar this methods behaviour is undefined
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>     * @TODO define what happens
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     * @param reference
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     * @return A java.io.File reference to the Jar
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>     */</FONT>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> File getEnclosingJar(Object reference) {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        String thisClass = <FONT CLASS="StringLiteral">"/"</FONT> + reference.getClass().getName().replace(<FONT CLASS="CharacerLiteral">'.'</FONT>,<FONT CLASS="CharacerLiteral">'/'</FONT>) + <FONT CLASS="StringLiteral">".class"</FONT>;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        URL jarUrl = reference.getClass().getResource(thisClass);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        String stringForm = jarUrl.toString();
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="SingleLineComment">//String fileForm = jarUrl.getFile();
+<FONT CLASS="LN">74</FONT><A NAME="74"></A></FONT>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        File file = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="Int">int</FONT> endIdx = stringForm.indexOf(<FONT CLASS="StringLiteral">"!/"</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        <FONT CLASS="If">if</FONT>(endIdx != -<FONT CLASS="IntegerLiteral">1</FONT>){
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            String unescaped = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            String fileNamePart = stringForm.substring(<FONT CLASS="StringLiteral">"jar:file:"</FONT>.length(), endIdx);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            file = <FONT CLASS="New">new</FONT> File(fileNamePart);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>            <FONT CLASS="If">if</FONT> ( ! file.exists()) {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                <FONT CLASS="SingleLineComment">// try to unescape encase the URL Handler has escaped the " " to %20
+<FONT CLASS="LN">83</FONT><A NAME="83"></A></FONT>                unescaped = unescape(fileNamePart);
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                file = <FONT CLASS="New">new</FONT> File(unescaped);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            <FONT CLASS="Return">return</FONT> file;
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>        }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> RuntimeException(<FONT CLASS="StringLiteral">"Failed expanding Jar."</FONT>);
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>     * Constructor for the SelfExtractor object.  Directly after constructing
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>     * an instance the init() method should be called unless subclassing
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>     */</FONT>
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    <FONT CLASS="Public">public</FONT> SelfExtractor() {
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>     * This has been moved from the default constructor to facilitate subclassing
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>     * @return true if the lookAndFeel worked
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>     */</FONT>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> init(){
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        System.out.println(<FONT CLASS="StringLiteral">"Loading self extractor..."</FONT>);
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        archiveFile = getEnclosingJar(<FONT CLASS="This">this</FONT>);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        makeTempDir();
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>            JarFile thisJar = <FONT CLASS="New">new</FONT> JarFile(archiveFile);
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            lookAndFeel = thisJar.getManifest().getMainAttributes().getValue(<FONT CLASS="StringLiteral">"Look-And-Feel"</FONT>);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>            lookAndFeel = LookAndFeelFactory.getLafFromToken(lookAndFeel);
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            <FONT CLASS="If">if</FONT>(lookAndFeel != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                UIManager.setLookAndFeel(lookAndFeel);
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        }
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable ex) {
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            <FONT CLASS="SingleLineComment">// not concerned about Look and Feel
+<FONT CLASS="LN">16</FONT><A NAME="116"></A></FONT>        }
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>    }
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>    
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>     * Creates a new empty temporary directory for the file extraction
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>     * @return
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>     */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>    <FONT CLASS="Protected">protected</FONT> File makeTempDir(){
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        String tempDir = System.getProperty(<FONT CLASS="StringLiteral">"java.io.tmpdir"</FONT>);
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        extractDir = <FONT CLASS="New">new</FONT> File(tempDir, <FONT CLASS="StringLiteral">"antinstall"</FONT>);
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        <FONT CLASS="Int">int</FONT> idx = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        <FONT CLASS="While">while</FONT> (extractDir.exists()) {
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            extractDir = <FONT CLASS="New">new</FONT> File(tempDir, <FONT CLASS="StringLiteral">"antinstall"</FONT> + (idx++));
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        }
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        extractDir.mkdirs();
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        extractDir.deleteOnExit();
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        <FONT CLASS="Return">return</FONT> extractDir;
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>     *  Constructor for the SelfExtractor object that sets the buffersize in use.
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>     *  The write buffer is the same size as the write buffer size because the read buffer reads
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>     *  decompressed bytes
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>     *  @param newBufferSize the size of the read buffer
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>     */</FONT>
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>    <FONT CLASS="Public">public</FONT> SelfExtractor(<FONT CLASS="Int">int</FONT> newBufferSize) {
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>        BUFFER_SIZE = newBufferSize;
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        archiveFile = getEnclosingJar(<FONT CLASS="This">this</FONT>);
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>     *  Sets the Directory into which the file will be extracted
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>     *
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>     *@param  newExtractDir  The new extract directory
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>     */</FONT>
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setExtractDir(File newExtractDir) {
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        extractDir = newExtractDir;
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>     *  changes the archive to be extracted
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>     *@param  newArchiveFile  The new archiveFile value
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>     */</FONT>
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setArchiveFile(File newArchiveFile) {
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>        archiveFile = newArchiveFile;
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>     *  Gets the Directory into which the files will be extracted that
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>     *  is currently set in the ZipExtractor object
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>     *@return    The extract directory value
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>     */</FONT>
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>    <FONT CLASS="Public">public</FONT> File getExtractDir() {
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>        <FONT CLASS="Return">return</FONT> extractDir;
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>    }
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>     *  Gets the set in the ZipExtractor
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>     *@return    The archiveFile value
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>     */</FONT>
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isOverwrite() {
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>        <FONT CLASS="Return">return</FONT> overwrite;
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>    }
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>     *  Gets the Directory into which the files will be extracted that
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>     *  is currently set in the ZipExtractor object
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>     *@return    The extract directory value
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>     */</FONT>
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setOverwrite(<FONT CLASS="Boolean">boolean</FONT> overwrite) {
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>        <FONT CLASS="This">this</FONT>.overwrite = overwrite;
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>    }
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>     *  Gets the set in the ZipExtractor
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>     *@return    The archiveFile value
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>     */</FONT>
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>    <FONT CLASS="Public">public</FONT> File getArchiveFile() {
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        <FONT CLASS="Return">return</FONT> archiveFile;
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>     *  Opens up the zip and gets a list of the files in it.  If the zip file
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>     *  or the temp file have not been set NullPointerExceptions will get thrown
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>     *@param  vebose  if true Prints out a list of the zips
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>     *      contents on to the command line
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>     *@return  an ArrayList of String objects that will
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>     *         be as per the path in the zip
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>     *@exception  FileNotFoundException  Description of Exception
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>     *@exception  IOException            Description of Exception
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>     */</FONT>
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>    <FONT CLASS="Public">public</FONT> ArrayList getList(<FONT CLASS="Boolean">boolean</FONT> vebose) <FONT CLASS="Throws">throws</FONT> FileNotFoundException, IOException {
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>        JarInputStream zis = <FONT CLASS="New">new</FONT> JarInputStream(<FONT CLASS="New">new</FONT> FileInputStream(archiveFile));
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>        JarEntry entry = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>        ArrayList result = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>        <FONT CLASS="While">while</FONT> ( (entry = zis.getNextJarEntry()) != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>            <FONT CLASS="If">if</FONT> (vebose) {
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>                System.out.println(entry.getName());
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>            }
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>            result.add(entry.getName());
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>        }
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>        <FONT CLASS="Return">return</FONT> result;
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>    }
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>     * @return the number of files in the jar
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>     * @throws FileNotFoundException
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>     * @throws IOException
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>     */</FONT>
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Int">int</FONT> getFileCount() <FONT CLASS="Throws">throws</FONT> FileNotFoundException, IOException {
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>        JarInputStream zis = <FONT CLASS="New">new</FONT> JarInputStream(<FONT CLASS="New">new</FONT> FileInputStream(archiveFile));
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>        <FONT CLASS="Int">int</FONT> count = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>        <FONT CLASS="While">while</FONT> (  zis.getNextJarEntry() != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>            count++;
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>        }
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>        <FONT CLASS="Return">return</FONT> count;
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>     *  Opens up the zip and extracts the files to the temp dir.
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>     *
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>     *@param  vebose  if true Prints out a list of the zips contents on to System.out
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>     *@return an ArrayList of java.io.File objects that
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>     *      will be as per the path in the zip with the root being the temp dir
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>     *@exception  FileNotFoundException
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>     *@exception  IOException
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>     */</FONT>
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>    <FONT CLASS="Public">public</FONT> ArrayList extract(<FONT CLASS="Boolean">boolean</FONT> vebose, <FONT CLASS="Boolean">boolean</FONT> isX) <FONT CLASS="Throws">throws</FONT> FileNotFoundException, IOException {
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>        <FONT CLASS="Int">int</FONT> fileCount = getFileCount();
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>        <A HREF="../../../../org/tp23/antinstaller/selfextract/ProgressIndicator.java.html">ProgressIndicator</A> indicator = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="246"></A>        <FONT CLASS="If">if</FONT>(isX){
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>                    indicator = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/selfextract/ProgressIndicator.java.html">ProgressIndicator</A>(fileCount);
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>                    indicator.show();
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>            }
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>            <FONT CLASS="Catch">catch</FONT> ( Exception exc ) {
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>                <FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>                 * Chances are, there are problems with the graphics environment
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>                 * so trying falling back to text mode
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>                 */</FONT>
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>                graphicsEnv = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>                isX = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>            }
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>        }
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>        JarInputStream zis = <FONT CLASS="New">new</FONT> JarInputStream(<FONT CLASS="New">new</FONT> FileInputStream(archiveFile));
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>        JarEntry entry = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>        ArrayList result = <FONT CLASS="New">new</FONT> ArrayList();
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>        <FONT CLASS="While">while</FONT> ( (entry = zis.getNextJarEntry()) != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>            <FONT CLASS="If">if</FONT> (vebose) {
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>                System.out.println(<FONT CLASS="StringLiteral">"Extracting:"</FONT> + entry.getName());
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>            }
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>            result.add(extract(zis, entry));
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>            <FONT CLASS="If">if</FONT> (isX) {
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>                indicator.tick();
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>            }
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>        }
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>        <FONT CLASS="If">if</FONT> (isX) {
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>            indicator.hide();
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>        zis.close();
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>        <FONT CLASS="Return">return</FONT> result;
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>    }
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">83</FONT><A NAME="283"></A>     *  Extract a single file from the stream. N.B. the stream must be in the correct
+<FONT CLASS="LN">84</FONT><A NAME="284"></A>     *  position for this to work
+<FONT CLASS="LN">85</FONT><A NAME="285"></A>     *@param  zis                        ZipInputStream open and ready
+<FONT CLASS="LN">86</FONT><A NAME="286"></A>     *@param  entry                      A valid entry read from the stream
+<FONT CLASS="LN">87</FONT><A NAME="287"></A>     *@return                            The inflated file generated in the temp dir
+<FONT CLASS="LN">88</FONT><A NAME="288"></A>     *@exception  FileNotFoundException
+<FONT CLASS="LN">89</FONT><A NAME="289"></A>     *@exception  IOException
+<FONT CLASS="LN">90</FONT><A NAME="290"></A>     */</FONT>
+<FONT CLASS="LN">91</FONT><A NAME="291"></A>    <FONT CLASS="Private">private</FONT> File extract(JarInputStream zis, JarEntry entry) <FONT CLASS="Throws">throws</FONT> FileNotFoundException, IOException {
+<FONT CLASS="LN">92</FONT><A NAME="292"></A>        createPath(entry.getName());
+<FONT CLASS="LN">93</FONT><A NAME="293"></A>        File fileToUse = <FONT CLASS="New">new</FONT> File(extractDir, entry.getName());
+<FONT CLASS="LN">94</FONT><A NAME="294"></A>        <FONT CLASS="If">if</FONT> (fileToUse.exists()) {
+<FONT CLASS="LN">95</FONT><A NAME="295"></A>            <FONT CLASS="If">if</FONT> (!overwrite) {
+<FONT CLASS="LN">96</FONT><A NAME="296"></A>                <FONT CLASS="Return">return</FONT> fileToUse;
+<FONT CLASS="LN">97</FONT><A NAME="297"></A>            }
+<FONT CLASS="LN">98</FONT><A NAME="298"></A>        }
+<FONT CLASS="LN">99</FONT><A NAME="299"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">00</FONT><A NAME="300"></A>            fileToUse.createNewFile();
+<FONT CLASS="LN">01</FONT><A NAME="301"></A>        }
+<FONT CLASS="LN">02</FONT><A NAME="302"></A>        <FONT CLASS="If">if</FONT> (fileToUse.isDirectory()) {
+<FONT CLASS="LN">03</FONT><A NAME="303"></A>            <FONT CLASS="Return">return</FONT> fileToUse;
+<FONT CLASS="LN">04</FONT><A NAME="304"></A>        }
+<FONT CLASS="LN">05</FONT><A NAME="305"></A>
+<FONT CLASS="LN">06</FONT><A NAME="306"></A>        BufferedOutputStream bos = <FONT CLASS="New">new</FONT> BufferedOutputStream(<FONT CLASS="New">new</FONT> FileOutputStream(fileToUse), BUFFER_SIZE);
+<FONT CLASS="LN">07</FONT><A NAME="307"></A>        <FONT CLASS="Byte">byte</FONT>[] bytes = <FONT CLASS="New">new</FONT> <FONT CLASS="Byte">byte</FONT>[BUFFER_SIZE];
+<FONT CLASS="LN">08</FONT><A NAME="308"></A>        <FONT CLASS="Int">int</FONT> len = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">09</FONT><A NAME="309"></A>        <FONT CLASS="While">while</FONT> ( (len = zis.read(bytes)) &gt;= <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">10</FONT><A NAME="310"></A>            bos.write(bytes, <FONT CLASS="IntegerLiteral">0</FONT>, len);
+<FONT CLASS="LN">11</FONT><A NAME="311"></A>        }
+<FONT CLASS="LN">12</FONT><A NAME="312"></A>        bos.close();
+<FONT CLASS="LN">13</FONT><A NAME="313"></A>        zis.closeEntry();
+<FONT CLASS="LN">14</FONT><A NAME="314"></A>        <FONT CLASS="Return">return</FONT> fileToUse;
+<FONT CLASS="LN">15</FONT><A NAME="315"></A>    }
+<FONT CLASS="LN">16</FONT><A NAME="316"></A>
+<FONT CLASS="LN">17</FONT><A NAME="317"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">18</FONT><A NAME="318"></A>     *  This adds all the necessary directories in the root of the zip path to the
+<FONT CLASS="LN">19</FONT><A NAME="319"></A>     *  temp dir.
+<FONT CLASS="LN">20</FONT><A NAME="320"></A>     *@param  entryName        The string name in the Zip file (virtual path)
+<FONT CLASS="LN">21</FONT><A NAME="321"></A>     *@exception  IOException  if the directories can not be made
+<FONT CLASS="LN">22</FONT><A NAME="322"></A>     */</FONT>
+<FONT CLASS="LN">23</FONT><A NAME="323"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> createPath(String entryName) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">24</FONT><A NAME="324"></A>        <FONT CLASS="Int">int</FONT> slashIdx = entryName.lastIndexOf(<FONT CLASS="CharacerLiteral">'/'</FONT>);
+<FONT CLASS="LN">25</FONT><A NAME="325"></A>        <FONT CLASS="If">if</FONT> (slashIdx &gt;= <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">26</FONT><A NAME="326"></A>            <FONT CLASS="SingleLineComment">// there is path info
+<FONT CLASS="LN">27</FONT><A NAME="327"></A></FONT>            String firstPath = entryName.substring(<FONT CLASS="IntegerLiteral">0</FONT>, slashIdx);
+<FONT CLASS="LN">28</FONT><A NAME="328"></A>            File dir = <FONT CLASS="New">new</FONT> File(extractDir, firstPath);
+<FONT CLASS="LN">29</FONT><A NAME="329"></A>            <FONT CLASS="If">if</FONT> (!dir.exists()) {
+<FONT CLASS="LN">30</FONT><A NAME="330"></A>                dir.mkdirs();
+<FONT CLASS="LN">31</FONT><A NAME="331"></A>            }
+<FONT CLASS="LN">32</FONT><A NAME="332"></A>        }
+<FONT CLASS="LN">33</FONT><A NAME="333"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="334"></A>
+<FONT CLASS="LN">35</FONT><A NAME="335"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">36</FONT><A NAME="336"></A>     * Run method to use from the command line. This is fired via an entry in the 
+<FONT CLASS="LN">37</FONT><A NAME="337"></A>     * MANIFEST.MF in the Jar
+<FONT CLASS="LN">38</FONT><A NAME="338"></A>     *@param  args  The command line arguments
+<FONT CLASS="LN">39</FONT><A NAME="339"></A>     */</FONT>
+<FONT CLASS="LN">40</FONT><A NAME="340"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> main(String[] args) {
+<FONT CLASS="LN">41</FONT><A NAME="341"></A>        testX();
+<FONT CLASS="LN">42</FONT><A NAME="342"></A>        <FONT CLASS="SingleLineComment">// FIXME move after parseArgs() and set graphicsEnv if text selected
+<FONT CLASS="LN">43</FONT><A NAME="343"></A></FONT>        <FONT CLASS="SingleLineComment">// will need to test SelfExtractor and comment parseArgs() to ensure
+<FONT CLASS="LN">44</FONT><A NAME="344"></A></FONT>        <FONT CLASS="SingleLineComment">// no side effects in the future.
+<FONT CLASS="LN">45</FONT><A NAME="345"></A></FONT>        <A HREF="../../../../org/tp23/antinstaller/selfextract/SelfExtractor.java.html">SelfExtractor</A> extractor = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">46</FONT><A NAME="346"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">47</FONT><A NAME="347"></A>            <FONT CLASS="Boolean">boolean</FONT> verbose = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">48</FONT><A NAME="348"></A>            extractor = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/selfextract/SelfExtractor.java.html">SelfExtractor</A>();
+<FONT CLASS="LN">49</FONT><A NAME="349"></A>            extractor.init();
+<FONT CLASS="LN">50</FONT><A NAME="350"></A>            extractor.extract(verbose, graphicsEnv);
+<FONT CLASS="LN">51</FONT><A NAME="351"></A>        }
+<FONT CLASS="LN">52</FONT><A NAME="352"></A>        <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">53</FONT><A NAME="353"></A>            e.printStackTrace();
+<FONT CLASS="LN">54</FONT><A NAME="354"></A>            String tempDir = <FONT CLASS="StringLiteral">"unknown"</FONT>;
+<FONT CLASS="LN">55</FONT><A NAME="355"></A>            <FONT CLASS="If">if</FONT>(extractor != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">56</FONT><A NAME="356"></A>                tempDir = extractor.getExtractDir().getAbsolutePath();
+<FONT CLASS="LN">57</FONT><A NAME="357"></A>            }
+<FONT CLASS="LN">58</FONT><A NAME="358"></A>            String warning = <FONT CLASS="StringLiteral">"Could not extract Jar file to directory:"</FONT> + tempDir;
+<FONT CLASS="LN">59</FONT><A NAME="359"></A>            printXorTextWarning(warning);
+<FONT CLASS="LN">60</FONT><A NAME="360"></A>        }
+<FONT CLASS="LN">61</FONT><A NAME="361"></A>        
+<FONT CLASS="LN">62</FONT><A NAME="362"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">63</FONT><A NAME="363"></A>            <A HREF="../../../../org/tp23/antinstaller/runtime/exe/FilterChain.java.html">FilterChain</A> chain = FilterFactory.factory(CONFIG_RESOURCE);     
+<FONT CLASS="LN">64</FONT><A NAME="364"></A>            <A HREF="../../../../org/tp23/antinstaller/runtime/ExecInstall.java.html">ExecInstall</A> installExec = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/ExecInstall.java.html">ExecInstall</A>(chain);
+<FONT CLASS="LN">65</FONT><A NAME="365"></A>            installExec.parseArgs(args, <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">66</FONT><A NAME="366"></A>            installExec.setInstallRoot(extractor.getExtractDir());
+<FONT CLASS="LN">67</FONT><A NAME="367"></A>            <FONT CLASS="SingleLineComment">// removes files on exit
+<FONT CLASS="LN">68</FONT><A NAME="368"></A></FONT>            installExec.setTempRoot(extractor.getExtractDir());
+<FONT CLASS="LN">69</FONT><A NAME="369"></A>
+<FONT CLASS="LN">70</FONT><A NAME="370"></A>            installExec.exec();
+<FONT CLASS="LN">71</FONT><A NAME="371"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="372"></A>        <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> e1) {
+<FONT CLASS="LN">73</FONT><A NAME="373"></A>            System.out.println(<FONT CLASS="StringLiteral">"Cant load filter chain:/org/tp23/antinstaller/runtime/exe/selfextractor.fconfig"</FONT>);
+<FONT CLASS="LN">74</FONT><A NAME="374"></A>            e1.printStackTrace();
+<FONT CLASS="LN">75</FONT><A NAME="375"></A>        }
+<FONT CLASS="LN">76</FONT><A NAME="376"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="377"></A>
+<FONT CLASS="LN">78</FONT><A NAME="378"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">79</FONT><A NAME="379"></A>     * This tests for the existence of a  graphics environment and sets an
+<FONT CLASS="LN">80</FONT><A NAME="380"></A>     * internal flag so the test does not have to be repeated, it may be expensive.
+<FONT CLASS="LN">81</FONT><A NAME="381"></A>     * Prior to running this method the isGraphicsEnv() method will be invalid.
+<FONT CLASS="LN">82</FONT><A NAME="382"></A>     */</FONT>
+<FONT CLASS="LN">83</FONT><A NAME="383"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> testX(){
+<FONT CLASS="LN">84</FONT><A NAME="384"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">85</FONT><A NAME="385"></A>            java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();
+<FONT CLASS="LN">86</FONT><A NAME="386"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">87</FONT><A NAME="387"></A>                <FONT CLASS="Boolean">boolean</FONT> headless = java.awt.GraphicsEnvironment.isHeadless();
+<FONT CLASS="LN">88</FONT><A NAME="388"></A>                <FONT CLASS="If">if</FONT>(headless) {
+<FONT CLASS="LN">89</FONT><A NAME="389"></A>                    graphicsEnv = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">90</FONT><A NAME="390"></A>                    <FONT CLASS="Return">return</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="391"></A>                }
+<FONT CLASS="LN">92</FONT><A NAME="392"></A>            } <FONT CLASS="Catch">catch</FONT> (Throwable e) {
+<FONT CLASS="LN">93</FONT><A NAME="393"></A>                <FONT CLASS="SingleLineComment">// JDK 1.3 does not have the isHeadless() method but may still work in other situations
+<FONT CLASS="LN">94</FONT><A NAME="394"></A></FONT>            }
+<FONT CLASS="LN">95</FONT><A NAME="395"></A>            graphicsEnv = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">96</FONT><A NAME="396"></A>        }
+<FONT CLASS="LN">97</FONT><A NAME="397"></A>        <FONT CLASS="Catch">catch</FONT> (Throwable e) {
+<FONT CLASS="LN">98</FONT><A NAME="398"></A>            <FONT CLASS="SingleLineComment">// thus graphicsEnv stays false;
+<FONT CLASS="LN">99</FONT><A NAME="399"></A></FONT>        }
+<FONT CLASS="LN">00</FONT><A NAME="400"></A>    }
+<FONT CLASS="LN">01</FONT><A NAME="401"></A>    
+<FONT CLASS="LN">02</FONT><A NAME="402"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">03</FONT><A NAME="403"></A>     * @see #testX()
+<FONT CLASS="LN">04</FONT><A NAME="404"></A>     * @return true if an X or windows environment is available
+<FONT CLASS="LN">05</FONT><A NAME="405"></A>     */</FONT>
+<FONT CLASS="LN">06</FONT><A NAME="406"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> isGraphicsEnv(){
+<FONT CLASS="LN">07</FONT><A NAME="407"></A>        <FONT CLASS="Return">return</FONT> graphicsEnv;
+<FONT CLASS="LN">08</FONT><A NAME="408"></A>    }
+<FONT CLASS="LN">09</FONT><A NAME="409"></A>
+<FONT CLASS="LN">10</FONT><A NAME="410"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> printXorTextWarning(String warning){
+<FONT CLASS="LN">11</FONT><A NAME="411"></A>        <FONT CLASS="If">if</FONT>(graphicsEnv){
+<FONT CLASS="LN">12</FONT><A NAME="412"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">13</FONT><A NAME="413"></A>                JOptionPane.showMessageDialog(<FONT CLASS="Null">null</FONT>, warning);
+<FONT CLASS="LN">14</FONT><A NAME="414"></A>            }
+<FONT CLASS="LN">15</FONT><A NAME="415"></A>            <FONT CLASS="Catch">catch</FONT>( HeadlessException headlessExc ) {
+<FONT CLASS="LN">16</FONT><A NAME="416"></A>                graphicsEnv = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">17</FONT><A NAME="417"></A>                System.out.println(warning);
+<FONT CLASS="LN">18</FONT><A NAME="418"></A>            }
+<FONT CLASS="LN">19</FONT><A NAME="419"></A>        }
+<FONT CLASS="LN">20</FONT><A NAME="420"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">21</FONT><A NAME="421"></A>            System.out.println(warning);
+<FONT CLASS="LN">22</FONT><A NAME="422"></A>        }
+<FONT CLASS="LN">23</FONT><A NAME="423"></A>    }
+<FONT CLASS="LN">24</FONT><A NAME="424"></A>
+<FONT CLASS="LN">25</FONT><A NAME="425"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Int">int</FONT> deleteRecursive(File directory) {
+<FONT CLASS="LN">26</FONT><A NAME="426"></A>        <FONT CLASS="Int">int</FONT> count = <FONT CLASS="IntegerLiteral">0</FONT>;
+<FONT CLASS="LN">27</FONT><A NAME="427"></A>        File[] files = directory.listFiles(<FONT CLASS="New">new</FONT> FileFilter() {
+<FONT CLASS="LN">28</FONT><A NAME="428"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> accept(File file) {
+<FONT CLASS="LN">29</FONT><A NAME="429"></A>                <FONT CLASS="Return">return</FONT>!file.isDirectory();
+<FONT CLASS="LN">30</FONT><A NAME="430"></A>            }
+<FONT CLASS="LN">31</FONT><A NAME="431"></A>        });
+<FONT CLASS="LN">32</FONT><A NAME="432"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; files.length; i++) {
+<FONT CLASS="LN">33</FONT><A NAME="433"></A>            files[i].delete();
+<FONT CLASS="LN">34</FONT><A NAME="434"></A>            count++;
+<FONT CLASS="LN">35</FONT><A NAME="435"></A>        }
+<FONT CLASS="LN">36</FONT><A NAME="436"></A>        File[] dirs = directory.listFiles(<FONT CLASS="New">new</FONT> FileFilter() {
+<FONT CLASS="LN">37</FONT><A NAME="437"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> accept(File file) {
+<FONT CLASS="LN">38</FONT><A NAME="438"></A>                <FONT CLASS="Return">return</FONT> file.isDirectory();
+<FONT CLASS="LN">39</FONT><A NAME="439"></A>            }
+<FONT CLASS="LN">40</FONT><A NAME="440"></A>        });
+<FONT CLASS="LN">41</FONT><A NAME="441"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; dirs.length; i++) {
+<FONT CLASS="LN">42</FONT><A NAME="442"></A>            count += deleteRecursive(dirs[i]);
+<FONT CLASS="LN">43</FONT><A NAME="443"></A>        }
+<FONT CLASS="LN">44</FONT><A NAME="444"></A>        directory.delete();
+<FONT CLASS="LN">45</FONT><A NAME="445"></A>        <FONT CLASS="Return">return</FONT> count;
+<FONT CLASS="LN">46</FONT><A NAME="446"></A>    }
+<FONT CLASS="LN">47</FONT><A NAME="447"></A>
+<FONT CLASS="LN">48</FONT><A NAME="448"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">49</FONT><A NAME="449"></A>     * UN-URL encode string
+<FONT CLASS="LN">50</FONT><A NAME="450"></A>     * TODO should this not support UNICODE escapes
+<FONT CLASS="LN">51</FONT><A NAME="451"></A>     */</FONT>
+<FONT CLASS="LN">52</FONT><A NAME="452"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> String unescape(<FONT CLASS="Final">final</FONT> String s) {
+<FONT CLASS="LN">53</FONT><A NAME="453"></A>        StringBuffer sb = <FONT CLASS="New">new</FONT> StringBuffer(s.length());
+<FONT CLASS="LN">54</FONT><A NAME="454"></A>
+<FONT CLASS="LN">55</FONT><A NAME="455"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; s.length(); i++) {
+<FONT CLASS="LN">56</FONT><A NAME="456"></A>            <FONT CLASS="Char">char</FONT> c = s.charAt(i);
+<FONT CLASS="LN">57</FONT><A NAME="457"></A>            <FONT CLASS="Switch">switch</FONT> (c) {
+<FONT CLASS="LN">58</FONT><A NAME="458"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'%'</FONT>: {
+<FONT CLASS="LN">59</FONT><A NAME="459"></A>                    <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">60</FONT><A NAME="460"></A>                        sb.append( (<FONT CLASS="Char">char</FONT>) Integer.parseInt(s.substring(i + <FONT CLASS="IntegerLiteral">1</FONT>, i + <FONT CLASS="IntegerLiteral">3</FONT>), <FONT CLASS="IntegerLiteral">16</FONT>));
+<FONT CLASS="LN">61</FONT><A NAME="461"></A>                        i += <FONT CLASS="IntegerLiteral">2</FONT>;
+<FONT CLASS="LN">62</FONT><A NAME="462"></A>                        <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="463"></A>                    }
+<FONT CLASS="LN">64</FONT><A NAME="464"></A>                    <FONT CLASS="Catch">catch</FONT> (NumberFormatException nfe) {
+<FONT CLASS="LN">65</FONT><A NAME="465"></A>                        <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> IllegalArgumentException();
+<FONT CLASS="LN">66</FONT><A NAME="466"></A>                    }
+<FONT CLASS="LN">67</FONT><A NAME="467"></A>                    <FONT CLASS="Catch">catch</FONT> (StringIndexOutOfBoundsException siob) {
+<FONT CLASS="LN">68</FONT><A NAME="468"></A>                        String end = s.substring(i);
+<FONT CLASS="LN">69</FONT><A NAME="469"></A>                        sb.append(end);
+<FONT CLASS="LN">70</FONT><A NAME="470"></A>                        <FONT CLASS="If">if</FONT> (end.length() == <FONT CLASS="IntegerLiteral">2</FONT>) i++;
+<FONT CLASS="LN">71</FONT><A NAME="471"></A>                    }
+<FONT CLASS="LN">72</FONT><A NAME="472"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="473"></A>                }
+<FONT CLASS="LN">74</FONT><A NAME="474"></A>                <FONT CLASS="Default">default</FONT>: {
+<FONT CLASS="LN">75</FONT><A NAME="475"></A>                    sb.append(c);
+<FONT CLASS="LN">76</FONT><A NAME="476"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">77</FONT><A NAME="477"></A>                }
+<FONT CLASS="LN">78</FONT><A NAME="478"></A>            }
+<FONT CLASS="LN">79</FONT><A NAME="479"></A>        }
+<FONT CLASS="LN">80</FONT><A NAME="480"></A>        <FONT CLASS="Return">return</FONT> sb.toString();
+<FONT CLASS="LN">81</FONT><A NAME="481"></A>    }
+<FONT CLASS="LN">82</FONT><A NAME="482"></A>
+<FONT CLASS="LN">83</FONT><A NAME="483"></A>}
+<FONT CLASS="LN">84</FONT><A NAME="484"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/GBCF.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/GBCF.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/GBCF.java.html	(revision 14989)
@@ -0,0 +1,137 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.gui.GBCF (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">GBCF.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../org.tp23.gui.index.html" target="packageFrame">org.tp23.gui</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.GridBagConstraints;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Insets;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">21</FONT><A NAME="21"></A> * GBCF  Grib Bag Constraints Factory.  This class exists mostly
+<FONT CLASS="LN">22</FONT><A NAME="22"></A> * for tidying up code that used the exsivly verbose GridBagConstraints
+<FONT CLASS="LN">23</FONT><A NAME="23"></A> * object, hence the shortened class name.
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * By default a two column equal with table is assumed, to support other
+<FONT CLASS="LN">25</FONT><A NAME="25"></A> * column layouts use the constructor that take an array of column wieghts
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * Factory class for generating constraints for a equal width column table.
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * the table is similar to the following table rendered in HTML
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * &lt;table border="2"&gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> *   &lt;tr&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> *     &lt;td&gt;data&lt;/td&gt;&lt;td&gt;data&lt;/td&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> *   &lt;/tr&gt;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> *   &lt;tr&gt;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> *     &lt;td colspan="2"&gt;data&lt;/td&gt;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> *   &lt;/tr&gt;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> *   &lt;tr&gt;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> *     &lt;td&gt;data&lt;/td&gt;&lt;td&gt;data&lt;/td&gt;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> *   &lt;/tr&gt;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A> *   &lt;tr&gt;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A> *     &lt;td&gt;data&lt;/td&gt;&lt;td&gt;data&lt;/td&gt;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> *   &lt;/tr&gt;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * &lt;table&gt;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> * @author not attributable
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * @version 1.0
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> */</FONT>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> GBCF {
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Protected">protected</FONT> Insets insets = <FONT CLASS="New">new</FONT> Insets(<FONT CLASS="IntegerLiteral">1</FONT>,<FONT CLASS="IntegerLiteral">4</FONT>,<FONT CLASS="IntegerLiteral">1</FONT>,<FONT CLASS="IntegerLiteral">4</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Protected">protected</FONT> Insets noinsets = <FONT CLASS="New">new</FONT> Insets(<FONT CLASS="IntegerLiteral">0</FONT>,<FONT CLASS="IntegerLiteral">0</FONT>,<FONT CLASS="IntegerLiteral">0</FONT>,<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Double">double</FONT>[] columnWeights= <FONT CLASS="New">new</FONT> <FONT CLASS="Double">double</FONT>[]{<FONT CLASS="FloatPointLiteral">0.5</FONT>,<FONT CLASS="FloatPointLiteral">0.5</FONT>};
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> GBCF(){
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>     * to support more than two columns or vary the column wieghtings
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>     * @param columnWeights double[]
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>     */</FONT>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Public">public</FONT> GBCF(<FONT CLASS="Double">double</FONT>[] columnWeights){
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="This">this</FONT>.columnWeights=columnWeights;
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>     *
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>     * @param row int the 0 indexed row
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>     * @param col int the 0 indexed column
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>     * @param span boolean does cell span both columns
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     * @return GridBagConstraints
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     */</FONT>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>    <FONT CLASS="Public">public</FONT> GridBagConstraints getCell(<FONT CLASS="Int">int</FONT> row,<FONT CLASS="Int">int</FONT> col){
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> GridBagConstraints(col,              <FONT CLASS="SingleLineComment">//gridx
+<FONT CLASS="LN">70</FONT><A NAME="70"></A></FONT>                                      row,              <FONT CLASS="SingleLineComment">//gridy
+<FONT CLASS="LN">71</FONT><A NAME="71"></A></FONT>                                      <FONT CLASS="IntegerLiteral">1</FONT>,                <FONT CLASS="SingleLineComment">//gridwidth
+<FONT CLASS="LN">72</FONT><A NAME="72"></A></FONT>                                      <FONT CLASS="IntegerLiteral">1</FONT>,                <FONT CLASS="SingleLineComment">//gridheight
+<FONT CLASS="LN">73</FONT><A NAME="73"></A></FONT>                                      columnWeights[col],<FONT CLASS="SingleLineComment">//weightx
+<FONT CLASS="LN">74</FONT><A NAME="74"></A></FONT>                                      <FONT CLASS="FloatPointLiteral">0.0</FONT>,              <FONT CLASS="SingleLineComment">//weithty
+<FONT CLASS="LN">75</FONT><A NAME="75"></A></FONT>                                      GridBagConstraints.WEST, <FONT CLASS="SingleLineComment">// anchor
+<FONT CLASS="LN">76</FONT><A NAME="76"></A></FONT>                                      GridBagConstraints.NONE, <FONT CLASS="SingleLineComment">//fill
+<FONT CLASS="LN">77</FONT><A NAME="77"></A></FONT>                                      insets,  <FONT CLASS="SingleLineComment">// insets
+<FONT CLASS="LN">78</FONT><A NAME="78"></A></FONT>                                      <FONT CLASS="IntegerLiteral">1</FONT>, <FONT CLASS="SingleLineComment">//ipadx
+<FONT CLASS="LN">79</FONT><A NAME="79"></A></FONT>                                      <FONT CLASS="IntegerLiteral">1</FONT>  <FONT CLASS="SingleLineComment">//ipady
+<FONT CLASS="LN">80</FONT><A NAME="80"></A></FONT>                                      );
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>   }
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>   <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    *
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    * @param row int the 0 indexed row
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    * @param first boolean is this the first column or the second
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    * @param span boolean does cell span both columns
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    * @return GridBagConstraints
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    */</FONT>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>   <FONT CLASS="Public">public</FONT> GridBagConstraints getSpan(<FONT CLASS="Int">int</FONT> row){
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>       <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> GridBagConstraints(<FONT CLASS="IntegerLiteral">0</FONT>,               <FONT CLASS="SingleLineComment">//gridx
+<FONT CLASS="LN">91</FONT><A NAME="91"></A></FONT>                                     row,             <FONT CLASS="SingleLineComment">//gridy
+<FONT CLASS="LN">92</FONT><A NAME="92"></A></FONT>                                     <FONT CLASS="IntegerLiteral">2</FONT>,               <FONT CLASS="SingleLineComment">//gridwidth
+<FONT CLASS="LN">93</FONT><A NAME="93"></A></FONT>                                     <FONT CLASS="IntegerLiteral">1</FONT>,               <FONT CLASS="SingleLineComment">//gridheight
+<FONT CLASS="LN">94</FONT><A NAME="94"></A></FONT>                                     columnWeights[<FONT CLASS="IntegerLiteral">0</FONT>],<FONT CLASS="SingleLineComment">//weightx
+<FONT CLASS="LN">95</FONT><A NAME="95"></A></FONT>                                     <FONT CLASS="FloatPointLiteral">0.0</FONT>,             <FONT CLASS="SingleLineComment">//weithty
+<FONT CLASS="LN">96</FONT><A NAME="96"></A></FONT>                                     GridBagConstraints.WEST, <FONT CLASS="SingleLineComment">// anchor
+<FONT CLASS="LN">97</FONT><A NAME="97"></A></FONT>                                     GridBagConstraints.NONE, <FONT CLASS="SingleLineComment">//fill
+<FONT CLASS="LN">98</FONT><A NAME="98"></A></FONT>                                     insets,  <FONT CLASS="SingleLineComment">// insets
+<FONT CLASS="LN">99</FONT><A NAME="99"></A></FONT>                                     <FONT CLASS="IntegerLiteral">1</FONT>, <FONT CLASS="SingleLineComment">//ipadx
+<FONT CLASS="LN">00</FONT><A NAME="100"></A></FONT>                                     <FONT CLASS="IntegerLiteral">1</FONT>  <FONT CLASS="SingleLineComment">//ipady
+<FONT CLASS="LN">01</FONT><A NAME="101"></A></FONT>                                     );
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>  }
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>  <FONT CLASS="Public">public</FONT> GridBagConstraints getVertGlue(<FONT CLASS="Int">int</FONT> row){
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>      <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> GridBagConstraints(<FONT CLASS="IntegerLiteral">0</FONT>,               <FONT CLASS="SingleLineComment">//gridx
+<FONT CLASS="LN">05</FONT><A NAME="105"></A></FONT>                                    row,             <FONT CLASS="SingleLineComment">//gridy
+<FONT CLASS="LN">06</FONT><A NAME="106"></A></FONT>                                    <FONT CLASS="IntegerLiteral">2</FONT>,               <FONT CLASS="SingleLineComment">//gridwidth
+<FONT CLASS="LN">07</FONT><A NAME="107"></A></FONT>                                    <FONT CLASS="IntegerLiteral">1</FONT>,               <FONT CLASS="SingleLineComment">//gridheight
+<FONT CLASS="LN">08</FONT><A NAME="108"></A></FONT>                                    columnWeights[<FONT CLASS="IntegerLiteral">0</FONT>],<FONT CLASS="SingleLineComment">//weightx
+<FONT CLASS="LN">09</FONT><A NAME="109"></A></FONT>                                    <FONT CLASS="FloatPointLiteral">1.0</FONT>,             <FONT CLASS="SingleLineComment">//weithty
+<FONT CLASS="LN">10</FONT><A NAME="110"></A></FONT>                                    GridBagConstraints.NORTHWEST, <FONT CLASS="SingleLineComment">// anchor
+<FONT CLASS="LN">11</FONT><A NAME="111"></A></FONT>                                    GridBagConstraints.NONE, <FONT CLASS="SingleLineComment">//fill
+<FONT CLASS="LN">12</FONT><A NAME="112"></A></FONT>                                    noinsets,  <FONT CLASS="SingleLineComment">// insets
+<FONT CLASS="LN">13</FONT><A NAME="113"></A></FONT>                                    <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="SingleLineComment">//ipadx
+<FONT CLASS="LN">14</FONT><A NAME="114"></A></FONT>                                    <FONT CLASS="IntegerLiteral">0</FONT>  <FONT CLASS="SingleLineComment">//ipady
+<FONT CLASS="LN">15</FONT><A NAME="115"></A></FONT>                                    );
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>  }
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>}
+<FONT CLASS="LN">18</FONT><A NAME="118"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/DefaultingDirectoryChooser.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/DefaultingDirectoryChooser.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/DefaultingDirectoryChooser.java.html	(revision 14989)
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.gui.widget.DefaultingDirectoryChooser (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">DefaultingDirectoryChooser.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.gui.widget.index.html" target="packageFrame">org.tp23.gui.widget</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.beans.PropertyChangeEvent;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.beans.PropertyChangeListener;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.JFileChooser;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.filechooser.FileFilter;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.filechooser.FileSystemView;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> * A file chooser that makes a beter default if the default directory is not available.
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>* Basically the default looks for the suggested directory and if it does not find it moves back
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>* up the directories.  If still nothing is found (for example it may get to My Computer
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>* which you can not add file to) the home directory is selected, as in the default file chooser.
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>*
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>* To use this class call new DefaultingDirectoryChooser(boolean) and immediately call
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>* setDefaultDirectory(File) to determine the default. If you don't it behaves like the default JFileChooser
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>* Also if you call setCurrentDirectory(File) it will behave like JFileChooser
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>*
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>* This chooser has two modes CREATE_MODE and EXISTING_MODE.   &lt;br/&gt;&lt;br/&gt;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>*
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>* In existing mode it is assumed the chooser is being used to identify an existing directory
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>* the default directory should exist if not the directory shown will be the next existing parent.&lt;br/&gt;&lt;br/&gt;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>*
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>* In create mode it is
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>* assumed that the last directory in the default directory is to be created and may not
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>* exist yet. Therefor the default directory displayed is the parent (with suitable defaulting)
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>* and the text box will contain the name of the last directory.
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>* e.g. if default is C:\Program Files\MyApp  C:\Program Files will be displayed and
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>* MyApp will be shown in the text box (even if it does not exist yet)  If C:\Program Files does not exist
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>* C:\ will be shown as with existing mode.
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>* Choosing select can lead to the creation of the file.  It will not be automatically
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>* created that is the responsibility of the client code.&lt;br/&gt;
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>*
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>* This class uses FileSystemView and will only display folders that return true to fsv.isFileSystem()
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>*
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>* This class also uses a bit of a hack by in CREATE_MODE it sets the selectables to files and directories
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>* although only shows the directories this way a non-existing Directory can be chosen.  This is the only way I can
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>* get it to work on my Java version but I would not be supprised if it did not work on
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>* other versions of the Java API.  It also means that setFileSelectionMode() should
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>* never be called by clients as it will break this hack.
+<FONT CLASS="LN">57</FONT><A NAME="57"></A> * @author Paul Hinds
+<FONT CLASS="LN">58</FONT><A NAME="58"></A> * @version 1.0
+<FONT CLASS="LN">59</FONT><A NAME="59"></A> */</FONT>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> DefaultingDirectoryChooser <FONT CLASS="Extends">extends</FONT> JFileChooser{
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Boolean">boolean</FONT> CREATE_MODE = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Boolean">boolean</FONT> EXISTING_MODE = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     * Determines that the default includes a directory name that is requried
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     * e.g. C:\Program Files\MyApp where even if Program Files does not exist
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>     * MyApp should be part of the default even if it does not exist.
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>     */</FONT>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> createMode = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Private">private</FONT> File selectedFile = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="Private">private</FONT> String desiredName = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    <FONT CLASS="Public">public</FONT> DefaultingDirectoryChooser(<FONT CLASS="Boolean">boolean</FONT> createMode) {
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>        <FONT CLASS="This">this</FONT>.createMode=createMode;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        <FONT CLASS="If">if</FONT>(createMode){
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            setFileSelectionMode(FILES_AND_DIRECTORIES);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            removeChoosableFileFilter(getAcceptAllFileFilter());
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            addChoosableFileFilter(<FONT CLASS="New">new</FONT> FileFilter(){
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> accept(File f) {
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>                    <FONT CLASS="If">if</FONT>(f.exists() &amp;&amp; f.isDirectory())<FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                    <FONT CLASS="If">if</FONT>(!f.exists() &amp;&amp; getFileSystemView().getParentDirectory(f).isDirectory())<FONT CLASS="Return">return</FONT> <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                }
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                <FONT CLASS="Public">public</FONT> String getDescription() {
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"Directories"</FONT>;
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>                }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            });
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            addPropertyChangeListener(JFileChooser.DIRECTORY_CHANGED_PROPERTY, <FONT CLASS="New">new</FONT> PropertyChangeListener(){
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> propertyChange(PropertyChangeEvent evt) {
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                    File directory = (File)evt.getNewValue();
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                    DefaultingDirectoryChooser.<FONT CLASS="This">this</FONT>.setCurrentDirectory(<FONT CLASS="New">new</FONT> File(directory, <FONT CLASS="StringLiteral">"newfolder"</FONT>));
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>                    setSelectedFile(<FONT CLASS="New">new</FONT> File(directory, desiredName));
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>                }               
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            });
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            setFileSelectionMode(DIRECTORIES_ONLY);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>     * Sets the default directory.
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>     * @param dir the current directory to point to
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>     * @todo Implement this javax.swing.JFileChooser method
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>     */</FONT>
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDefaultDirectory(File dir) {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        <FONT CLASS="If">if</FONT>(dir==<FONT CLASS="Null">null</FONT>)<FONT CLASS="Return">return</FONT>;<FONT CLASS="SingleLineComment">// called by the default consructor
+<FONT CLASS="LN">11</FONT><A NAME="111"></A></FONT>        <FONT CLASS="If">if</FONT>(createMode){
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            <FONT CLASS="If">if</FONT>(desiredName == <FONT CLASS="Null">null</FONT>)desiredName = dir.getName();
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>            File selected = determineCreateDir(dir);
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            <FONT CLASS="Super">super</FONT>.setCurrentDirectory(selected.getParentFile());
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>            setSelectedFile(selected);
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        }<FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>            <FONT CLASS="Super">super</FONT>.setCurrentDirectory(determineExistingDir(dir));
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        }
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>    }
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>    <FONT CLASS="Private">private</FONT> File determineExistingDir(File defaultDir){
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>        <FONT CLASS="If">if</FONT>(defaultDir.exists())<FONT CLASS="Return">return</FONT> defaultDir;
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        FileSystemView fsv = <FONT CLASS="This">this</FONT>.getFileSystemView();
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        File validParent = getFSVParent(fsv,defaultDir);
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>        <FONT CLASS="If">if</FONT>(validParent!=<FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            <FONT CLASS="Return">return</FONT> validParent;
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        }
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>            <FONT CLASS="Return">return</FONT> fsv.getHomeDirectory();
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        }
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>     * Select a base path for the default even if it does not exist.  The order of preference is as follows
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>     * if the directory exists use it
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>     * if the parent does not exist try finding the next parent
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>     * if the next parent is a root directory e.g. / or C:\ use the users home directory
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>     * @param defaultDir File
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>     * @return File
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>     */</FONT>
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>    <FONT CLASS="Private">private</FONT> File determineCreateDir(File defaultDir){
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        <FONT CLASS="If">if</FONT>(defaultDir.exists())<FONT CLASS="Return">return</FONT> defaultDir;
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        FileSystemView fsv = <FONT CLASS="This">this</FONT>.getFileSystemView();
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>        String dirName = defaultDir.getName();
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>        File validParent = getFSVParent(fsv,defaultDir);
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>        <FONT CLASS="If">if</FONT>(validParent!=<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> File(validParent, dirName);
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>        }
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> File(fsv.getHomeDirectory(), dirName);
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>        }
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>     * Step back up trying to find a parent if none if found return null.
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>     * null can be found if the path starts e:\ and e: does not exist
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>     * @param fsv FileSystemView
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>     * @param dir File
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>     * @return File
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>     */</FONT>
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>    <FONT CLASS="Private">private</FONT> File getFSVParent(FileSystemView fsv,File dir){
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>        File parent = dir.getParentFile();
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>        <FONT CLASS="If">if</FONT>(fsv.isRoot(parent) &amp;&amp; !parent.exists()){
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>        <FONT CLASS="If">if</FONT>(!parent.exists() || !fsv.isFileSystem(parent)){
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>            parent = getFSVParent(fsv,parent);
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>        }
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>        <FONT CLASS="Return">return</FONT> parent;
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>    }
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> main(String[] args) {
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>        <A HREF="../../../../org/tp23/gui/widget/DefaultingDirectoryChooser.java.html">DefaultingDirectoryChooser</A> chooser = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/gui/widget/DefaultingDirectoryChooser.java.html">DefaultingDirectoryChooser</A>(CREATE_MODE);
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>        chooser.setDefaultDirectory(<FONT CLASS="New">new</FONT> File(<FONT CLASS="StringLiteral">"/usr/local/dibble/MyApp"</FONT>));
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>        chooser.showDialog(<FONT CLASS="Null">null</FONT>,<FONT CLASS="StringLiteral">"Select"</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>        System.out.println(<FONT CLASS="StringLiteral">"Selected:"</FONT>+chooser.getSelectedFile().getAbsolutePath());
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>        System.exit(<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>    }
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>}
+<FONT CLASS="LN">81</FONT><A NAME="181"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/FollowingJTextArea.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/FollowingJTextArea.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/FollowingJTextArea.java.html	(revision 14989)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.gui.widget.FollowingJTextArea (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">FollowingJTextArea.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.gui.widget.index.html" target="packageFrame">org.tp23.gui.widget</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionListener;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.event.MouseAdapter;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.event.MouseEvent;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.FileNotFoundException;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.io.FileWriter;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.JMenuItem;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> javax.swing.JPopupMenu;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> javax.swing.JTextArea;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> FollowingJTextArea <FONT CLASS="Extends">extends</FONT> JTextArea{
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> follow = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Public">public</FONT> FollowingJTextArea() {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>        jInit();
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    }
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jInit(){
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="Final">final</FONT> JPopupMenu popUp = getPopupMenu();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="This">this</FONT>.add(popUp);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="This">this</FONT>.addMouseListener(<FONT CLASS="New">new</FONT> MouseAdapter(){
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> mouseClicked(MouseEvent e) {
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>                <FONT CLASS="If">if</FONT> (e.getButton() == e.BUTTON3) {
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>                    popUp.show(FollowingJTextArea.<FONT CLASS="This">this</FONT>,e.getX(),e.getY());
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>                }
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>            }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        });
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> isFollow() {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="Return">return</FONT> follow;
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setFollow(<FONT CLASS="Boolean">boolean</FONT> follow) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        <FONT CLASS="This">this</FONT>.follow = follow;
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> scrollToEnd(){
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        setCaretPosition(getDocument().getLength());
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> toggleFollow(){
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        setFollow(!isFollow());
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    }
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     * Appends the given text to the end of the document.
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>     *
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>     * @param str the text to insert
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>     * @todo Implement this javax.swing.JTextArea method
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>     */</FONT>
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> append(String str) {
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="Super">super</FONT>.append(str);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>        <FONT CLASS="If">if</FONT>(follow)scrollToEnd();
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="Private">private</FONT> JPopupMenu getPopupMenu() {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>        JPopupMenu contextMenu = <FONT CLASS="New">new</FONT> JPopupMenu(<FONT CLASS="StringLiteral">"Options"</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>        JMenuItem saveMenu = <FONT CLASS="New">new</FONT> JMenuItem(<FONT CLASS="StringLiteral">"Save Text"</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>        saveMenu.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                <A HREF="../../../../org/tp23/gui/widget/SelectFileAction.java.html">SelectFileAction</A> action = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/gui/widget/SelectFileAction.java.html">SelectFileAction</A>(<FONT CLASS="StringLiteral">"Save Output"</FONT>, <FONT CLASS="Null">null</FONT>, <FONT CLASS="Null">null</FONT>);
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                    action.actionPerformed(<FONT CLASS="New">new</FONT> ActionEvent(<FONT CLASS="This">this</FONT>, <FONT CLASS="IntegerLiteral">0</FONT>, <FONT CLASS="StringLiteral">"Save Output"</FONT>));
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                    <FONT CLASS="If">if</FONT> (action.selectedFile != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                        FileWriter fos = <FONT CLASS="New">new</FONT> FileWriter(action.selectedFile);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                        fos.write(getText());
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                        fos.close();
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>                    }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>                }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>                <FONT CLASS="Catch">catch</FONT> (FileNotFoundException ex) {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>                    System.err.println(<FONT CLASS="StringLiteral">"FileNotFoundException"</FONT>);
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>                }
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>                <FONT CLASS="Catch">catch</FONT> (IOException ex) {
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>                    System.err.println(<FONT CLASS="StringLiteral">"IOException"</FONT>);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>                }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        });
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        contextMenu.add(saveMenu);
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        JMenuItem toggleFollowMenu = <FONT CLASS="New">new</FONT> JMenuItem(<FONT CLASS="StringLiteral">"Toggle Follow"</FONT>);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        toggleFollowMenu.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>                toggleFollow();
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            }
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        });
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        contextMenu.add(toggleFollowMenu);
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>        JMenuItem jumpToEndMenu = <FONT CLASS="New">new</FONT> JMenuItem(<FONT CLASS="StringLiteral">"Jump To End"</FONT>);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        jumpToEndMenu.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>                setCaretPosition(getDocument().getLength());
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>            }
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        });
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        contextMenu.add(toggleFollowMenu);
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>        JMenuItem clearTextMenu = <FONT CLASS="New">new</FONT> JMenuItem(<FONT CLASS="StringLiteral">"Clear Text"</FONT>);
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        clearTextMenu.addActionListener(<FONT CLASS="New">new</FONT> ActionListener() {
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>                setText(<FONT CLASS="StringLiteral">""</FONT>);
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>            }
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        });
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        contextMenu.add(clearTextMenu);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        <FONT CLASS="Return">return</FONT> contextMenu;
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>    }
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>}
+<FONT CLASS="LN">26</FONT><A NAME="126"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/JTextAreaPrintStream.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/JTextAreaPrintStream.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/JTextAreaPrintStream.java.html	(revision 14989)
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.gui.widget.JTextAreaPrintStream (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">JTextAreaPrintStream.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.gui.widget.index.html" target="packageFrame">org.tp23.gui.widget</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.ByteArrayOutputStream;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.JTextArea;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">24</FONT><A NAME="24"></A> * &lt;p&gt;This subclass of PrintStream is designed to be compatible with System.out and System.err but it provides
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>* its own functionality and does not borrow from PrintStream. All methods are overridden.  The calls to each method
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>* behave as expected with the exception of flush() which appears to insert a new line for each call. flush() sends
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>* the current line to the JTextArea with a call to JTextArea.append(String) which adds a
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>* line in the buffer.&lt;/p&gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * @author Paul Hinds
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @version 1.0
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> */</FONT>
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> JTextAreaPrintStream <FONT CLASS="Extends">extends</FONT> PrintStream{
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    <FONT CLASS="Private">private</FONT> JTextArea textArea;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> StringBuffer line;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> JTextAreaPrintStream(JTextArea textArea) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Super">super</FONT>(<FONT CLASS="New">new</FONT> ByteArrayOutputStream(<FONT CLASS="IntegerLiteral">0</FONT>));<FONT CLASS="SingleLineComment">// wasted all methods are overridden
+<FONT CLASS="LN">39</FONT><A NAME="39"></A></FONT>        <FONT CLASS="This">this</FONT>.textArea = textArea;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>     * The stream can not be closed
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>     */</FONT>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> close(){
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> flush(){
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            textArea.append(line.toString());
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        }
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> write(<FONT CLASS="Byte">byte</FONT>[] b){
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        line.append(<FONT CLASS="New">new</FONT> String(b));
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>    }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> write(<FONT CLASS="Byte">byte</FONT>[] b, <FONT CLASS="Int">int</FONT> off, <FONT CLASS="Int">int</FONT> len){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>        line.append(<FONT CLASS="New">new</FONT> String(b,off,len));
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> write(<FONT CLASS="Int">int</FONT> c){
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        line.append(c);
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    }
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Boolean">boolean</FONT> checkError() {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>    }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> print(Object obj) {
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>        line.append(obj);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    }
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> print(String s) {
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        line.append(s);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> print(<FONT CLASS="Boolean">boolean</FONT> b) {
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        line.append(b);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> print(<FONT CLASS="Char">char</FONT> c) {
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        line.append(c);
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> print(<FONT CLASS="Char">char</FONT>[] s) {
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        line.append(s);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> print(<FONT CLASS="Double">double</FONT> d) {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        line.append(d);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> print(<FONT CLASS="Float">float</FONT> f) {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        line.append(f);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>    }
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> print(<FONT CLASS="Int">int</FONT> i) {
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        line.append(i);
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>    }
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> print(<FONT CLASS="Long">long</FONT> l) {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>        line.append(l);
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>    }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println() {
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>        line.append(<FONT CLASS="CharacerLiteral">'\n'</FONT>);
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        flush();
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>    }
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println(Object x) {
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>            textArea.append(line.append(String.valueOf(x)).toString());
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        }
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>            textArea.append(String.valueOf(x));
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>        }
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println(String x) {
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>            textArea.append(line.append(x).toString());
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>        }
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>            textArea.append(x);
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>        }
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>    }
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println(<FONT CLASS="Boolean">boolean</FONT> x) {
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>            textArea.append(line.append(String.valueOf(x)).toString());
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>            textArea.append(String.valueOf(x));
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println(<FONT CLASS="Char">char</FONT> x) {
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>            textArea.append(line.append(String.valueOf(x)).toString());
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        }
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>            textArea.append(String.valueOf(x));
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println(<FONT CLASS="Char">char</FONT>[] x) {
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>            textArea.append(line.append(String.valueOf(x)).toString());
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>        }
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>            textArea.append(String.valueOf(x));
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>        }
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>    }
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println(<FONT CLASS="Double">double</FONT> x) {
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>            textArea.append(line.append(String.valueOf(x)).toString());
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>        }
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>            textArea.append(String.valueOf(x));
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println(<FONT CLASS="Float">float</FONT> x) {
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>            textArea.append(line.append(String.valueOf(x)).toString());
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>        }
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>            textArea.append(String.valueOf(x));
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>        }
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println(<FONT CLASS="Int">int</FONT> x) {
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>            textArea.append(line.append(String.valueOf(x)).toString());
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>        }
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>            textArea.append(String.valueOf(x));
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>        }
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>    }
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> <FONT CLASS="Void">void</FONT> println(<FONT CLASS="Long">long</FONT> x) {
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>        <FONT CLASS="If">if</FONT>(line.length()&gt;<FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>            textArea.append(line.append(String.valueOf(x)).toString());
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>            line = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>        }
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>            textArea.append(String.valueOf(x));
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>            textArea.append(<FONT CLASS="StringLiteral">"\n"</FONT>);
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>        }
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>    }
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> setError() {
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="242"></A>
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>}
+<FONT CLASS="LN">45</FONT><A NAME="245"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/SelectFileAction.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/SelectFileAction.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/SelectFileAction.java.html	(revision 14989)
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.gui.widget.SelectFileAction (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SelectFileAction.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.gui.widget.index.html" target="packageFrame">org.tp23.gui.widget</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> javax.swing.AbstractAction;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.ImageIcon;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.JComponent;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.JFileChooser;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SelectFileAction <FONT CLASS="Extends">extends</FONT> AbstractAction {
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>    <FONT CLASS="Protected">protected</FONT> JComponent component = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>    <FONT CLASS="Protected">protected</FONT> File selectedFile = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>    <FONT CLASS="Protected">protected</FONT> String buttonText = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A>    <FONT CLASS="Public">public</FONT> SelectFileAction(String text, ImageIcon icon, JComponent component) {
+<FONT CLASS="LN">32</FONT><A NAME="32"></A>        <FONT CLASS="Super">super</FONT>(text, icon);
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>        <FONT CLASS="This">this</FONT>.component = component;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>    }
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Public">public</FONT> SelectFileAction(String text, ImageIcon icon, JComponent component,String buttonText) {
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>        <FONT CLASS="Super">super</FONT>(text, icon);
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>        <FONT CLASS="This">this</FONT>.component = component;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    }
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        JFileChooser chooser = <FONT CLASS="New">new</FONT> JFileChooser();
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        <FONT CLASS="If">if</FONT>(buttonText!=<FONT CLASS="Null">null</FONT>)chooser.setApproveButtonText(buttonText);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        <FONT CLASS="If">if</FONT>(selectedFile!=<FONT CLASS="Null">null</FONT> &amp;&amp; selectedFile.isFile()){
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>            <FONT CLASS="If">if</FONT>(selectedFile.exists())chooser.setSelectedFile(selectedFile);
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            <FONT CLASS="Else">else</FONT> chooser.setCurrentDirectory(selectedFile.getParentFile());
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        }
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(selectedFile!=<FONT CLASS="Null">null</FONT> &amp;&amp; selectedFile.isDirectory()){
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>            chooser.setCurrentDirectory(selectedFile);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(selectedFile!=<FONT CLASS="Null">null</FONT> &amp;&amp; !selectedFile.exists()){
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            chooser.setCurrentDirectory(selectedFile.getParentFile());
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="Int">int</FONT> returnVal = chooser.showDialog(component,e.getActionCommand());
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        <FONT CLASS="If">if</FONT>(returnVal == JFileChooser.APPROVE_OPTION) {
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>            selectedFile = chooser.getSelectedFile();
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            selectedFile = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        }
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>}
+<FONT CLASS="LN">61</FONT><A NAME="61"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/SystemOutJTextArea.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/SystemOutJTextArea.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/org/tp23/gui/widget/SystemOutJTextArea.java.html	(revision 14989)
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.gui.widget.SystemOutJTextArea (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">SystemOutJTextArea.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.gui.widget.index.html" target="packageFrame">org.tp23.gui.widget</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionEvent;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.event.ActionListener;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.PrintStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> javax.swing.JButton;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.JScrollPane;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">26</FONT><A NAME="26"></A> *
+<FONT CLASS="LN">27</FONT><A NAME="27"></A> * &lt;p&gt;Title: A JTextArea that can be set to show System.out or System.err&lt;/p&gt;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A> * &lt;p&gt;Description: &lt;/p&gt;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * &lt;p&gt;Company: &lt;/p&gt;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @author Paul Hinds
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * @version 1.0
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> */</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SystemOutJTextArea <FONT CLASS="Extends">extends</FONT> JScrollPane{
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/gui/widget/JTextAreaPrintStream.java.html">JTextAreaPrintStream</A> stream;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    <FONT CLASS="Private">private</FONT> <A HREF="../../../../org/tp23/gui/widget/FollowingJTextArea.java.html">FollowingJTextArea</A> textArea = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/gui/widget/FollowingJTextArea.java.html">FollowingJTextArea</A>();
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Public">public</FONT> SystemOutJTextArea() {
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>        jInit();
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>    }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> jInit(){
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        <FONT CLASS="This">this</FONT>.getViewport().setView(textArea);
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        textArea.setEditable(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        JButton jumpButton = <FONT CLASS="New">new</FONT> JButton(<FONT CLASS="StringLiteral">""</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_ALWAYS);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_ALWAYS);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        setCorner(<FONT CLASS="This">this</FONT>.LOWER_RIGHT_CORNER,jumpButton);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        jumpButton.addActionListener(<FONT CLASS="New">new</FONT> ActionListener(){
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>            <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> actionPerformed(ActionEvent e) {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>                textArea.setCaretPosition(textArea.getDocument().getLength());
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        });
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        jumpButton.setToolTipText(<FONT CLASS="StringLiteral">"Click to jump to the end"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    }
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Synchronized">synchronized</FONT> PrintStream getOut(){
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        <FONT CLASS="If">if</FONT>(stream==<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>            stream = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/gui/widget/JTextAreaPrintStream.java.html">JTextAreaPrintStream</A>(textArea);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        }
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        <FONT CLASS="Return">return</FONT> stream;
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>    }
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAsSystemErr(){
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>        System.setErr(getOut());
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    }
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAsSystemOut(){
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        System.setOut(getOut());
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>}
+<FONT CLASS="LN">76</FONT><A NAME="76"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/packages.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/packages.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/packages.html	(revision 14989)
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>AntInstaller (Java2HTML)
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="PreIndex">
+<FONT size="+1" CLASS="FrameHeadingFont" ID="PreIndexTitle"><A HREF="front.html" TARGET="SourceFrame">AntInstaller</A></FONT>
+<BR> <FONT CLASS="FrameItemFont"><A HREF="AllClasses.html" TARGET="packageFrame">All Classes</A></FONT>
+<BR> <FONT size="+1" CLASS="FrameHeadingFont">Packages</FONT><DIV ID="PackagesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.index.html" TARGET="packageFrame">org.tp23.antinstaller</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.antmod.index.html" TARGET="packageFrame">org.tp23.antinstaller.antmod</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.antmod.taskdefs.index.html" TARGET="packageFrame">org.tp23.antinstaller.antmod.taskdefs</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.input.index.html" TARGET="packageFrame">org.tp23.antinstaller.input</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.page.index.html" TARGET="packageFrame">org.tp23.antinstaller.page</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.renderer.index.html" TARGET="packageFrame">org.tp23.antinstaller.renderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.renderer.swing.index.html" TARGET="packageFrame">org.tp23.antinstaller.renderer.swing</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.renderer.swing.plaf.index.html" TARGET="packageFrame">org.tp23.antinstaller.renderer.swing.plaf</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.renderer.text.index.html" TARGET="packageFrame">org.tp23.antinstaller.renderer.text</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.runtime.index.html" TARGET="packageFrame">org.tp23.antinstaller.runtime</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.runtime.exe.index.html" TARGET="packageFrame">org.tp23.antinstaller.runtime.exe</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.runtime.logic.index.html" TARGET="packageFrame">org.tp23.antinstaller.runtime.logic</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.selfextract.index.html" TARGET="packageFrame">org.tp23.antinstaller.selfextract</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.gui.index.html" TARGET="packageFrame">org.tp23.gui</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.gui.widget.index.html" TARGET="packageFrame">org.tp23.gui.widget</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/antinstaller/stylesheet.css
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/antinstaller/stylesheet.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/antinstaller/stylesheet.css	(revision 14989)
@@ -0,0 +1,190 @@
+/* Stylesheet for java2html pages */
+/* background-color: #294563; */
+/* light : #4c6c8f */
+
+/* Core HTML - start */
+body {
+	color: #000000;
+	background-color: #FFFFFF;
+        margin: 0px;
+        margin-top: 0px;
+        padding-left: 0px;
+        padding-top: 0px;
+        padding-bottom: 20px;
+        border: none;
+        font-size: 12px;
+        font-family: Helvetica,Arial,sans;
+}
+
+img {
+	border: 0px;
+}
+/* Windose fixes */
+img#logo {
+	filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../images/ant-install-small.png',sizingMethod='scale');
+	border: 0px;
+	position: absolute;
+	top: 3px;
+	left: 10px;
+}
+
+#FrontPage{
+        padding-top: 0px;
+        margin-top: 0px;
+        font-size: 12px;
+}
+#FrontPageContent{
+        padding: 10px;
+}
+#HeaderTitle h2{
+	color: #FFFFFF;
+	background: url("../../images/antcolor.png") repeat-x;
+	font-family: Verdana,Helvetica,Arial,sans-serif;
+	font-size: 36px;
+	font-weight: bold;
+	margin: 0px;
+	padding: 0px;
+	padding-left: 100px;
+	height: 64px;
+}
+#PreIndexTitle {
+    background-color: #294563;
+	margin-left: 0px;
+}
+#PreIndexTitle a {
+
+}
+
+/* Header/Footer Colours */
+#Header  { 
+        color: #FFFFFF;
+        background-color: #294563;
+        padding: 4px;
+        margin: 0px;
+        border: solid 1px ButtonShadow;
+        border-top-width: 0px;
+        border-left-width: 0px;
+        border-right-width: 0px;
+        font-size: 18px;
+        font-family: Helvetica,Arial,sans;
+}
+.FrameHeadingFont{
+        color: #FFFFFF;
+        background-color: #294563;
+        padding-right: 0px;
+        display: block;
+        padding-left: 6px;
+}
+
+.FrameHeadingFont a:visited{
+        color: #FFFFFF;
+        background-color: #294563;
+}
+.FrameItemFont a{
+	padding-left: 6px;
+	font-size: 14px;
+
+}
+table.Header td font{
+	font-weight: bold;
+}
+
+a {
+	text-decoration: none;
+	color: #294563;
+}
+a:link {
+	color: #294563;
+}
+a:visited {
+	color: #294563;
+}
+a:hover {
+	text-decoration: underline;
+	color: #294563;
+}
+a:active {
+	color: #294563;
+}
+
+
+/* Line Number */
+.LN     { 
+	color: #BBBBBB;  
+	background-color:#FFFFFF;
+	padding-right:4px;
+}
+
+/* Link Colours */
+.Classes A:link		{ color: #000000; text-decoration:underline;}
+.Classes A:visited	{ color: #000000; text-decoration:underline;}
+.Classes PRE 		{ background-color:#FFFFFF; color: #000000; }
+PRE.Classes  		{ 
+	background-color:#FFFFFF; 
+	color: #000000; 
+	border-top: solid 1px ButtonShadow;
+	border-bottom: solid 1px ButtonShadow;
+	padding-bottom: 20px;
+}
+
+/* Token Colours */
+.CharacerLiteral	{ color: #FF00FF; }
+.StringLiteral		{ color: #FF00FF; }
+.SingleLineComment	{ color: #008000; }
+.FormalComment		{ color: #008000; }
+.MultiLineComment	{ color: #008000; }
+.Abstract		{ color: #0000FF ; font-weight: bold }
+.Boolean		{ color: #0000FF ; font-weight: bold }
+.Break			{ color: #0000FF ; font-weight: bold }
+.Byte			{ color: #0000FF ; font-weight: bold }
+.Case			{ color: #0000FF ; font-weight: bold }
+.Catch			{ color: #0000FF ; font-weight: bold }
+.Char			{ color: #0000FF ; font-weight: bold }
+.Class			{ color: #0000FF ; font-weight: bold }
+.Const			{ color: #0000FF ; font-weight: bold }
+.Continue		{ color: #0000FF ; font-weight: bold }
+.Default		{ color: #0000FF ; font-weight: bold }
+.Do			{ color: #0000FF ; font-weight: bold }
+.Double		{ color: #0000FF ; font-weight: bold }
+.Else			{ color: #0000FF ; font-weight: bold }
+.Extends		{ color: #0000FF ; font-weight: bold }
+.False			{ color: #0000FF ; font-weight: bold }
+.Final			{ color: #0000FF ; font-weight: bold }
+.Finally		{ color: #0000FF ; font-weight: bold }
+.Float			{ color: #0000FF ; font-weight: bold }
+.For			{ color: #0000FF ; font-weight: bold }
+.Goto			{ color: #0000FF ; font-weight: bold }
+.If			{ color: #0000FF ; font-weight: bold }
+.Implements		{ color: #0000FF ; font-weight: bold }
+.Import		{ color: #0000FF ; font-weight: bold }
+.InstanceOf		{ color: #0000FF ; font-weight: bold }
+.Int			{ color: #0000FF ; font-weight: bold }
+.Interface		{ color: #0000FF ; font-weight: bold }
+.Long			{ color: #0000FF ; font-weight: bold }
+.Native		{ color: #0000FF ; font-weight: bold }
+.New			{ color: #0000FF ; font-weight: bold }
+.Package		{ color: #0000FF ; font-weight: bold }
+.Private		{ color: #0000FF ; font-weight: bold }
+.Protected		{ color: #0000FF ; font-weight: bold }
+.Public		{ color: #0000FF ; font-weight: bold }
+.Return		{ color: #0000FF ; font-weight: bold }
+.Short			{ color: #0000FF ; font-weight: bold }
+.Static		{ color: #0000FF ; font-weight: bold }
+.Super			{ color: #0000FF ; font-weight: bold }
+.Switch		{ color: #0000FF ; font-weight: bold }
+.Synchronized		{ color: #0000FF ; font-weight: bold }
+.This			{ color: #0000FF ; font-weight: bold }
+.Throw			{ color: #0000FF ; font-weight: bold }
+.Throws		{ color: #0000FF ; font-weight: bold }
+.Transient		{ color: #0000FF ; font-weight: bold }
+.True			{ color: #0000FF ; font-weight: bold }
+.Try			{ color: #0000FF ; font-weight: bold }
+.Void			{ color: #0000FF ; font-weight: bold }
+.Volatile		{ color: #0000FF ; font-weight: bold }
+.While			{ color: #0000FF ; font-weight: bold }
+.StrictFP			{ color: #0000FF ; font-weight: bold }
+.IntegerLiteral	{ color: #000000 }
+.DecimalLiteral	{ color: #000000 }
+.HexLiteral		{ color: #000000 }
+.OctalLiteral		{ color: #000000 }
+.FloatPointLiteral	{ color: #000000 }
Index: /release-kits/shared/ant-installer/web/java2html/ext/AllClasses.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/AllClasses.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/AllClasses.html	(revision 14989)
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>All Classes (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV>
+<FONT ID="AllClassIndexTitle" CLASS="FrameHeadingFont" size="+1">
+All Classes</FONT><DIV ID="AllClassIndexContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/util/CreateLanguagePack.java.html" TARGET="SourceFrame">CreateLanguagePack</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/taskdefs/Installer.java.html" TARGET="SourceFrame">Installer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/taskdefs/KdeIconTask.java.html" TARGET="SourceFrame">KdeIconTask</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/util/LangPackFileRenderer.java.html" TARGET="SourceFrame">LangPackFileRenderer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/ReleaseNotesFilter.java.html" TARGET="SourceFrame">ReleaseNotesFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java.html" TARGET="SourceFrame">ReleaseNotesFrame</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/taskdefs/ValidateConfig.java.html" TARGET="SourceFrame">ValidateConfig</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/front.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/front.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/front.html	(revision 14989)
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Java2HTML</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="FrontPage">
+<div id="HeaderTitle"><h2>AntInstaller</h2></div>
+
+				<script type="text/javascript" src="winfix.js"></script>
+				<a href="../../index.html" target="_top"><img src="../../images/ant-install-small.png" width="76" height="50" id="logo"></a>
+				<script type="text/javascript">winFix();</script>
+				
+<div id="FrontPageContent"><p id="Instructions"><strong>Instructions:-</strong></p>
+<ul>
+<li>Top-Left Panel Selects a Package</li>
+<li>Bottom-Left Panel Selects a Java File</li>
+<li>Text displayed like <FONT ID="Classes"><A href="#">this</A></FONT> represents a link to another Java source, clicking on it selects it in this panel.</li>
+</ul>
+<p><strong>Credits:-</strong></p>
+<ul><li>Produced by <a href="http://www.java2html.com" TARGET="_top"><em>Java2HTML Version 1.4</em></a> on the Jan 28, 2007 10:45 PM</li></ul>
+<em>(If you like this tool, please <a href="mailto:?subject=http://www.java2html.com">email</a> the reference <A href="http://www.java2html.com" TARGET="_top">http://www.java2html.com</A> to a colleague)</em>
+</DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/index.html	(revision 14989)
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>AntInstaller (Java2HTML)</TITLE>
+
+</HEAD>
+<FRAMESET cols="30%, 70%">
+<FRAMESET rows="30%, 70%">
+<FRAME src="packages.html" name="packageListFrame">
+<FRAME src="AllClasses.html" name="packageFrame">
+</FRAMESET>
+<FRAME src="front.html" name="SourceFrame">
+</FRAMESET>
+<NOFRAMES>
+<H2>Frame Alert</H2>
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+</NOFRAMES>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org.tp23.antinstaller.runtime.exe.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org.tp23.antinstaller.runtime.exe.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org.tp23.antinstaller.runtime.exe.index.html	(revision 14989)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.runtime.exe (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.runtime.exe</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/ReleaseNotesFilter.java.html" TARGET="SourceFrame">ReleaseNotesFilter</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java.html" TARGET="SourceFrame">ReleaseNotesFrame</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org.tp23.antinstaller.taskdefs.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org.tp23.antinstaller.taskdefs.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org.tp23.antinstaller.taskdefs.index.html	(revision 14989)
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.taskdefs (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.taskdefs</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/taskdefs/Installer.java.html" TARGET="SourceFrame">Installer</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/taskdefs/KdeIconTask.java.html" TARGET="SourceFrame">KdeIconTask</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/taskdefs/ValidateConfig.java.html" TARGET="SourceFrame">ValidateConfig</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org.tp23.antinstaller.util.index.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org.tp23.antinstaller.util.index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org.tp23.antinstaller.util.index.html	(revision 14989)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>Package org.tp23.antinstaller.util (Java2HTML)</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="ClassesFrame">
+<FONT size="+1" CLASS="FrameHeadingFont">Package org.tp23.antinstaller.util</FONT><DIV ID="ClassesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/util/CreateLanguagePack.java.html" TARGET="SourceFrame">CreateLanguagePack</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/tp23/antinstaller/util/LangPackFileRenderer.java.html" TARGET="SourceFrame">LangPackFileRenderer</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFilter.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFilter.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFilter.java.html	(revision 14989)
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.ReleaseNotesFilter (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ReleaseNotesFilter.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * limitations under the License.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> */</FONT>
+<FONT CLASS="LN">14</FONT><A NAME="14"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">15</FONT><A NAME="15"></A>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.InstallException;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.InstallerContext;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.OutputField;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.renderer.text.Pager;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.runtime.Runner;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.runtime.SwingRunner;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.runtime.TextRunner;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A>
+<FONT CLASS="LN">30</FONT><A NAME="30"></A>
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> * A filter that launches a window with release notes if a property has been selected
+<FONT CLASS="LN">33</FONT><A NAME="33"></A> * during the install.  The notes are loaded from a resource on the classpath
+<FONT CLASS="LN">34</FONT><A NAME="34"></A> * called /release-notes.txt
+<FONT CLASS="LN">35</FONT><A NAME="35"></A> * @author Paul Hinds
+<FONT CLASS="LN">36</FONT><A NAME="36"></A> * @version $Id: ReleaseNotesFilter.java,v 1.4 2007/01/04 22:57:18 teknopaul Exp $
+<FONT CLASS="LN">37</FONT><A NAME="37"></A> */</FONT>
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ReleaseNotesFilter <FONT CLASS="Implements">implements</FONT> ExecuteFilter {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.text.Res"</FONT>);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String nextChar = res.getString(<FONT CLASS="StringLiteral">"nextChar"</FONT>);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>     * The AntInstaller property that must be "true" for the release notes to show
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>     */</FONT>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String RELEASE_NOTES_PROPERTY = <FONT CLASS="StringLiteral">"show.release.notes"</FONT>;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Public">public</FONT> ReleaseNotesFilter() {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>    }
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> exec(InstallerContext ctx) <FONT CLASS="Throws">throws</FONT> InstallException {
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="If">if</FONT>(ctx.isInstallSucceded() ){
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            String showReleaseNotes = ctx.getInstaller().getResultContainer().getProperty(RELEASE_NOTES_PROPERTY);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>            <FONT CLASS="If">if</FONT>(OutputField.isTrue(showReleaseNotes)){
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>                <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>                    InputStream is = <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ReleaseNotesFilter.java.html">ReleaseNotesFilter</A>.<FONT CLASS="Class">class</FONT>.getResourceAsStream(<FONT CLASS="StringLiteral">"/release-notes.txt"</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>                    BufferedReader br = <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(is));
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>                    String line = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>                    StringBuffer file = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>                    <FONT CLASS="While">while</FONT>((line = br.readLine())!=<FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>                        file.append(line).append(<FONT CLASS="CharacerLiteral">'\n'</FONT>);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>                    }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                    br.close();
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>                    Runner runner = ctx.getRunner();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>                    <FONT CLASS="If">if</FONT>(runner <FONT CLASS="InstanceOf">instanceof</FONT> TextRunner){
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                        renderText(file.toString());
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                    }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>                    <FONT CLASS="Else">else</FONT>{ <FONT CLASS="SingleLineComment">// if(runner instanceof SwingRunner){
+<FONT CLASS="LN">70</FONT><A NAME="70"></A></FONT>                        <FONT CLASS="SingleLineComment">//SwingRunner sRunner = (SwingRunner)runner;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A></FONT>                        <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java.html">ReleaseNotesFrame</A> rFrame = <FONT CLASS="New">new</FONT> <A HREF="../../../../../org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java.html">ReleaseNotesFrame</A>(<FONT CLASS="StringLiteral">"Readme"</FONT>);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>                        rFrame.init(file.toString());
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>                    }
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                }
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                    <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> InstallException(<FONT CLASS="StringLiteral">"Could not render Release notes"</FONT>,e);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>                }
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            }
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>        }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> renderText(String text) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        BufferedReader commandReader = <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(System.in));
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        Pager pager = <FONT CLASS="New">new</FONT> Pager(text);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>        String command = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        <FONT CLASS="Do">do</FONT> {
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            <FONT CLASS="If">if</FONT> (!pager.next(System.out)) {
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>                <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            }
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            System.out.println();
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            System.out.println(getNextInstructions());
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>            command = commandReader.readLine();
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        }
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        <FONT CLASS="While">while</FONT> (command.toUpperCase().startsWith(nextChar));
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        pager.rest(System.out);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    }
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    <FONT CLASS="Private">private</FONT> String getNextInstructions() {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        <FONT CLASS="Return">return</FONT> res.getString(<FONT CLASS="StringLiteral">"large_select_next"</FONT>);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>    }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>}
+<FONT CLASS="LN">03</FONT><A NAME="103"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/runtime/exe/ReleaseNotesFrame.java.html	(revision 14989)
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.runtime.exe.ReleaseNotesFrame (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ReleaseNotesFrame.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../../org.tp23.antinstaller.runtime.exe.index.html" target="packageFrame">org.tp23.antinstaller.runtime.exe</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.BorderLayout;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.awt.Dimension;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.awt.GraphicsConfiguration;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.awt.HeadlessException;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.JEditorPane;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.JFrame;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.JScrollPane;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A>
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * ReleaseNotes frame for displaying plain text
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @author Paul Hinds
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> * @version $Id: ReleaseNotesFrame.java,v 1.3 2006/12/21 00:03:23 teknopaul Exp $
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ReleaseNotesFrame <FONT CLASS="Extends">extends</FONT> JFrame {
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> BorderLayout borderLayout1 = <FONT CLASS="New">new</FONT> BorderLayout();
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> JEditorPane contentsEditorPane = <FONT CLASS="New">new</FONT> JEditorPane();
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> JScrollPane hPanelScrollPane = <FONT CLASS="New">new</FONT> JScrollPane();
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> ReleaseNotesFrame(String title) <FONT CLASS="Throws">throws</FONT> HeadlessException {
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="Super">super</FONT>(title);
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>    }
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> init(String text){
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        contentsEditorPane.setMinimumSize(<FONT CLASS="New">new</FONT> Dimension(<FONT CLASS="IntegerLiteral">200</FONT>, <FONT CLASS="IntegerLiteral">200</FONT>));
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>        contentsEditorPane.setPreferredSize(<FONT CLASS="New">new</FONT> Dimension(<FONT CLASS="IntegerLiteral">1000</FONT>, Integer.MAX_VALUE));
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        contentsEditorPane.setEditable(<FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        contentsEditorPane.setContentType(<FONT CLASS="StringLiteral">"text/plain"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>        contentsEditorPane.setCaretPosition(<FONT CLASS="IntegerLiteral">0</FONT>);
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        contentsEditorPane.setText(text);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        <FONT CLASS="This">this</FONT>.getContentPane().setLayout(borderLayout1);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        hPanelScrollPane.setMinimumSize(<FONT CLASS="New">new</FONT> Dimension(<FONT CLASS="IntegerLiteral">200</FONT>, <FONT CLASS="IntegerLiteral">200</FONT>));
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        hPanelScrollPane.setPreferredSize(<FONT CLASS="New">new</FONT> Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE));
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>        <FONT CLASS="This">this</FONT>.getContentPane().add(hPanelScrollPane, BorderLayout.CENTER);
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        hPanelScrollPane.getViewport().add(contentsEditorPane);
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>        hPanelScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        <FONT CLASS="This">this</FONT>.setSize(<FONT CLASS="New">new</FONT> Dimension(<FONT CLASS="IntegerLiteral">500</FONT>,<FONT CLASS="IntegerLiteral">500</FONT>));
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        hPanelScrollPane.setWheelScrollingEnabled(<FONT CLASS="True">true</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="This">this</FONT>.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        <FONT CLASS="This">this</FONT>.show();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>    }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>}
+<FONT CLASS="LN">64</FONT><A NAME="64"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/taskdefs/Installer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/taskdefs/Installer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/taskdefs/Installer.java.html	(revision 14989)
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.taskdefs.Installer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">Installer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright  2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> *  Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> *  you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> *  You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> *      http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> *  Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> *  distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> *  See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> *  limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> *
+<FONT CLASS="LN">16</FONT><A NAME="16"></A> */</FONT>
+<FONT CLASS="LN">17</FONT><A NAME="17"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.taskdefs.index.html" target="packageFrame">org.tp23.antinstaller.taskdefs</A>;
+<FONT CLASS="LN">18</FONT><A NAME="18"></A>
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.FileInputStream;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.xml.parsers.SAXParser;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.xml.parsers.SAXParserFactory;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Project;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.taskdefs.Jar;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.taskdefs.Manifest;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.taskdefs.ManifestException;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.types.FileSet;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.types.ZipFileSet;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> org.apache.tools.zip.ZipOutputStream;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.renderer.swing.plaf.LookAndFeelFactory;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.runtime.ConfigurationLoader;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> org.xml.sax.InputSource;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> org.xml.sax.SAXException;
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> org.xml.sax.SAXParseException;
+<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="Import">import</FONT> org.xml.sax.helpers.DefaultHandler;
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>
+<FONT CLASS="LN">42</FONT><A NAME="42"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * Creates a Installer archive.
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> * 
+<FONT CLASS="LN">45</FONT><A NAME="45"></A> *
+<FONT CLASS="LN">46</FONT><A NAME="46"></A> * @ant.task category="packaging"
+<FONT CLASS="LN">47</FONT><A NAME="47"></A> */</FONT>
+<FONT CLASS="LN">48</FONT><A NAME="48"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> Installer <FONT CLASS="Extends">extends</FONT> Jar {
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String NON_EXTRACTOR = <FONT CLASS="StringLiteral">"NonExtractor"</FONT>;
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> String SELF_EXTRACTOR = <FONT CLASS="StringLiteral">"SelfExtractor"</FONT>;
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>    
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="FormalComment">/** The extract type to use NonExtractor or SelfExtractor */</FONT>
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>    <FONT CLASS="Private">private</FONT> String extractType;
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    <FONT CLASS="FormalComment">/** The AntInstall config file */</FONT>
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Private">private</FONT> File installConfig;
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>    <FONT CLASS="FormalComment">/** The Ant build.xml to be used*/</FONT>
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>    <FONT CLASS="Private">private</FONT> File buildFile;
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>    <FONT CLASS="FormalComment">/** The location of ant-installer.jar and ant-installer-ext.jar and possibly jgoodies-edited-1_2_2.jar */</FONT>
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>    <FONT CLASS="Private">private</FONT> File antInstallLib;
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>    <FONT CLASS="FormalComment">/** The location of xercesImpl.jar and xml-apis.jar 
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>     * This is not requried Xerces is optional and will increase the download size */</FONT>
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>    <FONT CLASS="Private">private</FONT> File xercesLib;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>    <FONT CLASS="FormalComment">/** The location of ant.jar and ant-launcher.jar */</FONT>
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>    <FONT CLASS="Private">private</FONT> File antLib;
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>    <FONT CLASS="FormalComment">/** The AntInstaller Look And Feel to be used */</FONT>
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>    <FONT CLASS="Private">private</FONT> String laf;
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>    
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>    <FONT CLASS="FormalComment">/** The icon set to use */</FONT>
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>    <FONT CLASS="Private">private</FONT> String icons;
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>    <FONT CLASS="FormalComment">/** Stop the build if there is a known error in the config */</FONT>
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> failOnError = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>    
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>    <FONT CLASS="FormalComment">/** perform the validation */</FONT>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Boolean">boolean</FONT> validateConfig = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>    
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> buildFileSet = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> configFileSet = <FONT CLASS="False">false</FONT>;
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>    <FONT CLASS="FormalComment">/** Indicates that the build.xml and antinstall-config.xml have been added to the fileset already */</FONT>
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Boolean">boolean</FONT> startCheckDuplicates = <FONT CLASS="False">false</FONT>; 
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>    <FONT CLASS="FormalComment">/** constructor */</FONT>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    <FONT CLASS="Public">public</FONT> Installer() {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        <FONT CLASS="Super">super</FONT>();
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        archiveType = <FONT CLASS="StringLiteral">"jar"</FONT>;
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        emptyBehavior = <FONT CLASS="StringLiteral">"create"</FONT>;
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        setEncoding(<FONT CLASS="StringLiteral">"UTF8"</FONT>);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>    }
+<FONT CLASS="LN">96</FONT><A NAME="96"></A> 
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> cleanUp() {
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="Super">super</FONT>.cleanUp();
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>    }
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> reset() {
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        <FONT CLASS="Super">super</FONT>.reset();
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        extractType = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        installConfig = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        buildFile = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>    }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>     * @param installConfig The installConfig to set.
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>     */</FONT>
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallConfig(File installConfig) {
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>        <FONT CLASS="This">this</FONT>.installConfig = installConfig;
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>        <FONT CLASS="If">if</FONT> (!installConfig.exists()) {
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"AntInstall config: "</FONT>
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>                                     + installConfig
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>                                     + <FONT CLASS="StringLiteral">" does not exist."</FONT>);
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>        }
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        <FONT CLASS="SingleLineComment">// Create a ZipFileSet for this file, and pass it up.
+<FONT CLASS="LN">19</FONT><A NAME="119"></A></FONT>        ZipFileSet fs = <FONT CLASS="New">new</FONT> ZipFileSet();
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>        fs.setFile(installConfig);
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        fs.setFullpath(<FONT CLASS="StringLiteral">"antinstall-config.xml"</FONT>);
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>        <FONT CLASS="Super">super</FONT>.addFileset(fs);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>        <FONT CLASS="If">if</FONT>(<FONT CLASS="This">this</FONT>.buildFile != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>            startCheckDuplicates = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>        }
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>    }
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>     * @param buildFile The buildFile to set.
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>     */</FONT>
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setBuildFile(File buildFile) {
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>        <FONT CLASS="This">this</FONT>.buildFile = buildFile;
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        <FONT CLASS="If">if</FONT> (!buildFile.exists()) {
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"AntInstall build file: "</FONT>
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>                                     + buildFile
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                                     + <FONT CLASS="StringLiteral">" does not exist."</FONT>);
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>        }
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>        <FONT CLASS="SingleLineComment">// Create a ZipFileSet for this file, and pass it up.
+<FONT CLASS="LN">38</FONT><A NAME="138"></A></FONT>        ZipFileSet fs = <FONT CLASS="New">new</FONT> ZipFileSet();
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        fs.setFile(buildFile);
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>        fs.setFullpath(<FONT CLASS="StringLiteral">"build.xml"</FONT>);
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>        <FONT CLASS="Super">super</FONT>.addFileset(fs);
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>        <FONT CLASS="If">if</FONT>(<FONT CLASS="This">this</FONT>.installConfig != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>            startCheckDuplicates = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>    }
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>     * @param icons The ocons pack to use for buttons.
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>     */</FONT>
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setIcons(String icons) {
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>        <FONT CLASS="This">this</FONT>.icons = icons;
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>        <FONT CLASS="SingleLineComment">// Create a ZipFileSet for this file, and pass it up.
+<FONT CLASS="LN">52</FONT><A NAME="152"></A></FONT>        File iconJar = <FONT CLASS="New">new</FONT> File(antInstallLib, <FONT CLASS="StringLiteral">"ai-icons-"</FONT> + icons + <FONT CLASS="StringLiteral">".jar"</FONT>);
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>        <FONT CLASS="If">if</FONT> (!iconJar.exists()) {
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Missing icons: "</FONT>
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>                                     + iconJar
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>                                     + <FONT CLASS="StringLiteral">" does not exist."</FONT>);
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>        }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>        FileSet set = <FONT CLASS="New">new</FONT> FileSet();
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>        set.setFile(iconJar);
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>        addZipGroupFileset(set);
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>    }
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>     * @param extractType The extractType to set.
+<FONT CLASS="LN">65</FONT><A NAME="165"></A>     */</FONT>
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setExtractType(String extractType) {
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        <FONT CLASS="This">this</FONT>.extractType = extractType;
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>    }
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>    
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setFailOnError(<FONT CLASS="Boolean">boolean</FONT> fail) {
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>        failOnError = fail;
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>    }
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>    
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setValidateConfig(<FONT CLASS="Boolean">boolean</FONT> validate) {
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>        validateConfig = validate;
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>     * The location of ant-installer.jar and possibly jgoodies-edited-1_2_2.jar
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>     * @param antInstallLib The antInstallLib to set.
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>     */</FONT>
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAntInstallLib(File antInstallLib) {
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>        <FONT CLASS="This">this</FONT>.antInstallLib = antInstallLib;
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>        FileSet set = <FONT CLASS="New">new</FONT> FileSet();
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>        set.setFile(<FONT CLASS="New">new</FONT> File(antInstallLib, <FONT CLASS="StringLiteral">"ant-installer.jar"</FONT>));
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>        addZipGroupFileset(set);
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>    }
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>     * The location of ant.jar and ant-launcher.jar
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>     * @param antLib The antLib to set.
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>     */</FONT>
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setAntLib(File antLib) {
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>        <FONT CLASS="This">this</FONT>.antLib = antLib;
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>        FileSet set = <FONT CLASS="New">new</FONT> FileSet();
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>        set.setFile(<FONT CLASS="New">new</FONT> File(antLib, <FONT CLASS="StringLiteral">"ant.jar"</FONT>));
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>        set.setFile(<FONT CLASS="New">new</FONT> File(antLib, <FONT CLASS="StringLiteral">"ant-launcher.jar"</FONT>));
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>        addZipGroupFileset(set);
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>     * @param xercesLib The xercesLib to set.
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>     */</FONT>
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setXercesLib(File xercesLib) {
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>        <FONT CLASS="This">this</FONT>.xercesLib = xercesLib;
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>        FileSet set = <FONT CLASS="New">new</FONT> FileSet();
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>        set.setFile(<FONT CLASS="New">new</FONT> File(xercesLib, <FONT CLASS="StringLiteral">"xercesImpl.jar"</FONT>));
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>        set.setFile(<FONT CLASS="New">new</FONT> File(xercesLib, <FONT CLASS="StringLiteral">"xml-apis.jar"</FONT>));
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>        addZipGroupFileset(set);
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>    }
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>     * Overrides the ZIP execute() method which creates filesets
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>     */</FONT>
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> execute(){
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>        log(<FONT CLASS="StringLiteral">".-------------------------------."</FONT>);
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>        log(<FONT CLASS="StringLiteral">"|-(o--~AntInstaller.sf.net~--o)-|"</FONT>);
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>        log(<FONT CLASS="StringLiteral">"`-----------------by-Paul-Hinds-ÂŽ"</FONT>);
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>        
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>        <FONT CLASS="If">if</FONT>(validateConfig) {
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>            validateConfig();
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>        } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(extractType.equals(SELF_EXTRACTOR)){
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>            <FONT CLASS="SingleLineComment">// this reads the config just 
+<FONT CLASS="LN">22</FONT><A NAME="222"></A></FONT>            <FONT CLASS="SingleLineComment">// to extract the lookAndFeel attribute for the manifest at the moment
+<FONT CLASS="LN">23</FONT><A NAME="223"></A></FONT>            readConfig();
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>        }
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>        <FONT CLASS="If">if</FONT>( LookAndFeelFactory.isDefault(getLaf()) ){
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>            FileSet set = <FONT CLASS="New">new</FONT> FileSet();
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>            set.setFile(<FONT CLASS="New">new</FONT> File(antInstallLib, <FONT CLASS="StringLiteral">"jgoodies-edited-1_2_2.jar"</FONT>));
+<FONT CLASS="LN">28</FONT><A NAME="228"></A>            addZipGroupFileset(set);
+<FONT CLASS="LN">29</FONT><A NAME="229"></A>        }
+<FONT CLASS="LN">30</FONT><A NAME="230"></A>
+<FONT CLASS="LN">31</FONT><A NAME="231"></A>        <FONT CLASS="Super">super</FONT>.execute();
+<FONT CLASS="LN">32</FONT><A NAME="232"></A>    }
+<FONT CLASS="LN">33</FONT><A NAME="233"></A>
+<FONT CLASS="LN">34</FONT><A NAME="234"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">35</FONT><A NAME="235"></A>     * override of  parent; validates configuration
+<FONT CLASS="LN">36</FONT><A NAME="236"></A>     * before initializing the output stream.  The Manifest is set in the Jar superclass's
+<FONT CLASS="LN">37</FONT><A NAME="237"></A>     * method so Manifest modifications must be performed in this method
+<FONT CLASS="LN">38</FONT><A NAME="238"></A>     */</FONT>
+<FONT CLASS="LN">39</FONT><A NAME="239"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> initZipOutputStream(ZipOutputStream zOut)
+<FONT CLASS="LN">40</FONT><A NAME="240"></A>        <FONT CLASS="Throws">throws</FONT> IOException, BuildException {
+<FONT CLASS="LN">41</FONT><A NAME="241"></A>        <FONT CLASS="SingleLineComment">// If no buildFile file is specified, it's an error.
+<FONT CLASS="LN">42</FONT><A NAME="242"></A></FONT>        <FONT CLASS="If">if</FONT> (buildFile == <FONT CLASS="Null">null</FONT> &amp;&amp; !isInUpdateMode()) {
+<FONT CLASS="LN">43</FONT><A NAME="243"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"buildFile attribute is required"</FONT>, getLocation());
+<FONT CLASS="LN">44</FONT><A NAME="244"></A>        }
+<FONT CLASS="LN">45</FONT><A NAME="245"></A>        <FONT CLASS="SingleLineComment">// If no installConfig file is specified, it's an error.
+<FONT CLASS="LN">46</FONT><A NAME="246"></A></FONT>        <FONT CLASS="If">if</FONT> (installConfig == <FONT CLASS="Null">null</FONT> &amp;&amp; !isInUpdateMode()) {
+<FONT CLASS="LN">47</FONT><A NAME="247"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"installConfig attribute is required"</FONT>, getLocation());
+<FONT CLASS="LN">48</FONT><A NAME="248"></A>        }
+<FONT CLASS="LN">49</FONT><A NAME="249"></A>        <FONT CLASS="Try">try</FONT>{ 
+<FONT CLASS="LN">50</FONT><A NAME="250"></A>            addConfiguredManifest(<FONT CLASS="This">this</FONT>.getManifest());
+<FONT CLASS="LN">51</FONT><A NAME="251"></A>        }
+<FONT CLASS="LN">52</FONT><A NAME="252"></A>        <FONT CLASS="Catch">catch</FONT>(ManifestException me){
+<FONT CLASS="LN">53</FONT><A NAME="253"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Cant add AntInstaller Manifest"</FONT>, me, getLocation());
+<FONT CLASS="LN">54</FONT><A NAME="254"></A>        }        
+<FONT CLASS="LN">55</FONT><A NAME="255"></A>        <FONT CLASS="Super">super</FONT>.initZipOutputStream(zOut);
+<FONT CLASS="LN">56</FONT><A NAME="256"></A>    }
+<FONT CLASS="LN">57</FONT><A NAME="257"></A>    
+<FONT CLASS="LN">58</FONT><A NAME="258"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> zipFile(InputStream is, ZipOutputStream zOut, String vPath,
+<FONT CLASS="LN">59</FONT><A NAME="259"></A>            <FONT CLASS="Long">long</FONT> lastModified, File fromArchive, <FONT CLASS="Int">int</FONT> mode)
+<FONT CLASS="LN">60</FONT><A NAME="260"></A>            <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">61</FONT><A NAME="261"></A>        
+<FONT CLASS="LN">62</FONT><A NAME="262"></A>        <FONT CLASS="If">if</FONT>(vPath.equalsIgnoreCase(<FONT CLASS="StringLiteral">"antinstall-config.xml"</FONT>)) {
+<FONT CLASS="LN">63</FONT><A NAME="263"></A>            <FONT CLASS="If">if</FONT>(buildFileSet) {
+<FONT CLASS="LN">64</FONT><A NAME="264"></A>                log(<FONT CLASS="StringLiteral">"Two antinstall-config.xml files in jar"</FONT>, Project.MSG_WARN);
+<FONT CLASS="LN">65</FONT><A NAME="265"></A>            }
+<FONT CLASS="LN">66</FONT><A NAME="266"></A>            buildFileSet = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="267"></A>        }
+<FONT CLASS="LN">68</FONT><A NAME="268"></A>        <FONT CLASS="If">if</FONT>(vPath.equalsIgnoreCase(<FONT CLASS="StringLiteral">"build.xml"</FONT>)) {
+<FONT CLASS="LN">69</FONT><A NAME="269"></A>            <FONT CLASS="If">if</FONT>(configFileSet) {
+<FONT CLASS="LN">70</FONT><A NAME="270"></A>                log(<FONT CLASS="StringLiteral">"Two build.xml files in jar"</FONT>, Project.MSG_WARN);
+<FONT CLASS="LN">71</FONT><A NAME="271"></A>            }
+<FONT CLASS="LN">72</FONT><A NAME="272"></A>            configFileSet = <FONT CLASS="True">true</FONT>;
+<FONT CLASS="LN">73</FONT><A NAME="273"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="274"></A>
+<FONT CLASS="LN">75</FONT><A NAME="275"></A>        <FONT CLASS="Super">super</FONT>.zipFile(is, zOut, vPath, lastModified, fromArchive, mode);
+<FONT CLASS="LN">76</FONT><A NAME="276"></A>    }
+<FONT CLASS="LN">77</FONT><A NAME="277"></A>
+<FONT CLASS="LN">78</FONT><A NAME="278"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">79</FONT><A NAME="279"></A>     * This method is only valid after readConfig() or validateConfig() have been run
+<FONT CLASS="LN">80</FONT><A NAME="280"></A>     * @return Returns the Look And Feel class.
+<FONT CLASS="LN">81</FONT><A NAME="281"></A>     */</FONT>
+<FONT CLASS="LN">82</FONT><A NAME="282"></A>    <FONT CLASS="Private">private</FONT> String getLaf() {
+<FONT CLASS="LN">83</FONT><A NAME="283"></A>        <FONT CLASS="If">if</FONT>(laf == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">84</FONT><A NAME="284"></A>            <FONT CLASS="Return">return</FONT> LookAndFeelFactory.DEFAULT_LAF;
+<FONT CLASS="LN">85</FONT><A NAME="285"></A>        }
+<FONT CLASS="LN">86</FONT><A NAME="286"></A>        <FONT CLASS="Return">return</FONT> laf;
+<FONT CLASS="LN">87</FONT><A NAME="287"></A>    }
+<FONT CLASS="LN">88</FONT><A NAME="288"></A>
+<FONT CLASS="LN">89</FONT><A NAME="289"></A>    <FONT CLASS="Private">private</FONT> Manifest getManifest() <FONT CLASS="Throws">throws</FONT> ManifestException{
+<FONT CLASS="LN">90</FONT><A NAME="290"></A>        <FONT CLASS="If">if</FONT>(extractType.equalsIgnoreCase(NON_EXTRACTOR)){
+<FONT CLASS="LN">91</FONT><A NAME="291"></A>            <FONT CLASS="Return">return</FONT> getNonExtractorManifest();
+<FONT CLASS="LN">92</FONT><A NAME="292"></A>        }
+<FONT CLASS="LN">93</FONT><A NAME="293"></A>        <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT>(extractType.equalsIgnoreCase(SELF_EXTRACTOR)){
+<FONT CLASS="LN">94</FONT><A NAME="294"></A>            <FONT CLASS="Return">return</FONT> getSelfExtractorManifest();
+<FONT CLASS="LN">95</FONT><A NAME="295"></A>        }
+<FONT CLASS="LN">96</FONT><A NAME="296"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">97</FONT><A NAME="297"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Invalid extractType: "</FONT> + extractType);
+<FONT CLASS="LN">98</FONT><A NAME="298"></A>        }
+<FONT CLASS="LN">99</FONT><A NAME="299"></A>    }
+<FONT CLASS="LN">00</FONT><A NAME="300"></A>    
+<FONT CLASS="LN">01</FONT><A NAME="301"></A>    <FONT CLASS="Private">private</FONT> Manifest getNonExtractorManifest() <FONT CLASS="Throws">throws</FONT> ManifestException{
+<FONT CLASS="LN">02</FONT><A NAME="302"></A>        <FONT CLASS="Return">return</FONT> getCustomManifest(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.selfextract.NonExtractor"</FONT>);
+<FONT CLASS="LN">03</FONT><A NAME="303"></A>    }
+<FONT CLASS="LN">04</FONT><A NAME="304"></A>    <FONT CLASS="Private">private</FONT> Manifest getSelfExtractorManifest() <FONT CLASS="Throws">throws</FONT> ManifestException{
+<FONT CLASS="LN">05</FONT><A NAME="305"></A>        <FONT CLASS="Return">return</FONT> getCustomManifest(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.selfextract.SelfExtractor"</FONT>);
+<FONT CLASS="LN">06</FONT><A NAME="306"></A>    }
+<FONT CLASS="LN">07</FONT><A NAME="307"></A>    <FONT CLASS="Private">private</FONT> Manifest getCustomManifest(String mainClass) <FONT CLASS="Throws">throws</FONT> ManifestException{
+<FONT CLASS="LN">08</FONT><A NAME="308"></A>        log(<FONT CLASS="StringLiteral">"Creating MANIFEST.mf"</FONT>);
+<FONT CLASS="LN">09</FONT><A NAME="309"></A>        Manifest newManifest = <FONT CLASS="New">new</FONT> Manifest();
+<FONT CLASS="LN">10</FONT><A NAME="310"></A>        Manifest.Section mainSection = newManifest.getMainSection();
+<FONT CLASS="LN">11</FONT><A NAME="311"></A>        Manifest.Attribute attmc = <FONT CLASS="New">new</FONT> Manifest.Attribute();
+<FONT CLASS="LN">12</FONT><A NAME="312"></A>        attmc.setName(<FONT CLASS="StringLiteral">"Main-Class"</FONT>);
+<FONT CLASS="LN">13</FONT><A NAME="313"></A>        attmc.setValue(mainClass);
+<FONT CLASS="LN">14</FONT><A NAME="314"></A>        mainSection.addAttributeAndCheck(attmc);
+<FONT CLASS="LN">15</FONT><A NAME="315"></A>        Manifest.Attribute attlaf = <FONT CLASS="New">new</FONT> Manifest.Attribute();
+<FONT CLASS="LN">16</FONT><A NAME="316"></A>        attlaf.setName(<FONT CLASS="StringLiteral">"Look-And-Feel"</FONT>);
+<FONT CLASS="LN">17</FONT><A NAME="317"></A>        attlaf.setValue(getLaf());
+<FONT CLASS="LN">18</FONT><A NAME="318"></A>        mainSection.addAttributeAndCheck(attlaf);
+<FONT CLASS="LN">19</FONT><A NAME="319"></A>        <FONT CLASS="Return">return</FONT> newManifest;
+<FONT CLASS="LN">20</FONT><A NAME="320"></A>        
+<FONT CLASS="LN">21</FONT><A NAME="321"></A>    }
+<FONT CLASS="LN">22</FONT><A NAME="322"></A>    
+<FONT CLASS="LN">23</FONT><A NAME="323"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> validateConfig(){
+<FONT CLASS="LN">24</FONT><A NAME="324"></A>        
+<FONT CLASS="LN">25</FONT><A NAME="325"></A>        <FONT CLASS="Int">int</FONT> ret = <FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">26</FONT><A NAME="326"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">27</FONT><A NAME="327"></A>            log(<FONT CLASS="StringLiteral">"validating config..."</FONT>);
+<FONT CLASS="LN">28</FONT><A NAME="328"></A>            ConfigurationLoader configurationLoader = <FONT CLASS="New">new</FONT> ConfigurationLoader();
+<FONT CLASS="LN">29</FONT><A NAME="329"></A>            configurationLoader.readConfig(installConfig.getParentFile(), installConfig.getName());
+<FONT CLASS="LN">30</FONT><A NAME="330"></A>            ret = configurationLoader.validate();
+<FONT CLASS="LN">31</FONT><A NAME="331"></A>            laf = configurationLoader.getInstaller().getLookAndFeel();
+<FONT CLASS="LN">32</FONT><A NAME="332"></A>            <FONT CLASS="If">if</FONT>(ret != <FONT CLASS="IntegerLiteral">0</FONT>){
+<FONT CLASS="LN">33</FONT><A NAME="333"></A>                err();
+<FONT CLASS="LN">34</FONT><A NAME="334"></A>            }
+<FONT CLASS="LN">35</FONT><A NAME="335"></A>        }
+<FONT CLASS="LN">36</FONT><A NAME="336"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">37</FONT><A NAME="337"></A>            ex.printStackTrace();
+<FONT CLASS="LN">38</FONT><A NAME="338"></A>            err();
+<FONT CLASS="LN">39</FONT><A NAME="339"></A>        }
+<FONT CLASS="LN">40</FONT><A NAME="340"></A>        
+<FONT CLASS="LN">41</FONT><A NAME="341"></A>        <FONT CLASS="Try">try</FONT>{
+<FONT CLASS="LN">42</FONT><A NAME="342"></A>            log(<FONT CLASS="StringLiteral">"parsing included build.xml..."</FONT>);
+<FONT CLASS="LN">43</FONT><A NAME="343"></A>            InputSource xmlInp = <FONT CLASS="New">new</FONT> InputSource(<FONT CLASS="New">new</FONT> FileInputStream(buildFile));
+<FONT CLASS="LN">44</FONT><A NAME="344"></A>            SAXParserFactory parserFactory = SAXParserFactory.newInstance();
+<FONT CLASS="LN">45</FONT><A NAME="345"></A>            SAXParser parser = parserFactory.newSAXParser();
+<FONT CLASS="LN">46</FONT><A NAME="346"></A>            parser.parse(xmlInp, <FONT CLASS="New">new</FONT> DefaultHandler(){
+<FONT CLASS="LN">47</FONT><A NAME="347"></A>                <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> error(SAXParseException e) <FONT CLASS="Throws">throws</FONT> SAXException{
+<FONT CLASS="LN">48</FONT><A NAME="348"></A>                    <FONT CLASS="Throw">throw</FONT> e;
+<FONT CLASS="LN">49</FONT><A NAME="349"></A>                }
+<FONT CLASS="LN">50</FONT><A NAME="350"></A>                <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> fatalError(SAXParseException e) <FONT CLASS="Throws">throws</FONT> SAXException{
+<FONT CLASS="LN">51</FONT><A NAME="351"></A>                    <FONT CLASS="Throw">throw</FONT> e;
+<FONT CLASS="LN">52</FONT><A NAME="352"></A>                }
+<FONT CLASS="LN">53</FONT><A NAME="353"></A>            } );
+<FONT CLASS="LN">54</FONT><A NAME="354"></A>            log(<FONT CLASS="StringLiteral">"build.xml is well formed"</FONT>);
+<FONT CLASS="LN">55</FONT><A NAME="355"></A>        }
+<FONT CLASS="LN">56</FONT><A NAME="356"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">57</FONT><A NAME="357"></A>            ex.printStackTrace();
+<FONT CLASS="LN">58</FONT><A NAME="358"></A>            errNestedBuildXml();
+<FONT CLASS="LN">59</FONT><A NAME="359"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="360"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="361"></A>
+<FONT CLASS="LN">62</FONT><A NAME="362"></A>    <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> readConfig(){
+<FONT CLASS="LN">63</FONT><A NAME="363"></A>        
+<FONT CLASS="LN">64</FONT><A NAME="364"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">65</FONT><A NAME="365"></A>            log(<FONT CLASS="StringLiteral">"reading config..."</FONT>);
+<FONT CLASS="LN">66</FONT><A NAME="366"></A>            ConfigurationLoader configurationLoader = <FONT CLASS="New">new</FONT> ConfigurationLoader();
+<FONT CLASS="LN">67</FONT><A NAME="367"></A>            configurationLoader.readConfig(installConfig.getParentFile(), installConfig.getName());
+<FONT CLASS="LN">68</FONT><A NAME="368"></A>            laf = configurationLoader.getInstaller().getLookAndFeel();
+<FONT CLASS="LN">69</FONT><A NAME="369"></A>        }
+<FONT CLASS="LN">70</FONT><A NAME="370"></A>        <FONT CLASS="Catch">catch</FONT> (Exception ex) {
+<FONT CLASS="LN">71</FONT><A NAME="371"></A>            ex.printStackTrace();
+<FONT CLASS="LN">72</FONT><A NAME="372"></A>            err();
+<FONT CLASS="LN">73</FONT><A NAME="373"></A>        }
+<FONT CLASS="LN">74</FONT><A NAME="374"></A>    }
+<FONT CLASS="LN">75</FONT><A NAME="375"></A>    
+<FONT CLASS="LN">76</FONT><A NAME="376"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">77</FONT><A NAME="377"></A>     * error found on validation of the antinstall config
+<FONT CLASS="LN">78</FONT><A NAME="378"></A>     */</FONT>
+<FONT CLASS="LN">79</FONT><A NAME="379"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> err(){
+<FONT CLASS="LN">80</FONT><A NAME="380"></A>        String errorMsg = <FONT CLASS="StringLiteral">"Error in config file:"</FONT> + installConfig.getAbsolutePath();
+<FONT CLASS="LN">81</FONT><A NAME="381"></A>        <FONT CLASS="If">if</FONT> (failOnError) {
+<FONT CLASS="LN">82</FONT><A NAME="382"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(errorMsg);
+<FONT CLASS="LN">83</FONT><A NAME="383"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">84</FONT><A NAME="384"></A>            log(errorMsg, Project.MSG_ERR);
+<FONT CLASS="LN">85</FONT><A NAME="385"></A>        }
+<FONT CLASS="LN">86</FONT><A NAME="386"></A>    }
+<FONT CLASS="LN">87</FONT><A NAME="387"></A>    <FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">88</FONT><A NAME="388"></A>     * error found in the build.xml used by ant installer (not the one
+<FONT CLASS="LN">89</FONT><A NAME="389"></A>     * running this task)
+<FONT CLASS="LN">90</FONT><A NAME="390"></A>     */</FONT>
+<FONT CLASS="LN">91</FONT><A NAME="391"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> errNestedBuildXml(){
+<FONT CLASS="LN">92</FONT><A NAME="392"></A>        String errorMsg = <FONT CLASS="StringLiteral">"Error in included build file:"</FONT> + buildFile.getAbsolutePath();
+<FONT CLASS="LN">93</FONT><A NAME="393"></A>        <FONT CLASS="If">if</FONT> (failOnError) {
+<FONT CLASS="LN">94</FONT><A NAME="394"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(errorMsg);
+<FONT CLASS="LN">95</FONT><A NAME="395"></A>        } <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">96</FONT><A NAME="396"></A>            log(errorMsg, Project.MSG_ERR);
+<FONT CLASS="LN">97</FONT><A NAME="397"></A>        }
+<FONT CLASS="LN">98</FONT><A NAME="398"></A>    }
+<FONT CLASS="LN">99</FONT><A NAME="399"></A>}
+<FONT CLASS="LN">00</FONT><A NAME="400"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/taskdefs/KdeIconTask.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/taskdefs/KdeIconTask.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/taskdefs/KdeIconTask.java.html	(revision 14989)
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.taskdefs.KdeIconTask (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">KdeIconTask.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.taskdefs.index.html" target="packageFrame">org.tp23.antinstaller.taskdefs</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.io.PrintWriter;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.io.StringWriter;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.BuildException;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> org.apache.tools.ant.Task;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.selfextract.ResourceExtractor;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">29</FONT><A NAME="29"></A> * 
+<FONT CLASS="LN">30</FONT><A NAME="30"></A> * @author teknopaul
+<FONT CLASS="LN">31</FONT><A NAME="31"></A> *
+<FONT CLASS="LN">32</FONT><A NAME="32"></A> */</FONT>
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> KdeIconTask <FONT CLASS="Extends">extends</FONT> Task{
+<FONT CLASS="LN">34</FONT><A NAME="34"></A>
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>    <FONT CLASS="Private">private</FONT> String desktop;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    <FONT CLASS="Private">private</FONT> String icon;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Private">private</FONT> String installDir;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>    
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> execute() <FONT CLASS="Throws">throws</FONT> BuildException{
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>        <FONT CLASS="If">if</FONT>(desktop == <FONT CLASS="Null">null</FONT> || icon == <FONT CLASS="Null">null</FONT> || installDir == <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Missing attribute in KdeIconTask"</FONT>);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>        }
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>        
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>        ResourceExtractor re = <FONT CLASS="New">new</FONT> ResourceExtractor();
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>        File appsDir = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            appsDir = getAppsDir();
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Can not determine KDE directory"</FONT>);
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>        }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        <FONT CLASS="If">if</FONT>( appsDir != <FONT CLASS="Null">null</FONT> &amp;&amp; appsDir.exists() ) {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>                String desktopFileName = desktop.substring( desktop.lastIndexOf(<FONT CLASS="CharacerLiteral">'/'</FONT>) + <FONT CLASS="IntegerLiteral">1</FONT> );
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>                log(<FONT CLASS="StringLiteral">"creating: "</FONT> + <FONT CLASS="New">new</FONT> File( appsDir, desktopFileName).getCanonicalPath());
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>                re.copyResource(desktop, <FONT CLASS="New">new</FONT> File( appsDir, desktopFileName), <FONT CLASS="StringLiteral">"@installDir@"</FONT>, installDir);
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>            } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>                StringWriter sw = <FONT CLASS="New">new</FONT> StringWriter();
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>                e.printStackTrace(<FONT CLASS="New">new</FONT> PrintWriter(sw));
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(sw.getBuffer().toString());
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            }
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        }
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>            log(<FONT CLASS="StringLiteral">"apps dir does not exist"</FONT>);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>        }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        File iconDir = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>            iconDir = getIconDir();
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(<FONT CLASS="StringLiteral">"Can not determine KDE directory"</FONT>);
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>        }
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>        <FONT CLASS="If">if</FONT>(iconDir != <FONT CLASS="Null">null</FONT> &amp;&amp; iconDir.exists()){
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            <FONT CLASS="Try">try</FONT> {               
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                String iconFileName = icon.substring( icon.lastIndexOf(<FONT CLASS="CharacerLiteral">'/'</FONT>) + <FONT CLASS="IntegerLiteral">1</FONT> );
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                log(<FONT CLASS="StringLiteral">"creating: "</FONT> + <FONT CLASS="New">new</FONT> File( iconDir, iconFileName).getCanonicalPath());
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                re.copyResourceBinary(icon, <FONT CLASS="New">new</FONT> File( iconDir, iconFileName ));
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>                <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> BuildException(e.getMessage());
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>            }
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>        }
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>            log(<FONT CLASS="StringLiteral">"icon dir does not exist"</FONT>);
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        }
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>        <FONT CLASS="Try">try</FONT> {   
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            Process proc = Runtime.getRuntime().exec(<FONT CLASS="StringLiteral">"kbuildsycoca"</FONT>);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>        } <FONT CLASS="Catch">catch</FONT> (Exception e) {
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            log(<FONT CLASS="StringLiteral">"error running kbuildsycoca: "</FONT> + e.getMessage());
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>        }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>        
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>    }
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>    
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>    <FONT CLASS="Private">private</FONT> File getKdeDir(String pathdef, String extension) <FONT CLASS="Throws">throws</FONT> IOException, InterruptedException{
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>        String[] args = {<FONT CLASS="StringLiteral">"kde-config"</FONT>, <FONT CLASS="StringLiteral">"--path"</FONT>, pathdef};
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        Process proc = Runtime.getRuntime().exec(args);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        BufferedReader br = <FONT CLASS="New">new</FONT> BufferedReader( <FONT CLASS="New">new</FONT> InputStreamReader(proc.getInputStream()));
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>        String appsDirs = br.readLine();
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>        <FONT CLASS="Int">int</FONT> idx = -<FONT CLASS="IntegerLiteral">1</FONT>;
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>        <FONT CLASS="If">if</FONT>(appsDirs != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            idx = appsDirs.indexOf(<FONT CLASS="CharacerLiteral">':'</FONT>);
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        br.close();
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        <FONT CLASS="If">if</FONT>(idx &gt; -<FONT CLASS="IntegerLiteral">1</FONT> &amp;&amp; idx &lt; appsDirs.length() - <FONT CLASS="IntegerLiteral">1</FONT>){
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>            String privatedir = appsDirs.substring(<FONT CLASS="IntegerLiteral">0</FONT>, idx - <FONT CLASS="IntegerLiteral">1</FONT>);
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>            <FONT CLASS="If">if</FONT>(!privatedir.endsWith(<FONT CLASS="StringLiteral">"/"</FONT>)){
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>                privatedir = privatedir + <FONT CLASS="StringLiteral">"/"</FONT>; 
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>            }
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>            <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> File(privatedir + extension);
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        }
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        <FONT CLASS="Else">else</FONT>{
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            <FONT CLASS="If">if</FONT>(!appsDirs.endsWith(<FONT CLASS="StringLiteral">"/"</FONT>)){
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>                appsDirs = appsDirs + <FONT CLASS="StringLiteral">"/"</FONT>; 
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>            }
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>            <FONT CLASS="Return">return</FONT>  <FONT CLASS="New">new</FONT> File(appsDirs + extension);
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>        }
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>    }
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>    <FONT CLASS="Private">private</FONT> File getAppsDir() <FONT CLASS="Throws">throws</FONT> IOException, InterruptedException{
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>        <FONT CLASS="Return">return</FONT> getKdeDir(<FONT CLASS="StringLiteral">"xdgdata-apps"</FONT>, <FONT CLASS="StringLiteral">""</FONT>);
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>    }
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>    <FONT CLASS="Private">private</FONT> File getIconDir() <FONT CLASS="Throws">throws</FONT> IOException, InterruptedException{
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>        <FONT CLASS="Return">return</FONT> getKdeDir(<FONT CLASS="StringLiteral">"icon"</FONT>, <FONT CLASS="StringLiteral">"hicolor/48x48/apps"</FONT>);
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>    }
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>    
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>    
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>    <FONT CLASS="Public">public</FONT> String getDesktop() {
+<FONT CLASS="LN">26</FONT><A NAME="126"></A>        <FONT CLASS="Return">return</FONT> desktop;
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>    }
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setDesktop(String desktop) {
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>        <FONT CLASS="This">this</FONT>.desktop = desktop;
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>    }
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>    <FONT CLASS="Public">public</FONT> String getIcon() {
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>        <FONT CLASS="Return">return</FONT> icon;
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>    }
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setIcon(String icon) {
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>        <FONT CLASS="This">this</FONT>.icon = icon;
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>    }
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>    <FONT CLASS="Public">public</FONT> String getInstallDir() {
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>        <FONT CLASS="Return">return</FONT> installDir;
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>    }
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> setInstallDir(String installDir) {
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>        <FONT CLASS="This">this</FONT>.installDir = installDir;
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>    }
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>    
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>}
+<FONT CLASS="LN">47</FONT><A NAME="147"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/taskdefs/ValidateConfig.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/taskdefs/ValidateConfig.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/taskdefs/ValidateConfig.java.html	(revision 14989)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.taskdefs.ValidateConfig (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">ValidateConfig.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.taskdefs.index.html" target="packageFrame">org.tp23.antinstaller.taskdefs</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> ValidateConfig <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/taskdefs/Installer.java.html">Installer</A> {
+<FONT CLASS="LN">19</FONT><A NAME="19"></A>
+<FONT CLASS="LN">20</FONT><A NAME="20"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> execute(){
+<FONT CLASS="LN">21</FONT><A NAME="21"></A>        log(<FONT CLASS="StringLiteral">".-------------------------------."</FONT>);
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>        log(<FONT CLASS="StringLiteral">"|-(o--~AntInstaller.sf.net~--o)-|"</FONT>);
+<FONT CLASS="LN">23</FONT><A NAME="23"></A>        log(<FONT CLASS="StringLiteral">"`-----------------by-Paul-Hinds-ÂŽ"</FONT>);
+<FONT CLASS="LN">24</FONT><A NAME="24"></A>        validateConfig();
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>    }
+<FONT CLASS="LN">26</FONT><A NAME="26"></A>}
+<FONT CLASS="LN">27</FONT><A NAME="27"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/util/CreateLanguagePack.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/util/CreateLanguagePack.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/util/CreateLanguagePack.java.html	(revision 14989)
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.util.CreateLanguagePack (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">CreateLanguagePack.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.util.index.html" target="packageFrame">org.tp23.antinstaller.util</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedReader;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.InputStreamReader;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A>
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> javax.swing.JDialog;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> javax.swing.JFileChooser;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.JFrame;
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.JOptionPane;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> javax.swing.filechooser.FileFilter;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A>
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.InstallException;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.Installer;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.InstallerContext;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.runtime.exe.LoadConfigFilter;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A>
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> CreateLanguagePack {
+<FONT CLASS="LN">35</FONT><A NAME="35"></A>
+<FONT CLASS="LN">36</FONT><A NAME="36"></A>    
+<FONT CLASS="LN">37</FONT><A NAME="37"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> main(String[] args) {
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">39</FONT><A NAME="39"></A>            BufferedReader br = <FONT CLASS="New">new</FONT> BufferedReader(<FONT CLASS="New">new</FONT> InputStreamReader(System.in));
+<FONT CLASS="LN">40</FONT><A NAME="40"></A>
+<FONT CLASS="LN">41</FONT><A NAME="41"></A>            System.out.println(<FONT CLASS="StringLiteral">"Create LanguagePack for antinstall-config.xml in the current directory?"</FONT>);
+<FONT CLASS="LN">42</FONT><A NAME="42"></A>            br.readLine();
+<FONT CLASS="LN">43</FONT><A NAME="43"></A>            
+<FONT CLASS="LN">44</FONT><A NAME="44"></A>            System.out.println(<FONT CLASS="StringLiteral">"Enter Locale to create e.g. es_EU"</FONT>);
+<FONT CLASS="LN">45</FONT><A NAME="45"></A>            String locale = br.readLine().trim();
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>            
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>            createLanguagePack(loadConfigFile(<FONT CLASS="New">new</FONT> File(<FONT CLASS="StringLiteral">"."</FONT>), <FONT CLASS="StringLiteral">"antinstall-config.xml"</FONT> ), locale, <FONT CLASS="New">new</FONT> File(<FONT CLASS="StringLiteral">"."</FONT>));
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>            
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>            System.out.println(<FONT CLASS="StringLiteral">"done."</FONT>);
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>        } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>            e.printStackTrace();
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>        } <FONT CLASS="Catch">catch</FONT> (InstallException e) {
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>            e.printStackTrace();
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        }
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>    }
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>    
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Static">static</FONT> File guiMain(JFrame root) {
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        <FONT CLASS="Try">try</FONT> {
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>            JFileChooser chooser = <FONT CLASS="New">new</FONT> JFileChooser();
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>            chooser.setDialogTitle(<FONT CLASS="StringLiteral">"Select antinstall-config.xml file"</FONT>);
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>            chooser.setApproveButtonText(<FONT CLASS="StringLiteral">"Select file"</FONT>);
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>            FileFilter ff = <FONT CLASS="New">new</FONT> FileFilter(){
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>                <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> accept(File file){
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>                    <FONT CLASS="Return">return</FONT> file.getName().equals(<FONT CLASS="StringLiteral">"antinstall-config.xml"</FONT>) || file.isDirectory();
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>                }
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>                <FONT CLASS="Public">public</FONT> String getDescription() {
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"antinstall-config.xml files"</FONT>;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>                }
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>            };
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            chooser.setFileFilter(ff);
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>            chooser.showOpenDialog(root);
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            File chosen = chooser.getSelectedFile();
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            <FONT CLASS="If">if</FONT>(chosen != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>                chooser = <FONT CLASS="New">new</FONT> JFileChooser();
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>                chooser.setDialogTitle(<FONT CLASS="StringLiteral">"Select output directory"</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>                chooser.setApproveButtonText(<FONT CLASS="StringLiteral">"Internationalise file"</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>                chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>                chooser.setCurrentDirectory(chosen.getParentFile());
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>                chooser.showOpenDialog(root);
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>                File dir = chooser.getSelectedFile();
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>                <FONT CLASS="If">if</FONT>(dir != <FONT CLASS="Null">null</FONT>){
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>                    createLanguagePack(loadConfigFile(chosen.getParentFile(), chosen.getName()), <FONT CLASS="Null">null</FONT>, dir);
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>                    <FONT CLASS="If">if</FONT>(! dir.getName().equals(<FONT CLASS="StringLiteral">"resources"</FONT>)){
+<FONT CLASS="LN">84</FONT><A NAME="84"></A>                        JOptionPane.showMessageDialog(root, <FONT CLASS="StringLiteral">"When the resources files are added to the installer jar\n the parent directory must be /resources/"</FONT>);
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>                    }
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>                    <FONT CLASS="Return">return</FONT> <FONT CLASS="New">new</FONT> File(dir, <FONT CLASS="StringLiteral">"LanguagePack.properties"</FONT>);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>                }
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            }
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>        } <FONT CLASS="Catch">catch</FONT> (IOException e) {
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>            e.printStackTrace();
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        } <FONT CLASS="Catch">catch</FONT> (InstallException e) {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            e.printStackTrace();
+<FONT CLASS="LN">94</FONT><A NAME="94"></A>        }
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>        <FONT CLASS="Return">return</FONT> <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>    }
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>    
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> Installer loadConfigFile(File rootDir, String configName) <FONT CLASS="Throws">throws</FONT> InstallException{
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>        InstallerContext ctx = <FONT CLASS="New">new</FONT> InstallerContext();
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        ctx.setFileRoot(rootDir);
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>        ctx.setInstallerConfigFile(configName);
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>        LoadConfigFilter configLoader = <FONT CLASS="New">new</FONT> LoadConfigFilter();
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>        configLoader.exec(ctx);
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        Installer installer = ctx.getInstaller();
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        <FONT CLASS="Return">return</FONT> installer;
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>    }
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>    
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Void">void</FONT> createLanguagePack(Installer installer, String locale, File outputDir) <FONT CLASS="Throws">throws</FONT> IOException{
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        <A HREF="../../../../org/tp23/antinstaller/util/LangPackFileRenderer.java.html">LangPackFileRenderer</A> renderer = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/util/LangPackFileRenderer.java.html">LangPackFileRenderer</A>();
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>        renderer.renderProperties(installer, outputDir, locale);
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>    }
+<FONT CLASS="LN">12</FONT><A NAME="112"></A>}
+<FONT CLASS="LN">13</FONT><A NAME="113"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/util/LangPackFileRenderer.java.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/util/LangPackFileRenderer.java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/org/tp23/antinstaller/util/LangPackFileRenderer.java.html	(revision 14989)
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>org.tp23.antinstaller.util.LangPackFileRenderer (Java2HTML)</TITLE>
+</HEAD>
+<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td colspan="2" width="33%">&nbsp;</td>
+<td align="center" colspan="2" width="33%">
+<font size="4" class="ClassName">LangPackFileRenderer.java</font>
+</td>
+<td align="right" colspan="2" width="33%">&nbsp;</td>
+</tr>
+</TABLE>
+<pre CLASS="Classes">
+<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/* 
+<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
+<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
+<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
+<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
+<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
+<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
+<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
+<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
+<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
+<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
+<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
+<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
+<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
+<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.util.index.html" target="packageFrame">org.tp23.antinstaller.util</A>;
+<FONT CLASS="LN">17</FONT><A NAME="17"></A>
+<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.io.BufferedWriter;
+<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.File;
+<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.FileWriter;
+<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.io.IOException;
+<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.Date;
+<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.Iterator;
+<FONT CLASS="LN">24</FONT><A NAME="24"></A><FONT CLASS="Import">import</FONT> java.util.List;
+<FONT CLASS="LN">25</FONT><A NAME="25"></A>
+<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.Installer;
+<FONT CLASS="LN">27</FONT><A NAME="27"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.PropertiesFileRenderer;
+<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.CommentOutput;
+<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.InputField;
+<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.LargeSelectInput;
+<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.OutputField;
+<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.SecretPropertyField;
+<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.ConditionalField;
+<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.SelectInput;
+<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.TargetSelectInput;
+<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.input.SelectInput.Option;
+<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> org.tp23.antinstaller.page.Page;
+<FONT CLASS="LN">38</FONT><A NAME="38"></A>
+<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="FormalComment">/**
+<FONT CLASS="LN">40</FONT><A NAME="40"></A> * &lt;p&gt;Outputs the text from Pages as a Java Properties file. The file produced is compatible
+<FONT CLASS="LN">41</FONT><A NAME="41"></A> * with java.util.Properties. &lt;/p&gt;
+<FONT CLASS="LN">42</FONT><A NAME="42"></A> * &lt;p&gt;It can be used as a stub for creating language packs,  the default text is included as a guide but can be deleted&lt;/p&gt;
+<FONT CLASS="LN">43</FONT><A NAME="43"></A> * @author Paul Hinds
+<FONT CLASS="LN">44</FONT><A NAME="44"></A> */</FONT>
+<FONT CLASS="LN">45</FONT><A NAME="45"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> LangPackFileRenderer{
+<FONT CLASS="LN">46</FONT><A NAME="46"></A>
+<FONT CLASS="LN">47</FONT><A NAME="47"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> String newLine = System.getProperty(<FONT CLASS="StringLiteral">"line.separator"</FONT>);
+<FONT CLASS="LN">48</FONT><A NAME="48"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> <FONT CLASS="Char">char</FONT>[] hexidecimals = { <FONT CLASS="CharacerLiteral">'0'</FONT>, <FONT CLASS="CharacerLiteral">'1'</FONT>, <FONT CLASS="CharacerLiteral">'2'</FONT>, <FONT CLASS="CharacerLiteral">'3'</FONT>, <FONT CLASS="CharacerLiteral">'4'</FONT>, <FONT CLASS="CharacerLiteral">'5'</FONT>, <FONT CLASS="CharacerLiteral">'6'</FONT>, <FONT CLASS="CharacerLiteral">'7'</FONT>, <FONT CLASS="CharacerLiteral">'8'</FONT>, <FONT CLASS="CharacerLiteral">'9'</FONT>, <FONT CLASS="CharacerLiteral">'A'</FONT>, <FONT CLASS="CharacerLiteral">'B'</FONT>, <FONT CLASS="CharacerLiteral">'C'</FONT>, <FONT CLASS="CharacerLiteral">'D'</FONT>, <FONT CLASS="CharacerLiteral">'E'</FONT>, <FONT CLASS="CharacerLiteral">'F'</FONT> };
+<FONT CLASS="LN">49</FONT><A NAME="49"></A>
+<FONT CLASS="LN">50</FONT><A NAME="50"></A>    <FONT CLASS="Public">public</FONT> LangPackFileRenderer() {
+<FONT CLASS="LN">51</FONT><A NAME="51"></A>    }
+<FONT CLASS="LN">52</FONT><A NAME="52"></A>
+<FONT CLASS="LN">53</FONT><A NAME="53"></A>    <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> renderProperties(Installer installer, File baseDir, String locale) <FONT CLASS="Throws">throws</FONT> IOException {
+<FONT CLASS="LN">54</FONT><A NAME="54"></A>        Page[] pages = installer.getPages();
+<FONT CLASS="LN">55</FONT><A NAME="55"></A>
+<FONT CLASS="LN">56</FONT><A NAME="56"></A>        StringBuffer propertiesData = <FONT CLASS="New">new</FONT> StringBuffer();
+<FONT CLASS="LN">57</FONT><A NAME="57"></A>        propertiesData.append(<FONT CLASS="StringLiteral">"### Ant Installer - language pack auto generated on "</FONT>);
+<FONT CLASS="LN">58</FONT><A NAME="58"></A>        propertiesData.append(<FONT CLASS="New">new</FONT> Date().toString());
+<FONT CLASS="LN">59</FONT><A NAME="59"></A>        propertiesData.append(newLine);
+<FONT CLASS="LN">60</FONT><A NAME="60"></A>        propertiesData.append(newLine);
+<FONT CLASS="LN">61</FONT><A NAME="61"></A>
+<FONT CLASS="LN">62</FONT><A NAME="62"></A>        propertiesData.append(<FONT CLASS="StringLiteral">"finishButtonText = "</FONT> + installer.getFinishButtonText());
+<FONT CLASS="LN">63</FONT><A NAME="63"></A>        propertiesData.append(newLine);
+<FONT CLASS="LN">64</FONT><A NAME="64"></A>        propertiesData.append(newLine);
+<FONT CLASS="LN">65</FONT><A NAME="65"></A>
+<FONT CLASS="LN">66</FONT><A NAME="66"></A>        String property = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">67</FONT><A NAME="67"></A>        String value = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">68</FONT><A NAME="68"></A>
+<FONT CLASS="LN">69</FONT><A NAME="69"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
+<FONT CLASS="LN">70</FONT><A NAME="70"></A>            OutputField[] fields = pages[i].getOutputField();
+<FONT CLASS="LN">71</FONT><A NAME="71"></A>
+<FONT CLASS="LN">72</FONT><A NAME="72"></A>            propertiesData.append(newLine);
+<FONT CLASS="LN">73</FONT><A NAME="73"></A>            propertiesData.append(<FONT CLASS="StringLiteral">"## Text from Page:"</FONT> + pages[i].getName());
+<FONT CLASS="LN">74</FONT><A NAME="74"></A>            propertiesData.append(newLine);
+<FONT CLASS="LN">75</FONT><A NAME="75"></A>            property = <FONT CLASS="StringLiteral">"page."</FONT> + pages[i].getName() + <FONT CLASS="StringLiteral">".displayText"</FONT>;
+<FONT CLASS="LN">76</FONT><A NAME="76"></A>            value = convert(pages[i].getDisplayText(), <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">77</FONT><A NAME="77"></A>            propertiesData.append(property + <FONT CLASS="StringLiteral">" = "</FONT> + value);
+<FONT CLASS="LN">78</FONT><A NAME="78"></A>            propertiesData.append(newLine);
+<FONT CLASS="LN">79</FONT><A NAME="79"></A>
+<FONT CLASS="LN">80</FONT><A NAME="80"></A>            retrievePropertiesData( fields, propertiesData );
+<FONT CLASS="LN">81</FONT><A NAME="81"></A>
+<FONT CLASS="LN">82</FONT><A NAME="82"></A>        }
+<FONT CLASS="LN">83</FONT><A NAME="83"></A>        <FONT CLASS="SingleLineComment">// create the stub
+<FONT CLASS="LN">84</FONT><A NAME="84"></A></FONT>        <FONT CLASS="If">if</FONT>(locale != <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">85</FONT><A NAME="85"></A>            File languagePackStub = <FONT CLASS="New">new</FONT> File(baseDir.getAbsolutePath(), <FONT CLASS="StringLiteral">"LanguagePack_"</FONT> + locale + <FONT CLASS="StringLiteral">".properties"</FONT>);
+<FONT CLASS="LN">86</FONT><A NAME="86"></A>            FileWriter fos = <FONT CLASS="New">new</FONT> FileWriter(languagePackStub);
+<FONT CLASS="LN">87</FONT><A NAME="87"></A>            BufferedWriter writer = <FONT CLASS="New">new</FONT> BufferedWriter(fos);
+<FONT CLASS="LN">88</FONT><A NAME="88"></A>            writer.write(propertiesData.toString());
+<FONT CLASS="LN">89</FONT><A NAME="89"></A>            writer.flush();
+<FONT CLASS="LN">90</FONT><A NAME="90"></A>            fos.close();
+<FONT CLASS="LN">91</FONT><A NAME="91"></A>        }
+<FONT CLASS="LN">92</FONT><A NAME="92"></A>        <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">93</FONT><A NAME="93"></A>            <FONT CLASS="SingleLineComment">// create the default
+<FONT CLASS="LN">94</FONT><A NAME="94"></A></FONT>            File languagePack = <FONT CLASS="New">new</FONT> File(baseDir.getAbsolutePath(), <FONT CLASS="StringLiteral">"LanguagePack.properties"</FONT>);
+<FONT CLASS="LN">95</FONT><A NAME="95"></A>            FileWriter fos = <FONT CLASS="New">new</FONT> FileWriter(languagePack);
+<FONT CLASS="LN">96</FONT><A NAME="96"></A>            BufferedWriter writer = <FONT CLASS="New">new</FONT> BufferedWriter(fos);
+<FONT CLASS="LN">97</FONT><A NAME="97"></A>            writer.write(propertiesData.toString());
+<FONT CLASS="LN">98</FONT><A NAME="98"></A>            writer.flush();
+<FONT CLASS="LN">99</FONT><A NAME="99"></A>            fos.close();
+<FONT CLASS="LN">00</FONT><A NAME="100"></A>        }
+<FONT CLASS="LN">01</FONT><A NAME="101"></A>    }
+<FONT CLASS="LN">02</FONT><A NAME="102"></A>    
+<FONT CLASS="LN">03</FONT><A NAME="103"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> retrievePropertiesData( OutputField[] fields, StringBuffer propertiesData ) {
+<FONT CLASS="LN">04</FONT><A NAME="104"></A>        String property = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">05</FONT><A NAME="105"></A>        String value = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">06</FONT><A NAME="106"></A>        String explProperty = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">07</FONT><A NAME="107"></A>        String explValue = <FONT CLASS="Null">null</FONT>;
+<FONT CLASS="LN">08</FONT><A NAME="108"></A>
+<FONT CLASS="LN">09</FONT><A NAME="109"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> f = <FONT CLASS="IntegerLiteral">0</FONT>; f &lt; fields.length; f++) {
+<FONT CLASS="LN">10</FONT><A NAME="110"></A>            
+<FONT CLASS="LN">11</FONT><A NAME="111"></A>            <FONT CLASS="SingleLineComment">// use getName() for comments
+<FONT CLASS="LN">12</FONT><A NAME="112"></A></FONT>            <FONT CLASS="If">if</FONT>(fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> CommentOutput){
+<FONT CLASS="LN">13</FONT><A NAME="113"></A>                property = fields[f].getName() + <FONT CLASS="StringLiteral">".displayText"</FONT>;
+<FONT CLASS="LN">14</FONT><A NAME="114"></A>                value = convert(fields[f].getDisplayText(), <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">15</FONT><A NAME="115"></A>                propertiesData.append(property + <FONT CLASS="StringLiteral">" = "</FONT> + value);
+<FONT CLASS="LN">16</FONT><A NAME="116"></A>                propertiesData.append(newLine);
+<FONT CLASS="LN">17</FONT><A NAME="117"></A>
+<FONT CLASS="LN">18</FONT><A NAME="118"></A>                <FONT CLASS="If">if</FONT> (fields[f].getExplanatoryText() != <FONT CLASS="Null">null</FONT> &amp;&amp; fields[f].getExplanatoryText().trim().length() &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">19</FONT><A NAME="119"></A>                    explProperty = fields[f].getName() + <FONT CLASS="StringLiteral">".explanatoryText"</FONT>;
+<FONT CLASS="LN">20</FONT><A NAME="120"></A>                    explValue = convert(fields[f].getExplanatoryText(), <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">21</FONT><A NAME="121"></A>                    propertiesData.append(explProperty + <FONT CLASS="StringLiteral">" = "</FONT> + explValue);
+<FONT CLASS="LN">22</FONT><A NAME="122"></A>                    propertiesData.append(newLine);
+<FONT CLASS="LN">23</FONT><A NAME="123"></A>                }
+<FONT CLASS="LN">24</FONT><A NAME="124"></A>            }
+<FONT CLASS="LN">25</FONT><A NAME="125"></A>            <FONT CLASS="SingleLineComment">// use getProperty for input types
+<FONT CLASS="LN">26</FONT><A NAME="126"></A></FONT>            <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">27</FONT><A NAME="127"></A>                InputField iField = (InputField)fields[f];
+<FONT CLASS="LN">28</FONT><A NAME="128"></A>                property = iField.getProperty() + <FONT CLASS="StringLiteral">".displayText"</FONT>;
+<FONT CLASS="LN">29</FONT><A NAME="129"></A>                value = convert(iField.getDisplayText(), <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">30</FONT><A NAME="130"></A>                propertiesData.append(property + <FONT CLASS="StringLiteral">" = "</FONT> + value);
+<FONT CLASS="LN">31</FONT><A NAME="131"></A>                propertiesData.append(newLine);
+<FONT CLASS="LN">32</FONT><A NAME="132"></A>                <FONT CLASS="If">if</FONT> (iField.getExplanatoryText() != <FONT CLASS="Null">null</FONT> &amp;&amp; iField.getExplanatoryText().trim().length() &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
+<FONT CLASS="LN">33</FONT><A NAME="133"></A>                    explProperty = iField.getProperty() + <FONT CLASS="StringLiteral">".explanatoryText"</FONT>;
+<FONT CLASS="LN">34</FONT><A NAME="134"></A>                    explValue = convert(iField.getExplanatoryText(), <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">35</FONT><A NAME="135"></A>                    propertiesData.append(explProperty + <FONT CLASS="StringLiteral">" = "</FONT> + explValue);
+<FONT CLASS="LN">36</FONT><A NAME="136"></A>                    propertiesData.append(newLine);
+<FONT CLASS="LN">37</FONT><A NAME="137"></A>                }
+<FONT CLASS="LN">38</FONT><A NAME="138"></A>                <FONT CLASS="If">if</FONT>(iField <FONT CLASS="InstanceOf">instanceof</FONT> SelectInput) {
+<FONT CLASS="LN">39</FONT><A NAME="139"></A>                    SelectInput selectInput = (SelectInput)iField;
+<FONT CLASS="LN">40</FONT><A NAME="140"></A>                    <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> o = <FONT CLASS="IntegerLiteral">0</FONT>; o &lt; selectInput.getOptions().length; o++) {
+<FONT CLASS="LN">41</FONT><A NAME="141"></A>                        SelectInput.Option option =  selectInput.getOptions()[o];
+<FONT CLASS="LN">42</FONT><A NAME="142"></A>                        property = selectInput.getProperty() + <FONT CLASS="StringLiteral">"."</FONT> + (o + <FONT CLASS="IntegerLiteral">1</FONT>) + <FONT CLASS="StringLiteral">".displayText"</FONT>;
+<FONT CLASS="LN">43</FONT><A NAME="143"></A>                        value = convert(option.getText(), <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">44</FONT><A NAME="144"></A>                        propertiesData.append(property + <FONT CLASS="StringLiteral">" = "</FONT> + value);
+<FONT CLASS="LN">45</FONT><A NAME="145"></A>                        propertiesData.append(newLine);
+<FONT CLASS="LN">46</FONT><A NAME="146"></A>                    }
+<FONT CLASS="LN">47</FONT><A NAME="147"></A>                }
+<FONT CLASS="LN">48</FONT><A NAME="148"></A>                <FONT CLASS="If">if</FONT>(fields[f] <FONT CLASS="InstanceOf">instanceof</FONT> LargeSelectInput) {
+<FONT CLASS="LN">49</FONT><A NAME="149"></A>                    LargeSelectInput selectInput = (LargeSelectInput)iField;
+<FONT CLASS="LN">50</FONT><A NAME="150"></A>                    <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> o = <FONT CLASS="IntegerLiteral">0</FONT>; o &lt; selectInput.getOptions().length; o++) {
+<FONT CLASS="LN">51</FONT><A NAME="151"></A>                        LargeSelectInput.Option option =  selectInput.getOptions()[o];
+<FONT CLASS="LN">52</FONT><A NAME="152"></A>                        property = selectInput.getProperty() + <FONT CLASS="StringLiteral">"."</FONT> + (o + <FONT CLASS="IntegerLiteral">1</FONT>) + <FONT CLASS="StringLiteral">".displayText"</FONT>;
+<FONT CLASS="LN">53</FONT><A NAME="153"></A>                        value = convert(option.getText(), <FONT CLASS="False">false</FONT>);
+<FONT CLASS="LN">54</FONT><A NAME="154"></A>                        propertiesData.append(property + <FONT CLASS="StringLiteral">" = "</FONT> + value);
+<FONT CLASS="LN">55</FONT><A NAME="155"></A>                        propertiesData.append(newLine);
+<FONT CLASS="LN">56</FONT><A NAME="156"></A>                    }
+<FONT CLASS="LN">57</FONT><A NAME="157"></A>                }
+<FONT CLASS="LN">58</FONT><A NAME="158"></A>            }           
+<FONT CLASS="LN">59</FONT><A NAME="159"></A>        }
+<FONT CLASS="LN">60</FONT><A NAME="160"></A>    }
+<FONT CLASS="LN">61</FONT><A NAME="161"></A>
+<FONT CLASS="LN">62</FONT><A NAME="162"></A>    <FONT CLASS="Private">private</FONT> String convert(String input, <FONT CLASS="Boolean">boolean</FONT> doSpaces) {
+<FONT CLASS="LN">63</FONT><A NAME="163"></A>        <FONT CLASS="If">if</FONT> (input == <FONT CLASS="Null">null</FONT>) {
+<FONT CLASS="LN">64</FONT><A NAME="164"></A>            <FONT CLASS="SingleLineComment">// this happens when a page is skipped in text mode
+<FONT CLASS="LN">65</FONT><A NAME="165"></A></FONT>            <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">""</FONT>;
+<FONT CLASS="LN">66</FONT><A NAME="166"></A>        }
+<FONT CLASS="LN">67</FONT><A NAME="167"></A>        <FONT CLASS="Int">int</FONT> num = input.length();
+<FONT CLASS="LN">68</FONT><A NAME="168"></A>        StringBuffer sb = <FONT CLASS="New">new</FONT> StringBuffer(num);
+<FONT CLASS="LN">69</FONT><A NAME="169"></A>
+<FONT CLASS="LN">70</FONT><A NAME="170"></A>        <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; num; i++) {
+<FONT CLASS="LN">71</FONT><A NAME="171"></A>            <FONT CLASS="Char">char</FONT> c = input.charAt(i);
+<FONT CLASS="LN">72</FONT><A NAME="172"></A>            <FONT CLASS="Switch">switch</FONT> (c) {
+<FONT CLASS="LN">73</FONT><A NAME="173"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">' '</FONT>:
+<FONT CLASS="LN">74</FONT><A NAME="174"></A>                    <FONT CLASS="If">if</FONT> (i == <FONT CLASS="IntegerLiteral">0</FONT> || doSpaces) {
+<FONT CLASS="LN">75</FONT><A NAME="175"></A>                        sb.append(<FONT CLASS="CharacerLiteral">'\\'</FONT>);
+<FONT CLASS="LN">76</FONT><A NAME="176"></A>                    }
+<FONT CLASS="LN">77</FONT><A NAME="177"></A>                    sb.append(<FONT CLASS="CharacerLiteral">' '</FONT>);
+<FONT CLASS="LN">78</FONT><A NAME="178"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">79</FONT><A NAME="179"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\n'</FONT>:
+<FONT CLASS="LN">80</FONT><A NAME="180"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\n"</FONT>);
+<FONT CLASS="LN">81</FONT><A NAME="181"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">82</FONT><A NAME="182"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\r'</FONT>:
+<FONT CLASS="LN">83</FONT><A NAME="183"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\r"</FONT>);
+<FONT CLASS="LN">84</FONT><A NAME="184"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">85</FONT><A NAME="185"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\\'</FONT>:
+<FONT CLASS="LN">86</FONT><A NAME="186"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\\\"</FONT>);
+<FONT CLASS="LN">87</FONT><A NAME="187"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">88</FONT><A NAME="188"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\t'</FONT>:
+<FONT CLASS="LN">89</FONT><A NAME="189"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\t"</FONT>);
+<FONT CLASS="LN">90</FONT><A NAME="190"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">91</FONT><A NAME="191"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'\f'</FONT>:
+<FONT CLASS="LN">92</FONT><A NAME="192"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\f"</FONT>);
+<FONT CLASS="LN">93</FONT><A NAME="193"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">94</FONT><A NAME="194"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'='</FONT>:
+<FONT CLASS="LN">95</FONT><A NAME="195"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\="</FONT>);
+<FONT CLASS="LN">96</FONT><A NAME="196"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">97</FONT><A NAME="197"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">':'</FONT>:
+<FONT CLASS="LN">98</FONT><A NAME="198"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\:"</FONT>);
+<FONT CLASS="LN">99</FONT><A NAME="199"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">00</FONT><A NAME="200"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'#'</FONT>:
+<FONT CLASS="LN">01</FONT><A NAME="201"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\#"</FONT>);
+<FONT CLASS="LN">02</FONT><A NAME="202"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">03</FONT><A NAME="203"></A>                <FONT CLASS="Case">case</FONT> <FONT CLASS="CharacerLiteral">'!'</FONT>:
+<FONT CLASS="LN">04</FONT><A NAME="204"></A>                    sb.append(<FONT CLASS="StringLiteral">"\\!"</FONT>);
+<FONT CLASS="LN">05</FONT><A NAME="205"></A>                    <FONT CLASS="Break">break</FONT>;
+<FONT CLASS="LN">06</FONT><A NAME="206"></A>
+<FONT CLASS="LN">07</FONT><A NAME="207"></A>                <FONT CLASS="Default">default</FONT>:
+<FONT CLASS="LN">08</FONT><A NAME="208"></A>                    <FONT CLASS="If">if</FONT> ( (c &lt; <FONT CLASS="IntegerLiteral">0x0020</FONT>) || (c &gt; <FONT CLASS="IntegerLiteral">0x007e</FONT>) ) {
+<FONT CLASS="LN">09</FONT><A NAME="209"></A>                        sb.append(<FONT CLASS="StringLiteral">"\\u"</FONT>)
+<FONT CLASS="LN">10</FONT><A NAME="210"></A>                            .append(hex( (c &gt;&gt; <FONT CLASS="IntegerLiteral">12</FONT>) &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>))
+<FONT CLASS="LN">11</FONT><A NAME="211"></A>                            .append(hex( (c &gt;&gt; <FONT CLASS="IntegerLiteral">8</FONT>) &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>))
+<FONT CLASS="LN">12</FONT><A NAME="212"></A>                            .append(hex( (c &gt;&gt; <FONT CLASS="IntegerLiteral">4</FONT>) &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>))
+<FONT CLASS="LN">13</FONT><A NAME="213"></A>                            .append(hex(c &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>));
+<FONT CLASS="LN">14</FONT><A NAME="214"></A>                    }
+<FONT CLASS="LN">15</FONT><A NAME="215"></A>                    <FONT CLASS="Else">else</FONT> {
+<FONT CLASS="LN">16</FONT><A NAME="216"></A>                        sb.append(c);
+<FONT CLASS="LN">17</FONT><A NAME="217"></A>                    }
+<FONT CLASS="LN">18</FONT><A NAME="218"></A>            }
+<FONT CLASS="LN">19</FONT><A NAME="219"></A>        }
+<FONT CLASS="LN">20</FONT><A NAME="220"></A>        <FONT CLASS="Return">return</FONT> sb.toString();
+<FONT CLASS="LN">21</FONT><A NAME="221"></A>    }
+<FONT CLASS="LN">22</FONT><A NAME="222"></A>
+<FONT CLASS="LN">23</FONT><A NAME="223"></A>    <FONT CLASS="Private">private</FONT> <FONT CLASS="Char">char</FONT> hex(<FONT CLASS="Int">int</FONT> val) {
+<FONT CLASS="LN">24</FONT><A NAME="224"></A>        <FONT CLASS="Return">return</FONT> hexidecimals[ (val &amp; <FONT CLASS="IntegerLiteral">0xF</FONT>)];
+<FONT CLASS="LN">25</FONT><A NAME="225"></A>    }
+<FONT CLASS="LN">26</FONT><A NAME="226"></A>
+<FONT CLASS="LN">27</FONT><A NAME="227"></A>}
+<FONT CLASS="LN">28</FONT><A NAME="228"></A></pre>
+</BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/packages.html
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/packages.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/packages.html	(revision 14989)
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+<HEAD>
+<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
+<TITLE>AntInstaller (Java2HTML)
+</TITLE>
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+</HEAD>
+<BODY><DIV ID="PreIndex">
+<FONT size="+1" CLASS="FrameHeadingFont" ID="PreIndexTitle"><A HREF="front.html" TARGET="SourceFrame">AntInstaller</A></FONT>
+<BR> <FONT CLASS="FrameItemFont"><A HREF="AllClasses.html" TARGET="packageFrame">All Classes</A></FONT>
+<BR> <FONT size="+1" CLASS="FrameHeadingFont">Packages</FONT><DIV ID="PackagesContent">
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.runtime.exe.index.html" TARGET="packageFrame">org.tp23.antinstaller.runtime.exe</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.taskdefs.index.html" TARGET="packageFrame">org.tp23.antinstaller.taskdefs</A></FONT><BR>
+<FONT CLASS="FrameItemFont"><A HREF="org.tp23.antinstaller.util.index.html" TARGET="packageFrame">org.tp23.antinstaller.util</A></FONT></DIV></DIV></BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/java2html/ext/stylesheet.css
===================================================================
--- /release-kits/shared/ant-installer/web/java2html/ext/stylesheet.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/java2html/ext/stylesheet.css	(revision 14989)
@@ -0,0 +1,190 @@
+/* Stylesheet for java2html pages */
+/* background-color: #294563; */
+/* light : #4c6c8f */
+
+/* Core HTML - start */
+body {
+	color: #000000;
+	background-color: #FFFFFF;
+        margin: 0px;
+        margin-top: 0px;
+        padding-left: 0px;
+        padding-top: 0px;
+        padding-bottom: 20px;
+        border: none;
+        font-size: 12px;
+        font-family: Helvetica,Arial,sans;
+}
+
+img {
+	border: 0px;
+}
+/* Windose fixes */
+img#logo {
+	filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../images/ant-install-small.png',sizingMethod='scale');
+	border: 0px;
+	position: absolute;
+	top: 3px;
+	left: 10px;
+}
+
+#FrontPage{
+        padding-top: 0px;
+        margin-top: 0px;
+        font-size: 12px;
+}
+#FrontPageContent{
+        padding: 10px;
+}
+#HeaderTitle h2{
+	color: #FFFFFF;
+	background: url("../../images/antcolor.png") repeat-x;
+	font-family: Verdana,Helvetica,Arial,sans-serif;
+	font-size: 36px;
+	font-weight: bold;
+	margin: 0px;
+	padding: 0px;
+	padding-left: 100px;
+	height: 64px;
+}
+#PreIndexTitle {
+    background-color: #294563;
+	margin-left: 0px;
+}
+#PreIndexTitle a {
+
+}
+
+/* Header/Footer Colours */
+#Header  { 
+        color: #FFFFFF;
+        background-color: #294563;
+        padding: 4px;
+        margin: 0px;
+        border: solid 1px ButtonShadow;
+        border-top-width: 0px;
+        border-left-width: 0px;
+        border-right-width: 0px;
+        font-size: 18px;
+        font-family: Helvetica,Arial,sans;
+}
+.FrameHeadingFont{
+        color: #FFFFFF;
+        background-color: #294563;
+        padding-right: 0px;
+        display: block;
+        padding-left: 6px;
+}
+
+.FrameHeadingFont a:visited{
+        color: #FFFFFF;
+        background-color: #294563;
+}
+.FrameItemFont a{
+	padding-left: 6px;
+	font-size: 14px;
+
+}
+table.Header td font{
+	font-weight: bold;
+}
+
+a {
+	text-decoration: none;
+	color: #294563;
+}
+a:link {
+	color: #294563;
+}
+a:visited {
+	color: #294563;
+}
+a:hover {
+	text-decoration: underline;
+	color: #294563;
+}
+a:active {
+	color: #294563;
+}
+
+
+/* Line Number */
+.LN     { 
+	color: #BBBBBB;  
+	background-color:#FFFFFF;
+	padding-right:4px;
+}
+
+/* Link Colours */
+.Classes A:link		{ color: #000000; text-decoration:underline;}
+.Classes A:visited	{ color: #000000; text-decoration:underline;}
+.Classes PRE 		{ background-color:#FFFFFF; color: #000000; }
+PRE.Classes  		{ 
+	background-color:#FFFFFF; 
+	color: #000000; 
+	border-top: solid 1px ButtonShadow;
+	border-bottom: solid 1px ButtonShadow;
+	padding-bottom: 20px;
+}
+
+/* Token Colours */
+.CharacerLiteral	{ color: #FF00FF; }
+.StringLiteral		{ color: #FF00FF; }
+.SingleLineComment	{ color: #008000; }
+.FormalComment		{ color: #008000; }
+.MultiLineComment	{ color: #008000; }
+.Abstract		{ color: #0000FF ; font-weight: bold }
+.Boolean		{ color: #0000FF ; font-weight: bold }
+.Break			{ color: #0000FF ; font-weight: bold }
+.Byte			{ color: #0000FF ; font-weight: bold }
+.Case			{ color: #0000FF ; font-weight: bold }
+.Catch			{ color: #0000FF ; font-weight: bold }
+.Char			{ color: #0000FF ; font-weight: bold }
+.Class			{ color: #0000FF ; font-weight: bold }
+.Const			{ color: #0000FF ; font-weight: bold }
+.Continue		{ color: #0000FF ; font-weight: bold }
+.Default		{ color: #0000FF ; font-weight: bold }
+.Do			{ color: #0000FF ; font-weight: bold }
+.Double		{ color: #0000FF ; font-weight: bold }
+.Else			{ color: #0000FF ; font-weight: bold }
+.Extends		{ color: #0000FF ; font-weight: bold }
+.False			{ color: #0000FF ; font-weight: bold }
+.Final			{ color: #0000FF ; font-weight: bold }
+.Finally		{ color: #0000FF ; font-weight: bold }
+.Float			{ color: #0000FF ; font-weight: bold }
+.For			{ color: #0000FF ; font-weight: bold }
+.Goto			{ color: #0000FF ; font-weight: bold }
+.If			{ color: #0000FF ; font-weight: bold }
+.Implements		{ color: #0000FF ; font-weight: bold }
+.Import		{ color: #0000FF ; font-weight: bold }
+.InstanceOf		{ color: #0000FF ; font-weight: bold }
+.Int			{ color: #0000FF ; font-weight: bold }
+.Interface		{ color: #0000FF ; font-weight: bold }
+.Long			{ color: #0000FF ; font-weight: bold }
+.Native		{ color: #0000FF ; font-weight: bold }
+.New			{ color: #0000FF ; font-weight: bold }
+.Package		{ color: #0000FF ; font-weight: bold }
+.Private		{ color: #0000FF ; font-weight: bold }
+.Protected		{ color: #0000FF ; font-weight: bold }
+.Public		{ color: #0000FF ; font-weight: bold }
+.Return		{ color: #0000FF ; font-weight: bold }
+.Short			{ color: #0000FF ; font-weight: bold }
+.Static		{ color: #0000FF ; font-weight: bold }
+.Super			{ color: #0000FF ; font-weight: bold }
+.Switch		{ color: #0000FF ; font-weight: bold }
+.Synchronized		{ color: #0000FF ; font-weight: bold }
+.This			{ color: #0000FF ; font-weight: bold }
+.Throw			{ color: #0000FF ; font-weight: bold }
+.Throws		{ color: #0000FF ; font-weight: bold }
+.Transient		{ color: #0000FF ; font-weight: bold }
+.True			{ color: #0000FF ; font-weight: bold }
+.Try			{ color: #0000FF ; font-weight: bold }
+.Void			{ color: #0000FF ; font-weight: bold }
+.Volatile		{ color: #0000FF ; font-weight: bold }
+.While			{ color: #0000FF ; font-weight: bold }
+.StrictFP			{ color: #0000FF ; font-weight: bold }
+.IntegerLiteral	{ color: #000000 }
+.DecimalLiteral	{ color: #000000 }
+.HexLiteral		{ color: #000000 }
+.OctalLiteral		{ color: #000000 }
+.FloatPointLiteral	{ color: #000000 }
Index: /release-kits/shared/ant-installer/web/js/menu.js
===================================================================
--- /release-kits/shared/ant-installer/web/js/menu.js	(revision 14989)
+++ /release-kits/shared/ant-installer/web/js/menu.js	(revision 14989)
@@ -0,0 +1,45 @@
+var WIDTH = 200;
+var showing = false;
+var contentsPanel = null;
+
+function toggleMenu(){
+	contentsPanel = document.getElementById('contents-panel');
+	toggleAnchor = document.getElementById('toggle');
+	if(showing) {
+		hideMenu();
+		showing = false;
+		toggleAnchor.innerHTML = "show menu";
+	}
+	else {
+		showMenu();
+		showing = true;
+		toggleAnchor.innerHTML = "hide menu";
+	}
+}
+
+function showMenu(){
+	if (contentsPanel.style.left != "0px") {
+		doShow(WIDTH * -1);
+	}
+}
+
+function hideMenu(){
+	if (contentsPanel.style.left != "- " + WIDTH + "px") {
+		doHide(0);
+	}
+}
+
+function doHide(pos){
+	contentsPanel.style.left = pos + "px";
+	if(pos >= WIDTH * -1){
+		pos = pos - 20;
+		setTimeout("doHide(" + pos + ")", 10);
+	}
+}
+function doShow(pos){
+	contentsPanel.style.left = pos + "px";
+	if(pos < 0){
+		pos = pos + 20;
+		setTimeout("doShow(" + pos + ")", 10);
+	}
+}
Index: /release-kits/shared/ant-installer/web/js/sstree.js
===================================================================
--- /release-kits/shared/ant-installer/web/js/sstree.js	(revision 14989)
+++ /release-kits/shared/ant-installer/web/js/sstree.js	(revision 14989)
@@ -0,0 +1,50 @@
+// tree curtesy http://sstree.tigris.org
+function toggle(elm) {
+ var newDisplay = "none";
+ elm.style.backgroundImage = 'url(branding/images/sstree/folder-closed.gif)';
+ var e = elm.nextSibling; 
+ while (e != null) {
+  if (e.tagName == "OL" || e.tagName == "ol") {
+   if (e.style.display == "none") {
+    newDisplay = "block";
+    elm.style.backgroundImage = 'url(branding/images/sstree/folder-open.gif)';
+   }
+   break;
+  }
+  e = e.nextSibling;
+ }
+ while (e != null) {
+  if (e.tagName == "OL" || e.tagName == "ol") e.style.display = newDisplay;
+  e = e.nextSibling;
+ }
+}
+
+function collapseAll(divId, tags) {
+ for (i = 0; i < tags.length; i++) {
+  var lists = document.getElementById(divId).getElementsByTagName(tags[i]);
+  for (var j = 0; j < lists.length; j++) {
+   if(lists[j].className == "init-hidden"){
+    lists[j].style.display = "none";
+   }
+   else{
+   	// here set default icon
+   	var a = lists[j].parentNode.getElementsByTagName("a")[0];
+   	if(a.tagName == "A"){
+   	 a.style.backgroundImage = 'url(branding/images/sstree/folder-open.gif)';
+   	}
+   }
+  }
+  var e = document.getElementById("root");
+  e.style.display = "block";
+ }
+}
+
+function openBookMark() {
+ var h = location.hash;
+ if (h == "") h = "default";
+ if (h == "#") h = "default";
+ var ids = h.split(/[#.]/);
+ for (i = 0; i < ids.length; i++) {
+  if (ids[i] != "") toggle(document.getElementById(ids[i]));
+ }
+}
Index: /release-kits/shared/ant-installer/web/js/winfix.js
===================================================================
--- /release-kits/shared/ant-installer/web/js/winfix.js	(revision 14989)
+++ /release-kits/shared/ant-installer/web/js/winfix.js	(revision 14989)
@@ -0,0 +1,6 @@
+function winFix(){
+	if(navigator.appName.indexOf('Microsoft') > -1) {
+		var img = document.getElementById('logo');
+		img.src = 'images/space.gif'
+	}
+}
Index: /release-kits/shared/ant-installer/web/licenses.html
===================================================================
--- /release-kits/shared/ant-installer/web/licenses.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/licenses.html	(revision 14989)
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Licenses</h2>
+			AntInstaller is undergoing a licensing change to make it compatible with Apache projects.  The new license is the standard Apache 2.0 License.  This means the license will be <i>less</i> restrictive.  You may have noticed the change in the logo on the site.  This is due to the necessity to provide Apache licensed content for all the components of the installer.  If you don't like the new logo and feel you could do better, please send 'em in, but you must be willing to license them under Apache 2.0.
+<br/><br/>
+			The following license apply to the various components of this project, they are all friendly and encourage open source development.
+			<br/>
+			<ul>
+				<li><a href="licenses/LICENSE-ant-install.txt">AntInstall</a></li>
+				<li><a href="licenses/LICENSE-sysout.txt">Sysout</a></li>
+				<li><a href="licenses/LICENSE-ant.txt">Apache Ant</a></li>
+				<li><a href="licenses/LICENSE-dom.txt">DOM</a></li>
+				<li><a href="licenses/LICENSE-sax.txt">SAX</a></li>
+				<li><a href="licenses/LICENSE-xerces.txt">Xerces</a></li>
+				<li><a href="licenses/LICENSE-jgoodies.txt">JGoodies</a></li>
+			</ul>
+			Unfortuntely the Metouia look and feel has had to be dropped due to the new licenses since it is GPL.
+			It is still easy to implement this look and feel in your own installers but check the bug reports since there 
+			is a known issue with one of the input types.
+			<br/>
+			<br/>
+			A modifed JGoodies is still the default look and feel since it is licensed under a BSD license that is compatible with Apache.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/licenses/LICENSE-ant-install.txt
===================================================================
--- /release-kits/shared/ant-installer/web/licenses/LICENSE-ant-install.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/web/licenses/LICENSE-ant-install.txt	(revision 14989)
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
Index: /release-kits/shared/ant-installer/web/licenses/LICENSE-ant.txt
===================================================================
--- /release-kits/shared/ant-installer/web/licenses/LICENSE-ant.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/web/licenses/LICENSE-ant.txt	(revision 14989)
@@ -0,0 +1,203 @@
+/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      "License" shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      "Licensor" shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      "Legal Entity" shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      "control" means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      "You" (or "Your") shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      "Source" form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      "Object" form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      "Work" shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      "Derivative Works" shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      "Contribution" shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, "submitted"
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *      "Contributor" shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a "NOTICE" text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an "AS IS" BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets "[]"
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same "printed page" as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] [name of copyright owner]
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   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.
+ */
Index: /release-kits/shared/ant-installer/web/licenses/LICENSE-dom.txt
===================================================================
--- /release-kits/shared/ant-installer/web/licenses/LICENSE-dom.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/web/licenses/LICENSE-dom.txt	(revision 14989)
@@ -0,0 +1,71 @@
+This license came from:
+http://www.w3.org/Consortium/Legal/copyright-software-19980720
+
+
+W3C® SOFTWARE NOTICE AND LICENSE
+Copyright © 1994-2001 World
+Wide Web Consortium, <a href="http://www.w3.org/">World
+Wide Web Consortium</a>, (<a href=
+"http://www.lcs.mit.edu/">Massachusetts Institute of
+Technology</a>, <a href="http://www.inria.fr/">Institut National de
+Recherche en Informatique et en Automatique</a>, <a href=
+"http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/
+
+This W3C work (including software, documents, or other related
+items) is being provided by the copyright holders under the
+following license. By obtaining, using and/or copying this work,
+you (the licensee) agree that you have read, understood, and will
+comply with the following terms and conditions:
+Permission to use, copy, modify, and distribute this software
+and its documentation, with or without modification,  for any
+purpose and without fee or royalty is hereby granted, provided that
+you include the following on ALL copies of the software and
+documentation or portions thereof, including modifications, that
+you make:
+
+The full text of this NOTICE in a location viewable to users of
+the redistributed or derivative work.
+
+Any pre-existing intellectual property disclaimers, notices, or
+terms and conditions. If none exist, a short notice of the
+following form (hypertext is preferred, text is permitted) should
+be used within the body of any redistributed or derivative code:
+"Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of
+Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/"
+
+Notice of any changes or modifications to the W3C files,
+including the date changes were made. (We recommend you provide 
+URIs to the location from which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
+COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
+USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
+PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
+SOFTWARE OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in
+advertising or publicity pertaining to the software without
+specific, written prior permission. Title to copyright in this
+software and any associated documentation will at all times remain
+with copyright holders.
+____________________________________
+This formulation of W3C's notice and license became active on
+August 14 1998 so as to improve compatibility with GPL. This
+version ensures that W3C software licensing terms are no more
+restrictive than GPL and consequently W3C software may be
+distributed in GPL packages. See the older formulation for the
+policy prior to this date. Please see our Copyright FAQ for common 
+questions about using materials from
+our site, including specific terms and conditions for packages like
+libwww, Amaya, and Jigsaw. 
+Other questions about this notice can be
+directed to site-policy@w3.org.
+
+webmaster
Index: /release-kits/shared/ant-installer/web/licenses/LICENSE-jgoodies.txt
===================================================================
--- /release-kits/shared/ant-installer/web/licenses/LICENSE-jgoodies.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/web/licenses/LICENSE-jgoodies.txt	(revision 14989)
@@ -0,0 +1,31 @@
+
+           The BSD License for the JGoodies Looks
+           ======================================
+
+Copyright (c) 2001-2004 JGoodies Karsten Lentzsch. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without 
+modification, are permitted provided that the following conditions are met:
+
+ o Redistributions of source code must retain the above copyright notice, 
+   this list of conditions and the following disclaimer. 
+    
+ o Redistributions in binary form must reproduce the above copyright notice, 
+   this list of conditions and the following disclaimer in the documentation 
+   and/or other materials provided with the distribution. 
+    
+ o Neither the name of JGoodies Karsten Lentzsch nor the names of 
+   its contributors may be used to endorse or promote products derived 
+   from this software without specific prior written permission. 
+    
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: /release-kits/shared/ant-installer/web/licenses/LICENSE-metouia.txt
===================================================================
--- /release-kits/shared/ant-installer/web/licenses/LICENSE-metouia.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/web/licenses/LICENSE-metouia.txt	(revision 14989)
@@ -0,0 +1,148 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+Version 2.1, February 1999
+
+Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.
+
+This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.
+
+When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.
+
+To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.
+
+For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.
+
+We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.
+
+To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.
+
+Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.
+
+Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.
+
+When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.
+
+We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.
+
+For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.
+
+In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.
+
+Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.
+
+The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.
+
+GNU LESSER GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".
+
+A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.
+
+The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)
+
+"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.
+
+1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+a) The modified work must itself be a software library.
+
+b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.
+
+c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.
+
+d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.
+
+(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
+
+Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.
+
+This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
+
+4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.
+
+If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.
+
+5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
+
+However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
+
+When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.
+
+If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)
+
+Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.
+
+6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
+
+You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
+
+a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
+
+b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
+
+c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
+
+d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
+
+e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
+
+For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.
+
+7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
+
+a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.
+
+b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
+
+8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
+
+10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.
+
+11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.
+
+14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+ 
Index: /release-kits/shared/ant-installer/web/licenses/LICENSE-sax.txt
===================================================================
--- /release-kits/shared/ant-installer/web/licenses/LICENSE-sax.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/web/licenses/LICENSE-sax.txt	(revision 14989)
@@ -0,0 +1,20 @@
+This license came from: http://www.megginson.com/SAX/copying.html
+  However please note future versions of SAX may be covered 
+  under http://saxproject.org/?selected=pd
+
+
+This page is now out of date -- see the new SAX site at 
+http://www.saxproject.org/ for more up-to-date
+releases and other information. Please change your bookmarks.
+
+
+SAX2 is Free!
+
+I hereby abandon any property rights to SAX 2.0 (the Simple API for
+XML), and release all of the SAX 2.0 source code, compiled code, and
+documentation contained in this distribution into the Public Domain.
+SAX comes with NO WARRANTY or guarantee of fitness for any
+purpose.
+
+David Megginson, david@megginson.com
+2000-05-05
Index: /release-kits/shared/ant-installer/web/licenses/LICENSE-sysout.txt
===================================================================
--- /release-kits/shared/ant-installer/web/licenses/LICENSE-sysout.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/web/licenses/LICENSE-sysout.txt	(revision 14989)
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
Index: /release-kits/shared/ant-installer/web/licenses/LICENSE-xerces.txt
===================================================================
--- /release-kits/shared/ant-installer/web/licenses/LICENSE-xerces.txt	(revision 14989)
+++ /release-kits/shared/ant-installer/web/licenses/LICENSE-xerces.txt	(revision 14989)
@@ -0,0 +1,56 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ *
+ * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights 
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
Index: /release-kits/shared/ant-installer/web/lookandfeels.html
===================================================================
--- /release-kits/shared/ant-installer/web/lookandfeels.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/lookandfeels.html	(revision 14989)
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+			
+			<h2>Look And Feel</h2>
+			
+			The Swing GUI can be shown with a configurable appearance using Java's pluggable look and feel feature.  AntInstaller includes a look and feel by <a href="http://www.jgoodies.com/">JGoodies</a> which is now licenced under a BSD license.<br/><br/>
+			
+			Since JGoodies is under a good open source license it has been possible to make minor modifications to 
+			the code to enable antialiasing of text components.  This is more resource intensive but looks a lot better.
+			In order not to clash with the original JGoodies code the modifications have be repackaged as <code>org.tp23.jgoodies.*</code>
+			so both UIs can be on the classpath at the sametime.  In AntInstaller the antialiasing can be activated with the antialiased attribute
+			in the installer element.  <br/><br/>
+			
+			When designing a cross platform installer remember that Micro$oft look and feels will not run on other platforms and will throw exceptions.  Some of the JGoodies look and feels have the same issue, so check first.<br/><br/>
+			
+			There is small look and feel included with AntInstaller that is a simple modification of the MetalLookAndFeel that uses a monochrome theme and less use of bold fonts, the font size is also reduced one point.  This look and feel has been included to enable installers to be delivered with a consistent look on multiple platforms and have space on the buttons and labels to show the default English text in the installer. The download size is also reduced. For more space for text the width of the installer can be increased with the <code>wide</code> attribute of the <a href="manual.html#installer">installer</a> element in the configuration file.<br/>
+			The purple theme has been removed because it looks naf! (sorry Sun but its true).
+			<br/><br/>
+
+			<h2>Setting the look and feel</h2>
+			
+			To set the look and feel for the swing GUI the <code>lookAndFeel</code> attribute of the <code>installer</code> element in <code>antinstall-config.xml</code> should be set.  The value of the lookAndFeel attribute should be a fully qualified class name or one of the following values that have special treatment.
+			<ul>
+				<li><code>null</code> - No alterations are made to the look and feel.</li>
+				<li><code>greymetal</code> - The monochrome metal look and feel is used. Equivalent to <code>org.tp23.antinstaller.renderer.swing.plaf.ModMetalLookAndFeel</code>.</li>
+				<li><code>native</code> - The native look and feel of the computer on which the installer is run is used. The value is that returned by <code>UIManager.getSystemLookAndFeelClassName()</code>.</li>
+				<li><code>jgoodies</code> - The JGoodies look and feel <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code> is used.</li>
+			</ul>
+			
+			If the lookAndFeel attribute is missing <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code> is the default.<br/><br/>
+			
+			If the default look and feel or greymetal is specified in the configuration the <a href="installertask.html">Ant task</a> will include the correct classes automatically in the self-extracting or non-extracting Jar.  If a custom look and feel is to be used the classes must be added specifically to the classpath or inside the Jar.<br/><br/>
+			
+			If the self-extracting jar is used, in order to show the progress panel with the correct look and feel, the value in the configuration file can not be used since it is not yet loaded.  An additional element <code>Look-And-Feel</code> to the <code>META-INF/MANIFEST.mf</code> file should be added.<br/>
+			Provided the installer is build with the <a href="installertask.html">Ant task</a> this is handled automaticaly.
+			
+			<h2>Screenshots</h2>
+			JGoodies - <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code><br/>
+			<img src="images/jgoodies.xp.snapshot.png" alt="JGoodies screenshot"/><br/><br/>
+			
+			Metouia - <code>net.sourceforge.mlf.metouia.MetouiaLookAndFeel</code><br/>
+			<img src="images/metouia.snapshot.png" alt="Metouia screenshot"/><br/><br/>
+			
+			Grey Metal - <code>org.tp23.antinstaller.renderer.swing.plaf.ModLookAndFeel</code><br/>
+			<img src="images/greymetal.snapshot.png" alt="Greymetal screenshot"/><br/><br/>
+
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual-ant.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual-ant.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual-ant.html	(revision 14989)
@@ -0,0 +1,37 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+</head>
+
+<frameset rows="60px,*" border="no">
+	<frame src="headerframe.html" name="headerFrame" marginheight="0" marginwidth="0" frameborder="0" scrolling="no">
+	<frameset cols="26%,74%" bordercolor="Highlight" border="2" >
+		<frame src="manual/manual/toc.html" name="navFrame" marginheight="0" marginwidth="0" frameborder="1">
+		<frame src="manual/manual/cover.html" name="mainFrame" marginheight="0" marginwidth="0" frameborder="1">
+	</frameset>
+</frameset>
+<noframes>
+<H2>Apache Ant User Manual</H2>
+
+<a href="toc.html">Apache Ant User Manual</a></noframes>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual-print.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual-print.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual-print.html	(revision 14989)
@@ -0,0 +1,1442 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style-print.css" type="text/css" rel="stylesheet">
+  <link rel="SHORTCUT ICON" href="images/antinstaller-icon.png">
+  <meta name="keywords"
+ content="Ant, installer, AntInstaller, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+</head>
+<body>
+	<div class="tpheadertitle">AntInstaller</div>
+	<div class="tpcontent">
+<!-- JSP start -->
+
+
+<h2>Manual</h2>
+
+To set up an AntInstall there are a few requirements.
+			<ul>
+				<li>The <a href="#config"><code>antinstall-config.xml</code></a> file to describe
+		the installation</li>
+				<li>The <a href="#configbuild"><code>build.xml</code></a> ant script to run, with targets
+		that should match values in <code>antinstall-config.xml</code> </li>
+				<li>The resources to run the installer e.g. ant-installer.jar
+		and ant.jar</li>
+				<li>The binarires and resources to install for your application</li>
+				<li>The installer can be delivered as a <a href="#extractor">self extracting JAR</a> which extracts all the files on the target machine prior to running the installer.</li>
+				<li>The installer can be run directly from the Jar so the resources are not extracted until Ant is run. This is the recommended way to package an installer, see <a href="#non-extractor">non extracting JAR</a>.</li>
+				<li>All config files, classes and resources should then be packaged into a jar, this can be easily achieved with a dedicated <a href="installertask.html">Ant task</a>.</li>
+				<li>If not using a self or non extracting jar, <a href="#scripts">scripts</a> to run the installer would be required e.g. <code>install.sh</code></li>
+			</ul>
+			<a name="config"></a>
+			      <h3><code>antinstall-config.xml</code></h3>
+
+This part of the guide is the reference manual for the
+configuration of <code>antinstall-config.xml</code>. The config file
+is an XML file that describes the pages to display to the user,
+and the input the user must enter. <br/>
+A simple example might be a License page to show the license of the
+software, followed by a page asking the user for their name and email.
+The next page would allow the user to choose the components to install
+(binaries, source, documentation) and the progress page with an install
+button to perform the installation. <br/>
+        <br/>
+The config file must always have a root element installer with some
+requried attributes as follows. <br/>
+        <br/>
+			<pre>&lt;installer<br/>	ui="swing,text"<br/>	verbose="false"<br/>	lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"<br/>	name="Test Installer"<br/>	windowIcon="/resources/gkmain_inv.png"<br/>	defaultImageResource="/resources/greens.png"<br/>	minJavaVersion="1.4"&gt;<br/>			...<br/>			</pre>
+The file is then made up of <code>page</code> elements containing <code>input</code>
+elements.
+<br/>The last page of the installer must be a <a href="#pageprogress">Progress Page</a>. 
+If packaging the installer with the <a href="installertask.html">Ant task</a> the <code>antinstall-config.xml</code> file can be validated.<br/>
+When setting values, similar to Ant, ${my.property} syntax can be used for default values and comments, see <a href="#refs">dynamic references</a>.<br/>
+To determin which pages are shown and which are ommitted, see <a href="#pagedisplay">Page displaying</a>.<br/><br/>
+<div class="tpnoprint">
+An example antinstall-config.xml file can be seen <a href="antinstall-config-example.html" title="Example config" >here</a>.
+
+        <br/><br/>
+        <ul>
+          <li><a href="#installer">Installer</a></li>
+          <li><a href="#page">Pages</a>
+						<ul>
+							<li><a href="#pagesplash">Splash Page</a></li>
+							<li><a href="#pagelicense">License Page</a></li>
+							<li><a href="#pageinput">Input Page</a></li>
+							<li><a href="#pageprogress">Progress Page</a></li>
+						</ul>
+					</li>
+          <li><a href="#inputtypes">Input types</a>
+						<ul>
+							<li>Text fields
+								<ul>
+									<li><a href="#comment">Comment</a></li>
+									<li><a href="#text">Unvalidated Text</a></li>
+									<li><a href="#validated">Validated Text</a></li>
+									<li><a href="#extvalidated">Externally Validated Text</a></li>
+									<li><a href="#date">Date</a></li>
+									<li><a href="#password">Password Text</a></li>
+									<li><a href="#password-confirm">Confirm Password</a></li>
+								</ul>
+							</li>
+							<li>Target fields
+								<ul>
+									<li><a href="#target">Target</a></li>
+									<li><a href="#target-select">Target Select</a></li>
+								</ul>
+							</li>
+							<li>File fields
+								<ul>
+									<li><a href="#file">File</a></li>
+									<li><a href="#directory">Directory</a></li>
+									<li><a href="#app-root">Application Root</a></li>
+								</ul>
+							</li>
+							<li>Selection fields
+								<ul>
+									<li><a href="#checkbox">Checkbox</a></li>
+									<li><a href="#select">Select</a></li>
+									<li><a href="#large-select">Large Select</a></li>
+								</ul>
+							</li>
+						</ul>
+					</li>
+		<li><a href="#hiddentypes">Hidden elements</a>
+						<ul>
+							<li><a href="#conditional">Conditional</a></li>
+							<li><a href="#hidden">Hidden</a></li>
+						</ul>
+					</li>
+		</ul>
+</div>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="installer">&lt;installer&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The <code>installer</code> element is
+the root element of the config and has the following attributes.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>ui</td>
+              <td>Indicates the supported installation modes from the following four values <i>text</i>, <i>swing</i>,  <i>swing-auto</i> and <i>text-auto</i>.  <i>swing</i> indicates the GUI can be shown, <i>text</i> means the commandline interface can be shown. <a href="auto.html" title="-auto installs"><i>-auto</i> installs</a> are silent installs that read the properties from a file, if available, instead of running the full UI. Ensure you understand the consequences before enabling <i>-auto</i> builds.  <br/>
+              This attribute should be a comma separated list of values (whitespace is stripped).</td>
+              <td>swing,text, text-auto,swing-auto</td>
+            </tr>
+            <tr>
+              <td>loadDefaults</td>
+              <td>This flag can be true, false or prompt. Indicates what AntInstaller should do
+              if it finds existing properties in a file.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>verbose</td>
+              <td>Print more info the the install log file and more
+info in the <code>ant.install.properties</code> file. N.B. the properties file may not be written if the installer
+can not write to the current directory.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>debug</td>
+              <td>Setting this flag prevents the temporary directory from being deleted on exit, this is useful for debugging
+							install scripts.  It should normally be set to false or ommited for a final installer. </td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>lookAndFeel</td>
+              <td>The <a href="lookandfeels.html" title="LookAndFeel">LookAndFeel</a> class for the installer or one of the following special values.
+<ul>
+	<li><code>"null"</code> - The string "null" is used to set the default LookAndFeel determined by Java (no extra classes required)</li>
+	<li><code>"jgoodies"</code> - Used to set the default LookAndFeel for AntInstaller org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel 
+	(<code>jgoodies-edited-1_2_2.jar</code> or it contents must be on the classpath)</li>
+	<li><code>"native"</code> - Used to set the native LookAndFeel for the runtime Operating System (no extra classes required)</li>
+	<li><code>"greymetal"</code> - Used to set the cutdown MetalLookAndFeel included with AntInstaller.  This is the same as MetalLookAndFeel with a  grey theme and no bold fonts unless specified in the <code>antinstall-config.xml</code> file (no extra classes required)</li>
+</ul>
+If the lookAndFeel attribute is missing <code>jgoodies</code> is assumed.  If the LookAndFeel can not be loaded a message will be added to the log file and the install will continue with the Java default.
+				</td>
+              <td>
+				greymetal<br/>
+				jgoodies</td>
+            </tr>
+            <tr>
+              <td>name</td>
+              <td>The name of the installer, this will appear in the
+title of the installer GUI window.</td>
+              <td>My Installer</td>
+            </tr>
+            <tr>
+              <td>windowIcon</td>
+              <td>This is the resource name of the icon for the
+installer window. It is a string that is used to load the resource from
+the classpath so the image must be in one of the jars on the classpath
+of the install start script.  In the self installer it must be in the correct directory
+of the Jar.</td>
+              <td>/resources/gkmain_inv.png</td>
+            </tr>
+            <tr>
+              <td>defaultImageResource</td>
+              <td>This is the resource image used for the top of the
+installer GUI by default, it can be overridden for individual pages.</td>
+              <td>/resources/greens.png</td>
+            </tr>
+            <tr>
+              <td>minJavaVersion</td>
+              <td>The minimum Java version for the installer, this is
+supported as of AntInstaller 0.8beta do disable this feature remove the attribute.</td>
+              <td>1.4</td>
+            </tr>
+            <tr>
+              <td>finishButtonText</td>
+              <td>The text displayed on the install button. If not specified, the default is "Install".  This has been
+							added since Antinstaller can be used as a GUI for other Ant builds, in which case "Build" would
+							be more appropriate.</td>
+              <td>Install</td>
+            </tr>
+            <tr>
+              <td>antialiased</td>
+              <td>If this attribute is set to <code>true</code> and the LookAndFeel is <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code> or <code>jgoodies</code> the Swing GUI will render using Java 2D antialiasing for the text.  This is resource intensive and may slow the GUI down unacceptably on older PCs, but does look better.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>wide</td>
+              <td>If this attribute is set the width of the installer GUI can be configured.  The format is 
+              <code>[window-size]:[label-width]</code></td>
+              <td>600:275</td>
+            </tr>
+            <tr>
+              <td>version</td>
+              <td>Defines a version for the installer, this attribute is optional and defaults to "0.0". However, if you want to support <a href="auto.html">automatic installs</a> (ui includes text-auto or swing-auto) this can be used to indicate that a new installer is not compatible with previous properties files.  If a new installer for an application is developed that requires new properties increment the major version and old properties files will not be loaded.  Increment the minor version if the properties are compatible but additional properties have been added and must be maually entered, text-auto and swing-auto builds will be forbidden.  <br/>
+              If the new version of the installer is a compatible version with the properties file found, it will load without errors.  No checking is done to ensure that this is logical. When delivering upgraded installers you should ensure that old properties file versions are compatible if you do not increment the version and support automatic installs.</td>
+              <td>1.0.2</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="page">&lt;page&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Pages entries in the XML file represent a
+single window in the installer moved through by the user by selecting
+"Next &gt;&gt;" (or pressing enter) all pages have the following
+atributes.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td><b>type</b></td>
+              <td>The type of page one of four options, progress,
+license, splash or input.</td>
+              <td>input</td>
+            </tr>
+            <tr>
+              <td>name</td>
+              <td>A unique name for the page.</td>
+              <td>User properties</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown at the top of the page.</td>
+              <td>Install Options</td>
+            </tr>
+            <tr>
+              <td>imageResource</td>
+              <td>The image to be shown at the top of the page, overriding the defaultImageResource defined
+							in the installer element.</td>
+              <td>Install Options</td>
+            </tr>
+            <tr>
+              <td>target</td>
+              <td>An ant target that will always be run from the <code>build.xml</code>
+file. This attribute is optional see the Target input type if you wish
+to show a targets that can be selected by the user.</td>
+              <td>clean</td>
+            </tr>
+            <tr>
+              <td>overflow</td>
+              <td>Setting this to true causes the Swing GUI to allow the page to extend past the normal height and for scrollbars
+              to be shown when the page overflows.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagesplash">&lt;page
+type="splash"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Displays a graphical image page in the Swing GUI</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>splashResource</td>
+              <td>The image resource used for the splash image. The resource must be available on the classpath
+							at runtime.</td>
+              <td>/resources/large-logo-image.png</td>
+            </tr>
+            <tr>
+              <td>altText</td>
+              <td>Alternative text for the console mode</td>
+              <td>Welcome to the installer app</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagetext">&lt;page
+type="text"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Displays an HTML page in swing and a text file in text mode.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>htmlResource</td>
+              <td>The resource used for the html page. The resource must be available on the classpath at runtime. <br/>
+              The HTML support is that of the Swing JTextPane which is very basic.  Embeded images and style sheets are refereced from the classpath. The following HTML will display an image from the classpath.  <br/>
+              <code>&lt;img src="/resources/image.png"&gt;</code><br/>
+              Property values are expanded in the file if variables of the form <code>${java.user.name}</code> are found.<br/>
+              </td>
+              <td>/resources/text.html</td>
+            </tr>
+            <tr>
+              <td>textResource</td>
+              <td>Alternative text for the console mode. <br/>
+              Property values are expanded in the file if a variable of the form ${java.user.name} are found.<br/></td>
+              <td>/resources/text.text</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagelicense">&lt;page
+type="license"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Shows a single license file in a
+scrollable window to the user.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>resource</td>
+              <td>The license text file resource, must be on the
+classpath.</td>
+              <td>/resources/GPL.txt</td>
+            </tr>
+            <tr>
+              <td>usePaging</td>
+              <td>In text mode this parameter stops the scrolling of the license text at 20 lines,
+							and provides options to view the next page or skip to the end.  The default is false.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pageinput">&lt;page
+type="input"&gt;</a>
+							</th>
+            <tr>
+              <td colspan="3">A page for adding input types listed
+below. An installer can have as many input pages as desired. </td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>ifTarget</td>
+              <td>This page will be show if the named target has previously been selected.  This can be used to 
+							conditionally show installation pages when certain parts of the <code>build.xml</code> script are to be run and not
+							if they are to be omitted.</td>
+              <td>documentation</td>
+            </tr>
+            <tr>
+              <td><a name="ifproperty">ifProperty</a></td>
+              <td>This page will be shown if the property has the correct value.  This can be used to 
+		conditionally show installation pages when certain properties match
+		The format of the property can be as simple as <code>${name}=value</code> or can combine tests on multiple properties such as <code>(${name}!=value) AND (${name2}^=value2)</code>.  There must be no spaces
+		and both the property and value are case sensitive.  It is a good idea to use a <code>select</code> input type
+		for the value since free text entered by the user is unlikely to match exactly in case and whitespace or use validated
+		text fields.  
+N.B. to run tasks based on properties consider the <a href="http://ant-contrib.sourceforge.net">ant-contrib</a> packages. <br/>
+		The new syntax allows for environment variable checks such as <code>${env.DISPLAY}=:0.0</code>
+		<br/><br/>
+		<b>N.B. the old syntax <code>name=value</code> does not work any more.</b> It is <b>not</b> possible to 
+		place an = sign in a property name.<br/>
+		e.g. <code>${prop.col=back}=#0000FF</code> will break the simple parser.
+		<br/><br/>
+		The following operators are supported:
+		<ul>
+			<li> = equals. not assignment as in Java</li>
+			<li> == equals same as above for those that wish to be specific</li>
+			<li> != not equals or null</li>
+			<li> $= ends with, the $ is used from regex for end of line</li>
+			<li> ^= starts with, again ^from regular expressions</li>
+			<li> += greater than, only for numbers</li>
+			<li> -= less than, only for numbers. The installer should validate to ensure the property is a valid number
+			or exceptions will be thrown.  The rather strange -=  and += syntax is used because &gt; and &lt;
+			must be escaped to &amp;gt; and &amp;lt; in XML attributes and the legibility
+			of the configuration files would be impared.</li>
+			<li> !=null not null, the property must be specified. This is usefull for testing the existence of environment variable for example ${env.ANT_HOME}!=null.  N.B. the empty string "" also tests to null, if a property exists
+			in the config file it <b>is</b> possible for the user to set the value to null by erasing the text in
+			a text entry type</li>
+			<li> ==null is null or empty</li>
+ 		 </ul>
+		  <br/><br/>
+		  The following logical operators are supported when combining property tests:
+		  <ul>
+			  <li>AND</li>
+			  <li>OR</li>
+		  </ul>
+			If logical operators are being used, each simple test must be enclosed in parentheses.<br/>
+				It is probably a bad idea to use any character that is not a letter or number in a property name
+				because these operators may be extended in the future
+			</td>
+		  <td>${myProperty}=value23<br/>
+		  	  (${myFirstProperty}=6) OR (${mySecondProperty}+=12)
+		  </td>
+            </tr>
+            <tr>
+              <td>postDisplayTarget</td>
+              <td>Post display targets are special Ant targets run after the page has been displayed.  Certain rules apply see <a href="posttargets.html" title="post display targets">post display targets</a></td>
+              <td>antinstaller-pagename</td>
+            </tr>
+
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pageprogress">&lt;page
+type="progress"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A page for showing the user the progress
+of the installation. This page contains the "Install" Button, so all
+installers should end with a progress page. Currently it is not checked
+that an installer ends with a progress page so the creator of the <code>antinstall-config.xml</code>
+should ensure it does.</td>
+            </tr>
+            <tr>
+              <td>showTargets</td>
+              <td>When this flag is true, in the Swing GUI, a graphical representation of 
+              the targets being run and the dependent targets found is displayed.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+<br/><a name="inputtypes"></a><h3>Input Types</h3>
+Input types represent fields in which users can input values or make selections. <br/>
+The input type element is
+also used to display text to the user.  While there is no limit to the number of comments or text you can add in the
+config file, the GUI only has a limited amount of space.  Check your config with your choosen Look And Feel to ensure
+that instructions are not cropped.<br/>
+All input types accept the <code>explanatoryText</code> attribute, where multi-line comments can be added.
+The GUI has a fixed width available for the <code>displayText</code> attribute which often does not provide much space.
+Single line comments can be added with the <code>comment</code> type.<br/>
+If anyone has a serious requirement to include more text that is currently possible post an RFE and I will look into 
+tool tip popups or a scrollable text box or perhaps instructions that can launch in a help window.  This has not been added yet
+since it is much more difficult to implement in the command line UI, and as yet we have no requirement.
+<br/><br/>
+				<table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="checkbox">&lt;checkbox&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The check box input is used for boolean
+input, a check box in the gui and a true false option on the command
+line.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be true or false.</td>
+              <td>my.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Enable all security options</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the check box.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>force</td>
+              <td>Force the option selected to be the default value.
+This can be used to indicate that the option is required. For example,
+an installer could be delivered where "Enable all security options" is
+always selected.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="comment">&lt;comment&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The comment input displays text to the
+user and does not accept any type of input.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>W</td>
+            </tr>
+            <tr>
+              <td>bold</td>
+              <td>Display the comment in bold, in the GUI version.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>title</td>
+              <td>Display the comment in a larger font in the GUI or in
+capitals in the command line.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="directory">&lt;directory&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The directory input allows the user to
+select a directory.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the directory.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select an installation directory</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the directory.  Empty defaultValue is accepted as of version beta0.8 provided that create and checkExists are false.</td>
+              <td>/var/log</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the directory for windows installations.</td>
+              <td>C:\Program Files\myapp</td>
+            </tr>
+            <tr>
+              <td>create</td>
+              <td>If this is true and the directory entered does not
+exist the user will be asked if the directory should be created.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>checkExists</td>
+              <td>If true the installation will not continue unless the
+directory selected exists. The user will have to select a directory
+that does exist, create it or cancel the install. If create is true and
+the directory does not exist the user simply has to agree to have the
+directory created.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="app-root">&lt;app-root&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The directory input allows the user to
+select a directory. The existence of files is then checked during
+validation to ensure the user has selected the correct directory. This
+can be used so a user can select the installation directory of a
+previously installed application. The directory can then be validated
+against 2 known files and 2 known directories that should exist.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the directory.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select an installation directory</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the directory.</td>
+              <td>/usr/local/jakarta-tomcat-4.0.1</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the directory for windows installations.</td>
+              <td>C:\Program Files\Existing Application</td>
+            </tr>
+            <tr>
+              <td>checkFile1</td>
+              <td>The relative path of a file based on the user
+selected directory. When the installer is run this file will be checked
+to see if it exists (optional).</td>
+              <td>conf/server.xml</td>
+            </tr>
+            <tr>
+              <td>checkFile2</td>
+              <td>A second file to check (optional).</td>
+              <td>conf/server.xml</td>
+            </tr>
+            <tr>
+              <td>checkDir1</td>
+              <td>The relative path of a directory based on the user
+selected directory (optional).</td>
+              <td>webapps</td>
+            </tr>
+            <tr>
+              <td>checkDir2</td>
+              <td>A second directory to check (optional).</td>
+              <td>conf</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="file">&lt;file&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The file input allows the user to select
+a file</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the file.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select the weblogic configuration file</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the file.</td>
+              <td>/var/log</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the file when installing on windows.</td>
+              <td>C:\log</td>
+            </tr>
+            <tr>
+              <td>checkExists</td>
+              <td>If true the installation will not continue unless the
+file selected exists. The user will have to select a file that does
+exist, create the file or cancel the install. If you want to create the
+file during the install if it does not exist use Ant.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="select">&lt;select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The select input allows the user to
+select from a list of options. This will be represented as a group of
+radio buttons or a numbered list on the command line. An input type of
+select should have at least two child elements called <code>&lt;option&gt;</code> with the
+attributes <code>text</code> and <code>value</code>. The text is displayed next to the option and
+the value is the value set into the property. <br/>
+N.B. the defaultValue
+should be blank or one of the values in one of the options.  This is not checked by AntInstaller
+but is a requirement, there are no guarantees if you don't RTFM.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file. The value will be the text of one of the option value attributes.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Select your favorite colour</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the option this should match one of
+the options values.</td>
+              <td>#FF0000</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="target-select">&lt;target-select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The target-select input allows the user to
+select targets from a list of options. This will be represented as a group of
+radio buttons or a numbered list on the command line. This input type is almost identical to the select
+input type but the value as well as being recorded as a property is set as a target.<br/>
+An input type of target-select should have at least two child elements called <code>&lt;option&gt;</code> with the
+attributes <code>text</code> and <code>value</code>. The text is displayed next to the option and
+the value is the target to be run (and the value set into the property).
+N.B. the defaultValue
+should be blank or one of the values in one of the options.  This is not checked by AntInstaller at runtime
+but is a requirement, there are no guarantees if you don't RTFM.  You should use the checkConfig script to validate the config.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file. The value will be the text of one of the option value attributes and will be the target that is run.</td>
+              <td>target.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Select your favorite colour</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the option this should match one of
+the options values.</td>
+              <td>fulldocs</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="large-select">&lt;large-select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The large select has identical options to the <code>select</code> input above. 
+							Large select enables the list of options to be greater and is displayed differently.
+							In the Swing GUI the options are rendered as a drop-down list. In the text/console UI
+							the options are shown to the user 20 lines at a time.</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="target">&lt;target&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The target input shows a check box, if
+the user selects the target the Ant target will be run when the
+installation starts. The order of the targets in the list is
+significant, and the targets will be run in that order. If there is
+more than one Page with target entry types or there is a page with a
+target attribute the targets will be run in the order they appear in
+the config file.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>target</td>
+              <td>The name of the target to be run it must exist in the
+build.xml file delivered with the install.</td>
+              <td>installSource</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Do you want to install the source code.</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>true or false, determines if the check box is
+selected by default.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>force</td>
+              <td>If true the checkbox will not be editable and will be
+set to the value in the defaultValue attribute.  This can be used to indicate that installing
+this component is not optional.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>osSpecific</td>
+              <td>If the osSpecific flag is set the Operating System of the current system will
+be appended to the name of the target actually run by Ant so that different
+targets can be run according to the final deployment platform.
+This feature goes against the principles of
+building cross platform installers, but is provided so that common installer
+tasks such as creating icons and shortcuts can be run using the platform specific executables.
+</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>strict</td>
+              <td>Currently there are two modes for OS specific targets strict and not strict (lax). <br/>
+Strict target will return the target name plus the exact String in the
+System Property "os.name" this means you will have to provide targets for
+every possible OS version. See
+<a href="http://lopica.sourceforge.net/os.html">this page</a> for a list of possible values.
+There are a great many but you may not want to consider some of the options.<br/><br/>
+Lax target will return one of the following strings only
+<ul>
+	<li>"[target-name]-linux" - Linux </li>
+	<li>"[target-name]-mac" - Mac OS and Mac OS X</li>
+	<li>"[target-name]-sun" - SunOS and Solaris</li>
+	<li>"[target-name]-win" - Windows</li>
+	<li>"[target-name]-other" - any thing else</li>
+</ul> 
+so you only have to create 5 ant targets to support all the cases.  It is pretty hard
+to support windows bit with this system, if anyone needs to specifically support this and does not
+want to use the existing strict mechanism, get in touch.  JDK1.4 on Win16 boxes strikes me as
+an unlikely combination ;)
+							</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="text">&lt;text&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">An text input entry is a field into which
+the user can write any text (or no text).</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>name.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text or displayed as a default in the GUI.</td>
+              <td>${java.user.name}</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="validated">&lt;validated&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A validated text input entry is a text
+field into which the user can write any text but the installation will
+not continue unless the text entered matches a regular expression
+provided.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>server.url</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]$</td>
+            </tr>
+					</tbody>
+				</table>
+				
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="extvalidated">&lt;ext-validated&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">An externally validated text input entry is a text
+field into which the user can write any text but the installation will
+not continue unless the text entered passes a validation function.  The validation function is not part
+of AntInstaller, a fully qualified classname (that is on the classpath at runtime) is specified which AntInstaller
+executes to validate.  One instance will be created per input element which should conform to the interface
+<code>org.tp23.antinstaller.input.Validator</code>. <br/>  
+This feature is not tested but does provide flexibility in validating input, if you use this feature please
+report back you results (success or failures) to the AntInstaller project pages.  We wish to discuss
+integrating external validation into the Localization of the installers (when it happens) with 
+active users of this feature.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>server.url</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be entered.</td>
+              <td>Choose an open network port</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the external validator.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>validationClass</td>
+              <td>The class used as a Validator</td>
+              <td>com.me.val.PortOpenValidator</td>
+            </tr>
+					</tbody>
+				</table>
+				
+				
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="date">&lt;date&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A text input entry that must be a valid
+date. The dateformat string must be compatible with <code>java.text.SimpleDateformat</code>
+By default the format is english dates <code>dd/MM/yyyy</code> but can be
+changed to any valid format. If the date field is used in an installer it is not possible to enter blank dates.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the date entered by the user.</td>
+              <td>mydate.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the date to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the date format. Alternatively the String <code>TODAY</code>
+may be entered and the default value will be the time the installer is
+run.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>dateFormat</td>
+              <td>The expression used to create the DateFormat.</td>
+              <td>dd-MM-yy</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="password">&lt;password&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A password text input is identical to a
+validated text input except that the display does not echo in the Swing
+Version (If anyone knows how to prevent the console echoing please get
+in touch) This password field is VERY INSECURE so dont blame me. </td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be sent to Ant the
+password will not feature in <code>ant.install.properties</code> file,
+the value will be the text entered by the user. If the installer is in
+verbose mode the properties file will contain the property name but not
+the value entered by the user.</td>
+              <td>password.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the password to be
+entered.</td>
+              <td>Enter password</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression. This will be shown
+as an example if the user enters an invalid password.</td>
+              <td>pa55word</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[a-zA-Z_0-9]{8}$</td>
+            </tr>
+			<tr>
+				<td>textMask</td>
+              <td>When set to <code>true</code> an attempt is made to hide the password on the command line.
+							This feature is optional and has not been tested on different platforms.   
+							It is a pure Java solution using a masking thread so there 
+							is a theoretical requirement for some CPU head room to function correctly.
+							It does not work where \r is not supported for example the eclipse console.<br/><br/>
+							see SUN's proposed solution
+							<a href="http://java.sun.com/features/2002/09/pword_mask.html"
+							>http://java.sun.com/features/2002/09/pword_mask.html</a><br/>
+							see also, the embarrasing bug report on SUNs site
+							<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435"
+							>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435</a><br/>
+							see also, Ant's bug report
+							<a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687"
+							>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687</a><br/>
+							</td>
+							<td>true</td>
+						</tr>
+          </tbody>
+        </table>
+
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="password-confirm">&lt;password-confirm&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A confirm password input is identical to a
+password input except that to validate correctly a password field on the same page
+with the property name specified in the origField attribute.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>origField</td>
+              <td>There must be a password field with its property set to this value on the same page.
+</td>
+              <td>password.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the password to be
+entered.</td>
+              <td>Confirm password</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression. This will be shown
+as an example if the user enters an invalid password.</td>
+              <td>pa55word</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[a-zA-Z_0-9]{8}$</td>
+            </tr>
+						<tr>
+							<td>textMask</td>
+              <td>When set to <code>true</code> an attempt is made to hide the password on the command line.
+							This feature is optional and has not been tested on different platforms.   
+							It is a pure Java solution using a masking thread so there 
+							is a theoretical requirement for some CPU head room to function correctly.
+							It does not work where \r is not supported for example the eclipse console.<br/><br/>
+							see SUN's proposed solution
+							<a href="http://java.sun.com/features/2002/09/pword_mask.html"
+							>http://java.sun.com/features/2002/09/pword_mask.html</a><br/>
+							see also, the embarrasing bug report on SUNs site
+							<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435"
+							>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435</a><br/>
+							see also, Ant's bug report
+							<a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687"
+							>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687</a><br/>
+							</td>
+							<td>true</td>
+						</tr>
+          </tbody>
+        </table>
+			<br/><br/>
+			<a name="hiddentypes"></a><h3>Hidden Elements</h3>
+			Hidden elements are those elements of pages which are not displayed to the user,
+			but which can be used to set properties and apply conditional logic.<br/>
+        <br/>
+			<table class="manual" cellspacing="0">
+	  <tbody>
+		<tr class="tpheader">
+		  <th class="manual" colspan="3"><a name="conditional">&lt;conditional&gt;</a></th>
+		</tr>
+		<tr>
+		  <td colspan="3">The conditional element allows the conditional execution of a nested element.
+			  Currently, only &lt;hidden&gt; elements may be nested within a conditional block.
+		  This can be useful for initialising properties or default values based on other user selections</td>
+		</tr>
+		<tr class="tpheader">
+		  <th class="manual2">Attribute</th>
+		  <th class="manual2">Description</th>
+		  <th class="manual2">Example</th>
+		</tr>
+		<tr>
+		  <td>ifProperty</td>
+		  <td>The nested <code>hidden</code> element(s) will be evaluated if the property has the correct value.
+			  This can be used to
+		conditionally set properties when certain other properties match specific values.
+		The format of the property can be as simple as <code>${name}=value</code> or can combine tests on multiple properties such as <code>(${name}!=value) AND (${name2}^=value2)</code>.  There must be no spaces
+		and both the property and value are case sensitive. See the <a href="#ifproperty">ifProperty description</a>
+			  for details of the comarisons supported.</td>
+		  <td>(${prop1}=1) OR (${prop2}=${prop3})</td>
+		</tr>
+		</table>
+        <br/>
+			<table class="manual" cellspacing="0">
+		  <tbody>
+			<tr class="tpheader">
+			  <th class="manual" colspan="3"><a name="hidden">&lt;hidden&gt;</a></th>
+			</tr>
+			<tr>
+			  <td colspan="3">The hidden element allows a property to be set by virtue of the page being displayed or,
+				  when nested within a <code>conditional</code> block, if the condition is true.
+			  This can be useful for initialising properties or default values based on other user selections.</td>
+			</tr>
+			<tr class="tpheader">
+			  <th class="manual2">Attribute</th>
+			  <th class="manual2">Description</th>
+			  <th class="manual2">Example</th>
+			</tr>
+			<tr>
+			  <td>property</td>
+			  <td>The name of the property to be set in the <code>ant.install.properties</code></td>
+			  <td>my.property</td>
+			</tr>
+			<tr>
+			  <td>value</td>
+			  <td>The value to which the property will be set</td>
+			  <td>myvalue</td>
+			</tr>
+			</table>
+        <br/>
+To edit the <code>antinstall-config.xml</code> file with the above properties a good XML editor is
+recommended.  A DTD exists to aid debugging this file.  Add the following doctype to enable validation
+<code>
+&lt;!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd"&gt;
+</code>
+If you find errors in the DTD please <a href="http://sourceforge.net/tracker/?group_id=123466">report them</a>.<br/>
+        <br/><a name="configbuild"></a>
+			      <h3><code>build.xml</code></h3>
+
+Once the <code>antinstall-config.xml</code> file is created you need
+to create an Ant <code>build.xml</code> file with targets that match
+the targets available in the install config. The <code>build.xml</code> file is out of scope of this document. The Ant documentation is avaliable at the following URL. <br/>
+<a href="http://antinstaller.sourceforge.net/manual/manual/index.html" title="Ant manual">http://antinstaller.sourceforge.net/manual/manual/index.html</a><br/>
+There are many tools to help you create these files, for example, eclipse has built in support.<br/><br/>
+
+There are some recomendations for the <code>build.xml</code> file to be used inside an installer.
+<ul>
+	<li>It is not recommended to use <code>depends</code> attributes for targets, although they do work in most situations.  The progress page graphic sometimes produces confusing results, for this reason it can be disabled.  <code>depends</code> targets may be called more often than expected since all targets specified in the <code>antinstall-config.xml</code> file and selected by the user are called explicitly. For the same reason be carful with the <code>if</code> attribute in target elements.</li>
+	<li>Classpath modifications are irrelevant if all classes are packaged in a self-extracting or non-extracting Jar.  Any task dependencies should be packaged with into the Jar with the <code>zipgroupfileset</code> fileset type.
+	<br/>for example <br/><code>&lt;zipgroupfileset dir="tasklibs" includes="*.jar"/&gt;</code></li>
+	<li>The <code>basedir</code> attribute, if specifed in the project element, is ignored and set by AntInstaller.  It is included in many AntInstaller examples since most tools expect this attribute to be present.</li>
+	<li>The <code>${ant.home}</code> property should not be relied upon, The computer on which the installer is being run may not have Ant installed.</li>
+	<li>Ant dependencies, for example Jars for optional tasks, should be explicitly added to the installer jar with a <code>zipgroupfileset</code>.  </li>
+	<li>Some other default Ant properties that relate to a presumed Ant configuration are not reliable due to the way Ant is launched in AntInstaller, for example <code>${ant.file}</code> </li>
+	<li>Some complex output redirections do not work as expected since output is already redirected to the log files.</li>
+</ul>
+
+        <br/><a name="scripts"></a>
+			      <h3><code>install.sh</code> Start scripts</h3>
+It is recommended to run create installers as <a href="#extractor">self extracting jars</a>, but it is
+possible to run the installer from scripts as a normal Java application.
+Create a new directory and prepare the files as you would
+for a normal Ant build. You can include the <code>install.sh</code>
+and <code>install.cmd</code> files from the demo app to launch the
+installer. These scripts can be launched in a GUI by double clicking on
+them, but they will require editing to set your classpath and resources correctly.<br/>
+The main class (<code><a href="java2html/antinstaller/org/tp23/antinstaller/runtime/ExecInstall.java.html">org.tp23.antinstaller.runtime.ExecInstall</a></code>) that starts the installer takes two parameters 
+on the command line which should be set in the start script.<br/>
+The first is the default
+GUI mode (either swing or text).  <br/>
+The second is the Ant basedir and typically it should be just "." the current directory.
+This directory will be the basedir of the ant script no matter what it says in the <code>build.xml</code> file.
+        <br/>
+The Ant runner currently passes the directory called <code>antlib</code>
+in which
+you can add any Ant optional jars to get them to auto load. You
+can also load them on classpath of the install scripts.<br/>
+        <br/><a name="extractor"></a>
+			      <h3>Self Extracting Jars</h3>
+    There is a mechanism to create a self extracting Jar where the entire installer,
+    all requried Java code, and the resources to install can be packaged into a single Jar.
+	The Jar is launched by double clicking on it (if the <code>.jar</code> extension is registered properly by Java) or by calling
+	the command <code>java -jar [jar_name].jar</code>.<br/>
+	In windows if the extension <code>.jar</code> has been re-registered (e.g. to open with winzip) right clicking on the jar
+	and selecting <code>Open With</code> then <code>javaw</code> will also run the installer.<br/>
+	Packaging a self extracting jar can be achieved with Ant.
+	See <a href="installertask.html">Installer Ant Task</a> to automate creation of SelfExtracting jars. <br/><br/>
+
+	When the isntaller is run all the contents of the jar will be extracted to a temporary
+	directory on the users machine.  This temporary directoy is the base directory for the Ant 
+	build when run.
+	The build.xml file should not include any relative file references.  The <code>${basedir}</code> property is required since
+	the file is excracted a new empty temporary directory that is not know when 
+	the <code>build.xml</code> file is being written.  This directory will be the value of <code>${basedir}</code>
+	when the installer is run. If packagine the self extractor manually without using the AntInstaller task the main class should be set in the manifest.  <br/>
+	Here is an example <code>MANIFEST.MF</code> file.<br/>
+	<pre>
+Manifest-Version: 1.0 
+Main-Class: <a href="java2html/antinstaller/org/tp23/antinstaller/selfextract/SelfExtractor.java.html">org.tp23.antinstaller.selfextract.SelfExtractor</a>
+Look-And-Feel: org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel
+	</pre>
+	The Look And Feel is also required in the <code>MANIFEST.MF</code> file since the autoextract code shows a progress bar using Swing.
+	The value should be the same Look And Feel used in the main Swing GUI specified in the installer element of <code>antinstall-config.xml</code>.  If not, ensure the main Look And Feel fully supports updating the UI, not LAFs all do.  
+	<br/>
+	<br/>If a resource is included called <code>/resources/extract-image.png</code> it will be displayed during the 
+	extraction process.  You can remove the image from the classpath if you don't like it or change it to any other
+	png image of the same size.<br/>
+	<img src="images/extract-image-example.png" alt="example extract image"/>
+ <br/>
+	<br/>
+        <br/><a name="non-extractor"></a>
+			      <h3>Non Extracting Jars</h3>
+	As of version 0.7.2 a feature has been added to load the installer without having to extract any files until the 
+	Ant build is run.  This has the advantage of not having to unjar AntInstaller itself or its dependencies such as Ant and the look and feel.
+	See <a href="installertask.html">Installer Ant Task</a> to automate creation of NonExtracting jars. <br/><br/>
+	If you are manually packaging the Jar in order to specify that the NonExtractor should be used the Jar <code>META-INF/MANIFEST.MF</code> file should specify
+	<code><a href="java2html/antinstaller/org/tp23/antinstaller/selfextract/NonExtractor.java.html">org.tp23.antinstaller.selfextract.NonExtractor</a></code>.  Since the NonExtractor does not need to show 
+	the progress bar for the extraction no look and feel is required in the manifest.
+	An example <code>META-INF/MANIFEST.MF</code>
+	<pre>
+Manifest-Version: 1.0
+Main-Class: <a href="java2html/antinstaller/org/tp23/antinstaller/selfextract/NonExtractor.java.html">org.tp23.antinstaller.selfextract.NonExtractor</a>
+	</pre>
+	The NonExctractor still creates temporary space on the deployment system and still sets the <code>${basedir}</code>
+	to this space.
+	The <code>build.xml</code> file and the <code>antinstall-config.xml</code> are read from inside the Jar and all 
+	properties are passed directly 
+	to Ant.  The properties file is still readable for debuging installers. In order to access and extract resources inside the Jar the unzip or unjar Ant tasks should be used.  In order to identify the Jar file in teh build.xml file a new property has been added <code>${antinstaller.jar}</code>.
+	The following example
+	extracts a file called <code>myresource.zip</code> into the temporary directory (from there it could be unzipped 
+	to the deployment directory)
+	<pre>
+&lt;unzip src="${antinstaller.jar}" dest="${basedir}"&gt;
+	&lt;patternset&gt;
+		&lt;include name="myresource.zip"/&gt;
+	&lt;/patternset&gt;
+&lt;/unzip&gt;</pre>
+	A more likely example is to unzip all the files in your application to the installation directory selected by the user.
+	<pre>
+&lt;unzip src="${antinstaller.jar}" dest="${my.installation.dir}"&gt;
+	&lt;patternset&gt;
+		&lt;include name="bin/*"/&gt;
+		&lt;include name="classes/*"/&gt;
+		&lt;include name="help/*"/&gt;
+		&lt;include name="doc/*"/&gt;
+	&lt;/patternset&gt;
+&lt;/unzip&gt;</pre>
+	Remember all the classes for AntInstaller need to be in the root of the Jar for the JVM to find them when the 
+	Jar is first loaded so it is probably best to put all the deployable resources in a subdirectory inside the Jar 
+	This will prevent name clashes with the Jars contents which are in the <code>org</code>, <code>META-INF</code> and <code>resources</code> directories. <br/> 
+	
+	<a name="refs"></a>
+			<h3>Dynamic References</h3>
+	As of version beta 0.5 in certain circumstances the default values of input fields can be based on existing properties.  To reference collected input values use the Ant property syntax <code>${property.reference}</code>.
+	References can be mixed with normal text as in Ant. <br/>
+	 For example, <br/>
+<pre>
+&lt;text
+  property="new.property"
+  displayText="Enter the installation directory"
+  defaulValue="/usr/local/${project.short.name}"
+  defaultValueWin="C:\Program Files\${project.short.name}"
+  create="true"
+/&gt;
+</pre>
+		As of version beta 0.7 the default values of input fields can be based on environment variables.  To reference collected input values use the normal Ant syntax <code>${env.ENVIRONMENT_VARIABLE}</code>.<br/>
+	  The prefix is always <code>env.</code> since this is not set with an Ant <code>&lt;property&gt;</code> task, it is part of the AntInstaller runtime.  The results will be identical to <code>&lt;property environment="env."&gt;</code> since AntInstaller make direct calls to the Ant APIs.<br/>
+		The environment is NOT added by default to the build.xml or the installer when Ant runs, if you need the environment
+		in the <code>build.xml</code> file call it in the usual way
+		Also the java system properties are included prefixed by "java.". For example, <code>${java.user.name}</code> returns the user currently running the installer.
+<br/><br/>
+			Dynamic references can use nested property values. For example, if the value of <code>${target.server}</code> is <code>tomcat</code>,
+			the following syntax can be used to set the default value of an input property to be the value of <code>${tomcat.default.http.port}</code><br/>
+<pre>
+&lt;validated
+	property="http.port"
+	displayText="HTTP port:"
+	defaultValue="${${target.server}.default.http.port}"
+	regex="^[0-9]{2,5}$"
+/&gt;
+</pre>
+<br/>
+	Dynamic references have the following limitations<br/>
+	<br/>
+	<ul>
+		<li>Dynamic references can only be added to <code>defaultValue</code>,  <code>defaultValueWin</code>, comment <code>displayText</code>, comment <code>explanatoryText</code> and text or html in a <a href="#pagetext" title="Text pages">text page</a> (currently)</li>
+		<li>The properties must have been set in previous pages not in the current page (or future pages)</li>
+		<li>Unlike Ant if the property has not been evaluated a blank string "" will be inserted instead of the reference.
+		    This means accidents like <code>/usr/local/${non.prop}</code> should not happen but will use <code>/usr/local</code>, generally neither case
+			is desired, so as with Ant check the effects of absent properties before releasing your installer.  Alternativly use a validated text field and specify a minimum length in the regular expression to ensure that blank values do notget accepted.</li>
+		<li>Once a user has edited a field the evaluation stops.<br/>
+		For example, on the first page <code>${proj.short.name}</code> is set
+		and on a subsequent page <code>${proj.short.name}/lib</code> and <code>${proj.short.name}/classes</code>. If the user changes one field to
+		<code>[value of ${proj.short.name}]/myclasses</code> and then goes back and changes the first page when the subsequent pages are shown the value will <b>not</b> update to <code>[new value of ${proj.short.name}]/myclasses</code>.  This only applies to the Swing GUI since in the command line the user can not go back.</li>
+	</ul>
+	
+ <br/>
+	<br/>
+	<a name="pagedisplay"></a>
+	<h3>Page Displaying</h3>
+	It is a common requirement to have a few options at the start of the installer and only show certain other pages if the user selected one of the initial options.  For example,  an option to install the source code, if the user is going to install the source code show a page with options to decide where to put the code, the documents and perhaps a checkbox if icons for the documents should be created.  This page should not be shown to people who are not installing the source code. Two mechanism are available to achieve this. 
+	<br/><br/>
+	The first mechanism is to use a <code>target</code> input on a previous page and then add <code>ifTarget</code> attributes to the subsequent page elements.
+	
+	The second mechanism uses the <code>ifProperty</code> attribute to conditionally show pages based on the existence or value of properties. Since both the System Properties from Java and the users environment variables are available as properties it is now possible to base pages on the existence of certain properties for example if CATALINA_HOME is set it is a safe bet the user already has tomcat installed.  Also if ProgramFiles is present it is probably a windows system.  N.B.  for more a more accurate way to run tasks based on the operating system of the user the target tag has been enhanced to run osSpecific targets.
+	
+	See the ifProperty attribute of the <a href="#pageinput">InputPage</a> type. 
+	
+	<br/><br/>
+	<a href="index.html"><img class="but" src="images/ant-install-small.png" alt="home"></a>
+<!-- Do not edit the following line  used by manual-print.jsp -->
+
+	</div>
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual-print.jsp
===================================================================
--- /release-kits/shared/ant-installer/web/manual-print.jsp	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual-print.jsp	(revision 14989)
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style-print.css" type="text/css" rel="stylesheet">
+  <link rel="SHORTCUT ICON" href="images/antinstaller-icon.png">
+  <meta name="keywords"
+ content="Ant, installer, AntInstaller, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+</head>
+<body>
+	<div class="tpheadertitle">AntInstaller</div>
+	<div class="tpcontent">
+<!-- JSP start -->
+<%@page import="java.io.*"%>
+<%@page import="java.util.*"%>
+<%
+
+String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
+File fleJspDir = new File(strJspDir);
+
+BufferedReader br = new BufferedReader(new FileReader(new File(fleJspDir, "manual.html")));
+String line = null;
+boolean copy = false;
+while((line = br.readLine()) != null){
+	if(line.indexOf("<h2>Manual</h2>") > -1) {
+		copy = true;
+	}
+	else if(line.indexOf("<!-- content end [segment-end]-->") > -1) {
+		copy = false;
+	}
+	if(copy) {
+		out.println(line);
+	}
+}
+%>
+	</div>
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual.html	(revision 14989)
@@ -0,0 +1,1582 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      			<div align="right">
+					<a href="manual-print.html">Printable version</a><br/>
+					<a href="contents.html" target="_search">Mozilla sidebar</a>
+				</div>
+<!-- Do not edit the following line  used by manual-print.jsp -->
+<h2>Manual</h2>
+
+To set up an AntInstall there are a few requirements.
+			<ul>
+				<li>The <a href="#config"><code>antinstall-config.xml</code></a> file to describe
+		the installation</li>
+				<li>The <a href="#configbuild"><code>build.xml</code></a> ant script to run, with targets
+		that should match values in <code>antinstall-config.xml</code> </li>
+				<li>The resources to run the installer e.g. ant-installer.jar
+		and ant.jar</li>
+				<li>The binarires and resources to install for your application</li>
+				<li>The installer can be delivered as a <a href="#extractor">self extracting JAR</a> which extracts all the files on the target machine prior to running the installer.</li>
+				<li>The installer can be run directly from the Jar so the resources are not extracted until Ant is run. This is the recommended way to package an installer, see <a href="#non-extractor">non extracting JAR</a>.</li>
+				<li>All config files, classes and resources should then be packaged into a jar, this can be easily achieved with a dedicated <a href="installertask.html">Ant task</a>.</li>
+				<li>If not using a self or non extracting jar, <a href="#scripts">scripts</a> to run the installer would be required e.g. <code>install.sh</code></li>
+			</ul>
+			<a name="config"></a>
+			      <h3><code>antinstall-config.xml</code></h3>
+
+This part of the guide is the reference manual for the
+configuration of <code>antinstall-config.xml</code>. The config file
+is an XML file that describes the pages to display to the user,
+and the input the user must enter. <br/>
+A simple example might be a License page to show the license of the
+software, followed by a page asking the user for their name and email.
+The next page would allow the user to choose the components to install
+(binaries, source, documentation) and the progress page with an install
+button to perform the installation. <br/>
+        <br/>
+The config file must always have a root element installer with some
+requried attributes as follows. <br/>
+        <br/>
+			<pre>&lt;installer<br/>	ui="swing,text"<br/>	verbose="false"<br/>	lookAndFeel="com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"<br/>	name="Test Installer"<br/>	windowIcon="/resources/gkmain_inv.png"<br/>	defaultImageResource="/resources/greens.png"<br/>	minJavaVersion="1.4"&gt;<br/>			...<br/>			</pre>
+The file is then made up of <code>page</code> elements containing <code>input</code>
+elements.
+<br/>The last page of the installer must be a <a href="#pageprogress">Progress Page</a>. 
+If packaging the installer with the <a href="installertask.html">Ant task</a> the <code>antinstall-config.xml</code> file can be validated.<br/>
+When setting values, similar to Ant, ${my.property} syntax can be used for default values and comments, see <a href="#refs">dynamic references</a>.<br/>
+To determin which pages are shown and which are ommitted, see <a href="#pagedisplay">Page displaying</a>.<br/><br/>
+<div class="tpnoprint">
+An example antinstall-config.xml file can be seen <a href="antinstall-config-example.html" title="Example config" >here</a>.
+
+        <br/><br/>
+        <ul>
+          <li><a href="#installer">Installer</a></li>
+          <li><a href="#page">Pages</a>
+						<ul>
+							<li><a href="#pagesplash">Splash Page</a></li>
+							<li><a href="#pagelicense">License Page</a></li>
+							<li><a href="#pageinput">Input Page</a></li>
+							<li><a href="#pageprogress">Progress Page</a></li>
+						</ul>
+					</li>
+          <li><a href="#inputtypes">Input types</a>
+						<ul>
+							<li>Text fields
+								<ul>
+									<li><a href="#comment">Comment</a></li>
+									<li><a href="#text">Unvalidated Text</a></li>
+									<li><a href="#validated">Validated Text</a></li>
+									<li><a href="#extvalidated">Externally Validated Text</a></li>
+									<li><a href="#date">Date</a></li>
+									<li><a href="#password">Password Text</a></li>
+									<li><a href="#password-confirm">Confirm Password</a></li>
+								</ul>
+							</li>
+							<li>Target fields
+								<ul>
+									<li><a href="#target">Target</a></li>
+									<li><a href="#target-select">Target Select</a></li>
+								</ul>
+							</li>
+							<li>File fields
+								<ul>
+									<li><a href="#file">File</a></li>
+									<li><a href="#directory">Directory</a></li>
+									<li><a href="#app-root">Application Root</a></li>
+								</ul>
+							</li>
+							<li>Selection fields
+								<ul>
+									<li><a href="#checkbox">Checkbox</a></li>
+									<li><a href="#select">Select</a></li>
+									<li><a href="#large-select">Large Select</a></li>
+								</ul>
+							</li>
+						</ul>
+					</li>
+		<li><a href="#hiddentypes">Hidden elements</a>
+						<ul>
+							<li><a href="#conditional">Conditional</a></li>
+							<li><a href="#hidden">Hidden</a></li>
+						</ul>
+					</li>
+		</ul>
+</div>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="installer">&lt;installer&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The <code>installer</code> element is
+the root element of the config and has the following attributes.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>ui</td>
+              <td>Indicates the supported installation modes from the following four values <i>text</i>, <i>swing</i>,  <i>swing-auto</i> and <i>text-auto</i>.  <i>swing</i> indicates the GUI can be shown, <i>text</i> means the commandline interface can be shown. <a href="auto.html" title="-auto installs"><i>-auto</i> installs</a> are silent installs that read the properties from a file, if available, instead of running the full UI. Ensure you understand the consequences before enabling <i>-auto</i> builds.  <br/>
+              This attribute should be a comma separated list of values (whitespace is stripped).</td>
+              <td>swing,text, text-auto,swing-auto</td>
+            </tr>
+            <tr>
+              <td>loadDefaults</td>
+              <td>This flag can be true, false or prompt. Indicates what AntInstaller should do
+              if it finds existing properties in a file.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>verbose</td>
+              <td>Print more info the the install log file and more
+info in the <code>ant.install.properties</code> file. N.B. the properties file may not be written if the installer
+can not write to the current directory.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>debug</td>
+              <td>Setting this flag prevents the temporary directory from being deleted on exit, this is useful for debugging
+							install scripts.  It should normally be set to false or ommited for a final installer. </td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>lookAndFeel</td>
+              <td>The <a href="lookandfeels.html" title="LookAndFeel">LookAndFeel</a> class for the installer or one of the following special values.
+<ul>
+	<li><code>"null"</code> - The string "null" is used to set the default LookAndFeel determined by Java (no extra classes required)</li>
+	<li><code>"jgoodies"</code> - Used to set the default LookAndFeel for AntInstaller org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel 
+	(<code>jgoodies-edited-1_2_2.jar</code> or it contents must be on the classpath)</li>
+	<li><code>"native"</code> - Used to set the native LookAndFeel for the runtime Operating System (no extra classes required)</li>
+	<li><code>"greymetal"</code> - Used to set the cutdown MetalLookAndFeel included with AntInstaller.  This is the same as MetalLookAndFeel with a  grey theme and no bold fonts unless specified in the <code>antinstall-config.xml</code> file (no extra classes required)</li>
+</ul>
+If the lookAndFeel attribute is missing <code>jgoodies</code> is assumed.  If the LookAndFeel can not be loaded a message will be added to the log file and the install will continue with the Java default.
+				</td>
+              <td>
+				greymetal<br/>
+				jgoodies</td>
+            </tr>
+            <tr>
+              <td>name</td>
+              <td>The name of the installer, this will appear in the
+title of the installer GUI window.</td>
+              <td>My Installer</td>
+            </tr>
+            <tr>
+              <td>windowIcon</td>
+              <td>This is the resource name of the icon for the
+installer window. It is a string that is used to load the resource from
+the classpath so the image must be in one of the jars on the classpath
+of the install start script.  In the self installer it must be in the correct directory
+of the Jar.</td>
+              <td>/resources/gkmain_inv.png</td>
+            </tr>
+            <tr>
+              <td>defaultImageResource</td>
+              <td>This is the resource image used for the top of the
+installer GUI by default, it can be overridden for individual pages.</td>
+              <td>/resources/greens.png</td>
+            </tr>
+            <tr>
+              <td>minJavaVersion</td>
+              <td>The minimum Java version for the installer, this is
+supported as of AntInstaller 0.8beta do disable this feature remove the attribute.</td>
+              <td>1.4</td>
+            </tr>
+            <tr>
+              <td>finishButtonText</td>
+              <td>The text displayed on the install button. If not specified, the default is "Install".  This has been
+							added since Antinstaller can be used as a GUI for other Ant builds, in which case "Build" would
+							be more appropriate.</td>
+              <td>Install</td>
+            </tr>
+            <tr>
+              <td>antialiased</td>
+              <td>If this attribute is set to <code>true</code> and the LookAndFeel is <code>org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel</code> or <code>jgoodies</code> the Swing GUI will render using Java 2D antialiasing for the text.  This is resource intensive and may slow the GUI down unacceptably on older PCs, but does look better.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>wide</td>
+              <td>If this attribute is set the width of the installer GUI can be configured.  The format is 
+              <code>[window-size]:[label-width]</code></td>
+              <td>600:275</td>
+            </tr>
+            <tr>
+              <td>version</td>
+              <td>Defines a version for the installer, this attribute is optional and defaults to "0.0". However, if you want to support <a href="auto.html">automatic installs</a> (ui includes text-auto or swing-auto) this can be used to indicate that a new installer is not compatible with previous properties files.  If a new installer for an application is developed that requires new properties increment the major version and old properties files will not be loaded.  Increment the minor version if the properties are compatible but additional properties have been added and must be maually entered, text-auto and swing-auto builds will be forbidden.  <br/>
+              If the new version of the installer is a compatible version with the properties file found, it will load without errors.  No checking is done to ensure that this is logical. When delivering upgraded installers you should ensure that old properties file versions are compatible if you do not increment the version and support automatic installs.</td>
+              <td>1.0.2</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="page">&lt;page&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Pages entries in the XML file represent a
+single window in the installer moved through by the user by selecting
+"Next &gt;&gt;" (or pressing enter) all pages have the following
+atributes.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td><b>type</b></td>
+              <td>The type of page one of four options, progress,
+license, splash or input.</td>
+              <td>input</td>
+            </tr>
+            <tr>
+              <td>name</td>
+              <td>A unique name for the page.</td>
+              <td>User properties</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown at the top of the page.</td>
+              <td>Install Options</td>
+            </tr>
+            <tr>
+              <td>imageResource</td>
+              <td>The image to be shown at the top of the page, overriding the defaultImageResource defined
+							in the installer element.</td>
+              <td>Install Options</td>
+            </tr>
+            <tr>
+              <td>target</td>
+              <td>An ant target that will always be run from the <code>build.xml</code>
+file. This attribute is optional see the Target input type if you wish
+to show a targets that can be selected by the user.</td>
+              <td>clean</td>
+            </tr>
+            <tr>
+              <td>overflow</td>
+              <td>Setting this to true causes the Swing GUI to allow the page to extend past the normal height and for scrollbars
+              to be shown when the page overflows.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagesplash">&lt;page
+type="splash"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Displays a graphical image page in the Swing GUI</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>splashResource</td>
+              <td>The image resource used for the splash image. The resource must be available on the classpath
+							at runtime.</td>
+              <td>/resources/large-logo-image.png</td>
+            </tr>
+            <tr>
+              <td>altText</td>
+              <td>Alternative text for the console mode</td>
+              <td>Welcome to the installer app</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagetext">&lt;page
+type="text"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Displays an HTML page in swing and a text file in text mode.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>htmlResource</td>
+              <td>The resource used for the html page. The resource must be available on the classpath at runtime. <br/>
+              The HTML support is that of the Swing JTextPane which is very basic.  Embeded images and style sheets are refereced from the classpath. The following HTML will display an image from the classpath.  <br/>
+              <code>&lt;img src="/resources/image.png"&gt;</code><br/>
+              Property values are expanded in the file if variables of the form <code>${java.user.name}</code> are found.<br/>
+              </td>
+              <td>/resources/text.html</td>
+            </tr>
+            <tr>
+              <td>textResource</td>
+              <td>Alternative text for the console mode. <br/>
+              Property values are expanded in the file if a variable of the form ${java.user.name} are found.<br/></td>
+              <td>/resources/text.text</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pagelicense">&lt;page
+type="license"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">Shows a single license file in a
+scrollable window to the user.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>resource</td>
+              <td>The license text file resource, must be on the
+classpath.</td>
+              <td>/resources/GPL.txt</td>
+            </tr>
+            <tr>
+              <td>usePaging</td>
+              <td>In text mode this parameter stops the scrolling of the license text at 20 lines,
+							and provides options to view the next page or skip to the end.  The default is false.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pageinput">&lt;page
+type="input"&gt;</a>
+							</th>
+            <tr>
+              <td colspan="3">A page for adding input types listed
+below. An installer can have as many input pages as desired. </td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>ifTarget</td>
+              <td>This page will be show if the named target has previously been selected.  This can be used to 
+							conditionally show installation pages when certain parts of the <code>build.xml</code> script are to be run and not
+							if they are to be omitted.</td>
+              <td>documentation</td>
+            </tr>
+            <tr>
+              <td><a name="ifproperty">ifProperty</a></td>
+              <td>This page will be shown if the property has the correct value.  This can be used to 
+		conditionally show installation pages when certain properties match
+		The format of the property can be as simple as <code>${name}=value</code> or can combine tests on multiple properties such as <code>(${name}!=value) AND (${name2}^=value2)</code>.  There must be no spaces
+		and both the property and value are case sensitive.  It is a good idea to use a <code>select</code> input type
+		for the value since free text entered by the user is unlikely to match exactly in case and whitespace or use validated
+		text fields.  
+N.B. to run tasks based on properties consider the <a href="http://ant-contrib.sourceforge.net">ant-contrib</a> packages. <br/>
+		The new syntax allows for environment variable checks such as <code>${env.DISPLAY}=:0.0</code>
+		<br/><br/>
+		<b>N.B. the old syntax <code>name=value</code> does not work any more.</b> It is <b>not</b> possible to 
+		place an = sign in a property name.<br/>
+		e.g. <code>${prop.col=back}=#0000FF</code> will break the simple parser.
+		<br/><br/>
+		The following operators are supported:
+		<ul>
+			<li> = equals. not assignment as in Java</li>
+			<li> == equals same as above for those that wish to be specific</li>
+			<li> != not equals or null</li>
+			<li> $= ends with, the $ is used from regex for end of line</li>
+			<li> ^= starts with, again ^from regular expressions</li>
+			<li> += greater than, only for numbers</li>
+			<li> -= less than, only for numbers. The installer should validate to ensure the property is a valid number
+			or exceptions will be thrown.  The rather strange -=  and += syntax is used because &gt; and &lt;
+			must be escaped to &amp;gt; and &amp;lt; in XML attributes and the legibility
+			of the configuration files would be impared.</li>
+			<li> !=null not null, the property must be specified. This is usefull for testing the existence of environment variable for example ${env.ANT_HOME}!=null.  N.B. the empty string "" also tests to null, if a property exists
+			in the config file it <b>is</b> possible for the user to set the value to null by erasing the text in
+			a text entry type</li>
+			<li> ==null is null or empty</li>
+ 		 </ul>
+		  <br/><br/>
+		  The following logical operators are supported when combining property tests:
+		  <ul>
+			  <li>AND</li>
+			  <li>OR</li>
+		  </ul>
+			If logical operators are being used, each simple test must be enclosed in parentheses.<br/>
+				It is probably a bad idea to use any character that is not a letter or number in a property name
+				because these operators may be extended in the future
+			</td>
+		  <td>${myProperty}=value23<br/>
+		  	  (${myFirstProperty}=6) OR (${mySecondProperty}+=12)
+		  </td>
+            </tr>
+            <tr>
+              <td>postDisplayTarget</td>
+              <td>Post display targets are special Ant targets run after the page has been displayed.  Certain rules apply see <a href="posttargets.html" title="post display targets">post display targets</a></td>
+              <td>antinstaller-pagename</td>
+            </tr>
+
+          </tbody>
+        </table>
+        <br/>
+        <br/>
+        <table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="pageprogress">&lt;page
+type="progress"&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A page for showing the user the progress
+of the installation. This page contains the "Install" Button, so all
+installers should end with a progress page. Currently it is not checked
+that an installer ends with a progress page so the creator of the <code>antinstall-config.xml</code>
+should ensure it does.</td>
+            </tr>
+            <tr>
+              <td>showTargets</td>
+              <td>When this flag is true, in the Swing GUI, a graphical representation of 
+              the targets being run and the dependent targets found is displayed.</td>
+              <td>true</td>
+            </tr>
+          </tbody>
+        </table>
+<br/><a name="inputtypes"></a><h3>Input Types</h3>
+Input types represent fields in which users can input values or make selections. <br/>
+The input type element is
+also used to display text to the user.  While there is no limit to the number of comments or text you can add in the
+config file, the GUI only has a limited amount of space.  Check your config with your choosen Look And Feel to ensure
+that instructions are not cropped.<br/>
+All input types accept the <code>explanatoryText</code> attribute, where multi-line comments can be added.
+The GUI has a fixed width available for the <code>displayText</code> attribute which often does not provide much space.
+Single line comments can be added with the <code>comment</code> type.<br/>
+If anyone has a serious requirement to include more text that is currently possible post an RFE and I will look into 
+tool tip popups or a scrollable text box or perhaps instructions that can launch in a help window.  This has not been added yet
+since it is much more difficult to implement in the command line UI, and as yet we have no requirement.
+<br/><br/>
+				<table class="manual" cellspacing="0">
+          <tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="checkbox">&lt;checkbox&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The check box input is used for boolean
+input, a check box in the gui and a true false option on the command
+line.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be true or false.</td>
+              <td>my.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Enable all security options</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the check box.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>force</td>
+              <td>Force the option selected to be the default value.
+This can be used to indicate that the option is required. For example,
+an installer could be delivered where "Enable all security options" is
+always selected.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="comment">&lt;comment&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The comment input displays text to the
+user and does not accept any type of input.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>W</td>
+            </tr>
+            <tr>
+              <td>bold</td>
+              <td>Display the comment in bold, in the GUI version.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>title</td>
+              <td>Display the comment in a larger font in the GUI or in
+capitals in the command line.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="directory">&lt;directory&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The directory input allows the user to
+select a directory.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the directory.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select an installation directory</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the directory.  Empty defaultValue is accepted as of version beta0.8 provided that create and checkExists are false.</td>
+              <td>/var/log</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the directory for windows installations.</td>
+              <td>C:\Program Files\myapp</td>
+            </tr>
+            <tr>
+              <td>create</td>
+              <td>If this is true and the directory entered does not
+exist the user will be asked if the directory should be created.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>checkExists</td>
+              <td>If true the installation will not continue unless the
+directory selected exists. The user will have to select a directory
+that does exist, create it or cancel the install. If create is true and
+the directory does not exist the user simply has to agree to have the
+directory created.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="app-root">&lt;app-root&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The directory input allows the user to
+select a directory. The existence of files is then checked during
+validation to ensure the user has selected the correct directory. This
+can be used so a user can select the installation directory of a
+previously installed application. The directory can then be validated
+against 2 known files and 2 known directories that should exist.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the directory.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select an installation directory</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the directory.</td>
+              <td>/usr/local/jakarta-tomcat-4.0.1</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the directory for windows installations.</td>
+              <td>C:\Program Files\Existing Application</td>
+            </tr>
+            <tr>
+              <td>checkFile1</td>
+              <td>The relative path of a file based on the user
+selected directory. When the installer is run this file will be checked
+to see if it exists (optional).</td>
+              <td>conf/server.xml</td>
+            </tr>
+            <tr>
+              <td>checkFile2</td>
+              <td>A second file to check (optional).</td>
+              <td>conf/server.xml</td>
+            </tr>
+            <tr>
+              <td>checkDir1</td>
+              <td>The relative path of a directory based on the user
+selected directory (optional).</td>
+              <td>webapps</td>
+            </tr>
+            <tr>
+              <td>checkDir2</td>
+              <td>A second directory to check (optional).</td>
+              <td>conf</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="file">&lt;file&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The file input allows the user to select
+a file</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file the value will be the absolute path to the file.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the option.</td>
+              <td>Select the weblogic configuration file</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the file.</td>
+              <td>/var/log</td>
+            </tr>
+            <tr>
+              <td>defaultValueWin</td>
+              <td>The default for the file when installing on windows.</td>
+              <td>C:\log</td>
+            </tr>
+            <tr>
+              <td>checkExists</td>
+              <td>If true the installation will not continue unless the
+file selected exists. The user will have to select a file that does
+exist, create the file or cancel the install. If you want to create the
+file during the install if it does not exist use Ant.</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="select">&lt;select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The select input allows the user to
+select from a list of options. This will be represented as a group of
+radio buttons or a numbered list on the command line. An input type of
+select should have at least two child elements called <code>&lt;option&gt;</code> with the
+attributes <code>text</code> and <code>value</code>. The text is displayed next to the option and
+the value is the value set into the property. <br/>
+N.B. the defaultValue
+should be blank or one of the values in one of the options.  This is not checked by AntInstaller
+but is a requirement, there are no guarantees if you don't RTFM.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file. The value will be the text of one of the option value attributes.</td>
+              <td>file.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Select your favorite colour</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the option this should match one of
+the options values.</td>
+              <td>#FF0000</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="target-select">&lt;target-select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The target-select input allows the user to
+select targets from a list of options. This will be represented as a group of
+radio buttons or a numbered list on the command line. This input type is almost identical to the select
+input type but the value as well as being recorded as a property is set as a target.<br/>
+An input type of target-select should have at least two child elements called <code>&lt;option&gt;</code> with the
+attributes <code>text</code> and <code>value</code>. The text is displayed next to the option and
+the value is the target to be run (and the value set into the property).
+N.B. the defaultValue
+should be blank or one of the values in one of the options.  This is not checked by AntInstaller at runtime
+but is a requirement, there are no guarantees if you don't RTFM.  You should use the checkConfig script to validate the config.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file. The value will be the text of one of the option value attributes and will be the target that is run.</td>
+              <td>target.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Select your favorite colour</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default for the option this should match one of
+the options values.</td>
+              <td>fulldocs</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="large-select">&lt;large-select&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The large select has identical options to the <code>select</code> input above. 
+							Large select enables the list of options to be greater and is displayed differently.
+							In the Swing GUI the options are rendered as a drop-down list. In the text/console UI
+							the options are shown to the user 20 lines at a time.</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="target">&lt;target&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">The target input shows a check box, if
+the user selects the target the Ant target will be run when the
+installation starts. The order of the targets in the list is
+significant, and the targets will be run in that order. If there is
+more than one Page with target entry types or there is a page with a
+target attribute the targets will be run in the order they appear in
+the config file.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>target</td>
+              <td>The name of the target to be run it must exist in the
+build.xml file delivered with the install.</td>
+              <td>installSource</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the options available.</td>
+              <td>Do you want to install the source code.</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>true or false, determines if the check box is
+selected by default.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>force</td>
+              <td>If true the checkbox will not be editable and will be
+set to the value in the defaultValue attribute.  This can be used to indicate that installing
+this component is not optional.</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>osSpecific</td>
+              <td>If the osSpecific flag is set the Operating System of the current system will
+be appended to the name of the target actually run by Ant so that different
+targets can be run according to the final deployment platform.
+This feature goes against the principles of
+building cross platform installers, but is provided so that common installer
+tasks such as creating icons and shortcuts can be run using the platform specific executables.
+</td>
+              <td>false</td>
+            </tr>
+            <tr>
+              <td>strict</td>
+              <td>Currently there are two modes for OS specific targets strict and not strict (lax). <br/>
+Strict target will return the target name plus the exact String in the
+System Property "os.name" this means you will have to provide targets for
+every possible OS version. See
+<a href="http://lopica.sourceforge.net/os.html">this page</a> for a list of possible values.
+There are a great many but you may not want to consider some of the options.<br/><br/>
+Lax target will return one of the following strings only
+<ul>
+	<li>"[target-name]-linux" - Linux </li>
+	<li>"[target-name]-mac" - Mac OS and Mac OS X</li>
+	<li>"[target-name]-sun" - SunOS and Solaris</li>
+	<li>"[target-name]-win" - Windows</li>
+	<li>"[target-name]-other" - any thing else</li>
+</ul> 
+so you only have to create 5 ant targets to support all the cases.  It is pretty hard
+to support windows bit with this system, if anyone needs to specifically support this and does not
+want to use the existing strict mechanism, get in touch.  JDK1.4 on Win16 boxes strikes me as
+an unlikely combination ;)
+							</td>
+              <td>false</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="text">&lt;text&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">An text input entry is a field into which
+the user can write any text (or no text).</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>name.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text or displayed as a default in the GUI.</td>
+              <td>${java.user.name}</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="validated">&lt;validated&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A validated text input entry is a text
+field into which the user can write any text but the installation will
+not continue unless the text entered matches a regular expression
+provided.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>server.url</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]$</td>
+            </tr>
+					</tbody>
+				</table>
+				
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="extvalidated">&lt;ext-validated&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">An externally validated text input entry is a text
+field into which the user can write any text but the installation will
+not continue unless the text entered passes a validation function.  The validation function is not part
+of AntInstaller, a fully qualified classname (that is on the classpath at runtime) is specified which AntInstaller
+executes to validate.  One instance will be created per input element which should conform to the interface
+<code>org.tp23.antinstaller.input.Validator</code>. <br/>  
+This feature is not tested but does provide flexibility in validating input, if you use this feature please
+report back you results (success or failures) to the AntInstaller project pages.  We wish to discuss
+integrating external validation into the Localization of the installers (when it happens) with 
+active users of this feature.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the text entered by the user.</td>
+              <td>server.url</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the text to be entered.</td>
+              <td>Choose an open network port</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the external validator.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>validationClass</td>
+              <td>The class used as a Validator</td>
+              <td>com.me.val.PortOpenValidator</td>
+            </tr>
+					</tbody>
+				</table>
+				
+				
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="date">&lt;date&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A text input entry that must be a valid
+date. The dateformat string must be compatible with <code>java.text.SimpleDateformat</code>
+By default the format is english dates <code>dd/MM/yyyy</code> but can be
+changed to any valid format. If the date field is used in an installer it is not possible to enter blank dates.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be set in the <code>ant.install.properties</code>
+file, the value will be the date entered by the user.</td>
+              <td>mydate.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the date to be
+entered.</td>
+              <td>Enter your name</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the date format. Alternatively the String <code>TODAY</code>
+may be entered and the default value will be the time the installer is
+run.</td>
+              <td>true</td>
+            </tr>
+            <tr>
+              <td>dateFormat</td>
+              <td>The expression used to create the DateFormat.</td>
+              <td>dd-MM-yy</td>
+            </tr>
+					</tbody>
+				</table>
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="password">&lt;password&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A password text input is identical to a
+validated text input except that the display does not echo in the Swing
+Version (If anyone knows how to prevent the console echoing please get
+in touch) This password field is VERY INSECURE so dont blame me. </td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>property</td>
+              <td>The name of the property to be sent to Ant the
+password will not feature in <code>ant.install.properties</code> file,
+the value will be the text entered by the user. If the installer is in
+verbose mode the properties file will contain the property name but not
+the value entered by the user.</td>
+              <td>password.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the password to be
+entered.</td>
+              <td>Enter password</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression. This will be shown
+as an example if the user enters an invalid password.</td>
+              <td>pa55word</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[a-zA-Z_0-9]{8}$</td>
+            </tr>
+			<tr>
+				<td>textMask</td>
+              <td>When set to <code>true</code> an attempt is made to hide the password on the command line.
+							This feature is optional and has not been tested on different platforms.   
+							It is a pure Java solution using a masking thread so there 
+							is a theoretical requirement for some CPU head room to function correctly.
+							It does not work where \r is not supported for example the eclipse console.<br/><br/>
+							see SUN's proposed solution
+							<a href="http://java.sun.com/features/2002/09/pword_mask.html"
+							>http://java.sun.com/features/2002/09/pword_mask.html</a><br/>
+							see also, the embarrasing bug report on SUNs site
+							<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435"
+							>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435</a><br/>
+							see also, Ant's bug report
+							<a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687"
+							>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687</a><br/>
+							</td>
+							<td>true</td>
+						</tr>
+          </tbody>
+        </table>
+
+				<br/>
+				<table class="manual" cellspacing="0">
+					<tbody>
+            <tr class="tpheader">
+              <th class="manual" colspan="3"><a name="password-confirm">&lt;password-confirm&gt;</a></th>
+            </tr>
+            <tr>
+              <td colspan="3">A confirm password input is identical to a
+password input except that to validate correctly a password field on the same page
+with the property name specified in the origField attribute.</td>
+            </tr>
+            <tr class="tpheader">
+              <th class="manual2">Attribute</th>
+              <th class="manual2">Description</th>
+              <th class="manual2">Example</th>
+            </tr>
+            <tr>
+              <td>origField</td>
+              <td>There must be a password field with its property set to this value on the same page.
+</td>
+              <td>password.property</td>
+            </tr>
+            <tr>
+              <td>displayText</td>
+              <td>The text to be shown describing the password to be
+entered.</td>
+              <td>Confirm password</td>
+            </tr>
+            <tr>
+              <td>defaultValue</td>
+              <td>The default value if the user enters no text, this
+should be valid according to the regular expression. This will be shown
+as an example if the user enters an invalid password.</td>
+              <td>pa55word</td>
+            </tr>
+            <tr>
+              <td>regex</td>
+              <td>The regular expression used to validate the text, the
+whole regex should match the text entered.</td>
+              <td>^[a-zA-Z_0-9]{8}$</td>
+            </tr>
+						<tr>
+							<td>textMask</td>
+              <td>When set to <code>true</code> an attempt is made to hide the password on the command line.
+							This feature is optional and has not been tested on different platforms.   
+							It is a pure Java solution using a masking thread so there 
+							is a theoretical requirement for some CPU head room to function correctly.
+							It does not work where \r is not supported for example the eclipse console.<br/><br/>
+							see SUN's proposed solution
+							<a href="http://java.sun.com/features/2002/09/pword_mask.html"
+							>http://java.sun.com/features/2002/09/pword_mask.html</a><br/>
+							see also, the embarrasing bug report on SUNs site
+							<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435"
+							>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435</a><br/>
+							see also, Ant's bug report
+							<a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687"
+							>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6687</a><br/>
+							</td>
+							<td>true</td>
+						</tr>
+          </tbody>
+        </table>
+			<br/><br/>
+			<a name="hiddentypes"></a><h3>Hidden Elements</h3>
+			Hidden elements are those elements of pages which are not displayed to the user,
+			but which can be used to set properties and apply conditional logic.<br/>
+        <br/>
+			<table class="manual" cellspacing="0">
+	  <tbody>
+		<tr class="tpheader">
+		  <th class="manual" colspan="3"><a name="conditional">&lt;conditional&gt;</a></th>
+		</tr>
+		<tr>
+		  <td colspan="3">The conditional element allows the conditional execution of a nested element.
+			  Currently, only &lt;hidden&gt; elements may be nested within a conditional block.
+		  This can be useful for initialising properties or default values based on other user selections</td>
+		</tr>
+		<tr class="tpheader">
+		  <th class="manual2">Attribute</th>
+		  <th class="manual2">Description</th>
+		  <th class="manual2">Example</th>
+		</tr>
+		<tr>
+		  <td>ifProperty</td>
+		  <td>The nested <code>hidden</code> element(s) will be evaluated if the property has the correct value.
+			  This can be used to
+		conditionally set properties when certain other properties match specific values.
+		The format of the property can be as simple as <code>${name}=value</code> or can combine tests on multiple properties such as <code>(${name}!=value) AND (${name2}^=value2)</code>.  There must be no spaces
+		and both the property and value are case sensitive. See the <a href="#ifproperty">ifProperty description</a>
+			  for details of the comarisons supported.</td>
+		  <td>(${prop1}=1) OR (${prop2}=${prop3})</td>
+		</tr>
+		</table>
+        <br/>
+			<table class="manual" cellspacing="0">
+		  <tbody>
+			<tr class="tpheader">
+			  <th class="manual" colspan="3"><a name="hidden">&lt;hidden&gt;</a></th>
+			</tr>
+			<tr>
+			  <td colspan="3">The hidden element allows a property to be set by virtue of the page being displayed or,
+				  when nested within a <code>conditional</code> block, if the condition is true.
+			  This can be useful for initialising properties or default values based on other user selections.</td>
+			</tr>
+			<tr class="tpheader">
+			  <th class="manual2">Attribute</th>
+			  <th class="manual2">Description</th>
+			  <th class="manual2">Example</th>
+			</tr>
+			<tr>
+			  <td>property</td>
+			  <td>The name of the property to be set in the <code>ant.install.properties</code></td>
+			  <td>my.property</td>
+			</tr>
+			<tr>
+			  <td>value</td>
+			  <td>The value to which the property will be set</td>
+			  <td>myvalue</td>
+			</tr>
+			</table>
+        <br/>
+To edit the <code>antinstall-config.xml</code> file with the above properties a good XML editor is
+recommended.  A DTD exists to aid debugging this file.  Add the following doctype to enable validation
+<code>
+&lt;!DOCTYPE installer PUBLIC "-//tp23 //DTD Ant Installer Config//EN" "http://antinstaller.sf.net/dtd/antinstall-config-0.8.dtd"&gt;
+</code>
+If you find errors in the DTD please <a href="http://sourceforge.net/tracker/?group_id=123466">report them</a>.<br/>
+        <br/><a name="configbuild"></a>
+			      <h3><code>build.xml</code></h3>
+
+Once the <code>antinstall-config.xml</code> file is created you need
+to create an Ant <code>build.xml</code> file with targets that match
+the targets available in the install config. The <code>build.xml</code> file is out of scope of this document. The Ant documentation is avaliable at the following URL. <br/>
+<a href="http://antinstaller.sourceforge.net/manual/manual/index.html" title="Ant manual">http://antinstaller.sourceforge.net/manual/manual/index.html</a><br/>
+There are many tools to help you create these files, for example, eclipse has built in support.<br/><br/>
+
+There are some recomendations for the <code>build.xml</code> file to be used inside an installer.
+<ul>
+	<li>It is not recommended to use <code>depends</code> attributes for targets, although they do work in most situations.  The progress page graphic sometimes produces confusing results, for this reason it can be disabled.  <code>depends</code> targets may be called more often than expected since all targets specified in the <code>antinstall-config.xml</code> file and selected by the user are called explicitly. For the same reason be carful with the <code>if</code> attribute in target elements.</li>
+	<li>Classpath modifications are irrelevant if all classes are packaged in a self-extracting or non-extracting Jar.  Any task dependencies should be packaged with into the Jar with the <code>zipgroupfileset</code> fileset type.
+	<br/>for example <br/><code>&lt;zipgroupfileset dir="tasklibs" includes="*.jar"/&gt;</code></li>
+	<li>The <code>basedir</code> attribute, if specifed in the project element, is ignored and set by AntInstaller.  It is included in many AntInstaller examples since most tools expect this attribute to be present.</li>
+	<li>The <code>${ant.home}</code> property should not be relied upon, The computer on which the installer is being run may not have Ant installed.</li>
+	<li>Ant dependencies, for example Jars for optional tasks, should be explicitly added to the installer jar with a <code>zipgroupfileset</code>.  </li>
+	<li>Some other default Ant properties that relate to a presumed Ant configuration are not reliable due to the way Ant is launched in AntInstaller, for example <code>${ant.file}</code> </li>
+	<li>Some complex output redirections do not work as expected since output is already redirected to the log files.</li>
+</ul>
+
+        <br/><a name="scripts"></a>
+			      <h3><code>install.sh</code> Start scripts</h3>
+It is recommended to run create installers as <a href="#extractor">self extracting jars</a>, but it is
+possible to run the installer from scripts as a normal Java application.
+Create a new directory and prepare the files as you would
+for a normal Ant build. You can include the <code>install.sh</code>
+and <code>install.cmd</code> files from the demo app to launch the
+installer. These scripts can be launched in a GUI by double clicking on
+them, but they will require editing to set your classpath and resources correctly.<br/>
+The main class (<code><a href="java2html/antinstaller/org/tp23/antinstaller/runtime/ExecInstall.java.html">org.tp23.antinstaller.runtime.ExecInstall</a></code>) that starts the installer takes two parameters 
+on the command line which should be set in the start script.<br/>
+The first is the default
+GUI mode (either swing or text).  <br/>
+The second is the Ant basedir and typically it should be just "." the current directory.
+This directory will be the basedir of the ant script no matter what it says in the <code>build.xml</code> file.
+        <br/>
+The Ant runner currently passes the directory called <code>antlib</code>
+in which
+you can add any Ant optional jars to get them to auto load. You
+can also load them on classpath of the install scripts.<br/>
+        <br/><a name="extractor"></a>
+			      <h3>Self Extracting Jars</h3>
+    There is a mechanism to create a self extracting Jar where the entire installer,
+    all requried Java code, and the resources to install can be packaged into a single Jar.
+	The Jar is launched by double clicking on it (if the <code>.jar</code> extension is registered properly by Java) or by calling
+	the command <code>java -jar [jar_name].jar</code>.<br/>
+	In windows if the extension <code>.jar</code> has been re-registered (e.g. to open with winzip) right clicking on the jar
+	and selecting <code>Open With</code> then <code>javaw</code> will also run the installer.<br/>
+	Packaging a self extracting jar can be achieved with Ant.
+	See <a href="installertask.html">Installer Ant Task</a> to automate creation of SelfExtracting jars. <br/><br/>
+
+	When the isntaller is run all the contents of the jar will be extracted to a temporary
+	directory on the users machine.  This temporary directoy is the base directory for the Ant 
+	build when run.
+	The build.xml file should not include any relative file references.  The <code>${basedir}</code> property is required since
+	the file is excracted a new empty temporary directory that is not know when 
+	the <code>build.xml</code> file is being written.  This directory will be the value of <code>${basedir}</code>
+	when the installer is run. If packagine the self extractor manually without using the AntInstaller task the main class should be set in the manifest.  <br/>
+	Here is an example <code>MANIFEST.MF</code> file.<br/>
+	<pre>
+Manifest-Version: 1.0 
+Main-Class: <a href="java2html/antinstaller/org/tp23/antinstaller/selfextract/SelfExtractor.java.html">org.tp23.antinstaller.selfextract.SelfExtractor</a>
+Look-And-Feel: org.tp23.jgoodies.plaf.plastic.PlasticXPLookAndFeel
+	</pre>
+	The Look And Feel is also required in the <code>MANIFEST.MF</code> file since the autoextract code shows a progress bar using Swing.
+	The value should be the same Look And Feel used in the main Swing GUI specified in the installer element of <code>antinstall-config.xml</code>.  If not, ensure the main Look And Feel fully supports updating the UI, not LAFs all do.  
+	<br/>
+	<br/>If a resource is included called <code>/resources/extract-image.png</code> it will be displayed during the 
+	extraction process.  You can remove the image from the classpath if you don't like it or change it to any other
+	png image of the same size.<br/>
+	<img src="images/extract-image-example.png" alt="example extract image"/>
+ <br/>
+	<br/>
+        <br/><a name="non-extractor"></a>
+			      <h3>Non Extracting Jars</h3>
+	As of version 0.7.2 a feature has been added to load the installer without having to extract any files until the 
+	Ant build is run.  This has the advantage of not having to unjar AntInstaller itself or its dependencies such as Ant and the look and feel.
+	See <a href="installertask.html">Installer Ant Task</a> to automate creation of NonExtracting jars. <br/><br/>
+	If you are manually packaging the Jar in order to specify that the NonExtractor should be used the Jar <code>META-INF/MANIFEST.MF</code> file should specify
+	<code><a href="java2html/antinstaller/org/tp23/antinstaller/selfextract/NonExtractor.java.html">org.tp23.antinstaller.selfextract.NonExtractor</a></code>.  Since the NonExtractor does not need to show 
+	the progress bar for the extraction no look and feel is required in the manifest.
+	An example <code>META-INF/MANIFEST.MF</code>
+	<pre>
+Manifest-Version: 1.0
+Main-Class: <a href="java2html/antinstaller/org/tp23/antinstaller/selfextract/NonExtractor.java.html">org.tp23.antinstaller.selfextract.NonExtractor</a>
+	</pre>
+	The NonExctractor still creates temporary space on the deployment system and still sets the <code>${basedir}</code>
+	to this space.
+	The <code>build.xml</code> file and the <code>antinstall-config.xml</code> are read from inside the Jar and all 
+	properties are passed directly 
+	to Ant.  The properties file is still readable for debuging installers. In order to access and extract resources inside the Jar the unzip or unjar Ant tasks should be used.  In order to identify the Jar file in teh build.xml file a new property has been added <code>${antinstaller.jar}</code>.
+	The following example
+	extracts a file called <code>myresource.zip</code> into the temporary directory (from there it could be unzipped 
+	to the deployment directory)
+	<pre>
+&lt;unzip src="${antinstaller.jar}" dest="${basedir}"&gt;
+	&lt;patternset&gt;
+		&lt;include name="myresource.zip"/&gt;
+	&lt;/patternset&gt;
+&lt;/unzip&gt;</pre>
+	A more likely example is to unzip all the files in your application to the installation directory selected by the user.
+	<pre>
+&lt;unzip src="${antinstaller.jar}" dest="${my.installation.dir}"&gt;
+	&lt;patternset&gt;
+		&lt;include name="bin/*"/&gt;
+		&lt;include name="classes/*"/&gt;
+		&lt;include name="help/*"/&gt;
+		&lt;include name="doc/*"/&gt;
+	&lt;/patternset&gt;
+&lt;/unzip&gt;</pre>
+	Remember all the classes for AntInstaller need to be in the root of the Jar for the JVM to find them when the 
+	Jar is first loaded so it is probably best to put all the deployable resources in a subdirectory inside the Jar 
+	This will prevent name clashes with the Jars contents which are in the <code>org</code>, <code>META-INF</code> and <code>resources</code> directories. <br/> 
+	
+	<a name="refs"></a>
+			<h3>Dynamic References</h3>
+	As of version beta 0.5 in certain circumstances the default values of input fields can be based on existing properties.  To reference collected input values use the Ant property syntax <code>${property.reference}</code>.
+	References can be mixed with normal text as in Ant. <br/>
+	 For example, <br/>
+<pre>
+&lt;text
+  property="new.property"
+  displayText="Enter the installation directory"
+  defaulValue="/usr/local/${project.short.name}"
+  defaultValueWin="C:\Program Files\${project.short.name}"
+  create="true"
+/&gt;
+</pre>
+		As of version beta 0.7 the default values of input fields can be based on environment variables.  To reference collected input values use the normal Ant syntax <code>${env.ENVIRONMENT_VARIABLE}</code>.<br/>
+	  The prefix is always <code>env.</code> since this is not set with an Ant <code>&lt;property&gt;</code> task, it is part of the AntInstaller runtime.  The results will be identical to <code>&lt;property environment="env."&gt;</code> since AntInstaller make direct calls to the Ant APIs.<br/>
+		The environment is NOT added by default to the build.xml or the installer when Ant runs, if you need the environment
+		in the <code>build.xml</code> file call it in the usual way
+		Also the java system properties are included prefixed by "java.". For example, <code>${java.user.name}</code> returns the user currently running the installer.
+<br/><br/>
+			Dynamic references can use nested property values. For example, if the value of <code>${target.server}</code> is <code>tomcat</code>,
+			the following syntax can be used to set the default value of an input property to be the value of <code>${tomcat.default.http.port}</code><br/>
+<pre>
+&lt;validated
+	property="http.port"
+	displayText="HTTP port:"
+	defaultValue="${${target.server}.default.http.port}"
+	regex="^[0-9]{2,5}$"
+/&gt;
+</pre>
+<br/>
+	Dynamic references have the following limitations<br/>
+	<br/>
+	<ul>
+		<li>Dynamic references can only be added to <code>defaultValue</code>,  <code>defaultValueWin</code>, comment <code>displayText</code>, comment <code>explanatoryText</code> and text or html in a <a href="#pagetext" title="Text pages">text page</a> (currently)</li>
+		<li>The properties must have been set in previous pages not in the current page (or future pages)</li>
+		<li>Unlike Ant if the property has not been evaluated a blank string "" will be inserted instead of the reference.
+		    This means accidents like <code>/usr/local/${non.prop}</code> should not happen but will use <code>/usr/local</code>, generally neither case
+			is desired, so as with Ant check the effects of absent properties before releasing your installer.  Alternativly use a validated text field and specify a minimum length in the regular expression to ensure that blank values do notget accepted.</li>
+		<li>Once a user has edited a field the evaluation stops.<br/>
+		For example, on the first page <code>${proj.short.name}</code> is set
+		and on a subsequent page <code>${proj.short.name}/lib</code> and <code>${proj.short.name}/classes</code>. If the user changes one field to
+		<code>[value of ${proj.short.name}]/myclasses</code> and then goes back and changes the first page when the subsequent pages are shown the value will <b>not</b> update to <code>[new value of ${proj.short.name}]/myclasses</code>.  This only applies to the Swing GUI since in the command line the user can not go back.</li>
+	</ul>
+	
+ <br/>
+	<br/>
+	<a name="pagedisplay"></a>
+	<h3>Page Displaying</h3>
+	It is a common requirement to have a few options at the start of the installer and only show certain other pages if the user selected one of the initial options.  For example,  an option to install the source code, if the user is going to install the source code show a page with options to decide where to put the code, the documents and perhaps a checkbox if icons for the documents should be created.  This page should not be shown to people who are not installing the source code. Two mechanism are available to achieve this. 
+	<br/><br/>
+	The first mechanism is to use a <code>target</code> input on a previous page and then add <code>ifTarget</code> attributes to the subsequent page elements.
+	
+	The second mechanism uses the <code>ifProperty</code> attribute to conditionally show pages based on the existence or value of properties. Since both the System Properties from Java and the users environment variables are available as properties it is now possible to base pages on the existence of certain properties for example if CATALINA_HOME is set it is a safe bet the user already has tomcat installed.  Also if ProgramFiles is present it is probably a windows system.  N.B.  for more a more accurate way to run tasks based on the operating system of the user the target tag has been enhanced to run osSpecific targets.
+	
+	See the ifProperty attribute of the <a href="#pageinput">InputPage</a> type. 
+	
+	<br/><br/>
+	<a href="index.html"><img class="but" src="images/ant-install-small.png" alt="home"></a>
+<!-- Do not edit the following line  used by manual-print.jsp -->
+		<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/manual/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/LICENSE	(revision 14989)
@@ -0,0 +1,203 @@
+/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      "License" shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      "Licensor" shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      "Legal Entity" shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      "control" means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      "You" (or "Your") shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      "Source" form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      "Object" form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      "Work" shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      "Derivative Works" shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      "Contribution" shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, "submitted"
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *      "Contributor" shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a "NOTICE" text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an "AS IS" BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets "[]"
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same "printed page" as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] [name of copyright owner]
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   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.
+ */
Index: /release-kits/shared/ant-installer/web/manual/ant_in_anger.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/ant_in_anger.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/ant_in_anger.html	(revision 14989)
@@ -0,0 +1,1122 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<head>
+<title>
+    Ant in Anger
+</title>
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+<h1 align="center">Ant in Anger:
+</h1>
+<h2 align="center">
+        Using Apache Ant in a Production Development System
+</h2>
+
+<h4  align="center">
+Steve Loughran<br>
+Last updated 2005-03-16
+</h4>
+
+<a name="introduction">
+
+<h2>Introduction</h2>
+</a>
+
+<a href="http://ant.apache.org/">Apache Ant</a>
+ can be an invaluable tool in a team development process - or it can
+be yet another source of problems in that ongoing crises we call
+development . This
+document contains some strategies and tactics for making the most of
+Ant. It is moderately frivolous in places, and lacks almost any actual
+examples of Ant XML. The lack of examples is entirely deliberate - it
+keeps document maintenance costs down. Most of the concepts covered
+don't need the detail provided by XML representations, as it is the processes we
+are concerned about, not the syntax. Finally, please be aware that the
+comments here are only suggestions which need to be customised to meet
+your own needs, not strict rules about what should and should not be
+done.
+
+<p>
+Firstly, here are some assumptions about the projects which this
+document covers:
+<ul>
+<li> Pretty much pure Java, maybe with some legacy cruft on the edges.
+
+<li> Team efforts, usually with the petulant prima-donnas all us Java
+programmers become once we realise how much in demand we are.
+
+<li> A fairly distributed development team - spread across locations and
+maybe time zones.
+
+<li> Separate sub projects - from separate beans in a big
+enterprise application to separate enterprise applications which need to
+be vaguely aware of each other.
+
+<li> Significant mismatch between expectations and time available to
+deliver. 'Last Week' is the ideal delivery date handed down from above,
+late next century the date coming up from below.
+
+<li> Everyone is struggling to keep up with platform and tool evolution.
+
+<li> Extensive use of external libraries, both open and closed source.
+</ul>
+
+What that all means is that there is no time to spend getting things
+right, you don't have that tight control on how the rest of the team
+works and the development process is often more one of chaos minimisation
+than anything else. The role of Ant in such projects is to ensure that
+the build, test and deploy processes run smoothly, leaving you with all
+the other problems.
+
+<a name="core">
+<h2>Core Practices</h2>
+</a>
+<h3>
+Clarify what you want Ant to do</h3>
+
+Ant is not a silver bullet. It is just another rusty bullet in the armory of
+development tools available at your disposal. Its primary purpose is to
+accelerate the construction and deployment of Java projects. You could certainly
+extend Ant to do anything Java makes possible: it is easy to imagine writing an
+image processing task to help in web site deployment by shrinking and
+recompressing jpeg files, for example. But that would be pushing the boundary of
+what Ant is really intended to do - so should be considered with care.
+
+<p>
+Ant is also a great adjunct to an IDE; a way of doing all the housekeeping of
+deployment and for clean, automated builds. But a good modern IDE is a
+productivity tool in its own right - one you should continue to use. Ant
+just lets you give the teams somewhat more freedom in IDE choice - &quot;you can
+use whatever you want in development, but Ant for the deployment
+builds&quot; Now that many modern open source and commercial IDEs
+include Ant support (including jEdit, Forte, Eclipse and IDEA),
+developers can use a great IDE, with Ant providing a rigorous and portable 
+build process integrated into the tool. 
+
+<h3>
+Define standard targets
+</h3>
+
+When you have multiple sub projects, define a standard set of targets.
+Projects with a split between interface and implementation jar files
+could consider <b>impl</b> and <b>intf</b> targets - with separate
+<b>debug-impl</b> and <b>debug-intf</b> targets for the debug version.
+And of course, the ubiquitous <b>clean</b> target.
+
+<p>
+
+With standard target names, it is easy to build encompassing Ant build
+files which just hand off the work to the classes below using the
+<a href="manual/CoreTasks/ant.html">ant</a>
+task. For example. the clean target could be handed down to the <tt>intf</tt> and
+<tt>impl</tt> subdirectories from a parent directory
+
+<pre>&lt;target name=&quot;clean&quot;  depends=&quot;clean-intf, clean-impl&quot;&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;clean-intf&quot; &gt;
+    &lt;ant dir=&quot;intf&quot; target=&quot;clean&quot; /&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;clean-impl&quot;&gt;
+    &lt;ant dir=&quot;impl&quot; target=&quot;clean&quot; /&gt;
+&lt;/target&gt;  </pre>
+
+If you give targets a <tt>description</tt> tag, then calling <tt>ant
+-projecthelp</tt> will list all tasks with their description as 'main targets', and 
+all tasks without a description as subtargets. Describing all your
+entry points is therefore very useful, even before a project becomes big and complicated.
+  
+<h3>
+    Extend Ant through new tasks
+</h3>
+
+If Ant does not do what you want, you can use the
+<a href="manual/CoreTasks/exec.html">exec</a> and
+<a href="manual/CoreTasks/java.html">java</a> tasks or
+<a href="manual/OptionalTasks/script.html">inline scripting</a> to extend it. In a
+project with many <tt>build.xml</tt> files, you soon find that having a single
+central place for implementing the functionality keeps maintenance
+overhead down. Implementing task extensions through Java code seems
+extra effort at first, but gives extra benefits:-
+
+<ul>
+<li>Cross platform support can be added later without changing any
+<tt>build.xml</tt> files</li>
+
+<li>The code can be submitted to the Ant project itself, for other
+people to use and maintain</li>
+
+<li>It keeps the build files simpler</li>
+</ul>
+
+In a way, it is this decoupling of functionality, "the tasks", from
+the declaration of use, "the build file", that has helped Ant succeed.
+If you have to get something complex done in Make or an IDE, you have a
+hairy makefile that everyone is scared of, or an IDE configuration that
+is invariably very brittle. But an Ant task is reusable and shareable
+among all Ant users. Many of the core and optional tasks in Ant today,
+tasks you do or will come to depend on, were written by people trying to
+solve their own pressing problems.
+
+<h3>
+Embrace Automated Testing
+</h3>
+
+<b>(alternatively "recriminate early, recriminate often")</b>
+<p>
+Ant lets you call <a href="manual/OptionalTasks/junit.html">JUnit</a>
+tasks, which unit test the code your team has written. Automated testing
+may seem like extra work at first, but JUnit makes writing unit tests so
+easy that you have almost no reason not to. Invest the time in learning
+how to use JUnit, write the test cases, and integrate them in a 'test'
+target from Ant so that your daily or hourly team build can have the
+tests applied automatically. One of the free to download chapters of
+<a href="http://manning.com/hatcher">Java Development with Ant</a>
+shows you how to use JUnit from inside Ant.  
+
+<p>
+Once you add a way to fetch code from the SCM system, either as an Ant
+task, in some shell script or batch file or via some continuous
+integration tool. the integration test code can be a pure Ant task run
+on any box dedicated to the task. This is ideal for verifying that the
+build and unit tests work on different targets from the usual
+development machines. For example, a Win95/Java1.1 combination could be
+used even though no developer would willingly use that configuration
+given the choice.
+
+<p>
+System tests are harder to automate than unit tests, but if you can
+write java code to stress large portions of the system - even if the code
+can not run as JUnit tasks - then the <a href= "manual/CoreTasks/java.html">java</a>
+task can be used to invoke them. It is best to specify that you want a
+new JVM for these tests, so that a significant crash does not break the
+full build. The Junit extensions such as 
+<a href="http://httpunit.sourceforge.net/">HttpUnit</a> for web pages, and 
+<a href="http://jakarta.apache.org/cactus/">Cactus</a> for J2EE and servlet 
+testing help to expand the testing framework. To test properly you will still
+need to invest a lot of effort in getting these to work with your project, and 
+deriving great unit, system and regression tests - but your customers will love 
+you for shipping software that works.   
+
+<h3>Learn to Use and love the add-ons to Ant</h3>
+The Ant distribution is not the limit of the Ant universe, it is only
+the beginning. Look at the 
+<a href="http://ant.apache.org/external.html">
+External Tools and Tasks page
+</a> for an up to date list. Here are some of them that .
+
+<ul>
+<li>
+<a href="http://checkstyle.sourceforge.net/">Checkstyle</a><br>
+This tool audits your code and generates HTML reports of wherever any
+style rule gets broken. Nobody can hide from the code police now! tip:
+start using this early, so there's less to correct.</li>
+<li>
+<a href="http://ant-contrib.sf.net/">Ant-contrib</a><br>
+This sourceforge project contains helper tasks that are kept separate
+from core Ant for ideological purity; the foreach and trycatch tasks in
+particular. These give you iteration and extra error handling. Also on
+the site is the &lt;cc&gt; task suite, that compile and link native code
+on a variety of platforms.</li>
+<li>
+<a href="http://xdoclet.sourceforge.net/">XDoclet</a>
+XDoclet adds attributed oriented programming to Java. By adding javadoc
+tags to your code you can have XDoclet automatically generate <tt>web.xml</tt>
+descriptors, taglib descriptors, EJB interfaces, JMX interface classes,
+Castor XML/SQL bindings, and many more. The key here is that all those
+fiddly little XML files you need to create, and those interfaces EJB and
+JMX requires to implement, all can be autogenerated from your Java
+code with a few helper attributes. This reduces
+errors and means you can change your code and have the rest of the app
+take its cue from the source. Never do EJB, JMX or webapps without it!
+</li>
+</ul>
+
+<a name="crossplatform">
+<h2>
+Cross Platform Ant
+</h2>
+</a>
+Ant is the best foundation for cross platform Java development and
+testing to date. But if you are not paying attention, it is possible to
+produce build files which only work on one platform - or indeed, one
+single workstation.
+
+<p>
+The common barriers to cross-platform Ant are the use of command line
+tools (exec tasks) which are not portable, path issues, and hard coding
+in the location of things.
+
+<h3>Command Line apps: <a href="manual/CoreTasks/exec.html">Exec</a> /
+ <a href= "manual/CoreTasks/apply.html">Apply</a></h3>
+
+The trouble with external invocation is that not all functions are found
+cross platform, and those that are often have different names - DOS
+descendants often expect <tt>.exe</tt> or <tt>.bat</tt> at the end of files. That can be
+bad if you explicitly include the extension in the naming of the command
+(don't!), good when it lets you keep the unix and DOS versions of an
+executable in the same bin directory of the project without name
+clashes arising.
+
+<p>
+Both the command line invocation tasks let you specify which platform
+you want the code to run on, so you could write different tasks for each
+platform you are targeting. Alternatively, the platform differences
+could be handled inside some external code which Ant calls. This can be
+some compiled down java in a new task, or an external script file.
+
+<h3>Cross platform paths</h3>
+
+Unix paths use forward slashes between directories and a colon to
+split entries. Thus
+<i>"/bin/java/lib/xerces.jar:/bin/java/lib/ant.jar"</i> is
+a path in unix. In Windows the path must use semicolon separators,
+colons being used to specify disk drives, and backslash separators
+<i>"c:\bin\java\lib\xerces.jar;c:\bin\java\lib\ant.jar"</i>.
+<p>
+This difference between platforms (indeed, the whole java classpath
+paradigm) can cause hours of fun.
+
+<p>
+Ant reduces path problems; but does not eliminate them entirely. You
+need to put in some effort too. The rules for handling path names are
+that 'DOS-like pathnames are handled', 'Unix like paths are handled'.
+Disk drives -'C:'- are handled on DOS-based boxes, but placing them in
+the <tt>build.xml</tt> file ruins all chances of portability. Relative file paths
+are much more portable. Semicolons work as path separators - a fact which
+is useful if your Ant invocation wrapper includes a list of jars as a
+defined property in the command line. In the build files you may find it
+better to build a classpath by listing individual files (using location=
+attributes), or by including a fileset of <tt>*.jar</tt> in the classpath
+definition.
+<p>
+There is also the <a
+href="manual/CoreTasks/pathconvert.html">PathConvert</a> task which
+can put a fully resolved path into a property. Why do that? Because then 
+you can use that path in other ways - such as pass it as a parameter to 
+some application you are calling, or use the replace task to patch it
+into a localised shell script or batch file.
+<p>
+Note that DOS descended file systems are case insensitive (apart from
+the obscure aberration of the WinNT POSIX subsystem run against NTFS),
+and that Windows pretends that all file extensions with four or more
+letters are also three letter extensions (try <tt>DELETE *.jav</tt> in your java
+directories to see a disastrous example of this).
+
+<p>
+Ant's policy on case sensitivity is whatever the underlying file system
+implements, and its handling of file extensions is that <tt>*.jav</tt> does not
+find any <tt>.java</tt> files. The Java compiler is of course case sensitive - you can
+not have a class 'ExampleThree' implemented in "examplethree.java".
+
+<p>
+Some tasks only work on one platform - <a href= "manual/CoreTasks/chmod.html">
+Chmod</a> being a classic example. These tasks usually result in just a
+warning message on an unsupported platform - the rest of the target's
+tasks will still be called. Other tasks degrade their functionality on
+platforms or Java versions. In particular, any task which adjusts the
+timestamp of files can not do so properly on Java 1.1. Tasks which can
+do that - <a href="manual/CoreTasks/get.html">Get</a>, <a
+href="manual/CoreTasks/touch.html">Touch</a> and <A href="manual/CoreTasks/unzip.html">
+Unjar/Unwar/Unzip</a> for example, degrade their functionality on
+Java1.1, usually resorting to the current timestamp instead.
+
+<p>
+Finally, Perl makes a good place to wrap up Java invocations cross
+platform, rather than batch files. It is included in most Unix
+distributions, and is a simple download for <a href=
+"http://www.activestate.com/Products/ActivePerl/">Win32 platforms from
+ActiveState</a>. A Perl file with <tt>.pl</tt> extension, the usual Unix
+path to perl on the line 1 comment and marked as executable can be run
+on Windows, OS/2 and Unix and hence called from Ant without issues. The
+perl code can be left to resolve its own platform issues. Don't forget to
+set the line endings of the file to the appropriate platform when you
+redistribute Perl code; <a
+href="manual/CoreTasks/fixcrlf.html">fixCRLF</a> 
+can do that for you.
+
+<a name="team">
+<h2>Team Development Processes</h2>
+</a>
+Even if each team member is allowed their choice of IDE/editor, or even
+OS, you need to set a baseline of functionality on each box. In
+particular, the JDKs and jars need to be in perfect sync. Ideally pick
+the latest stable Java/JDK version available on all developer/target
+systems and stick with it for a while. Consider assigning one person to
+be the contact point for all tools coming in - particularly open source
+tools when a new build is available on a nightly basis. Unless needed,
+these tools should only really be updated monthly, or when a formal
+release is made.
+
+<p>
+Another good tactic is to use a unified directory tree, and add on extra
+tools inside that tree. All references can be made relative to the tree.
+If team members are expected to add a directory in the project to their
+path, then command line tools can be included there - including those
+invoked by Ant exec tasks. Put everything under source code control and
+you have a one stop shop for getting a build/execute environment purely
+from CVS or your equivalent.
+
+<a name="deploying">
+<h2>Deploying with Ant</h2>
+</a>
+One big difference between Ant and older tools such as Make is that the
+processes for deploying Java to remote sites are reasonably well
+evolved in Ant. That is because we all have to do it these days, so
+many people have put in the effort to make the tasks easier.
+<p>
+Ant can <a href="manual/CoreTasks/jar.html">Jar</a>, <a href=
+"manual/CoreTasks/tar.html">Tar</a> or <a
+href="manual/CoreTasks/zip.html">Zip</a> files for deployment, while the
+<a href="manual/CoreTasks/war.html">War</a> task extends the jar task
+for better servlet deployment. 
+<a href ="manual/OptionalTasks/jlink.html">Jlink</a> is a
+jar generation file which lets you merge multiple sub jars. This is
+ideal for a build process in which separate jars are generated by sub
+projects, yet the final output is a merged jar. <a href=
+"manual/OptionalTasks/cab.html">Cab</a> can be used on Win32 boxes to
+build a cab file which is useful if you still have to target IE deployment.
+
+<p>
+The <a href="index.html#ftp">ftp</a> task lets you move stuff up to a
+server. Beware of putting the ftp password in the build file - a property
+file with tight access control is slightly better. The <a href=
+"manual/CoreTasks/fixcrlf.html">FixCRLF</a> task is often a useful interim step if
+you need to to adjust the line endings of files. A
+WebDav task has long been discussed, which would provide a more secure
+upload to web servers, but it is still in the todo list. Rumour has it
+that there is such a task in the jakarta-slide libraries. With MacOS X,
+Linux and Windows XP all supporting WebDAV file systems, you may even be able
+to use <a href="manual/CoreTasks/copy.html">copy</a> to deploy
+though a firewall. 
+
+<p>
+EJB deployment is aided by the <a href="manual/OptionalTasks/ejb.html">ejb</a> tasks,
+while the 
+<a
+href="manual/OptionalTasks/serverdeploy.html">serverdeploy</a>
+suite can deploy to multiple servers. The popularity of Ant has
+encouraged vendors to produce their own deployment tasks which they
+redistribute with their servers. For example, the Tomcat4.1 installation
+includes tasks to deploy, undeploy and reload web applications.
+
+<p>
+Finally, there are of course the fallbacks of just copying files to a
+destination using <a href="manual/CoreTasks/copy.html">Copy</a> and <a href="index.html#copydir">Copydir</a> , or just sending them to a person or
+process using <a href="manual/CoreTasks/mail.html">Mail</a> or the attachment
+aware <a href= "manual/OptionalTasks/mimemail.html">MimeMail</a>.
+In one project our team even used Ant to build CD images through a build followed
+by a long set of Copy tasks, which worked surprisingly well, certainly
+easier than when we mailed them to the free email service on
+myrealbox.com, then pulled them down from the far end's web browser, which we
+were running over WinNT remote desktop connection, that being tunneled
+through SSH.
+
+<a name="directories">
+<h2> Directory Structures</h2>
+</a>
+
+How you structure your directory tree is very dependent upon the
+project. Here are some directory layout patterns which can be used as
+starting points. All the jakarta projects follow a roughly similar
+style, which makes it easy to navigate around one from one project to
+another, and easy to clean up when desired. 
+
+<h3>Simple Project</h3>
+
+The project contains sub directories
+<table width="100%">
+<tr>
+    <td><b>bin</b>
+    </td>
+    <td>common binaries, scripts - put this on the path.
+    </td>
+</tr>
+
+<tr>
+    <td><b>build</b>
+    </td>
+    <td>This is the tree for building; Ant creates it and can empty it
+    in the 'clean' project.
+    </td>
+</tr>
+<tr>
+    <td><b>dist</b>
+    </td>
+    <td>Distribution outputs go in here; the directory is created in Ant
+    and clean empties it out
+    </td>
+</tr>
+<tr>
+    <td><b>doc</b>
+    </td>
+    <td>Hand crafted documentation
+    </td>
+</tr>
+<tr>
+    <td><b>lib</b>
+    </td>
+    <td>Imported Java libraries go in to this directory
+    </td>
+</tr>
+<tr>
+    <td><b>src</b>
+    </td>
+    <td>source goes in under this tree <i>in a hierarchy which matches
+    the package names<i>. The dependency rules of &lt;javac&gt; requires this.  
+    </td>
+</tr>
+</table>
+
+The bin, lib, doc and src directories should be under source code control.
+Slight variations include an extra tree of content to be included in the
+distribution jars - inf files, images, etc. These can go under source
+too, with a <tt>metadata</tt> directory for <tt>web.xml</tt> and similar
+manifests, and a <tt>web</tt> folder for web content - JSP, html, images
+and so on. Keeping the content in this folder (or sub hierarchy)
+together makes it easier to test links before deployment. The actual
+production of a deployment image, such as a war file, can be left to the
+appropriate Ant task: there is no need to completely model your source tree 
+upon the deployment hierarchy. 
+<p> 
+Javadoc output can be
+directed to a <tt>doc/</tt> folder beneath <tt>build/</tt>, or to <tt>doc/javadoc</tt>.
+
+<h3>Interface and Implementation split</h3>
+
+If the interface is split from the implementation code then this can be
+supported with minor changes just by having a separate build path for
+the interface directory - or better still just in the jar construction:
+one jar for interface and one jar for implementation.
+
+<h3>Loosely Coupled Sub Projects</h3>
+
+In the loosely coupled approach multiple projects can have their own
+copy of the tree, with their own source code access rights.
+One difference to consider is only having one instance of the bin and
+lib directories across all projects. This is sometimes good - it helps
+keep copies of xerces.jar in sync, and sometimes bad - it can update
+foundational jar files before unit testing is complete.
+
+<p>
+To still have a single build across the sub projects, use parent
+<tt>build.xml</tt> files which call down into the sub projects.
+<p>
+This style works well if different teams have different code
+access/commitment rights. The risk is that by giving extra leeway to the
+sub projects, you can end up with incompatible source, libraries, build
+processes and just increase your workload and integration grief all round.
+<p>
+The only way to retain control over a fairly loosely integrated
+collection of projects is to have a fully automated  build 
+and test process which verifies that everything is still compatible. Sam
+Ruby runs one for all the apache java libraries and emails everyone when
+something breaks; your own project may be able to make use of 
+<A href="http://cruisecontrol.sourceforge.net/">Cruise Control</a> for
+an automated, continuous, background build process. 
+
+<h3>Integrated sub projects</h3>
+
+Tightly coupled projects have all the source in the same tree; different
+projects own different subdirectories. Build files can be moved down to
+those subdirectories (say <tt>src/com/iseran/core</tt> and <tt>src/com/iseran/extras</tt>),
+or kept at the top - with independent build files named <tt>core.xml</tt> and
+<tt>extras.xml</tt>.
+
+<p>
+This project style works well if everyone trusts each other and the
+sub projects are not too huge or complex. The risk is that a split to a
+more loosely coupled design will become a requirement as the projects
+progress - but by the time this is realised schedule pressure and
+intertwined build files make executing the split well nigh impossible.
+If that happens then just keep with it until there is the time to
+refactor the project directory structures. 
+
+<a name="antupdate">
+<h2>
+    Ant Update Policies
+</h2>
+</a>
+
+Once you start using Ant, you should have a policy on when and how the
+team updates their copies. A simple policy is &quot;every official release
+after whatever high stress milestone has pushed all unimportant tasks
+(like sleep and seeing daylight) on the back burner&quot;. This insulates you
+from the changes and occasional instabilities that Ant goes through
+during development. Its main disadvantage is that it isolates you from
+the new tasks and features that Ant is constantly adding.
+
+<p>
+Often an update will require changes to the <tt>build.xml</tt> files. Most
+changes are intended to be backwards compatible, but sometimes an
+incompatible change turns out to be
+necessary. That is why doing the update in the lull after a big
+milestone is important. It is also why including <tt>ant.jar</tt> and related
+files in the CVS tree helps ensure that old versions of your software
+can be still be built.
+
+<p>
+The most aggressive strategy is to get a weekly or daily snapshot of the
+ant source, build it up and use it. This forces you to tweak the
+<tt>build.xml</tt> files more regularly, as new tasks and attributes can take
+while to stabilise. You really have to want the new features, enjoy
+gratuitous extra work or take pleasure in upsetting your colleagues to
+take this approach.
+
+<p>
+Once you start extending Ant with new tasks, it suddenly becomes much
+more tempting to pull down regular builds. The most recent Ant builds
+are invariably the best platform for writing your extensions, as you
+can take advantage of the regular enhancements to the foundational
+classes. It also prevents you from wasting time working on something
+which has already been done. A newly submitted task to do something
+complex such as talk to EJB engines, SOAP servers or just convert a text
+file to uppercase may be almost exactly what you need - so take it,
+enhance it and offer up the enhancements to the rest of the world. This
+is certainly better than starting work on your 'text case converter'
+task on Ant 0.8 in isolation, announcing its existence six months later
+and discovering that instead of adulation all you get are helpful
+pointers to the existing implementation. The final benefit of being
+involved with the process is that it makes it easier for your tasks to 
+be added with the Ant CVS tree, bringing forward the date when Ant has
+taken on all the changes you needed to make to get your project to work.
+If that happens you can revert to an official Ant release, and get on
+with all the other crises. 
+
+<p>
+You should also get on the <a href =
+"mailto:dev-subscribe@ant.apache.org">dev mailing list
+</a>, as it is where the other developers post their work, problems and
+experience. The volume can be quite high: 40+ messages a day, so
+consider routing it to an email address you don't use for much else. And
+don't make everyone on the team subscribe; it can be too much of a
+distraction.
+
+<a name="install">
+<h2>
+Installing with Ant.
+</h2>
+</a>
+Because Ant can read environment variables, copy, unzip and delete files
+and make java and OS calls, it can be used for simple installation
+tasks. For example, an installer for tomcat could extract the
+environment variable <tt>TOMCAT_HOME</tt>, stop tomcat running, and copy a war
+file to <tt>TOMCAT_HOME/webapps</tt>. It could even start tomcat again, but the
+build wouldn't complete until tomcat exited, which is probably not what
+was wanted. 
+
+<p>
+The advantage of using Ant is firstly that the same install targets
+can be used from your local build files (via an <tt>ant</tt> invocation
+of the <tt>install.xml</tt> file), and secondly that a basic install target is
+quite easy to write. The disadvantages of this approach are that the
+destination must have an up to date version of Ant correctly
+pre-installed, and Ant doesn't allow you to handle failures well - and a
+good installer is all about handling when things go wrong, from files
+being in use to jar versions being different. This means that Ant is not
+suited for shrink wrapped software, but it does work for deployment and
+installation to your local servers.
+
+<p>
+One major build project I was involved in had an Ant install build file
+for the bluestone application server, which would shutdown all four
+instances of the app server on a single machine, copy the new version of
+the war file (with datestamp and buildstamp) to an archive directory,
+clean up the current deployed version of the war and then install the
+new version. Because bluestone restarted JVMs on demand, this script was
+all you needed for web service deployment. On the systems behind the
+firewall, we upped the ante in the deployment process by using the ftp
+task to copy out the war and build files, then the telnet task to
+remotely invoke the build file. The result was we had automated
+recompile and redeploy to local servers from inside our IDE (Jedit) or
+the command line, which was simply invaluable. Imagine pressing a button
+on your IDE toolbar to build, unit test, deploy and then functional test
+your webapp. 
+
+<p>
+One extra trick I added later was a junit test case to run through the
+install check list. With tests to verify access permissions on network
+drives, approximate clock synchronisation between servers, DNS
+functionality, ability to spawn executables and all the other trouble
+spots, the install script could automatically do a system health test
+during install time and report problems. [The same tests could also be
+invoked from a JMX MBean, but that's another story]. 
+
+<p>
+So, Ant is not a substitute for a real installer tool, except in the
+special case of servers you control, but in that context it does let
+you integrate remote installation with your build. 
+
+
+<a name="tips">
+<h2>
+Tips and Tricks</h2>
+</a>
+<dl>
+<dt><b>
+    get
+</b><dd>
+
+The <a href="manual/CoreTasks/get.html">get</a> task can fetch any URL, so be used
+to trigger remote server side code during the build process, from remote
+server restarts to sending SMS/pager messages to the developer
+cellphones.
+
+<dt><b>
+i18n
+</b><dd>
+
+Internationalisation is always trouble. Ant helps here with the <a href=
+"manual/OptionalTasks/native2ascii.html">native2ascii</a> task which can escape out all non
+ascii characters into unicode. You can use this to write java files
+which include strings (and indeed comments) in your own non-ASCII
+language and then use native2ascii to convert to ascii prior to feeding
+through javac. The rest of i18n and l12n is left to you...
+
+<dt><b>
+Use Property Files
+</b><dd>
+
+Use external property files to keep per-user settings out the build
+files - especially passwords. Property files can also be used to
+dynamically set a number of properties based on the value of a single
+property, simply by dynamically generating the property filename from the
+source property. They can also be used as a source of constants across
+multiple build files.
+
+<dt><b>
+Faster compiles with Jikes
+</b><dd>
+
+The <a href="http://jikes.sourceforge.net/">jikes compiler</a> is usually much
+faster than javac, does dependency checking and has better error
+messages (usually). Get it. Then set
+<tt>build.compiler</tt> to "jikes" for it to be used in your build files.
+Doing this explicitly in your build files is a bit dubious as it requires the
+whole team (and sub projects) to be using jikes too - something you can only
+control in small, closed source projects. But if you set 
+<tt>ANT_OPTS&nbsp;=&nbsp;-Dbuild.compiler=jikes</tt>
+in your environment, then all your builds on your system will use 
+Jikes automatically, while others can choose their own compiler, or let
+ant choose whichever is appropriate for the current version of Java.   
+
+<dt><b>
+#include targets to simplify multi <tt>build.xml</tt> projects
+</b><dd>
+
+You can import XML files into a build file using the XML parser itself.
+This lets a multi-project development program share code through reference,
+rather than cut and paste re-use. It also lets one build up a file of
+standard tasks which can be reused over time. Because the import
+mechanism is at a level below which Ant is aware, treat it as
+equivalent to the #include mechanism of the 'legacy' languages C and
+C++.
+
+<p>
+There are two inclusion mechanisms, an ugly one for all parsers and a
+clean one. The ugly method is the only one that was available on Ant1.5 and
+earlier:-
+<pre>
+    &lt;!DOCTYPE project [
+      &lt;!ENTITY propertiesAndPaths SYSTEM &quot;propertiesAndPaths.xml&quot;&gt;
+      &lt;!ENTITY taskdefs SYSTEM &quot;taskdefs.xml&quot;&gt;
+    ]&gt;  
+    
+        &amp;propertiesAndPaths;
+        &amp;taskdefs;
+</pre>
+The cleaner method in Ant1.6 is the <tt>&lt;import&gt;</tt> task that imports
+whole build files into other projects. The entity inclusion example
+could <i>almost</i> be replaced by two import statements:-
+<pre>
+ &lt;import file="propertiesAndPaths.xml"&gt;
+ &lt;import file="taskdefs.xml"&gt;
+</pre>
+
+We say almost as top level declarations (properties and taskdefs) 
+do not get inserted into the XML file exactly where the import statement
+goes, but added to the end of the file. This is because the import process
+takes place after the main build file is parsed, during execution, whereas
+XML entity expansion is handled during the parsing process.
+
+<p>
+The <tt>&lt;import&gt;</tt> task does powerful things, such as let you override targets,
+and use ant properties to name the location of the file to import. Consult the
+<a href="manual/CoreTasks/import.html">documentation</a> for the specifics of
+these features.  
+
+<p>
+Before you go overboard with using XML inclusion, note that the
+<tt>ant</tt> task lets you call any target in any other build
+file - with all your property settings propagating down to that target.
+So you can actually have a suite of utility targets
+- "<tt>deploy-to-stack-a</tt>", "<tt>email-to-team</tt>", "<tt>cleanup-installation</tt>" which can
+be called from any of your main build files, perhaps with subtly changed
+parameters. Indeed, after a couple of projects you may be able to create
+a re-usable core build file which contains the core targets of a basic
+Java development project - compile, debug, deploy - which project specific
+build files call with their own settings. If you can achieve this then
+you are definitely making your way up the software maturity ladder. With
+a bit of work you may progress from being a SEI CMM Level 0 organisation
+&quot;Individual Heroics are not enough&quot; to SEI CMM Level 1, &quot;Projects only
+succeed due to individual heroics&quot;
+
+<p>
+NB, <tt>ant</tt> copies all your properties unless the
+<i>inheritall</i> attribute is set to false. Before that attribute
+existed you had to carefully name all property definitions in all build
+files to prevent unintentional overwriting of the invoked property by
+that of the caller, now you just have to remember to set
+<tt>inheritall="false"</tt> on all uses of the &lt;ant&gt; task.
+
+    
+<dt><b>
+Implement complex Ant builds through XSL
+</b><dd>
+
+XSLT can be used to dynamically generate build.xml files from a source
+xml file, with the <a href="manual/CoreTasks/style.html">xslt</a> task controlling
+the transform. This is the current recommended strategy for creating
+complex build files dynamically. However, its use is still apparently
+quite rare - which means you will be on the bleeding edge of technology.
+
+
+<dt><b>
+Change the invocation scripts
+</b><dd>
+
+By writing your own invocation script - using the DOS, Unix or Perl
+script as a starting point - you can modify Ant's settings and behavior for an
+individual project. For example, you can use an alternate variable to
+<tt>ANT_HOME</tt> as the base, extend the classpath differently, or dynamically
+create a new command line property &quot;<tt>project.interfaces</tt>&quot; from all <tt>.jar</tt>
+files in an interfaces directory.
+
+<p>
+Having a custom invocation script which runs off a CVS controlled
+library tree under <tt>PROJECT_HOME</tt> also lets you control Ant versions
+across the team - developers can have other copies of Ant if they want,
+but the CVS tree always contains the jar set used to build your project.
+
+<p>
+You can also write wrapper scripts which invoke the existing Ant
+scripts. This is an easy way to extend them. The wrapper scripts can add
+extra definitions and name explicit targets, redefine <tt>ANT_HOME</tt> and
+generally make development easier. Note that &quot;ant&quot; in Windows is really
+&quot;ant.bat&quot;, so should be invoked from another batch file with a "CALL
+ant" statement - otherwise it never returns to your wrapper.
+
+
+<dt><b>
+Write all code so that it can be called from Ant
+</b><dd>
+This seems a bit strange and idealistic, but what it means is that you should
+write all your java code as if it may be called as a library at some point in
+future. So do not place calls to <tt>System.exit()</tt> deep in the code - if you
+want to exit a few functions in, raise an exception instead and have
+<tt>main()</tt> deal with it.
+
+<p>
+Moving one step further, consider proving an Ant Task interface to the
+code as a secondary, primary or even sole interface to the
+functionality. Ant actually makes a great bootloader for Java apps as it
+handles classpath setup, and you can re-use all the built in tasks for
+preamble and postamble work. Some projects, such as 
+<a href="http://xdoclet.sf.net">XDoclet</a> only run under Ant, because
+that is the right place to be.
+
+<!-- <dt><b>
+Use Antidote as the invocation tool
+</b><dd>
+Even if you edit Ant files by hand, Antidote makes a good execution tool
+because it eliminates the startup time of the JVM, perhaps even some of
+the XML parsing delays. 
+ -->
+<dt><b>
+Use the replace task to programmatic modify text files in your project.  
+</b><dd>
+Imagine your project has some source files - BAT files, ASPX pages(!), anything
+which needs to be statically customised at compile time for particular
+installations, such driven from some properties of the project such as JVM options, or the URL
+to direct errors too. The replace task can be used to modify files, substituting text and creating
+versions customised for that build or destination. Of course, per-destination customisation
+should be delayed until installation, but if you are using Ant for the remote installation
+that suddenly becomes feasible.     
+
+<dt><b>
+Use the mailing lists
+</b><dd>
+There are two 
+<a href="http://ant.apache.org/mail.html">mailing lists</a> 
+related to Ant, user and developer. Ant user is where <i>all</i>
+questions related to using Ant should go. Installation, syntax, code
+samples, etc - post your questions there or search the archives for 
+whether the query has been posted and answered before. Ant-developer
+is where Ant development takes place - so it is <i>not</i> the place to
+post things like &quot;I get a compilation error when I build my project&quot; or
+&quot;how do I make a zip file&quot;. If you are actually extending Ant, on the other
+hand, it is the ideal place to ask questions about how to add new tasks, make
+changes to existing ones - and to post the results of your work, if you want them
+incorporated into the Ant source tree.  
+</dl>
+
+<a name="puttingtogether">
+    <h2>
+        Putting it all together
+    </h2>
+</a>
+
+What does an Ant build process look like in this world? Assuming a
+single directory structure for simplicity, the build file
+should contain a number of top level targets
+<ul>
+<li>build - do an (incremental) build
+<li>test - run the junit tests
+<li>clean - clean out the output directories
+<li>deploy - ship the jars, wars, whatever to the execution system
+<li>publish - output the source and binaries to any distribution site
+<li>fetch - get the latest source from the cvs tree
+<li>docs/javadocs - do the documentation
+<li>all - clean, fetch, build, test, docs, deploy
+<li>main - the default build process (usually build or build &amp; test)
+</ul>
+Sub projects &quot;web&quot;, &quot;bean-1&quot;, &quot;bean-2&quot; can be given their own build
+files - <tt>web.xml</tt>, <tt>bean-1.xml</tt>, <tt>bean-2.xml</tt> - with the same entry points.
+Extra toplevel tasks related to databases, web site images and the like
+should be considered if they are part of the process.
+
+<p>
+Debug/release switching can be handled with separate initialisation
+targets called before the compile tasks which define the appropriate
+properties. Antcall is the trick here, as it allows you to have two paths
+of property initialisation in a build file.   
+
+<p>
+Internal targets should be used to structure the process
+<ul>
+<li> init - initialise properties, extra-tasks, read in per-user
+property files.
+<li> init-release - initialise release properties
+<li> compile - do the actual compilation
+<li> link/jar - make the jars or equivalent
+<li> staging - any pre-deployment process in which the output is dropped
+    off then tested before being moved to the production site.
+</ul>
+
+The switching between debug and release can be done by making
+init-release conditional on a property, such as <tt>release.build</tt> 
+being set :-
+
+<pre>&lt;target name=&quot;init-release&quot; if=&quot;release.build&quot;&gt;
+    &lt;property name=&quot;build.debuglevel&quot; value=&quot;lines,source&quot;/&gt;    
+  &lt;/target&gt;
+</pre>
+
+You then have dependent targets, such as &quot;compile&quot;, depend on this
+conditional target; there the &quot;default&quot; properties are set, and then the
+property is actually used. Because Ant properties are <i>immutable</i>,
+if the release target was executed its settings will override the
+default values:
+
+<pre>&lt;target name=&quot;compile&quot; depends=&quot;init,init-release&quot;&gt;
+    &lt;property name=&quot;build.debuglevel&quot; value=&quot;lines,vars,source&quot;/&gt; 
+    &lt;echo&gt;debug level=${build.debuglevel}&lt;/echo&gt;
+    &lt;javac destdir=&quot;${build.classes.dir}&quot;
+       debug=&quot;true&quot;
+       debuglevel=&quot;${build.debuglevel}&quot;
+       includeAntRuntime=&quot;false&quot;
+       srcdir=&quot;src&quot;&gt;
+      &lt;classpath refid=&quot;compile.classpath&quot;/&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+</pre>
+
+As a result, we now have a build where the release mode only includes
+the filename and line debug information (useful for bug reports), while
+the development system included variables too. 
+<p>
+It is useful to define a project name property which can be echoed in
+the init task. This lets you work out which Ant file is breaking in a
+multi file build.
+
+<p>
+What goes in to the internal Ant tasks depends on your own projects. One
+very important tactic is &quot;keep path redefinition down through
+references&quot; - you can reuse paths by giving them an ID and then
+referring to them via the &quot;refid&quot; attribute you should only need to
+define a shared classpath once in the file; filesets can be reused
+similarly.
+
+<p>
+Once you have set up the directory structures, and defined the Ant tasks
+it is time to start coding. An early priority must be to set up the
+automated test process, as that not only helps ensures that the code
+works, it verifies that the build process is working.
+
+<p>
+And that's it. The build file shouldn't need changing as new source
+files get added, only when you want to change the deliverables or part
+of the build process. At some point you may want to massively
+restructure the entire build process, restructuring projects and the
+like, but even then the build file you have should act as a foundation
+for a split build file process -just pull out the common properties into
+a properties file all build files read in, keep the target names unified
+and keep going with the project. Restructuring the source code control
+system is often much harder work.
+
+<h2>The Limits of Ant</h2>
+
+Before you start adopting Ant as the sole mechanism for the build
+process, you need to be aware of what it doesn't do.
+<p>
+
+<h3>It's not a scripting language</h3>
+
+Ant lets you declare what you want done, with a bit of testing of the
+platform and class libraries first to enable some platform specific
+builds to take place. It does not let you specify how to handle things
+going wrong (a listener class can do that), or support complex
+conditional statements.
+
+<p>
+If your build needs to handle exceptions then look at the sound listener
+as a simple example of how to write your own listener class. Complex
+conditional statements can be handled by having something else do the
+tests and then build the appropriate Ant task. XSLT can be used for
+this.
+
+<h3>It's not Make</h3>
+
+Some of the features of make, specifically inference rules and
+dependency checking are not included in Ant. That's because they are
+&quot;different&quot; ways of doing a build. Make requires you to state
+dependencies and the build steps, Ant wants you to state tasks and the
+order between them, the tasks themselves can do dependency checking or
+not. A full java build using Jikes is so fast that dependency checking
+is relatively moot, while many of the other tasks (but not all), compare
+the timestamp of the source file with that of the destination file
+before acting.
+
+<h3>It's not meant to be a nice language for humans</h3>
+
+XML isn't a nice representation of information for humans. It's a
+reasonable representation for programs, and text editors and source code
+management systems can all handle it nicely. But a complex Ant file can
+get ugly because XML is a bit ugly, and a complex build is, well,
+complicated. Use XML comments so that the file you wrote last month
+still makes sense when you get back to it, and use Antidote to edit the
+files if you prefer it. 
+
+<h3>Big projects still get complicated fast</h3>
+
+Large software projects create their own complexity, with inter-dependent
+libraries, long test cycles, hard deployment processes and a multitude of
+people each working on their own bit of the solution. That's even before
+the deadlines loom close, the integration problems become insurmountable,
+weekends become indistinguishable from weekdays in terms of workload and 
+half the team stops talking to the other half. Ant may simplify the
+build and test process, and can eliminate the full time &quot;makefile engineer&quot;
+role, but that doesn't mean that someone can stop &quot;owning the build&quot;. 
+Being in charge of the build has to mean more than they type &quot;<tt>ant all</tt>&quot; on
+their system, it means they need to set the standards of what build tools to
+use, what the common targets, what property names and files should be
+and generally oversee the sub projects build processes. On a small project,
+you don't need to do that - but remember: small projects become big projects
+when you aren't looking. If you start off with a little bit of process, then
+you can scale it if needed. If you start with none, by the time you need 
+it will be too late.   
+
+<h3>You still need all the other foundational bits of a software
+project</h3>
+
+If you don't have an source code management system, you are going to end
+up hosed. If you don't have everything under SCM, including web pages,
+dependent jars, installation files, you are still going to end up hosed,
+it's just a question of when it's going to happen.
+CVS is effectively free and works well with Ant, but Sourcesafe, Perforce,
+Clearcase and StarTeam also have Ant tasks. These tasks
+let you have auto-incrementing build counters, and automated file
+update processes. 
+
+<p>
+You also need some kind of change control process, to resist
+uncontrolled feature creep. Bugzilla is a simple and low cost tool for
+this, using Ant and a continuous test process enables a rapid evolution of code
+to adapt to those changes which are inevitable.  
+
+<h2>End piece</h2>
+
+Software development is meant to be fun. Being in the maelstrom of a
+tight project with the stress of integration and trying to code
+everything up for an insane deadline can be fun - it is certainly
+exhilarating. Adding a bit of automation to the process may make things
+less chaotic, and bit less entertaining, but it is a start to putting
+you in control of your development process. You can still have fun, you
+should just have less to worry about, a shorter build/test/deploy cycle
+and more time to spend on feature creep or important things like skiing.
+So get out there and have fun!
+
+<a name="reading">
+<h2>Further Reading</h2>
+</a>
+<ul>
+<li>
+<a
+href="http://www.martinfowler.com/articles/continuousIntegration.html">
+<i>Continuous Integration</i></a>; Martin Fowler. <br>
+A paper on using Ant within a software project
+running a continuous integration/testing process.
+<li><i> Refactoring</i>; Martin Fowler, ISBN: 0201485672 <br>
+    Covers JUnit as well as tactics for making some headway with the mess of
+    code you will soon have.
+
+<li><a href="http://manning.com/hatcher"><i>Java Development with
+Ant</i></a>;
+    Erik Hatcher and Steve Loughran. 
+
+    
+<li>
+<a href="http://www.iseran.com/Steve/papers/when_web_services_go_bad.html">
+    <i>When Web Services Go Bad</i></a>; Steve Loughran.<br>
+    One of the projects this paper is based on.    
+    
+    
+</ul>
+
+<a name="author">
+<h3>About the Author</h3>
+</a>
+
+Steve Loughran is a research scientist at a corporate R&amp;D lab,
+currently on a sabbatical building production web services against
+implausible deadlines for the fun of it. He is also a committer on
+Apache Ant and Apache Axis, and co-author of 
+<a href="http://manning.com/hatcher"><i>Java Development with Ant</i></a>. 
+He thinks that if you liked this document you'll love that book because
+it doesn't just explain Ant, it goes into processes, deployment and best practices
+and other corners of stuff that really make Ant useful. (It would 
+have been easier to just rehash the manual, but that wouldn't have been
+so useful or as much fun).  
+
+<p>
+For questions related to this document, use the Ant mailing list.
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/ant_task_guidelines.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/ant_task_guidelines.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/ant_task_guidelines.html	(revision 14989)
@@ -0,0 +1,508 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html><head>
+<title>
+Apache Ant Task Design Guidelines
+</title>
+</head><body>
+
+<h1>Apache Ant Task Design Guidelines</h1>
+
+This document covers how to write Ant tasks to a standard required to be
+incorporated into the Ant distribution. You may find it useful when
+writing tasks for personal use as the issues it addresses are still
+there in such a case.
+
+<h2>Don't break existing builds</h2>
+
+Even if you find some really hideous problem with Ant, one that is easy to fix,
+if your fix breaks an existing build file then we have problems. Making sure
+that every build file out there still works is one of the goals of all changes.
+As an example of this, Ant 1.5 passes the single dollar sign &quot;$&quot;
+through in strings; Ant 1.4 and before would strip it. To get this fix in we
+first had to write the test suite to expose current behaviour, then change
+something so that single &quot;$&quot; was passed through, but double
+&quot;$$&quot; got mapped to &quot;$&quot; for backwards compatibility.
+
+<h2>Don't break the Java API</h2>
+
+Ant's tasks can be used by third party programs and tasks.
+We cannot make changes that break the API. This includes:
+<ol>
+<li>Moving classes without leaving a backwards-compatible facade.
+<li>Deleting classes.
+<li>Deleting methods or fields, or reducing their accessibility.
+<li>Changing the signature of a <tt>setAttribute(Type)</tt> method. If you need
+to add a restrictive type, add a new attribute, and place it in the source
+<i>above</i> the original. The XML mapper will get the restricted type, old programs
+can still use the old type.
+<li>Don't change semantics. At least, not drastically. All bug fixes are
+implicit changes of semantics, after all.
+</ol>
+
+<h2>Use built in helper classes</h2>
+
+Ant includes helper tasks to simplify much of your work. It is much better to
+use them than roll your own, for development, maintenance and code size reasons.
+
+<h4>Execute</h4>
+
+Execute will spawn off separate programs under all the platforms which
+Ant supports, dealing with Java version issues as well as platform
+issues. Always use this class to invoke other programs.
+
+<h4>Java, ExecuteJava</h4>
+
+These classes can be used to spawn Java programs in a separate VM (they
+use execute) or in the same VM--with or without a different classloader.
+When deriving tasks from this, it often benefits users to permit the
+classpath to be specified, and for forking to be an optional attribute.
+
+<h4>Project and related classes</h4>
+
+Project, FileUtils, JavaEnvUtils all have helper functions to do things like
+touch a file, copy a file and the like. Use these instead of coding them
+yourself or trying to use tasks which may be less stable and fiddlier to use.
+
+<h2>Obey the Sun/Java style guidelines</h2>
+
+The Ant codebase aims to have a single unified coding standard, and that
+standard is the
+<a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">
+Sun Java coding guidelines
+</a>
+<p>
+
+It's not that they are better than any alternatives, but they are a
+standard and they are what is consistently used in the rest of the
+tasks. Code will not be incorporated into the database until it complies
+with these.
+
+<p>
+
+If you are writing a task for your personal or organisational use, you
+are free to use whatever style you like. But using the Sun Java style
+will help you to become comfortable with the rest of the Ant source,
+which may be important.
+
+<p>
+
+One important rule is 'no tabs'. Use four spaces instead. Not two,
+not eight, four. Even if your editor is configured to have a tab of four
+spaces, lots of others aren't. Spaces have more consistency across
+editors and platforms. Some IDEs (JEdit) can highlight tabs, to stop you
+accidentally inserting them.
+<p>
+There is an Ant build file check.xml in the main ant directory with runs 
+  <a href="http://checkstyle.sourceforge.net">checkstyle</a> over
+  Ant's source code.
+
+<h2>Attributes and elements</h2>
+Use the Ant introspection-based mapping of attributes into Java datatypes,
+rather than implementing all your attributes as setFoo(String) and doing
+the mapping to int, boolean or File yourself. This saves work on your part,
+lets Java callers use you in a typesafe manner, and will let the Xdocs
+documentation generator work out what the parameters are.
+
+<p>
+The Ant 1.x tasks are very inconsistent regarding naming of attributes--some
+tasks use <tt>source</tt>, others <tt>src</tt>.
+Here is a list of preferred attribute names:
+<p>
+<table cellpadding="5">
+<tr>
+<td>
+    failonerror
+</td>
+<td>
+    boolean to control whether failure to execute should throw a
+    <tt>BuildException</tt> or just print an error.
+    Parameter validation failures should always throw an error, regardless
+    of this flag.
+</td>
+</tr>
+<tr>
+<td>
+    destdir
+</td>
+<td>
+    destination directory for output
+</td>
+</tr>
+<tr>    
+<td>
+    destfile
+</td>
+<td>
+    destination file for output
+</td>
+</tr>
+<tr>
+<td>
+    srcdir
+</td>
+<td>
+    source directory
+</td>
+</tr>
+<tr>
+<td>
+    srcfile
+</td>
+<td>
+    source file
+</td>
+</tr>
+</table>
+<p>
+Yes, this is a very short list. Try and be vaguely consistent with the core
+tasks, at the very least.
+
+<h2>Support classpaths</h2>
+
+Try and make it possible for people to supply a classpath to your task,
+if you need external libraries, rather than make them add everything to
+the ANT_HOME/lib directory. This lets people keep the external libraries
+in their Ant-based project, rather than force all users to make changes
+to their Ant system configuration.
+
+<h2>Design for controlled re-use</h2>
+
+Keep member variables private. If read access by subclasses is required,
+add accessor methods rather than change the accessiblity of the member.
+This enables subclasses to access the contents, yet still be decoupled 
+from the actual implementation.
+<p>
+
+The other common re-use mechanism in Ant is for one task to create and
+configure another. This is fairly simple. There are facilities available in
+Ant's API to have the tasks instantiated by their familiar names
+(&quot;java&quot;, &quot;exec&quot;, etc.). It is recommended that you
+<b>not</b> use this approach because of the entirely real possibility that a
+user has overridden the name to point to a different class entirely. Use direct
+constructor calls (or reflection) to instantiate your subtask. Since Ant 1.6.3,
+you can call <code>org.apache.tools.ant.Task#bindToOwner()</code>
+to &quot;mask&quot; a helper task as its parent.
+
+<h2>Do your own Dependency Checking</h2>
+
+Make has the edge over Ant in its integrated dependency checking; the
+command line apps make invokes don't need to do their own work. Ant tasks
+do have to do their own dependency work, but if this can be done then
+it can be done well. A good dependency-aware task can work out the dependencies
+without explicit dependency information in the build file, and be smart
+enough to work out the real dependencies, perhaps through a bit of file parsing.
+The <tt>depends</tt> task is the best example of this. Some of the zip/jar
+tasks are pretty good too, as they can update the archive when needed.
+Most tasks just compare source and destination timestamps and work from there.
+Tasks which don't do any dependency checking do not help users as much as
+they can, because their needless work can trickle through the entire build, test
+and deploy process.
+
+<h2>Support Java 1.2 through Java 1.5+</h2>
+
+Ant 1.5 and lower was designed to support Java 1.1. Ant 1.6 and higher
+is designed to support Java 1.2: to build on it, to run on it. Sometimes
+functionality of tasks have to degrade in that environment--usually due to
+library limitations; such behaviour change must always be noted in the
+documentation.
+<p>
+What is problematic is code which is dependent on Java 1.3 features;
+e.g. java.lang.reflect.Proxy, or Java 1.4 features; e.g. java.io.nio.
+Be also aware of extra methods in older classes;
+e.g. StringBuffer#append(StringBuffer). These cannot be used directly
+by any code and still be able to compile and run on a Java 1.2 system.
+If a new method in an existing class is to be used, it must be used via
+reflection and the <tt>NoSuchMethodException</tt> handled somehow.
+<p>
+What if code simply does not work on Java 1.2? It can happen. It will
+probably be OK to have the task as an optional task, with compilation
+restricted to Java 1.3 or later through build.xml modifications.
+Better still, use reflection to link to the classes at run time.
+<p>
+Java 1.4 adds a new optional change to the language itself, the
+<tt>assert</tt> keyword, which is only enabled if the compiler is told
+to compile 1.4 version source. Clearly with the 1.2 compatibility requirement,
+Ant tasks cannot use this keyword. They also need to move away from
+using the JUnit <tt>assert()</tt> method and call <tt>assertTrue()</tt>
+instead.
+<p>
+Java 1.5 adds the <tt>enum</tt> type; again, this must not be used.
+
+<h2>Explicitly Expand properties in nested text</h2>
+
+For historical reasons, <tt>addText(String text)</tt> is called to
+set the task's nested text, without any property expansion taking place.
+Call <tt>Project.replaceProperties()</tt> to do this manually.
+If you forget, you create a problem that is impossible to fix
+without breaking users' build files.
+
+<h2>Refactor</h2>
+
+If the changes made to a task are making it too unwieldy, split it up
+into a cleaner design, refactor the code and submit not just feature
+creep but cleaner tasks. A common design pattern which tends to occur in
+the Ant process is the adoption of the adapter pattern, in which a base
+class (say Javac or Rmic) starts off simply, then gets convoluted with
+support for multiple back ends:  javac, jikes, jvc. A refactoring to
+split the programmable front end from the classes which provide the back
+end cleans up the design and makes it much easier to add new back ends.
+But to carry this off one needs to keep the interface and behaviour of
+the front end identical, and to be sure that no subclasses have been
+accessing data members directly, because these data members may not
+exist in the refactored design. This is why having private data members
+is so important.
+
+<p>
+
+One thing we must not do is move existing tasks around or delete them.
+Remember that Ant has a Java API as well as an XML language. We don't want
+to break that API, or anything that subclasses existing Ant tasks. When
+refactoring, you need to leave facades where the original classes were. so
+existing code does not break.
+
+<h2>Test</h2>
+
+Look in <tt>ant/src/testcases</tt> and you will find JUnit tests for the
+shipping Ant tasks, to see how it is done and what is expected of a new
+task. Most of them are rudimentary, and no doubt you could do better for
+your task--feel free to do so!
+
+<p>
+
+A well written set of test cases will break the Ant task while it is in
+development, until the code is actually complete. And every bug which
+surfaces later should have a test case added to demonstrate the problem,
+and to fix it.
+
+<p>
+
+The test cases are a great way of testing your task during development.
+A simple call to 'build run-test' in the ant source tree will run all ant
+tests, to verify that your changes don't break anything.
+To test a single task, use the one shot <code>ant run-single-test
+-Dtestcase=${testname}</code> where <code>${testname}</code>
+is the name of your test class.
+
+<p>
+
+The test cases are also used by the committers to verify that changes
+and patches do what they say. If you've got test cases it increases your
+credibility significantly. To be precise, we hate submissions without
+test cases, as it means we have to write them ourselves. This is
+something that only gets done if we need the task or it is perceived as
+utterly essential to many users.
+
+<p>
+
+Remember also that Ant 1.x is designed to compile and run on Java 1.2, so
+you should test on Java 1.2 as well as any later version which you use.
+You ought to be able to download an old SDK from Sun for this purpose.
+<p>
+Finally, run a full <code>build test</code> before and after you start
+developing your project, to make sure you haven't broken anything else by
+accident.
+
+<h2>Document</h2>
+
+Without documentation, the task can't be used. So remember to provide a
+succinct and clear html (soon, xml) page describing the task in a similar
+style to that of existing tasks. It should include a list of attributes
+and elements, and at least one working example of the task. Many users
+cut and paste the examples into their build files as a starting point,
+so make the examples practical and test them too.
+<p>
+You can use the xdocs stuff in proposal/xdocs to autogenerate your
+documentation page from the javadocs of the source; this makes life
+easier and will make the transition to a full xdoclet generated
+documentation build process trivial.
+
+<h2>Licensing and Copyright</h2>
+
+Any code submitted to the Apache project must be compatible with the
+Apache Software License, and the act of submission must be viewed as
+an implicit license of the submitted code to the Apache Software
+Foundation.
+
+<p>
+This is important.
+
+<p>
+
+The fairly laissez-faire license of Apache is not currently considered
+compatible with
+either the GPL or the Lesser GPL of the Free Software Foundation--the
+Gnu project. These licenses have stricter terms, &quot;copyleft&quot;,
+which are not in the Apache Software Foundation license.
+This permits people and organisations to build
+commercial and closed source applications atop the Apache libraries and source.
+
+<p>
+
+Because the Gnu GPL license immediately extends to cover any larger
+application (or library, in the case of LGPL) into which it is
+incorporated, the Ant team cannot incorporate any task based upon GPL
+or LGPL source into the Ant codebase. You are free to submit it, but it
+will be politely and firmly rejected.
+
+<p>
+If you link to a GPL or LGPL library, by <code>import</code> or
+reflection, your task must be licensed under the same terms. So tasks
+linking to (L)GPL code can't go into the Apache managed codebase.
+Tasks calling such code can use the 'exec' or 'java' tasks to run the
+programs, as you are just executing them at this point, not linking to
+them.
+<p>
+Even if we cannot include your task into the Apache codebase, we can
+still point to where you host it; just submit a diff to
+xdocs/external.html pointing to your task.
+<p>
+If your task links directly to proprietary code, we have a different
+problem: it is really hard to build the tasks. Please use reflection.
+
+<h3>Don't re-invent the wheel</h3>
+
+We've all done it: written and submitted a task only to discover it
+was already implemented in a small corner of another task, or it has
+been submitted by someone else and not committed. You can avoid this
+by being aware of what is in the latest CVS tree; keep getting the daily
+source updates, look at manual changes and subscribe to the dev
+mailing list.
+
+<p>
+
+If you are thinking of writing a task, posting a note on your thoughts
+to the list can be informative--you will get other peoples' insights and
+maybe some half-written task to do the basics, all without writing a
+line of code.
+
+<h2>Submitting to Ant</h2>
+
+The basic mechanism for submitting an Ant task is to mail it to the
+dev mailing list. It helps to be on this list, as you will see other
+submissions, and any debate about your own submission.
+<p>
+You may create your patch file using either of the following approaches
+(the committers recommend the first):
+<p>
+<ul>
+<li><h3>Approach 1 - The Ant Way</h3>
+<p>
+Use Ant to generate a patch file to Ant:
+<pre class="code">
+ant -f patch.xml
+</pre>
+This will create a file named patch.tar.gz that will contain a unified
+diff of files that have been modified and also include files that have
+been added.  Review the file for completeness and correctness.  This approach
+is recommended because it standardizes the way in which patch files are
+constructed.  It also eliminates the chance of you missing to submit new files
+that constitute part of the patch.
+<p>
+<li><h3>Approach 2 - The Manual Way</h3>
+<p>
+Patches to existing files should be generated with
+<code>svn diff -u filename</code>
+ and save the output to a file. If you want to get
+the changes made to multiple files in a directory , just use <code>cvs
+diff -u</code>.  Then, Tar and GZip the patch file as well as any new files
+that you have added.
+</ul>
+<p>
+The patches should be sent as an attachment to a message titled [PATCH]
+and distinctive one-line summary in the subject of the patch. The
+filename/task and the change usually suffices. It's important to include
+the changes as an attachment, as too many mailers reformat the text
+pasted in, which breaks the patch.
+<p>
+Then you wait for one of the committers to commit the patch, if it is
+felt appropriate to do so. Bug fixes go in quickly, other changes
+often spark a bit of discussion before a (perhaps revised) commit is
+made.
+<p>
+
+New submissions should be proceeded with [SUBMIT]. The mailer-daemon
+will reject any messages over 100KB, so any large update should be
+zipped up. If your submission is bigger than that, why not break it up
+into separate tasks.
+<p>
+
+We also like submissions to be added to
+<a href="http://issues.apache.org/bugzilla/">bugzilla</a>, so that they dont get lost. Please submit them by first filing the report with a
+meaningful name, then adding files as attachments. Use CVS diff files
+please!
+<p>
+
+If you hear nothing after a couple of weeks, remind the mailing list.
+Sometimes really good submissions get lost in the noise of other issues.
+This is particularly the case just prior to a new point release of
+the product. At that time anything other than bug fixes will tend
+to be neglected.
+
+<h2>Checklists</h2>
+
+These are the things you should verify before submitting patches and new
+tasks. Things don't have to be perfect; it may take a couple of
+iterations before a patch or submission is committed, and these items
+can be addressed in the process. But by the time the code is committed,
+everything including the documentation and some test cases will have
+been done, so getting them out the way up front can save time.
+The committers look more favourably on patches and submissions with test
+cases, while documentation helps sell the reason for a task.
+
+<h3>Checklist before submitting a patch</h3>
+<ul>
+<li>Added code complies with style guidelines
+<li>Code compiles and runs on Java 1.2
+<li>New member variables are private, and provide public accessor methods
+	if access is actually needed.
+<li>Existing test cases succeed.
+<li>New test cases written and succeed.
+<li>Documentation page extended as appropriate.
+<li>Example task declarations in the documentation tested.
+<li>Diff files generated using svn diff -u
+<li>Message to dev contains [PATCH], task name and patch reason in
+subject.
+<li>Message body contains a rationale for the patch.
+<li>Message attachment contains the patch file(s).
+</ul>
+
+<h3>Checklist before submitting a new task</h3>
+<ul>
+<li>Java file begins with Apache copyright and license statement.
+<li>Task does not depend on GPL or LGPL code.
+<li>Source code complies with style guidelines
+<li>Code compiles and runs on Java 1.2
+<li>Member variables are private, and provide public accessor methods
+	if access is actually needed.
+<li><i>Maybe</i> Task has failonerror attribute to control failure behaviour
+<li>New test cases written and succeed
+<li>Documentation page written
+<li>Example task declarations in the documentation tested.
+<li>Patch files generated using svn diff -u
+<li>patch files include a patch to defaults.properties to register the
+tasks
+<li>patch files include a patch to coretasklist.html or
+optionaltasklist.html to link to the new task page
+<li>Message to dev contains [SUBMIT] and task name in subject
+<li>Message body contains a rationale for the task
+<li>Message attachments contain the required files -source, documentation,
+test and patches zipped up to escape the HTML filter.
+</ul>
+
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual/antnews.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/antnews.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/antnews.html	(revision 14989)
@@ -0,0 +1,536 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - News</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Conor MacNeill">
+  <meta name="email" content="">
+        <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="">
+        <meta name="author" content="Magesh Umasankar">
+  <meta name="email" content="">
+        <meta name="author" content="Antoine Levy-Lambert">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                              <span class="sel">News</span>
+                              </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">News</h1>
+            <h3 class="section">
+      <a name="Ant 1.7.0"></a>
+      Ant 1.7.0
+    </h3>
+                        <h3>December 19, 2006 - Ant 1.7.0 Available</h3>
+                                <p>Apache Ant 1.7.0 is now available for <a href="http://ant.apache.org/bindownload.cgi">download</a>.</p>
+                                <p> Ant 1.7 introduces a resource framework. Some of the core ant 
+    tasks such as &lt;copy/&gt; are now able to process not only file 
+    system resources but also zip entries, tar entries, paths, ... 
+    Resource collections group resources, and can be further 
+    combined with operators such as union and intersection. This 
+    can be extended by custom resources and custom tasks using resources.</p>
+                                <p>
+    Ant 1.7 starts outsourcing of optional tasks to Antlibs. 
+    The .NET antlib in preparation will replace the .NET optional tasks which ship in Ant.
+    Support for the version control system Subversion will be only provided as an antlib to
+    be released shortly. 
+    </p>
+                                <p>Ant 1.7 fixes also a large number of bugs.</p>
+                                <p>Ant 1.7 has some initial support for Java6 features.</p>
+                        <h3 class="section">
+      <a name=".NET Ant Library 1.0Beta1"></a>
+      .NET Ant Library 1.0Beta1
+    </h3>
+                        <h3>November 6, 2006 - Apache .NET Ant Library 1.0 Available</h3>
+                                <p>Apache .NET Ant Library 1.0 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains support for tools like NUnit as well
+    as the "old .NET tasks of Ant's core.  It has been tested
+    Microsoft's frameworks as well as Mono.</p>
+                                <p>For more information see the <a href="antlibs/dotnet/">Antlib's
+    home page</a></p>
+                        <h3 class="section">
+      <a name="AntUnit 1.0Beta2"></a>
+      AntUnit 1.0Beta2
+    </h3>
+                        <h3>October 29, 2006 - Apache AntUnit 1.0Beta2 Available</h3>
+                                <p>Apache AntUnit 1.0Beta1 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains tasks to test Ant tasks using Ant
+    instead of JUnit.  For more information see the <a href="antlibs/antunit/">AntUnit home page</a>.</p>
+                        <h3 class="section">
+      <a name="AntUnit 1.0Beta1"></a>
+      AntUnit 1.0Beta1
+    </h3>
+                        <h3>September 22, 2006 - Apache AntUnit 1.0Beta1 Available</h3>
+                                <p>Apache AntUnit 1.0Beta1 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains tasks to test Ant tasks using Ant
+    instead of JUnit.  For more information see the <a href="antlibs/antunit/">AntUnit home page</a>.</p>
+                        <h3 class="section">
+      <a name=".NET Ant Library 1.0Beta1"></a>
+      .NET Ant Library 1.0Beta1
+    </h3>
+                        <h3>September 13, 2006 - Apache .NET Ant Library 1.0Beta1 Available</h3>
+                                <p>Apache .NET Ant Library 1.0Beta1 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains support for tools like NUnit as well
+    as the "old .NET tasks of Ant's core.  It has been tested
+    Microsoft's frameworks as well as Mono.</p>
+                                <p>For more information see the <a href="antlibs/dotnet/">Antlib's
+    home page</a></p>
+                        <h3 class="section">
+      <a name="Ant 1.6.5"></a>
+      Ant 1.6.5
+    </h3>
+                        <h3>June 2, 2005 - Ant 1.6.5 Available</h3>
+                                <p>Apache Ant 1.6.5 is now available for <a href="http://ant.apache.org/bindownload.cgi">download</a>.</p>
+                                <p>This is a bug fix release.</p>
+                        <h3 class="section">
+      <a name="Ant 1.6.4"></a>
+      Ant 1.6.4
+    </h3>
+                        <h3>May 19, 2005 - Ant 1.6.4 Available</h3>
+                                <p>Apache Ant 1.6.4 is now available for <a href="http://archive.apache.org/dist/ant/">download</a>.</p>
+                                <p>This is a bug fix release.</p>
+                        <h3 class="section">
+      <a name="Ant 1.6.3"></a>
+      Ant 1.6.3
+    </h3>
+                        <h3>April 28, 2005 - Ant 1.6.3 Available</h3>
+                                <p>Apache Ant 1.6.3 is now available for <a href="http://archive.apache.org/dist/ant/">download</a>.</p>
+                                <p>There is a large list of fixed bugs and enhancements.</p>
+                                <p>Some of the bugs affecting the embedded use of Ant are fixed.</p>
+                        <h3 class="section">
+      <a name="Antidote Retired"></a>
+      Antidote Retired
+    </h3>
+                        <h3>April 4th, 2005 - The Apache Ant Project Retires Antidote, the
+    Ant GUI</h3>
+                                <p>The Antidote subproject was once started to provide a GUI for
+    Ant at a time where IDE support for Ant was far from usable.
+    Unfortunately it never attracted a developer community of its
+    own.</p>
+                                <p>At the same time IDE support for Ant has become ubiquitous by
+    now and there is little reason to have a GUI just for Ant.  This
+    makes it even less likely that volunteers will start to spend time
+    working on it.</p>
+                                <p>Antidote's development has been stalled for years now, despite
+    some efforts to rejuvenate it by single developers.  Therefore the
+    Ant developers have chosen to retire Antidote.</p>
+                                <p>Antidote will no longer be developed by the Ant project; its
+    CVS module will be shut down.</p>
+                                <p>If you are interested in Antidote's sources to learn from or
+    build on it, you can find snapshots at <a href="http://archive.apache.org/ant/antidote/">http://archive.apache.org/ant/antidote/</a>.</p>
+                        <h3 class="section">
+      <a name="Ant 1.6.2"></a>
+      Ant 1.6.2
+    </h3>
+                        <h3>July 16, 2004 - Ant 1.6.2 Available</h3>
+                                <p>Apache Ant 1.6.2 available for <a href="http://archive.apache.org/dist/ant/">download</a>.</p>
+                                <p>Nested elements for namespaced tasks and types may belong to the
+Ant default namespace as well as the task's or type's namespace.</p>
+                                <p>All exceptions thrown by tasks are now wrapped in a
+buildexception giving the location in the buildfile of the task.</p>
+                                <p>Ant 1.6.2 fixes a large number of bugs and adds a number of
+features which were asked for by users on Bugzilla.</p>
+                        <h3 class="section">
+      <a name="Wiki Migration"></a>
+      Wiki Migration
+    </h3>
+                        <h3>February 29, 2004</h3>
+                                <p>The Ant Wiki pages have been migrated to their 
+      <a href="http://wiki.apache.org/ant/">new home</a> on the Apache
+      Wiki farm.
+    </p>
+                        <h3 class="section">
+      <a name="Ant 1.6.1"></a>
+      Ant 1.6.1
+    </h3>
+                        <h3>February 12, 2004 - Ant 1.6.1 Available</h3>
+                                <p>Apache Ant 1.6.1 is still available for
+      <a href="http://archive.apache.org/dist/ant/">download</a>.
+     </p>
+                                <p>The ASF Board has approved the new Apache License 2.0.
+    For a copy of that license, please see
+    <a href="http://www.apache.org/licenses/">
+    http://www.apache.org/licenses/</a>.</p>
+                                <p>The Ant 1.6.1 release is delivered with the
+    Apache License 2.0.</p>
+                                <p>Ant 1.6.1 fixes several bugs, most notably the handling
+    of the default namespace for nested elements.</p>
+                                <p>Ant 1.6.1 also introduces initial support for compiling with
+    Java 1.5.</p>
+                        <h3 class="section">
+      <a name="Ant 1.6.0"></a>
+      Ant 1.6.0
+    </h3>
+                        <h3>December 18, 2003 - Ant 1.6.0 Available</h3>
+                                <p>Apache Ant 1.6.0 is still available for
+      <a href="http://archive.apache.org/dist/ant/">download</a>.
+     </p>
+                                <p>As
+    we've already said in the announcements of Ant 1.5.4, this release
+    requires JDK 1.2 or later to run.</p>
+                                <p>Ant 1.6.0 adds a lot of new features, most prominently support
+    for XML namespaces as well as a new concept of Ant libraries that
+    makes use of namespaces to avoid name clashes of custom tasks.
+    For a longer list of fixed bugs and new features see the release
+    notes.</p>
+                                <p>If you find anything that hasn't been covered in the manual (I bet you
+did) or could be explained better, feel free to help us out in the
+<a href="http://wiki.apache.org/ant/NewAntFeaturesInDetail">Wiki</a>.</p>
+                        <h3 class="section">
+      <a name="Ant 1.5.4"></a>
+      Ant 1.5.4
+    </h3>
+                        <h3>August 12, 2003 - Ant 1.5.4 Available</h3>
+                                <p>Apache Ant 1.5.4 is still available for
+     <a href="http://archive.apache.org/dist/ant/">download</a>.
+    </p>
+                                <p>This is a minor bugfix release that fixes a problem with the
+    <code>javah</code> task on JDK 1.4.2 and a couple of bugs in the
+    Visual Age for Java intergration tasks.  If you don't use javah or
+    VAJ, there is no reason to upgrade.</p>
+                                <div class="warning">
+    <div class="label">Note</div>
+    <div class="content">Ant 1.5.4 is the last release that supports
+      JDK 1.1. Ant 1.6.0 requires JDK 1.2 or
+      later.
+    </div>
+    </div>
+                        <h3 class="section">
+      <a name="Java Pro 2003 Readers Choice Award"></a>
+      Java Pro 2003 Readers Choice Award
+    </h3>
+                        <a href="http://www.ftponline.com/javapro/">
+      <img style="padding: 5px" src="images/jp_rcwinner_2003.gif" alt="" border="0" height="80" width="139" align="right" /></a>
+                                <h3>June 11th, 2003: Ant wins a Java Pro readers' choice award</h3>
+                                <p>
+      Ant has won the Java Pro 2003 Readers' Choice Award for 
+    </p>
+                                <p>
+      <strong>Most Valuable Java Deployment Technology</strong>.
+    </p>
+                                <p>
+      Thanks to Java Pro and all its readers. You can read about
+      these 
+      <a href="http://www.ftponline.com/reports/javaone/2003/awards/">awards</a>
+      at the Java Pro website.
+    </p>
+                        <h3 class="section">
+      <a name="JDJ Editors Choice Award"></a>
+      JDJ Editors Choice Award
+    </h3>
+                        <a href="http://sys-con.com/java/article2a.cfm?id=2059&amp;count=1734&amp;tot=6&amp;page=2"><img src="images/JDJEditorsChoiceAward.jpg" alt="" border="0" align="right" /></a>
+                                <h3>June 2003: Ant wins JDJ Editors' Choice Award</h3>
+                                <p>
+"Ant is the hammer of the Java world: without it, civilization might have progressed, but much more slowly than it has. Ant is one of the most useful build tools I have ever had the pleasure to use." - Joe Ottinger
+    </p>
+                        <h3 class="section">
+      <a name="Ant keeps on winning!"></a>
+      Ant keeps on winning!
+    </h3>
+                        <a href="http://www.javaworld.com/"><img src="images/jw_ec_logo_winner2003.gif" alt="" border="0" height="108" width="252" align="right" /></a>
+                                <h3>June 9th, 2003: Ant wins the JavaWorld Editors' Choice Award</h3>
+                                <p>
+    Ant has won the JavaWorld Editors' Choice Award for
+    </p>
+                                <p>
+    <strong>Most Useful Java Community-Developed Technology</strong>
+    </p>
+                                <p>
+    for the second time in a row! Read the
+    <a href="http://www.javaworld.com/javaworld/jw-06-2003/jw-0609-eca.html"> full article</a> -- or jump directly to the bit about
+    <a href="http://www.javaworld.com/javaworld/jw-06-2003/jw-0609-eca-p4.html"> our award</a> <code>:)</code></p>
+                        <h3 class="section">
+      <a name="Ant 1.5.3"></a>
+      Ant 1.5.3
+    </h3>
+                        <h3>April 9, 2003 - Ant 1.5.3 Available</h3>
+                                <p>Apache Ant 1.5.3 is still available for
+     <a href="http://archive.apache.org/dist/ant/">download</a>.
+    </p>
+                        <h3 class="section">
+      <a name="Ant 1.5.2"></a>
+      Ant 1.5.2
+    </h3>
+                        <h3>March 3, 2003 - Ant 1.5.2 Available!</h3>
+                                <p>The final version of Ant 1.5.2 is available for
+     <a href="http://archive.apache.org/dist/ant/">download</a>.
+     If you have any feedback on this release, feel free to join the 
+     discussion on the dev and user mailing lists.
+     </p>
+                        <h3 class="section">
+      <a name="Ant Top Level Project"></a>
+      Ant Top Level Project
+    </h3>
+                        <h3>November 18, 2002</h3>
+                                <p>The Apache board <a href="mission.html">created</a>
+       the Apache Ant top level project. Ant has now migrated from the Jakarta
+       project into an Apache project of its own. This is primarily an
+       organizational change and will not affect the technical aspects of
+       the project. Ant retains a strong association with the Apache
+       Jakarta project. One effect of this change is that the Ant webpage
+       is now located at <a href="http://ant.apache.org/">http://ant.apache.org/</a>
+     </p>
+                        <h3 class="section">
+      <a name="Ant 1.5.1"></a>
+      Ant 1.5.1
+    </h3>
+                        <h3>October 3, 2002 - Ant 1.5.1 Available !</h3>
+                                <p>The final version of Ant 1.5.1 is still available for
+     <a href="http://archive.apache.org/dist/ant/">
+     download</a>. If you have any feedback on this release, feel free to join the 
+     discussion on the ant-dev and ant-user mailing lists.
+     </p>
+                        <h3 class="section">
+      <a name="Ant 1.5"></a>
+      Ant 1.5
+    </h3>
+                        <h3>July 15, 2002 - Fix for Cygwin problem in wrapper script available</h3>
+                                <p>The wrapper script of Ant 1.5 needs to be replaced with a new
+      version for Cygwin users.  See the <a href="faq.html#1.5-cygwin-sh">FAQ</a> for details.</p>
+                                <h3>July 10, 2002 - Ant 1.5 Released!</h3>
+                                <p>The final version of Ant 1.5 is now available for 
+     <a href="http://archive.apache.org/dist/ant/">
+     download</a>. If you have any feedback on this release, feel free to join the 
+     discussion on the ant-dev and ant-user mailing lists.
+     </p>
+                        <h3 class="section">
+      <a name="Ant wins again!"></a>
+      Ant wins again!
+    </h3>
+                        <a href="http://www.sdmagazine.com/"><img src="images/sdm_productivity_award.gif" alt="" border="0" height="108" width="181" align="right" /></a>
+                                <h3>Apr 29, 2002: Ant wins <em>Software Development</em> magazine's
+    2002 Productivity Award.</h3>
+                                <p>
+    Ant has been awarded a <strong>2002 Productivity Award</strong> by
+    <a href="http://www.sdmagazine.com/"><em>Software Development</em></a>
+    magazine.  Read the
+    <a href="http://www.sdmagazine.com/jolts/press_release_4-26-02.htm">
+    press release</a> for more information and the full list of winners.
+    </p>
+                        <h3 class="section">
+      <a name="Ant has won!"></a>
+      Ant has won!
+    </h3>
+                        <a href="http://www.javaworld.com/"><img src="images/jw_ec_logo_winner2002.gif" alt="" border="0" height="108" width="252" align="right" /></a>
+                                <h3>Mar 26, 2002: Ant wins the JavaWorld Editors' Choice
+    Award</h3>
+                                <p>
+    Ant has won the JavaWorld Editors' Choice Award for
+    <strong>Most Useful Java Community-Developed Technology</strong>.
+    Read the
+    <a href="http://www.javaworld.com/javaworld/jw-03-2002/jw-0326-awards.html "> full article</a> -- or jump directly to the bit about
+    <a href="http://www.javaworld.com/javaworld/jw-03-2002/jw-0326-awards-p3.html"> our award</a> <code>:)</code></p>
+                        <h3 class="section">
+      <a name="Java 1.4 Support"></a>
+      Java 1.4 Support
+    </h3>
+                        <h3>Feb 15, 2002: Java 1.4 Support</h3>
+                                <p>
+      Java 1.4 has now been released by Sun. The latest Ant source supports 
+      the new <tt>assert</tt> statement in the compiler task via the <tt>source</tt> 
+      attribute. It also contains a compatibility fix needed for some ant tasks
+      on Java 1.4 over Windows XP. If you have problems running Ant 1.4.1 on WinXP/Java 1.4,
+      please use a recent build or compile your own version from the source tree. 
+    </p>
+                        <h3 class="section">
+      <a name="See our new logo!"></a>
+      See our new logo!
+    </h3>
+                        <h3>Have a look at our new cool logo!</h3>
+                        <h3 class="section">
+      <a name="Ant 1.4.1"></a>
+      Ant 1.4.1
+    </h3>
+                        <h3>11 October 2001 Ant 1.4.1 released !</h3>
+                                <p>Please visit the 
+     <a href="http://archive.apache.org/dist/ant/">
+     download area</a>. 
+     </p>
+                        <h3 class="section">
+      <a name="Best-Practices Profile of Ant at Sun's Dot-Com Builder"></a>
+      Best-Practices Profile of Ant at Sun's Dot-Com Builder
+    </h3>
+                        <p>Sun has released an introductory article on Ant on their
+      Dot-Com Builder site on May 30 2001. See <a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a></p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/breadcrumbs.js
===================================================================
--- /release-kits/shared/ant-installer/web/manual/breadcrumbs.js	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/breadcrumbs.js	(revision 14989)
@@ -0,0 +1,235 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ *
+ */
+
+/**
+ * This script, when included in a html file, builds a neat breadcrumb trail
+ * based on its url. That is, if it doesn't contains bugs (I'm relatively
+ * sure it does).
+ *
+ * Typical usage:
+ * <script type="text/javascript" language="JavaScript" src="breadcrumbs.js"></script>
+ *
+ *@author     <a href="mailto:leosimons@apache.org">Leo Simons</a> (main author)
+ *@author     <a href="mailto:nicolaken@apache.org">Nicola Ken Barozzi</a> (integration in skin)
+ *@created    July 12, 2002
+ *@version    1.0
+ */
+
+/**
+ * IE 5 on Mac doesn't know Array.push.
+ *
+ * Implement it - courtesy to fritz.
+ */
+var abc	= new Array();
+if (!abc.push) {
+  Array.prototype.push	= function(what){this[this.length]=what}
+}
+
+/* ========================================================================
+	CONSTANTS
+   ======================================================================== */
+
+/**
+ * Two-dimensional array containing extra crumbs to place at the front of
+ * the trail. Specify first the name of the crumb, then the URI that belongs
+ * to it. You'll need to modify this for every domain or subdomain where
+ * you use this script (you can leave it as an empty array if you wish)
+ */
+var PREPREND_CRUMBS = new Array();
+   if(!("apache"=="")){
+     PREPREND_CRUMBS.push( new Array( "apache", "http://www.apache.org/" ) );
+   }
+   if(!("xml.apache"=="")){
+     PREPREND_CRUMBS.push( new Array( "ant.apache", "http://ant.apache.org/" ) );
+   }
+   if(!(""=="")){
+     PREPREND_CRUMBS.push( new Array( "", "" ) );
+   }
+
+/**
+ * String to include between crumbs:
+ */
+var DISPLAY_SEPARATOR = " &gt; ";
+/**
+ * String to include at the beginning of the trail
+ */
+var DISPLAY_PREPREND = "";
+/**
+ * String to include at the end of the trail
+ */
+var DISPLAY_POSTPREND = "";
+
+/**
+ * CSS Class to use for a single crumb:
+ */
+var CSS_CLASS_CRUMB = "breadcrumb";
+
+/**
+ * CSS Class to use for the complete trail:
+ */
+var CSS_CLASS_TRAIL = "breadcrumbTrail";
+
+/**
+ * CSS Class to use for crumb separator:
+ */
+var CSS_CLASS_SEPARATOR = "crumbSeparator";
+
+/**
+ * Array of strings containing common file extensions. We use this to
+ * determine what part of the url to ignore (if it contains one of the
+ * string specified here, we ignore it).
+ */
+var FILE_EXTENSIONS = new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" );
+
+/**
+ * String that separates parts of the breadcrumb trail from each other.
+ * When this is no longer a slash, I'm sure I'll be old and grey.
+ */
+var PATH_SEPARATOR = "/";
+
+/* ========================================================================
+	UTILITY FUNCTIONS
+   ======================================================================== */
+/**
+ * Capitalize first letter of the provided string and return the modified
+ * string.
+ */
+function sentenceCase( string )
+{
+	var lower = string.toLowerCase();
+	return lower.substr(0,1).toUpperCase() + lower.substr(1);
+}
+
+/**
+ * Returns an array containing the names of all the directories in the
+ * current document URL
+ */
+function getDirectoriesInURL()
+{
+	var trail = document.location.pathname.split( PATH_SEPARATOR );
+
+	// check whether last section is a file or a directory
+	var lastcrumb = trail[trail.length-1];
+	for( var i = 0; i < FILE_EXTENSIONS.length; i++ )
+	{
+		if( lastcrumb.indexOf( FILE_EXTENSIONS[i] ) )
+		{
+			// it is, remove it and send results
+			return trail.slice( 1, trail.length-1 );
+		}
+	}
+
+	// it's not; send the trail unmodified
+	return trail.slice( 1, trail.length );
+}
+
+/* ========================================================================
+	BREADCRUMB FUNCTIONALITY
+   ======================================================================== */
+/**
+ * Return a two-dimensional array describing the breadcrumbs based on the
+ * array of directories passed in.
+ */
+function getBreadcrumbs( dirs )
+{
+	var prefix = "/";
+	var postfix = "/";
+
+	// the array we will return
+	var crumbs = new Array();
+
+	if( dirs != null )
+	{
+		for( var i = 0; i < dirs.length; i++ )
+		{
+			prefix += dirs[i] + postfix;
+			crumbs.push( new Array( dirs[i], prefix ) );
+		}
+	}
+
+	// preprend the PREPREND_CRUMBS
+	if(PREPREND_CRUMBS.length > 0 )
+	{
+		return PREPREND_CRUMBS.concat( crumbs );
+	}
+
+	return crumbs;
+}
+
+/**
+ * Return a string containing a simple text breadcrumb trail based on the
+ * two-dimensional array passed in.
+ */
+function getCrumbTrail( crumbs )
+{
+	var xhtml = DISPLAY_PREPREND;
+
+	for( var i = 0; i < crumbs.length; i++ )
+	{
+		xhtml += '<a href="' + crumbs[i][1] + '" >';
+		xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
+		if( i != (crumbs.length-1) )
+		{
+			xhtml += DISPLAY_SEPARATOR;
+		}
+	}
+
+	xhtml += DISPLAY_POSTPREND;
+
+	return xhtml;
+}
+
+/**
+ * Return a string containing an XHTML breadcrumb trail based on the
+ * two-dimensional array passed in.
+ */
+function getCrumbTrailXHTML( crumbs )
+{
+	var xhtml = '<span class="' + CSS_CLASS_TRAIL  + '">';
+	xhtml += DISPLAY_PREPREND;
+
+	for( var i = 0; i < crumbs.length; i++ )
+	{
+		xhtml += '<a href="' + crumbs[i][1] + '" class="' + CSS_CLASS_CRUMB + '">';
+		xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
+		if( i != (crumbs.length-1) )
+		{
+			xhtml += '<span class="' + CSS_CLASS_SEPARATOR + '">' + DISPLAY_SEPARATOR + '</span>';
+		}
+	}
+
+	xhtml += DISPLAY_POSTPREND;
+	xhtml += '</span>';
+
+	return xhtml;
+}
+
+/* ========================================================================
+	PRINT BREADCRUMB TRAIL
+   ======================================================================== */
+
+// check if we're local; if so, only print the PREPREND_CRUMBS
+if( document.location.href.toLowerCase().indexOf( "http://" ) == -1 )
+{
+	document.write( getCrumbTrail( getBreadcrumbs() ) );
+}
+else
+{
+	document.write( getCrumbTrail( getBreadcrumbs( getDirectoriesInURL() ) ) );
+}
+
Index: /release-kits/shared/ant-installer/web/manual/bugs.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/bugs.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/bugs.html	(revision 14989)
@@ -0,0 +1,344 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Bug database</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Antoine Levy-Lambert">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Bug database</h1>
+            <h3 class="section">
+      <a name="Bug Database"></a>
+      Bug Database
+    </h3>
+                        <p>
+           This page gives you some bookmarks to use the Bugzilla <a href="http://issues.apache.org/bugzilla/">
+            Apache Bug Database</a>.
+         </p>
+                                <p>
+           This link <a href="http://issues.apache.org/">issues.apache.org</a> connects you
+           to the complete list of Apache Bug Database systems.
+         </p>
+                                      <h4 class="subsection">
+        <a name="Has It Been Reported?"></a>
+        Has It Been Reported?
+      </h4>
+                        <p>
+            If the current nightly build doesn't resolve your problem, it is
+            possible that someone else has reported the issue. It is time to
+            look at .  This system is easy to use, and it will
+            let you search the <a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Ant&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_id">
+            currently open</a> and resolved bugs to see if your problem has
+            already been reported. If your problem has been reported, you can
+            see whether any of the developers have commented, suggesting
+            workarounds, or the reason for the bug, etc. Or you may have
+            information to add (see about creating and modifying bug reports
+            below), in which case, go right ahead and add the information.
+            If you don't have any additional information, you may just want
+            to vote for this bug, and perhaps
+            add yourself to the <code>CC</code> list to follow the progress
+            of this bug.
+         </p>
+                                <p><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Ant&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Open Ant bugs by order of priority</a>.</p>
+                                <p><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Ant&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.votes,bugs.priority%2Cbugs.bug_severity&amp;query_based_on=">Open Ant bugs by number of votes</a>.</p>
+                                                          <h4 class="subsection">
+        <a name="Filing a Bug Report"></a>
+        Filing a Bug Report
+      </h4>
+                        <p>
+            Please read our document about <a href="problems.html">problems</a>
+            before deciding that there is an unreported
+            bug in Ant.
+        </p>
+                                <p>
+            You have a few choices at this point. You can send
+            an email to the <code>user</code> mailing list
+            to see if
+            others have encountered your issue and find out how they may
+            have worked around it. If after some discussion, you feel it
+            is time to create
+            a bug report, this is a simple operation in the bug database.
+            Please try to provide as much information as possible in order
+            to assist the developers in resolving the bug. Please try to enter
+            correct values for the various inputs when creating the bug, such
+            as which version of Ant you are running, and on which platform,
+            etc. Once the bug is created, you can also add attachments to
+            the bug report.
+         </p>
+                                <p>
+            What information should you include in your bug report? The
+            easiest bugs to fix are those that are most easily reproducible,
+            so it is really helpful if you can produce a small test case that
+            exhibits the problem. In this case, you would attach the build file
+            and any other files necessary to reproduce the problem, probably
+            packed together in an archive. If you can't produce a test case,
+            you should try to include a snippet from your build file and the
+            relevant sections from the verbose or debug output from Ant. Try
+            to include the header information where Ant states the version,
+            the OS and VM information, etc. As debug output is likely to be
+            very large, it's best to remove any output that is not
+            relevant. Once the bug is entered into the bug database, you
+            will be kept informed by email about progress on the bug. If
+            you receive email asking for further information, please try to
+            respond, as it will aid in the resolution of your bug.
+         </p>
+                                <p>
+            To create the bug report hit this
+            <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">
+            link</a>.
+         </p>
+                                                          <h4 class="subsection">
+        <a name="Asking for an Enhancement"></a>
+        Asking for an Enhancement
+      </h4>
+                        <p>
+            Sometimes, you may find that Ant just doesn't do what you need it
+            to. It isn't a bug, as such, since Ant is working the way it is
+            supposed to work. Perhaps it is some additional functionality for
+            a task that hasn't been thought of yet, or maybe a completely new
+            task. For these situations, you will
+            want to raise an <i>enhancement request</i>. Enhancement requests
+            are managed using the same Apache Bug Database described above.
+            These are just a different type of bug report. If you look in the
+            bug database, you will see that one of the severity settings for
+            a bug is "Enhancement". Just fill the bug report in,
+            set the severity of the bug to "Enhancement", and
+            state in the description how you would like to have Ant enhanced.
+            Again, you should first check whether there are any existing
+            enhancment requests that cover your needs. If so, just add your
+            vote to these.
+         </p>
+                                <p>
+          <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=enhancement">
+          Create an enhancement report</a>
+
+        </p>
+                                                          <h4 class="subsection">
+        <a name="Fixing the Bug"></a>
+        Fixing the Bug
+      </h4>
+                        <p>
+            If you aren't satisfied with just filing a bug report, you can
+            try to find the cause of the problem and provide a fix yourself.
+            The best way to do that is by working with the latest code from Subversion.
+            Alternatively, you can work with the source code available from the
+            <a href="http://ant.apache.org/srcdownload.cgi">
+            source distributions</a>. If you
+            are going to tackle the problem at this level, you may want to
+            discuss some details first on the <code>dev</code>
+            mailing list. Once you have a fix for the problem, you may submit
+            the fix as a <i>patch</i> to either the
+            <code>dev</code> mailing
+            list, or enter the bug database as described above and attach the
+            patch to the bug report. Using the bug database has the advantage
+            of being able to track the progress of your patch.
+         </p>
+                                <p>
+            If you have a patch to submit and are sending it to the
+            <code>dev</code> mailing list,
+            prefix "[PATCH]"
+            to your message subject (this is also a good idea for
+            a subject line in the bug database).
+            Please include any relevant bug numbers.
+            Patch files should be created with the <code>-u</code>
+            option of the
+            <code>diff</code> or <code>svn diff</code> command. For
+            example:<br /><br />
+            <font face="verdana" size="-1">
+            diff -u Javac.java.orig Javac.java &gt; javac.diffs<br /><br />
+            </font>
+            or, if you have source from Subversion:<br /><br />
+            <font face="verdana" size="-1">
+            svn diff Javac.java &gt; javac.diffs<br /><br />
+            </font>
+
+           Note: You should give your patch files meaningful names.
+           This makes it easier for developers who need to apply a number
+           of different patch files.
+        </p>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/bylaws.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/bylaws.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/bylaws.html	(revision 14989)
@@ -0,0 +1,795 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Project Bylaws</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                              <span class="sel">Project Bylaws</span>
+                              </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Project Bylaws</h1>
+            <h3 class="section">
+      <a name="Apache Ant Project Bylaws"></a>
+      Apache Ant Project Bylaws
+    </h3>
+                        <p>
+      This document defines the bylaws under which the Apache Ant project
+      operates. It defines the roles and responsibilities of the
+      project, who may vote, how voting works, how conflicts are resolved,
+      etc.
+    </p>
+                                <p>
+      Ant is a project of the
+      <a href="http://www.apache.org/foundation/">Apache Software
+      Foundation</a>.  The foundation holds the copyright on Apache
+      code including the code in the  Ant codebase. The
+      <a href="http://www.apache.org/foundation/faq.html">foundation FAQ</a>
+      explains the operation and background of the foundation.
+    </p>
+                                <p>
+      Ant is typical of Apache projects in that it operates under a set of
+      principles, known collectively as the "Apache Way". If you are
+      new to Apache development, please refer to the
+      <a href="http://incubator.apache.org">Incubator project</a>
+      for more information on how Apache projects operate. <b>Note:</b> the
+      incubator project has only been recently set up and does not yet explain
+      the Apache Way in great detail.
+    </p>
+                                <ul>
+        <li><a href="#Roles and Responsibilities">Roles and Responsibilities</a></li>
+        <li><a href="#Decision Making">How decisions are made</a></li>
+    </ul>
+                        <h3 class="section">
+      <a name="Roles and Responsibilities"></a>
+      Roles and Responsibilities
+    </h3>
+                        <p>
+      Apache projects define a set of roles with associated rights and
+      responsibilities. These roles govern what tasks an individual may perform
+      within the project. The roles are defined in the following sections
+    </p>
+                                <ul>
+      <li><a href="#Users">Users</a></li>
+      <li><a href="#Developers">Developers</a></li>
+      <li><a href="#Committers">Committers</a></li>
+      <li><a href="#Project Management Committee">
+        Project Management Committee (PMC)</a>
+      </li>
+    </ul>
+                                      <h4 class="subsection">
+        <a name="Users"></a>
+        Users
+      </h4>
+                        <p>
+        The most important participants in the project are people who use our
+        software. The majority of our developers start out as users and guide
+        their development efforts from the user's perspective.
+      </p>
+                                <p>
+        Users contribute to the Apache projects by providing feedback to
+        developers in the form of bug reports and feature suggestions. As
+        well, users participate in the Apache community by helping other users
+        on mailing lists and user support forums.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Developers"></a>
+        Developers
+      </h4>
+                        <p>
+        All of the volunteers who are contributing time, code, documentation,
+        or resources to the Ant Project. A developer that makes sustained,
+        welcome contributions to the project may be invited to become a
+        Committer, though the exact timing of such invitations depends on many
+        factors.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Committers"></a>
+        Committers
+      </h4>
+                        <p>
+        The project's Committers are responsible for the project's technical
+        management. All committers have write access to the project's source
+        repositories. Committers may cast binding votes on any technical
+        discussion regarding the project.
+      </p>
+                                <p>
+        Committer access is by invitation only and must be approved by lazy
+        consensus of the active PMC members. A Committer is considered emeritus
+        by their own declaration or by not contributing in any form to the
+        project for over six months. An emeritus committer may request
+        reinstatement of commit access from the PMC. Such reinstatement is
+        subject to lazy consensus of active PMC members.
+      </p>
+                                <p>
+        Commit access can be revoked by a unanimous vote of all the active
+        PMC members (except the committer in question if they are also a PMC member).
+      </p>
+                                <p>
+        All Apache committers are required to have a signed Contributor License
+        Agreement (CLA) on file with the Apache Software Foundation. There is a
+        <a href="http://www.apache.org/dev/committers.html">Committer FAQ</a>
+        which provides more details on the requirements for Committers
+      </p>
+                                <p>
+        A committer who makes a sustained contribution to the project may be
+        invited to become a member of the PMC. The form of contribution is
+        not limited to code. It can also include code review, helping out
+        users on the mailing lists, documentation, etc.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Project Management Committee"></a>
+        Project Management Committee
+      </h4>
+                        <p>
+        The Project Management Committee (PMC) for Apache Ant was created by a
+        <a href="mission.html">resolution</a> of the board of the Apache
+        Software Foundation on 18<sup>th</sup> November 2002. The PMC is
+        responsible to the board and the ASF for the management and oversight
+        of the Apache Ant codebase. The responsibilities of the PMC include
+      </p>
+                                <ul>
+        <li>Deciding what is distributed as products of the Apache Ant project.
+            In particular all releases must be approved by the PMC
+        </li>
+        <li>Maintaining the project's shared resources, including the codebase
+            repository, mailing lists, websites.
+        </li>
+        <li>Speaking on behalf of the project.
+        </li>
+        <li>Resolving license disputes regarding products of the project
+        </li>
+        <li>Nominating new PMC members and committers
+        </li>
+        <li>Maintaining these bylaws and other guidelines of the project
+        </li>
+      </ul>
+                                <p>
+        Membership of the PMC is by invitation only and must be approved by a
+        lazy consensus of active PMC members. A PMC member is considered
+        "emeritus" by their own declaration or by not contributing in
+        any form to the project for over six months. An emeritus member may
+        request reinstatement to the PMC. Such reinstatement is subject to lazy
+        consensus of the active PMC members. Membership of the PMC can be
+        revoked by an unanimous vote of all the active PMC members other than
+        the member in question.
+      </p>
+                                <p>
+        The chair of the PMC is appointed by the ASF board. The chair is an
+        office holder of the Apache Software Foundation (Vice President,
+        Apache Ant) and has primary responsibility to the board for the
+        management of the projects within the scope of the Ant PMC. The chair
+        reports to the board quarterly on developments within the Ant project.
+        The PMC may consider the position of PMC chair annually and if
+        supported by 2/3 Majority may recommend a new chair to the board.
+        Ultimately, however, it is the board's responsibility who it chooses
+        to appoint as the PMC chair.
+      </p>
+                                            <h3 class="section">
+      <a name="Decision Making"></a>
+      Decision Making
+    </h3>
+                        <p>
+      Within the Ant project, different types of decisions require different
+      forms of approval. For example, the
+      <a href="#Roles and Responsibilities">previous section</a> describes
+      several decisions which require "lazy consensus" approval. This
+      section defines how voting is performed, the types of approvals, and which
+      types of decision require which type of approval.
+    </p>
+                                      <h4 class="subsection">
+        <a name="Voting"></a>
+        Voting
+      </h4>
+                        <p>
+        Decisions regarding the project are made by votes on the primary project
+        development mailing list (dev@ant.apache.org). Where necessary,
+        PMC voting may take place on the private Ant PMC mailing list.
+        Votes are clearly indicated by subject line starting with [VOTE] or
+        [PMC-VOTE]. Votes may contain multiple items for approval and these
+        should be clearly separated. Voting is carried out by replying to the
+        vote mail. Voting may take four flavours
+      </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>+1</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            "Yes," "Agree," or "the action should be
+            performed." In general, this vote also indicates a willingness
+            on the behalf of the voter in "making it happen"
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>+0</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            This vote indicates a willingness for the action under
+            consideration to go ahead. The voter, however will not be able
+            to help.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>-0</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            This vote indicates that the voter does not, in general, agree with
+            the proposed action but is not concerned enough to prevent the
+            action going ahead.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>-1</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            This is a negative vote. On issues where consensus is required,
+            this vote counts as a <strong>veto</strong>. All vetoes must
+            contain an explanation of why the veto is appropriate. Vetoes with
+            no explanation are void. It may also be appropriate for a -1 vote
+            to include an alternative course of action.
+          
+      </td>
+      </tr>
+          </table>
+                                <p>
+        All participants in the Ant project are encouraged to show their
+        agreement with or against a particular action by voting. For technical
+        decisions, only the votes of active committers are binding. Non binding
+        votes are still useful for those with binding votes to understand the
+        perception of an action in the wider Ant community. For PMC decisions,
+        only the votes of PMC members are binding.
+      </p>
+                                <p>
+        Voting can also be applied to changes made to the Ant codebase. These
+        typically take the form of a veto (-1) in reply to the commit message
+        sent when the commit is made.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Approvals"></a>
+        Approvals
+      </h4>
+                        <p>
+        These are the types of approvals that can be sought. Different actions
+        require different types of approvals
+      </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Consensus</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            For this to pass, all voters with binding votes must vote and there
+            can be no binding vetoes (-1). Consensus votes are rarely required
+            due to the impracticality of getting all eligible voters to cast a
+            vote.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Lazy Consensus</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy consensus requires 3 binding +1 votes and no binding vetoes.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Lazy Majority</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            A lazy majority vote requires 3 binding +1 votes and more binding +1
+            votes that -1 votes.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Lazy Approval</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            An action with lazy approval is implicitly allowed unless a -1 vote
+            is received, at which time, depending on the type of action, either
+            lazy majority or lazy consensus approval must be obtained.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>2/3 Majority</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Some actions require a 2/3 majority of active committers or PMC
+            members to pass. Such actions typically affect the foundation
+            of the project (e.g. adopting a new codebase to replace an existing
+            product). The higher threshold is designed to ensure such changes
+            are strongly supported. To pass this vote requires at least 2/3 of
+            binding vote holders to vote +1
+          
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Vetoes"></a>
+        Vetoes
+      </h4>
+                        <p>
+        A valid, binding veto cannot be overruled. If a veto is cast, it must be
+        accompanied by a valid reason explaining the reasons for the veto. The
+        validity of a veto, if challenged, can be confirmed by anyone who has
+        a binding vote. This does not necessarily  signify agreement with the
+        veto - merely that the veto is valid.
+      </p>
+                                <p>
+        If you disagree with a valid veto, you must lobby the person casting
+        the veto to withdraw their veto. If a veto is not withdrawn, the action
+        that has been vetoed must be reversed in a timely manner.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Actions"></a>
+        Actions
+      </h4>
+                        <p>
+        This section describes the various actions which are undertaken within
+        the project, the corresponding approval required for that action and
+        those who have binding votes over the action.
+      </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Action
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Description
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Approval
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Binding Votes
+      </th>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Code Change</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            A change made to a codebase of the project and committed
+            by a committer. This includes source code, documentation, website
+            content, etc.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy approval and then lazy consensus.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active committers.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Release Plan</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Defines the timetable and actions for a release. The plan also
+            nominates a Release Manager.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy majority
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active committers
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Product Release</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            When a release of one of the project's products is ready, a vote is
+            required to accept the release as an official release of the
+            project.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy Majority
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Adoption of New Codebase</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <p>
+            When the codebase for an existing, released product is to be
+            replaced with an alternative codebase. If such a vote fails to
+            gain approval, the existing code base will continue.
+            </p>
+
+            <p>
+            This also covers the creation of new sub-projects
+            within the project
+            </p>
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            2/3 majority
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active committers
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>New Committer</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            When a new committer is proposed for the project
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>New PMC Member</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            When a committer is proposed for the PMC
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Committer Removal</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <p>When removal of commit privileges is sought.</p>
+            <p><b>Note: </b> Such actions will also be referred to the ASF
+            board by the PMC chair</p>
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members (excluding the committer in question if a
+            member of the PMC).
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>PMC Member Removal</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <p>When removal of a PMC member is sought.</p>
+            <p><b>Note: </b> Such actions will also be referred to the
+            ASF board by the PMC chair</p>
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members (excluding the member in question).
+          
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Voting Timeframes"></a>
+        Voting Timeframes
+      </h4>
+                        <p>
+        Votes are open for a period of 1 week to allow all active voters
+        time to consider the vote. Votes relating to code changes are not
+        subject to a strict timetable but should be made as timely as possible.
+      </p>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/contributors.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/contributors.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/contributors.html	(revision 14989)
@@ -0,0 +1,516 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Contributors</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                              <span class="sel">Contributors</span>
+                              </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Contributors</h1>
+            <h3 class="section">
+      <a name="Project Management Committee"></a>
+      Project Management Committee
+    </h3>
+                              <h4 class="subsection">
+        <a name="Active Members"></a>
+        Active Members
+      </h4>
+                        <p>
+                <b>Bruce Atherton</b> (bruce at callenish.com - <a href="http://www.callenish.com/~bruce">http://www.callenish.com/~bruce</a>)
+<br />
+Currently a Systems Architect with Avue Technologies, Bruce has been
+working with Java since version 1.0a2. He also claims to be one of the first
+people to mark up a FAQ with HTML, for a web browser of the distant past
+called Cello.
+            </p>
+                                <p>
+                <b>Stephane Bailliez</b><br />
+            </p>
+                                <p>
+                <b>Matt Benson</b><br />
+            </p>
+                                <p>
+                <b>Stefan Bodewig</b> (stefan.bodewig at freenet.de -
+          <a href="http://stefan.samaflost.de/">http://stefan.samaflost.de/</a>)
+<br />
+</p>
+                                <p>
+                <b>Dominique Devienne</b> (ddevienne at apache.org)
+<br />
+Dominique has been involved non-stop with the Ant user community since
+the 1.4 days, trying without success to answer posts as well or as often
+as Diane Holt after she left the user list. He is opinionated, always
+striving for the best possible design. While at Landmark Graphics, he
+designed and implemented large Ant/CppTasks builds for mixed Java/C++ projects.
+            </p>
+                                <p>
+                <b>Erik Hatcher</b> (ehatcher at apache.org)
+<br />
+Erik is the co-author of <a href="http://www.manning.com/hatcher">
+Java Development with Ant</a> and speaks on Ant and other topics at
+<a href="http://www.nofluffjuststuff.com">No Fluff, Just Stuff
+symposiums</a> as well as other venues.  Erik is the President of
+<a href="http://www.ehatchersolutions.com">eHatcher Solutions, Inc</a>.
+</p>
+                                <p>
+                <b>Martijn (J.M.) Kruithof</b> (ant at kruithof xs4all nl)
+<br />
+Martijn Kruithof is a system engineer working with and on Java products
+in a telecommunication network setting.
+</p>
+                                <p>
+                <b>Antoine Levy-Lambert</b> (antoine at apache.org)
+<br />
+Antoine is working as a software engineer for 
+<a href="http://www.arielpartners.com">Ariel Partners</a>.
+He is specialized in builds and automation of deployment processes.
+
+            </p>
+                                <p>
+                <b>Steve Loughran</b><br />
+            </p>
+                                <p>
+                <b>Conor MacNeill</b> (conor at cortexebusiness.com.au)
+<br />
+Conor is a senior developer at Cortex eBusiness, where he develops
+J2EE based systems. In his spare time he helps with the development of
+the Ant build tool.  He is also serving as the Chairman of this PMC.
+</p>
+                                <p>
+				<b>Jan Matèrne</b> (jhm at apache.org)
+<br />
+Jan is consultant for OOA/D in the computer centre of the government
+of Northrhine Westfalia / Germany.
+            </p>
+                                <p>
+                <b>Peter Reilly</b><br />
+            </p>
+                                <p>
+                <b>
+                    <a href="http://www.intertwingly.net/">Sam Ruby</a>
+                </b>
+                (rubys at us.ibm.com)
+<br />
+Sam takes a perverse pleasure in integrating disparate things.  He is
+a member of the <a href="http://www.php.net/credits.php">PHP group</a>, Apache
+<a href="http://xml.apache.org/whoweare.html">XML PMC</a>, Apache
+sponsor for the <a href="http://xml.apache.org/soap">xml-soap</a> subproject
+and convener of <a href="http://www.ecma.ch">ECMA</a> TC39 TG3.
+</p>
+                                <p>
+                <b>Magesh Umasankar</b> (umagesh at apache.org)
+<br />
+Magesh is a lead software developer at
+<a href="http://www.manugistics.com">Manugistics</a>, where
+he is responsible for some of the Revenue Optimization
+solutions.
+</p>
+                                <p>
+                <b>Christoph Wilhelms</b> (christoph.wilhelms at t-online.de)
+<br />
+Christoph works as software engineer at the world's biggest travel company
+<a href="http://www.tui.com">TUI</a>. His passion are all UI related things so
+at the Ant-Project he takes care of Antidote - the Ant GUI.
+            </p>
+                                                          <h4 class="subsection">
+        <a name="Emeritus Members"></a>
+        Emeritus Members
+      </h4>
+                        <p>
+                <b>James Duncan Davidson</b> (duncan at x180.net - <a href="http://x180.net/">http://x180.net/</a>)
+<br />
+
+By day, Duncan works in the Open Source Program Office at Sun
+Microsystems where he helps various Open Source efforts within Sun
+"do the right thing". Previously at Sun he was responsible
+for the Servlet API Specifications 2.1 and 2.2 as well as the Java API
+for XML Parsing 1.0 and was the original author of Tomcat and Ant. He
+was one of the rabble-rousers within Sun that helped make the Jakarta
+Project a reality and served as the first Chairman of the Jakarta PMC.
+</p>
+                                <p>
+                <b>Diane Holt</b><br />
+            </p>
+                                <p>
+                <b>Donald Leslie</b><br />
+            </p>
+                                <p>
+                <b>Costin Monolache</b><br />
+            </p>
+                                <p>
+                <b>Jon Skeet</b><br />
+            </p>
+                                            <h3 class="section">
+      <a name="Committers"></a>
+      Committers
+    </h3>
+                              <h4 class="subsection">
+        <a name="Active Committers"></a>
+        Active Committers
+      </h4>
+                        <p>
+                <b>Steve Cohen</b>
+            </p>
+                                <p>
+                <b>Jose Alberto Fernandez</b>
+            </p>
+                                <p>
+                <b>Jesse Glick</b> (jesse dot glick at sun dot com)
+<br />
+Jesse has been using Java since 1998 and joined Sun Microsystems as
+part of the company that produced the NetBeans IDE. After discovering
+Ant in the 1.2 days, he wrote most of NetBeans' Ant integration.
+Recently he has worked on the NetBeans 4.0 project system, based heavily
+on Ant as a build tool.
+</p>
+                                <p>
+  <b>Kevin Jackson</b> (foamdino at gmail.com)<br />
+</p>
+                                <p>
+   <b>Alexey Solofnenko</b> (trelony at gmail.com)<br />
+</p>
+                                                          <h4 class="subsection">
+        <a name="Emeritus Committers"></a>
+        Emeritus Committers
+      </h4>
+                        <p>
+                <b>Preston Bannister</b><br />
+            </p>
+                                <p>
+                <b>Nick Davis</b><br />
+            </p>
+                                <p>
+                <b>Darrell DeBoer</b><br />
+            </p>
+                                <p>
+                <b>Peter Donald</b> (peter at apache.org)
+<br />
+
+Peter is an avid java developer who is active in the
+<a href="http://jakarta.apache.org/avalon/">Avalon</a> and
+<a href="http://ant.apache.org/">Ant</a> projects.
+In his spare time he develops a distributed virtual environment
+(ie military simulator or 3D game) using java technologies.
+</p>
+                                <p>
+                <b>Danno Ferrin</b> (shemnon at yahoo.com)
+<br />
+Danno has been programming in Java since Summer 96. Danno wrote a JSP
+engine on his own and released it the very same day Jakarta was
+announced at JavaOne. Since then, he decided to join the Jakarta
+project in a spirit of co-operation over competition.
+</p>
+                                <p>
+                <b>Simeon H.K. Fitch</b> (simeon.fitch at mseedsoft.com)
+<br />
+Simeon is owner of Mustard Seed Software, which specializes in developing
+distributed applications and user interfaces for the science, engineering,
+and research oriented clients. He is the lead architect and developer for
+Antidote, the GUI for Ant.
+</p>
+                                <p>
+                <b>Thomas Haas</b> (tha at whitestein.com)
+<br />
+Tom is interested in distributed systems, Java middleware and worked on an
+implementation of the JMS specification. At Whitestein Technologies he is
+working on bringing software agent technology and J2EE together.
+</p>
+                                <p>
+
+                <b>Jason Hunter</b> (jh at servlets.com)
+<br />
+Jason is author of "Java Servlet Programming" (O'Reilly) and publisher
+of <a href="http://www.servlets.com/">http://www.servlets.com/</a>.
+He works at <a href="http://www.collab.net">CollabNet</a>.
+</p>
+                                <p>
+                <b>Justyna Horwat</b> (horwat at apache.org)
+<br />
+</p>
+                                <p>
+                <b>Arun Jamwal</b>
+<br />
+</p>
+                                <p>
+                <b>Arnout J. Kuiper</b> (ajkuiper at planet.nl)
+<br />
+
+Arnout J. Kuiper is a Java Architect with the Sun Java Center at Sun
+Microsystems. His main focus is web-related technologies on the Java
+platform (J2EE, XML, ...).
+</p>
+                                <p>
+                <b>Stefano Mazzocchi</b> (stefano at apache.org)
+<br />
+Stefano is addicted to software design, Java programming and
+open development. In the last 4 years, he has contributed way too much
+time to Apache, expecially on JServ, JMeter, Avalon, JAMES, Ant, Cocoon
+and helping to bring more projects into Apache-land, such as FOP, Batik,
+POI and Xindice. The problem is that he's too picky to be satisfied :-)
+</p>
+                                <p>
+                <b>Glenn McAllister</b> (glenn at somanetworks.com)
+<br />
+Glenn McAllister is a software developer at SOMA Networks, was formerly
+the same at IBM (plus tech writer plus build guy), and does some writing
+on the side for the VADD Technical Journal.
+</p>
+                                <p>
+                <b>Craig McClanahan</b> (Craig.McClanahan at eng.sun.com)
+<br />
+Craig was involved in the Apache JServ project, focused on implementing
+a next generation architecture and feature set for the core servlet
+engine.  He has recently joined Sun as technical lead for the servlet
+and JSP reference implementation.
+          </p>
+                                <p>
+                <b>Adam Murdoch</b>
+<br />
+</p>
+                                <p>
+                <b>Harish Prabhandham</b> (harishp at onebox.com)
+<br />
+Harish is an engineer with the J2EE team at Sun, primarily responsible
+for implementing security in the J2EE Reference Implementation
+(RI). He integrated various technologies including servlet/JSP
+implementations from Tomcat into the J2EE RI. These days, he hacks PHP
+code during the day.
+</p>
+                                <p>
+                <b>Nico Seessle</b><br />
+            </p>
+                                <p>
+                <b>Gal Shachor</b> (shachor at il.ibm.com)
+<br />
+Gal Shachor is a research staff member at IBM. He wrote his first
+Servlet container (ServletExpress) at the beginning of 1997. Later on
+ServletExpress (and Gal) merged into WebSphere, and Gal participated
+in the development of WebSphere 1, 2 and 3.
+</p>
+                                <p>
+                <b>Jon S. Stevens</b> (jon at collab.net)
+<br />
+
+Jon is a Co-Founder of <a href="http://www.clearink.com/">Clear Ink
+Corp</a> and recently left to work on <a href="http://scarab.tigris.org/">Scarab</a> a next generation Open
+Source Java Servlet based Issue/Bug tracking system for <a href="http://www.collab.net/">CollabNet</a>. He is an active developer
+of the <a href="http://java.apache.org/jserv/">Apache JServ Servlet
+Engine</a> for the Apache Web Server and Co-Author of the <a href="http://java.apache.org/ecs/">Element Construction Set</a> as
+well as the web application framework, <a href="http://java.apache.org/turbine/">Turbine</a>.
+</p>
+                                <p>
+                <b>Jesse Stockall</b><br />
+            </p>
+                                <p>
+                <b>James Todd</b> (jwtodd at pacbell.net)
+<br />
+James has developed real time customer oriented apps for roughly 10
+years the last 5 of which have predominately been fully integrated,
+front and back, extraNet implementations which have been based on
+Apache, Java and Tcl.
+</p>
+                                <p>
+                <b>Anil Vijendran</b> (akv at eng.sun.com)
+<br />
+Anil Vijendran is the principal developer of the JSP engine in
+Tomcat. He's done some pretty scary things in his past life --
+implementing the CORBA IDL to C++ 2.0 mapping, skydiving, IDL to Java
+compilers, Object Databases (SIGSEV, you da man!) for C++, Java ORB
+and EJB runtime environments -- in that order.
+</p>
+                                            <h3 class="section">
+      <a name="Logo"></a>
+      Logo
+    </h3>
+                        <p>Ant's logo is the result of a logo contest, it has been
+        designed by</p>
+                                <p>
+                <b>Nick King</b>
+<br />
+</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/external.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/external.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/external.html	(revision 14989)
@@ -0,0 +1,6857 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - External Tools and Tasks</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                              <span class="sel">External Tools and Tasks</span>
+                              </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">External Tools and Tasks</h1>
+            <h3 class="section">
+      <a name="External Tools and Tasks"></a>
+      External Tools and Tasks
+    </h3>
+                        <p>This page lists external resources for Apache Ant: <a href="#Tasks">Tasks</a>, <a href="#Compiler%20Implementations">Compiler Implementations</a>,
+      <a href="#IDE%20and%20Editor%20Integration">IDE integration
+      tools</a>, <a href="#Source%20Control%20ystems">Source Control
+      Systems</a>, loggers, you name it. If you've written
+      something that should be included, please post all relevant
+      information to one of the mailing lists.  For details, see the
+      <a href="faq.html#adding-external-tasks">FAQ</a>.</p>
+                                <p>Nothing listed here is directly supported by the Ant
+      developers (therefore '<i>external</i> tools and tasks'),
+      if you encounter any problems with them, please use
+      the contact information.</p>
+                        <h3 class="section">
+      <a name="Tasks"></a>
+      Tasks
+    </h3>
+                              <h4 class="subsection">
+        <a name="AJC"></a>
+        AJC
+      </h4>
+                        <p><a href="http://www.eclipse.org/aspectj/">AspectJ</a> is an
+          aspect-oriented extension to Java.  This task compiles a
+          source tree using the AspectJ compiler -- AJC.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/aspectj/">http://www.eclipse.org/aspectj/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/aspectj/">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Anakia"></a>
+        Anakia
+      </h4>
+                        <p>Actually, Anakia is more than just an Ant task, it is a an
+        XML transformation tool based on JDOM, Velocity and Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jakarta.apache.org/velocity/anakia.html">http://jakarta.apache.org/velocity/anakia.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jakarta.apache.org/site/mail2.html">Velocity mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Andariel"></a>
+        Andariel
+      </h4>
+                        <p>Andariel is a set of tasks designed to help the generation of HTML
+        (and other markup languages) pages from Ant. Includes a XPath processor,
+        an image information retriever, and others.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.4 and newer
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://andariel.uworks.net/">http://andariel.uworks.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          josep DOT rio AT uworks DOT net
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 1.1
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant2Svg"></a>
+        Ant2Svg
+      </h4>
+                        <p>Ant2Svg creates a graphical representation of an Ant build file.
+        The graphical representation is in the form of a Scalable Vector
+        Graphics (SVG) file that can be displayed in a web browser. This
+        simplified SVG depiction helps the developer understand build file
+        structure and identify extraneous or missing dependencies.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.spiritedsw.com/ant2svg/">http://www.spiritedsw.com/ant2svg/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          loney &lt;at&gt; spiritedsw &lt;dot&gt; com
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache Software License 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="ant4eclipse"></a>
+        ant4eclipse
+      </h4>
+                        <p>ant4eclipse provides a set of Ant tasks to make several
+                configurations from the Eclipse IDE available in Ant
+                buildscripts. The tasks are aimed to avoid redundancy between
+                Eclipse and Ant configurations in order to build small but
+                powerful build systems for the continuous integration
+                process</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant4eclipse.sf.net">http://ant4eclipse.sf.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=137377">
+              ant4eclipse user mailing list</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Sun Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antcount"></a>
+        Antcount
+      </h4>
+                        <p>Antcount is a set of filters that can be used to gather statistics
+           from files or resources. It is mainly used for log files analysis.
+           It allows to:<ul>
+             <li>count inputs (lines, strings)</li>
+             <li>count occurrences of each input</li>
+             <li>calculate average, max and min values of floats in input</li>
+           </ul>
+           Antcount also includes some useful filters to:<ul>
+             <li>stop filtering: read everything but write nothing</li>
+             <li>echo input to the console or to a file. This allows users to create
+                 several files at once</li>
+             <li>split the stream in two for parallel processing</li>
+           </ul>
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.2 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antcount.sourceforge.net/">http://antcount.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antcount.sourceforge.net/contacts.html">Patrick Martin</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntDoc"></a>
+        AntDoc
+      </h4>
+                        <p>AntDoc is a tool that generates HTML documentation from Ant
+        buildfiles; the generated HTML is inspired from what javadoc
+        yields.  AntDocGUI offers a simple Ant target launcher named
+        AntDoc GUI. Ant targets may be launched from the generated
+        AntDoc HTML pages. Integration to various IDEs is in
+        progress.</p>
+                                <p>AntDoc can be run via an Ant task, AntDoc GUI can be run
+        via an Ant task, or via a JVM launch.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antdoc.free.fr/">http://antdoc.free.fr/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Edouard Mercier
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntDoclet"></a>
+        AntDoclet
+      </h4>
+                        <p>AntDoclet is a tool to automatically generate documentation out of
+        your Ant Tasks' source code.</p>
+                                <p>It is implemented as a Javadoc doclet, and generates reference
+        documentation and other deliverables from the source code of your
+        custom Ant Tasks/Types.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6+ (not tested on earlier versions)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antdoclet.neuroning.com/">http://antdoclet.neuroning.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://neuroning.com/">Fernando Dobladez</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Anteater"></a>
+        Anteater
+      </h4>
+                        <p>Anteater is a set of Ant tasks for the functional testing of websites
+          and web services (functional testing being; hit a URL and ensure the
+          response meets certain criteria). Can test HTTP params, response
+          codes, XPath, regexp and Relax NG expressions. Includes HTML reporting
+          (based on junitreport) and a hierarchical grouping system for quickly
+          configuring large test scripts.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://aft.sourceforge.net/">http://aft.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://lists.sourceforge.net/lists/listinfo/aft-devel">developer
+                mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntForm"></a>
+        AntForm
+      </h4>
+                        <p>Provides a java/swing form-based input scheme for
+        configuring ant properties and launching ant targets.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.2.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antforms.sourceforge.net/">http://antforms.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:rene_ghosh@yahoo.com">René Ghosh</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antmerge"></a>
+        Antmerge
+      </h4>
+                        <p>Provides simple inheritance between ant files</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5. Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.russet.org.uk/antmerge.html">http://www.russet.org.uk/antmerge.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:antmerge@russet.org.uk">Phillip Lord</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntPrettyBuild"></a>
+        AntPrettyBuild
+      </h4>
+                        <p>
+          Ant Pretty Build is a tool to easily show and run Ant buildfiles directly from
+        within a browser window. It consists of a single XSL file that will generate,
+        on the fly, in the browser, from the .xml buildfile, a pretty interface showing
+        project name, description, properties and targets, etc. sorted or unsorted,
+          allowing to load/modify/add properties, run the whole project, or run selected
+        set of targets in a specific order, with the ability to modify logger/logfile,
+        mode and add more libs or command line arguments.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          All Ant versions
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antprettybuild.sourceforge.net/">Ant Pretty Build Homepage</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antprettybuild.sourceforge.net">Charbel BITAR</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache License V2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntSpaces"></a>
+        AntSpaces
+      </h4>
+                        <p>AntSpaces provides Ant integration with JavaSpaces. This
+        allows you to coordinate Ant tasks via JavaSpaces, pull out
+        work units from a JavaSpace for distributed Ant tasks to work
+        on, and so forth.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.oopsconsultancy.com/software/antspaces/">http://www.oopsconsultancy.com/software/antspaces/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          antspaces at oopsconsultancy.com
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntTimerTask"></a>
+        AntTimerTask
+      </h4>
+                        <p><a href="http://www.jeckle.de/freeStuff/AntTimerTask/index.html">Timer</a>
+        is task for measuring the time elapsed to complete other
+        tasks</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.jeckle.de/freeStuff/AntTimerTask/index.html">http://www.jeckle.de/freeStuff/AntTimerTask/index.html</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mario@jeckle.de">mario@jeckle.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Lesser GNU Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant Web Start Task"></a>
+        Ant Web Start Task
+      </h4>
+                        <p>Ant Web Start Task is an Ant task allowing developers to
+        package a desktop application as a WAR (Web Application
+        Archive) to be distributed over the net via Java Web Start</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant-jnlp-war.sourceforge.net/">http://ant-jnlp-war.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntXtras"></a>
+        AntXtras
+      </h4>
+                        <p>A collection of powerful Ant extensions components
+        organized into five categories: fixture-control,
+        execution-rules, flow-control, feedback, and helpers.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antxtras.sourceforge.net/">AntXtras Home</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antxtras.sourceforge.net">SSMC</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License (LGPL 2.1)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Build Number"></a>
+        Build Number
+      </h4>
+                        <p> Build Number is a tool to track software artifacts such as files and automatically assign
+        proper version/build numbers to them. It ensures that two different artifacts will have different
+        version/build numbers, but identical artifacts/builds will be assigned the same number. It doesn't
+        take version management away from you and doesn't replace your build process, but rather plugs
+        into the process and introduces version/build number governance by defining who is in charge of
+        which part of version number. With Build Number you are still in charge of the head of the version
+        number. E.g. you may decide to have 4 numbers in your version (major, minor, interface, implementation)
+        and you want to manage the two first numbers (major and minor). Build Number will take care of the
+        tedium of managing the last two numbers (interface and implementation). </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5.4 and 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/products/buildnumber">http://www.hammurapi.biz/products/buildnumber</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/contact.html">Project Contact Page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Checkstyle"></a>
+        Checkstyle
+      </h4>
+                        <p>Checkstyle is a development tool to help programmers write
+        Java code that adheres to a coding standard. Its purpose is to
+        automate the process of checking Java code, and to spare
+        humans of this boring (but important) task.</p>
+                                <p>Checkstyle can be run via an Ant task or a command line
+        utility.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://checkstyle.sourceforge.net/">http://checkstyle.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:checkstyle@puppycrawl.com">Oliver Burn</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Starting with release 2.0 the license is the GNU
+            Lesser General Public License.  Prior releases were under
+            the GNU General Public License.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="ChownTask"></a>
+        ChownTask
+      </h4>
+                        <p>ChownTask is an Ant task to change ownership of files on
+        Unix.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and up
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://sourceforge.net/projects/chowntask/">http://sourceforge.net/projects/chowntask/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:chowntask-users@lists.sourceforge.net">Wilfred Springer</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="CleanImports"></a>
+        CleanImports
+      </h4>
+                        <p>Removes unneeded imports. Formats your import
+        sections. Flags ambiguous imports.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and up
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.cleanimports.tombrus.nl">http://www.cleanimports.tombrus.nl</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cleanimports@tombrus.nl">Tom Brus</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Clover"></a>
+        Clover
+      </h4>
+                        <p>Clover is an Ant-based Code Coverage tool. It can be used
+        seamlessly with Ant-based projects. It provides method,
+        statement, and branch coverage analysis, and has rich
+        reporting in XML, HTML or via a Swing GUI.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 or greater
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.cenqua.com/clover/">http://www.cenqua.com/clover/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:clover-support@cenqua.com">clover-support@cenqua.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial, free licenses available for open source
+            projects.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="CMSDeploy"></a>
+        CMSDeploy
+      </h4>
+                        <p><a href="http://cmsdeploy.sourceforge.net">CMSDeploy</a> is
+        an Apache Ant Task to submit files and templates to Vignette
+        CMS.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cmsdeploy.sourceforge.net">http://cmsdeploy.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:masogato@users.sourceforge.net">masogato@users.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Cocoon Task"></a>
+        Cocoon Task
+      </h4>
+                        <p>This task allows the generation of static web pages and
+        sites using Apache Cocoon in off-line mode.</p>
+                                <p>It allows the configuration information for Cocoon to be
+        included within the Ant build file, and is thus
+        able to take advantage of Ant properties.</p>
+                                <p>The task shares its code with the Cocoon Command Line, which
+        means that this task will instantly take
+        advantage of any new functionality added there.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.3 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cocoon.apache.org/2.1/">http://cocoon.apache.org/2.1/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Documentation:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cocoon.apache.org/2.1/userdocs/offiline/ant.html">http://cocoon.apache.org/2.1/userdocs/offline/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:users.at.cocoon.apache.org">users at cocoon.apache.org</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Configure"></a>
+        Configure
+      </h4>
+                        <p>Recursive build support (call ant on every package level,
+        and only build files in that package or in that package and
+        everything below) with seperation of source and output.</p>
+                                <p>The task generates build files in any subdirectory (except
+        for CVS-directories) for you. Only place one build.xml file in
+        the top and call target 'setup' or
+        'rescan'.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.dsdelft.nl/~lemval/ant/">http://www.dsdelft.nl/~lemval/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:lemval@dsdelft.nl">M.J.P. van Leeuwen</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          License derived from Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="CVSGrab"></a>
+        CVSGrab
+      </h4>
+                        <p>A little CVS client that can be useful when people are
+        behind corporate firewall that blocks any cvs
+        communications. It uses the ViewCVS web interface to access
+        the CVS repository via standard http, and downloads all the
+        files present in it.</p>
+                                <p>It works from the command line or as an Ant task.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cvsgrab.sourceforge.net/">http://cvsgrab.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cvsgrab-users@lists.sourceforge.net">CVSGrab
+            user mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Dependencies"></a>
+        Dependencies
+      </h4>
+                        <p>The dependencies task manages a set of external dependencies which
+            may be downloaded from a remote repository,
+             such as ibiblio.org. Uses a local cache to avoid repeated
+            downloads.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5.1, should work with 1.4+.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.httpunit.org/doc/dependencies.html">http://www.httpunit.org/doc/dependencies.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:russgold@httpunit.org">Russell Gold</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Dependency Finder"></a>
+        Dependency Finder
+      </h4>
+                        <p>Dependency Finder extracts dependencies and OO metrics from
+        Java class files produced by most Java compilers. It can compute
+        API differences between versions;  no sources needed. It includes
+        Ant tasks, web, Swing, and command-line interfaces, with XSL
+        stylesheets for formatting output.</p>
+                                <p>You can use it to extract dependencies between packages, classes,
+        or even methods, or any combination thereof.  You can use Perl
+        regular expressions to filter the information and pinpoint only
+        what you need.  There is even a Web Application version (WAR file)
+        so a whole group of developers can share a common view.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5.3, should work with 1.4+.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://depfind.sourceforge.net/">http://depfind.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jeantessier@users.sourceforge.net">Jean Tessier</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Doxygen task"></a>
+        Doxygen task
+      </h4>
+                        <p>There are two Ant tasks for running the Doxygen
+        documentation system.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.bgw.org/projects/java/ant/">http://www.bgw.org/projects/java/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mortis@voicenet.com">Kyle R. Burton</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                <p>and</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant-doxygen.sourceforge.net/">http://ant-doxygen.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:akkumar@users.sourceforge.net">Karthik A Kumar</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="DTDDoc"></a>
+        DTDDoc
+      </h4>
+                        <p>DTDDoc is here to help you to document your DTD's efficiently. It is a
+        straightforward extension of the javadoc concept to the DTD file format.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dtddoc.sourceforge.net/">http://dtddoc.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=53704">Project Mailing List</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          X11 (Open Source)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="EMMA"></a>
+        EMMA
+      </h4>
+                        <p>EMMA is an open-source toolkit for measuring and reporting
+        Java code coverage. EMMA distinguishes itself from other tools
+        by going after a unique feature combination: support large-scale
+        enterprise software development while keeping individual developers
+        work fast and iterative at the same time.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://emma.sourceforge.net/">http://emma.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:emma-users@lists.sourceforge.net">Mailinglist</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Common Public License 1.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="FMPP"></a>
+        FMPP
+      </h4>
+                        <p>FMPP is a general-purpose text file preprocessor tool that
+        uses FreeMarker templates. It is particularly designed for
+        HTML preprocessor, for the generation of complete (static)
+        homepages: directory structure that contains HTML-s, image
+        files, etc. But of course it can be used to generate source
+        code or whatever text files. FMPP is extendable with Java
+        classes to pull data from any data sources (XML file,
+        database, etc.) and embed the data into the generated
+        files.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://fmpp.sourceforge.net/">http://fmpp.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="GenJar"></a>
+        GenJar
+      </h4>
+                        <p>Builds a JAR file based on class dependencies rather than simply the contents of a directory</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 alpha (built after 2001/08/04) and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://genjar.sourceforge.net/">http://genjar.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jesse_dev@yahoo.com">Jesse Stockall</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Grand"></a>
+        Grand
+      </h4>
+                        <p>Grand is a set of tools to create a visual representation of Ant target
+          dependencies. It works by taking an Ant build file and creating a "dot" file. It
+          differs from the existing tools by relying on the Ant API rather than XML parsing to
+          get the dependencies. It includes many advanced features such as filtering or
+          rendering depending on the target's nature. Also features a SWT based GUI.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ggtools.net/grand/">http://www.ggtools.net/grand/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Christophe Labouisse
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Greebo"></a>
+        Greebo
+      </h4>
+                        <p>Greebo is an Ant-task for downloading dependency files
+        (currently only jars) from a network to a specified directory,
+        much like Maven. It supports multiple local and remote
+        repositories with either flat or maven-like structures. It can
+        read the dependency list from a Maven project file, a
+        maven-like dependency file, or directly from the build.xml
+        file.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://greebo.sourceforge.net/">http://greebo.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=73733">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="GroboUtils CodeCoverage"></a>
+        GroboUtils CodeCoverage
+      </h4>
+                        <p>The CodeCoverage sub-project of GroboUtils provides a 100%
+        pure Java code coverage tool.  It uses pre-execution class file
+        recompilation, and generates XML files containing the coverage
+        statistics.  It does not require any advanced VM setup to generate
+        coverage numbers.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://groboutils.sourceforge.net/codecoverage/">http://groboutils.sourceforge.net/codecoverage/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=22594">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Hammurapi"></a>
+        Hammurapi
+      </h4>
+                        <p>Java code review tool. Performs automated code
+        review. Contains 111 inspectors which check different aspects
+        of code quality including coding standards, EJB, threading,
+        ...</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5.x and 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/products/hammurapi">http://www.hammurapi.biz/products/hammurapi</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/contact.html">Project Contact Page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="HelpStudioAnt"></a>
+        HelpStudioAnt
+      </h4>
+                        <p>This task allows for HelpStudio projects to be created via Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.0 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://helpstudioant.sourceforge.net">http://helpstudioant.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="IDLDepend"></a>
+        IDLDepend
+      </h4>
+                        <p>idldepend is a task that (re)generates Java sources to be
+        created from CORBA/IDL files.</p>
+                                <p>It parses the IDL file and determines the Java files that
+        must be generated, taking in account the modifications that
+        can happen due to command line parameters.  If any of the Java
+        files are missing or older than the source IDL specification,
+        it launches the specified compiler.  The compilers of Orbacus,
+        Jacorb, OpenORB, Orbix2k and Sun'JDK distributions are
+        supported.</p>
+                                <p>To speed up the process and avoid unnecesary re-parsing, it
+        keeps the dependencies in intermediate files.  This task does
+        not launch the javac compiler as well, that is, its output are
+        Java files and not the final bytecode.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://grasia.fdi.ucm.es/~luismi/idldepend/">http://grasia.fdi.ucm.es/~luismi/idldepend/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:luismpena@gmx.net">luismpena@gmx.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          free source, no license restrictions
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Image"></a>
+        Image
+      </h4>
+                        <p>Image task generates and transforms images. It exposes the
+        imaging capability available in Java2D, Java Advanced Imaging,
+        ImageIO, etc., as set of nested elements.</p>
+                                <p>Image transformations such as "resize"
+        (scale),"overlay" (one image on another),
+        "border" (add a border), "text" (text on
+        image), "crop" (a sub-image of a bigger image),
+        "rotate", "grayscale" (change a color
+        image to shades of gray).<br />
+        Now it supports transparency (making images translucent), a
+        bestfit option for Resize, simple support for images within
+        a security-constraint, a preliminary support (if pjatools.jar
+        is available) for saving files as GIF and some other fixes.</p>
+                                <p>IMPORTANT: You will need the PMIW (Poor Man's Imaging Wrapper) jar
+        for all the operations and the pjatools jar for GIF encoding/ saving
+        support.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.mullassery.com/software/ANT/">http://www.mullassery.com/software/ANT/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          pmiw jar
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.mullassery.com/software/PMIW/">http://www.mullassery.com/software/PMIW/</a>
+                (Poor Man's Imaging Wrapper)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          pjatools jar
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eteks.com/pja/en/">http://www.eteks.com/pja/en/</a>
+                (pjatools for GIF encoding support)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.mullassery.com">Abey Mullassery</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Importscrubber"></a>
+        Importscrubber
+      </h4>
+                        <p>Removes unnecessary import statements from a Java source code file.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://importscrubber.sourceforge.net/">http://importscrubber.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:tomcopeland@users.sourceforge.net">Tom Copeland</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="ImTask"></a>
+        ImTask
+      </h4>
+                        <p>ImTask is a task to allow one to send an Instant
+        Message. Currently supports yahoo!, AIM, and Jabber</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://imtask.sourceforge.net/">http://imtask.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:djallstar@users.sourceforge.net">Jon Madison</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Incanto"></a>
+        Incanto
+      </h4>
+                        <p>Ant tasks to provide support for Oracle database tools
+        (such as SQL*Plus, Import, Export)</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://incanto.sourceforge.net/">http://incanto.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:alexrk@users.sourceforge.net">Alexander Karnstedt</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache License, Version 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="IsDirValidator"></a>
+        IsDirValidator
+      </h4>
+                        <p>Checks whether a given directory structure conforms to
+        certain rules that are defined via nested elements of the
+        task.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://isvalidator.sourceforge.net/en/isDirValidator.htm">http://isvalidator.sourceforge.net/en/isDirValidator.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:news@inigoserrano.com">Iñigo Serrano</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ivy"></a>
+        Ivy
+      </h4>
+                        <p>Ivy is a simple yet powerful dependency manager featuring
+        continuous integration, dependencies of dependencies
+        management, multiple repositories including ibiblio and high
+        performance (use of a local cache).</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1 or superior
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ivy.jayasoft.org/">http://ivy.jayasoft.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          contact at jayasoft dot org
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="J2ME Ant Tasks"></a>
+        J2ME Ant Tasks
+      </h4>
+                        <p>There are different sets of tasks to help build <a href="http://java.sun.com/j2me/">Java 2 Platform, Micro
+        Edition</a> (J2ME) applications.</p>
+                                      <h5 class="subsection">
+        <a name="Antenna"></a>
+        *** Antenna ***
+      </h5>
+                        <p>Antenna provides a set of Ant tasks suitable for developing
+          wireless Java applications targeted at the Mobile Information
+          Device Profile (MIDP). With Antenna, you can compile,
+          preverify, package, obfuscate, and run your MIDP applications
+          (aka MIDlets), manipulate Java Application Descriptor (JAD)
+          files, as well as convert JAR files to PRC files designed to
+          run on MIDP for Palm OS. Deployment is supported via a
+          deployment task and a corresponding HTTP servlet for
+          Over-the-Air (OTA) provisioning. A small preprocessor allows
+          to generate different variants of a MIDlet from a single
+          source.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antenna.sourceforge.net/">http://antenna.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:joerg@pleumann.de">Jörg Pleumann</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                    <h5 class="subsection">
+        <a name="Antic"></a>
+        *** Antic ***
+      </h5>
+                        <p>Antic is a freely available task for packaging J2ME
+          applications. It produces both the Jar and Jad files in a
+          single step. This allows *all* entries to be correclty set in
+          the jad file, including the size of the jar file that is
+          produced. This task has been used and tested extensively with
+          Sun's Wireless Toolkit and also the Nokia SDK and
+          emulators.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.smartkey.co.uk/tools/antic/antic.html">http://www.smartkey.co.uk/tools/antic/antic.html</a>
+              
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@smartkey.co.uk">smartkey.co.uk</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                    <h5 class="subsection">
+        <a name="Dave's J2ME Tasks"></a>
+        *** Dave's J2ME Tasks ***
+      </h5>
+                        <p>This set supports CLDC and the K Virtual Machine (KVM):</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.dribin.org/dave/j2me_ant/">http://www.dribin.org/dave/j2me_ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:drib@enteract.com">Dave Dribin</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                    <h5 class="subsection">
+        <a name="J2ME Polish"></a>
+        *** J2ME Polish ***
+      </h5>
+                        <p>J2ME Polish is an Ant-based tool for the creation of
+          MIDP applications. It covers the whole circle of preprocessing, compiling,
+          obfuscation, preverifying, packaging and JAD-creation. J2ME Polish is
+          ideal for creating device optimized applications with its powerful
+          preprocessing capabilities and the integrated device database.
+          With J2ME Polish no hardcoded values are needed and the portability of an
+          application is not sacrificed, even though highly optimized applications are
+          created from a single source.
+          <br />
+          It contains a logging framework and an optional MIDP-compatible GUI
+          which can be designed using the web-standard CSS. With the J2ME Polish GUI
+          you can even use MIDP/2.0 features on MIDP/1.0 phones.
+          </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.j2mepolish.org/">http://www.j2mepolish.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:j2mepolish@enough.de">Enough Software</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License; commercial licenses available
+      </td>
+      </tr>
+          </table>
+                                                    <h5 class="subsection">
+        <a name="Stampysoft's J2ME Tasks"></a>
+        *** Stampysoft's J2ME Tasks ***
+      </h5>
+                        <p>And this set works with the J2ME Wireless Toolkit and MIDP
+          for PalmOS:</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.stampysoft.com/ant/">http://www.stampysoft.com/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jeckels@stampysoft.com">Josh Eckels</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+          </table>
+                                                                        <h4 class="subsection">
+        <a name="Jacson"></a>
+        Jacson
+      </h4>
+                        <p>Jacson is a configurable and plugable tool (much like Ant
+        itself) to create filters for text (line based) files without
+        programming.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Jacson has been used and tested with 1.5.1, should
+            work with 1.4+
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jacson.sourceforge.net/">http://jacson.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jacson-user@lists.sourceforge.de">jacson-user@lists.sourceforge.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Library or Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Jalopy"></a>
+        Jalopy
+      </h4>
+                        <p>An Ant Plug-in for the Java Source Code Formatter
+        Jalopy.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 (or higher)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jalopy.sourceforge.net/">http://jalopy.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jalopy.sf.net/contact.html">http://jalopy.sf.net/contact.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Starting with release 1.0 Beta 6 the license is the
+            BSD License.  Prior releases were under the GNU General
+            Public License.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JarBundler"></a>
+        JarBundler
+      </h4>
+                        <p>JarBundler is a task that generates Mac OS X native Java
+        Application Bundles.  It is fully configurable and can be used
+        to generate Mac OS X application bundles from any supported
+        Java platform, making it ideal for targeting multiple
+        platforms with one build.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.loomcom.com/jarbundler/">http://www.loomcom.com/jarbundler/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:sethm@loomcom.com">Seth Morabito</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JarPatch"></a>
+        JarPatch
+      </h4>
+                        <p>JarPatch is a task that generates a zip file resulting of
+        the diff between the content of 2 jar files.</p>
+                                <p>The resulting diff file can be use as a patch for a
+        previous installation (just ensure that the generated
+        patch.zip file is located on the CLASSPATH before the patched
+        oldJar jar file)</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://perso.club-internet.fr/sjobic/ant/">http://perso.club-internet.fr/sjobic/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:norbert.barbosa@laposte.net">Norbert Barbosa</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Java+ Precompile Task"></a>
+        Java+ Precompile Task
+      </h4>
+                        <p>Java+ is an open source Java preprocessor that adds these
+        features to any Java compiler:</p>
+                                <ul>
+          <li>Multi-line strings with executable inclusions like Perl
+          and Ruby. It eliminates the need for JSP or ASP and their
+          need for Java compilers on deployment servers (a security
+          concern) while adding no overhead in either space or
+          time. </li>
+
+          <li>Optionally supports localization by segregating Java+
+          strings into ResourceBundle files with invarient keys based
+          on the hash code of the strings's value. This is handled
+          automatically and transparently; no intervention is
+          required.</li>
+
+          <li>Fast. Negligible impact on build times. By default,
+          skips inputs whose outputs are up to date to avoid
+          triggering recompilations.</li>
+
+          <li>Pure Java code, portable to any platform, with
+          graphical, shell and ant interfaces.</li>
+
+          <li>Simple, general, recursive, digraph-driven string
+          syntax. Digraph characters are user-selectable.</li>
+        </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://virtualschool.edu/java+/">http://virtualschool.edu/java+/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:bcox@virtualschool.edu">Brad Cox</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Java2Html"></a>
+        Java2Html
+      </h4>
+                        <p>There are two different tools both named Java2HTML that
+        process Java source code and generate syntax highlighted
+        documentation from it.  Both include Ant tasks to run
+        them.</p>
+                                <p>Java2Html library for converting java source files
+        or snipplets to syntax highlighted html, rtf, tex and
+        others.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.java2html.de/">http://www.java2html.de/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:java2html@jave.de">java2html@jave.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                <p>Java2HTML is a simple-to-use tool which converts a bunch of
+        Java Source Code into a colourized and browsable HTML
+        representation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1 onwards
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.java2html.com/java2html_ant_task.html">http://www.java2html.com/java2html_ant_task.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@java2html.com">support@java2html.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          FreeWare
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Javamake"></a>
+        Javamake
+      </h4>
+                        <p>A task to compile Java sources and manage class file
+        dependencies. Functionality is equivalent to that of standard
+        Javac and Depend tasks combined, with improved dependency
+        checking.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.experimentalstuff.com/Technologies/JavaMake/index.html">http://www.experimentalstuff.com/Technologies/JavaMake/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:Mikhail.Dmitriev@eng.sun.com">Mikhail Dmitriev</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="javarec"></a>
+        javarec
+      </h4>
+                        <p>Ant tasks that generate record classes for VisualAge for
+        Java from Cobol copy books.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://glezen.org/javarec/">http://glezen.org/javarec/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:pglezen@us.ibm.com">Paul Glezen</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JCSC"></a>
+        JCSC
+      </h4>
+                        <p>JCSC is a Java Coding Standard Checker which also features
+        the generation of some code metrics. It is a command line tool
+        with an Ant task to scan whole package trees. The result can
+        viewed in an JavaDoc style web page.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant &gt;= 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jcsc.sourceforge.net/">http://jcsc.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:rjocham72@netscape.net">Ralph Jocham</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Jdiff"></a>
+        Jdiff
+      </h4>
+                        <p>A task that generates an HTML report of all the packages, classes,
+        constructors, methods, and fields which have been removed, added or
+        changed in any way, including their documentation, when two APIs are
+        compared. </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <a href="http://javadiff.sourceforge.net/">
+            http://javadiff.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Task Documentation:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <a href="http://cvs.sourceforge.net/viewcvs.py/*checkout*/javadiff/jdiff/jdiff.html?rev=HEAD&amp;content-type=text/html#JDiffAntTask">
+            (in CVS)</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JFlex"></a>
+        JFlex
+      </h4>
+                        <p>JFlex is a lexical analyzer generator (also known as
+        scanner generator) for Java, written in Java.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jflex.de/">http://jflex.de/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.jflex.de/mailing.html">jflex-users mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JindentTask"></a>
+        JindentTask
+      </h4>
+                        <p>JindentTask is a very straightforward wrapping of the
+        Jindent tool, a vendor code beautifier. It enables to use
+        Jindent natively from Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://the.edouard.mercier.free.fr/Jindent_content.php">http://the.edouard.mercier.free.fr/Jindent_content.php</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Edouard Mercier
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Jing Task"></a>
+        Jing Task
+      </h4>
+                        <p> Validates XML files against the RELAX NG alternative to XML Schema.
+        The Jing task for Ant allows you to efficiently validate
+        multiple files against multiple RELAX NG patterns and integrate
+        RELAX NG validation with other XML processing.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.thaiopensource.com/relaxng/jing-ant.html">
+            http://www.thaiopensource.com/relaxng/jing-ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="jMetra"></a>
+        jMetra
+      </h4>
+                        <p>jMetra is a tool for collecting code metrics across a
+        project lifecycle and compiling the results into
+        JavaDoc-styled documentation to analyze project metrics over
+        time.  jMetra is best utilized by integrating it with your
+        project's scheduled build process.</p>
+                                <p>It works from the command line or using several provided
+        Ant tasks.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.jmetra.com/">http://www.jmetra.com/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:tnewton@hypercisioninc.com">R Todd Newton
+              </a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial, free licenses for open source projects and
+            evaluations.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JMX4Ant"></a>
+        JMX4Ant
+      </h4>
+                        <p>JMX4Ant provides tasks for integration with JMX (Java Management
+        Extensions). It provides tasks for getting and setting attributes
+        of MBeans, invoking their methods and much more.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://jmx4ant.sourceforge.net/">http://jmx4ant.sourceforge.net/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:bdueck@yahoo.com">Brian Dueck</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 1.1
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JNI"></a>
+        JNI
+      </h4>
+                        <p>
+
+          JNI is a free toolkit that makes easy work of
+          integrating Java and C through the Java Native
+          Interface (JNI). It includes a code generator that
+          generates both Java "proxy" classes to access C
+          "peer" classes, and C "proxy" classes to access
+          Java "peer" classes or interfaces. It also
+          includes a core library with a simplified JVM
+          interface as well as "helper" classes to ease
+          working with the JNI data types. The code
+          generation is driven by an XML project file that
+          can be created with the assistance of the GUI
+          Project Manager. The code generation can be
+          invoked either from Ant or from the
+          GUI. Includes a comprehensive printable PDF User
+          Guide and plenty of examples.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jnipp.sf.net/">http://jnipp.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:ptrewhella@users.sf.net">Phillip E. Trewhella</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JReleaseInfo"></a>
+        JReleaseInfo
+      </h4>
+                        <p>Sometimes you are interested at runtime to have information
+        from build time. This may be the build date, a build number or
+        the version.  The JReleaseInfo Ant Task generates a java
+        source file with getter methods for any desired and provided
+        properties.  Furthermore, it can automatically generate a
+        viewer (which can e.g.  be used as main-class in a library jar
+        file) that shows the included release information.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jreleaseinfo.sourceforge.net/">HomePage on SourceForge</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/jreleaseinfo/">Forums/Tracker on SourceForge</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JRun Ant Tasks"></a>
+        JRun Ant Tasks
+      </h4>
+                        <p>JRun 4 SP1 ships with lib/jrun-ant-tasks.jar, which defines
+        three Ant tasks: jrun, jrunapp, and jrunjmx.  Documentation
+        for the tasks can be found in JRun under
+        docs/ant/jrun.html.</p>
+                                <p>Note that the service pack must be installed on top of an
+        existing JRun 4 installation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dynamic.macromedia.com/bin/MM/software/trial/hwswrec.jsp?product=jrun_sp">http://dynamic.macromedia.com/bin/MM/software/trial/hwswrec.jsp?product=jrun_sp</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:bdeitte@macromedia.com">Brian Deitte</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JudoScript Ant Task"></a>
+        JudoScript Ant Task
+      </h4>
+                        <p>The &lt;judoscript&gt; task is an easy way to embed JudoScript
+           code in the Ant build script. The tag format is quite simple. You can
+           either embed code directly, or can specify an external JudoScript program
+           file as the <code>src</code> attribute value. Parameters can be specified
+           as the <code>params</code> attribute; this is applicable to both embedded
+           code and external files.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.judoscript.com/articles/ant.html">http://www.judoscript.com/articles/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:judoscript@hotmail.com">James Jianbo Huang</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Lesser GNU Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Just4log Ant Task"></a>
+        Just4log Ant Task
+      </h4>
+                        <p>Just4log is a ant task to optimize JVM bytecode with regards
+        for Logs ( be it, Log4j, Apache Commons or JDK 1.4 )
+        It depends on apache BCEL for Bytecode engineering.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.2 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://just4log.sourceforge.net">http://just4log.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:lbruand@wanadoo.fr">Lucas Bruand</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache License 1.1.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Kanaputs"></a>
+        Kanaputs
+      </h4>
+                        <p>Kanaputs is a parser for java based scripting. It is an
+        interpreter for Java. With Kanaputs you can use Java as an
+        interpreted language: no more compilation, each instruction is
+        executed when you write it.  It is a small programmation
+        language to make script files above Java.</p>
+                                <p>Kanaputs Ant Task provides a way to add any kind of
+        programmatic features in your Ant script. The code you insert
+        stays OS independent (because Kanaputs uses Java) and is
+        completely integrated with Ant as you can give Ant properties
+        to the Kanaputs code and get back the results in other
+        properties.</p>
+                                <p>Moreover, as you can invoke any kind of Java code with
+        Kanaputs, you can popup windows from your Ant file to ask the
+        user to do a choice.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.kanaputs.org/">http://www.kanaputs.org/</a> <br />
+              <a href="http://www.kanaputs.org/ant.html">http://www.kanaputs.org/ant.html</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:kfra@kanaputs.org">kfra@kanaputs.org</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="LaTeX Task"></a>
+        LaTeX Task
+      </h4>
+                        <p>Simple Task to use (PDF)LaTeX, BibTeX, Makeindex and GlossTeX to
+        create your documentation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.2 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.dokutransdata.de/">http://www.dokutransdata.de/</a><br />
+              <a href="http://www.dokutransdata.de/ant_latex/">http://www.dokutransdata.de/ant_latex/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:jaloma@dokutransdata.de">jaloma@dokutransdata.de</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Macker"></a>
+        Macker
+      </h4>
+                        <p>A build-time architectural testing tool, designed
+        to maintain clean layering / tiering / modularity.
+        Macker works against compiled class files, checking
+        dependencies between classes against a set of
+        pattern-based access rules you specify for your
+        project in an XML rules file.  Macker doesn't presume
+        anything about your architecture -- you write the
+        rules, and Macker keeps you honest about them.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and higher (1.4 untested but may work)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://innig.net/macker/">http://innig.net/macker/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://innig.net/macker/contact.html">Paul Cantrell</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU GPL 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="mtxslt"></a>
+        mtxslt
+      </h4>
+                        <p>The mtxslt (Multi-XSLT) extends the standard Ant "xslt/style" task
+        to make it easy to use multiple XSLT engines during the same build.
+        This is useful for regression testing of XSLT scripts against several
+        engines.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://mtxslt.sourceforge.net/">http://mtxslt.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:abcoates@theOffice.net">Anthony B. Coates</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="nsd2LaTeX Task"></a>
+        nsd2LaTeX Task
+      </h4>
+                        <p>Simple Task to use nsd2ltx to build your Nassi-Shneiderman diagrams.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.2 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.dokutransdata.de/">http://www.dokutransdata.de/</a><br />
+              <a href="http://www.dokutransdata.de/ant_nsd2ltx/">http://www.dokutransdata.de/ant_nsd2ltx/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:jaloma@dokutransdata.de">jaloma@dokutransdata.de</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Nurflugel AntScript Visualizer"></a>
+        Nurflugel AntScript Visualizer
+      </h4>
+                        <p>The Nurflugel AntScript Visualizer takes your build file,
+        finds any imported build files, and shows all relationships
+        between targets, taskdefs, macrodefs, Ant and Antcalls; output
+        options include PDF, SVG, and PNG.  Many options including
+        grouping by build file, inclusion/exclusion of targets,
+        taskdefs, imports, etc.  Installation is via Java WebStart, so
+        you'll always have the freshest version available.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.nurflugel.com/webstart/AntScriptVisualizer/">http://www.nurflugel.com/webstart/AntScriptVisualizer/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          dbullard &lt;at&gt; nurflugel &lt;dot&gt; com (email
+            will receive a challenge to weed out spam)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Orangevolt Ant Tasks"></a>
+        Orangevolt Ant Tasks
+      </h4>
+                        <p>Orangevolt ANT Tasks is a collection of Tasks for Apache
+        Ant.</p>
+                                <p>The Orangevolt Ant Tasks collections provides a bunch of
+        Appplication Deployment related Tasks from windows specific
+        tasks (registry access, executable generation), *nix specific
+        tasks (kde/gnome shortcut generation) to many useful utility
+        tasks like jnlp generation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/ovanttasks">http://sourceforge.net/projects/ovanttasks</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:info@roxes.com">info@roxes.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="pack"></a>
+        pack
+      </h4>
+                        <p>pack is a task to build the smallest possible JAR to link
+        and run one or more classes.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sadun-util.sourceforge.net/pack.html">http://sadun-util.sourceforge.net/pack.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cristiano@xtractor.com">Cristiano Sadun</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="PCT"></a>
+        PCT
+      </h4>
+                        <p>PCT is a task to compile Progress code, and in a more general
+        way, to deal with Progress procedures and databases.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://pct.sourceforge.net">http://pct.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:justus_phenix@users.sourceforge.net">Gilles QUERRET</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Licence:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="PesterCat Ant Toolkit"></a>
+        PesterCat Ant Toolkit
+      </h4>
+                        <p>PesterCat is a web testing tool that was designed to
+           perform functional testing for web applications. The PesterCat
+           Ant Toolkit contains tasks to playback test scripts and create
+           HTML reports.
+         </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.pestercat.com/">http://www.pestercat.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="PMD"></a>
+        PMD
+      </h4>
+                        <p>PMD checks Java source code for unused variables,
+        unnecessary object creation, etc</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://pmd.sf.net/">http://pmd.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:tcopeland@apache.org">Tom Copeland</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="PRes"></a>
+        PRes
+      </h4>
+                        <p>PRes is short for Property Resources and will generate a Java source
+           file from name=value pair .property files which can be compiled like any
+           other class.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later (may work with earlier)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://mseries.sourceforge.net">http://mseries.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://web.ukonline.co.uk/mseries/contact.html">MSeries</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="ProGuard"></a>
+        ProGuard
+      </h4>
+                        <p><a href="http://proguard.sourceforge.net/">ProGuard</a> is
+        a free Java class file shrinker and obfuscator.  It can detect
+        and remove unused classes, fields, methods, and attributes. It
+        can then rename the remaining classes, fields, and methods
+        using short meaningless names.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5. Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://proguard.sourceforge.net/">http://proguard.sourceforge.net/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://proguard.sourceforge.net/feedback.html">Feedback Page</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="properties2java"></a>
+        properties2java
+      </h4>
+                        <p>Properties2Java is an Ant task for automatic conversion of
+        java ".properties" files to ".java" files extending the
+        java.util.ListResourceBundle.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://properties2java.jayefem.de/">http://properties2java.jayefem.de/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:properties2java@jayefem.de">Jan-Friedrich Mutter</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Purge"></a>
+        Purge
+      </h4>
+                        <p>Purge deletes all but the most recent few files from a fileset.
+        For example: if you have generated files (logs, .ear, .war, .jar
+        etc) accumulating in a directory, the purge task will allow you
+        to delete the older files, keeping just the most recent ones.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.dallaway.com/ant/">http://www.dallaway.com/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:purge@dallaway.com">Richard Dallaway</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="RefactorIT"></a>
+        RefactorIT
+      </h4>
+                        <p>RefactorIT includes an Ant task for metrics and audits.
+        RefactorIT is a Java refactoring, audit and metrics tool.
+        It plugs into major Java IDEs, also runs stand-alone with
+        a GUI and a command line interface.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.refactorit.com/">http://www.refactorit.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@refactorit.com">support@refactorit.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial. (Free for accredited open source products, see
+            <a href="http://www.refactorit.com/osc">http://www.refactorit.com/osc</a>.)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Reflectant Task"></a>
+        Reflectant Task
+      </h4>
+                        <p>This is a task for reflection invocation from within ant build file.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/reflectant/">http://sourceforge.net/projects/reflectant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:sv_ant@mail.bg">sv_ant@mail.bg</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="rundoc"></a>
+        rundoc
+      </h4>
+                        <p>A task designed to help with the single-sourcing of program
+        documentation. Rundoc replaces special commands
+        (in the format <i>@@rundoc:command param1 param2...@@</i>) embedded
+        within text files with their output in a
+        specified format. Currently, only Docbook format is supported.</p>
+                                <p>Rundoc was written to keep sample code output in program
+        documentation synchronized with the actual output
+        of the current code, by running the referenced code when the
+        documentation is built.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.6  Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/lab/index.html#rundoc">http://www.martiansoftware.com/lab/index.html#rundoc</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/contact.html">Marty Lamb</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Revised BSD
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="SerialVer"></a>
+        SerialVer
+      </h4>
+                        <p>SerialVer adds the Java serialver functionality to Apache
+        Ant.  This project adds Tasks and FilterReaders to get, to
+        insert and to modify the serialVersionUID in the source code
+        of a serializable class.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://serialver.sourceforge.net/">http://serialver.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://lists.sourceforge.net/lists/listinfo/serialver-development">developer mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Simian"></a>
+        Simian
+      </h4>
+                        <p>Simian (Similarity Analyser) identifies duplication in Java,
+        C#, C, CPP, COBOL, JSP, HTML source code and even plain text files.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.redhillconsulting.com.au/products/simian/">
+            http://www.redhillconsulting.com.au/products/simian/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:simian-user-subscribe@redhillconsulting.com.au">
+            simian-user-subscribe@redhillconsulting.com.au (User Mailinglist)
+            </a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial, Free Licenses available for Non-Commercial Projects
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="SmartAnalyzer"></a>
+        SmartAnalyzer
+      </h4>
+                        <p>Powerful analysis of dependencies between Java classes.
+        Only affected classes will be recompiled and it can be used
+        with any bytecode compiler.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Ant version 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://smartanalyzer.sourceforge.net/">http://smartanalyzer.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/smartanalyzer">support at sourceforge project page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public Licence (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="snip"></a>
+        snip
+      </h4>
+                        <p>A task designed to help with the single-sourcing of program documentation.
+        Snip extracts snippets of text from files, placing them into properties in the Ant project.
+        These properties can then be used by any other Ant task, and are particularly useful when
+        referenced by &lt;filter&gt;s within the &lt;copy&gt; task.</p>
+                                <p>Snip was originally written to keep snippets of sample code in API documentation synchronized
+        with the actual sample classes.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5.1.  Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/lab/index.html#snip">http://www.martiansoftware.com/lab/index.html#snip</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/contact.html">Marty Lamb</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Revised BSD
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="SQL Compiler (SQLC)"></a>
+        SQL Compiler (SQLC)
+      </h4>
+                        <p>SQL Compiler (SQLC) compiles database metadata and SQL statements into data access and data transfer classes.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5.4 and 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/products/sqlc">http://www.hammurapi.biz/products/sqlc</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/contact.html">Project Contact Page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="SQLUnit"></a>
+        SQLUnit
+      </h4>
+                        <p>SQLUnit is a regression and unit testing harness for testing
+         database stored procedures. The test suite is written as an XML file.
+         The SQLUnit harness itself is written in Java and uses the JUnit unit
+         testing framework to convert the XML test specifications to JDBC calls
+         and compare the results generated from the calls with the specified
+         results. It also provides the &lt;sqlunit&gt; task to run the tests
+         from a build script.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sqlunit.sourceforge.net">http://sqlunit.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/forum/?group_id=77832">Project forums</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Styler"></a>
+        Styler
+      </h4>
+                        <p>The styler task makes useful combinations of XSLT transformations
+        easy to specify in an Ant build file. Like the built-in Ant task
+        style, styler can apply a single transformation to a set of XML files.
+        But it can also:</p>
+                                <ul>
+          <li>handle multiple transformations, in parallel or pipelined.</li>
+          <li>enable transformations that split or merge files</li>
+          <li>process non-XML files, especially HTML (based on JTidy)</li>
+          <li>apply non-XSLT transformation, especially "regular
+          fragmentations"</li>
+          <li>use any custom XMLReader or XMLFilter class to handle new file
+          formats and transformation techniques.</li>
+        </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.langdale.com.au/styler/">http://www.langdale.com.au/styler/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:adv@langdale.com.au">Arnold deVos</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Syntax"></a>
+        Syntax
+      </h4>
+                        <p>Transforms source files into HTML documents with syntax
+        highlighting. It can handle a variety of source files
+        including Java, HTML, C/C++, SQL, and Java properties.  Colors
+        for elements are specified using cascading style sheets.  The
+        output can be templated for easy integration with a site's
+        look and feel.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ostermiller.org/syntax/ant.html">http://ostermiller.org/syntax/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ostermiller.org/contact.pl?regarding=Syntax+Highlighting">Stephen Ostermiller</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="TestSetGenerator"></a>
+        TestSetGenerator
+      </h4>
+                        <p>The TestSetGenerator is an ant task for generating property files with
+        testsets based on the results of SQL queries and validation plug-ins. Very
+        usefull when building unit tests that make use of changing datasets. This
+        task is an extension of the Ant SQL task. Hsqldb is used for both the
+        examples and the unittests.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          ANT 1.4 (or later)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://anttestsetgen.sourceforge.net/">http://anttestsetgen.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:m.c.jansen@planet.nl">m.c.jansen@planet.nl</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Tidy Imports (Tim)"></a>
+        Tidy Imports (Tim)
+      </h4>
+                        <p>Tim is a handy utility that can be executed on the command
+        line or via Ant that automatically formats your import
+        declarations. Tim is capable of removing unused imports,
+        expanding or collapsing imports and even organising them into
+        pre-determined groups.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.chive.com/tim.htm">http://www.chive.com/tim.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@chive.com">support@chive.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="TiniAnt"></a>
+        TiniAnt
+      </h4>
+                        <p>TiniAnt is an Ant task to support building applications for
+        the <a href="http://www.ibutton.com/TINI/">TINI</a>.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 to 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://tiniant.sourceforge.net/">http://tiniant.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:kelly@ad1440.net">Sean Kelly</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Transformica"></a>
+        Transformica
+      </h4>
+                        <p>Transformica is a versatile and extensible code generator.
+           Supports multiple source models including database metadata, Java source files, grammar
+           files and custom models.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5.x and 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/products/transformica">http://www.hammurapi.biz/products/transformica</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/contact.html">Project Contact Page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Venus Application Publisher's (Vamp) Ant Task Suite"></a>
+        Venus Application Publisher's (Vamp) Ant Task Suite
+      </h4>
+                        <p>Venus Application Publisher's (Vamp) Ant Task Suite allows
+        you to sign and package your applications into relocatable Web
+        Archives that you can drop into your web server for
+        single-click launching using Java Web Start or into single
+        Java Archive installers that serve up their content through a
+        built-in, multi-threaded, ultra light-weight web server.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.geocities.com/vamp201/ant.html">http://www.geocities.com/vamp201/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:vamp201@yahoo.com">Gerald Bauer</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Version_Tool"></a>
+        Version_Tool
+      </h4>
+                        <p>A versioning tool for Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant.ryangrier.com/">http://ant.ryangrier.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:version_tool@ryangrier.com">version_tool@ryangrier.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="VPP"></a>
+        VPP
+      </h4>
+                        <p>VPP provides general file preprocessing support based on
+        the Velocity Template Engine.  The core functionality is
+        provided as a filter for use with tasks that supports filter
+        chains.  Also included are replacement tasks for &lt;copy&gt; and
+        &lt;javac&gt; that integrate support for preprocessing.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://vpp.sourceforge.net/">http://vpp.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:vpp-user@lists.sourceforge.net">vpp-user@lists.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="WOProject"></a>
+        WOProject
+      </h4>
+                        <p>WOProject provides a set of tools to work with
+        <a href="http://webobjects.com/">WebObjects 5.1</a>
+        independent from platform and IDE. It significantly
+        improves developer productivity
+        and makes complex project structures more flexible compared to
+        traditional Makefile-based approach.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://objectstyle.org/woproject/">http://objectstyle.org/woproject/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:andrus@objectstyle.org">Andrus Adamchik</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="WSDLValidate"></a>
+        WSDLValidate
+      </h4>
+                        <p>WSDLValidate is, as it sounds, a tool to validate WSDL files.
+        <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/wsvt-home/docs/articles/wsdl20Validator/wsdlvalidateant.html">WSDLValidate</a>
+        is similar in configuration to the optional Ant task <a href="http://ant.apache.org/manual/OptionalTasks/xmlvalidate.html">XMLValidate</a>.
+        WSDLValidate can optionally validate a WSDL document against the <a href="http://www.ws-i.org">WS-I Basic Profile</a>.
+        </p>
+                                <p>WSDLValidate is available as an Ant task, an Eclipse plug-in and a
+        command line utility.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/wsvt">http://www.eclipse.org/wsvt</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/wsvt">Project newsgroup and
+            mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www-124.ibm.com/developerworks/oss/CPLv1.0.htm">Common Public
+            License (CPL)</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Xcluder"></a>
+        Xcluder
+      </h4>
+                        <p>xcluder is an XML Inclusions (XInclude) task for Apache Ant.
+        Offers the choice of using Xerces or Elliotte Rusty Harold's XOM API.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or later. XInclude compliance depends on the
+            underlying Xerces or XOM used. Xerces 2.5.0 and above works fine,
+            but please note that 2.6.1 and 2.6.2 processed the
+            http://www.w3.org/2003/XInclude, now obsolete by
+            http://www.w3.org/2001/XInclude used by the latest
+            Candidate Recommendation (13 April 2004).
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/xcluder">http://sourceforge.net/projects/xcluder</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mbatsis@users.sf.net">mbatsis@users.sf.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL), GNU Library or Lesser
+            General Public License (LGPL)
+            
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XDoclet"></a>
+        XDoclet
+      </h4>
+                        <p>XDoclet is an extended Javadoc Doclet engine for use in Ant.
+           It lets you create custom Javadoc @tags and based on those tags
+           generates source code or other files (such as xml-ish deployment
+           descriptors). Templates and matching tasks are provided to generate
+           EJB and web application deployment descriptors.
+           </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/xdoclet/">http://sourceforge.net/projects/xdoclet/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XInclude"></a>
+        XInclude
+      </h4>
+                        <p><a href="http://www.jeckle.de/freeStuff/xia/index.html">XInclude</a> is
+          a W3C standardized vocabulary for including arbitrary text or XML
+          documents in other XML documents. This task performes the inclusion
+          using an existing XInclude implementation</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.2
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.jeckle.de/freeStuff/xia/index.html">http://www.jeckle.de/freeStuff/xia/index.html</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mario@jeckle.de">mario@jeckle.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Lesser GNU Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XMLReleaseNotes (XRN)"></a>
+        XMLReleaseNotes (XRN)
+      </h4>
+                        <p>This framework is a release notes framework that enables to
+        generate textual release notes from an XML file. This is an
+        open framework that enables to integrate the information
+        coming from VSC and bug tracking solutions, for instance.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://xmlreleasenotes.free.fr/">http://xmlreleasenotes.free.fr/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Edouard Mercier
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XmlTask"></a>
+        XmlTask
+      </h4>
+                        <p>XmlTask provides a simple means to modify XML documents
+        without having to learn XSLT. A simple path reference to an
+        XML node specifies the node you want to change, and how you
+        want to allow XML insertion and removal, or attribute
+        changes. The emphasis is on providing the simplest means to
+        perform common XML replacements</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.oopsconsultancy.com/software/xmltask/">http://www.oopsconsultancy.com/software/xmltask/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:xmltask-users@lists.sourceforge.net">xmltask-users at lists.sourceforge.net</a> 
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="yGuard"></a>
+        yGuard
+      </h4>
+                        <p>yGuard is a free Java(TM) Bytecode Obfuscator Task that
+        needs no external script or project files. It can completely
+        be configured and run through the Ant build script. The task
+        supports multiple Jar files at once and makes use of
+        patternsets and regular expressions to specify elements, which
+        should be left unobfuscated.  Additionally it can be used to
+        produce patches for obfuscated applications that have already
+        been deployed.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.yworks.com/en/products_yguard_about.htm">http://www.yworks.com/en/products_yguard_about.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:yguard@yworks.com">yGuard@yWorks.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Library: LGPL, Task: Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Zelix KlassMaster"></a>
+        Zelix KlassMaster
+      </h4>
+                        <p>The task ZKMTask allows the Zelix KlassMaster Java obfuscator to be integrated into an Ant build.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.zelix.com/klassmaster/docs/buildToolApi.html">http://www.zelix.com/klassmaster/docs/buildToolApi.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="Compiler Implementations"></a>
+      Compiler Implementations
+    </h3>
+                              <h4 class="subsection">
+        <a name="Generics (JSR14) Early-Access Compiler Adapter"></a>
+        Generics (JSR14) Early-Access Compiler Adapter
+      </h4>
+                        <p>This is an Ant compiler-adapter that allows you to use the
+        normal <code>&lt;javac&gt;</code> task plus Sun's early-access
+        compiler to compile Generics-enabled Java code.  (This is only
+        necessary until JDK1.5 is released.)</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.madbean.com/blog/3/">http://www.madbean.com/blog/3/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Matt Quail &lt;spud[at]madbean[dot]com&gt;
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Public Domain
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="miniRMI &lt;code&gt;&amp;lt;rmic&amp;gt;&lt;/code&gt; implementation"></a>
+        miniRMI <code>&lt;rmic&gt;</code> implementation
+      </h4>
+                        <p>miniRMI is a freeware opensource library that serves as a
+        lightweight replacement for the original java.rmi packages and
+        is suitable especially for applets. Ant 1.4+
+        <code>&lt;rmic&gt;</code> adapter included.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dione.zcu.cz/~toman40/miniRMI/">http://dione.zcu.cz/~toman40/miniRMI/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:Petr.Toman@pinknet.cz">Petr Toman</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Gnu Lesser Public License
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="IDE and Editor Integration"></a>
+      IDE and Editor Integration
+    </h3>
+                              <h4 class="subsection">
+        <a name="AntFarm"></a>
+        AntFarm
+      </h4>
+                        <p>A plugin that integrates Ant into the jEdit editor.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://plugins.jedit.org/plugins/?AntFarm">http://plugins.jedit.org/plugins/?AntFarm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jedit-devel@lists.sourceforge.net">jEdit developers mailinglist</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntMan"></a>
+        AntMan
+      </h4>
+                        <p>An AddIn that integrates Ant with the JDeveloper IDE</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.erudra.com/antman/index.html">http://www.erudra.com/antman/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:ashok@erudra.com">Ashok Sridhar</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntRunner"></a>
+        AntRunner
+      </h4>
+                        <p>An OpenTool that integrates Ant into the JBuilder IDE
+        (version 5 and later).</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antrunner.sourceforge.net/">http://antrunner.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:dirk.schnelle@web.de">Dirk Schnelle</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntWork"></a>
+        AntWork
+      </h4>
+                        <p>A plugin that integrates Ant into the Jext editor.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:KHartlage@t-online.de">Klaus Hartlage</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Eclipse"></a>
+        Eclipse
+      </h4>
+                        <p>Eclipse is a universal tool platform with Ant integration.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              Ant 1.3 - 1.4.1
+              Bundles Ant 1.6.2 as of Eclipse 3.0.1 (tested with Ant 1.5.4 - 1.6.2)
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.eclipse.org/">http://www.eclipse.org/</a>
+              or
+              <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-ant-home/index.html">
+                http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-ant-home/index.html
+              </a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="news://news.eclipse.org/eclipse.platform">news://news.eclipse.org/eclipse.platform</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Common Public License Version 1.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Gel"></a>
+        Gel
+      </h4>
+                        <p>Java IDE with support for Ant.  Gel is a native Microsoft
+        Windows software.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.gexperts.com/gel.html">http://www.gexperts.com/gel.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://groups.yahoo.com/group/gelide/">Project Mailing List</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="IntelliJ IDEA 5.0"></a>
+        IntelliJ IDEA 5.0
+      </h4>
+                        <p>Java IDE with refactoring support and Ant integration.
+      The IDE has special editing and navigation support for Ant.
+      </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.intellij.com/idea/">http://www.intellij.com/idea/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@intellij.com">support@intellij.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial; Academic and OpenSource licenses available.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JBuilder"></a>
+        JBuilder
+      </h4>
+                        <p>Borland JBuilder
+        comes with built-in Ant support, including build file editing.
+        Some versions come with Ant debugging support.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Bundles Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.borland.com/jbuilder/index.html">http://www.borland.com/jbuilder/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:customer_service@borland.com">customer_service@borland.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial; foundation edition is free.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JDEE"></a>
+        JDEE
+      </h4>
+                        <p>The Java Development Environment for Emacs (JDEE) supports
+        Apache Ant as one of three built-in ways to build your
+        applications.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jdee.sunsite.dk/">http://jdee.sunsite.dk/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jde-subscribe@sunsite.auc.dk">JDEE Mailing list.</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="NetBeans"></a>
+        NetBeans
+      </h4>
+                        <p>A module that integrates Ant into the NetBeans IDE, as well as derivative products such as Sun Java
+        Studio (formerly Forte for Java and Sun ONE Studio) and Sun Java Studio Creator.
+        This IDE uses Ant as its <i>sole</i> means of building applications,
+        with custom tasks and an Ant-aware editor.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles 1.6.5 for NetBeans 5.0 and 5.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant.netbeans.org/">http://ant.netbeans.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:nbdev@netbeans.org">nbdev@netbeans.org</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Common Development and Distribution License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Optistic IDX Java IDE"></a>
+        Optistic IDX Java IDE
+      </h4>
+                        <p>Java IDE with deep Ant integration. IDX is a native Microsoft Windows program.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.optistic.com/idx">http://optistic.com/idx</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:support@optistic.com">support@optistic.com</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial; Academic and OpenSource licenses available.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Oracle9i JDeveloper"></a>
+        Oracle9i JDeveloper
+      </h4>
+                        <p>Java IDE with support for Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://otn.oracle.com/products/jdev/">http://otn.oracle.com/products/jdev/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jdeveloperbeta_us@oracle.com">jdeveloperbeta_us@oracle.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Virtual Ant"></a>
+        Virtual Ant
+      </h4>
+                        <p>
+          Instead of manually creating build scripts in XML, Virtual Ant provides a fully virtual file system
+          where you can run your tasks in real time and see the results. Everything that you do is recorded and
+          turned into an Ant build script.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              Ant 1.6.5 onwards
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.placidsystems.com/virtualant/">http://www.placidsystems.com/virtualant/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:support@placidsystems.com">support@placidsystems.com</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial; OpenSource licenses available too.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="WebSphere Studio Application Developer"></a>
+        WebSphere Studio Application Developer
+      </h4>
+                        <p>WSAD features Ant integrate by virtue of being built on the Eclipse tools platform.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Article:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www7b.software.ibm.com/wsdd/library/techarticles/0203_searle/searle1.html">Ant Integration Part1</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="Source Control Systems"></a>
+      Source Control Systems
+    </h3>
+                        <p>There are several integration with SCM systems. Some are
+      <a href="manual/tasksoverview.html#scm">built in</a>. But some are available as
+      external libraries. Here a list of task libraries we are aware of:</p>
+                                      <h4 class="subsection">
+        <a name="Surround SCM"></a>
+        Surround SCM
+      </h4>
+                        <p>These are tasks that allow users to access Surround SCM
+         functionality from within Ant build scripts.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.seapine.com/scmresources.php#integration">
+            Surround SCM Resource Center</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@seapine.com">Seapine Support</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/faq.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/faq.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/faq.html	(revision 14989)
@@ -0,0 +1,2017 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Frequently Asked Questions</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                              <span class="sel">Frequently Asked Questions</span>
+                              </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Frequently Asked Questions</h1>
+    
+        <h3 class="section">Questions</h3>
+                <h4 class="toc">About this FAQ</h4>
+        <ul>
+                <li><a href="#latest-version">
+  Where do I find the latest version of this
+        document?
+      </a></li>
+                <li><a href="#adding-faqs">
+  How can I contribute to this FAQ?
+      </a></li>
+                <li><a href="#creating-faq">
+  How do you create the HTML version of this
+        FAQ?
+      </a></li>
+            </ul>
+                <h4 class="toc">General</h4>
+        <ul>
+                <li><a href="#what-is-ant">
+  What is Apache Ant?
+      </a></li>
+                <li><a href="#ant-name">
+  Why do you call it Ant?
+      </a></li>
+                <li><a href="#history">
+  Tell us a little bit about Ant's history.
+      </a></li>
+            </ul>
+                <h4 class="toc">Installation</h4>
+        <ul>
+                <li><a href="#no-gnu-tar">
+  I get checksum errors when I try to extract the
+      <code>tar.gz</code> distribution file. Why?
+      </a></li>
+                <li><a href="#RedHat_ES_3">
+  How do you get ant-1.6.x (or any version later than
+      1.5.2) to work on on RedHat ES 3?
+      </a></li>
+            </ul>
+                <h4 class="toc">How do I ...</h4>
+        <ul>
+                <li><a href="#implement-os-specific-configuration">
+  How do I realize os--specific configurations?
+      </a></li>
+                <li><a href="#adding-external-tasks">
+  How do I add an external task that I've written to the
+      page "External Tools and Tasks"?
+      </a></li>
+                <li><a href="#create-extensions">
+  How do I create new tasks?
+      </a></li>
+                <li><a href="#passing-cli-args">
+  How do I pass parameters from the command line to my
+        build file?
+      </a></li>
+                <li><a href="#jikes-switches">
+  How can I use Jikes-specific command-line
+        switches?
+      </a></li>
+                <li><a href="#shell-redirect-1">
+  How do I include a &lt; character in my command-line arguments?
+      </a></li>
+                <li><a href="#shell-redirect-2">
+  How do I redirect standard input or standard output
+        in the <code>&lt;exec&gt;</code> task?
+      </a></li>
+                <li><a href="#batch-shell-execute">
+  How do I execute a batch file or shell script from Ant?
+      </a></li>
+                <li><a href="#multi-conditions">
+  I want to execute a particular target only if
+        multiple conditions are true.
+      </a></li>
+                <li><a href="#encoding">
+  How can I include national characters like German
+        umlauts in my build file?
+      </a></li>
+                <li><a href="#use-zip-instead-of-jar">
+  How do I use <code>jar</code>'s <code>M</code> switch?
+      I don't want a MANIFEST.
+      </a></li>
+                <li><a href="#propertyvalue-as-name-for-property">
+  How can I do something like <code>&lt;property name="prop"
+      value="${${anotherprop}}"/&gt;</code> (double expanding the property)?
+      </a></li>
+            </ul>
+                <h4 class="toc">It doesn't work (as expected)</h4>
+        <ul>
+                <li><a href="#genral-advice">
+  General Advice
+      </a></li>
+                <li><a href="#always-recompiles">
+  Why does Ant always recompile all my Java files?
+      </a></li>
+                <li><a href="#defaultexcludes">
+  I've used a <code>&lt;delete&gt;</code> task to
+      delete unwanted SourceSafe control files (CVS files, editor
+      backup files, etc.), but it doesn't seem to work; the files
+      never get deleted. What's wrong?
+      </a></li>
+                <li><a href="#stop-dependency">
+  I have a target I want to skip if a property is set,
+      so I have <code>unless="property"</code> as an attribute
+      of the target, but all the targets this target
+      depends on are still executed. Why?
+      </a></li>
+                <li><a href="#include-order">
+  In my <code>&lt;fileset&gt;</code>, I've put in an
+      <code>&lt;exclude&gt;</code> of all files followed by an
+      <code>&lt;include&gt;</code> of just the files I want, but it
+      isn't giving me any files at all. What's wrong?
+      
+      </a></li>
+                <li><a href="#properties-not-trimmed">
+  <code>ant</code> failed to build my program via javac
+      even when I put the needed jars in an external
+      <code>build.properties</code> file and reference them by
+      <code>pathelement</code> or <code>classpath refid</code>.
+      </a></li>
+                <li><a href="#winzip-lies">
+  Ant creates WAR files with a lower-case
+        <code>web-inf</code> or JAR files with a lower-case
+        <code>meta-inf</code> directory.
+      </a></li>
+                <li><a href="#NoClassDefFoundError">
+  I installed Ant 1.6.x and now get
+        <code>Exception in thread "main" java.lang.NoClassDefFoundError:
+        </code>
+      
+      </a></li>
+                <li><a href="#InstantiationException">
+  I installed Ant 1.6.x and now get
+        <code>java.lang.InstantiationException: org.apache.tools.ant.Main</code>
+      
+      </a></li>
+                <li><a href="#mangled-manifest">
+  
+        Whenever I use the Ant jar or manifest related tasks, long lines in
+        my manifest are wrapped at 70 characters and the resulting jar does
+        not work in my application server. Why does Ant do this?
+      
+      </a></li>
+            </ul>
+                <h4 class="toc">Ant and IDEs/Editors</h4>
+        <ul>
+                <li><a href="#integration">
+  Is Ant supported by my IDE/Editor?
+      </a></li>
+                <li><a href="#emacs-mode">
+  Why doesn't (X)Emacs/vi/MacOS X's project builder
+      correctly parse the error messages generated by Ant?
+      </a></li>
+            </ul>
+                <h4 class="toc">Advanced Issues</h4>
+        <ul>
+                <li><a href="#dtd">
+  Is there a DTD that I can use to validate my build
+      files?
+      </a></li>
+                <li><a href="#xml-entity-include">
+  How do I include an XML snippet in my build file?
+      </a></li>
+                <li><a href="#mail-logger">
+  How do I send an email with the result of my build
+        process?
+      </a></li>
+                <li><a href="#listener-properties">
+  How do I get at the properties that Ant was running
+      with from inside BuildListener?
+      </a></li>
+            </ul>
+                <h4 class="toc">Known Problems</h4>
+        <ul>
+                <li><a href="#remove-cr">
+  &lt;chmod&gt; or &lt;exec&gt; doesn't work in Ant
+        1.3 on Unix
+      </a></li>
+                <li><a href="#javadoc-cannot-execute">
+  JavaDoc failed: java.io.IOException: javadoc: cannot execute
+      </a></li>
+                <li><a href="#delegating-classloader">
+  &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt;
+      </a></li>
+                <li><a href="#delegating-classloader-1.5">
+  &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt; - Ant 1.5.x version
+      </a></li>
+                <li><a href="#delegating-classloader-1.6">
+  &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt; - Ant 1.6.x version
+      </a></li>
+                <li><a href="#winxp-jdk14-ant14">
+  When running Ant 1.4 on Windows XP and JDK 1.4, I get
+      various errors when trying to <code>&lt;exec&gt;</code>, fork
+      <code>&lt;java&gt;</code> or access environment
+      variables.
+      </a></li>
+                <li><a href="#1.5-cygwin-sh">
+  The <code>ant</code> wrapper script of Ant 1.5 fails
+      for Cygwin if <code>ANT_HOME</code> is set to a Windows style
+      path.
+      </a></li>
+                <li><a href="#1.5.2-zip-broken">
+  <code>&lt;zip&gt;</code> is broken in Ant 1.5.2.
+      </a></li>
+                <li><a href="#unknownelement.taskcontainer">
+  
+        Why do my custom task containers see Unknown Elements in Ant 1.6
+        - they worked in Ant 1.5?
+      
+      </a></li>
+                <li><a href="#java.exception.stacktrace">
+  
+        The program I run via &lt;java&gt; throws an exception but I
+        can't seem to get the full stack trace.
+      
+      </a></li>
+                <li><a href="#junit-no-runtime-xml">
+  
+        Using format="xml", &lt;junit&gt; fails with a
+        <code>NoClassDefFoundError</code> if forked.
+      
+      </a></li>
+                <li><a href="#xalan-jdk1.5">
+  
+        <code>&lt;junitreport&gt;</code> doesn't work with JDK 1.5 but
+        worked fine with JDK 1.4.
+      
+      </a></li>
+            </ul>
+    
+      <h3 class="section">Answers</h3>
+                    <p class="faq">
+      <a name="latest-version"></a>
+      Where do I find the latest version of this
+        document?
+    </p>
+                  <p>The latest version can always be found at Ant's homepage
+          <a href="http://ant.apache.org/faq.html">http://ant.apache.org/faq.html</a>.</p>
+                    <p class="faq">
+      <a name="adding-faqs"></a>
+      How can I contribute to this FAQ?
+    </p>
+                  <p>The page you are looking it is generated from
+          <a href="http://svn.apache.org/repos/asf/ant/core/trunk/xdocs/faq.xml">this</a>
+          document.  If you want to add a new question, please submit
+          a patch against this document to one of Ant's mailing lists;
+          hopefully, the structure is self-explanatory.</p>
+                        <p>If you don't know how to create a patch, see the patches
+          section of <a href="http://jakarta.apache.org/site/source.html">this
+          page</a>.</p>
+                    <p class="faq">
+      <a name="creating-faq"></a>
+      How do you create the HTML version of this
+        FAQ?
+    </p>
+                  <p>We use
+        <a href="http://jakarta.apache.org/velocity/anakia.html">Anakia</a>
+        to render the HTML version from the original XML file.</p>
+                        <p>The Velocity stylesheets used to process the XML files can
+        be found in the <code>xdocs/stylesheets</code> subdirectory of
+        Ant's SVN repository - the build file
+        <code>docs.xml</code> at the top level of the ant SVN
+        module (trunk) is used to drive Anakia.</p>
+                        <p>This file assumes that you have the
+        <code>jakarta-site2</code> CVS module checked out as well, but
+        if you follow the instruction from Anakia's homepage, you
+        should get it to work without that.  Just make sure all
+        required jars are in the task's classpath.</p>
+                                <p class="faq">
+      <a name="what-is-ant"></a>
+      What is Apache Ant?
+    </p>
+                  <p> Ant is a Java-based build tool. In theory, it is kind of
+        like Make, without Make's wrinkles and with the full
+        portability of pure Java code.</p>
+                    <p class="faq">
+      <a name="ant-name"></a>
+      Why do you call it Ant?
+    </p>
+                  <p>According to Ant's original author, James Duncan
+        Davidson, the name is an acronym for "Another Neat
+        Tool".</p>
+                        <p>Later explanations go along the lines of "ants
+        do an extremely good job at building things", or
+        "ants are very small and can carry a weight dozens of times
+        their own" - describing what Ant is intended to
+        be.</p>
+                    <p class="faq">
+      <a name="history"></a>
+      Tell us a little bit about Ant's history.
+    </p>
+                  <p>Initially, Ant was part of the Tomcat code base, when it was
+        donated to the Apache Software Foundation. It was
+        created by James Duncan Davidson, who is also the original
+        author of Tomcat. Ant was there to build Tomcat, nothing
+        else.</p>
+                        <p>Soon thereafter, several open source Java projects realized
+        that Ant could solve the problems they had with Makefiles.
+        Starting with the projects hosted at Jakarta and the old Java
+        Apache project, Ant spread like a virus and is now the build
+        tool of choice for a lot of projects.</p>
+                        <p>In January 2000, Ant was moved to a separate CVS module and
+        was promoted to a project of its own, independent of
+        Tomcat, and became Apache Ant.</p>
+                        <p>The first version of Ant that was exposed to a larger audience
+        was the one that shipped with Tomcat's 3.1 release on 19 April
+        2000.  This version has later been referred to as Ant
+        0.3.1.</p>
+                        <p>The first official release of Ant as a stand-alone product was
+        Ant 1.1, released on 19 July 2000.  The complete release
+        history:</p>
+                              <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant Version
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Release Date
+      </th>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          19 July 2000
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.2
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          24 October 2000
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.3
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 March 2001
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 September 2001
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          11 October 2001
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          10 July 2002
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 October 2002
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.2
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 March 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.3
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          9 April 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.4
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          12 August 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.0
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          18 December 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          12 February 2004
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.2
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          16 July 2004
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.3
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          28 April 2005
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.4
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          19 May 2005
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.5
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          2 June 2005
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.7.0
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          19 December 2006
+      </td>
+      </tr>
+          </table>
+                                <p class="faq">
+      <a name="no-gnu-tar"></a>
+      I get checksum errors when I try to extract the
+      <code>tar.gz</code> distribution file. Why?
+    </p>
+                  <p>Ant's distribution contains file names that are longer
+        than 100 characters, which is not supported by the standard
+        tar file format. Several different implementations of tar use
+        different and incompatible ways to work around this
+        restriction.</p>
+                        <p>Ant's &lt;tar&gt; task can create tar archives that use
+        the GNU tar extension, and this has been used when putting
+        together the distribution. If you are using a different
+        version of tar (for example, the one shipping with Solaris),
+        you cannot use it to extract the archive.</p>
+                        <p>The solution is to either install GNU tar, which can be
+        found <a href="http://www.gnu.org/software/tar/tar.html">here</a>,
+        or use the zip archive instead (you can extract it using
+        <code>jar xf</code>).</p>
+                    <p class="faq">
+      <a name="RedHat_ES_3"></a>
+      How do you get ant-1.6.x (or any version later than
+      1.5.2) to work on on RedHat ES 3?
+    </p>
+                  <p>Redhat ES 3.0 comes installed with ant 1.5.2. Even if you
+        have your PATH and ANT_HOME variables set correctly to a later
+        version of ant, you will always be forced to use the
+        preinstalled version.</p>
+                        <p>To use a later version of ant on this OS you could do the
+        following:</p>
+                        <pre class="code">
+$ ant -version
+Apache Ant version 1.5.2-23 compiled on November 12 2003
+$ su -
+# rpm -e ant ant-libs
+# exit
+$ hash -r
+$ ant -version
+Apache Ant version 1.6.2 compiled on July 16 2004
+</pre>
+                                <p class="faq">
+      <a name="implement-os-specific-configuration"></a>
+      How do I realize os--specific configurations?
+    </p>
+                  <p>The core idea is using property files which name accords to the
+        os-name. Then simply use the build-in property <tt>os.name</tt>.</p>
+                        <p>For better use you should also provide a file with defaul values.
+        But be careful with the correct os-names. For test simply &lt;echo&gt;
+        the ${os.name} on all machines and you can be sure to use the right
+        file names.</p>
+                        <pre class="code">
+          &lt;property file=&quot;${os.name}.properties&quot;/&gt;
+          &lt;property file=&quot;default.properties&quot;/&gt;
+</pre>
+                    <p class="faq">
+      <a name="adding-external-tasks"></a>
+      How do I add an external task that I've written to the
+      page "External Tools and Tasks"?
+    </p>
+                  <p>Join and post a message to the dev or user mailing
+        list (one list is enough), including the following
+        information:</p>
+                        <ul>
+          <li>the name of the task/tool</li>
+          <li>a short description of the task/tool</li>
+          <li>a Compatibility: entry stating with which version(s) of
+          Ant the tool/task is compatible to</li>
+          <li>a URL: entry linking to the main page of the tool/task</li>
+          <li>a Contact: entry containing the email address or the URL
+          of a webpage for the person or list to contact for issues
+          related to the tool/task.  <strong>Note that we'll add a
+          link on the page, so any email address added there is not
+          obfuscated and can (and probably will) be abused by robots
+          harvesting websites for addresses to spam.</strong></li>
+          <li>a License: entry containing the type of license for the
+          tool/task</li>
+        </ul>
+                        <p>The preferred format for this information is a patch to <a href="http://svn.apache.org/repos/asf/ant/core/trunk/xdocs/external.xml">this</a>
+        document.</p>
+                        <p>If you have written something bigger than a 'simple plugin' to Ant it
+        may be better to add the link to <a href="projects.html">projects.html</a>.
+        The procedure to add it is the same. The file to patch is <a href="http://svn.apache.org/repos/asf/ant/core/trunk/xdocs/projects.xml">this</a>
+        document. The syntax of that file is the same.</p>
+                    <p class="faq">
+      <a name="create-extensions"></a>
+      How do I create new tasks?
+    </p>
+                  <p>Apart from a lot of information on using Ant, the
+        <a href="manual/index.html">Manual</a> also contains information
+        on how to extend Ant with new tasks. This information
+        can be found under "Developing with Ant".</p>
+                        <p>Chances are that someone else already created the task you
+        want to create, it may be wise to see
+        <a href="external.html">External Tools and Tasks</a> and
+        <a href="projects.html">Related Projects</a> first.</p>
+                    <p class="faq">
+      <a name="passing-cli-args"></a>
+      How do I pass parameters from the command line to my
+        build file?
+    </p>
+                  <p>Use properties. Using <code>ant
+        -D<em>name</em>=<em>value</em></code> lets you define values for
+        properties on the Ant command line. These properties can then be
+        used within your build file as
+        any normal property: <code>${<em>name</em>}</code> will put in
+        <code><em>value</em></code>.</p>
+                    <p class="faq">
+      <a name="jikes-switches"></a>
+      How can I use Jikes-specific command-line
+        switches?
+    </p>
+                  <p>A couple of switches are supported via "magic"
+          properties:</p>
+                              <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          switch
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          property
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          default
+      </th>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          +E
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.emacs
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          false == not set
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          +P
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.pedantic
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          false == not set
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          +F
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.fulldepend
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          false == not set
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>(Only for Ant &lt; 1.4; replaced by the
+                <code><strong>nowarn</strong></code>
+                attribute of the <code><strong>&lt;javac&gt;</strong></code>
+                task after that.)</strong><br />-nowarn
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.warnings
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          true == not set
+      </td>
+      </tr>
+          </table>
+                        <p>With Ant &gt;= 1.5, you can also use nested
+          <code>&lt;compilerarg&gt;</code> elements with the
+          <code>&lt;javac&gt;</code> task.</p>
+                    <p class="faq">
+      <a name="shell-redirect-1"></a>
+      How do I include a &lt; character in my command-line arguments?
+    </p>
+                  <p>The short answer is "Use: <code>&amp;lt;</code>".</p>
+                        <p>The long answer is that this probably won't do what you
+        want anyway (see <a href="#shell-redirect-2">the next
+        section</a>).</p>
+                    <p class="faq">
+      <a name="shell-redirect-2"></a>
+      How do I redirect standard input or standard output
+        in the <code>&lt;exec&gt;</code> task?
+    </p>
+                  <p>Say you want to redirect the standard output stream of the
+        <code>m4</code> command to write to a file, something
+        like:</p>
+                        <pre class="code">
+shell-prompt&gt; m4 foo.m4 &gt; foo
+</pre>
+                        <p>and try to translate it into</p>
+                        <pre class="code">
+&lt;exec executable=&quot;m4&quot;&gt;
+  &lt;arg value=&quot;foo.m4&quot;/&gt;
+  &lt;arg value=&quot;&amp;gt;&quot;/&gt;
+  &lt;arg value=&quot;foo&quot;/&gt;
+&lt;/exec&gt;
+</pre>
+                        <p>This will not do what you expect.  The output redirection is
+        performed by your shell, not the command itself, so this
+        should read:</p>
+                        <pre class="code">
+&lt;exec executable=&quot;/bin/sh&quot;&gt;
+  &lt;arg value=&quot;-c&quot; /&gt;
+  &lt;arg value=&quot;m4 foo.m4 &amp;gt; foo&quot; /&gt;
+&lt;/exec&gt;
+</pre>
+                        <p>Note that you must use the <code>value</code> attribute of
+        <code>&lt;arg&gt;</code> in the last element, in order to have
+        the command passed as a single, quoted argument. Alternatively,
+        you can use:</p>
+                        <pre class="code">
+&lt;exec executable=&quot;/bin/sh&quot;&gt;
+  &lt;arg line='-c &quot;m4 foo.m4 &amp;gt; foo&quot;'/&gt;
+&lt;/exec&gt;
+</pre>
+                        <p>Note the double-quotes nested inside the single-quotes.</p>
+                    <p class="faq">
+      <a name="batch-shell-execute"></a>
+      How do I execute a batch file or shell script from Ant?
+    </p>
+                  <p>On native Unix systems, you should be able to run shell scripts
+           directly. On systems running a Unix-type shell (for example, Cygwin
+           on Windows) execute the (command) shell instead - <code>cmd</code>
+           for batch files, <code>sh</code> for shell scripts - then pass the
+           batch file or shell script (plus any arguments to the script)
+           as a single command, using the <code>/c</code> or
+           <code>-c</code> switch, respectively. See
+           <a href="#shell-redirect-2">the above section</a>
+           for example <code>&lt;exec&gt;</code> tasks
+           executing <code>sh</code>. For batch files, use something like:</p>
+                        <pre class="code">
+&lt;exec dir=&quot;.&quot; executable=&quot;cmd&quot; os=&quot;Windows NT&quot;&gt;
+  &lt;arg line=&quot;/c test.bat&quot;/&gt;
+&lt;/exec&gt;
+</pre>
+                    <p class="faq">
+      <a name="multi-conditions"></a>
+      I want to execute a particular target only if
+        multiple conditions are true.
+    </p>
+                  <p>There are actually several answers to this question.</p>
+                        <p>If you have only one set and one unset property to test,
+        you can specify both an <code>if</code> and an <code>unless</code>
+        attribute for the target, and they will act as if they
+        are "anded" together.</p>
+                        <p>If you are using a version of Ant 1.3 or earlier, the
+        way to work with all other cases is to chain targets together
+        to determine the specific state you want to test for.</p>
+                        <p>To see how this works, assume you have three properties:
+        <code>prop1</code>, <code>prop2</code>, and <code>prop3</code>.
+        You want to test that <code>prop1</code> and <code>prop2</code>
+        are set, and that <code>prop3</code> is not. If the condition
+        holds true you want to echo "yes".</p>
+                        <p>Here is the implementation in Ant 1.3 and earlier:</p>
+                        <pre class="code">
+&lt;target name=&quot;cond&quot; depends=&quot;cond-if&quot;/&gt;
+
+&lt;target name=&quot;cond-if&quot; if=&quot;prop1&quot;&gt;
+  &lt;antcall target=&quot;cond-if-2&quot;/&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-if-2&quot; if=&quot;prop2&quot;&gt;
+  &lt;antcall target=&quot;cond-if-3&quot;/&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-if-3&quot; unless=&quot;prop3&quot;&gt;
+  &lt;echo message=&quot;yes&quot;/&gt;
+&lt;/target&gt;
+</pre>
+                        <p>Note: <code>&lt;antcall&gt;</code> tasks do <em>not</em> pass
+        property changes back up to the environment they were called
+        from, so you wouldn't be able to, for example, set a
+        <code>result</code> property in the <code>cond-if-3</code> target,
+        then do
+        <code>&lt;echo message="result is ${result}"/&gt;</code>
+        in the <code>cond</code> target.</p>
+                        <p>Starting with Ant 1.4, you can use the
+        <code>&lt;condition&gt;</code> task.</p>
+                        <pre class="code">
+&lt;target name=&quot;cond&quot; depends=&quot;cond-if,cond-else&quot;/&gt;
+
+&lt;target name=&quot;check-cond&quot;&gt;
+  &lt;condition property=&quot;cond-is-true&quot;&gt;
+    &lt;and&gt;
+      &lt;not&gt;
+        &lt;equals arg1=&quot;${prop1}&quot; arg2=&quot;$${prop1}&quot; /&gt;
+      &lt;/not&gt;
+      &lt;not&gt;
+        &lt;equals arg1=&quot;${prop2}&quot; arg2=&quot;$${prop2}&quot; /&gt;
+      &lt;/not&gt;
+      &lt;equals arg1=&quot;${prop3}&quot; arg2=&quot;$${prop3}&quot; /&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-if&quot; depends=&quot;check-cond&quot; if=&quot;cond-is-true&quot;&gt;
+  &lt;echo message=&quot;yes&quot;/&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-else&quot; depends=&quot;check-cond&quot; unless=&quot;cond-is-true&quot;&gt;
+  &lt;echo message=&quot;no&quot;/&gt;
+&lt;/target&gt;
+</pre>
+                        <p>This version takes advantage of two things:</p>
+                        <ul>
+          <li>If a property <code>a</code> has not been set,
+          <code>${a}</code> will evaluate to <code>${a}</code>.</li>
+
+          <li>To get a literal <code>$</code> in Ant, you have to
+          escape it with another <code>$</code> - this will also break
+          the special treatment of the <code>${</code> sequence.</li>
+        </ul>
+                        <p>Because testing for a literal <code>${property}</code> string
+        isn't all that readable or easy to understand,
+        post-1.4.1 Ant introduces the <code>&lt;isset&gt;</code> element
+        to the <code>&lt;condition&gt;</code> task.</p>
+                        <p>Here is the previous example done using
+        <code>&lt;isset&gt;</code>:</p>
+                        <pre class="code">
+&lt;target name=&quot;check-cond&quot;&gt;
+  &lt;condition property=&quot;cond-is-true&quot;&gt;
+    &lt;and&gt;
+      &lt;isset property=&quot;prop1&quot;/&gt;
+      &lt;isset property=&quot;prop2&quot;/&gt;
+      &lt;not&gt;
+        &lt;isset property=&quot;prop3&quot;/&gt;
+      &lt;/not&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+&lt;/target&gt;
+</pre>
+                        <p>The last option is to use a scripting language to set the
+        properties. This can be particularly handy when you need much
+        finer control than the simple conditions shown here but, of
+        course, comes with the overhead of adding JAR files to support
+        the language, to say nothing of the added maintenance in requiring
+        two languages to implement a single system. See the
+        <a href="manual/OptionalTasks/script.html">
+        <code>&lt;script&gt;</code> task documentation</a> for more
+        details.</p>
+                    <p class="faq">
+      <a name="encoding"></a>
+      How can I include national characters like German
+        umlauts in my build file?
+    </p>
+                  <p>You need to tell the XML parser which character encoding
+        your build file uses, this is done inside the <a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-prolog-dtd">XML
+        declaration</a>.</p>
+                        <p>By default the parser assumes you are using the UTF-8
+        encoding instead of your platform's default.  For most Western
+        European countries you should set the encoding to
+        <code>ISO-8859-1</code>.  To do so, make the very first line
+        of you build file read like</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
+</pre>
+                    <p class="faq">
+      <a name="use-zip-instead-of-jar"></a>
+      How do I use <code>jar</code>'s <code>M</code> switch?
+      I don't want a MANIFEST.
+    </p>
+                  <p>A JAR archive is a ZIP file, so if you don't want a
+        MANIFEST you can simply use <code>&lt;zip&gt;</code>.</p>
+                        <p>If your file names contain national characters you should
+        know that Sun's <code>jar</code> utility like Ant's
+        <code>&lt;jar&gt;</code> uses UTF-8 to encode their names while
+        <code>&lt;zip&gt;</code> uses your platforms default encoding.
+        Use the encoding attribute of <code>&lt;zip&gt;</code> if
+        necessary.</p>
+                    <p class="faq">
+      <a name="propertyvalue-as-name-for-property"></a>
+      How can I do something like <code>&lt;property name="prop"
+      value="${${anotherprop}}"/&gt;</code> (double expanding the property)?
+    </p>
+                  <p>Without any external help you can not.</p>
+                        <p>With &lt;script/&gt;, which needs external libraries, you can do</p>
+                        <pre class="code">
+&lt;script language=&quot;javascript&quot;&gt;
+    propname = project.getProperty(&quot;anotherprop&quot;);
+    project.setNewProperty(&quot;prop&quot;, propname);
+&lt;/script&gt;
+</pre>
+                        <p>With AntContrib (external task library) you can do <code>
+         &lt;propertycopy name="prop" from="${anotherprop}"/&gt;</code>.</p>
+                        <p>With Ant 1.6 you can simulate the AntContribs &lt;propertycopy&gt;
+         and avoid the need of an external library:</p>
+                        <pre class="code">
+&lt;macrodef name=&quot;propertycopy&quot;&gt;
+  &lt;attribute name=&quot;name&quot;/&gt;
+  &lt;attribute name=&quot;from&quot;/&gt;
+  &lt;sequential&gt;
+    &lt;property name=&quot;@{name}&quot; value=&quot;${@{from}}&quot;/&gt;
+  &lt;/sequential&gt;
+&lt;/macrodef&gt;
+</pre>
+                                <p class="faq">
+      <a name="genral-advice"></a>
+      General Advice
+    </p>
+                  <p>There are many reasons why Ant doesn't behave as
+        expected, not all of them are due to Ant bugs.  See our <a href="problems.html">Having Problems?</a> page for hints that
+        may help pinning down the reasons for your problem.</p>
+                    <p class="faq">
+      <a name="always-recompiles"></a>
+      Why does Ant always recompile all my Java files?
+    </p>
+                  <p>In order to find out which files should be compiled, Ant
+        compares the timestamps of the source files to those of the
+        resulting <code>.class</code> files.  Opening all source files
+        to find out which package they belong to would be very
+        inefficient. Instead, Ant expects you to place your
+        source files in a directory hierarchy that mirrors your
+        package hierarchy and to point Ant to the root of this
+        directory tree with the <code>srcdir</code> attribute.</p>
+                        <p>Say you have <code>&lt;javac srcdir="src"
+        destdir="dest"/&gt;</code>.  If Ant finds a file
+        <code>src/a/b/C.java</code>, it expects it to be in package
+        <code>a.b</code> so that the resulting <code>.class</code>
+        file is going to be <code>dest/a/b/C.class</code>.</p>
+                        <p>If your source-tree directory structure does not match your
+        package structure, Ant's heuristic won't work, and
+        it will recompile classes that are up-to-date.  Ant is not the
+        only tool that expects a source-tree layout like this.</p>
+                        <p>If you have Java source files that aren't declared to
+        be part of any package, you can still use the <code>&lt;javac&gt;</code>
+        task to compile these files correctly - just set the
+        <code>srcdir</code> and <code>destdir</code> attributes to
+        the actual directory the source
+        files live in and the directory the class files should go into,
+        respectively.</p>
+                    <p class="faq">
+      <a name="defaultexcludes"></a>
+      I've used a <code>&lt;delete&gt;</code> task to
+      delete unwanted SourceSafe control files (CVS files, editor
+      backup files, etc.), but it doesn't seem to work; the files
+      never get deleted. What's wrong?
+    </p>
+                  <p>This is probably happening because, by default, Ant excludes
+        SourceSafe control files (<code>vssver.scc</code>) and certain other
+        files from FileSets.</p>
+                        <p>Here's what you probably did:</p>
+                        <pre class="code">
+&lt;delete&gt;
+  &lt;fileset dir=&quot;${build.src}&quot; includes=&quot;**/vssver.scc&quot;/&gt;
+&lt;/delete&gt;
+</pre>
+                        <p>You need to switch off the default exclusions,
+           and it will work:</p>
+                        <pre class="code">
+&lt;delete&gt;
+  &lt;fileset dir=&quot;${build.src}&quot; includes=&quot;**/vssver.scc&quot;
+           defaultexcludes=&quot;no&quot;/&gt;
+&lt;/delete&gt;
+</pre>
+                        <p>For a complete listing of the patterns that are excluded
+        by default, see <a href="manual/dirtasks.html#defaultexcludes">the user
+        manual</a>.</p>
+                    <p class="faq">
+      <a name="stop-dependency"></a>
+      I have a target I want to skip if a property is set,
+      so I have <code>unless="property"</code> as an attribute
+      of the target, but all the targets this target
+      depends on are still executed. Why?
+    </p>
+                  <p>The list of dependencies is generated by Ant before any of the
+        targets are run. This allows dependent targets, such as an
+        <code>init</code> target, to set properties that can control the
+               execution of the targets higher in the dependency graph. This
+              is a good thing.</p>
+                        <p>However, when your dependencies break down the
+        higher-level task
+        into several smaller steps, this behaviour becomes
+        counter-intuitive. There are a couple of solutions available:
+        </p>
+                        <ol>
+          <li>Put the same condition on each of the dependent targets.</li>
+
+          <li>Execute the steps using <code>&lt;antcall&gt;</code>,
+          instead of specifying them inside the <code>depends</code>
+          attribute.</li>
+        </ol>
+                    <p class="faq">
+      <a name="include-order"></a>
+      In my <code>&lt;fileset&gt;</code>, I've put in an
+      <code>&lt;exclude&gt;</code> of all files followed by an
+      <code>&lt;include&gt;</code> of just the files I want, but it
+      isn't giving me any files at all. What's wrong?
+      
+    </p>
+                  <p>The order of the <code>&lt;include&gt;</code> and
+        <code>&lt;exclude&gt;</code> tags within a <code>&lt;fileset&gt;</code>
+        is ignored when the FileSet is created. Instead, all of the
+        <code>&lt;include&gt;</code> elements are processed together,
+        followed by all of the <code>&lt;exclude&gt;</code>
+        elements. This means that the <code>&lt;exclude&gt;</code>
+        elements only apply to the file list produced by the
+        <code>&lt;include&gt;</code> elements.</p>
+                        <p>To get the files you want, focus on just the
+        <code>&lt;include&gt;</code> patterns that would be necessary
+        to get them. If you find you need to trim the list that the
+        <code>&lt;include&gt;</code> elements produce, then use
+        <code>&lt;exclude&gt;</code> elements.</p>
+                    <p class="faq">
+      <a name="properties-not-trimmed"></a>
+      <code>ant</code> failed to build my program via javac
+      even when I put the needed jars in an external
+      <code>build.properties</code> file and reference them by
+      <code>pathelement</code> or <code>classpath refid</code>.
+    </p>
+                  <p>When <code>ant</code> loads properties from an external
+        file it doesn't touch the value of properties, trailing blanks
+        will not be trimmed for example.</p>
+                        <p>If the value represents a file path, like a jar needed to
+        compile, the task which requires the value, javac for example
+        would fail to compile since it can't find the file due to
+        trailing spaces.</p>
+                    <p class="faq">
+      <a name="winzip-lies"></a>
+      Ant creates WAR files with a lower-case
+        <code>web-inf</code> or JAR files with a lower-case
+        <code>meta-inf</code> directory.
+    </p>
+                  <p>No it doesn't.</p>
+                        <p>You may have seen these lower-case directory names in
+        WinZIP, but WinZIP is trying to be helpful (and fails).  If
+        WinZIP encounters a filename that is all upper-case, it
+        assumes it has come from an old DOS box and changes the case to
+        all lower-case for you.</p>
+                        <p>If you extract (or just check) the archive with jar, you
+        will see that the names have the correct case.</p>
+                        <p>With WinZIP (version 8.1 at least), this can be corrected in the
+        configuration.  In the Options/Configuration menu, in the View tab, General
+        section, check the "Allow all upper case files names" box.  The META-INF and
+        WEB-INF will look correct.</p>
+                    <p class="faq">
+      <a name="NoClassDefFoundError"></a>
+      I installed Ant 1.6.x and now get
+        <code>Exception in thread "main" java.lang.NoClassDefFoundError:
+        </code>
+      
+    </p>
+                  <p>
+          The cause of this is that there is an old version of ant somewhere in the
+          class path or configuration.
+        </p>
+                        <p>
+          A version of this problem happens with jars that are in the classpath
+          that include an embedded copy of ant classes.
+          An example of this is some copies of weblogic.jar.
+        </p>
+                        <p>
+        One can check if this is the case by doing (on unix/sh):
+        <code><pre>
+        unset CLASSPATH
+        ant -version
+        </pre>
+        </code>
+        </p>
+                    <p class="faq">
+      <a name="InstantiationException"></a>
+      I installed Ant 1.6.x and now get
+        <code>java.lang.InstantiationException: org.apache.tools.ant.Main</code>
+      
+    </p>
+                  <p>
+          The cause of this is that there is an old version of ant somewhere in the
+          class path or configuration.
+        </p>
+                        <p>
+          A version of this problem may be seen on some linux systems.
+          Some linux systems (Fedora Core 2 for example), comes with a version
+          of ant pre-installed. There is a configuration file called
+          <code>/etc/ant.conf</code> which if present, the ant shell
+          script will 'dot' include. On Fedora Core 2, the /etc/ant.conf
+          file resets the <code>ANT_HOME</code> environment variable to
+          <code>/usr/share/ant</code>. This causes the problem that
+          an old version of ant (1.5.x in this cause) will be used
+          with a new version of the ant script file.
+        </p>
+                        <p>
+          One can check if this is the case by doing
+          <code>ant --noconfig -version</code>.
+        </p>
+                    <p class="faq">
+      <a name="mangled-manifest"></a>
+      
+        Whenever I use the Ant jar or manifest related tasks, long lines in
+        my manifest are wrapped at 70 characters and the resulting jar does
+        not work in my application server. Why does Ant do this?
+      
+    </p>
+                  <p>
+          Ant implements the Java
+          <a href="http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html">Jar
+          file specification</a>. Please refer to the notes section where it
+          discusses the maximum allowable length of a line and the concept of
+          continuation characters.
+        </p>
+                        <p>
+          If a jar file produced by Ant does not work in your appserver, and
+          that failure is due to the wrapped manifest, then you need
+          to consult your appserver provider, as it is a bug in their
+          appserver. Far more likely, however, is a problem in your
+          specification of your classpath. It is not Ant's wrapping of your
+          classpath that is the problem.
+        </p>
+                        <p>
+          Do not raise a bug about this issue until you have checked to ensure
+          that the problem is not due to your classpath specification.
+        </p>
+                                <p class="faq">
+      <a name="integration"></a>
+      Is Ant supported by my IDE/Editor?
+    </p>
+                  <p>See the <a href="external.html#IDE and Editor Integration">section
+        on IDE integration</a> on our External Tools and Tasks page.</p>
+                    <p class="faq">
+      <a name="emacs-mode"></a>
+      Why doesn't (X)Emacs/vi/MacOS X's project builder
+      correctly parse the error messages generated by Ant?
+    </p>
+                  <p>Ant adds a "banner" with the name of the current
+        task in front of all logging messages - and there are no built-in
+        regular expressions in your editor that would account for
+        this.</p>
+                        <p>You can disable this banner by invoking Ant with the
+        <code>-emacs</code> switch.  To make Ant autodetect
+        Emacs' compile mode, put this into your
+        <code>.antrc</code> (contributed by Ville Skyttä).</p>
+                        <pre class="code">
+# Detect (X)Emacs compile mode
+if [ &quot;$EMACS&quot; = &quot;t&quot; ] ; then
+  ANT_ARGS=&quot;$ANT_ARGS -emacs&quot;
+  ANT_OPTS=&quot;$ANT_OPTS -Dbuild.compiler.emacs=true&quot;
+fi
+</pre>
+                        <p>Alternatively, you can add the following snippet to your
+        <code>.emacs</code> to make Emacs understand Ant's
+        output.</p>
+                        <pre class="code">
+(require 'compile)
+(setq compilation-error-regexp-alist
+  (append (list
+     ;; works for jikes
+     '(&quot;^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):\\([0-9]+\\):[0-9]+:[0-9]+:&quot; 1 2 3)
+     ;; works for javac
+     '(&quot;^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):&quot; 1 2))
+  compilation-error-regexp-alist))
+</pre>
+                        <p>Yet another alternative that preserves most of Ant's
+        formatting is to pipe Ant's output through the following Perl
+        script by Dirk-Willem van Gulik:</p>
+                        <pre class="code">
+#!/usr/bin/perl
+#
+# May 2001 dirkx@apache.org - remove any
+# [foo] lines from the output; keeping
+# spacing more or less there.
+#
+$|=1;
+while(&lt;STDIN&gt;) {
+        if (s/^(\s+)\[(\w+)\]//) {
+                if ($2 ne $last) {
+                        print &quot;$1\[$2\]&quot;;
+                        $s = ' ' x length($2);
+                } else {
+                        print &quot;$1 $s &quot;;
+                };
+                $last = $2;
+        };
+        print;
+};
+</pre>
+                                <p class="faq">
+      <a name="dtd"></a>
+      Is there a DTD that I can use to validate my build
+      files?
+    </p>
+                  <p>An incomplete DTD can be created by the
+          <code>&lt;antstructure&gt;</code> task - but this one
+          has a few problems:</p>
+                        <ul>
+            <li>It doesn't know about required attributes.  Only
+            manual tweaking of this file can help here.</li>
+
+            <li>It is not complete - if you add new tasks via
+            <code>&lt;taskdef&gt;</code> it won't know about it.  See
+            <a href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html">this
+            page</a> by Michel Casabianca for a solution to this
+            problem.  Note that the DTD you can download at this page
+            is based on Ant 0.3.1.</li>
+
+            <li>It may even be an invalid DTD.  As Ant allows tasks
+            writers to define arbitrary elements, name collisions will
+            happen quite frequently - if your version of Ant contains
+            the optional <code>&lt;test&gt;</code> and
+            <code>&lt;junit&gt;</code> tasks, there are two XML
+            elements named <code>test</code> (the task and the nested child
+            element of <code>&lt;junit&gt;</code>) with different attribute
+            lists.  This problem cannot be solved; DTDs don't give a
+            syntax rich enough to support this.</li>
+          </ul>
+                    <p class="faq">
+      <a name="xml-entity-include"></a>
+      How do I include an XML snippet in my build file?
+    </p>
+                  <p>You can use XML's way of including external files and let
+        the parser do the job for Ant:</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot;?&gt;
+
+&lt;!DOCTYPE project [
+       &lt;!ENTITY common SYSTEM &quot;common.xml&quot;&gt;
+]&gt;
+
+&lt;project name=&quot;test&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;setup&quot;&gt;
+    ...
+  &lt;/target&gt;
+
+  &amp;common;
+
+  ...
+
+&lt;/project&gt;
+</pre>
+                        <p>will literally include the contents of <code>common.xml</code> where
+        you've placed the <code>&amp;common;</code> entity.</p>
+                        <p>(The filename <code>common.xml</code> in this example is resolved
+        relative to the containing XML file by the XML parser. You may also use
+        an absolute <code>file:</code> protocol URI.)</p>
+                        <p>In combination with a DTD, this would look like this:</p>
+                        <pre class="code">
+&lt;!DOCTYPE project PUBLIC &quot;-//ANT//DTD project//EN&quot; &quot;ant.dtd&quot; [
+   &lt;!ENTITY include SYSTEM &quot;header.xml&quot;&gt;
+]&gt;
+</pre>
+                        <p>Starting with Ant 1.6, there is a new
+        <code>&lt;import&gt;</code> task that can (also) be used to
+        include build file fragments.  Unlike the snippets used with
+        entity includes, the referenced files have to be complete Ant
+        build files, though.</p>
+                        <p>The example above would become:</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot;?&gt;
+&lt;project name=&quot;test&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;setup&quot;&gt;
+    ...
+  &lt;/target&gt;
+
+  &lt;import file=&quot;./common.xml&quot;/&gt;
+
+  ...
+
+&lt;/project&gt;
+</pre>
+                        <p>Unlike entity includes, <code>&lt;import&gt;</code> will
+        let you use Ant properties in the file name.</p>
+                    <p class="faq">
+      <a name="mail-logger"></a>
+      How do I send an email with the result of my build
+        process?
+    </p>
+                  <p>If you are using a nightly build of Ant 1.5 after
+        2001-12-14, you can use the built-in MailLogger:</p>
+                        <pre class="code">
+         ant -logger org.apache.tools.ant.listener.MailLogger
+</pre>
+                        <p>See the <a href="http://svn.apache.org/repos/asf/ant/core/trunk/docs/manual/listeners.html">Listeners
+        &amp; Loggers</a> documentation for details on the properties
+        required.</p>
+                        <p>For older versions of Ant, you can use a custom
+        BuildListener that sends out an email
+        in the buildFinished() method.  Will Glozer
+        &lt;will.glozer@jda.com&gt; has written such a listener based
+        on <a href="http://java.sun.com/products/javamail/">JavaMail</a>.
+        The source is:</p>
+                        <pre class="code">
+import java.io.*;
+import java.util.*;
+import javax.mail.*;
+import javax.mail.internet.*;
+import org.apache.tools.ant.*;
+
+/**
+ * A simple listener that waits for a build to finish and sends an email
+ * of the results.  The settings are stored in &quot;monitor.properties&quot; and
+ * are fairly self explanatory.
+ *
+ * @author      Will Glozer
+ * @version     1.05a 09/06/2000
+ */
+public class BuildMonitor implements BuildListener {
+    protected Properties props;
+
+    /**
+     * Create a new BuildMonitor.
+     */
+    public BuildMonitor() throws Exception {
+        props = new Properties();
+        InputStream is = getClass().getResourceAsStream(&quot;monitor.properties&quot;);
+        props.load(is);
+        is.close();
+    }
+
+    public void buildStarted(BuildEvent e) {
+    }
+
+    /**
+     * Determine the status of the build and the actions to follow, now that
+     * the build has completed.
+     *
+     * @param       e       Event describing the build status.
+     */
+    public void buildFinished(BuildEvent e) {
+        Throwable th = e.getException();
+        String status = (th != null) ? &quot;failed&quot; : &quot;succeeded&quot;;
+
+        try {
+            String key = &quot;build.&quot; + status;
+            if (props.getProperty(key + &quot;.notify&quot;).equalsIgnoreCase(&quot;false&quot;)) {
+                    return;
+            }
+
+            Session session = Session.getDefaultInstance(props, null);
+
+            MimeMessage message = new MimeMessage(session);
+            message.addRecipients(Message.RecipientType.TO, parseAddresses(
+                props.getProperty(key + &quot;.email.to&quot;)));
+            message.setSubject(props.getProperty(key + &quot;.email.subject&quot;));
+
+            BufferedReader br = new BufferedReader(new FileReader(
+                props.getProperty(&quot;build.log&quot;)));
+            StringWriter sw = new StringWriter();
+
+            String line = br.readLine();
+            while (line != null) {
+                sw.write(line);
+                sw.write(&quot;\n&quot;);
+                line = br.readLine();
+            }
+            br.close();
+
+            message.setText(sw.toString(), &quot;UTF-8&quot;);
+            sw.close();
+
+            Transport transport = session.getTransport();
+            transport.connect();
+            transport.send(message);
+            transport.close();
+        } catch (Exception ex) {
+            System.out.println(&quot;BuildMonitor failed to send email!&quot;);
+            ex.printStackTrace();
+        }
+    }
+
+    /**
+     * Parse a comma separated list of internet email addresses.
+     *
+     * @param       s       The list of addresses.
+     * @return      Array of Addresses.
+     */
+    protected Address[] parseAddresses(String s) throws Exception {
+        StringTokenizer st = new StringTokenizer(s, &quot;,&quot;);
+        Address[] addrs = new Address[st.countTokens()];
+
+        for (int i = 0; i &lt; addrs.length; i++) {
+            addrs[i] = new InternetAddress(st.nextToken());
+        }
+        return addrs;
+    }
+
+    public void messageLogged(BuildEvent e) {
+    }
+
+    public void targetStarted(BuildEvent e) {
+    }
+
+    public void targetFinished(BuildEvent e) {
+    }
+
+    public void taskStarted(BuildEvent e) {
+    }
+
+    public void taskFinished(BuildEvent e) {
+    }
+}
+</pre>
+                        <p>With a <code>monitor.properties</code> like this:</p>
+                        <pre class="code">
+# configuration for build monitor
+
+mail.transport.protocol=smtp
+mail.smtp.host=&lt;host&gt;
+mail.from=Will Glozer &lt;will.glozer@jda.com&gt;
+
+build.log=build.log
+
+build.failed.notify=true
+build.failed.email.to=will.glozer@jda.com
+build.failed.email.subject=Nightly build failed!
+
+build.succeeded.notify=true
+build.succeeded.email.to=will.glozer@jda.com
+build.succeeded.email.subject=Nightly build succeeded!
+</pre>
+                        <p><code>monitor.properties</code> should be placed right next
+        to your compiled <code>BuildMonitor.class</code>.  To use it,
+        invoke Ant like:</p>
+                        <pre class="code">
+ant -listener BuildMonitor -logfile build.log
+</pre>
+                        <p>Make sure that <code>mail.jar</code> from JavaMail and
+        <code>activation.jar</code> from the
+        <a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">Java
+        Beans Activation Framework</a> are in your <code>CLASSPATH</code>.</p>
+                    <p class="faq">
+      <a name="listener-properties"></a>
+      How do I get at the properties that Ant was running
+      with from inside BuildListener?
+    </p>
+                  <p>You can get at a hashtable with all the properties that Ant
+        has been using through the BuildEvent parameter. For
+        example:</p>
+                        <pre class="code">
+public void buildFinished(BuildEvent e) {
+    Hashtable table = e.getProject().getProperties();
+    String buildpath = (String)table.get(&quot;build.path&quot;);
+    ...
+}
+</pre>
+                        <p>This is more accurate than just reading the same property
+        files that your project does, since it will give the correct
+        results for properties that were specified on the Ant command line.</p>
+                                <p class="faq">
+      <a name="remove-cr"></a>
+      &lt;chmod&gt; or &lt;exec&gt; doesn't work in Ant
+        1.3 on Unix
+    </p>
+                  <p>The <code>antRun</code> script in <code>ANT_HOME/bin</code>
+        has DOS instead of Unix line endings; you must remove the
+        carriage-return characters from this file.  This can be done by
+        using Ant's <code>&lt;fixcrlf&gt;</code> task
+        or something like:</p>
+                        <pre class="code">
+tr -d '\r' &lt; $ANT_HOME/bin/antRun &gt; /tmp/foo
+mv /tmp/foo $ANT_HOME/bin/antRun
+</pre>
+                    <p class="faq">
+      <a name="javadoc-cannot-execute"></a>
+      JavaDoc failed: java.io.IOException: javadoc: cannot execute
+    </p>
+                  <p>There is a bug in the Solaris reference implementation of
+        the JDK (see <a href="http://developer.java.sun.com/developer/bugParade/bugs/4230399.html">http://developer.java.sun.com/developer/bugParade/bugs/4230399.html</a>).
+        This also appears to be true under Linux. Moving the JDK to
+        the front of the PATH fixes the problem.</p>
+                    <p class="faq">
+      <a name="delegating-classloader"></a>
+      &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt;
+    </p>
+                  <p>Starting with Ant 1.7.0, &lt;junit&gt; will honor your
+        nested &lt;classpath&gt;.</p>
+                        <p>These tasks don't ignore your classpath setting, you
+        are facing a common problem with delegating classloaders.</p>
+                        <p>This question collects a common type of problem: A task
+        needs an external library and it has a nested classpath
+        element so that you can point it to this external library, but
+        that doesn't work unless you put the external library
+        into the <code>CLASSPATH</code> or place it in
+        <code>ANT_HOME/lib</code>.</p>
+                        <p>Some background is necessary before we can discuss
+        solutions for <a href="#delegating-classloader-1.5">Ant
+        1.5.x</a> and <a href="#delegating-classloader-1.6">Ant
+        1.6.x</a>.</p>
+                        <p>When you specify a nested <code>&lt;classpath&gt;</code> in
+        Ant, Ant creates a new class loader that uses the path you
+        have specified.  It then tries to load additional classes from
+        this classloader.</p>
+                        <p>In most cases - for example using &lt;style&gt; or
+        &lt;junit&gt; - Ant doesn't load the external library
+        directly, it is the loaded class that does so.</p>
+                        <p>In the case of <code>&lt;junit&gt;</code> it is the task
+        implementation itself and in the case of
+        <code>&lt;style&gt;</code> it is the implementation of the
+        <code>org.apache.tools.ant.taskdefs.XSLTLiaison</code>
+        class.</p>
+                        <p><em>As of Ant 1.7</em> <code>&lt;junit&gt;</code> no longer
+        requires you to have <code>junit.jar</code> in Ant's startup
+        classpath even if <code>ant-junit.jar</code> is present there.</p>
+                        <p>Ant's class loader implementation uses Java's
+        delegation model, see <a href="http://java.sun.com/products/jdk/1.2/docs/api/java/lang/ClassLoader.html">http://java.sun.com/products/jdk/1.2/docs/api/java/lang/ClassLoader.html</a>
+        the paragraph</p>
+                        <blockquote>The <code>ClassLoader</code> class uses a
+        delegation model to search for classes and resources. Each
+        instance of <code>ClassLoader</code> has an associated parent
+        class loader.  When called upon to find a class or resource, a
+        <code>ClassLoader</code> instance will delegate the search for
+        the class or resource to its parent class loader before
+        attempting to find the class or resource itself. The virtual
+        machine's built-in class loader, called the bootstrap
+        class loader, does not itself have a parent but may serve as
+        the parent of a <code>ClassLoader</code>
+        instance.</blockquote>
+                        <p>The possible solutions depend on the version of Ant you
+        use, see the next sections.</p>
+                    <p class="faq">
+      <a name="delegating-classloader-1.5"></a>
+      &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt; - Ant 1.5.x version
+    </p>
+                  <p>Please read <a href="#delegating-classloader">the previous
+        entry</a> before you go ahead.</p>
+                        <p>First of all let's state that Ant's wrapper script
+        (<code>ant</code> or <code>ant.bat</code>) adds all
+        <code>.jar</code> files from <code>ANT_HOME/lib</code> to
+        <code>CLASSPATH</code>, therefore "in
+        <code>CLASSPATH</code>" shall mean "either in your
+        <code>CLASSPATH</code> environment variable or
+        <code>ANT_HOME/lib</code>" for the rest of this
+        answer.</p>
+                        <p>The root of the problem is that the class that needs the
+        external library is on the <code>CLASSPATH</code>.</p>
+                        <p>Let's see what happens when you load the &lt;junit&gt;
+        task.  Ant's class loader will consult the
+        bootstrap class loader first, which tries to load classes from
+        <code>CLASSPATH</code>.  The bootstrap class loader
+        doesn't know anything about Ant's class loader or
+        even the path you have specified.</p>
+                        <p>If the bootstrap class loader can load the class Ant has
+        asked it to load (which it can if <code>optional.jar</code> is
+        part of <code>CLASSPATH</code>), this class will try to load
+        the external library from <code>CLASSPATH</code> as well - it
+        doesn't know anything else - and will not find it unless
+        the library is in <code>CLASSPATH</code> as well.</p>
+                        <p>To solve this, you have two major options:</p>
+                        <ol>
+          <li>put all external libraries you need in
+          <code>CLASSPATH</code> as well this is not what you want,
+          otherwise you wouldn't have found this FAQ entry.</li>
+
+          <li>remove the class that loads the external library from
+          the <code>CLASSPATH</code>.</li>
+        </ol>
+                        <p>The easiest way to do this is to remove
+        <code>optional.jar</code> from <code>ANT_HOME/lib</code>.  If
+        you do so, you will have to <code>&lt;taskdef&gt;</code> all
+        optional tasks and use nested <code>&lt;classpath&gt;</code>
+        elements in the <code>&lt;taskdef&gt;</code> tasks that point
+        to the new location of <code>optional.jar</code>.  Also,
+        don't forget to add the new location of
+        <code>optional.jar</code> to the
+        <code>&lt;classpath&gt;</code> of your
+        <code>&lt;style&gt;</code> or <code>&lt;junit&gt;</code>
+        task.</p>
+                        <p>If you want to avoid to <code>&lt;taskdef&gt;</code> all
+        optional tasks you need, the only other option is to remove
+        the classes that should not be loaded via the bootstrap class
+        loader from <code>optional.jar</code> and put them into a
+        separate archive. Add this separate archive to the
+        <code>&lt;classpath&gt;</code> of your
+        <code>&lt;style&gt;</code> or <code>&lt;junit&gt;</code> task
+        - and make sure the separate archive is not in
+        <code>CLASSPATH</code>.</p>
+                        <p>In the case of <code>&lt;junit&gt;</code> you'd have
+        to remove all classes that are in the
+        <code>org/apache/tools/ant/taskdefs/optional/junit</code>
+        directory, in the <code>&lt;style&gt;</code> case it is one of
+        the <code>*Liaison</code> classes in
+        <code>org/apache/tools/ant/taskdefs/optional</code>.</p>
+                        <p>If you use the option to break up <code>optional.jar</code>
+        for <code>&lt;junit&gt;</code> or remove
+        <code>ant-junit.jar</code>, you still have to use a
+        <code>&lt;taskdef&gt;</code> with a nested
+        <code>&lt;classpath&gt;</code> to define the junit task.</p>
+                    <p class="faq">
+      <a name="delegating-classloader-1.6"></a>
+      &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt; - Ant 1.6.x version
+    </p>
+                  <p>Please read <a href="#delegating-classloader">the general
+        entry</a> before you go ahead.</p>
+                        <p>The wrapper script of Ant 1.6.x no longer adds the contents
+        of <code>ANT_HOME/lib</code> to <code>CLASSPATH</code>,
+        instead Ant will create a classloader on top of the bootstrap
+        classloader - let's call it the coreloader for the rest of
+        this answer - which holds the contents of
+        <code>ANT_HOME/lib</code>.  Ant's core and its tasks will be
+        loaded through this classloader and not the bootstrap
+        classloader.</p>
+                        <p>This causes some small but notable differences between Ant
+        1.5.x and 1.6.x.  Most importantly, a third-party task that is
+        part of <code>CLASSPATH</code> will no longer work in Ant
+        1.6.x since the task now can't find Ant's classes.  In a sense
+        this is the same problem this entry is about, only
+        <code>ant.jar</code> has become the external library in
+        question now.</p>
+                        <p>This coreloader also holds the contents of
+        <code>~/.ant/lib</code> and any file or directory that has
+        been specified using Ant's <code>-lib</code> command line
+        argument.</p>
+                        <p>Let's see what happens when you load the &lt;junit&gt;
+        task.  Ant's class loader will consult the bootstrap
+        class loader first, which tries to load classes from
+        <code>CLASSPATH</code>.  The bootstrap class loader
+        doesn't know anything about Ant's class loader or
+        even the path you have specified.  If it fails to find the
+        class using the bootstrap classloader it will try the
+        coreloader next.  Again, the coreloader doesn't know anything
+        about your path.</p>
+                        <p>If the coreloader can load the class Ant has asked it to
+        load (which it can if <code>ant-junit.jar</code> is in
+        <code>ANT_HOME/lib</code>), this class will try to load the
+        external library from coreloader as well - it doesn't
+        know anything else - and will not find it unless the library
+        is in <code>CLASSPATH</code> or the coreloader as well.</p>
+                        <p>To solve this, you have the following major options:</p>
+                        <ol>
+          <li>put all external libraries you need in
+          <code>CLASSPATH</code> as well this is not what you want,
+          otherwise you wouldn't have found this FAQ entry.</li>
+
+          <li>put all external libraries you need in
+          <code>ANT_HOME/lib</code> or <code>.ant/lib</code>.  This
+          probably still isn't what you want, but you might reconsider
+          the <code>.ant/lib</code> option.</li>
+
+          <li>Always start Ant with the <code>-lib</code> command line
+          switch and point to your external libraries (or the
+          directories holding them).</li>
+
+          <li>remove the class that loads the external library from
+          the coreloader.</li>
+        </ol>
+                        <p>In Ant 1.6 <code>optional.jar</code> has been split into
+        multiple jars, each one containing classes with the same
+        dependencies on external libraries.  You can move the
+        "offending" jar out of <code>ANT_HOME/lib</code>.  For the
+        <code>&lt;junit&gt;</code> task it would be
+        <code>ant-junit.jar</code> and for <code>&lt;style&gt;</code>
+        it would be <code>ant-trax.jar</code>
+        or <code>ant-xslp.jar</code> - 
+        depending on the processor you use.</p>
+                        <p>If you do so, you will have to <code>&lt;taskdef&gt;</code>
+        all optional tasks that need the external library and use
+        nested <code>&lt;classpath&gt;</code> elements in the
+        <code>&lt;taskdef&gt;</code> tasks that point to the new
+        location of <code>ant-*.jar</code>.  Also, don't forget
+        to add the new location of <code>ant-*.jar</code> to the
+        <code>&lt;classpath&gt;</code> of your
+        <code>&lt;style&gt;</code> or <code>&lt;junit&gt;</code>
+        task.</p>
+                        <p>For example</p>
+                        <pre class="code">
+    &lt;taskdef name=&quot;junit&quot;
+            class=&quot;org.apache.tools.ant.taskdefs.optional.junit.JUnitTask&quot;&gt;
+      &lt;classpath&gt;
+        &lt;pathelement location=&quot;HOME-OF/junit.jar&quot;/&gt;
+        &lt;pathelement location=&quot;NEW-HOME-OF/ant-junit.jar&quot;/&gt;
+      &lt;/classpath&gt;
+    &lt;/taskdef&gt;
+</pre>
+                    <p class="faq">
+      <a name="winxp-jdk14-ant14"></a>
+      When running Ant 1.4 on Windows XP and JDK 1.4, I get
+      various errors when trying to <code>&lt;exec&gt;</code>, fork
+      <code>&lt;java&gt;</code> or access environment
+      variables.
+    </p>
+                  <p>Ant &lt; 1.5 doesn't recognize Windows XP as a flavor
+        of Windows that runs <code>CMD.EXE</code> instead of
+        <code>COMMAND.COM</code>.  JDK 1.3 will tell Ant that Windows
+        XP is Windows 2000 so the problem doesn't show up
+        there.</p>
+                        <p>Apart from upgrading to Ant 1.5 or better, setting the
+        environment variable <code>ANT_OPTS</code> to
+        <code>-Dos.name=Windows_NT</code> prior to invoking Ant has
+        been confirmed as a workaround.</p>
+                    <p class="faq">
+      <a name="1.5-cygwin-sh"></a>
+      The <code>ant</code> wrapper script of Ant 1.5 fails
+      for Cygwin if <code>ANT_HOME</code> is set to a Windows style
+      path.
+    </p>
+                  <p>This problem has been reported only hours after Ant 1.5 has
+        been released, see <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10664">Bug
+        10664</a> and all its duplicates.</p>
+                        <p>A fixed version of the wrapper script can be found <a href="http://ant.apache.org/old-releases/v1.5/errata/">here</a>.
+        Simply replace your script with this version.</p>
+                    <p class="faq">
+      <a name="1.5.2-zip-broken"></a>
+      <code>&lt;zip&gt;</code> is broken in Ant 1.5.2.
+    </p>
+                  <p>Yes, it is.</p>
+                        <p>The problem reported by most people - see <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17648">Bug
+        17648</a> and all its duplicates - is that Ant creates
+        archives that a partially unreadable by WinZIP.  Luckily
+        <code>jar</code> deals with the archives and so the generated
+        jars/wars/ears will most likely work for you anyway.</p>
+                        <p>There are additional problems, see bugs <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17780">Bug
+        17780</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17871">Bug
+        17871</a> and <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18403">Bug
+        18403</a>.  All of them are supposed to be fixed with Ant
+        1.5.3 (and only 18403 should exist in 1.5.3beta1).</p>
+                    <p class="faq">
+      <a name="unknownelement.taskcontainer"></a>
+      
+        Why do my custom task containers see Unknown Elements in Ant 1.6
+        - they worked in Ant 1.5?
+      
+    </p>
+                  <p>
+          The objects added in TaskContainer.addTask(Task task)
+          have changed from  Tasks to UnknownElements.
+        </p>
+                        <p>
+          There was a number of valid reasons for this change. But the backward
+          compatibility problems were not noticed until after Ant 1.6.0 was
+          released.
+        </p>
+                        <p>
+          Your container class will need to be modified to check if the Task
+          is an UnknownElement and call perform on it to
+          convert it to a Task and to execute it.
+          (see apache.tools.ant.taskdefs.Sequential)
+        </p>
+                        <p>
+          If you want to do more processing on the task,
+          you need to use the techniques in apache.tools.ant.taskdefs.Antlib#execute()
+          This does make use of one 1.6 method call (UE#getRealObject()),
+          you need to use UE#getTask() instead - this will
+          return null for non tasks (types like fileset id=x).
+        </p>
+                        <p>
+          So.. iterate over the tasks, if they are UEs, convert them to
+          tasks, using UE#maybeConfigure and UE#getTask()
+        </p>
+                        <pre class="code">
+        for (Iterator i = tasks.iterator(); i.hasNext();) {
+           Task t = (Task) i.next();
+           if (t instanceof UnknownElement) {
+              ((UnknownElement) t).maybeConfigure();
+              t = ((UnknownElement) t).getTask();
+              if (t == null) {
+                  continue;
+              }
+           }
+           // .... original Custom code
+        }
+        </pre>
+                        <p>
+          This approach should work for ant1.5 and ant1.6.
+        </p>
+                    <p class="faq">
+      <a name="java.exception.stacktrace"></a>
+      
+        The program I run via &lt;java&gt; throws an exception but I
+        can't seem to get the full stack trace.
+      
+    </p>
+                  <p>This is a know bug that has been fixed after the release of
+        Ant 1.6.1.</p>
+                        <p>As a workaround, run your &lt;java&gt; task with
+        <code>fork="true"</code> and Ant will display the full
+        trace.</p>
+                    <p class="faq">
+      <a name="junit-no-runtime-xml"></a>
+      
+        Using format="xml", &lt;junit&gt; fails with a
+        <code>NoClassDefFoundError</code> if forked.
+      
+    </p>
+                  <p>The XML formatter needs the <a href="http://www.w3.org/DOM/">DOM classes</a> to work.  If you
+        are using JDK 1.4 or later they are included with your Java
+        Runtime and this problem won't occur.  If you are running JDK
+        1.3 or earlier, the DOM classes have to be on your
+        &lt;junit&gt; task's &lt;classpath&gt;.</p>
+                        <p>Prior to Ant 1.6.0 Ant would include the DOM classes from
+        the XML parser that is used by Ant itself if you set the
+        includeAntRuntime attribute to true (the default).  With Ant
+        1.6.0 this has been changed as this behavior made it
+        impossible to use a different XML parser in your tests.</p>
+                        <p>This means that you have to take care of the DOM classes
+        explicitly starting with Ant 1.6.0.  If you don't need to set
+        up a different XML parser for your tests, the easiest solution
+        is to add</p>
+                        <pre class="code">
+&lt;pathelement path=&quot;${ant.home}/lib/xml-apis.jar:${ant.home}/lib/xercesImpl.jar&quot;/&gt;
+</pre>
+                        <p>to your task's &lt;classpath&gt;.</p>
+                    <p class="faq">
+      <a name="xalan-jdk1.5"></a>
+      
+        <code>&lt;junitreport&gt;</code> doesn't work with JDK 1.5 but
+        worked fine with JDK 1.4.
+      
+    </p>
+                  <p>While JDK 1.4.x contains a version of Xalan-J 2, JDK 1.5
+        (and later?) have <a href="http://java.sun.com/j2se/1.5.0/compatibility.html#4959783">moved
+        to XSLTC</a>.  Since this task uses Xalan's redirect
+        extensions for its internal stylesheet, Ant prior to 1.6.2 didn't support
+        XSLTC.  This means that you have to install <a href="http://xml.apache.org/xalan-j/">Xalan-J 2</a> in order
+        to use this task with JDK 1.5 in older versions of Ant.</p>
+                        <p>Starting with Ant 1.6.2 <code>&lt;junitreport&gt;</code>
+        supports JDK 1.5.</p>
+                    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/index.html	(revision 14989)
@@ -0,0 +1,302 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Welcome</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Conor MacNeill">
+  <meta name="email" content="">
+        <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="stefan.bodewig@freenet.de">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                              <span class="sel">Welcome</span>
+                              </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Welcome</h1>
+            <h3 class="section">
+      <a name="Ant 1.7.0"></a>
+      Ant 1.7.0
+    </h3>
+                        <h3>December 19, 2006 - Ant 1.7.0 Available</h3>
+                                <p>Apache Ant 1.7.0 is now available for <a href="http://ant.apache.org/bindownload.cgi">download</a>.</p>
+                                <p>Ant 1.7 introduces a resource framework. Some of the core ant 
+    tasks such as &lt;copy/&gt; are now able to process not only file 
+    system resources but also zip entries, tar entries, paths, ... 
+    Resource collections group resources, and can be further 
+    combined with operators such as union and intersection. This 
+    can be extended by custom resources and custom tasks using resources.</p>
+                                <p>
+    Ant 1.7 starts outsourcing of optional tasks to Antlibs. 
+    The .NET antlib in preparation will replace the .NET optional tasks which ship in Ant.
+    Support for the version control system Subversion will be only provided as an antlib to
+    be released shortly. 
+    </p>
+                                <p>Ant 1.7 fixes also a large number of bugs.</p>
+                                <p>Ant 1.7 has some initial support for Java6 features.</p>
+                        <h3 class="section">
+      <a name=".NET Ant Library 1.0"></a>
+      .NET Ant Library 1.0
+    </h3>
+                        <h3>November 6, 2006 - Apache .NET Ant Library 1.0 Available</h3>
+                                <p>Apache .NET Ant Library 1.0 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains support for tools like NUnit as well
+    as the "old .NET tasks of Ant's core.  It has been tested
+    Microsoft's frameworks as well as Mono.</p>
+                                <p>For more information see the <a href="antlibs/dotnet/">Antlib's
+    home page</a></p>
+                        <h3 class="section">
+      <a name="AntUnit 1.0Beta2"></a>
+      AntUnit 1.0Beta2
+    </h3>
+                        <h3>October 29, 2006 - Apache AntUnit 1.0Beta2 Available</h3>
+                                <p>Apache AntUnit 1.0Beta1 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains tasks to test Ant tasks using Ant
+    instead of JUnit.  For more information see the <a href="antlibs/antunit/">AntUnit home page</a>.</p>
+                        <h3 class="section">
+      <a name="Apache Ant"></a>
+      Apache Ant
+    </h3>
+                        <p>
+Apache Ant is a Java-based build tool. In theory, it is kind of like
+Make, but without Make's wrinkles.
+</p>
+                                <p>
+Why another build tool when there is already <em>make</em>, <em>gnumake</em>,
+<em>nmake</em>, <em>jam</em>, and
+others? Because all those tools have limitations that Ant's original author
+couldn't live with when developing software across multiple platforms. Make-like
+tools are inherently shell-based -- they evaluate a set of dependencies, then
+execute commands not unlike what you would issue in a shell. This means that you
+can easily extend these tools by using or writing any program for the OS that
+you are working on. However, this also means that you limit yourself to the OS,
+or at least the OS type such as Unix, that you are working on.
+</p>
+                                <p>
+Makefiles are inherently evil as well. Anybody who has worked on them for any
+time has run into the dreaded tab problem. "Is my command not executing
+because I have a space in front of my tab!!!" said the original author of
+Ant way too many times. Tools like Jam took care of this to a great degree, but
+still have yet another format to use and remember.
+</p>
+                                <p>
+Ant is different. Instead of a model where it is extended with shell-based
+commands, Ant is extended using Java classes. Instead of writing shell commands,
+the configuration files are XML-based, calling out a target tree where various
+tasks get executed. Each task is run by an object that implements a particular
+Task interface.
+</p>
+                                <p>
+Granted, this removes some of the expressive power that is inherent by being
+able to construct a shell command such as
+<code>`find . -name foo -exec rm {}`</code>, but it
+gives you the ability to be cross platform -- to work anywhere and everywhere.
+And hey, if you really need to execute a shell command, Ant has an
+<code>&lt;exec&gt;</code> task that
+allows different commands to be executed based on the OS that it is executing
+on.
+</p>
+                        <h3 class="section">
+      <a name="Documentation"></a>
+      Documentation
+    </h3>
+                        <p>
+You can view the documentation for the current release (Apache Ant 1.6.5)
+<a href="manual/index.html">online</a>
+</p>
+                                <p>
+Comprehensive documentation is included in the source and binary distributions.
+</p>
+                        <h3 class="section">
+      <a name="Get Involved"></a>
+      Get Involved
+    </h3>
+                        <ul>
+<li><a href="http://jakarta.apache.org/getinvolved/getinvolvedindex.html">Get Involved</a></li>
+<li><a href="mail.html">Join Mailing Lists</a></li>
+<li><a href="http://marc.theaimsgroup.com/?l=ant-dev&amp;r=1&amp;w=2">Search the Dev Mailing List</a>
+</li>
+<li><a href="http://marc.theaimsgroup.com/?l=ant-user&amp;r=1&amp;w=2">Search the User Mailing List</a>
+</li>
+</ul>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/legal.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/legal.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/legal.html	(revision 14989)
@@ -0,0 +1,210 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Legal</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Jon S. Stevens">
+  <meta name="email" content="jon@latchkey.com">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                              <span class="sel">Legal</span>
+                              </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Legal</h1>
+            <h3 class="section">
+      <a name="Legal Stuff They Make Us Say"></a>
+      Legal Stuff They Make Us Say
+    </h3>
+                        <p>All material on this website is Copyright © 1999-2004,
+      The Apache Software Foundation.</p>
+                                <p>Sun, Sun Microsystems, Solaris, Java, JavaServer Web
+      Development Kit, and JavaServer Pages are trademarks or
+      registered trademarks of Sun Microsystems, Inc. UNIX is a
+      registered trademark in the United States and other countries,
+      exclusively licensed through X/Open Company, Ltd.  Windows,
+      WindowsNT, and Win32 are registered trademarks of Microsoft
+      Corp. All other product names mentioned herein and throughout
+      the entire web site are trademarks of their respective
+      owners.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/license.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/license.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/license.html	(revision 14989)
@@ -0,0 +1,484 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - License</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="The Apache Software Foundation">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                              <span class="sel">License</span>
+                              </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">License</h1>
+            <h3 class="section">
+      <a name="The Apache Software License Version 2.0"></a>
+      The Apache Software License Version 2.0
+    </h3>
+                        <p>The Apache Software License Version 2.0 applies 
+    to all releases of Ant starting with ant 1.6.1</p>
+                                <pre class="code">/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      &quot;control&quot; means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      &quot;Source&quot; form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      &quot;Object&quot; form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      &quot;Work&quot; shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      &quot;Contribution&quot; shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
+ *
+ *      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same &quot;printed page&quot; as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+ *   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.
+ */
+    </pre>
+                                <p>You can download the original license file <a href="./LICENSE" target="_new">here.</a></p>
+                                <p>The License is accompanied by a NOTICE</p>
+                                <pre class="code">
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache Ant distribution.                      ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   This product includes also software developed by :
+     - the W3C consortium (http://www.w3c.org) ,
+     - the SAX project (http://www.saxproject.org)
+
+   Please read the different LICENSE files present in the root directory of
+   this distribution.
+
+   The names &quot;Ant&quot; and  &quot;Apache Software Foundation&quot;  must not be used to
+   endorse  or promote  products derived  from this  software without prior
+   written permission. For written permission, please contact
+   apache@apache.org.
+</pre>
+                        <h3 class="section">
+      <a name="The Apache Software License, Version 1.1"></a>
+      The Apache Software License, Version 1.1
+    </h3>
+                        <p> The Apache Software License, Version 1.1, applies to all versions of up to ant 1.6.0 included.</p>
+                                <pre class="code">/*
+ * ============================================================================
+ *                   The Apache Software License, Version 1.1
+ * ============================================================================
+ * 
+ *    Copyright (C) 2000-2003 The Apache Software Foundation. All
+ *    rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 
+ * 1. Redistributions of  source code must  retain the above copyright  notice,
+ *    this list of conditions and the following disclaimer.
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution, if any, must
+ *    include  the following  acknowledgment:  &quot;This product includes  software
+ *    developed  by the  Apache Software Foundation  (http://www.apache.org/).&quot;
+ *    Alternately, this  acknowledgment may  appear in the software itself,  if
+ *    and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names &quot;Ant&quot; and  &quot;Apache Software Foundation&quot;  must not be used to
+ *    endorse  or promote  products derived  from this  software without  prior
+ *    written permission. For written permission, please contact
+ *    apache@apache.org.
+ * 
+ * 5. Products  derived from this software may not  be called &quot;Apache&quot;, nor may
+ *    &quot;Apache&quot; appear  in their name,  without prior written permission  of the
+ *    Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ * APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ * ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ * (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ * This software  consists of voluntary contributions made  by many individuals
+ * on behalf of the  Apache Software Foundation.  For more  information  on the 
+ * Apache Software Foundation, please see &lt;http://www.apache.org/&gt;.
+ *
+ */
+</pre>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/mail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/mail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/mail.html	(revision 14989)
@@ -0,0 +1,282 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Mailing Lists</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                              <span class="sel">Mailing Lists</span>
+                              </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Mailing Lists</h1>
+            <h3 class="section">
+      <a name="Mailing Lists"></a>
+      Mailing Lists
+    </h3>
+                        <p>Please read the <a href="http://jakarta.apache.org/site/mail.html">guidelines of
+      the Jakarta Project</a> before subscribing and posting to any of
+      the lists below.  They apply to Ant's lists as well.</p>
+                                <p>The user and dev list are subscriber only lists, this means
+      you have to subscribe before you can post to the list.  Please
+      note that any HTML parts sent to the lists will be removed by our
+      mailing list software - you shouldn't be sending HTML mails
+      anyway.</p>
+                                <p>To subscribe to a mailinglist use the links below. In your first email you will get some
+      information about working with the list manager <a href="http://www.ezmlm.org/">EZMLM</a>.</p>
+                                      <h4 class="subsection">
+        <a name="User List"></a>
+        User List
+      </h4>
+                        <p>
+          <b>High Traffic</b>
+          <a href="mailto:user-subscribe@ant.apache.org">Subscribe</a>
+          <a href="mailto:user-unsubscribe@ant.apache.org">Unsubscribe</a>
+<!--
+          <a href="http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=user@ant.apache.org">Archive</a>
+-->
+          <a href="http://marc.theaimsgroup.com/?l=ant-user&amp;r=1&amp;w=2">Archive</a>
+        </p>
+                                <p>This list is for developers that are using Ant in their own
+        projects to ask questions, share knowledge, and discuss issues
+        related to using Ant as a build tool.</p>
+                                                          <h4 class="subsection">
+        <a name="Developer List"></a>
+        Developer List
+      </h4>
+                        <p>
+          <b>High Traffic</b>
+          <a href="mailto:dev-subscribe@ant.apache.org">Subscribe</a>
+          <a href="mailto:dev-unsubscribe@ant.apache.org">Unsubscribe</a>
+<!--
+          <a href="http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=dev@ant.apache.org">Archive</a>
+-->
+          <a href="http://marc.theaimsgroup.com/?l=ant-dev&amp;r=1&amp;w=2">Archive</a>
+        </p>
+                                <p>This is the list where participating developers of the Ant
+        build tool meet and discuss issues, code changes/additions,
+        etc. Subscribers to this list get notices of each and every
+        code change, build results, testing notices, etc.</p>
+                                                          <h4 class="subsection">
+        <a name="How to unsubscribe your old email address"></a>
+        How to unsubscribe your old email address
+      </h4>
+                        <p>
+        First, find out the particular email adress to which ezmlm is sending.
+        The email headers are visible in Microsoft Outlook via the messages menu
+        "View | Options".
+        <pre>
+        Microsoft Mail Internet Headers Version 2.0
+        ...
+        List-Unsubscribe: &lt;mailto:user-unsubscribe@ant.apache.org&gt;
+        List-Help: &lt;mailto:user-help@ant.apache.org&gt;
+        List-Post: &lt;mailto:user@ant.apache.org&gt;
+        List-Id: "Ant Users List" &lt;user.ant.apache.org&gt;
+        Reply-To: "Ant Users List" &lt;user@ant.apache.org&gt;
+        Delivered-To: mailing list user@ant.apache.org
+        ...
+        Return-Path: user-return-12345-<i>john=host.domain</i>@ant.apache.org
+        ...
+        </pre>
+        The <i>Return-Path</i> header contains the email address which is subscribed. 
+        </p>
+                                <p> To stop subscription for the address john@host.domain , send an email to <pre>dev-unsubscribe-john=host.domain@ant.apache.org</pre>
+          or to  <pre>user-unsubscribe-john=host.domain@ant.apache.org</pre>.
+        </p>
+                                            <h3 class="section">
+      <a name="Archives"></a>
+      Archives
+    </h3>
+                        <p>These lists are archived at</p>
+                                <ul>
+          <li><a href="http://mail-archives.apache.org/eyebrowse/ViewLists">List Index on mail-archives.apache.org</a></li>
+          <li><a href="http://ant.apache.org/mail/">Full mbox archives of all lists</a></li>
+          <li><a href="http://marc.theaimsgroup.com/">Mailing list Archives</a></li>
+          <li><a href="http://news.gmane.org/gmane.comp.jakarta.ant.devel/">Ant Developer List on gmane</a></li>
+          <li><a href="http://news.gmane.org/gmane.comp.jakarta.ant.user/">Ant User List on gmane</a></li>
+          <li><a href="http://www.nabble.com/Ant---Dev-f108.html">Ant Developer List on nabble</a></li>
+          <li><a href="http://www.nabble.com/Ant---Users-f107.html">Ant User List on nabble</a></li>
+        </ul>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CHANGES
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CHANGES	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CHANGES	(revision 14989)
@@ -0,0 +1,28 @@
+TO mod
+
+toc.html  make Ant Tasks link bold
+anttaskslist.html  make Core Takss link bold
+cover.html  front page 
+
+TO clean
+regexs
+<font[^>]+>  	:replace with nowt
+</font>  		:replace with nowt
+ bgcolor[^>]+  	:replace with nowt
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/CoreTasks/makeurl.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/CoreTasks/subant.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/CoreTasks/tempfile.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/CoreTasks/whichresource.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/sysclasspath.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/base_task_classes.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/tutorial-writing-tasks.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/tutorial-HelloWorldWithAnt.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/credits.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/install.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/OptionalTasks/setproxy.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/OptionalTasks/serverdeploy.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/OptionalTasks/ejb.html
+
+to change <body up to next > needs blanking
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/ant.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/ant.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/ant.html	(revision 14989)
@@ -0,0 +1,297 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Ant Task</title>
+</head>
+
+<body>
+
+<h2><a name="ant">Ant</a></h2>
+<h3>Description</h3>
+
+<p>Runs Ant on a supplied buildfile. This can be used to build
+subprojects.  <strong>This task must not be used outside of a
+<code>target</code> if it invokes the same build file it is part
+of.</strong></p>
+
+<p>When the <i>antfile</i> attribute is omitted, the file &quot;build.xml&quot;
+in the supplied directory (<i>dir</i> attribute) is used.</p>
+<p>If no target attribute is supplied, the default target of the new project is
+used.</p>
+<p>By default, all of the properties of the current project will be
+available in the new project.  Alternatively, you can set the
+<i>inheritAll</i> attribute to <code>false</code> and only
+&quot;user&quot; properties (i.e., those passed on the command-line)
+will be passed to the new project.  In either case, the set of
+properties passed to the new project will override the properties that
+are set in the new project (See also the <a
+href="property.html">property task</a>).</p>
+
+<p>You can also set properties in the new project from the old project
+by using nested property tags. These properties are always passed
+to the new project and any project created in that project
+regardless of the setting of <i>inheritAll</i>.  This allows you to
+parameterize your subprojects.  Properties defined on the command line
+cannot be overridden by nested <code>&lt;property&gt;</code> elements.</p>
+
+<p>References to data types can also be passed to the new project, but
+by default they are not.  If you set the inheritrefs attribute to
+true, all references will be copied, but they will not override
+references defined in the new project.</p>
+
+<p>Nested <a href="#reference"><i><code>&lt;reference&gt;</code></i></a> elements
+can also be used to copy references from the calling project to the
+new project, optionally under a different id.  References taken from
+nested elements will override existing references that have been
+defined outside of targets in the new project - but not those defined
+inside of targets.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">antfile</td>
+    <td valign="top">the buildfile to use. Defaults to
+      &quot;build.xml&quot;.  This file is expected to be a filename
+      relative to the dir attribute given.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+         <td valign="top">the directory to use as a basedir for the new Ant project.
+      Defaults to the current project's basedir, unless
+      inheritall has been set to false, in which case it doesn't
+      have a default value.  This will override the basedir
+      setting of the called project.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">the target of the new Ant project that should be executed.
+      Defaults to the new project's default target.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Filename to write the ant output to.  This is
+    relative to the value of the dir attribute if it has been set or
+    to the base directory of the current project otherwise.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritAll</td>
+    <td valign="top">If <code>true</code>, pass all properties to the
+      new Ant project.  Defaults to <code>true</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritRefs</td>
+    <td valign="top">If <code>true</code>, pass all references to the
+      new Ant project.  Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>property</h4>
+<p>See the description of the <a href="property.html">property
+task</a>. <br>
+These properties become equivalent to properties you define on
+the command line. These are special properties and they will always get passed
+down, even through additional <code>&lt;*ant*&gt;</code> tasks with inheritall set to
+false (see above). <br>
+Note that the <code>refid</code> attribute points to a
+reference in the calling project, not in the new one.</p>
+
+<h4><a name="reference">reference</a></h4>
+<p>Used to choose references that shall be copied into the new project,
+optionally changing their id.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">The id of the reference in the calling project.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">torefid</td>
+    <td valign="top">The id of the reference in the new project.</td>
+    <td valign="top" align="center">No, defaults to the value of refid.</td>
+  </tr>
+</table>
+
+<h4>propertyset</h4>
+
+<p>You can specify a set of properties to be copied into the new
+project with <a
+href="../CoreTypes/propertyset.html">propertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>target</h4>
+
+<p>You can specify multiple targets using nested <code>&lt;target&gt;</code> elements
+instead of using the target attribute.  These will be executed as if
+Ant had been invoked with a single target whose dependencies are the
+targets so specified, in the order specified.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the called target.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<p><em>since Ant 1.6.3</em>.</p>
+
+<h3>Basedir of the new project</h3>
+
+<p>The basedir value of the new project is affected by the two
+attributes dir and inheritall, see the following table for
+details:</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>dir attribute</b></td>
+    <td valign="top"><b>inheritAll attribute</b></td>
+    <td valign="top"><b>new project's basedir</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value provided</td>
+    <td valign="top">true</td>
+    <td valign="top">value of dir attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">value provided</td>
+    <td valign="top">false</td>
+    <td valign="top">value of dir attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">omitted</td>
+    <td valign="top">true</td>
+    <td valign="top">basedir of calling project (the one whose build
+        file contains the <code>&lt;ant&gt;</code> task).</td>
+  </tr>
+  <tr>
+    <td valign="top">omitted</td>
+    <td valign="top">false</td>
+    <td valign="top">basedir attribute of the <code>&lt;project&gt;</code> element
+        of the new project</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;ant antfile=&quot;subproject/subbuild.xml&quot; target=&quot;compile&quot;/&gt;
+
+&lt;ant dir=&quot;subproject&quot;/&gt;
+
+&lt;ant antfile=&quot;subproject/property_based_subbuild.xml&quot;&gt;
+  &lt;property name=&quot;param1&quot; value=&quot;version 1.x&quot;/&gt;
+  &lt;property file=&quot;config/subproject/default.properties&quot;/&gt;
+&lt;/ant&gt;
+
+&lt;ant inheritAll=&quot;false&quot; antfile=&quot;subproject/subbuild.xml&quot;&gt;
+  &lt;property name=&quot;output.type&quot; value=&quot;html&quot;/&gt;
+&lt;/ant&gt;
+</pre></blockquote>
+
+<p>These lines invoke the same build file:</p>
+<blockquote><pre>
+&lt;ant antfile=&quot;sub1/sub2/build.xml&quot; /&gt;
+&lt;ant antfile=&quot;sub2/build.xml&quot; dir=&quot;sub1&quot; /&gt;
+&lt;ant antfile=&quot;build.xml&quot; dir=&quot;sub1/sub2&quot; /&gt;
+</pre></blockquote>
+
+<p>The build file of the calling project defines some
+<code>&lt;path&gt;</code> elements like this:</p>
+
+<blockquote><pre>
+&lt;path id="path1"&gt;
+    ...
+&lt;/path&gt;
+&lt;path id="path2"&gt;
+    ...
+&lt;/path&gt;
+</pre></blockquote>
+
+<p>and the called build file (<code>subbuild.xml</code>) also defines
+a <code>&lt;path&gt;</code> with the id <code>path1</code>, but
+<code>path2</code> is not defined:</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;true&quot;/&gt;
+</pre></blockquote>
+
+<p>will not override <code>subbuild</code>'s definition of
+<code>path1</code>, but make the parent's definition of
+<code>path2</code> available in the subbuild.</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot;/&gt;
+</pre></blockquote>
+
+<p>as well as</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;/&gt;
+</pre></blockquote>
+
+<p>will neither override <code>path1</code> nor copy
+<code>path2</code>.</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;&gt;
+  &lt;reference refid=&quot;path1&quot;/&gt;
+&lt;/ant&gt;
+</pre></blockquote>
+
+<p>will override <code>subbuild</code>'s definition of
+<code>path1</code>.</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;&gt;
+  &lt;reference refid=&quot;path1&quot; torefid=&quot;path2&quot;/&gt;
+&lt;/ant&gt;
+</pre></blockquote>
+
+<p>will copy the parent's definition of <code>path1</code> into the
+new project using the id <code>path2</code>.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/antcall.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/antcall.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/antcall.html	(revision 14989)
@@ -0,0 +1,191 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>AntCall Task</title>
+</head>
+
+<body>
+
+<h2><a name="antcall">AntCall</a></h2>
+<h3>Description</h3>
+
+<p>Call another target within the same buildfile optionally
+specifying some properties (params in this context).  <strong>This
+task must not be used outside of a <code>target</code>.</strong></p>
+
+<p>By default, all of the properties of the current project will be
+available in the new project.   Alternatively, you can
+set the <i>inheritAll</i> attribute to <code>false</code> and only
+&quot;user&quot; properties (i.e., those passed on the command-line)
+will be passed to the new project.  In either case, the set of
+properties passed to the new project will override the properties that
+are set in the new project (See also the <a href="property.html">property task</a>).</p>
+<p>You can also set properties in the new project from the old project
+by using nested param tags. These properties are always passed
+to the new project and any project created in that project
+regardless of the setting of <i>inheritAll</i>.  This allows you to
+parameterize your subprojects.  Properties defined on the command line
+can not be overridden by nested <code>&lt;param&gt;</code> elements.</p>
+
+<p>Nested <a href="#reference"><i><code>&lt;reference&gt</code>;</i></a> elements can
+be used to copy references from the calling project to the new
+project, optionally under a different id.  References taken from
+nested elements will override existing references that have been
+defined outside of targets in the new project - but not those defined
+inside of targets.</p>
+
+<p>
+When a target is invoked by antcall, all of its dependent targets will
+also be called within the context of any new parameters. For example. if
+the target &quot;doSomethingElse&quot; depended on the target &quot;init&quot;, then the
+<i>antcall</i> of &quot;doSomethingElse&quot; will call &quot;init&quot; during the call.
+Of course, any properties defined in the antcall task or inherited from the calling target
+will be fixed and not overridable in the init task--or indeed in the &quot;doSomethingElse&quot; task.
+</p>
+
+<p>If the build file changes after you've started the build, the
+behavior of this task is undefined.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The target to execute.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritAll</td>
+    <td valign="top">If <code>true</code>, pass all properties to the new Ant
+    project.  Defaults to <code>true</code>.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritRefs</td>
+    <td valign="top">If <code>true</code>, pass all references to the
+      new Ant project.  Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Note on <code>inheritRefs</code></h3>
+
+<p><code>&lt;antcall&gt;</code> will not override existing references,
+even if you set <code>inheritRefs</code> to true.  As the called build
+files is the same build file as the calling one, this means it will
+not override any reference set via an <code>id</code> attribute at
+all.  The only references that can be inherited by the child project
+are those defined by nested <code>&lt;reference&gt;</code> elements or
+references defined by tasks directly (not using the <code>id</code>
+attribute).</p>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>param</h4>
+<p>Specifies the properties to set before running the specified target. See <a
+href="property.html">property</a> for usage guidelines.<br>
+These properties become equivalent to properties you define on
+the command line. These are special properties and they will always get passed
+down, even through additional <code>&lt;*ant*&gt;</code> tasks with inheritall set to
+false (see above).
+</p>
+
+<h4><a name="reference">reference</a></h4>
+<p>Used to choose references that shall be copied into the new project,
+optionally changing their id.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">The id of the reference in the calling project.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">torefid</td>
+    <td valign="top">The id of the reference in the new project.</td>
+    <td valign="top" align="center">No, defaults to the value of refid.</td>
+  </tr>
+</table>
+
+<h4>propertyset</h4>
+
+<p>You can specify a set of properties to be copied into the new
+project with <a
+href="../CoreTypes/propertyset.html">propertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>target</h4>
+
+<p>You can specify multiple targets using nested <code>&lt;target&gt;</code> elements
+instead of using the target attribute.  These will be executed as if
+Ant had been invoked with a single target whose dependencies are the
+targets so specified, in the order specified.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the called target.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<p><em>since Ant 1.6.3</em>.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;target name=&quot;default&quot;&gt;
+  &lt;antcall target=&quot;doSomethingElse&quot;&gt;
+    &lt;param name=&quot;param1&quot; value=&quot;value&quot;/&gt;
+  &lt;/antcall&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;doSomethingElse&quot;&gt;
+  &lt;echo message=&quot;param1=${param1}&quot;/&gt;
+&lt;/target&gt;
+</pre></blockquote>
+<p>Will run the target 'doSomethingElse' and echo 'param1=value'.</p>
+
+<blockquote><pre>
+&lt;antcall ... &gt;
+  &lt;reference refid=&quot;path1&quot; torefid=&quot;path2&quot;/&gt;
+&lt;/antcall&gt;
+</pre></blockquote>
+
+<p>will copy the parent's definition of <code>path1</code> into the
+new project using the id <code>path2</code>.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/antstructure.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/antstructure.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/antstructure.html	(revision 14989)
@@ -0,0 +1,100 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>AntStructure Task</title>
+</head>
+
+<body>
+
+<h2><a name="antstructure">AntStructure</a></h2>
+<h3>Description</h3> 
+
+<p>Generates an DTD for Ant buildfiles which contains information
+about all tasks currently known to Ant.</p>
+
+<p>Actually the DTD will not be a real DTD for buildfiles since Ant's
+usage of XML cannot be captured with a DTD.  Several elements in Ant
+can have different attribute lists depending on the element that
+contains them.  &quot;fail&quot; for example can be <a
+href="fail.html">the task</a> or the nested child element of the <a
+href="../OptionalTasks/sound.html">sound</a> task.  Don't consider the
+generated DTD something to rely upon.</p>
+
+<p>Also note that the DTD generated by this task is incomplete, you can
+always add XML entities using <a
+href="taskdef.html"><code>&lt;taskdef&gt;</code></a> or <a
+href="typedef.html"><code>&lt;typedef&gt;</code></a>. See <a
+href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html"
+target="_top">here</a> for a way to get around this problem.</p>
+<p>This task doesn't know about required attributes, all will be
+listed as <code>#IMPLIED</code>.</p>
+
+<p><em>Since Ant 1.7</em> custom structure printers can be used
+instead of the one that emits a DTD.  In order to plug in your own
+structure, you have to implement the interface
+<code>org.apache.tools.ant.taskdefs.AntStructure.StructurePrinter</code>
+and <code>&lt;typedef&gt; your class and use the new type as a nested
+element of this task - see the example below.</code>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">file to write the DTD to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;antstructure output=&quot;project.dtd&quot; /&gt;
+</pre></blockquote>
+
+<p><b>Emitting your own structure instead of a DTD</b></p>
+
+<p>First you need to implement the interface</p>
+
+<pre>
+package org.example;
+import org.apache.tools.ant.taskdefs.AntStructure;
+public class MyPrinter implements AntStructure.StructurePrinter {
+    ...
+}
+</pre>
+
+<p>and then use it via typedef</p>
+
+<pre>
+  &lt;typedef name="myprinter" classname="org.example.MyPrinter" /&gt;
+  &lt;antstructure output="project.my"&gt;
+    &lt;myprinter /&gt;
+  &lt;/antstructure&gt;
+</pre>
+
+<p>Your own StructurePrinter can accept attributes and nested elements
+just like any other Ant type or task.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/apply.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/apply.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/apply.html	(revision 14989)
@@ -0,0 +1,450 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Apply Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="apply">Apply/<i>ExecOn</i></a></h2>
+<p><i>The name <code>execon</code> is deprecated and only kept for backwards
+compatibility.</i></p>
+<h3>Description</h3>
+<p>Executes a system command. When the <i>os</i> attribute is specified, then
+the command is only executed when Ant is run on one of the specified operating
+systems.</p>
+
+<p>The files and/or directories of a number of <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+&ndash; including but not restricted to
+ <a href="../CoreTypes/fileset.html">FileSet</a>s,
+ <a href="../CoreTypes/dirset.html">DirSet</a>s
+ (<em>since&nbsp;Ant&nbsp;1.6</em>) or
+ <a href="../CoreTypes/filelist.html">FileList</a>s
+ (<em>since&nbsp;Ant&nbsp;1.6</em>)
+&ndash;
+ are passed as arguments to the system command.</p>
+<p>If you specify a nested <a href="../CoreTypes/mapper.html">mapper</a>,
+the timestamp of each source file is compared to the timestamp of a
+target file which is defined by the nested mapper element and searched
+for in the given <i>dest</i>, if specified.</p>
+<p>At least one fileset or filelist is required,
+and you must not specify more than one mapper.</p>
+
+<p>Note that you cannot interact with the forked program, the only way
+to send input to it is via the input and inputstring attributes.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">the command to execute without any command line
+      arguments.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the directory where the command is expected to place
+    target files when it is executed. This attribute is valid only when used
+    in conjunction with a nested mapper; if omitted, the target filenames
+    returned by the mapper will be interpreted as absolute paths.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">spawn</td>
+    <td valign="top">whether or not you want the commands to be spawned.<br>
+    If you spawn a command, its output will not be logged by ant.<br>
+    The input, output, error, and result property settings are not active when spawning a process.<br>
+    <em>since&nbsp;Ant&nbsp;1.6</em>
+    </td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory in which the command should be executed.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">relative</td>
+    <td valign="top">whether the filenames should be passed on the
+      command line as relative pathnames (relative to the base directory
+      of the corresponding fileset/list for source files or the
+      <i>dest</i> attribute for target files).</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">forwardslash</td>
+    <td valign="top">whether the file names should be passed
+      with forward slashes even if the operating system requires other
+      file separator. The option is ignored if the system file separator
+      is a forward slash.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">os</td>
+    <td valign="top">list of Operating Systems on which the command may be
+      executed.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">osfamily</td>
+    <td valign="top">OS family as used in the &lt;os&gt; condition.
+    <em>since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">the file to which the output of the command
+    should be redirected.  If the error stream is not also redirected
+    to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the
+    command should be redirected.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error
+    output in Ant's log and you are redirecting output to a
+    file/property. The error output will not be included in the output
+    file/property. If you redirect error with the &quot;error&quot; or
+    &quot;errorProperty&quot; attributes, this will have no effect.
+    <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">whether output should be appended to or overwrite
+      an existing file.  If you set parallel to false, you will probably
+      want to set this one to true.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">the name of a property in which the output of the
+    command should be stored.  Unless the error stream is redirected
+    to a separate file or stream, this property will include the error
+    output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the
+      command should be stored.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard
+    input is taken. This attribute is mutually exclusive with the
+    inputstring attribute.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+    executed command. This attribute is mutually exclusive with the
+    input attribute.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resultproperty</td>
+    <td valign="top">the name of a property in which the return code
+      of the command should be stored. Only of interest if
+      failonerror=false. If you set parallel to false, only the result
+      of the first execution will be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+      specified time (given in milliseconds).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failifexecutionfails</td>
+    <td valign="top">Stop the build if we can't start the program.
+      Defaults to true. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">skipemptyfilesets</td>
+    <td valign="top">Don't run the command, if no source files have
+      been found or are newer than their corresponding target
+      files.  Despite its name, this attribute applies to filelists as
+      well.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">Run the command only once, appending all files as
+      arguments. If false, command will be executed once for every file.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the names of plain
+      files will be sent to the command. If set to <i>dir</i>, only
+      the names of directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate old environment when new environment
+      variables are specified.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">vmlauncher</td>
+    <td valign="top">Run command using the Java VM's execution facilities
+        where available. If set to false the underlying OS's shell,
+        either directly or through the antRun scripts, will be used.
+        Under some operating systems, this gives access to facilities
+        not normally available through the VM including, under Windows,
+        being able to execute scripts, rather than their associated
+        interpreter.  If you want to specify the name of the
+        executable as a relative path to the directory given by the
+        dir attribute, it may become necessary to set vmlauncher to
+        false as well.</td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">resolveExecutable</td>
+    <td valign="top">When this attribute is true, the name of the
+    executable if resolved firstly against the project basedir and if
+    that does not exist, against the execution directory if
+    specified. On Unix systems, if you only want to allow execution of
+    commands in the user's path, set this to false.
+    <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited. <em>Since&nbsp;Ant&nbsp;1.6.</em></td>
+    <td align="center" valign="top">No, unlimited by default</td>
+  </tr>
+  <tr>
+    <td valign="top">addsourcefile</td>
+    <td valign="top">Whether source file names should be added to the
+      command automatically. <em>Since&nbsp;Ant&nbsp;1.6.</em></td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      <em>Since&nbsp;Ant&nbsp;1.6.</em></td>
+    <td align="center" valign="top">No, default <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">ignoremissing</td>
+    <td valign="top">Whether to ignore nonexistent files specified
+      via filelists.  <em>Since&nbsp;Ant&nbsp;1.6.2.</em></td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">Whether to bypass timestamp comparisons
+      for target files.  <em>Since&nbsp;Ant&nbsp;1.6.3.</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+<p>You can use any number of nested <code>&lt;fileset&gt;</code>
+elements to define the files for this task and refer to
+<code>&lt;fileset&gt;</code>s defined elsewhere.</p>
+<h4>filelist</h4>
+<p><em>Since&nbsp;Ant&nbsp;1.6</em></p>
+<p>You can use any number of nested <code>&lt;filelist&gt;</code>
+elements to define the files for this task and refer to
+<code>&lt;filelist&gt;</code>s defined elsewhere.</p>
+<h4>dirset</h4>
+<p><em>Since&nbsp;Ant&nbsp;1.6</em></p>
+<p>You can use any number of nested <code>&lt;dirset&gt;</code>
+elements to define the directories for this task and refer to
+<code>&lt;dirset&gt;</code>s defined elsewhere.</p>
+
+<h4>Any other <a href="../CoreTypes/resources.html#collection">Resource
+Collection</a></h4>
+<p><em>since Ant 1.7</em></p>
+<p>You can use any number of nested resource collections.</p>
+
+<h4>mapper</h4>
+<p>A single <code>&lt;mapper&gt;</code> specifies the target files relative
+to the <code>dest</code> attribute for dependency checking. If the
+<code>dest</code> attribute is specified it will be used as a base directory
+for resolving relative pathnames returned by the mapper. At least one
+<code>&lt;fileset&gt;</code> or <code>&lt;filelist&gt;</code> is required.</p>
+<h4>arg</h4>
+<p>Command line arguments should be specified as nested
+<code>&lt;arg&gt;</code> elements. See <a
+href="../using.html#arg">Command line arguments</a>.</p>
+<h4>srcfile</h4>
+<p>By default the file names of the source files will be added to the
+end of the command line (unless you set addsourcefile to
+<code>false</code>). If you need to place it somewhere different,
+use a nested <code>&lt;srcfile&gt;</code> element between your
+<code>&lt;arg&gt;</code> elements to mark the insertion point.</p>
+<h4>targetfile</h4>
+<p><code>&lt;targetfile&gt;</code> is similar to
+<code>&lt;srcfile&gt;</code> and marks the position of the target
+filename on the command line. If omitted, the target filenames will
+not be added to the command line at all. This element can only be
+specified if you also define a nested mapper.</p>
+<h4>env</h4>
+<p>It is possible to specify environment variables to pass to the
+system command via nested <code>&lt;env&gt;</code> elements. See the
+description in the section about <a href="exec.html#env">exec</a></p>
+<h4>redirector</h4>
+<i><b>Since&nbsp;Ant&nbsp;1.6.2</b></i>
+<p>A nested <a href="../CoreTypes/redirector.html">I/O Redirector</a>
+can be specified.  &lt;apply&gt;'s behavior is like that of
+<a href="exec.html#redirector">exec</a> with regard to
+redirectors, with the exception that, in non-<i>parallel</i> mode,
+file mapping will take place with each iteration.  This grants the
+user the capacity to receive input from, and send output to, different
+files for each sourcefile.
+</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;apply executable=&quot;ls&quot;&gt;
+  &lt;arg value=&quot;-l&quot;/&gt;
+  &lt;fileset dir=&quot;/tmp&quot;&gt;
+    &lt;patternset&gt;
+      &lt;exclude name=&quot;**/*.txt&quot;/&gt;
+    &lt;/patternset&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.files&quot;/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+<p>invokes <code>ls -l</code>, adding the absolute filenames of all
+files below <code>/tmp</code> not ending in <code>.txt</code> and all
+files of the FileSet with <code>id</code> <code>other.files</code> to
+the command line.</p>
+<blockquote><pre>
+&lt;apply executable=&quot;somecommand&quot; parallel=&quot;false&quot;&gt;
+  &lt;arg value=&quot;arg1&quot;/&gt;
+  &lt;srcfile/&gt;
+  &lt;arg value=&quot;arg2&quot;/&gt;
+  &lt;fileset dir=&quot;/tmp&quot;/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+<p>invokes <code>somecommand arg1 SOURCEFILENAME arg2</code> for each
+file in <code>/tmp</code> replacing SOURCEFILENAME with the absolute
+filename of each file in turn. If <code>parallel</code> had been set
+to true, SOURCEFILENAME would be replaced with the absolute filenames
+of all files separated by spaces.</p>
+<blockquote><pre>
+&lt;apply executable=&quot;cc&quot; dest=&quot;src/C&quot; parallel=&quot;false&quot;&gt;
+  &lt;arg value=&quot;-c&quot;/&gt;
+  &lt;arg value=&quot;-o&quot;/&gt;
+  &lt;targetfile/&gt;
+  &lt;srcfile/&gt;
+  &lt;fileset dir=&quot;src/C&quot; includes=&quot;*.c&quot;/&gt;
+  &lt;mapper type=&quot;glob&quot; from=&quot;*.c&quot; to=&quot;*.o&quot;/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+<p>invokes <code>cc -c -o TARGETFILE SOURCEFILE</code> for each
+<code>.c</code> file that is newer than the corresponding
+<code>.o</code>, replacing TARGETFILE with the absolute filename of
+the <code>.o</code> and SOURCEFILE with the absolute name of the
+<code>.c</code> file.</p>
+<blockquote><pre>
+&lt;mapper id=&quot;out&quot; type=&quot;glob&quot;
+           from=&quot;src${file.separator}*.file&quot;
+           to=&quot;dest${file.separator}*.out&quot;/&gt;
+
+&lt;apply executable=&quot;processfile&quot; dest=&quot;dest&quot;&gt;
+  &lt;fileset dir=&quot;src&quot; includes=&quot;*.file&quot;/&gt;
+  &lt;mapper refid=&quot;out&quot;/&gt;
+  &lt;redirector&gt;
+    &lt;outputmapper refid=&quot;out&quot;/&gt;
+  &lt;/redirector&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+Applies the fictitious &quot;processfile&quot; executable to all
+files matching <code>*.file</code> in the <code>src</code> directory.
+The <code>out</code> <code>&lt;mapper&gt;</code> has been set up to map
+<code>*.file</code> to <code>*.out</code>, then this <code>&lt;mapper&gt;</code>
+is used to specify <code>targetfile</code>s for this &lt;apply&gt;
+task.  A reference to <code>out</code> is then used as an
+<code>&lt;outputmapper&gt;</code> nested in a <code>&lt;redirector&gt;</code>, which in turn is
+nested beneath this <code>&lt;apply&gt;</code> instance.  This allows us to perform
+dependency checking against output files--the target files in this case.
+<blockquote><pre>
+&lt;apply executable="ls" parallel="true"
+       force="true" dest="${basedir}" append="true" type="both"&gt;
+  &lt;path&gt;
+    &lt;pathelement path="${env.PATH}"/&gt;
+  &lt;/path&gt;
+  &lt;identitymapper/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+Applies the "ls" executable to all directories in the PATH, effectively
+listing all executables that are available on the PATH.
+
+<blockquote><pre>
+&lt;apply executable="jsmin" addsourcefile="false"&gt;
+    &lt;!-- Collect the JS-files --&gt;
+    &lt;fileset dir="src" includes="*.js"/&gt;
+    &lt;redirector&gt;
+        &lt;!-- redirect STDIN; fileset collects relative to its dir, but we need --&gt;
+        &lt;!-- relative to basedir --&gt;
+        &lt;inputmapper type="glob" from="*" to="src/*"/&gt;
+        &lt;!-- redirect STDOUT to file in dest-dir --&gt;
+        &lt;outputmapper id="out" type="glob" from="*.js" to="dest/*.js"/&gt;
+    &lt;/redirector&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+Conversion of the command <code>jsmin &lt; src/a.js &gt; dest/a.js</code> but for
+all files in the src-directory. Because the filename itself should not be passed
+to the <code>jsmin</code> program, the <code>addsourcefile</code> is set to
+<code>false</code>.
+
+
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/apt.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/apt.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/apt.html	(revision 14989)
@@ -0,0 +1,183 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html lang="en-us"><head>
+<meta http-equiv="Content-Language" content="en-us"><link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Apt Task</title></head>
+
+<body>
+
+<h2><a name="Apt">Apt</a></h2>
+<h3>Description</h3>
+<p>Runs the annotation processor tool (apt), and then optionally compiles
+   the original code, and any generated source code. This task requires Java 1.5.
+   It may work on later versions, but this cannot be confirmed until those
+   versions ship. Be advised that the Apt tool does appear to be an unstable
+   part of the JDK framework, so may change radically in future versions. 
+   In particular it is likely to be obsolete in JDK 6, which can run annotation
+   processors as part of javac.
+   If the &lt;apt&gt; task does break when upgrading JVM, please
+   check to see if there is a more recent version of Ant that tracks
+   any changes.</p>
+
+
+<p>This task inherits from the <a href="javac.html">Javac Task</a>, and thus
+   supports nearly all of the same attributes, and subelements.  
+   There is one special case, the <tt>fork</tt> attribute, which is present
+   but which can only be set to <tt>true</tt>. That is, apt only works as
+   a forked process.
+ </p>
+ <p>
+   In addition, it supports
+   the following addition items:</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody><tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">compile</td>
+    <td valign="top">After running the Apt, should the code be compiled.  (see the
+                     <code>-nocompile</code> flag on the Apt executable)</td>
+    <td align="center" valign="top">No, defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">factory</td>
+    <td valign="top">The fully qualified classname of the AnnotationProcessFactory to be used
+                     to construct annotation processors.  This represents the <code>-factory</code>
+                     command line flag of the Apt executable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">factorypathref</td>
+    <td valign="top">The reference id of the path used to find the classes needed by the
+                     AnnotationProcessorFactory (and the location of the factory itself).
+                     This represents the <code>-factorypath</code> flag on the Apt executable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">preprocessdir</td>
+    <td valign="top">The directory used for preprocessing.  This is the directory where the
+                     generated source code will be place.  This represents the <code>-s</code> flag on
+                     the Apt executable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</tbody></table>
+
+<h3>Parameters specified as nested elements</h3>
+
+
+<h4>factorypath</h4>
+
+<p>You can specify the path used to find the classes needed by the AnnotationProcessorFactory
+   at runtime, using this element.  It is represents as a generic path like structure.  This
+   represents the <code>-factorypath</code> flag on the Apt executable.</p>
+
+
+<h4>option</h4>
+
+<p>Used to represent a generic option to pass to Apt.  This represents the <code>-A</code> flag on the
+   Apt executable.  You can specify zero or more <code>&lt;option&gt;</code> elements.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tbody><tr>
+  <td valign="top" width="12%"><b>Attribute</b></td>
+  <td valign="top" width="78%"><b>Description</b></td>
+  <td valign="top" width="10%"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td align="center">The name of the option</td>
+    <td align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center">The value to set the option to</td>
+    <td align="center">Yes.</td>
+  </tr>
+</tbody></table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;apt srcdir="${src}"
+     destdir="${build}"
+     classpath="xyz.jar"
+     debug="on"
+     compile="true"
+     factory="com.mycom.MyAnnotationProcessorFactory"
+     factorypathref="my.factorypath.id"
+     preprocessdir="${preprocess.dir}"&gt;
+&lt;/apt&gt;
+</pre></blockquote>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores
+the <code>.class</code> files in the <code>${build}</code> directory.
+The classpath used includes <code>xyz.jar</code>, and compiling with
+debug information is on.  It also forces the generated source code to
+be compiled.  The generated source code will be placed in
+<code>${preprocess.dir}</code> directory, using the class
+<code>com.mycom.MyAnnotationProcessorFactory</code> to supply
+AnnotationProcessor instances.</p>
+
+
+<h3>Notes</h3>
+
+<p>
+The inherited "fork" attribute is set to true by default; please do not change it.
+</p>
+
+<p>
+The inherited "compiler" attribute is ignored, as it is forced to use the Apt compiler
+</p>
+
+<p>Using the Apt compiler with the "compile" option set to "true"
+   forces you to use Sun's Apt compiler, which will use the JDK's Javac compiler.
+   If you wish to use another compiler, you will first need run the Apt processor
+   with the "compile" flag set to "false", and then use a
+   <code>&lt;javac&gt;</code> task to compile first your original source code, and then the
+   generated source code:</p>
+
+<blockquote><pre>
+&lt;apt srcdir="${src}"
+     destdir="${build}"
+     classpath="xyz.jar"
+     debug="true"
+     compile="false"
+     factory="com.mycom.MyAnnotationProcessorFactory"
+     factorypathref="my.factorypath.id"
+     preprocessdir="${preprocess.dir}"&gt;
+&lt;/apt&gt;
+
+&lt;javac srcdir="${src}"
+       destdir="${build}"
+       classpath="xyz.jar"
+       debug="on"/&gt;
+
+&lt;javac srcdir="${preprocess.dir}"
+       destdir="${build}"
+       classpath="xyz.jar"
+       debug="true"/&gt;
+</pre></blockquote>
+
+This may involve more build file coding, but the speedup gained from switching
+to jikes may justify the effort.
+<p>
+</p>
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/available.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/available.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/available.html	(revision 14989)
@@ -0,0 +1,160 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Available Task</title>
+</head>
+
+<body>
+
+<h2><a name="available">Available</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a resource is available at runtime. This resource can be a
+file, a directory, a class in the classpath, or a JVM system resource.</p>
+<p>If the resource is present, the property value is set to true by
+default; otherwise, the property is not set. You can set the value to
+something other than the default by specifying the <code>value</code> attribute.</p>
+<p>Normally, this task is used to set properties that are useful to avoid target
+execution depending on system parameters.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to set the property to. Defaults to &quot;true&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">The class to look for in the classpath.</td>
+    <td valign="middle" align="center" rowspan="3">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to look for.</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">The resource to look for in the JVM.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use when looking up <code>classname</code> or <code>resource</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filepath</td>
+    <td valign="top">The path to use when looking up <code>file</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">The type of <code>file</code> to look for, either a directory (<code>type=&quot;dir&quot;</code>) or a file
+      (<code>type=&quot;file&quot;</code>). If not set, the property will be set if the name specified in the <code>file</code>
+      attribute exists as either a file or a directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoresystemclasses</td>
+    <td valign="top">Ignore Ant's runtime classes, using only the specified
+      classpath.  Only affects the "classname" attribute.  Defaults to &quot;false&quot;</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">searchparents</td>
+    <td valign="top">This contains the behaviour of the "file" type.
+      If true, the available task will, when
+      searching for a file, search not only the directories specified but
+      will also search the parent directories of those
+      specified.
+      If false, only the directories specified will be searched.
+      Defaults to "false".
+      <em>Since Ant 1.7</em>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p><code>Available</code>'s <code>classpath</code> attribute is a <a
+href="../using.html#path">path-like structure</a> and can also be set via a nested
+<code>&lt;classpath&gt;</code> element.</p>
+<h4>filepath</h4>
+<p><code>Available</code>'s <code>filepath</code> attribute is a <a
+href="../using.html#path">path-like structure</a> and can also be set via a nested
+<code>&lt;filepath&gt;</code> element.</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;
+</pre></blockquote>
+<p>sets the <code>Myclass.present</code> property to the value &quot;true&quot;
+if the class <code>org.whatever.Myclass</code> is found in Ant's classpath.</p>
+<blockquote><pre>
+&lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
+&lt;available file=&quot;${jaxp.jar}&quot; property=&quot;jaxp.jar.present&quot;/&gt;
+</pre></blockquote>
+<p>sets the <code>jaxp.jar.present</code> property to the value &quot;true&quot;
+if the file <code>./lib/jaxp11/jaxp.jar</code> is found.</p>
+<blockquote><pre>
+&lt;available file=&quot;/usr/local/lib&quot; type=&quot;dir&quot;
+           property=&quot;local.lib.present&quot;/&gt;
+</pre></blockquote>
+<p>sets the <code>local.lib.present</code> property to the value &quot;true&quot;
+if the directory <code>/usr/local/lib</code> is found.</p>
+<blockquote><pre>
+...in project ...
+&lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
+&lt;path id=&quot;jaxp&quot; location=&quot;${jaxp.jar}&quot;/&gt;
+...in target ...
+&lt;available classname=&quot;javax.xml.transform.Transformer&quot;
+           classpathref=&quot;jaxp&quot; property=&quot;jaxp11.present&quot;/&gt;
+</pre></blockquote>
+<p>sets the <code>jaxp11.present</code> property to the value &quot;true&quot;
+if the class <code>javax.xml.transform.Transformer</code> is found in the classpath referenced by <code>jaxp</code> (in this case, <code>./lib/jaxp11/jaxp.jar</code>).
+</p>
+<blockquote><pre>
+&lt;available property=&quot;have.extras&quot; resource=&quot;extratasks.properties&quot;&gt;
+  &lt;classpath&gt;
+    &lt;pathelement location=&quot;/usr/local/ant/extra.jar&quot; /&gt;
+&nbsp;&nbsp;&lt;/classpath&gt;
+&lt;/available&gt;
+</pre></blockquote>
+<p>sets the <code>have.extras</code> property to the value &quot;true&quot;
+if the resource-file <code>extratasks.properties</code> is found.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/basename.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/basename.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/basename.html	(revision 14989)
@@ -0,0 +1,92 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Basename Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Basename</a></h2>
+<h3>Description</h3>
+<p>
+Task to determine the basename of a specified file, optionally minus a
+specified suffix.
+</p>
+<p>
+When this task executes, it will set the specified property to the
+value of the last path element of the specified file. If <code>file</code> is a
+directory, the basename will be the last directory element. If
+<code>file</code> is a full-path, relative-path, or simple filename,
+the basename will be the simple file name, without any directory elements.
+</p>
+<p> 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The path to take the basename of.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">The suffix to remove from the resulting basename
+      (specified either with or without the &quot;<code>.</code>&quot;).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;basename property=&quot;jar.filename&quot; file=&quot;${lib.jarfile}&quot;/&gt;
+</pre></blockquote>
+will set <code>jar.filename</code> to
+<code>myjar.jar</code>, if <code>lib.jarfile</code> is defined as either a
+full-path filename (eg., <code>/usr/local/lib/myjar.jar</code>),
+a relative-path filename (eg., <code>lib/myjar.jar</code>),
+or a simple filename (eg., <code>myjar.jar</code>).
+<blockquote><pre>
+&lt;basename property=&quot;cmdname&quot; file=&quot;D:/usr/local/foo.exe&quot;
+          suffix=&quot;.exe&quot;/&gt;
+</pre></blockquote>
+will set <code>cmdname</code> to <code>foo</code>.
+<blockquote><pre>
+&lt;property environment=&quot;env&quot;/&gt;
+&lt;basename property=&quot;temp.dirname&quot; file=&quot;${env.TEMP}&quot;/&gt;
+</pre></blockquote>
+
+will set <code>temp.dirname</code> to the last directory element of
+the path defined for the <code>TEMP</code> environment variable.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/buildnumber.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/buildnumber.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/buildnumber.html	(revision 14989)
@@ -0,0 +1,74 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>BuildNumber Task</title>
+</head>
+
+<body>
+
+<h2><a name="buildnumber">BuildNumber</a></h2>
+<h3>Description</h3>
+<p>This is a basic task that can be used to track build numbers.</p>
+<p>It will first attempt to read a build number from a file (by default,
+<code>build.number</code> in the current directory), then
+set the property <code>build.number</code> to the value that was read in
+(or to <code>0</code>, if no such value). It will then increment the
+number by one and write it back out to the file.
+(See the
+<a href="../OptionalTasks/propertyfile.html">PropertyFile</a> task
+if you need finer control over things such as the property name or
+the number format.)
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to read and write the build number from/to.</td>
+    <td align="center" valign="top">No; defaults to &quot;build.number&quot;</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;buildnumber/&gt;
+</pre></blockquote>
+
+<p>Read, increment, and write a build number to the default file,
+<code>build.number</code>.</p>
+
+<blockquote><pre>
+&lt;buildnumber file=&quot;mybuild.number&quot;/&gt;
+</pre></blockquote>
+
+<p>Read, increment, and write a build number to the file
+<code>mybuild.number</code>.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/changelog.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/changelog.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/changelog.html	(revision 14989)
@@ -0,0 +1,244 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ChangeLog Task</title>
+</head>
+
+<body>
+
+<h2><a name="changelog">CvsChangeLog</a></h2>
+<h3>Description</h3>
+<p>Generates an XML-formatted report file of the change logs recorded in a
+<a href="http://www.nongnu.org/cvs/" target="_top">CVS</a> repository. </p>
+<p><b>Important:</b> This task needs "cvs" on the path. If it isn't, you will get
+an error (such as error 2 on windows). If <code>&lt;cvs&gt;</code> doesn't work, try to execute cvs.exe
+from the command line in the target directory in which you are working.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td colspan="3">Attributes from parent Cvs task which are meaningful here<br>
+    Since ant 1.6.1</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the <code>CVSROOT</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the <code>CVS_RSH</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port 2401.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file <code>~/.cvspass</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if the command exits with a
+      return code other than <code>0</code>. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tag</td>
+    <td valign="top">query the changelog for a specific branch.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td colspan="3">Specific attributes</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory from which to run the CVS <em>log</em>
+     command.</td>
+    <td align="center" valign="top">No; defaults to ${basedir}.</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file in which to write the change log report.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">usersfile</td>
+    <td valign="top">Property file that contains name-value pairs mapping
+     user IDs and names that should be used in the report in place of
+     the user ID.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">daysinpast</td>
+    <td valign="top">Sets the number of days into the past for which the
+     change log information should be retrieved.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">start</td>
+    <td valign="top">The earliest date from which change logs are to be
+     included in the report.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">end</td>
+    <td valign="top">The latest date to which change logs are to be
+     included in the report.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4><a name="user">user</a></h4>
+<p>The nested <code>&lt;user&gt;</code> element allows you to specify a
+mapping between a user ID as it appears on the CVS server and a name to
+include in the formatted report.
+Anytime the specified user ID has made a change in the repository, the
+<code>&lt;author&gt;</code> tag in the report file will include
+the name specified in <code>displayname</code> rather than the user ID.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">displayname</td>
+    <td valign="top">The name to be used in the CVS change log report.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">userid</td>
+    <td valign="top">The userid of the person as it exists on the CVS server.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+
+<h3>Examples</h3>
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for all the changes that have been made
+under the <code>dve/network</code> directory.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+                daysinpast=&quot;10&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for any changes that were made
+under the <code>dve/network</code> directory in the past 10 days.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+                start=&quot;20 Feb 2002&quot;
+                end=&quot;20 Mar 2002&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for any changes that were made
+between February 20, 2002 and March 20, 2002
+under the <code>dve/network</code> directory.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+                start=&quot;20 Feb 2002&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for any changes that were made
+after February 20, 2002 under the <code>dve/network</code> directory.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;&gt;
+       &lt;user displayname=&quot;Peter Donald&quot; userid=&quot;donaldp&quot;/&gt;
+  &lt;/cvschangelog&gt;</pre>
+
+<p>Generates a change log report for all the changes that were made
+under the <code>dve/network</code> directory, substituting the name
+&quot;Peter Donald&quot; in the <code>&lt;author&gt;</code> tags
+anytime it encounters a change made by the user ID &quot;donaldp&quot;.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<p>Generates a change log report on the <code>ANT_16_BRANCH</code>.</p>
+<pre>
+ &lt;cvschangelog dir=&quot;c:/dev/asf/ant.head&quot; passfile=&quot;c:/home/myself/.cvspass&quot;
+                destfile=&quot;changelogant.xml&quot; tag=&quot;ANT_16_BRANCH&quot;/&gt;
+</pre>
+<h4>Generate Report</h4>
+<p>Ant includes a basic XSLT stylesheet that you can use to generate 
+a HTML report based on the xml output. The following example illustrates
+how to generate a HTML report from the XML report.</p>
+
+<pre>
+        &lt;style in="changelog.xml" 
+               out="changelog.html" 
+               style="${ant.home}/etc/changelog.xsl"&gt;
+          &lt;param name="title" expression="Ant ChangeLog"/&gt;
+          &lt;param name="module" expression="ant"/&gt;
+          &lt;param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/&gt;
+        &lt;/style&gt;
+</pre>
+
+<h4>Sample Output</h4>
+<pre>
+&lt;changelog&gt;
+  &lt;entry&gt;
+    &lt;date&gt;2002-03-06&lt;/date&gt;
+    &lt;time&gt;12:00&lt;/time&gt;
+    &lt;author&gt;Peter Donald&lt;/author&gt;
+    &lt;file&gt;
+      &lt;name&gt;org/apache/myrmidon/build/AntlibDescriptorTask.java&lt;/name&gt;
+      &lt;revision&gt;1.3&lt;/revision&gt;
+      &lt;prevrevision&gt;1.2&lt;/prevrevision&gt;
+    &lt;/file&gt;
+    &lt;msg&gt;&lt;![CDATA[Use URLs directly rather than go via a File.
+
+This allows templates to be stored inside jar]]&gt;&lt;/msg&gt;
+  &lt;/entry&gt;
+&lt;/changelog&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/checksum.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/checksum.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/checksum.html	(revision 14989)
@@ -0,0 +1,241 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Checksum Task</title>
+</head>
+
+<body>
+
+<h2><a name="checksum">Checksum</a></h2>
+<h3>Description</h3>
+<p>
+Generates checksum for files.  This task can also be used to
+perform checksum verifications.
+</p>
+
+<p>Note that many popular message digest functions - including MD5 and
+SHA-1 - have been broken recently.  If you are going to use the task
+to create checksums used in an environment where security is
+important, please take some time to investigate the algorithms offered
+by your JCE provider.  Note also that some JCE providers like the one
+by <a href="http://www.bouncycastle.org/">The Legion of the Bouncy
+Castle</a>, the <a href="http://www.gnu.org/software/gnu-crypto/">GNU
+project</a> or <a
+href="http://jce.iaik.tugraz.at/products/01_jce/index.php">the
+Technical University Graz</a> offer more digest algorithms than those
+built-in into your JDK.</p>
+
+<p>
+Warning: the case of the extension is that of the algorithm used.
+If you ask for "SHA1", you get a .SHA1 extension; if you ask for "sha1", you
+get a file ending in .sha1. The Java Crypto Engines are case-insensitive
+in matching algorithms, so choose a name to match your desired output extension,
+or set the <tt>fileext</tt> attribute.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to generate checksum for.</td>
+    <td valign="top" align="center">One of either <var>file</var> or
+    at least one nested (filesystem-only) resource collection.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The root directory where checksums should be written.</td>
+    <td valign="top" align="center">No. If not specified, checksum files
+      will be written to the same directory as the files themselves.
+      <em>since Ant 1.6</em>
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">algorithm</td>
+    <td valign="top">Specifies the algorithm to be used to
+      compute the checksum. Defaults to &quot;MD5&quot;.
+      Other popular algorithms like &quot;SHA&quot; may be used
+      as well.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">provider</td>
+    <td valign="top">Specifies the provider of the algorithm.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fileext</td>
+    <td valign="top">The generated checksum file's name will be the
+    original filename with the fileext added to it.
+    Defaults to a "." and the algorithm name being used.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">This attribute can mean two different things, it
+    depends on the presence of the verifyproperty attribute.<br>
+    <b>If you don't set the verifyproperty attribute</b>, property
+    specifies the name of the property to be set with the generated
+    checksum value.<br>
+    <b>If you set the verifyproperty attribute</b>, property specifies
+    the checksum you expect to be generated (the checksum itself, not
+    a name of a property containing the checksum).<br>
+    This cannot be specified when fileext is being used or when the
+    number of files for which checksums is to be generated is greater
+    than 1.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">Specifies the pattern to use as a pattern
+    suitable for <a
+    href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/MessageFormat.html">MessageFormat</a>
+    where <code>{0}</code> is replaced with the checksum and
+    <code>{1}</code> with the file name.</td>
+    <td valign="top" align="center">No - default is &quot;{0}&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">Specifies the pattern to use as one of a
+    well-known format.  Supported values are &quot;CHECKSUM&quot;
+    (only the checksum itself, the default), &quot;MD5SUM&quot; the
+    format of GNU textutils md5sum and &quot;SVF&quot; the format of
+    *BSDs md5 command.</td>
+    <td valign="top" align="center">No - default is &quot;CHECKSUM&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">totalproperty</td>
+    <td valign="top">If specified, this attribute specifies the name of
+      the property that will hold a checksum of all the checksums and
+      file paths. The individual checksums and the relative paths to the files
+      within the resource collections in which they are defined will be used to
+      compute this checksum. (The file separators in the paths will be
+      converted to '/' before computation to ensure platform portability).
+      <em>since Ant 1.6</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer. Defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verifyproperty</td>
+    <td valign="top">Specifies the name of the property to be set
+    with &quot;true&quot; or &quot;false&quot; depending upon whether
+    the generated checksum matches the existing checksum.  When
+    this is set, the generated checksum is not written to a file or
+    property, but rather, the content of the file or property is used to
+    check against the generated checksum.
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">readbuffersize</td>
+    <td valign="top">The size of the buffer (in bytes) to use when
+    reading a file. Defaults to &quot;8192&quot; - you may get a
+    better performance on big files if you increase this value.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>resource collection</h4>
+ <p>
+ <a href="../CoreTypes/resources.html#collection">Resource collections</a> are
+ used to select files for which checksums should be generated.
+ </p>
+
+<h3>Examples</h3>
+<p><b>Example 1</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot;/&gt;</pre></blockquote>
+Generates a MD5 checksum for foo.bar and stores the checksum in the destination file
+foo.bar.MD5.  foo.bar.MD5 is overwritten only if foo.bar is newer than itself.
+
+<p><b>Example 2</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; forceOverwrite=&quot;yes&quot;/&gt;</pre></blockquote>
+Generates a MD5 checksum for foo.bar and stores the checksum in foo.bar.MD5.
+If foo.bar.MD5 already exists, it is overwritten.
+
+<p><b>Example 3</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; property=&quot;foobarMD5&quot;/&gt;</pre></blockquote>
+Generates a MD5 checksum for foo.bar and stores it in the Project Property foobarMD5.
+
+<p><b>Example 4</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; verifyProperty=&quot;isMD5ok&quot;/&gt;</pre></blockquote>
+Generates a MD5 checksum for foo.bar, compares it against foo.bar.MD5 and sets
+isMD5ok to either true or false, depending upon the result.
+
+<p><b>Example 5</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; algorithm=&quot;SHA&quot; fileext=&quot;asc&quot;/&gt;</pre></blockquote>
+Generates a SHA checksum for foo.bar and stores the checksum in the destination file
+foo.bar.asc.  foo.bar.asc is overwritten only if foo.bar is newer than itself.
+
+<p><b>Example 6</b></p>
+<blockquote><pre>
+&lt;checksum file=&quot;foo.bar&quot; property=&quot;${md5}&quot; verifyProperty=&quot;isEqual&quot;/&gt;
+</pre></blockquote>
+Generates a MD5 checksum for foo.bar, compares it against the value of the property
+md5, and sets isEqual to either true or false, depending upon the result.
+
+<p><b>Example 7</b></p>
+<blockquote><pre>
+&lt;checksum&gt;
+  &lt;fileset dir=&quot;.&quot;&gt;
+    &lt;include name=&quot;foo*&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/checksum&gt;
+</pre></blockquote>
+Works just like Example 1, but generates a .MD5 file for every file that begins with the name foo.
+
+<p><b>Example 8</b></p>
+<blockquote><pre>
+&lt;condition property=&quot;isChecksumEqual&quot;&gt;
+  &lt;checksum&gt;
+    &lt;fileset dir=&quot;.&quot;&gt;
+      &lt;include name=&quot;foo.bar&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/checksum&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+Works like Example 4, but only sets isChecksumEqual to true, if the
+checksum matches - it will never be set to false.  This example
+demonstrates use with the Condition task.
+
+
+<h3>Note:</h3>
+When working with more than one file, if condition and/or verifyproperty is used,
+the result will be true only if the checksums matched correctly for all files being
+considered.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/chmod.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/chmod.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/chmod.html	(revision 14989)
@@ -0,0 +1,190 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Chmod Task</title>
+</head>
+
+<body>
+
+<h2><a name="chmod">Chmod</a></h2>
+<h3>Description</h3>
+<p>Changes the permissions of a file or all files inside specified
+directories. Right now it has effect only under Unix or NonStop Kernel (Tandem).
+The permissions are also UNIX style, like the argument for the chmod command.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
+tasks</a>, on how the inclusion/exclusion of files works, and how to
+write patterns.</p>
+
+<p>This task holds an implicit <a
+href="../CoreTypes/fileset.html">FileSet</a> and supports all of
+FileSet's attributes and nested elements directly. More sets can be
+specified using nested <code>&lt;fileset&gt;</code> or
+<code>&lt;dirset&gt;</code> (<em>since Ant 1.6</em>) elements. </p>
+
+<p>Starting with Ant 1.6, this task also supports nested <a
+href="../CoreTypes/filelist.html">filelist</a>s.</p>
+
+<p>Starting with Ant 1.7, this task supports arbitrary <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+as nested elements.</p>
+
+<p>By default this task will use a single invocation of the underlying
+chmod command.  If you are working on a large number of files this may
+result in a command line that is too long for your operating system.
+If you encounter such problems, you should set the maxparallel
+attribute of this task to a non-zero value.  The number to use highly
+depends on the length of your file names (the depth of your directory
+tree) and your operating system, so you'll have to experiment a
+little.  POSIX recommends command line length limits of at least 4096
+characters, this may give you an approximation for the number you
+could use as initial value for these experiments.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or single directory of which the permissions 
+      must be changed.</td>
+    <td valign="top" valign="middle" rowspan="2">exactly one of the two or nested <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory which holds the files whose permissions 
+      must be changed.</td>
+  </tr>
+  <tr>
+    <td valign="top">perm</td>
+    <td valign="top">the new permissions.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chmod</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the permissions of
+      plain files are going to be changed. If set to <i>dir</i>, only
+      the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+  <blockquote><pre>
+&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;ugo+rx&quot;/&gt;
+</pre></blockquote>
+<p>makes the &quot;start.sh&quot; file readable and executable for anyone on a
+UNIX system.</p>
+<blockquote><pre>
+&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;700&quot;/&gt;
+</pre></blockquote>
+<p>makes the &quot;start.sh&quot; file readable, writable and executable only for the owner on a
+UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chmod dir=&quot;${dist}/bin&quot; perm=&quot;ugo+rx&quot; 
+       includes=&quot;**/*.sh&quot;/&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
+readable and executable for anyone on a UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chmod perm=&quot;g+w&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those
+below any directory named trial) writable for members of the same
+group on a UNIX system. In addition all files belonging to a FileSet
+with <code>id</code> <code>other.shared.sources</code> get the same
+permissions.</p>
+
+<blockquote>
+<pre>
+&lt;chmod perm=&quot;go-rwx&quot; type=&quot;file&quot;&gt;
+  &lt;fileset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/*.cgi&quot;/&gt;
+    &lt;include name=&quot;**/*.old&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;dirset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/private_*&quot;/&gt;
+  &lt;/dirset&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+
+<p>keeps non-owners from touching cgi scripts, files with a <code>.old</code>
+extension or directories beginning with <code>private_</code>. A directory 
+ending in <code>.old</code> or a file beginning with private_ would remain
+unaffected.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/common.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/common.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/common.html	(revision 14989)
@@ -0,0 +1,59 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Common</title>
+</head>
+
+<body>
+
+<h2><a name="javac">Common Attributes of all Tasks</a></h2>
+<p>All tasks share the following attributes:</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">id</td>
+    <td valign="top">Unique identifier for this task instance, can be
+       used to reference this task in scripts.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">taskname</td>
+    <td valign="top">A different name for this task instance - will
+      show up in the logging output.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">Room for your comments</td>
+    <td valign="top">No</td>
+  </tr>
+</table>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/concat.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/concat.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/concat.html	(revision 14989)
@@ -0,0 +1,294 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+    <head>
+      <meta http-equiv="Content-Language" content="en-us">
+      <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Concat</title>
+    </head>
+
+    <body>
+
+      <h2><a name="Concat">Concat</a></h2>
+
+      <h3>Description</h3>
+
+      <p>
+        Concatenates one or more 
+        <a href="../CoreTypes/resources.html">resource</a>s
+        to a single file or to the console. The destination
+        file will be created if it does not exist.
+      </p>
+
+      <p>
+        <a href="../CoreTypes/resources.html#collection">
+Resource Collection</a>s are used to
+        select which resources are to be concatenated. There is no
+        singular attribute to specify a single resource to cat.
+      </p>
+
+      <h3>Parameters</h3>
+
+      <table border="1" cellpadding="2" cellspacing="0">
+
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+
+        <tr>
+          <td valign="top">destfile</td>
+          <td valign="top">
+            The destination file for the concatenated stream.
+        If not specified the console will be used instead.
+          </td>
+          <td valign="top" align="center">
+            No
+          </td>
+        </tr>
+
+        <tr>
+          <td valign="top">append</td>
+          <td valign="top">
+            Specifies whether or not the file specified by 'destfile'
+            should be appended. Defaults to &quot;no&quot;.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">force</td>
+          <td valign="top">
+            Specifies whether or not the file specified by 'destfile'
+            should be written to even if it is newer than all source files.
+            <em>since Ant 1.6</em>.
+            Defaults to &quot;yes&quot;.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+
+        <tr>
+          <td valign="top">encoding</td>
+          <td valign="top">
+            Specifies the encoding for the input files. Please see <a
+            href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">
+            http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>
+            for a list of possible values. Defaults to the platform's
+            default character encoding.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">outputencoding</td>
+          <td valign="top">
+            The encoding to use when writing the output file
+            <em>since Ant 1.6</em>.
+            Defaults to the value of the encoding attribute
+            if given or the default JVM encoding otherwise.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">fixlastline</td>
+          <td valign="top">
+                 Specifies whether or not to check if
+            each file concatenated is terminated by
+            a new line. If this attribute is &quot;yes&quot;
+            a new line will be appended to the stream if
+            the file did not end in a new line.
+            <em>since Ant 1.6</em>.
+            Defaults to &quot;no&quot;.
+            This attribute does not apply to embedded text.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">eol</td>
+          <td valign="top">
+            Specifies what the end of line character are
+            for use by the fixlastline attribute.
+            <em>since Ant 1.6</em>
+            Valid values for this property are:
+            <ul>
+              <li>cr: a single CR</li>
+              <li>lf: a single LF</li>
+              <li>crlf: the pair CRLF</li>
+              <li>mac: a single CR</li>
+              <li>unix: a single LF</li>
+              <li>dos: the pair CRLF</li>
+            </ul>
+            The default is platform dependent.
+            For Unix platforms, the default is &quot;lf&quot;.
+            For DOS based systems (including Windows),
+            the default is &quot;crlf&quot;.
+            For Mac OS, the default is &quot;cr&quot;.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">binary</td>
+          <td valign="top">
+            <em>since Ant 1.6.2</em>
+            If this attribute is set to true, the task concatenates the files
+            in a byte by byte fashion. If this attribute is false, concat will
+            not normally work for binary files due to character encoding
+            issues.
+            If this option is set to true, the destfile attribute must be
+            set, and the task cannot used nested text.
+            Also the attributes encoding, outputencoding, filelastline
+            cannot be used.
+            The default is false.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+
+      </table>
+
+      <h3>Parameters specified as nested elements</h3>
+        <h4>Resource Collection</h4>
+        <p><em>since Ant 1.7</em>.</p>
+
+      <p>
+        Any of the various <a href="../CoreTypes/resources.html#collection">
+        Resource Collection</a> types can specify the resources to be
+        concatenated.
+      </p>
+
+      <h4>filterchain</h4>
+        <p><em>since Ant 1.6</em>.</p>
+      <p>The concat task supports nested
+        <a href="../CoreTypes/filterchain.html"> FilterChain</a>s.</p>
+
+      <h4>header, footer</h4>
+        <p><em>since Ant 1.6</em>.</p>
+      <p>Used to prepend or postpend text into the concatenated stream.</p>
+      <p>The text may be in-line or be in a file.</p>
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+        <tr>
+          <td valign="top">filtering</td>
+          <td valign="top">
+            Whether to filter the text provided by this sub element,
+            default is "yes".
+          <td valign="top" align = "center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">file</td>
+          <td valign="top">A file to place at the head or tail of the
+                           concatenated text.
+          <td valign="top" align = "center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">trim</td>
+          <td valign="top">Whether to trim the value, default is "no"</td>
+          <td valign="top" align = "center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">trimleading</td>
+          <td valign="top">
+            Whether to trim leading white space on each line, default is "no"
+          </td>
+          <td valign="top" align = "center">No</td>
+        </tr>
+      </table>
+
+      <h3>Examples</h3>
+
+      <p><b>Concatenate a string to a file:</b></p>
+
+      <pre>
+  &lt;concat destfile=&quot;README&quot;&gt;Hello, World!&lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a series of files to the console:</b></p>
+
+      <pre>
+  &lt;concat&gt;
+    &lt;fileset dir=&quot;messages&quot; includes=&quot;*important*&quot;/&gt;
+  &lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a single file, appending if the destination file exists:</b></p>
+
+      <pre>
+  &lt;concat destfile=&quot;NOTES&quot; append=&quot;true&quot;&gt;
+    &lt;filelist dir=&quot;notes&quot; files=&quot;note.txt&quot;/&gt;
+  &lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a series of files, update the destination
+      file only if is older that all the source files:</b></p>
+
+      <pre>
+  &lt;concat destfile=&quot;${docbook.dir}/all-sections.xml&quot;
+          force=&quot;no&quot;&gt;
+    &lt;filelist dir=&quot;${docbook.dir}/sections&quot;
+         files=&quot;introduction.xml,overview.xml&quot;/&gt;
+    &lt;fileset dir=&quot;${docbook.dir}&quot;
+         includes=&quot;sections/*.xml&quot;
+         excludes=&quot;introduction.xml,overview.xml&quot;/&gt;
+  &lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a series of files, expanding ant properties</b></p>
+        <pre>
+   &lt;concat destfile="${build.dir}/subs"&gt;
+      &lt;path&gt;
+        &lt;fileset dir="${src.dir}" includes="*.xml"/&gt;
+        &lt;pathelement location="build.xml"/&gt;
+      &lt;/path&gt;
+      &lt;filterchain&gt;
+        &lt;expandproperties/&gt;
+      &lt;/filterchain&gt;
+   &lt;/concat&gt;
+        </pre>
+
+      <p><b>Filter the lines containing project from build.xml and output
+           them to report.output, prepending with a header</b></p>
+        <pre>
+   &lt;concat destfile="${build.dir}/report.output"&gt;
+      &lt;header filtering="no" trimleading="yes"&gt;
+          Lines that contain project
+          ==========================
+      &lt;/header&gt;
+      &lt;path path="build.xml"/&gt;
+      &lt;filterchain&gt;
+         &lt;linecontains&gt;
+           &lt;contains value="project"/&gt;
+         &lt;/linecontains&gt;
+      &lt;/filterchain&gt;
+   &lt;/concat&gt;
+        </pre>
+
+      <p><b>Concatenate a number of binary files.</b></p>
+        <pre>
+   &lt;concat destfile="${build.dir}/dist.bin" binary="yes"&gt;
+     &lt;fileset file="${src.dir}/scripts/dist.sh" /&gt;
+     &lt;fileset file="${build.dir}/dist.tar.bz2" /&gt;
+   &lt;/concat&gt;
+        </pre>
+
+      
+
+    </body>
+
+  </html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/condition.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/condition.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/condition.html	(revision 14989)
@@ -0,0 +1,110 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Condition Task</title>
+</head>
+
+<body>
+
+<h2><a name="Condition">Condition</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a certain condition holds true - this is a
+generalization of <a href="available.html">Available</a> and <a
+href="uptodate.html">Uptodate</a>.</p>
+<p>If the condition holds true, the property value is set to true by
+default; otherwise, the property is not set. You can set the value to
+something other than the default by specifying the <code>value</code>
+attribute.</p>
+<p>Conditions are specified as <a href="#nested">nested elements</a>,
+you must specify exactly one condition.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to set the property to. Defaults to
+      &quot;true&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">else</td>
+    <td valign="top">The value to set the property to if the condition
+      evaluates to <i>false</i>. By default the property will remain unset.
+      <em>Since Ant 1.6.3</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3><a name="nested">Parameters specified as nested elements</a></h3>
+<p>All conditions to test are specified as nested elements, for a
+complete list see <a href="conditions.html">here</a>.</p>
+
+<h3>Examples</h3>
+<pre>
+  &lt;condition property=&quot;javamail.complete&quot;&gt;
+    &lt;and&gt;
+      &lt;available classname=&quot;javax.activation.DataHandler&quot;/&gt;
+      &lt;available classname=&quot;javax.mail.Transport&quot;/&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+</pre>
+<p>sets the property <code>javamail.complete</code> if both the
+JavaBeans Activation Framework and JavaMail are available in the
+classpath.</p>
+
+<pre>
+  &lt;condition property=&quot;isMacOsButNotMacOsX&quot;&gt;
+    &lt;and&gt;
+      &lt;os family=&quot;mac&quot;/&gt;
+
+      &lt;not&gt;
+        &lt;os family=&quot;unix&quot;/&gt;
+
+      &lt;/not&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+</pre>
+<p>sets the property <code>isMacOsButNotMacOsX</code> if the current
+operating system is MacOS, but not MacOS X - which Ant considers to be
+in the Unix family as well.</p>
+
+<pre>
+  &lt;condition property=&quot;isSunOSonSparc&quot;&gt;
+    &lt;os name=&quot;SunOS&quot; arch=&quot;sparc&quot;/&gt;
+
+  &lt;/condition&gt;
+</pre>
+<p>sets the property <code>isSunOSonSparc</code> if the current
+operating system is SunOS and if it is running on a sparc architecture.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/conditions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/conditions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/conditions.html	(revision 14989)
@@ -0,0 +1,955 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Conditions Task</title>
+</head>
+
+<body>
+
+<h2><a name="Conditions">Conditions</a></h2>
+  <p>Conditions are nested elements of the 
+<a href="condition.html"><code>&lt;condition&gt;</code></a> and
+<a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.
+    There are core conditions and custom conditions. Custom
+    conditions are described in
+    <a href="../CoreTypes/custom-programming.html#customconditions">
+      Custom Conditions</a>.
+    Core Conditions are described below.
+  </p>
+  <h3><a name="coreconditions">Core Conditions</a></h3>
+
+<p>These are the nested elements that can be used as conditions in the
+<a href="condition.html"><code>&lt;condition&gt;</code></a> and
+<a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.</p>
+
+<h4>not</h4>
+<p>The <code>&lt;not&gt;</code> element expects exactly one other
+condition to be nested into this element, negating the result of the
+condition.  It doesn't have any attributes and accepts all nested
+elements of the condition task as nested elements as well.</p>
+
+<h4>and</h4> <p>
+The <code>&lt;and&gt;</code> element doesn't have any attributes and
+accepts an arbitrary number of conditions as nested elements - all
+nested elements of the condition task are supported.  This condition
+is true if all of its contained conditions are, conditions will be
+evaluated in the order they have been specified in the build file.</p>
+<p>The <code>&lt;and&gt;</code> condition has the same shortcut
+semantics as the Java &amp;&amp; operator, as soon as one of the
+nested conditions is false, no other condition will be evaluated.</p>
+
+<h4>or</h4> <p>
+The <code>&lt;or&gt;</code> element doesn't have any attributes and
+accepts an arbitrary number of conditions as nested elements - all
+nested elements of the condition task are supported.  This condition
+is true if at least one of its contained conditions is, conditions
+will be evaluated in the order they have been specified in the build
+file.</p> <p>The <code>&lt;or&gt;</code> condition has the same
+shortcut semantics as the Java || operator, as soon as one of the
+nested conditions is true, no other condition will be evaluated.</p>
+
+<h4>xor</h4>
+<p>The <code>&lt;xor&gt;</code> element performs an exclusive
+or on all nested elements, similar to the <code>^</code> operator
+in Java. It only evaluates to true if an odd number of nested conditions
+are true. There is no shortcutting of evaluation, unlike the <code>&lt;and&gt;</code>
+and <code>&lt;or&gt;</code> tests.
+It doesn't have any attributes and accepts all nested
+elements of the condition task as nested elements as well.</p>
+
+<h4>available</h4>
+<p>This condition is identical to the <a
+href="available.html">Available</a> task, all attributes and nested
+elements of that task are supported, the property and value attributes
+are redundant and will be ignored.</p>
+
+<h4>uptodate</h4>
+<p>This condition is identical to the <a
+href="uptodate.html">Uptodate</a> task, all attributes and nested
+elements of that task are supported, the property and value attributes
+are redundant and will be ignored.</p>
+
+<h4>os</h4>
+<p>Test whether the current operating system is of a given type.  Each
+defined attribute is tested and the result is true only if <i>all</i>
+the tests succeed.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">family</td>
+    <td valign="top">The name of the operating system family to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the operating system to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">arch</td>
+    <td valign="top">The architecture of the operating system to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">version</td>
+    <td valign="top">The version of the operating system to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>Supported values for the family attribute are:
+<ul>
+  <li>windows (for all versions of Microsoft Windows)</li>
+  <li>dos (for all Microsoft DOS based operating systems including
+    Microsoft Windows and OS/2)</li>
+  <li>mac (for all Apple Macintosh systems)</li>
+  <li>unix (for all Unix and Unix-like operating systems)</li>
+  <li>netware (for Novell NetWare)</li>
+  <li>os/2 (for OS/2)</li>
+  <li>tandem (for HP's NonStop Kernel - formerly Tandem)</li>
+  <li>win9x for Microsoft Windows 95 and 98, ME and CE</li>
+  <li>winnt for Microsoft Windows NT-based systems, including Windows 2000, XP and
+      successors</li>
+  <li>z/os for z/OS and OS/390</li>
+  <li>os/400 for OS/400</li>
+  <li>openvms for OpenVMS</li>
+</ul>
+
+<h4>equals</h4>
+<p>Tests whether the two given Strings are identical</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">arg1</td>
+    <td valign="top">First string to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">arg2</td>
+    <td valign="top">Second string to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Perform a case sensitive comparision.  Default is
+        true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">trim</td>
+    <td valign="top">Trim whitespace from arguments before comparing
+        them.  Default is false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>isset</h4>
+<p>Test whether a given property has been set in this project.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>checksum</h4>
+<p>This condition is identical to the <a href="checksum.html">Checksum</a>
+task, all attributes and nested elements of that task are supported,
+the property and overwrite attributes are redundant and will be
+ignored.</p>
+
+<h4>http</h4>
+<p>The <code>http</code> condition checks for a valid response from a
+web server of the specified url. By default, HTTP responses errors
+of 400 or greater are viewed as invalid.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The full URL of the page to request. The web server must
+      return a status code below the value of <tt>errorsBeginAt</tt></td>
+    <td align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">errorsBeginAt</td>
+    <td valign="top">The lowest HTTP response code that signals an error;
+    by default '400'; server errors, not-authorized, not-found and the like
+    are detected</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h4>socket</h4>
+<p>The <code>socket</code> condition checks for the existence of a
+TCP/IP listener at the specified host and port.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">server</td>
+    <td valign="top">The DNS name or IP address of the server.</td>
+    <td align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">The port number to connect to.</td>
+    <td align="center">Yes.</td>
+  </tr>
+</table>
+
+<h4>filesmatch</h4>
+<p>Test two files for matching. Nonexistence of one file results in "false",
+although if neither exists they are considered equal in terms of content.
+This test does a byte for byte comparision, so test time scales with
+byte size. NB: if the files are different sizes, one of them is missing
+or the filenames match the answer is so obvious the detailed test is omitted.
+
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file1</td>
+    <td valign="top">First file to test</td>
+    <td align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">file2</td>
+    <td valign="top">Second file to test</td>
+    <td align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">textfile</td>
+    <td valign="top">Whether to ignore line endings
+        when comparing files; defaults to <i>false</i>, while
+        <i>true</i> bypasses the size comparison. <b>Since Ant 1.7</b>
+    </td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h4>contains</h4>
+<p>Tests whether a string contains another one.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">string</td>
+    <td valign="top">The string to search in.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">substring</td>
+    <td valign="top">The string to search for.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Perform a case sensitive comparision.  Default is
+        true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>istrue</h4>
+<p>Tests whether a string equals any of the ant definitions of true,
+that is "true","yes", or "on"</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value to test</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;istrue value=&quot;${someproperty}&quot;/&gt;
+&lt;istrue value=&quot;false&quot;/&gt;
+</pre></blockquote>
+
+<h4>isfalse</h4>
+<p>Tests whether a string is not true, the negation of &lt;istrue&gt;
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value to test</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;isfalse value=&quot;${someproperty}&quot;/&gt;
+&lt;isfalse value=&quot;false&quot;/&gt;
+</pre></blockquote>
+
+<h4>isreference</h4>
+
+<p>Test whether a given reference has been defined in this project and
+- optionally - is of an expected type.</p>
+
+<p>This condition has been added in Apache Ant 1.6.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">The id of the reference to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">Name of the data type or task this reference is
+       expected to be.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+  <h4>issigned</h4>
+  <p>
+    Test whether a jarfile is signed.
+    If the name of the
+    signature is passed, the file is checked for presence of that
+    particular signature; otherwise the file is checked for the
+    existence of any signature. It does not perform rigorous
+    signature validation; it only looks for the presence of a signature.
+  </p>
+  <p>
+    This condition was added in Apache Ant 1.7.
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">
+      The jarfile that is to be tested for the presence
+      of a signature.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top"> The signature name to check for.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  </table>
+  <h4>isfileselected</h4>
+  <p>
+    Test whether a file passes an embedded
+    <a href="../CoreTypes/selectors.html">selector</a>.
+  </p>
+  <p>
+    This condition was added in Apache Ant 1.6.3.
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">
+      The file to check if is passes the embedded selector.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">The base directory to use for name based selectors. It this is not set,
+      the project's basedirectory will be used.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  </table>
+  <p>
+    Example usage:
+  </p>
+<blockquote><pre>
+&lt;isfileselected file="a.xml"&gt;
+  &lt;date datetime="06/28/2000 2:02 pm" when="equal"/&gt;
+&lt;/isfileselected&gt;
+</pre></blockquote>
+<h4>typefound</h4>
+
+<p>Test whether a given type is defined, and that
+its implementation class can be loaded. Types include
+tasks, datatypes, scriptdefs, macrodefs and presetdefs.</p>
+
+<p>This condition was added in Apache Ant 1.7.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">name of the type</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">uri</td>
+    <td valign="top">
+      The uri that this type lives in.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+  <p>
+    Example usages:
+  </p>
+<blockquote><pre>
+&lt;typefound name="junit"/&gt;
+&lt;typefound uri="antlib:org.apache.maven.artifact.ant" name="artifact"/&gt;
+</pre></blockquote>
+
+<h4>scriptcondition</h4>
+
+<p>Evaluate a condition based on a script in any
+<a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+  or
+  <a href="https://scripting.dev.java.net">JSR 223</a>
+supported language.
+</p>
+<p>
+See the <a href="../OptionalTasks/script.html">Script</a> task for
+an explanation of scripts and dependencies.
+</p>
+
+<p>This condition was added in Apache Ant 1.7.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">language</td>
+    <td valign="top">script language</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manager</td>
+    <td valign="top">
+      The script engine manager to use.
+      See the <a href="../OptionalTasks/script.html">script</a> task
+      for using this attribute.
+    </td>
+    <td valign="top" align="center">No - default is "auto"</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">default boolean value</td>
+    <td valign="top" align="center">No -default is "false"</td>
+  </tr>  
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">filename of script source</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">setbeans</td>
+    <td valign="top">whether to have all properties, references and targets as
+      global variables in the script.</td>
+    <td valign="top" align="center">No, default is "true".</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">
+      The classpath to pass into the script.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+       <a href="../using.html#references">reference</a> to a path defined elsewhere.
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h5>Parameters specified as nested elements</h5>
+<h6>classpath</h6>
+  <p>
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    for using this nested element.
+  </p>
+<h5>Description</h5>
+<p>
+The script supports script language inline, this script has access to the
+same beans as the <code>&lt;script&gt;</code> task, and to the <code>
+self</code> bean, which refers back to the condition itself. The
+<code>value</code> property of this bean sets the return value:
+</p>
+<p>
+Example:
+</p>
+<blockquote><pre>
+&lt;scriptcondition language=&quot;javascript&quot;
+        value=&quot;true&quot;&gt;
+    self.setValue(false);
+&lt;/scriptcondition&gt;
+</pre></blockquote>
+
+Sets the default value of the condition to true, then in the script, 
+sets the value to false. This condition always evaluates to "false"
+
+<h4>parsersupports</h4>
+
+<p>Tests whether Ant's XML parser supports a given
+feature or property, as per the SAX/JAXP specifications, by
+attempting to set the appropriate property/feature/</p>
+
+<p>This condition was added in Apache Ant 1.7.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">property to set</td>
+    <td valign="top" align="center">one of property or feature</td>
+  </tr>
+  <tr>
+    <td valign="top">feature</td>
+    <td valign="top">feature to set</td>
+    <td valign="top" align="center">one of property or feature</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">string (property) or boolean (feature)</td>
+    <td valign="top" align="center">For property tests, but not for feature tests</td>
+  </tr>
+</table>
+
+<blockquote><pre>
+&lt;parsersupports feature="http://xml.org/sax/features/namespaces"/&gt;
+</pre></blockquote>
+Check for namespace support. All SAX2 parsers should have this.
+<blockquote><pre>
+&lt;or&gt;
+  &lt;parsersupports
+    feature="http://apache.org/xml/features/validation/schema"/&gt;
+  &lt;parsersupports
+    feature="http://java.sun.com/xml/jaxp/properties/schemaSource"/&gt;
+&lt;/or&gt;
+</pre></blockquote>
+
+Check for XML Schema support.
+
+<pre>
+&lt;parsersupports
+  property="http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
+  value="document.xsd"/&gt;
+</pre>
+
+Check for Xerces-specific definition of the location of the no namespace schema.
+
+<h4>isreachable</h4>
+
+<p>Uses Java1.5+ networking APIs to probe for a (remote) system being
+reachable. Exactly what probe mechanisms are used is an implementation
+feature of the JVM. They may include ICMP "ping" packets, UDP or TCP connections
+to port 7 "echo service" or other means. On Java1.4 and earlier, being able
+to resolve the hostname is considered success. This means that if DNS is not
+working or a URL/hostname is bad, the test will fail, but otherwise succeed
+even if the remote host is actually absent.
+
+</p>
+<p>
+This condition turns unknown host exceptions into false conditions. This is
+because on a laptop, DNS is one of the first services when the network goes; you
+are implicitly offline.
+</p>
+<p>
+ If a URL is supplied instead of a host, the hostname is extracted
+ and used in the test - all other parts of the URL are discarded.
+</p>
+<p>
+The test may not work through firewalls, that is, something may be reachable
+using a protocol such as HTTP, while the lower level ICMP packets get dropped
+on the floor. Similarly, a host may detected as reachable with ICMP, but
+not reachable on other ports (i.e. port 80), because of firewalls.
+</p>
+<p>
+
+This condition was added in Apache Ant 1.7.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">host</td>
+    <td valign="top">host to check for</td>
+    <td valign="top" align="center">one of url or host</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">URL containing hostname</td>
+    <td valign="top" align="center">one of url or host</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">timeout in seconds</td>
+    <td valign="top" align="center">no, default is 30s</td>
+  </tr>
+</table>
+
+<blockquote><pre>
+&lt;condition property="offline"&gt;
+  &lt;isreachable url="http://ibiblio.org/maven/" /&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+
+<p>
+Probe for the maven repository being reachable.
+</p>
+
+<blockquote><pre>
+&lt;condition property="offline"&gt;
+  &lt;isreachable host="ibiblio.org" timeout="10" /&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+
+<p>
+Probe for the maven repository being reachable using the hostname, ten second timeout..
+</p>
+
+<h4>length</h4>
+<p>This condition is a facet of the <a href="length.html">Length</a> task.
+  It is used to test the length of a string or one or more files.
+  <b>Since Ant 1.6.3</b>
+</p>
+
+<blockquote><pre>
+&lt;length string=" foo " trim="true" length="3" /&gt;
+</pre></blockquote>
+<p>Verify a string is of a certain length.</p>
+
+<blockquote><pre>
+&lt;length file=&quot;foo&quot; when=&quot;greater&quot; length=&quot;0&quot; /&gt;
+</pre></blockquote>
+<p>Verify that file <i>foo</i> is not empty.</p>
+
+<h4>isfailure</h4>
+
+<p>Test the return code of an executable (see the
+<a href="exec.html">Exec</a> task) for failure. <b>Since Ant 1.7</b></p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">code</td>
+    <td valign="top">The return code to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>resourcecount</h4>
+<p>This condition is a facet of the
+  <a href="resourcecount.html">ResourceCount</a> task.
+  It is used to test the size of a 
+  <a href="../CoreTypes/resources.html#collection">resource collection</a>.
+  <b>Since Ant 1.7</b>
+</p>
+
+<blockquote><pre>
+&lt;resourcecount refid=&quot;myresourcecollection&quot; when=&quot;greater&quot; length=&quot;0&quot; /&gt;
+</pre></blockquote>
+<p>Verify that a resource collection is not empty.</p>
+
+<h4>resourcesmatch</h4>
+<p>Test resources for matching. Nonexistence of one or more resources results in
+"false", although if none exists they are considered equal in terms of content.
+By default this test does a byte for byte comparision, so test time scales with
+byte size. NB: if the files are different sizes, one of them is missing
+or the filenames match the answer is so obvious the detailed test is omitted.
+The resources to check are specified as nested
+<a href="../CoreTypes/resources.html#collection">resource collections</a>,
+meaning that more than two resources can be checked; in this case all resources
+must match. <b>Since Ant 1.7</b>
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">astext</td>
+    <td valign="top">Whether to ignore line endings
+        when comparing resource content; defaults to <i>false</i>,
+        while <i>true</i> bypasses the size comparison.
+    </td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h4>hasmethod</h4>
+
+<p> Tests for a class having a method or field. If the class is not found 
+    or fails to load, the build fails. 
+    
+    <b>Since Ant 1.7</b>
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+        <td width="12%" valign="top"><b>Attribute</b></td>
+        <td width="78%" valign="top"><b>Description</b></td>
+        <td width="10%" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+        <td valign="top">classname</td>
+        <td valign="top">name of the class to load</td>
+        <td align="center">yes</td>
+    </tr>
+    <tr>
+        <td valign="top">field</td>
+        <td valign="top">name of a field to look for</td>
+        <td align="center">one of field or method</td>
+    </tr>
+    <tr>
+        <td valign="top">method</td>
+        <td valign="top">name of a method to look for</td>
+        <td align="center">one of field or method</td>
+    </tr>
+    
+    <tr>
+        <td valign="top">ignoreSystemClasses</td>
+        <td valign="top">should system classes be ignored?</td>
+        <td align="center">No -default is false</td>
+    </tr>
+    <tr>
+        <td valign="top">classpath</td>
+        <td valign="top">a class path</td>
+        <td align="center">No</td>
+    </tr>
+    <tr>
+        <td valign="top">classpathref</td>
+        <td valign="top">reference to a class path</td>
+        <td align="center">No</td>
+    </tr>
+</table>
+
+<p>
+    There is also a nested &lt;classpath&gt; element, which can be used to specify 
+    a classpath.
+</p>
+<blockquote><pre>
+&lt;hasmethod classname="java.util.ArrayList" method="trimToSize"  /&gt;
+</pre></blockquote>
+
+<p>Looks for the method trimToSize in the ArrayList class.</p>
+
+<h4>matches</h4>
+
+<p>
+  Test if the specified string matches the specified regular
+  expression pattern.
+  <b>Since Ant 1.7</b></p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">string</td>
+    <td valign="top">The string to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">The regular expression pattern used to test.</td>
+    <td valign="top" align="center">Yes, unless there is a nested
+      <code>&lt;regexp&gt;</code> element.</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Perform a case sensitive match.  Default is
+        true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">multiline</td>
+    <td valign="top">
+      Perform a multi line match.
+      Default is false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">singleline</td>
+    <td valign="top">
+      This allows '.' to match new lines.
+      SingleLine is not to be confused with multiline, SingleLine is a perl
+      regex term, it corresponds to dotall in java regex.
+      Default is false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+  <p>
+    There is also an optional &lt;regexp&gt; element, which can be used to specify
+    a regular expression instead of the "pattern" attribute.
+    See <a href="../CoreTypes/regexp.html">Regexp Type</a> for the description
+    of the nested element regexp and of
+    the choice of regular expression implementation.
+  </p>
+  <p>
+    An example:
+  </p>
+<blockquote><pre>
+&lt;condition property="legal-password"&gt;
+  &lt;matches pattern="[1-9]" string="${user-input}"/&gt;
+&lt;/condition&gt;
+&lt;fail message="Your password should at least contain one number"
+      unless="legal-password"/&gt;
+</pre></blockquote>
+  <p>
+    The following example sets the property "ok" if
+    the property "input" is three characters long, starting
+    with 'a' and ending with 'b'.
+  </p>
+<blockquote><pre>
+&lt;condition property="ok"&gt;
+  &lt;matches string="${input}" pattern="^a.b$"/&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+  <p>
+    The following defines a reference regular expression for
+    matching dates and then uses antunit to check if the
+    property "today" is in the correct format:
+  </p>
+<blockquote><pre>
+&lt;regexp id="date.pattern" pattern="^[0123]\d-[01]\d-[12]\d\d\d$"/&gt;
+
+&lt;au:assertTrue xmlns:au="antlib:org.apache.ant.antunit"&gt;
+  &lt;matches string="${today}"&gt;
+    &lt;regexp refid="date.pattern"/&gt;
+  &lt;/matches&gt;
+&lt;/au:assertTrue&gt;
+</pre></blockquote>
+  <p>
+    The following example shows the use of the singleline and the casesensitive
+    flags.
+  </p>
+<blockquote><pre>
+&lt;au:assertTrue&gt;
+  &lt;matches string="AB${line.separator}C" pattern="^ab.*C$"
+           casesensitive="false"
+           singleline="true"/&gt;
+&lt;/au:assertTrue&gt;
+&lt;au:assertFalse&gt;
+  &lt;matches string="AB${line.separator}C" pattern="^ab.*C$"
+           casesensitive="false"
+           singleline="false"/&gt;
+&lt;/au:assertFalse&gt;
+</pre></blockquote>
+<h4>antversion</h4>
+
+<p>
+  Test the ant version.
+  <b>Since Ant 1.7.0</b></p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">atleast</td>
+    <td valign="top">The version that this at least.
+      The format is major.minor.point.</td>
+    <td valign="top" rowspan="2" align="center">One of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">exactly</td>
+    <td valign="top">The version that this ant is exactly.
+      The format is major.minor.point.</td>
+  </tr>
+</table>
+  <p>
+    An example:
+  </p>
+<blockquote><pre>
+&lt;condition property="ant-is-exact-7"&gt;
+  &lt;antversion exactly="1.7.0"/&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/copy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/copy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/copy.html	(revision 14989)
@@ -0,0 +1,340 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Copy Task</title>
+</head>
+
+<body>
+
+<h2><a name="copy">Copy</a></h2>
+<h3>Description</h3>
+<p>Copies a file or resource collection to a new file or directory.  By default, files are
+only copied if the source file is newer than the destination file,
+or when the destination file does not exist.  However, you can explicitly
+overwrite files with the <code>overwrite</code> attribute.</p>
+
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select a group of files to copy.  To use a
+resource collection, the <code>todir</code> attribute must be set.</p>
+
+<p>
+<strong>Note: </strong>If you employ filters in your copy operation,
+you should limit the copy to text files. Binary files will be corrupted
+by the copy operation.
+This applies whether the filters are implicitly defined by the
+<a href="filter.html">filter</a> task or explicitly provided to the copy
+operation as <a href="../CoreTypes/filterset.html">filtersets</a>.
+  <em>See <a href="#encoding">encoding note</a></em>.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to copy.</td>
+    <td valign="top" align="center">Yes, unless a nested
+    resource collection element is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the copied files the same last modified
+      time as the original source files.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">The file to copy to.</td>
+    <td valign="top" align="center" rowspan="2">With the <code>file</code>
+      attribute, either <code>tofile</code> or <code>todir</code> can be used.
+      With nested resource collection elements, if the number of included files
+      is greater than 1, or if only the <code>dir</code> attribute is
+      specified in the <code>&lt;fileset&gt;</code>, or if the
+      <code>file</code> attribute is also specified, then only
+      <code>todir</code> is allowed.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory to copy to.</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">Indicates whether token filtering using the global
+      build-file filters should take place during the copy.
+      <em>Note</em>: Nested <code>&lt;filterset&gt;</code> elements will
+      always be used, even if this attribute is not specified, or its value is
+      <code>false</code> (<code>no</code>, or <code>off</code>).</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">flatten</td>
+    <td valign="top">Ignore the directory structure of the source files,
+      and copy all files into the directory specified by the <code>todir</code>
+      attribute.  Note that you can achieve the same effect by using a
+      <a href="../CoreTypes/mapper.html#flatten-mapper">flatten mapper</a>.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+     <td valign="top">Copy any empty directories included in the FileSet(s).
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">If false, log a warning message, but do not stop the
+       build, when the file to copy does not exist or one of the nested
+       filesets points to a directory that doesn't exist or an error occurs
+       while copying.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+     <td valign="top">Log the files that are being copied.</td>
+     <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding to assume when filter-copying the
+    files. <em>since Ant 1.5</em>.</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The encoding to use when writing the files.
+    <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to the value of the encoding
+    attribute if given or the default JVM encoding otherwise.</td>
+  </tr>
+  <tr>
+    <td valign="top">enablemultiplemappings</td>
+    <td valign="top">
+      If true the task will process to all the mappings for a
+      given source path. If false the task will only process
+      the first file or directory. This attribute is only relevant
+      if there is a mapper subelement.
+      <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">granularity</td>
+    <td valign="top">The number of milliseconds leeway to give before
+    deciding a file is out of date. This is needed because not every
+    file system supports tracking the last modified time to the
+    millisecond level. Default is 1 second, or 2 seconds on DOS
+    systems.  This can also be useful if source and target files live
+    on separate machines with clocks being out of sync.  <em>since Ant
+    1.6.2</em>.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset or any other resource collection</h4>
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select groups of files to copy.  To use a
+resource collection, the <code>todir</code> attribute must be set.</p>
+<p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
+supported as a nested element.</p>
+
+<h4>mapper</h4>
+ <p>You can define filename transformations by using a nested <a
+ href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
+ <code>&lt;copy&gt;</code> is the <a
+ href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a>.</p>
+  <p>
+    <em>Since Ant 1.6.3</em>,
+    one can use a filenamemapper type in place of the mapper element.
+  </p>
+
+<p>Note that the source name handed to the mapper depends on the
+resource collection you use.  If you use <code>&lt;fileset&gt;</code>
+or any other collection that provides a base directory, the name
+passed to the mapper will be a relative filename, relative to the base
+directory.  In any other case the absolute filename of the source will
+be used.</p>
+
+<h4>filterset</h4>
+ <p><a href="../CoreTypes/filterset.html">FilterSet</a>s are used to replace
+tokens in files that are copied.
+ To use a FilterSet, use the nested <code>&lt;filterset&gt;</code> element.</p>
+
+<h4>filterchain</h4>
+<p>The Copy task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.</p>
+
+<p>
+If <code>&lt;filterset&gt;</code> and <code>&lt;filterchain&gt;</code> elements are used inside the
+same <code>&lt;copy&gt;</code> task, all <code>&lt;filterchain&gt;</code> elements are processed first
+followed by <code>&lt;filterset&gt;</code> elements.
+</p>
+
+<h3>Examples</h3>
+<p><b>Copy a single file</b></p>
+<pre>
+  &lt;copy file=&quot;myfile.txt&quot; tofile=&quot;mycopy.txt&quot;/&gt;
+</pre>
+<p><b>Copy a single file to a directory</b></p>
+<pre>
+  &lt;copy file=&quot;myfile.txt&quot; todir=&quot;../some/other/dir&quot;/&gt;
+</pre>
+<p><b>Copy a directory to another directory</b></p>
+<pre>
+  &lt;copy todir=&quot;../new/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+  &lt;/copy&gt;
+</pre>
+<p><b>Copy a set of files to a directory</b></p>
+<pre>
+  &lt;copy todir=&quot;../dest/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;&gt;
+      &lt;exclude name=&quot;**/*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/copy&gt;
+
+  &lt;copy todir=&quot;../dest/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot; excludes=&quot;**/*.java&quot;/&gt;
+  &lt;/copy&gt;
+</pre>
+<p><b>Copy a set of files to a directory, appending
+<code>.bak</code> to the file name on the fly</b></p>
+<pre>
+  &lt;copy todir=&quot;../backup/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+    &lt;globmapper from=&quot;*&quot; to=&quot;*.bak&quot;/&gt;
+  &lt;/copy&gt;
+</pre>
+
+<p><b>Copy a set of files to a directory, replacing @TITLE@ with Foo Bar
+in all files.</b></p>
+<pre>
+  &lt;copy todir=&quot;../backup/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+    &lt;filterset&gt;
+      &lt;filter token=&quot;TITLE&quot; value=&quot;Foo Bar&quot;/&gt;
+    &lt;/filterset&gt;
+  &lt;/copy&gt;
+</pre>
+
+<p><b>Collect all items from the current CLASSPATH setting into a
+destination directory, flattening the directory structure.</b></p>
+<pre>
+  &lt;copy todir=&quot;dest&quot; flatten=&quot;true&quot;&gt;
+    &lt;path&gt;
+      &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+    &lt;/path&gt;
+  &lt;/copy&gt;
+</pre>
+
+<p><b>Copies some resources to a given directory.</b></p>
+<pre>
+  &lt;copy todir=&quot;dest&quot; flatten=&quot;true&quot;&gt;
+    &lt;resources&gt;
+      &lt;file file=&quot;src_dir/file1.txt&quot;/&gt;
+      &lt;url url=&quot;http://ant.apache.org/index.html&quot;/&gt;
+    &lt;/resources&gt;
+  &lt;/copy&gt;
+</pre>
+
+<p><b>Copies the two newest resources into a destination directory.</b></p>
+<pre>
+  &lt;copy todir=&quot;dest&quot; flatten=&quot;true&quot;&gt;
+    &lt;first count=&quot;2&quot;&gt;
+      &lt;sort&gt;
+        &lt;date xmlns=&quot;antlib:org.apache.tools.ant.types.resources.comparators&quot;/&gt;
+        &lt;resources&gt;
+          &lt;file file=&quot;src_dir/file1.txt&quot;/&gt;
+          &lt;file file=&quot;src_dir/file2.txt&quot;/&gt;
+          &lt;file file=&quot;src_dir/file3.txt&quot;/&gt;
+          &lt;url url=&quot;http://ant.apache.org/index.html&quot;/&gt;
+        &lt;/resources&gt;
+      &lt;/sort&gt;
+    &lt;/first&gt;
+  &lt;/copy&gt;
+</pre>
+
+
+<p><strong>Unix Note:</strong> File permissions are not retained when files
+are copied; they end up with the default <code>UMASK</code> permissions
+instead. This
+is caused by the lack of any means to query or set file permissions in the
+current Java runtimes. If you need a permission-preserving copy function,
+use <code>&lt;exec executable="cp" ... &gt;</code> instead.
+</p>
+
+<p><strong>Windows Note:</strong> If you copy a file to a directory
+where that file already exists, but with different casing,
+the copied file takes on the case of the original. The workaround is to
+<a href="delete.html">delete</a>
+the file in the destination directory before you copy it.
+</p>
+  <p>
+    <strong><a name="encoding">Important Encoding Note:</a></strong>
+    The reason that binary files when filtered get corrupted is that
+    filtering involves reading in the file using a Reader class. This
+    has an encoding specifing how files are encoded. There are a number
+    of different types of encoding - UTF-8, UTF-16, Cp1252, ISO-8859-1,
+    US-ASCII and (lots) others. On Windows the default character encoding
+    is Cp1252, on Unix it is usually UTF-8. For both of these encoding
+    there are illegal byte sequences (more in UTF-8 than for Cp1252).
+  </p>
+  <p>
+    How the Reader class deals with these illegal sequences is up to the
+    implementation
+    of the character decoder. The current Sun Java implemenation is to
+    map them to legal characters. Previous Sun Java (1.3 and lower) threw
+    a MalformedInputException. IBM Java 1.4 also thows this exception.
+    It is the mapping of the characters that cause the corruption.
+  </p>
+  <p>
+    On Unix, where the default is normally UTF-8, this is a <em>big</em>
+    problem, as it is easy to edit a file to contain non US Ascii characters
+    from ISO-8859-1, for example the Danish oe character. When this is
+    copied (with filtering) by Ant, the character get converted to a
+    question mark (or some such thing).
+  </p>
+  <p>
+    There is not much that Ant can do. It cannot figure out which
+    files are binary - a UTF-8 version of Korean will have lots of
+    bytes with the top bit set. It is not informed about illegal
+    character sequences by current Sun Java implementions.
+  </p>
+  <p>
+    One trick for filtering containing only US-ASCII is to
+    use the ISO-8859-1 encoding. This does not seem to contain
+    illegal character sequences, and the lower 7 bits are US-ASCII.
+    Another trick is to change the LANG environment variable from
+    something like "us.utf8" to "us".
+  </p>
+    
+
+
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/copydir.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/copydir.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/copydir.html	(revision 14989)
@@ -0,0 +1,136 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Copydir Task</title>
+</head>
+
+<body>
+
+<h2><a name="copydir">Copydir</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Copy task instead.</i></p>
+<h3>Description</h3>
+<p>Copies a directory tree from the source to the destination.</p>
+<p>It is possible to refine the set of files that are being copied. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>src</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the directory to copy.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the directory to copy to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place during
+      the copy</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">flatten</td>
+    <td valign="top">ignore directory structure of source directory,
+      copy all files into a single directory, specified by the <code>dest</code>
+      attribute (default is <code>false</code>).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">overwrite existing files even if the destination
+      files are newer (default is false).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;copydir src=&quot;${src}/resources&quot;
+           dest=&quot;${dist}&quot;
+  /&gt;</pre>
+<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>.</p>
+<pre>  &lt;copydir src=&quot;${src}/resources&quot;
+           dest=&quot;${dist}&quot;
+           includes=&quot;**/*.java&quot;
+           excludes=&quot;**/Test.java&quot;
+  /&gt;</pre>
+<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
+recursively. All java files are copied, except for files with the name <code>Test.java</code>.</p>
+<pre>  &lt;copydir src=&quot;${src}/resources&quot;
+           dest=&quot;${dist}&quot;
+           includes=&quot;**/*.java&quot;
+           excludes=&quot;mypackage/test/**&quot;/&gt;</pre>
+<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
+recursively. All java files are copied, except for the files under the <code>mypackage/test</code>
+directory.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/copyfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/copyfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/copyfile.html	(revision 14989)
@@ -0,0 +1,73 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Copyfile Task</title>
+</head>
+
+<body>
+
+<h2><a name="copyfile">Copyfile</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Copy task instead.</i></p>
+<h3>Description</h3>
+<p>Copies a file from the source to the destination. The file is only copied if
+the source file is newer than the destination file, or when the destination file
+does not exist.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the filename of the file to copy.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the filename of the file where to copy to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place during
+      the copy</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">overwrite existing files even if the destination
+      files are newer (default is false).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;copyfile src=&quot;test.java&quot; dest=&quot;subdir/test.java&quot;/&gt;</code></p>
+  <p><code>&lt;copyfile src=&quot;${src}/index.html&quot; dest=&quot;${dist}/help/index.html&quot;/&gt;</code></p>
+</blockquote>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvs.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvs.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvs.html	(revision 14989)
@@ -0,0 +1,201 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>CVS Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="cvs">Cvs</a></h2>
+<h3>Description</h3>
+<p>Handles packages/modules retrieved from a
+<a href="http://www.nongnu.org/cvs/" target="_top">CVS</a> repository.</p>
+<p><b>Important:</b> This task needs &quot;<code>cvs</code>&quot; on the path. If it isn't, you will get
+an error (such as error <code>2</code> on windows). If <code>&lt;cvs&gt;</code> doesn't work, try to execute <code>cvs.exe</code>
+from the command line in the target directory in which you are working.
+
+<p><b>CVSNT Note</b>: CVSNT prefers users to store the passwords
+inside the registry.  If the <a href="cvspass.html">cvspass task</a>
+and the passfile attribute don't seem to work for you, the most likely
+reason is that CVSNT ignores your .cvspass file completely.  See <a
+href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21657#c5">bug
+zilla report 21657</a> for recommended workarounds.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">the CVS command to execute.</td>
+    <td align="center" valign="top">No, default &quot;checkout&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top"><code>true</code> or <code>false</code> - if set
+    to true, this is the same as <code>compressionlevel=&quot;3&quot;</code></td>
+    <td align="center" valign="top">No. Defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">compressionlevel</td>
+    <td valign="top">A number between 1 and 9 (corresponding to
+    possible values for CVS' <code>-z#</code> argument). Any
+    other value is treated as <code>compression=&quot;false&quot;</code></td>
+    <td align="center" valign="top">No. Defaults to no compression.</td>
+  </tr>
+
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the <code>CVSROOT</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the <code>CVS_RSH</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the directory where the checked out files should
+    be placed.  Note that this is different from CVS's <code>-d</code> command line
+    switch as Ant will never shorten pathnames to avoid empty
+    directories.</td>
+    <td align="center" valign="top">No, default is project's basedir.</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tag</td>
+    <td valign="top">the tag of the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">date</td>
+    <td valign="top">Use the most recent revision no later than the given date</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">suppress informational messages. This is the same as <code>-q</code> on the command line.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">reallyquiet</td>
+    <td valign="top">suppress all messages. This is the same as
+      <code>-Q</code> on the command line.  <em>since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">noexec</td>
+    <td valign="top">report only, don't change any files.</td>
+    <td align="center" valign="top">No, default to &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">the file to direct standard output from the command.</td>
+    <td align="center" valign="top">No, default output to ANT Log as <code>MSG_INFO</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">the file to direct standard error from the command.</td>
+    <td align="center" valign="top">No, default error to ANT Log as <code>MSG_WARN</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">whether to append output/error when redirecting to a file.</td>
+    <td align="center" valign="top">No, default to &quot;false&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port <code>2401</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file <code>~/.cvspass</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if the command exits with a
+      return code other than <code>0</code>. Defaults to &quot;false&quot;</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvs cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+       package=&quot;ant&quot;
+       dest=&quot;${ws.dir}&quot;
+  /&gt;</pre>
+<p>checks out the package/module &quot;ant&quot; from the CVS
+repository pointed to by the <code>cvsRoot</code> attribute, and stores the files in &quot;<code>${ws.dir}</code>&quot;.</p>
+<pre>  &lt;cvs dest=&quot;${ws.dir}&quot; command=&quot;update&quot;/&gt;</pre>
+<p>updates the package/module that has previously been checked out into
+&quot;<code>${ws.dir}</code>&quot;.</p>
+
+<pre>  &lt;cvs command=&quot;-q diff -u -N&quot; output=&quot;patch.txt&quot;/&gt;</pre>
+
+<p>silently (<code>-q</code>) creates a file called <code>patch.txt</code> which contains a unified (<code>-u</code>) diff which includes new files added via &quot;cvs add&quot; (<code>-N</code>) and can be used as input to patch.
+The equivalent, using  <code>&lt;commandline&gt;</code> elements, is:
+</p>
+<pre>
+&lt;cvs output=&quot;patch&quot;&gt;
+    &lt;commandline&gt;
+        &lt;argument value=&quot;-q&quot;/&gt;
+        &lt;argument value=&quot;diff&quot;/&gt;
+        &lt;argument value=&quot;-u&quot;/&gt;
+        &lt;argument value=&quot;-N&quot;/&gt;
+    &lt;/commandline&gt;
+&lt;/cvs&gt;
+</pre>
+or:
+<pre>
+&lt;cvs output=&quot;patch&quot;&gt;
+    &lt;commandline&gt;
+        &lt;argument line=&quot;-q diff -u -N&quot;/&gt;
+    &lt;/commandline&gt;
+&lt;/cvs&gt;
+</pre>
+<p>
+You may include as many <code>&lt;commandline&gt;</code> elements as you like. 
+Each will inherit the <code>failonerror</code>, <code>compression</code>, and other &quot;global&quot; parameters
+from the <code>&lt;cvs&gt;</code> element.
+</p>
+
+
+<pre>  &lt;cvs command=&quot;update -A -d&quot;/&gt;</pre>
+<p>Updates from the head of repository ignoring sticky bits (<code>-A</code>) and creating any new directories as necessary (<code>-d</code>).</p>
+<p>Note: the text of the command is passed to cvs &quot;as-is&quot; so any cvs options should appear
+before the command, and any command options should appear after the command as in the diff example
+above. See <a href="http://ximbiot.com/cvs/wiki/index.php?title=Category:User_Documentation" target="_top">the cvs manual</a> for details,
+specifically the <a href="http://ximbiot.com/cvs/wiki/index.php?title=CVS--Concurrent_Versions_System_v1.12.12.1:_Guide_to_CVS_commands#SEC116" target="_top">Guide to CVS commands</a></p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvspass.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvspass.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvspass.html	(revision 14989)
@@ -0,0 +1,70 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>CVSPass Task</title>
+</head>
+
+<body>
+
+<h2><a name="cvs">cvspass</a></h2>
+<h3>Description</h3>
+<p>Adds entries to a .cvspass file. Adding entries to this file has the same affect as a cvs login command.</p>
+
+<p><b>CVSNT Note</b>: CVSNT prefers users to store the passwords
+inside the registry.  If the task doesn't seem to work for you, the
+most likely reason is that CVSNT ignores your .cvspass file
+completely.  See <a
+href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21657#c5">bug
+zilla report 21657</a> for recommended workarounds.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">cvsroot</td>
+    <td valign="top">the CVS repository to add an entry for.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">Password to be added to the password file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to add the entry to.</td>
+    <td align="center" valign="top">No, default is <code>~/.cvspass</code>.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvspass cvsroot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+       password=&quot;anoncvs&quot;
+  /&gt;</pre>
+<p>Adds an entry into the ~/.cvspass password file.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvstagdiff.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvstagdiff.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvstagdiff.html	(revision 14989)
@@ -0,0 +1,206 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>CvsTagDiff Task</title>
+</head>
+<body>
+<h2><a name="cvstagdiff">CvsTagDiff</a></h2>
+<h3>Description</h3>
+<p>Generates an XML-formatted report file of the changes between two tags or dates recorded in a
+<a href="http://www.nongnu.org/cvs/" target="_top">CVS</a> repository. </p>
+<p><b>Important:</b> This task needs "cvs" on the path. If it isn't, you will get
+an error (such as error 2 on windows). If <code>&lt;cvs&gt;</code> doesn't work, try to execute <code>cvs.exe</code>
+from the command line in the target directory in which you are working.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">startTag</td>
+    <td valign="top">The earliest tag from which diffs are to be
+     included in the report.</td>
+    <td align="center" valign="top" rowspan="2">exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">startDate</td>
+    <td valign="top">The earliest date from which diffs are to be
+     included in the report.<br>
+     accepts all formats accepted by the cvs command for -D date_spec arguments</td>
+  </tr>
+  <tr>
+    <td valign="top">endTag</td>
+    <td valign="top">The latest tag from which diffs are to be
+     included in the report.</td>
+    <td align="center" valign="top" rowspan="2">exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">endDate</td>
+    <td valign="top">The latest date from which diffs are to be
+     included in the report.<br>
+     accepts all formats accepted by the cvs command for -D date_spec arguments</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file in which to write the diff report.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h3>Parameters inherited from the <code>cvs</code> task</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top"><code>true</code>, <code>false</code>, or the number 1-9 (corresponding to possible values for CVS <code>-z#</code> argument). Any other value is treated as false</td>
+    <td align="center" valign="top">No. Defaults to no compression. if passed <code>true</code>, level 3 compression is assumed.</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the CVSROOT variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the CVS_RSH variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to analyze.<br>
+    Since ant 1.6
+    multiple packages separated by spaces are possible.
+    aliases corresponding to different modules are also possible</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">suppress informational messages.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port 2401.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file <code>~/.cvspass</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;cvstagdiff cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+                destfile=&quot;tagdiff.xml&quot;
+                package=&quot;ant&quot;
+                startTag=&quot;ANT_14&quot;
+                endTag=&quot;ANT_141&quot;
+  /&gt;</pre>
+
+<p>Generates a tagdiff report for all the changes that have been made
+in the <code>ant</code> module between the tags <code>ANT_14</code> and <code>ANT_141</code>.
+It writes these changes into the file <code>tagdiff.xml</code>.</p>
+
+<pre>  &lt;cvstagdiff
+                destfile=&quot;tagdiff.xml&quot;
+                package=&quot;ant&quot;
+                startDate=&quot;2002-01-01&quot;
+                endDate=&quot;2002-31-01&quot;
+  /&gt;</pre>
+
+<p>Generates a tagdiff report for all the changes that have been made
+in the <code>ant</code> module in january 2002. In this example <code>cvsRoot</code>
+has not been set. The current <code>cvsRoot</code> will be used (assuming the build is started
+from a folder stored in <code>cvs</code>.
+It writes these changes into the file <code>tagdiff.xml</code>.</p>
+
+<pre>  &lt;cvstagdiff
+                destfile=&quot;tagdiff.xml&quot;
+                package=&quot;ant jakarta-gump&quot;
+                startDate=&quot;2003-01-01&quot;
+                endDate=&quot;2003-31-01&quot;
+  /&gt;</pre>
+
+<p>Generates a tagdiff report for all the changes that have been made
+in the <code>ant</code> and <code>jakarta-gump</code> modules in january 2003.
+In this example <code>cvsRoot</code>
+has not been set. The current <code>cvsRoot</code> will be used (assuming the build is started
+from a folder stored in <code>cvs</code>.
+It writes these changes into the file <code>tagdiff.xml</code>.</p>
+
+<h4>Generate Report</h4>
+<p>Ant includes a basic XSLT stylesheet that you can use to generate 
+a HTML report based on the xml output. The following example illustrates
+how to generate a HTML report from the XML report.</p>
+
+<pre>
+        &lt;style in="tagdiff.xml" 
+               out="tagdiff.html" 
+               style="${ant.home}/etc/tagdiff.xsl"&gt;
+          &lt;param name="title" expression="Ant Diff"/&gt;
+          &lt;param name="module" expression="ant"/&gt;
+          &lt;param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/&gt;
+        &lt;/style&gt;
+</pre>
+
+<h4>Output</h4>
+<p>
+The cvsroot and package attributes of the tagdiff element are new in ant 1.6.<br>
+Notes on entry attributes :
+<table border="1">
+<tr><th>Attribute</th><th>Comment</th></tr>
+<tr><td>name</td><td>when reporting on one package, the package name is removed from the output</td></tr>
+<tr><td>revision</td><td>supplied for files which exist at the end of the reporting period</td></tr>
+<tr><td>prevrevision</td><td>supplied for files which exist at the beginning of the reporting period.<br>
+Old CVS servers do not supply it for deleted files. CVS 1.12.2 supplies it.</td></tr>
+</table>
+</p>
+<pre>
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;tagdiff startTag=&quot;ANT_14&quot; endTag=&quot;ANT_141&quot; 
+cvsroot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot; package=&quot;ant&quot;&gt;
+  &lt;entry&gt;
+    &lt;file&gt;
+      &lt;name&gt;src/main/org/apache/tools/ant/DirectoryScanner.java&lt;/name&gt;
+      &lt;revision&gt;1.15.2.1&lt;/revision&gt;
+      &lt;prevrevision&gt;1.15&lt;/prevrevision&gt;
+    &lt;/file&gt;
+  &lt;/entry&gt;
+&lt;/tagdiff&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvsversion.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvsversion.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/cvsversion.html	(revision 14989)
@@ -0,0 +1,109 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>CVSVersion Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="cvs">CvsVersion</a></h2>
+<h3>Description</h3>
+<p>
+This task allows to retrieve a CVS client and server version.
+  <i>Since Ant 1.6.1.</i>
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td colspan="3">Attributes from parent Cvs task which are meaningful here</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the <code>CVSROOT</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the <code>CVS_RSH</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">directory containing the checked out version of the project</td>
+    <td align="center" valign="top">No, default is project's basedir.</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port 2401.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file ~/.cvspass.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if the command exits with a
+      return code other than <code>0</code>. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td colspan="3">Specific attributes</td>
+  </tr>
+  <tr>
+    <td valign="top">clientversionproperty</td>
+    <td valign="top">Name of a property where the cvsclient version
+      should be stored</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">serverversionproperty</td>
+    <td valign="top">Name of a property where the cvs server version
+      should be stored</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvsversion cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+       passfile=&quot;/home/myself/.cvspass&quot;
+       serverversionproperty=&quot;apachecvsversion&quot;
+       clientversionproperty=&quot;localcvsversion&quot;
+  /&gt;</pre>
+<p>finds out the cvs client and server versions and stores the versions in the
+properties called apachecvsversion and localcvsversion</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/defaultexcludes.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/defaultexcludes.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/defaultexcludes.html	(revision 14989)
@@ -0,0 +1,107 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>DefaultExcludes Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">DefaultExcludes</a></h2>
+
+<p><em>since Ant 1.6</em></p>
+
+<h3>Description</h3>
+<p>Alters the default excludes for all subsequent processing in the
+build, and prints out the current default excludes if desired.
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">echo</td>
+    <td valign="top">whether or not to print out the default excludes.(defaults to false)</td>
+    <td valign="top" align="center">attribute "true" required if no
+                                    other attribute specified</td>
+  </tr>
+  <tr>
+    <td valign="top">default</td>
+    <td valign="top">go back to hard wired default excludes</td>
+    <td valign="top" align="center">attribute "true" required if no
+    if no other attribute is specified</td>
+  </tr>
+  <tr>
+    <td valign="top">add</td>
+    <td valign="top">the pattern to add to the default excludes</td>
+    <td valign="top" align="center">if no other attribute is specified</td>
+  </tr>
+  <tr>
+    <td valign="top">remove</td>
+    <td valign="top">remove the specified pattern from the default excludes</td>
+    <td valign="top" align="center">if no other attribute is specified</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<p>Print out the default excludes</p>
+
+<pre>  &lt;defaultexcludes echo=&quot;true&quot;/&gt;</pre>
+
+<p>Print out the default excludes and exclude all *.bak files in
+<strong>all</strong> further processing</p>
+
+<pre>  &lt;defaultexcludes echo=&quot;true&quot; add=&quot;**/*.bak&quot;/&gt;</pre>
+
+<p>Silently allow several fileset based tasks to operate on emacs
+backup files and then restore normal behavior</p>
+
+<pre>
+  &lt;defaultexcludes remove=&quot;**/*~&quot;/&gt;
+
+  (do several fileset based tasks here)
+
+  &lt;defaultexcludes default=&quot;true&quot;/&gt;
+</pre>
+
+<h3>Notes</h3>
+By default the pattern <tt>**/.svn</tt> and <tt>**/.svn/**</tt> are set as default 
+excludes. With version 1.3 Subversion supports the 
+<a target="_blank" href="http://subversion.tigris.org/svn_1.3_releasenotes.html">&quot;_svn hack&quot;</a>.
+That means, that the svn-libraries evaluate environment variables and use <i>.svn</i> 
+or <i>_svn</i> directory regarding to that value. We had chosen not to evaluate environment variables to
+get a more reliable build. Instead you have to change the settings by yourself by changing
+the exclude patterns:
+<pre>
+  &lt;defaultexcludes remove=&quot;**/.svn&quot;/&gt;
+  &lt;defaultexcludes remove=&quot;**/.svn/**&quot;/&gt;
+  &lt;defaultexcludes add=&quot;**/_svn&quot;/&gt;
+  &lt;defaultexcludes add=&quot;**/_svn/**&quot;/&gt;
+</pre>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/delete.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/delete.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/delete.html	(revision 14989)
@@ -0,0 +1,196 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Delete Task</title>
+</head>
+
+<body>
+
+<h2><a name="delete">Delete</a></h2>
+<h3>Description</h3>
+<p>Deletes a single file, a specified directory and all its files and
+subdirectories, or a set of files specified by one or more
+<a href="../CoreTypes/resources.html#collection">resource collection</a>s.
+The literal implication of <code>&lt;fileset&gt;</code> is that
+directories are not included; however the removal of empty directories can
+be triggered when using nested filesets by setting the
+<code>includeEmptyDirs</code> attribute to <i>true</i>. Note that this
+attribute is meaningless in the context of any of the various resource
+collection types that <i>do</i> include directories, but that no attempt
+will be made to delete non-empty directories in any case.</p>
+<p>
+If you use this task to delete temporary files created by editors
+and it doesn't seem to work, read up on the
+<a href="../dirtasks.html#defaultexcludes">default exclusion set</a>
+in <strong>Directory-based Tasks</strong>, and see the
+<code>defaultexcludes</code> attribute below.
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to delete, specified as either the simple
+     filename (if the file exists in the current base directory), a
+     relative-path filename, or a full-path filename.</td>
+    <td align="center" valign="middle" rowspan="2">At least one of the two,
+     unless nested resource collections are specified
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to delete, including all its files and
+     subdirectories.<br>
+     <b>Note:</b> <code>dir</code> is <em>not</em> used
+     to specify a directory name for <code>file</code>; <code>file</code>
+     and <code>dir</code> are independent of each other.<br>
+     <b>WARNING:</b> Do <b>not</b> set <code>dir</code> to
+     <code>&quot;.&quot;</code>, <code>&quot;${basedir}&quot;</code>,
+     or the full-pathname equivalent unless you truly <em>intend</em> to
+     recursively remove the entire contents of the current base directory
+     (and the base directory itself, if different from the current working
+     directory).</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to show the name of each deleted file.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</i></td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">If the specified file or directory does not exist,
+     do not display a diagnostic message (unless Ant
+     has been invoked with the <code>-verbose</code> or
+     <code>-debug</code> switches) or modify the exit status to
+     reflect an error.
+     When set to &quot;true&quot;, if a file or directory cannot be deleted,
+     no error is reported. This setting emulates the
+     <code>-f</code> option to the Unix <em>rm</em> command.
+     Setting this to &quot;true&quot; implies setting
+     <code>failonerror</code> to &quot;false&quot;.
+    </td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Controls whether an error (such as a failure to
+    delete a file) stops the build or is merely reported to the screen.
+    Only relevant if <code>quiet</code> is &quot;false&quot;.</td>
+    <td align="center" valign="top">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">includeemptydirs</td>
+    <td valign="top">Whether to delete empty directories
+                     when using filesets.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      Comma- or space-separated list of patterns of
+      files that must be deleted. All files are relative to the directory
+      specified in <code>dir</code>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      The name of a file. Each line of
+      this file is taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      Comma- or space-separated list of patterns of
+      files that must be excluded from the deletion list.
+      All files are relative to the directory specified in <code>dir</code>.
+      No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      The name of a file. Each line of
+      this file is taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      Whether to use <a href="../dirtasks.html#defaultexcludes">
+      default excludes.</a></td>
+    <td align="center" valign="top">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">deleteonexit</td>
+    <td valign="top">
+      Indicates whether to use File#deleteOnExit() if there is a
+      failure to delete a file, this causes the jvm to attempt
+      to delete the file when the jvm process is terminating.
+      <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;delete file=&quot;/lib/ant.jar&quot;/&gt;</pre>
+<p>deletes the file <code>/lib/ant.jar</code>.</p>
+<pre>  &lt;delete dir=&quot;lib&quot;/&gt;</pre>
+<p>deletes the <code>lib</code> directory, including all files
+and subdirectories of <code>lib</code>.</p>
+
+<pre>  &lt;delete&gt;
+    &lt;fileset dir=&quot;.&quot; includes=&quot;**/*.bak&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes all files with the extension <code>.bak</code> from the current directory
+and any subdirectories.</p>
+
+<pre>  &lt;delete includeEmptyDirs=&quot;true&quot;&gt;
+    &lt;fileset dir=&quot;build&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes all files and subdirectories of <code>build</code>, including
+<code>build</code> itself.</p>
+
+<pre>  &lt;delete includeemptydirs=&quot;true&quot;&gt;
+    &lt;fileset dir=&quot;build&quot; includes=&quot;**/*&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes all files and subdirectories of <code>build</code>, without
+<code>build</code> itself.</p>
+
+<pre>  &lt;delete defaultexcludes=&quot;false&quot;&gt;
+    &lt;fileset dir=&quot;src&quot; includes=&quot;**/.svn&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes the subversion metadata directories under <code>src</code>. Because <code>.svn</code>
+is on of the <a href="../dirtasks.html#defaultexcludes">default excludes</a> you have to use the 
+<code>defaultexcludes</code> flag, otherwise Ant wont delete these directories and the files in it.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/deltree.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/deltree.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/deltree.html	(revision 14989)
@@ -0,0 +1,56 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Deltree Task</title>
+</head>
+
+<body>
+
+<h2><a name="deltree">Deltree</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Delete task instead.</i></p>
+<h3>Description</h3>
+<p>Deletes a directory with all its files and subdirectories.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory to delete.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;deltree dir=&quot;dist&quot;/&gt;</pre>
+<p>deletes the directory <code>dist</code>, including its files and
+subdirectories.</p>
+<pre>  &lt;deltree dir=&quot;${dist}&quot;/&gt;</pre>
+<p>deletes the directory <code>${dist}</code>, including its files and
+subdirectories.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/dependset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/dependset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/dependset.html	(revision 14989)
@@ -0,0 +1,161 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>DependSet Task</title>
+</head>
+
+<body>
+
+<h2>DependSet</h2>
+
+A task to manage arbitrary dependencies between resources.
+
+<h3>Description</h3>
+
+<p>
+The dependset task compares a set of sources with a set of target
+files.  If any of the sources has been modified more recently than
+any of the target files, all of the target files are removed.
+</p>
+<p>
+Sources and target files are specified via nested
+<a href="../CoreTypes/resources.html#collection">Resource Collection</a>s;
+sources can be resources of any type, while targets are restricted to files
+only. At least one set of sources and one set of targets is required.
+</p>
+<p>
+Use a FileSet when you want to use wildcard include or exclude
+patterns and don't care about missing files.  Use a FileList when you
+want to consider the non-existence of a file as if it were out of
+date.  If there are any non-existing files in any source or target
+FileList, all target files will be removed.
+</p>
+<p>
+DependSet is useful to capture dependencies that are not or cannot be
+determined algorithmically.  For example, the <code>&lt;style&gt;</code> task only
+compares the source XML file and XSLT stylesheet against the target
+file to determined whether to restyle the source.  Using dependset you
+can extend this dependency checking to include a DTD or XSD file as
+well as other stylesheets imported by the main stylesheet.
+</p>
+
+<h3>Parameters</h3>
+
+<p>
+(none)
+</p>
+
+<h3>Parameters Specified as Nested Elements</h3>
+
+<h4>sources</h4>
+
+<p>The <code>&lt;sources&gt;</code> element is a
+<a href="../CoreTypes/resources.html#union">Union</a> into which
+arbitrary resource collections can be nested. <b>Since Ant 1.7</b>
+</p>
+
+<h4>srcfileset</h4>
+
+<p>
+The nested <code>&lt;srcfileset&gt;</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in
+this fileset will be compared against all files included in all of the
+<code>&lt;targetfileset&gt;</code> filesets and <code>&lt;targetfilelist&gt;</code>
+filelists.  Multiple <code>&lt;srcfileset&gt;</code> filesets may be specified.
+</p>
+
+<h4>srcfilelist</h4>
+
+<p>
+The nested <code>&lt;srcfilelist&gt;</code> element specifies a <a
+href="../CoreTypes/filelist.html">FileList</a>. All files included in
+this filelist will be compared against all files included in all of the 
+<code>&lt;targetfileset&gt;</code> filesets and <code>&lt;targetfilelist&gt;</code>
+filelists.  Multiple <code>&lt;srcfilelist&gt;</code> filelists may be specified.
+</p>
+
+<h4>targets</h4>
+
+<p>The <code>&lt;targets&gt;</code> element is a
+<a href="../using.html#path">Path</a> and thus can
+include any filesystem-based resource. <b>Since Ant 1.7</b>
+</p>
+
+<h4>targetfileset</h4>
+
+<p>
+The nested <code>&lt;targetfileset&gt;</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>.  All files included in
+this fileset will be compared against all files included in all of the
+<code>&lt;srcfileset&gt;</code> filesets and <code>&lt;sourcefilelist&gt;</code>
+filelists, and if any are older, they are all deleted.
+Multiple <code>&lt;targetfileset&gt;</code> filesets may be specified.
+</p>
+
+<h4>targetfilelist</h4>
+
+<p>
+The nested <code>&lt;targetfilelist&gt;</code> element specifies a <a
+href="../CoreTypes/filelist.html">FileList</a>.  All files included in
+this filelist will be compared against all files included in all of the
+<code>&lt;srcfileset&gt;</code> filesets and <code>&lt;sourcefilelist&gt;</code>
+filelists, and if any are older, they are all deleted.
+Multiple <code>&lt;targetfilelist&gt;</code> filelists may be specified.
+</p>
+
+<h3>Examples</h3>
+<blockquote> <pre>
+    &lt;dependset&gt;
+       &lt;srcfilelist
+           dir   = &quot;${dtd.dir}&quot;
+           files = &quot;paper.dtd,common.dtd&quot;/&gt;
+       &lt;srcfilelist
+           dir   = &quot;${xsl.dir}&quot;
+           files = &quot;common.xsl&quot;/&gt;
+       &lt;srcfilelist
+           dir   = &quot;${basedir}&quot;
+           files = &quot;build.xml&quot;/&gt;
+       &lt;targetfileset
+           dir      = &quot;${output.dir}&quot;
+           includes = &quot;**/*.html&quot;/&gt;
+    &lt;/dependset&gt;  </pre>
+</blockquote>
+
+<p> 
+In this example derived HTML files in the ${output.dir} directory 
+will be removed if any are out-of-date with respect to:</p>
+<ol>
+<li>the DTD of their source XML files</li>
+<li>a common DTD (imported by the main DTD)</li>
+<li>a subordinate XSLT stylesheet (imported by the main stylesheet), or</li>
+<li>the buildfile</li>
+</ol>
+
+<p>
+If any of the sources in the above example does not exist, all
+target files will also be removed.  To ignore missing sources instead,
+use filesets instead of filelists for the sources.
+</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/diagnostics.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/diagnostics.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/diagnostics.html	(revision 14989)
@@ -0,0 +1,48 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Diagnostics Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Diagnostics</a></h2>
+<h3>Diagnostics</h3>
+<p>
+
+Runs Ant's <code>-diagnostics</code> code inside Ant itself. This is good for 
+debugging Ant's configuration under an IDE. 
+
+<h3>Examples</h3>
+
+<pre>
+    &lt;target name="diagnostics" description="diagnostics"&gt;
+        &lt;diagnostics/&gt;
+    &lt;/target&gt;
+</pre>
+
+<p>
+    Prints out the current diagnostics dump.
+</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/dirname.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/dirname.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/dirname.html	(revision 14989)
@@ -0,0 +1,74 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Dirname Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Dirname</a></h2>
+<h3>Description</h3>
+<p>
+Task to determine the directory path of a specified file.
+</p>
+<p> 
+When this task executes, it will set the specified property to the
+value of the specified file (or directory) up to, but not including,
+the last path element. If the specified file is a path that ends in a
+filename, the filename will be dropped. If the specified file is just
+a filename, the directory will be the current directory.
+</p>
+  <p>
+    <em>Note:</em> This is not the same as the UNIX dirname command, which is
+    defined as "strip non-directory suffix from filename". &lt;dirname&gt;
+    determines the full directory path of the specified file.
+  </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The path to take the dirname of.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;dirname property=&quot;antfile.dir&quot; file=&quot;${ant.file}&quot;/&gt;</pre>
+will set <code>antfile.dir</code> to the directory path for
+<code>${ant.file}</code>.
+<pre>  &lt;dirname property=&quot;foo.dirname&quot; file=&quot;foo.txt&quot;/&gt;</pre>
+will set <code>foo.dirname</code> to the project's basedir.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/ear.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/ear.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/ear.html	(revision 14989)
@@ -0,0 +1,180 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>EAR Task</title>
+</head>
+
+<body>
+
+<h2><a name="ear">Ear</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="jar.html">Jar</a> task with special
+treatment for files that should end up in an Enterprise Application archive.</p>
+<p>(The Ear task is a shortcut for specifying the particular layout of a EAR file. 
+The same thing can be accomplished by using the <i>prefix</i> and <i>fullpath</i>
+attributes of zipfilesets in a Zip or Jar task.)</p>
+<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the Ear task.</p>
+
+<p><b>Please note that the zip format allows multiple files of the same
+fully-qualified name to exist within a single archive.  This has been
+documented as causing various problems for unsuspecting users.  If you wish
+to avoid this behavior you must set the <code>duplicate</code> attribute
+to a value other than its default, <code>&quot;add&quot;</code>.</b></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the EAR file to create.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">appxml</td>
+    <td valign="top">The deployment descriptor to use (META-INF/application.xml).</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">the manifest file to use.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Non-default level at which file compression should be
+    performed. Valid values range from 0 (no compression/fastest) to 9
+    (maximum compression/slowest). <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Nested elements</h3>
+<h4>metainf</h4>
+<p>The nested <code>metainf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>META-INF</code> directory of the ear file. If this
+fileset includes a file named <code>MANIFEST.MF</code>, the file is
+ignored and you will get a warning.</p>
+<h2>Example</h2>
+<pre>
+    &lt;ear destfile=&quot;${build.dir}/myapp.ear&quot; appxml=&quot;${src.dir}/metadata/application.xml&quot;&gt;
+      &lt;fileset dir=&quot;${build.dir}&quot; includes=&quot;*.jar,*.war&quot;/&gt;
+    &lt;/ear&gt;
+</pre>
+
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/echo.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/echo.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/echo.html	(revision 14989)
@@ -0,0 +1,180 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Echo Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Echo</a></h2>
+<h3>Description</h3>
+<p>Echoes a message to the current loggers and listeners which
+means <tt>System.out</tt> unless overridden. A <tt>level</tt>
+can be specified, which controls at what logging level the message is
+filtered at.
+<p>
+The task can also echo to a file, in which case the option to append rather
+than overwrite the file is available, and the <tt>level</tt> option is
+ignored</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">the message to echo.</td>
+    <td valign="top" align="center">No.  Text may also be included in a
+      character section within this element.  If neither is included a 
+      blank line will be emitted in the output.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file to write the message to.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Append to an existing file (or
+      <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html#FileWriter(java.lang.String, boolean)" target="_blank">
+      open a new file / overwrite an existing file</a>)?
+    </td>
+    <td valign="top" align="center">No - default is false.</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Control the level at which this message is reported.
+            One of "error", "warning", "info", "verbose", "debug" (decreasing order)</td>
+    <td valign="top" align="center">No - default is "warning".</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use, default is ""; the local system encoding. <em>since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>
+&lt;echo message=&quot;Hello, world&quot;/&gt;
+</pre>
+<pre>
+&lt;echo message=&quot;Embed a line break:${line.separator}&quot;/&gt;
+</pre>
+<pre>
+&lt;echo&gt;Embed another:${line.separator}&lt;/echo&gt;
+</pre>
+<pre>
+&lt;echo&gt;This is a longer message stretching over
+two lines.
+&lt;/echo&gt;
+</pre>
+<pre>
+&lt;echo&gt;
+This is a longer message stretching over
+three lines; the first line is a blank
+&lt;/echo&gt;
+</pre>
+The newline immediately following the &lt;echo&gt; tag will be part of the output.<br>
+Newlines in character data within the content of an element are not discarded by XML parsers.<br>
+See <a href="http://www.w3.org/TR/2004/REC-xml-20040204/#sec-line-ends">
+W3C Recommendation 04 February 2004 / End of Line handling
+</a> for more details.
+
+<pre>&lt;echo message=&quot;Deleting drive C:&quot; level=&quot;debug&quot;/&gt;</pre>
+A message which only appears in <tt>-debug</tt> mode.
+<pre>&lt;echo level=&quot;error&quot;&gt;
+Imminent failure in the antimatter containment facility.
+Please withdraw to safe location at least 50km away.
+&lt;/echo&gt;
+</pre>
+A message which appears even in <tt>-quiet</tt> mode.
+
+<pre>&lt;echo file="runner.csh" append="false"&gt;#\!/bin/tcsh
+java-1.3.1 -mx1024m ${project.entrypoint} $$*
+&lt;/echo&gt;</pre>
+Generate a shell script by echoing to a file.
+Note the use of a double $ symbol to stop Ant
+filtering out the single $ during variable expansion
+
+<p>Depending on the loglevel Ant runs, messages are print out or silently
+ignored:
+<table>
+<tr>
+  <th>Ant-Statement</th>
+  <th>-quiet, -q</th>
+  <th><i>no statement</th>
+  <th>-verbose, -v</th>
+  <th>-debug, -d</th>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is error message." level="error" /&gt;</pre></td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is warning message." /&gt;</pre></td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is warning message." level="warning" /&gt;</pre></td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is info message." level="info" /&gt;</pre></td>
+  <td align="center">not logged</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is verbose message." level="verbose" /&gt;</pre></td>
+  <td align="center">not logged</td>
+  <td align="center">not logged</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is debug message." level="debug" /&gt;</pre></td>
+  <td align="center">not logged</td>
+  <td align="center">not logged</td>
+  <td align="center">not logged</td>
+  <td align="center">ok</td>
+</tr>
+</table>
+
+
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/echoxml.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/echoxml.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/echoxml.html	(revision 14989)
@@ -0,0 +1,65 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>EchoXML Task</title>
+</head>
+
+<body>
+
+<h2>EchoXML</h2>
+<h3>Description</h3>
+<p>Echo nested XML to the console or a file. <b>Since Ant 1.7</b></p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to receive the XML. If omitted nested
+      XML will be echoed to the log.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether to append <code>file</code>, if specified.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+Nested XML content is required.
+
+<h3>Examples</h3>
+<pre>&lt;echoxml file=&quot;subbuild.xml&quot;&gt;
+  &lt;project default=&quot;foo&quot;&gt;
+    &lt;target name=&quot;foo&quot;&gt;
+      &lt;echo&gt;foo&lt;/echo&gt;
+    &lt;/target&gt;
+  &lt;/project&gt;
+&lt;/echoxml&gt;
+</pre>
+<p>Creates an Ant buildfile, <code>subbuild.xml</code>.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/exec.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/exec.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/exec.html	(revision 14989)
@@ -0,0 +1,427 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Exec Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="exec">Exec</a></h2>
+<h3>Description</h3>
+<p>Executes a system command. When the <i>os</i> attribute is specified, then
+the command is only executed when Ant is run on one of the specified operating
+systems.</p>
+
+<p>Note that you cannot interact with the forked program, the only way
+to send input to it is via the input and inputstring attributes. Also note that
+since Ant 1.6, any attempt to read input in the forked program will receive an
+EOF (-1). This is a change from Ant 1.5, where such an attempt would block.</p>
+
+
+
+<h4>Windows Users</h4>
+<p>The <code>&lt;exec&gt;</code> task delegates to <code>Runtime.exec</code> which in turn
+apparently calls <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp">
+<code>::CreateProcess</code></a>. It is the latter Win32 function that defines
+the exact semantics of the call. In particular, if you do not put a file extension
+on the executable, only ".EXE" files are looked for, not ".COM", ".CMD" or other file
+types listed in the environment variable PATHEXT. That is only used by the shell.
+</p>
+  <p>
+    Note that <em>.bat</em> files cannot in general by executed directly.
+    One normally needs to execute the command shell executable <code>cmd</code>
+    using the <code>/c</code> switch.
+  </p>
+  <blockquote>
+<pre>
+&lt;target name="help"&gt;
+  &lt;exec executable="cmd"&gt;
+    &lt;arg value="/c"/&gt;
+    &lt;arg value="ant.bat"/&gt;
+    &lt;arg value="-p"/&gt;
+  &lt;/exec&gt;
+&lt;/target&gt;
+</pre></blockquote>
+
+<h4>Cygwin Users</h4>
+<p>In general the <code>&lt;exec&gt;</code> task will not understand paths such as /bin/sh for
+the executable parameter. This is because the Java VM in which Ant is running is a
+Windows executable and is not aware of Cygwin conventions.
+</p>
+
+<h4>OpenVMS Users</h4>
+<p>The command specified using <code>executable</code> and
+<code>&lt;arg&gt;</code> elements is executed exactly as specified
+inside a temporary DCL script.  This has some implications:
+<ul>
+<li>paths have to be written in VMS style</li>
+<li>if your <code>executable</code> points to a DCL script remember to
+prefix it with an <code>@</code>-sign
+(e.g. <code>executable="@[FOO]BAR.COM"</code>), just as you would in a
+DCL script</li>
+</ul>
+For <code>&lt;exec&gt;</code> to work in an environment with a Java VM
+older than version 1.4.1-2 it is also <i>required</i> that the logical
+<code>JAVA$FORK_SUPPORT_CHDIR</code> is set to <code>TRUE</code> in
+the job table (see the <i>JDK Release Notes</i>).</p>
+
+<p>Please note that the Java VM provided by HP doesn't follow OpenVMS'
+conventions of exit codes.  If you run a Java VM with this task, the
+task may falsely claim that an error occurred (or silently ignore an
+error).  Don't use this task to run <code>JAVA.EXE</code>, use a
+<code>&lt;java&gt;</code> task with the <code>fork</code> attribute
+set to <code>true</code> instead as this task will follow the VM's
+interpretation of exit codes.</p>
+
+<h4>RedHat S/390 Users</h4>
+
+<p>It has been <a
+href="http://listserv.uark.edu/scripts/wa.exe?A1=ind0404&L=vmesa-l#33">reported
+on the VMESA-LISTSERV</a> that shell scripts invoked via the Ant Exec
+task must have their interpreter specified, i.e., the scripts must
+start with something like:
+
+<blockquote>
+<pre>
+#!/bin/bash
+</pre>
+</blockquote>
+
+or the task will fail as follows:
+
+<blockquote>
+<pre>
+[exec] Warning: UNIXProcess.forkAndExec native error: Exec format error
+[exec] Result: 255
+</pre>
+</blockquote>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">the command to execute with all command line
+      arguments. <b>deprecated, use executable and nested
+      <code>&lt;arg&gt;</code> elements instead</b>.</td>
+    <td align="center" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">the command to execute without any command line
+      arguments.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory in which the command should be executed.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">os</td>
+    <td valign="top">list of Operating Systems on which the command may be
+      executed. If the current OS's name is contained in this list, the command will
+      be executed. The OS's name is determined by the Java Virtual machine and is set
+      in the &quot;os.name&quot; system property.
+      </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">osfamily</td>
+    <td valign="top">OS family as used in the &lt;os&gt; condition.
+    <em>since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">spawn</td>
+    <td valign="top">whether or not you want the command to be spawned<br>
+    Default is false.<br>
+    If you spawn a command, its output will not be logged by ant.<br>
+    The input, output, error, and result property settings are not active when spawning a process.<br>
+    <em>since Ant 1.6</em>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output. If the error stream
+      is not also redirected to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the
+    command should be redirected.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error output in Ant's
+                     log and you are redirecting output to a file/property. The error
+                     output will not be included in the output file/property. If you
+                     redirect error with the &quot;error&quot; or &quot;errorProperty&quot;
+                     attributes, this will have no effect.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output and error files should be appended to or overwritten.
+    Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the
+      command should be stored. Unless the error stream is redirected to a separate
+      file or stream, this property will include the error output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the
+      command should be stored.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard input
+                     is taken. This attribute is mutually exclusive with the
+                     inputstring attribute.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+                     executed command. This attribute is mutually exclusive with the
+                     input attribute.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resultproperty</td>
+    <td valign="top">the name of a property in which the return code of the
+      command should be stored. Only of interest if failonerror=false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+      specified time (given in milliseconds).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      return code signaling failure. Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failifexecutionfails</td>
+    <td valign="top">Stop the build if we can't start the program.
+      Defaults to true. </td>
+    <td align="center" valign="top">No</td>
+  </tr>  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate old environment when new environment
+      variables are specified.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">vmlauncher</td>
+    <td valign="top">Run command using the Java VM's execution facilities
+        where available. If set to false the underlying OS's shell,
+        either directly or through the antRun scripts, will be used.
+        Under some operating systems, this gives access to facilities
+        not normally available through the VM including, under Windows,
+        being able to execute scripts, rather than their associated
+        interpreter.  If you want to specify the name of the
+        executable as a relative path to the directory given by the
+        dir attribute, it may become necessary to set vmlauncher to
+        false as well.</td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">resolveexecutable</td>
+    <td valign="top">When this attribute is true, the name of the executable
+                     is resolved firstly against the project basedir and
+                     if that does not exist, against the execution
+                     directory if specified. On Unix systems, if you only
+                     want to allow execution of commands in the user's path,
+                     set this to false.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">searchpath</td>
+    <td valign="top">When this attribute is true, then
+                     system path environment variables will
+                     be searched when resolving the location
+                     of the executable. <em>since Ant 1.6.3</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;exec dir=&quot;${src}&quot; executable=&quot;cmd.exe&quot; os=&quot;Windows 2000&quot; output=&quot;dir.txt&quot;&gt;
+  &lt;arg line=&quot;/c dir&quot;/&gt;
+&lt;/exec&gt;</pre>
+</blockquote>
+<h3>Parameters specified as nested elements</h3>
+<h4>arg</h4>
+<p>Command line arguments should be specified as nested
+<code>&lt;arg&gt;</code> elements. See <a
+href="../using.html#arg">Command line arguments</a>.</p>
+<h4><a name="env">env</a></h4>
+<p>It is possible to specify environment variables to pass to the
+system command via nested <code>&lt;env&gt;</code> elements.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">key</td>
+    <td valign="top">
+      The name of the environment variable.
+      <br/>
+      <em>Note: (Since Ant 1.7)</em>
+      For windows, the name is case-insensitive.
+    </td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The literal value for the environment variable.</td>
+    <td align="center" rowspan="3">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">The value for a PATH like environment
+      variable. You can use ; or : as path separators and Ant will
+      convert it to the platform's local conventions.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The value for the environment variable. Will be
+      replaced by the absolute filename of the file by Ant.</td>
+  </tr>
+</table>
+<a name="redirector"><h4>redirector</h4></a>
+<i><b>Since Ant 1.6.2</b></i>
+<p>A nested <a href="../CoreTypes/redirector.html">I/O Redirector</a>
+can be specified.  In general, the attributes of the redirector behave
+as the corresponding attributes available at the task level.  The most
+notable peculiarity stems from the retention of the &lt;exec&gt;
+attributes for backwards compatibility.  Any file mapping is done
+using a <CODE>null</CODE> sourcefile; therefore not all
+<a href="../CoreTypes/mapper.html">Mapper</a> types will return
+results.  When no results are returned, redirection specifications
+will fall back to the task level attributes.  In practice this means that
+defaults can be specified for input, output, and error output files.
+</p>
+<h3>Errors and return codes</h3>
+By default the return code of a <code>&lt;exec&gt;</code> is ignored; when you set
+<code>failonerror="true"</code> then any return code signaling failure
+(OS specific) causes the build to fail. Alternatively, you can set
+<code>resultproperty</code> to the name of a property and have it assigned to
+the result code (barring immutability, of course).
+<p>
+If the attempt to start the program fails with an OS dependent error code,
+then <code>&lt;exec&gt;</code> halts the build unless <code>failifexecutionfails</code>
+is set to <code>false</code>. You can use that to run a program if it exists, but
+otherwise do nothing.
+<p>
+What do those error codes mean? Well, they are OS dependent. On Windows
+boxes you have to look at
+<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes__0-499_.asp">
+the documentation</a>; error code 2 means 'no such program', which usually means
+it is not on the path. Any time you see such an error from any Ant task, it is
+usually not an Ant bug, but some configuration problem on your machine.
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;exec executable=&quot;emacs&quot;&gt;
+  &lt;env key=&quot;DISPLAY&quot; value=&quot;:1.0&quot;/&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+<p>starts <code>emacs</code> on display 1 of the X Window System.</p>
+
+<blockquote><pre>
+&lt;property environment=&quot;env&quot;/&gt;
+&lt;exec ... &gt;
+  &lt;env key=&quot;PATH&quot; path=&quot;${env.PATH}:${basedir}/bin&quot;/&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+<p>adds <code>${basedir}/bin</code> to the <code>PATH</code> of the
+system command.</p>
+
+<blockquote><pre>
+&lt;property name="browser" location="C:/Program Files/Internet Explorer/iexplore.exe"/&gt;
+&lt;property name="file" location="ant/docs/manual/index.html"/&gt;
+
+&lt;exec executable="${browser}" spawn="true"&gt;
+    &lt;arg value="${file}"/&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+<p>Starts the <i>${browser}</i> with the specified <i>${file}</i> and end the
+Ant process. The browser will remain.</p>
+
+<blockquote><pre>
+&lt;exec executable=&quot;cat&quot;&gt;
+    &lt;redirector outputproperty=&quot;redirector.out&quot;
+                errorproperty=&quot;redirector.err&quot;
+                inputstring=&quot;blah before blah&quot;&gt;
+        &lt;inputfilterchain&gt;
+            &lt;replacestring from=&quot;before&quot; to=&quot;after&quot;/&gt;
+        &lt;/inputfilterchain&gt;
+        &lt;outputmapper type=&quot;merge&quot; to=&quot;redirector.out&quot;/&gt;
+        &lt;errormapper type=&quot;merge&quot; to=&quot;redirector.err&quot;/&gt;
+    &lt;/redirector&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+
+Sends the string &quot;blah before blah&quot; to the &quot;cat&quot; executable,
+using an <a href="../CoreTypes/filterchain.html">&lt;inputfilterchain&gt;</a>
+to replace &quot;before&quot; with &quot;after&quot; on the way in.
+Output is sent to the file &quot;redirector.out&quot; and stored
+in a property of the same name.  Similarly, error output is sent to
+a file and a property, both named &quot;redirector.err&quot;.
+
+
+<p><b>Note:</b> do not try to specify arguments using
+a simple arg-element and separate them by spaces. This results in
+only a single argument containing the entire string.</p>
+<p>
+<b>Timeouts: </b> If a timeout is specified, when it is reached the
+sub process is killed and a message printed to the log. The return
+value of the execution will be "-1", which will halt the build if
+<tt>failonerror=true</tt>, but be ignored otherwise.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/fail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/fail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/fail.html	(revision 14989)
@@ -0,0 +1,129 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Fail Task</title>
+</head>
+
+<body>
+
+<h2><a name="fail">Fail</a></h2>
+<h3>Description</h3>
+<p>Exits the current build (just throwing a BuildException), optionally printing additional information.</p>
+<p>The message of the Exception can be set via the message attribute
+or character data nested into the element.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">A message giving further information on why the build exited</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only fail if a property of the given name exists
+      in the current project</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only fail if a property of the given name doesn't
+      exist in the current project</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">status</td>
+    <td valign="top">Exit using the specified status code;
+      assuming the generated Exception is not caught, the
+      JVM will exit with this status. <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<p>As an alternative to the <i>if</i>/<i>unless</i> attributes,
+  conditional failure can be achieved using a single nested
+  <code>&lt;condition&gt;</code> element, which should contain exactly one
+  core or custom condition.  For information about conditions, see
+  <a href="conditions.html">here</a>.<br><b>Since Ant 1.6.2</b>
+</p>
+
+<h3>Examples</h3>
+<pre>  &lt;fail/&gt;</pre>
+<p>will exit the current build with no further information given.</p>
+<pre>
+BUILD FAILED
+
+build.xml:4: No message
+</pre>
+
+<pre>  &lt;fail message=&quot;Something wrong here.&quot;/&gt;</pre>
+<p>will exit the current build and print something
+  like the following to wherever your output goes:
+</p>
+<pre>
+BUILD FAILED
+
+build.xml:4: Something wrong here.
+</pre>
+
+<pre>  &lt;fail&gt;Something wrong here.&lt;/fail&gt;</pre>
+<p>will give the same result as above.</p>
+
+<pre>  &lt;fail unless=&quot;thisdoesnotexist&quot;/&gt;</pre>
+<p>will exit the current build and print something
+  like the following to wherever your output goes:
+</p>
+<pre>
+BUILD FAILED
+
+build.xml:2: unless=thisdoesnotexist
+</pre>
+
+Using a condition to achieve the same effect:
+
+<pre>
+  &lt;fail&gt;
+     &lt;condition&gt;
+       &lt;not&gt;
+         &lt;isset property=&quot;thisdoesnotexist&quot;/&gt;
+       &lt;/not&gt;
+     &lt;/condition&gt;
+   &lt;/fail&gt;
+</pre>
+
+<p>Output:</p>
+<pre>
+BUILD FAILED
+
+build.xml:2: condition satisfied
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/filter.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/filter.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/filter.html	(revision 14989)
@@ -0,0 +1,79 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Filter Task</title>
+</head>
+
+<body>
+
+<h2><a name="filter">Filter</a></h2>
+<h3>Description</h3>
+<p>Sets a token filter for this project or read multiple token filter from
+an input file and sets these as filters.
+Token filters are used by all tasks that perform file copying operations
+through the Project commodity methods. See the warning
+<a href="../using.html#filters"><em>here</em></a> before using.</p>
+<p>Note 1: the token string must not contain the separators chars (@).<br>
+Note 2: Either token and value attributes must be provided, or only the
+filtersfile attribute.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">token</td>
+    <td valign="top">the token string without @</td>
+    <td align="center" valign="top">Yes*</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the string that should be put to replace the token when the 
+      file is copied</td>
+    <td align="center" valign="top">Yes*</td>
+  </tr>
+  <tr>
+    <td valign="top">filtersfile</td>
+    <td valign="top">The file from which the filters must be read. This file must be a formatted as a property file. </td>
+    <td align="center" valign="top">Yes*</td>
+  </tr>
+</table>
+<p>* see notes 1 and 2 above parameters table.</p>
+<h3>Examples</h3>
+<pre>  &lt;filter token=&quot;year&quot; value=&quot;2000&quot;/&gt;
+  &lt;copy todir=&quot;${dest.dir}&quot; filtering=&quot;true&quot;&gt;
+    &lt;fileset dir=&quot;${src.dir}&quot;/&gt;
+  &lt;/copy&gt;</pre> 
+<p>will copy recursively all the files from the <i>src.dir</i> directory into
+the <i>dest.dir</i> directory replacing all the occurrences of the string <i>@year@</i>
+with <i>2000.</i></p>
+<pre>  &lt;filter filtersfile=&quot;deploy_env.properties&quot;/&gt;</pre>
+will read all property entries from the <i>deploy_env.properties</i> file
+and set these as filters.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/fixcrlf.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/fixcrlf.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/fixcrlf.html	(revision 14989)
@@ -0,0 +1,327 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FixCRLF Task</title>
+</head>
+
+<body>
+
+<h2><a name="fixcrlf">FixCRLF</a></h2>
+<h3>Description</h3>
+  <p>
+    Adjusts a text file to local conventions.
+  </p>
+
+  <p>
+    The set of files to be adjusted can be refined with the
+    <i>includes</i>, <i>includesfile</i>, <i>excludes</i>,
+    <i>excludesfile</i> and <i>defaultexcludes</i>
+    attributes. Patterns provided through the <i>includes</i> or
+    <i>includesfile</i> attributes specify files to be
+    included. Patterns provided through the <i>exclude</i> or
+    <i>excludesfile</i> attribute specify files to be
+    excluded. Additionally, default exclusions can be specified with
+    the <i>defaultexcludes</i> attribute. See the section on <a
+    href="../dirtasks.html#directorybasedtasks">directory-based
+    tasks</a>, for details of file inclusion/exclusion patterns
+    and their usage.
+  </p>
+
+  <p>
+    This task forms an implicit
+    <a href="../CoreTypes/fileset.html">FileSet</a> and
+    supports all attributes of <code>&lt;fileset&gt;</code>
+    (<code>dir</code> becomes <code>srcdir</code>) as well as the nested
+    <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+    <code>&lt;patternset&gt;</code> elements.
+  </p>
+
+  <p>
+    The output file is only written if it is a new file, or if it
+    differs from the existing file.  This prevents spurious
+    rebuilds based on unchanged files which have been regenerated
+    by this task.
+  </p>
+
+  <p>
+    Since <b>Ant 1.7</b>, this task can be used in a
+    <a href="../CoreTypes/filterchain.html">filterchain</a>.
+  </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="center" rowspan="2"><b>Attribute</b></td>
+    <td valign="center" rowspan="2"><b>Description</b></td>
+    <td align="center" valign="top" colspan="2"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="center"><b>As Task</b></td>
+    <td valign="center"><b>As Filter</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">Where to find the files to be fixed up.</td>
+    <td valign="top" align="center" rowspan="2">One of these</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">Name of a single file to fix. <b>Since Ant 1.7</b></td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">destDir</td>
+    <td valign="top">Where to place the corrected files.  Defaults to
+      srcDir (replacing the original file).</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern.</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.
+    </td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the files.</td>
+    <td align="center">No; defaults to default JVM encoding.</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The encoding to use when writing the files.
+                     <b>Since Ant 1.7</b></td>
+    <td align="center">No; defaults to the value of the encoding attribute.</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Whether to preserve the last modified
+                     date of source files. <b>Since Ant 1.6.3</b></td>
+    <td align="center">No; default is <i>false</i></td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">eol</td>
+    <td valign="top">
+      Specifies how end-of-line (EOL) characters are to be
+      handled.  The EOL characters are CR, LF and the pair CRLF.
+      Valid values for this property are:
+      <ul>
+        <li>asis: leave EOL characters alone</li>
+        <li>cr: convert all EOLs to a single CR</li>
+        <li>lf: convert all EOLs to a single LF</li>
+        <li>crlf: convert all EOLs to the pair CRLF</li>
+        <li>mac: convert all EOLs to a single CR</li>
+        <li>unix: convert all EOLs to a single LF</li>
+        <li>dos: convert all EOLs to the pair CRLF</li>
+      </ul>
+      Default is based on the platform on which you are running this task.
+      For Unix platforms (including Mac OS X), the default is &quot;lf&quot;.
+      For DOS-based systems (including Windows), the default is
+      &quot;crlf&quot;.
+      For Mac environments other than OS X, the default is &quot;cr&quot;.
+      <p>
+        This is the preferred method for specifying EOL.  The
+        &quot;<i><b>cr</b></i>&quot; attribute (see below) is
+        now deprecated.
+      </p>
+      <p>
+        <i>N.B.</i>: One special case is recognized. The three
+        characters CR-CR-LF are regarded as a single EOL.
+        Unless this property is specified as &quot;asis&quot;,
+        this sequence will be converted into the specified EOL
+        type.
+      </p>
+    </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cr</td>
+    <td valign="top">
+      <i><b>Deprecated.</b></i> Specifies how CR characters are
+      to be handled at end-of-line (EOL).  Valid values for this
+      property are:
+      <ul>
+        <li>asis: leave EOL characters alone.</li>
+        <li>
+          add: add a CR before any single LF characters. The
+          intent is to convert all EOLs to the pair CRLF.
+        </li>
+        <li>
+          remove: remove all CRs from the file.  The intent is
+          to convert all EOLs to a single LF.
+        </li>
+      </ul>
+      Default is based on the platform on which you are running
+      this task.  For Unix platforms, the default is &quot;remove&quot;.
+      For DOS based systems (including Windows), the default is
+      &quot;add&quot;.
+      <p>
+        <i>N.B.</i>: One special case is recognized. The three
+        characters CR-CR-LF are regarded as a single EOL.
+        Unless this property is specified as &quot;asis&quot;,
+        this sequence will be converted into the specified EOL
+        type.
+      </p>
+    </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">javafiles</td>
+    <td valign="top">
+      Used only in association with the
+      &quot;<i><b>tab</b></i>&quot; attribute (see below), this
+      boolean attribute indicates whether the fileset is a set
+      of java source files
+      (&quot;yes&quot;/&quot;no&quot;). Defaults to
+      &quot;no&quot;.  See notes in section on &quot;tab&quot;.
+    </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tab</td>
+    <td valign="top">Specifies how tab characters are to be handled.  Valid
+      values for this property are:
+      <ul>
+      <li>add: convert sequences of spaces which span a tab stop to tabs</li>
+      <li>asis: leave tab and space characters alone</li>
+      <li>remove: convert tabs to spaces</li>
+      </ul>
+      Default for this parameter is &quot;asis&quot;.
+      <p>
+        <i>N.B.</i>: When the attribute
+        &quot;<i><b>javafiles</b></i>&quot; (see above) is
+        &quot;true&quot;, literal TAB characters occurring
+        within Java string or character constants are never
+        modified.  This functionality also requires the
+        recognition of Java-style comments.
+      </p>
+      <p>
+  	<i>N.B.</i>: There is an incompatibility between this
+  	and the previous version in the handling of white
+  	space at the end of lines.  This version does
+  	<i><b>not</b></i> remove trailing whitespace on lines.
+      </p>
+    </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tablength</td>
+    <td valign="top">TAB character interval. Valid values are between
+      2 and 80 inclusive.  The default for this parameter is 8.</td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">eof</td>
+    <td valign="top">Specifies how DOS end of file (control-Z) characters are
+      to be handled.  Valid values for this property are:
+      <ul>
+      <li>add: ensure that there is an EOF character at the end of the file</li>
+      <li>asis: leave EOF characters alone</li>
+      <li>remove: remove any EOF character found at the end</li>
+      </ul>
+      Default is based on the platform on which you are running this task.
+      For Unix platforms, the default is remove.  For DOS based systems
+      (including Windows), the default is asis.
+      </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fixlast</td>
+    <td valign="top">Whether to add a missing EOL to the last line
+                     of a processed file. <b>Since Ant 1.6.1</b></td>
+    <td align="center" colspan="2">No; default is <i>true</i></td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>&lt;fixcrlf srcdir=&quot;${src}&quot; includes=&quot;**/*.sh&quot;
+         eol=&quot;lf&quot; eof=&quot;remove&quot; /&gt;</pre>
+<p>Replaces EOLs with LF characters and removes eof characters from
+  the shell scripts.  Tabs and spaces are left as is.</p>
+<pre>&lt;fixcrlf srcdir=&quot;${src}&quot;
+         includes=&quot;**/*.bat&quot; eol=&quot;crlf&quot; /&gt;</pre>
+<p>Replaces all EOLs with cr-lf pairs in the batch files.
+  Tabs and spaces are left as is.
+  EOF characters are left alone if run on
+  DOS systems, and are removed if run on Unix systems.</p>
+<pre>&lt;fixcrlf srcdir=&quot;${src}&quot;
+         includes=&quot;**/Makefile&quot; tab=&quot;add&quot; /&gt;</pre>
+<p>Sets EOLs according to local OS conventions, and
+  converts sequences of spaces and tabs to the minimal set of spaces and
+  tabs which will maintain spacing within the line.  Tabs are
+  set at 8 character intervals.  EOF characters are left alone if
+  run on DOS systems, and are removed if run on Unix systems.
+  Many versions of make require tabs prior to commands.</p>
+  <pre>&lt;fixcrlf srcdir=&quot;${src}&quot; includes=&quot;**/*.java&quot;
+         tab=&quot;remove&quot; tablength=&quot;3&quot;
+         eol=&quot;lf&quot; javafiles=&quot;yes&quot; /&gt;</pre>
+<p>
+  Converts all EOLs in the included java source files to a
+  single LF.  Replace all TAB characters except those in string
+  or character constants with spaces, assuming a tab width of 3.
+  If run on a unix system, any CTRL-Z EOF characters at the end
+  of the file are removed.  On DOS/Windows, any such EOF
+  characters will be left untouched.
+</p>
+<pre>&lt;fixcrlf srcdir=&quot;${src}&quot;
+         includes=&quot;**/README*&quot; tab=&quot;remove&quot; /&gt;</pre>
+<p>Sets EOLs according to local OS conventions, and
+  converts all tabs to spaces, assuming a tab width of 8.
+  EOF characters are left alone if run on
+  DOS systems, and are removed if run on Unix systems.
+  You never know what editor a user will use to browse READMEs.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/genkey.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/genkey.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/genkey.html	(revision 14989)
@@ -0,0 +1,125 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GenKey Task</title>
+</head>
+
+<body>
+
+<h2><a name="genkey">GenKey</a></h2>
+<h3>Description</h3>
+<p>Generates a key in a keystore. </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">alias</td>
+    <td valign="top">the alias to add under</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">storepass</td>
+    <td valign="top">password for keystore integrity. Must
+	be at least 6 characters long</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">keystore</td>
+    <td valign="top">keystore location</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">storetype</td>
+    <td valign="top">keystore type</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keypass</td>
+    <td valign="top">password for private key (if different)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sigalg</td>
+    <td valign="top">the algorithm to use in signing</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keyalg</td>
+    <td valign="top">the method to use when generating name-value pair</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">(true | false) verbose output when signing</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dname</td>
+    <td valign="top">The distinguished name for entity</td>
+    <td valign="top" align="center">Yes if dname element unspecified</td>
+  </tr>
+  <tr>
+    <td valign="top">validity</td>
+    <td valign="top">(integer) indicates how many days certificate is valid</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keysize</td>
+    <td valign="top">(integer) indicates the size of key generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p>Alternatively you can specify the distinguished name by creating a
+sub-element named dname and populating it with param elements that
+have a name and a value. When using the subelement it is automatically
+encoded properly and commas (&quot;<code>,</code>&quot;) are replaced
+with &quot;<code>\,</code>&quot;.</p>
+
+<p>The following two examples are identical: </p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;genkey alias=&quot;apache-group&quot; storepass=&quot;secret&quot; 
+  dname=&quot;CN=Ant Group, OU=Jakarta Division, O=Apache.org, C=US&quot;/&gt;
+</pre></blockquote>
+
+<blockquote>
+  <pre>
+&lt;genkey alias=&quot;apache-group&quot; storepass=&quot;secret&quot; &gt;
+  &lt;dname&gt;
+    &lt;param name=&quot;CN&quot; value=&quot;Ant Group&quot;/&gt;
+    &lt;param name=&quot;OU&quot; value=&quot;Jakarta Division&quot;/&gt;
+    &lt;param name=&quot;O&quot;  value=&quot;Apache.Org&quot;/&gt;
+    &lt;param name=&quot;C&quot;  value=&quot;US&quot;/&gt;
+  &lt;/dname&gt;
+&lt;/genkey&gt;</pre>
+</blockquote>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/get.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/get.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/get.html	(revision 14989)
@@ -0,0 +1,125 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Get Task</title>
+</head>
+
+<body>
+
+<h2><a name="get">Get</a></h2>
+<h3>Description</h3>
+<p>Gets a file from a URL. When the verbose option is &quot;on&quot;, this task
+displays a '.' for every 100 Kb retrieved. Any URL schema supported by
+the runtime is valid here, including http:, ftp: and jar:; 
+https: is only valid if the appropriate support is added to the pre-1.4 Java
+runtimes. 
+ 
+</p>
+The <i>usetimestamp</i> option enables you to control downloads so that the remote file is
+only fetched if newer than the local copy. If there is no local copy, the download always takes 
+place. When a file is downloaded, the timestamp of the downloaded file is set to the remote timestamp,
+if  the JVM is Java1.2 or later. 
+NB: This timestamp facility only works on downloads using the HTTP protocol. 
+<p>
+A username and password can be specified, in which case basic 'slightly encoded
+plain text' authentication is used. This is only secure over an HTTPS link.
+</p>
+<p>
+<b>Proxies</b>. Since Ant1.7, Ant running on Java1.5 or later defaults to 
+    <a href="../proxy.html">using
+    the proxy settings of the operating system</a>. There is also the  
+ <a href="../OptionalTasks/setproxy.html">&lt;setproxy&gt;</a> task for
+    earlier Java versions. With proxies turned on, <code>&lt;get&gt;</code> requests against
+    localhost may not work as expected, if the request is relayed to the proxy.
+    The <code>-noproxy</code> option can be used to turn this feature off.
+</p>
+ 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the URL from which to retrieve a file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the file where to store the retrieved file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">show verbose progress information (&quot;on&quot;/&quot;off&quot;).</td>
+    <td align="center" valign="top">No; default "false"</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoreerrors</td>
+    <td valign="top">Log errors but don't treat as fatal.</td>
+    <td align="center" valign="top">No; default "false"</td>
+  </tr>
+  <tr>
+    <td valign="top">usetimestamp</td>
+    <td valign="top">conditionally download a file based on the timestamp of the
+    local copy. HTTP only</td>
+    <td align="center" valign="top">No; default "false"</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">username for 'BASIC' http authentication</td>
+    <td align="center" valign="top">if password is set</td>
+  </tr>  
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">password: required </td>
+    <td align="center" valign="top">if username is set</td>
+  </tr>  
+
+</table>
+<h3>Examples</h3>
+<pre>  &lt;get src=&quot;http://ant.apache.org/&quot; dest=&quot;help/index.html&quot;/&gt;</pre>
+<p>Gets the index page of http://ant.apache.org/, and stores it in the file <code>help/index.html</code>.</p>
+
+<pre>  &lt;get src=&quot;http://www.apache.org/dist/ant/KEYS&quot; 
+    dest=&quot;KEYS&quot; 
+    verbose=&quot;true&quot;
+    usetimestamp=&quot;true&quot;/&gt;</pre>
+<p>
+Gets the PGP keys of Ant's (current and past) release managers, if the local copy
+is missing or out of date. Uses the verbose option 
+for progress information.
+</p>
+
+<pre>  &lt;get src=&quot;https://insecure-bank.org/statement/user=1214&quot; 
+    dest=&quot;statement.html&quot; 
+    username="1214";
+    password="secret"/&gt;</pre>
+<p>
+Fetches some file from a server with access control. Because https is being used the
+fact that basic auth sends passwords in plaintext is moot.
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/gunzip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/gunzip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/gunzip.html	(revision 14989)
@@ -0,0 +1,29 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GUnZip Task</title>
+</head>
+
+<body>
+This document's new home is <A HREF="unpack.html">here</A>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/gzip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/gzip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/gzip.html	(revision 14989)
@@ -0,0 +1,29 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GZip Task</title>
+</head>
+
+<body>
+This document's new home is <A HREF="pack.html">here</A>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/import.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/import.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/import.html	(revision 14989)
@@ -0,0 +1,173 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Import Task</title>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+  <h2><a name="import">Import</a></h2>
+  <h3>Description</h3>
+  <p>
+    Imports another build file into the current project.
+  </p>
+  <p>
+    On execution it will read another Ant file into
+    the same Project. This means that it basically works like the 
+    <a href="http://ant.apache.org/faq.html#xml-entity-include">Entity
+      Includes as explained in the Ant FAQ</a>, as if the imported file was
+    contained in the importing file, minus the top <code>&lt;project&gt;</code>
+    tag.
+  </p>
+  <p>
+    The import task may only be used as a top-level task. This means that
+    it may not be used in a target.
+  </p>
+  <p>
+There are two further functional aspects that pertain to this task and
+that are not possible with entity includes:
+<ul>
+  <li>target overriding</li>
+  <li>special properties</li>
+</ul>
+  </p>
+<h4>Target overriding</h4>
+
+<p>If a target in the main file is also present in at least one of the
+imported files, the one from the main file takes precedence.</p>
+
+<p>So if I import for example a <i>docsbuild.xml</i> file named <b>builddocs</b>,
+that contains a &quot;<b>docs</b>&quot; target, I can redefine it in my main
+buildfile and that is the one that will be called. This makes it easy to
+keep the same target name, so that the overriding target is still called
+by any other targets--in either the main or imported buildfile(s)--for which
+it is a dependency, with a different implementation. The target from <i>docsbuild.xml</i> is
+made available by the name &quot;<b>builddocs</b><b>.docs</b>&quot;.
+This enables the new implementation to call the old target, thus
+<i>enhancing</i> it with tasks called before or after it.</p>
+
+<h4>Special Properties</h4>
+
+<p>Imported files are treated as they are present in the main
+buildfile. This makes it easy to understand, but it makes it impossible
+for them to reference files and resources relative to their path.
+Because of this, for every imported file, Ant adds a property that
+contains the path to the imported buildfile. With this path, the
+imported buildfile can keep resources and be able to reference them
+relative to its position.</p>
+
+<p>So if I import for example a <i>docsbuild.xml</i> file named <b>builddocs</b>,
+I can get its path as <b>ant.file.builddocs</b>, similarly to the <b>ant.file</b>
+property of the main buildfile.</p>
+
+<p>Note that &quot;builddocs&quot; is not the filename, but the name attribute
+present in the imported project tag.</p>
+  <p>
+    If import file does not have a name attribute, the ant.file.projectname
+    property will not be set.
+  </p>
+
+<h4>Resolving files against the imported file</h4>
+
+<p>Suppose your main build file called <code>importing.xml</code>
+imports a build file <code>imported.xml</code>, located anywhere on
+the file system, and <code>imported.xml</code> reads a set of
+properties from <code>imported.properties</code>:</p>
+
+<pre>&lt;!-- importing.xml --&gt;
+&lt;project name="importing" basedir="." default="..."&gt;
+&nbsp; &lt;import file="${path_to_imported}/imported.xml"/&gt;
+&lt;/project&gt;
+
+&lt;!-- imported.xml --&gt;
+&lt;project name="imported" basedir="." default="..."&gt;
+&nbsp; &lt;property file="imported.properties"/&gt;
+&lt;/project&gt;
+</pre>
+
+<p>This snippet however will resolve <code>imported.properties</code>
+against the basedir of <code>importing.xml</code>, because the basedir
+of <code>imported.xml</code> is ignored by Ant. The right way to use
+<code>imported.properties</code> is:</p>
+
+<pre>
+&lt;!-- imported.xml --&gt;
+&lt;project name="imported" basedir="." default="..."&gt;
+&nbsp; &lt;dirname property="imported.basedir" file="${ant.file.imported}"/&gt;
+&nbsp; &lt;property file="${imported.basedir}/imported.properties"/&gt;
+&lt;/project&gt;
+</pre>
+
+<p>As explained above <code>${ant.file.imported}</code> stores the
+path of the build script, that defines the project called
+<code>imported</code>, (in short it stores the path to
+<code>imported.xml</code>) and <a
+href="dirname.html"><code>&lt;dirname&gt;</code></a> takes its
+directory. This technique also allows <code>imported.xml</code> to be
+used as a standalone file (without being imported in other
+project).</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody>
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">
+        file
+      </td>
+      <td valign="top">
+        The file to import. If this is a relative file name, the file name will be resolved
+        relative to the <i>importing</i> file. <b>Note</b>, this is unlike most other
+        ant file attributes, where relative files are resolved relative to ${basedir}.
+      </td>
+      <td valign="top" align="center">Yes</td>
+    </tr>
+    <tr>
+      <td valign="top">
+        optional
+      </td>
+      <td valign="top">
+        If true, do not stop the build if the file does not exist,
+        default is false.
+      </td>
+      <td valign="top" align="center">No</td>
+    </tr>
+  </tbody>
+</table>
+
+<h3>Examples</h3>
+<pre>&nbsp; &lt;import file=&quot;../common-targets.xml&quot;/&gt;
+</pre>
+
+<p>Imports targets from the common-targets.xml file that is in a parent
+directory.</p>
+
+<pre>&nbsp; &lt;import file=&quot;${deploy-platform}.xml&quot;/&gt;
+</pre>
+
+<p>Imports the project defined by the property deploy-platform</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/input.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/input.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/input.html	(revision 14989)
@@ -0,0 +1,195 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Input Task</title>
+</head>
+
+<body>
+
+<h2><a name="input">Input</a></h2>
+<h3>Description</h3>
+
+<p>Allows user interaction during the build process by prompting for
+input.  To do so, it uses the configured 
+<a href="../inputhandler.html">InputHandler</a>.</p>
+
+<p>The prompt can be set via the message attribute or as character
+data nested into the element.</p>
+
+<p>Optionally a set of valid input arguments can be defined via the
+validargs attribute. Input task will not accept a value that doesn't match
+one of the predefined.</p>
+
+<p>Optionally a property can be created from the value entered by the
+user. This property can then be used during the following build
+run. Input behaves according to <a href="property.html">property
+task</a> which means that existing properties cannot be overriden.
+Since Ant 1.6, <code>&lt;input&gt;</code> will not prompt for input if
+a property should be set by the task that has already been set in the
+project (and the task wouldn't have any effect).</p>
+
+<p>A regular complaint about this task is that it echoes characters to the
+console, this is a critical security defect, we must fix it immediately, etc, etc.
+We know it leaves something to be desired, but the problem is Java, not Ant.
+There is nothing we can do to stop the console echoing. </p>
+
+<p>
+IDE behaviour depends upon the IDE: some hang waiting for input, some let you
+type it in. For this situation, place the password in a (secured) property
+file and load in before the input task.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">the Message which gets displayed to the user
+    during the build run.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">validargs</td>
+    <td valign="top">comma separated String containing valid input
+    arguments. If set, input task will reject any input not defined
+    here.  Validargs are compared case sensitive. If you want 'a' and
+    'A' to be accepted you will need to define both arguments within
+    validargs.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">addproperty</td>
+    <td valign="top">the name of a property to be created from
+    input. Behaviour is equal to <a href="property.html">property
+    task</a> which means that existing properties cannot be
+    overridden.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultvalue</td>
+    <td valign="top">Defines the default value of the property to be
+    created from input.  Property value will be set to default if no
+    input is received.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters Specified as Nested Elements</h3>
+<h4>Handler</h4>
+<p>Since <b>Ant 1.7</b>, a nested &lt;handler&gt; element can be used to
+specify an InputHandler, so that different InputHandlers may be used
+among different Input tasks.
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">one of "default","propertyfile", or "greedy".
+    </td>
+    <td align="center" valign="top" rowspan="3">One of these</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">Reference to an <code>InputHandler</code>
+        defined elsewhere in the project.
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">The name of an <code>InputHandler</code> subclass.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use with <i>classname</i>.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The refid of a classpath to use with <i>classname</i>.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">loaderref</td>
+    <td valign="top">The refid of a classloader to use with <i>classname</i>.
+    </td>
+    <td valign="top">No</td>
+  </tr>
+</table>
+<br />
+The classpath can also be specified by means of one or more nested
+&lt;classpath&gt; elements.</p>
+
+<h3>Examples</h3>
+<pre>  &lt;input/&gt;</pre>
+<p>Will pause the build run until return key is pressed when using the
+<a href="../inputhandler.html#defaulthandler">default
+InputHandler</a>, the concrete behavior is defined by the InputHandler
+implementation you use.</p>
+<pre>  &lt;input&gt;Press Return key to continue...&lt;/input&gt;</pre>
+<p>Will display the message &quot;Press Return key to
+continue...&quot; and pause the build run until return key is pressed
+(again, the concrete behavior is implementation dependent).</p>
+<pre>  &lt;input
+    message=&quot;Press Return key to continue...&quot;
+  /&gt;</pre>
+<p>Will display the message &quot;Press Return key to
+continue...&quot; and pause the build run until return key is pressed
+(see above).</p>
+<pre>
+  &lt;input
+    message=&quot;All data is going to be deleted from DB continue (y/n)?&quot;
+    validargs=&quot;y,n&quot;
+    addproperty=&quot;do.delete&quot;
+  /&gt;
+  &lt;condition property=&quot;do.abort&quot;&gt;
+    &lt;equals arg1=&quot;n&quot; arg2=&quot;${do.delete}&quot;/&gt;
+  &lt;/condition&gt;
+  &lt;fail if=&quot;do.abort&quot;&gt;Build aborted by user.&lt;/fail&gt;
+</pre>
+<p>Will display the message &quot;All data is going to be deleted from
+DB continue (y/n)?&quot; and require 'y' to continue build or 'n' to
+exit build with following message &quot;Build aborted by
+user.&quot;.</p>
+<pre>  &lt;input
+    message=&quot;Please enter db-username:&quot;
+    addproperty=&quot;db.user&quot;
+  /&gt;</pre>
+<p>Will display the message &quot;Please enter db-username:&quot; and set the
+property <code>db.user</code> to the value entered by the user.</p>
+
+<pre>  &lt;input
+    message=&quot;Please enter db-username:&quot;
+    addproperty=&quot;db.user&quot;
+    defaultvalue=&quot;Scott-Tiger&quot;
+  /&gt;</pre>
+<p>Same as above, but will set <code>db.user</code> to the value
+<i>Scott- Tiger</i> if the user enters no value (simply types
+&lt;return&gt;).</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/jar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/jar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/jar.html	(revision 14989)
@@ -0,0 +1,408 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Jar Task</title>
+</head>
+
+<body>
+
+<h2><a name="jar">Jar</a></h2>
+<h3>Description</h3>
+<p>Jars a set of files.</p>
+<p>The <i>basedir</i> attribute is the reference directory from where to jar.</p>
+<p>Note that file permissions will not be stored in the resulting jarfile.</p>
+<p>It is possible to refine the set of files that are being jarred. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>basedir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>You can also use nested file sets for more flexibility, and specify
+multiple ones to merge together different trees of files into one JAR.
+The extended fileset and groupfileset child elements from the zip task are
+also available in the jar task.
+See the <a href="zip.html">Zip</a> task for more details and examples.</p>
+<p>If the manifest is omitted, a simple one will be supplied by Ant.</p>
+
+<p>The <code>update</code> parameter controls what happens if the JAR
+file already exists. When set to <code>yes</code>, the JAR file is
+updated with the files specified. When set to <code>no</code> (the
+default) the JAR file is overwritten. An example use of this is
+provided in the <a href="zip.html">Zip task documentation</a>.  Please
+note that ZIP files store file modification times with a granularity
+of two seconds.  If a file is less than two seconds newer than the
+entry in the archive, Ant will not consider it newer.</p>
+
+<p>The <code>whenmanifestonly</code> parameter controls what happens when no
+files, apart from the manifest file, or nested services, match.
+If <code>skip</code>, the JAR is not created and a warning is issued.
+If <code>fail</code>, the JAR is not created and the build is halted with an error.
+If <code>create</code>, (default) an empty JAR file (only containing a manifest and services)
+is created.</p>
+
+<p>(The Jar task is a shortcut for specifying the manifest file of a JAR file.
+The same thing can be accomplished by using the <i>fullpath</i>
+attribute of a zipfileset in a Zip task. The one difference is that if the
+<i>manifest</i> attribute is not specified, the Jar task will
+include an empty one for you.)</p>
+
+<p>Manifests are processed by the Jar task according to the
+<a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html">Jar file specification.</a>
+Note in particular that this may result in manifest lines greater than 72 bytes
+being wrapped and continued on the next line.
+</p>
+
+<p><b>Please note that the zip format allows multiple files of the same
+fully-qualified name to exist within a single archive.  This has been
+documented as causing various problems for unsuspecting users.  If you wish
+to avoid this behavior you must set the <code>duplicate</code> attribute
+to a value other than its default, <code>"add"</code>.</b></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the JAR file to create.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">the manifest file to use.  This can be either the location of a manifest, or the name of a jar added through a fileset.  If its the name of an added jar, the task expects the manifest to be in the jar at META-INF/MANIFEST.MF</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesetmanifest</td>
+    <td valign="top">behavior when a Manifest is found in a zipfileset or zipgroupfileset file is found.  Valid values are &quot;skip&quot;, &quot;merge&quot;, and &quot;mergewithoutmain&quot;.  &quot;merge&quot; will merge all of the manifests together, and merge this into any other specified manifests.  &quot;mergewithoutmain&quot; merges everything but the Main section of the manifests.  Default value is &quot;skip&quot;.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">whenmanifestonly</td>
+    <td valign="top">behavior when no files match.  Valid values are &quot;fail&quot;, &quot;skip&quot;, and &quot;create&quot;.  Default is &quot;create&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">index</td>
+    <td valign="top">whether to create an <A
+    HREF="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#JAR%20Index">index
+    list</A> to speed up classloading.  This is a JDK 1.3+ specific
+    feature.  Unless you specify additional jars with nested <a
+    href="#indexjars"><code>indexjars</code></a> elements, only the
+    contents of this jar will be included in the index.  Defaults to
+    false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifestencoding</td>
+    <td valign="top">The encoding used to read the JAR manifest, when a manifest file is specified.</td>
+    <td valign="top" align="center">No, defaults to the platform encoding.</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Non-default level at which file compression should be
+    performed. Valid values range from 0 (no compression/fastest) to 9
+    (maximum compression/slowest). <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested elements</h3>
+<h4>metainf</h4>
+<p>The nested <code>metainf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>META-INF</code> directory of the jar file. If this
+fileset includes a file named <code>MANIFEST.MF</code>, the file is
+ignored and you will get a warning.</p>
+
+<h4>manifest</h4>
+<p>The manifest nested element allows the manifest for the Jar file to
+be provided inline in the build file rather than in an external
+file. This element is identical to the
+<a href="manifest.html">manifest</a> task, but the file and mode
+attributes must be omitted.</p>
+<p>
+If both an inline manifest and an external file are both specified, the
+manifests are merged.
+</p>
+
+<p>When using inline manifests, the Jar task will check whether the manifest
+contents have changed (i.e. the manifest as specified is different in any way
+from the manifest that exists in the Jar, if it exists.
+If the manifest values have changed the jar will be updated or rebuilt, as
+appropriate.
+</p>
+
+<a name="indexjars"><h4>indexjars</h4></a>
+
+<p><em>since ant 1.6.2</em></p>
+
+<p>The nested <code>indexjars</code> element specifies a <a
+href="../using.html#path">PATH like structure</a>.  Its content is
+completely ignored unless you set the index attribute of the task to
+true.</p>
+
+<p>The index created by this task will contain indices for the
+archives contained in this path, the names used for the archioves
+depend on your manifest:</p>
+<ul>
+  <li>If the generated jar's manifest contains no Class-Path
+  attribute, the file name without any leading directory path will be
+  used and all parts of the path will get indexed.</li>
+  <li>If the manifest contains a Class-Path attribute, this task will
+  try to guess which part of the Class-Path belongs to a given
+  archive.  If it cannot guess a name, the archive will be skipped,
+  otherwise tha name listed inside the Class-PAth attribute will be
+  used.</li>
+</ul>
+
+<p>This task will not create any index entries for archives that are
+empty or only contain files inside the META-INF directory.</p>
+<a name="service"><h4>service</h4></a>
+
+<p><em>since ant 1.7.0</em></p>
+
+<p>
+  The nested <code>service</code> element specifies a service.
+  Services are described by
+  <a href="http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider">http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider</a>.
+  The approach is to have providers JARs include files named by the service
+  provided, for example,
+  META-INF/services/javax.script.ScriptEngineFactory
+  which can include implementation class names, one per line (usually just one per JAR).
+
+  The name of the
+  service is set by the "type" attribute. The classname implementing
+  the service is the the "provider" attribute, or it one wants to
+  specify a number of classes that implement the service, by
+  "provider" nested elements.
+</p>
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">The name of the service.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">provider</td>
+    <td valign="top">
+      The classname of the class implemening the service.
+    </td>
+    <td valign="top" align="center">Yes, unless there is a nested
+      <code>&lt;provider&gt;</code> element.</td>
+  </tr>
+</table>
+  <p>
+    The provider classname is specified either by the "provider" attribute, or
+    by a nested &lt;provider&gt; element, which has a single "classname" attribute.
+    If a JAR file has more that one implementation of the service, a number of
+    nested &lt;provider&gt; elements may be used.
+  </p>
+<h3>Examples</h3>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot; basedir=&quot;${build}/classes&quot;/&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory.</p>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot;
+       basedir=&quot;${build}/classes&quot;
+       excludes=&quot;**/Test.class&quot;
+  /&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Files
+with the name <code>Test.class</code> are excluded.</p>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot;
+       basedir=&quot;${build}/classes&quot;
+       includes=&quot;mypackage/test/**&quot;
+       excludes=&quot;**/Test.class&quot;
+  /&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Only
+files under the directory <code>mypackage/test</code> are used, and files with
+the name <code>Test.class</code> are excluded.</p>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot;&gt;
+    &lt;fileset dir=&quot;${build}/classes&quot;
+             excludes=&quot;**/Test.class&quot;
+    /&gt;
+    &lt;fileset dir=&quot;${src}/resources&quot;/&gt;
+  &lt;/jar&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory and also
+in the <code>${src}/resources</code> directory together into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory.
+Files with the name <code>Test.class</code> are excluded.
+If there are files such as <code>${build}/classes/mypackage/MyClass.class</code>
+and <code>${src}/resources/mypackage/image.gif</code>, they will appear
+in the same directory in the JAR (and thus be considered in the same package
+by Java).</p>
+
+<pre>  &lt;jar destfile=&quot;test.jar&quot; basedir=&quot;.&quot;&gt;
+    &lt;include name=&quot;build&quot;/&gt;
+    &lt;manifest&gt;
+      &lt;attribute name=&quot;Built-By&quot; value=&quot;${user.name}&quot;/&gt;
+      &lt;section name=&quot;common/class1.class&quot;&gt;
+        &lt;attribute name=&quot;Sealed&quot; value=&quot;false&quot;/&gt;
+      &lt;/section&gt;
+    &lt;/manifest&gt;
+  &lt;/jar&gt;</pre>
+<p>
+This is an example of an inline manifest specification. Note that the Built-By
+attribute will take the value of the Ant property ${user.name}. The manifest
+produced by the above would look like this:
+</p>
+<pre><code>Manifest-Version: 1.0
+Built-By: conor
+Created-By: Apache Ant 1.6.5
+
+Name: common/MyClass.class
+Sealed: false</code></pre>
+
+
+<p>
+  The following shows how to create a jar file specifing a service
+  with an implementation of the JDK6 scripting interface:
+</p>
+<blockquote><pre>&lt;jar jarfile="pinky.jar"&gt;
+  &lt;fileset dir="build/classes"/&gt;
+  &lt;service type="javax.script.ScriptEngineFactory"
+           provider="org.acme.PinkyLanguage"/&gt;
+&lt;/jar&gt;
+</pre></blockquote>
+<p>
+  The following shows how to create a jar file specifing a service
+  with two implementations of the JDK6 scripting interface:
+</p>
+<blockquote><pre>
+&lt;jar jarfile="pinkyandbrain.jar"&gt;
+  &lt;fileset dir="classes"/&gt;
+  &lt;service type="javax.script.ScriptEngineFactory"&gt;
+    &lt;provider classname="org.acme.PinkyLanguage"/&gt;
+    &lt;provider classname="org.acme.BrainLanguage"/&gt;
+  &lt;/service&gt;
+&lt;/jar&gt;
+</pre></blockquote>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/java.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/java.html	(revision 14989)
@@ -0,0 +1,395 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Java Task</title>
+</head>
+
+<body>
+
+<h2><a name="java">Java</a></h2>
+<h3>Description</h3>
+<p>Executes a Java class within the running (Ant) VM or forks another VM if
+specified.</p>
+<p>
+If odd things go wrong when you run this task, set fork="true" to use a new
+JVM.
+
+<p>As of Ant 1.6.3, you can interact with a forked VM, as well as
+sending input to it via the <code>input</code> and <code>inputstring</code>
+attributes.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the Java class to execute.</td>
+    <td align="center" valign="top">Either <tt>jar</tt> or <tt>classname</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">jar</td>
+    <td valign="top">the location of the jar file to execute (must have a
+    Main-Class entry in the manifest). Fork must be set to true if this option is selected.
+    See notes below for more details.
+    </td>
+    <td align="center" valign="top">Either <tt>jar</tt> or <tt>classname</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">args</td>
+    <td valign="top">the arguments for the class that is
+      executed. <b>deprecated, use nested <code>&lt;arg&gt;</code>
+      elements instead.</b></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use, given as <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">if enabled triggers the class execution in another VM
+      (disabled by default)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">spawn</td>
+    <td valign="top">if enabled allows to start a process which will outlive ant.<br>
+    Requires fork=true, and not compatible
+    with timeout, input, output, error, result attributes.<br>
+      (disabled by default)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvm</td>
+    <td valign="top">the command used to invoke the Java Virtual Machine,
+      default is 'java'.  The command is resolved by java.lang.Runtime.exec().
+      Ignored if fork is disabled.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmargs</td>
+    <td valign="top">the arguments to pass to the forked VM (ignored
+      if fork is disabled). <b>deprecated, use nested
+      <code>&lt;jvmarg&gt;</code> elements instead.</b></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Max amount of memory to allocate to the forked VM
+      (ignored if fork is disabled)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0. Default is "false" (see <a href="#failonerror">note</a>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resultproperty</td>
+    <td valign="top">The name of a property in which the return code of the
+      command should be stored. Only of interest if failonerror=false
+      and if fork=true.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to invoke the VM in.  (ignored if
+      fork is disabled)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output. If the error stream
+      is not also redirected to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the command should be
+      redirected. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error output in Ant's
+                     log and you are redirecting output to a file/property. The error
+                     output will not be included in the output file/property. If you
+                     redirect error with the &quot;error&quot; or &quot;errorProperty&quot;
+                     attributes, this will have no effect.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output and error files should be appended to or overwritten.
+    Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the
+      command should be stored. Unless the error stream is redirected to a separate
+      file or stream, this property will include the error output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the
+      command should be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard input
+                     is taken. This attribute is mutually exclusive with the
+                     inputstring attribute</td>
+    <td align="center" valign="top">No; default is to take standard input from console
+        (unless <code>spawn="true"</code>)</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+                     executed command. This attribute is mutually exclusive with the
+                     input attribute.</td>
+    <td align="center" valign="top">No; default is to take standard input from console
+        (unless <code>spawn="true"</code>)</td>
+  </tr>
+  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate old environment when new
+      environment variables are specified. Default is &quot;false&quot;
+      (ignored if fork is disabled).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+    specified time (given in milliseconds).  <strong>It is highly
+    recommended to use this feature only if fork is enabled.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">clonevm</td>
+    <td valign="top">If set to true true, then all system properties
+      and the bootclasspath of the forked Java Virtual Machine will be
+      the same as those of the Java VM running Ant.  Default is
+      &quot;false&quot; (ignored if fork is disabled).
+      <em>since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>arg and jvmarg</h4>
+<p>Use nested <code>&lt;arg&gt;</code> and <code>&lt;jvmarg&gt;</code>
+elements to specify arguments for the Java class and the forked VM respectively.
+See <a href="../using.html#arg">Command line arguments</a>.</p>
+<h4>sysproperty</h4>
+<p>Use nested <code>&lt;sysproperty&gt;</code>
+elements to specify system properties required by the class.
+These properties will be made available to the VM during the execution
+of the class (either ANT's VM or the forked VM). The attributes
+for this element are the same as for <a href="exec.html#env">environment
+variables</a>.</p>
+
+<h4>syspropertyset</h4>
+
+<p>You can specify a set of properties to be used as system properties
+with <a href="../CoreTypes/propertyset.html">syspropertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>classpath</h4>
+<p><code>Java</code>'s <i>classpath</i> attribute is a <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<i>classpath</i> element.</p>
+
+<h4>bootclasspath</h4>
+
+<p>The location of bootstrap class files can be specified using this
+<a href="../using.html#path">PATH like structure</a> - will be ignored
+if <i>fork</i> is not <code>true</code> or the target VM doesn't
+support it (i.e. Java 1.1).</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>env</h4>
+<p>It is possible to specify environment variables to pass to the
+forked VM via nested <i>env</i> elements. See the description in the
+section about <a href="exec.html#env">exec</a></p>
+<p>Settings will be ignored if fork is disabled.</p>
+
+<h4>permissions</h4>
+<p>Security permissions can be revoked and granted during the execution of the
+class via a nested <i>permissions</i> element. For more information please
+see <a href="../CoreTypes/permissions.html">permissions</a></p>
+<p>When the permission RuntimePermission exitVM has not been granted (or has
+been revoked) the System.exit() call will be intercepted
+and treated like indicated in <i>failonerror</i>.</p>
+<p>Note:<br>
+If you do not specify permissions,
+a set of default permissions will be added to your Java invocation to make
+sure that the ant run will continue or terminated as indicated by
+<i>failonerror</i>. All permissions not granted per default will be
+checked by whatever security manager was already in place. exitVM will be
+disallowed.
+</p>
+<p>Settings will be ignored if fork is enabled.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>assertions</h4>
+
+<p>You can control enablement of Java 1.4 assertions with an
+<a href="../CoreTypes/assertions.html"><tt>&lt;assertions&gt;</tt></a>
+subelement.</p>
+
+<p>Assertion statements are currently ignored in non-forked mode.</p>
+
+<p><em>since Ant 1.6.</em></p>
+
+<a name="redirector"><h4>redirector</h4></a>
+<i><b>Since Ant 1.6.2</b></i>
+<p>A nested <a href="../CoreTypes/redirector.html">I/O Redirector</a>
+can be specified.  In general, the attributes of the redirector behave
+as the corresponding attributes available at the task level.  The most
+notable peculiarity stems from the retention of the <code>&lt;java&gt;</code>
+attributes for backwards compatibility.  Any file mapping is done
+using a <CODE>null</CODE> sourcefile; therefore not all
+<a href="../CoreTypes/mapper.html">Mapper</a> types will return
+results.  When no results are returned, redirection specifications
+will fall back to the task level attributes.  In practice this means that
+defaults can be specified for input, output, and error output files.
+</p>
+<h3>Errors and return codes</h3>
+By default the return code of a <code>&lt;java&gt;</code> is ignored.
+Alternatively, you can set <code>resultproperty</code> to the name
+of a property and have it assigned to the result code (barring immutability,
+of course).
+When you set <code>failonerror="true"</code>, the only possible value for
+<code>resultproperty</code> is 0. Any non-zero response is treated as an
+error and would mean the build exits.
+<p> Similarly, if <code>failonerror="false"</code> and <code>fork="false"</code>
+, then <code>&lt;java&gt;</code> <b>must</b> return 0 otherwise the build will
+exit, as the class was run by the build JVM.</p>
+
+<h3>JAR file execution</h3>
+
+<p>The parameter of the <tt>jar</tt> attribute is of type <tt>File</tt>;
+that is, the parameter is resolved to an absolute file relative to the
+base directory of the project, <i>not</i> the directory in which the Java
+task is run. If you need to locate a JAR file relative to the directory
+the task will be run in, you need to explicitly create the full path
+to the JAR file.</p>
+<p>When using the <tt>jar</tt> attribute, all classpath settings are 
+ignored according to <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/java.html#-jar">Sun's
+specification</a>. 
+
+
+<h3>Examples</h3>
+<pre>
+       &lt;java classname=&quot;test.Main&quot;&gt;
+         &lt;arg value=&quot;-h&quot;/&gt;
+         &lt;classpath&gt;
+           &lt;pathelement location=&quot;dist/test.jar&quot;/&gt;
+           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/java&gt;
+</pre>
+Run a class in this JVM with a new jar on the classpath
+
+<pre>
+       &lt;java jar=&quot;dist/test.jar&quot;
+           fork="true"
+           failonerror="true"
+           maxmemory="128m"
+           &gt;
+         &lt;arg value=&quot;-h&quot;/&gt;
+         &lt;classpath&gt;
+           &lt;pathelement location=&quot;dist/test.jar&quot;/&gt;
+           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/java&gt;
+</pre>
+Run the JAR test.jar in this project's dist/lib directory.
+using the manifest supplied entry point, forking (as required),
+and with a maximum memory of 128MB. Any non zero return code breaks the build.
+
+<pre>
+       &lt;java
+           dir="${exec.dir}"
+           jar=&quot;${exec.dir}/dist/test.jar&quot;
+           fork="true"
+           failonerror="true"
+           maxmemory="128m"
+           &gt;
+         &lt;arg value=&quot;-h&quot;/&gt;
+         &lt;classpath&gt;
+           &lt;pathelement location=&quot;dist/test.jar&quot;/&gt;
+           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/java&gt;
+</pre>
+Run the JAR dist/test.jar relative to the directory
+<tt>${exec.dir}</tt>, this being the same directory into which the JVM
+is to start up.
+
+<pre>  &lt;java classname=&quot;test.Main&quot;/&gt;</pre>
+Runs a given class with the current classpath.
+
+<pre>
+  &lt;java classname=&quot;test.Main&quot;
+        fork=&quot;yes&quot; &gt;
+    &lt;sysproperty key=&quot;DEBUG&quot; value=&quot;true&quot;/&gt;
+    &lt;arg value=&quot;-h&quot;/&gt;
+    &lt;jvmarg value=&quot;-Xrunhprof:cpu=samples,file=log.txt,depth=3&quot;/&gt;
+  &lt;/java&gt;
+</pre>
+Add system properties and JVM-properties to the JVM as in
+<code>java ="-Xrunhprof:cpu=samples,file=log.txt,depth=3 -DDEBUG=true test.Main</code>
+
+<pre>  &lt;java classname=&quot;ShowJavaVersion&quot; classpath=&quot;.&quot;
+        jvm=&quot;path-to-java14-home/bin/java&quot; fork=&quot;true&quot;
+        taskname=&quot;java1.4&quot; &gt;
+</pre>
+Use a given Java implementation (another the one Ant is currently using) to run the class.
+For documentation in the log <code>taskname</code> is used to change the <code>[java]</code>
+log-prefix to <code>[java1.4]</code>.
+
+
+<p><strong>Note</strong>: you can not specify the (highly deprecated) MSJVM, "jview.exe" as the
+JVM, as it takes different parameters for other JVMs,
+That JVM can be started from <code>&lt;exec&gt;</code> if required.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/javac.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/javac.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/javac.html	(revision 14989)
@@ -0,0 +1,660 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html lang="en-us">
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Javac Task</title>
+</head>
+
+<body>
+
+<h2><a name="javac">Javac</a></h2>
+<h3>Description</h3>
+<p>Compiles a Java source tree.</p>
+<p>The source and destination directory will be recursively scanned for Java
+source files to compile. Only Java files that have no corresponding
+<code>.class</code> file
+or where the class file is older than the
+<code>.java</code> file will be compiled.</p>
+<p>Note: Ant uses only the names of the source and class files to find
+the classes that need a rebuild. It will not scan the source and therefore
+will have no knowledge about nested classes, classes that are named different
+from the source file, and so on. See the
+<a href="../OptionalTasks/depend.html"><code>&lt;depend&gt;</code></a> task
+for dependency checking based on other than just
+existence/modification times.</p>
+<p>When the source files are part of a package, the directory structure of
+the source tree should follow the package
+hierarchy.</p>
+<p>It is possible to refine the set of files that are being compiled.
+This can be done with the <code>includes</code>, <code>includesfile</code>,
+<code>excludes</code>, and <code>excludesfile</code>
+attributes. With the <code>includes</code> or
+<code>includesfile</code> attribute, you specify the files you want to
+have included.
+The <code>exclude</code> or <code>excludesfile</code> attribute is used
+to specify
+the files you want to have excluded. In both cases, the list of files
+can be specified by either the filename, relative to the directory(s) specified
+in the <code>srcdir</code> attribute or nested <code>&lt;src&gt;</code>
+element(s), or by using wildcard patterns. See the section on
+<a href="../dirtasks.html#directorybasedtasks">directory-based tasks</a>,
+for information on how the
+inclusion/exclusion of files works, and how to write wildcard patterns.</p>
+<p>It is possible to use different compilers. This can be specified by
+either setting the global <code>build.compiler</code> property, which will
+affect all <code>&lt;javac&gt;</code> tasks throughout the build, or by
+setting the <code>compiler</code> attribute, specific to the current
+<code>&lt;javac&gt;</code> task.
+<a name="compilervalues">Valid values for either the
+<code>build.compiler</code> property or the <code>compiler</code>
+attribute are:</a></p>
+<ul>
+  <li><code>classic</code> (the standard compiler of JDK 1.1/1.2) &ndash;
+      <code>javac1.1</code> and
+      <code>javac1.2</code> can be used as aliases.</li>
+  <li><code>modern</code> (the standard compiler of JDK 1.3/1.4/1.5/1.6) &ndash;
+      <code>javac1.3</code> and
+      <code>javac1.4</code> and
+      <code>javac1.5</code> and
+      <code>javac1.6</code> can be used as aliases.</li>
+  <li><code>jikes</code> (the <a
+    href="http://jikes.sourceforge.net/" target="_top">Jikes</a>
+    compiler).</li>
+  <li><code>jvc</code> (the Command-Line Compiler from Microsoft's SDK
+      for Java / Visual J++) &ndash; <code>microsoft</code> can be used
+      as an alias.</li>
+  <li><code>kjc</code> (the <a href="http://www.dms.at/kopi/" target="_top">kopi</a>
+    compiler).</li>
+  <li><code>gcj</code> (the gcj compiler from gcc).</li>
+  <li><code>sj</code> (Symantec java compiler) &ndash;
+      <code>symantec</code> can be used as an alias.</li>
+  <li><code>extJavac</code> (run either modern or classic in a JVM of
+      its own).</li>
+</ul>
+<p>The default is <code>javac1.x</code> with <code>x</code> depending
+on the JDK version you use while you are running Ant.
+If you wish to use a different compiler interface than those
+supplied, you can write a class that implements the CompilerAdapter interface
+(<code>package org.apache.tools.ant.taskdefs.compilers</code>). Supply the full
+classname in the <code>build.compiler</code> property or the
+<code>compiler</code> attribute.
+</p>
+<p>The fork attribute overrides the <code>build.compiler</code> property
+or <code>compiler</code> attribute setting and
+expects a JDK1.1 or higher to be set in <code>JAVA_HOME</code>.
+</p>
+<p>You can also use the <code>compiler</code> attribute to tell Ant
+which JDK version it shall assume when it puts together the command
+line switches - even if you set <code>fork=&quot;true&quot;</code>.
+This is useful if you want to run the compiler of JDK 1.1 while you
+current JDK is 1.2+.  If you use
+<code>compiler=&quot;javac1.1&quot;</code> and (for example)
+<code>depend=&quot;true&quot;</code> Ant will use the command line
+switch <code>-depend</code> instead of <code>-Xdepend</code>.</p>
+<p>This task will drop all entries that point to non-existent
+files/directories from the classpath it passes to the compiler.</p>
+<p><strong>Windows Note:</strong>When the modern compiler is used
+in unforked mode on Windows, it locks up the files present in the
+classpath of the <code>&lt;javac&gt;</code> task, and does not release them.
+The side effect of this is that you will not be able to delete or move
+those files later on in the build.  The workaround is to fork when
+invoking the compiler.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcdir</td>
+    <td valign="top">Location of the java files. (See the
+     <a href="#srcdirnote">note</a> below.)</td>
+    <td align="center" valign="top">Yes, unless nested <code>&lt;src&gt;</code> elements are present.</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">Location to store the class files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Comma- or space-separated list of files (may be specified using
+      wildcard patterns) that must be
+      included; all <code>.java</code> files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">The name of a file that contains a list of files to
+      include (may be specified using wildcard patterns).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Comma- or space-separated list of files (may be specified using
+      wildcard patterns) that must be excluded; no files (except default
+      excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">The name of a file that contains a list of files to
+      exclude (may be specified using wildcard patterns).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepath</td>
+    <td valign="top">The sourcepath to use; defaults to the value of the srcdir attribute (or nested <code>&lt;src&gt;</code> elements).
+        To suppress the sourcepath switch, use <code>sourcepath=&quot;&quot;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspath</td>
+    <td valign="top">Location of bootstrap class files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepathref</td>
+    <td valign="top">The sourcepath to use, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspathref</td>
+    <td valign="top">Location of bootstrap class files, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">extdirs</td>
+    <td valign="top">Location of installed extensions.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">Encoding of source files. (Note: gcj doesn't support
+      this option yet.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nowarn</td>
+    <td valign="top">Indicates whether the <code>-nowarn</code> switch
+      should be passed to the compiler; defaults to <code>off</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">Indicates whether source should be compiled with
+    debug information; defaults to <code>off</code>.  If set to
+    <code>off</code>, <code>-g:none</code> will be passed on the
+    command line for compilers that support it (for other compilers, no
+    command line argument will be used).  If set to <code>true</code>,
+    the value of the <code>debuglevel</code> attribute determines the
+    command line argument.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debuglevel</td>
+    <td valign="top">Keyword list to be appended to the <code>-g</code>
+      command-line switch.  This will be ignored by all implementations except
+      <code>modern</code>, <code>classic(ver &gt;= 1.2)</code> and <code>jikes</code>.
+      Legal values are <code>none</code> or a comma-separated list of the
+      following keywords:
+      <code>lines</code>, <code>vars</code>, and <code>source</code>.
+      If <code>debuglevel</code> is not specified, by default,
+      nothing will be
+      appended to <code>-g</code>.  If <code>debug</code> is not turned on,
+      this attribute will be ignored.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">optimize</td>
+    <td valign="top">
+      Indicates whether source should be compiled with
+      optimization; defaults to <code>off</code>. <strong>Note</strong>
+      that this flag is just ignored by Sun's <code>javac</code> starting
+      with JDK 1.3 (since compile-time optimization is unnecessary).
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">deprecation</td>
+    <td valign="top">Indicates whether source should be compiled with
+      deprecation information; defaults to <code>off</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">Generate class files for specific VM version
+    (e.g., <code>1.1</code> or <code>1.2</code>). <b>Note that the
+    default value depends on the JVM that is running Ant.  In
+    particular, if you use JDK 1.4+ the generated classes will not be
+    usable for a 1.1 Java VM unless you explicitly set this attribute
+    to the value 1.1 (which is the default value for JDK 1.1 to
+    1.3).  We highly recommend to always specify this
+    attribute.</b><br>
+    A default value for this attribute can be provided using the magic
+    <a
+    href="../javacprops.html#target"><code>ant.build.javac.target</code></a>
+    property.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Asks the compiler for verbose output; defaults to
+      <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">depend</td> <td valign="top">Enables dependency-tracking
+      for compilers that support this (<code>jikes</code> and
+      <code>classic</code>).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeAntRuntime</td>
+    <td valign="top">Whether to include the Ant run-time libraries in the
+      classpath; defaults to <code>yes</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeJavaRuntime</td>
+    <td valign="top">Whether to include the default run-time
+      libraries from the executing VM in the classpath;
+      defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Whether to execute <code>javac</code> using the
+      JDK compiler externally; defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">Complete path to the <code>javac</code>
+      executable to use in case of <code>fork=&quot;yes&quot;</code>.
+      Defaults to the compiler of the Java version that is currently
+      running Ant.  Ignored if <code>fork=&quot;no&quot;</code>.<br>
+      Since Ant 1.6 this attribute can also be used to specify the
+      path to the executable when using jikes, jvc, gcj or sj.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">memoryInitialSize</td>
+    <td valign="top">The initial size of the memory for the underlying VM,
+      if <code>javac</code> is run externally; ignored otherwise. Defaults
+      to the standard VM memory setting.
+      (Examples: <code>83886080</code>, <code>81920k</code>, or
+      <code>80m</code>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">memoryMaximumSize</td>
+    <td valign="top">The maximum size of the memory for the underlying VM,
+      if <code>javac</code> is run externally; ignored otherwise. Defaults
+      to the standard VM memory setting.
+      (Examples: <code>83886080</code>, <code>81920k</code>, or
+      <code>80m</code>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Indicates whether compilation errors
+        will fail the build; defaults to <code>true</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+
+    <td valign="top">Value of the <code>-source</code> command-line
+    switch; will be ignored by all implementations prior to
+    <code>javac1.4</code> (or <code>modern</code> when Ant is not
+    running in a 1.3 VM) and <code>jikes</code>.<br> If you use this
+    attribute together with <code>jikes</code>, you must make sure
+    that your version of jikes supports the <code>-source</code>
+    switch.  By default, no <code>-source</code> argument will be used
+    at all.<br>
+    <b>Note that the default value depends on the JVM that is running
+    Ant.  We highly recommend to always specify this
+    attribute.</b><br>
+    A default value for this attribute can be provided using the magic
+    <a
+    href="../javacprops.html#source"><code>ant.build.javac.source</code></a>
+    property.</td>
+
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">The compiler implementation to use.
+      If this attribute is not set, the value of the
+      <code>build.compiler</code> property, if set, will be used.
+      Otherwise, the default compiler for the current VM will be used.
+      (See the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">listfiles</td>
+    <td valign="top">Indicates whether the source files to be compiled will
+      be listed; defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tempdir</td>
+    <td valign="top">Where Ant should place temporary files.
+      This is only used if the task is forked and the
+      command line args length exceeds 4k.
+      <em>Since Ant 1.6</em>.</td>
+    <td align="center" valign="top">
+      No; default is <i>java.io.tmpdir</i>.
+    </td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h4><code>src</code>, <code>classpath</code>, <code>sourcepath</code>,
+<code>bootclasspath</code> and <code>extdirs</code></h4>
+<p><code>&lt;javac&gt;</code>'s <code>srcdir</code>, <code>classpath</code>,
+<code>sourcepath</code>, <code>bootclasspath</code>, and
+<code>extdirs</code> attributes are
+<a href="../using.html#path">path-like structures</a>
+and can also be set via nested
+<code>&lt;src&gt;</code>,
+<code>&lt;classpath&gt;</code>,
+<code>&lt;sourcepath&gt;</code>,
+<code>&lt;bootclasspath&gt;</code> and
+<code>&lt;extdirs&gt;</code> elements, respectively.</p>
+
+<h4>compilerarg</h4>
+
+<p>You can specify additional command line arguments for the compiler
+with nested <code>&lt;compilerarg&gt;</code> elements.  These elements
+are specified like <a href="../using.html#arg">Command-line
+Arguments</a> but have an additional attribute that can be used to
+enable arguments only if a given compiler implementation will be
+used.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td>Only pass the specified argument if the chosen
+      compiler implementation matches the value of this attribute.
+      Legal values are the
+      same as those in the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;
+         source=&quot;1.4&quot;
+  /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores
+the <code>.class</code> files in the <code>${build}</code> directory.
+The classpath used includes <code>xyz.jar</code>, and compiling with
+debug information is on. The source level is 1.4,
+so you can use <code>assert</code> statements.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         fork=&quot;true&quot;
+         source=&quot;1.2&quot;
+         target=&quot;1.2&quot;
+  /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores the <code>.class</code> files in the
+<code>${build}</code> directory.  This will fork off the javac
+compiler using the default <code>javac</code> executable.
+The source level is 1.2 (similar to 1.1 or 1.3) and
+the class files should be runnable under JDK 1.2+ as well.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         fork=&quot;java$$javac.exe&quot;
+         source=&quot;1.5&quot;
+  /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores the <code>.class</code> files in the
+<code>${build}</code> directory.  This will fork off the javac
+compiler, using the executable named <code>java$javac.exe</code>.  Note
+that the <code>$</code> sign needs to be escaped by a second one.
+The source level is 1.5, so you can use generics.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
+         excludes=&quot;mypackage/p1/testpackage/**&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;
+  /&gt;</pre>
+<p>compiles <code>.java</code> files under the <code>${src}</code>
+directory, and stores the
+<code>.class</code> files in the <code>${build}</code> directory.
+The classpath used includes <code>xyz.jar</code>, and debug information is on.
+Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are
+used. All files in and below the <code>mypackage/p1/testpackage</code>
+directory are excluded from compilation.
+You didn't specify a source or target level,
+so the actual values used will depend on which JDK you ran Ant with.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}:${src2}&quot;
+         destdir=&quot;${build}&quot;
+         includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
+         excludes=&quot;mypackage/p1/testpackage/**&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;
+  /&gt;</pre>
+
+<p>is the same as the previous example, with the addition of a second
+source path, defined by
+the property <code>src2</code>. This can also be represented using nested
+<code>&lt;src&gt;</code> elements as follows:</p>
+
+<pre>  &lt;javac destdir=&quot;${build}&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;&gt;
+    &lt;src path=&quot;${src}&quot;/&gt;
+    &lt;src path=&quot;${src2}&quot;/&gt;
+    &lt;include name=&quot;mypackage/p1/**&quot;/&gt;
+    &lt;include name=&quot;mypackage/p2/**&quot;/&gt;
+    &lt;exclude name=&quot;mypackage/p1/testpackage/**&quot;/&gt;
+  &lt;/javac&gt;</pre>
+
+<p>If you want to run the javac compiler of a different JDK, you
+should tell Ant, where to find the compiler and which version of JDK
+you will be using so it can choose the correct command line switches.
+The following example executes a JDK 1.1 javac in a new process and
+uses the correct command line switches even when Ant is running in a
+Java VM of a different version:</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         fork=&quot;yes&quot;
+         executable=&quot;/opt/java/jdk1.1/bin/javac&quot;
+         compiler=&quot;javac1.1&quot;
+  /&gt;</pre>
+
+<p><a name="srcdirnote"><b>Note:</b></a>
+If you wish to compile only source files located in certain packages below a
+common root, use the <code>include</code>/<code>exclude</code> attributes
+or <code>&lt;include&gt;</code>/<code>&lt;exclude&gt;</code> nested elements
+to filter for these packages. Do not include part of your package structure
+in the <code>srcdir</code> attribute
+(or nested <code>&lt;src&gt;</code> elements), or Ant will recompile your
+source files every time you run your compile target. See the
+<a href="http://ant.apache.org/faq.html#always-recompiles">Ant FAQ</a>
+for additional information.</p>
+
+<p>
+If you wish to compile only files explicitly specified and disable
+javac's default searching mechanism then you can unset the sourcepath
+attribute:
+<pre>  &lt;javac sourcepath=&quot;&quot; srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot; &gt;
+    &lt;include name="**/*.java"/&gt;
+    &lt;exclude name="**/Example.java"/&gt;
+  &lt;/javac&gt;</pre>
+That way the javac will compile all java source files under &quot;${src}&quot;
+directory but skip the examples. The compiler will even produce errors if some of
+the non-example files refers to them.
+</p>
+
+<p>
+If you wish to compile with a special JDK (another than the one Ant is currently using),
+set the <code>executable</code> and <code>fork</code> attribute. Using <code>taskname</code>
+could show in the log, that these settings are fix.
+<pre>  &lt;javac srcdir=&quot.&quot 
+         destdir=&quot.&quot 
+         executable=&quotpath-to-java14-home/bin/javac&quot 
+         fork=&quottrue&quot
+         taskname=&quotjavac1.4&quot /&gt;</pre>
+</p>
+
+
+<p><b>Note:</b> If you are using Ant on Windows and a new DOS window pops up
+for every use of an external compiler, this may be a problem of the JDK you are
+using.  This problem may occur with all JDKs &lt; 1.2.</p>
+
+<h3>Jikes Notes</h3>
+
+<p>You need Jikes 1.15 or later.</p>
+
+<p>Jikes supports some extra options, which can be set be defining
+the properties shown below prior to invoking the task. The setting
+for each property will be in affect for all <code>&lt;javac&gt;</code>
+tasks throughout the build.
+The Ant developers are aware that
+this is ugly and inflexible &ndash; expect a better solution in the future.
+All the options are boolean, and must be set to <code>true</code> or
+<code>yes</code> to be
+interpreted as anything other than false. By default,
+<code>build.compiler.warnings</code> is <code>true</code>,
+while all others are <code>false</code>.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Property</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Default</b></td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.emacs
+	</td>
+	<td valign="top">
+	Enable emacs-compatible error messages.
+    </td>
+    <td valign="top">
+	<code>false</code>
+	</td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.fulldepend
+	</td>
+	<td valign="top">
+	Enable full dependency checking; see<br>
+	the <code>+F</code> switch in the Jikes manual.
+    </td>
+    <td valign="top">
+	<code>false</code>
+	</td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.pedantic
+	</td>
+	<td valign="top">
+	Enable pedantic warnings.
+    </td>
+    <td valign="top">
+	<code>false</code>
+	</td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.warnings<br>
+        <strong>Deprecated</strong>. Use
+  <code>&lt;javac&gt;</code>'s <code>nowarn</code>
+  attribute instead.
+	</td>
+	<td valign="top">
+	Don't disable warning messages.
+    </td>
+    <td valign="top">
+	<code>true</code>
+	</td>
+  </tr>
+</table>
+
+<h3>Jvc Notes</h3>
+
+<p>Jvc will enable Microsoft extensions unless you set the property
+<code>build.compiler.jvc.extensions</code> to false before invoking
+<code>&lt;javac&gt;</code>.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/javadoc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/javadoc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/javadoc.html	(revision 14989)
@@ -0,0 +1,849 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Javadoc Task</title>
+</head>
+
+<body>
+
+<h2><a name="javadoc">Javadoc/<i>Javadoc2</i></a></h2>
+<h3>Description</h3>
+<p>Generates code documentation using the javadoc tool.</p>
+<p>The source directory will be recursively scanned for Java source files to process
+but only those matching the inclusion rules, and not matching the exclusions rules
+will be passed to the javadoc tool. This
+allows wildcards to be used to choose between package names, reducing verbosity
+and management costs over time. This task, however, has no notion of
+&quot;changed&quot; files, unlike the <a href="javac.html">javac</a> task. This means
+all packages will be processed each time this task is run. In general, however,
+this task is used much less frequently.</p>
+<p>This task works seamlessly between different javadoc versions (1.2 and 1.4),
+with the obvious restriction that the 1.4 attributes
+will be ignored if run in a 1.2 VM.</p>
+<p>NOTE: since javadoc calls System.exit(), javadoc cannot be run inside the
+same VM as Ant without breaking functionality. For this reason, this task
+always forks the VM. This overhead is not significant since javadoc is normally a heavy
+application and will be called infrequently.</p>
+<p>NOTE: the packagelist attribute allows you to specify the list of packages to
+document outside of the Ant file. It's a much better practice to include everything
+inside the <code>build.xml</code> file. This option was added in order to make it easier to
+migrate from regular makefiles, where you would use this option of javadoc.
+The packages listed in packagelist are not checked, so the task performs even
+if some packages are missing or broken. Use this option if you wish to convert from
+an existing makefile. Once things are running you should then switch to the regular
+notation. </p>
+
+<p><i><b>DEPRECATION:</b> the javadoc2 task simply points to the javadoc task and it's
+there for back compatibility reasons. Since this task will be removed in future
+versions, you are strongly encouraged to use <a href="javadoc.html">javadoc</a>
+instead.</i></p>
+
+<p>In the table below, 1.2 means available if your current Java VM is
+a 1.2 VM (but not 1.3 or later), 1.4+ for any VM of at least version 1.4, otherwise
+any VM of at least version 1.2 is acceptable. JDK 1.1 is no longer supported.
+If you specify the <code>executable</code> attribute it is up to you
+to ensure that this command supports the attributes you wish to use.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Availability</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepath</td>
+    <td valign="top">Specify where to find source files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" rowspan="3">At least one of the three or nested
+    <code>&lt;sourcepath&gt;</code>, <code>&lt;fileset&gt;</code> or
+    <code>&lt;packageset&gt;</code></td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepathref</td>
+    <td valign="top">Specify where to find source files by <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcefiles</td>
+    <td valign="top">Comma separated list of source files -- see also
+    the nested <code>source</code> element.</td>
+    <td align="center" valign="top">all</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">Destination directory for output files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">Yes, unless a doclet has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Max amount of memory to allocate to the javadoc VM</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">packagenames</td>
+    <td valign="top">Comma separated list of package files (with terminating
+      wildcard) -- see also the nested <code>package</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">packageList</td>
+    <td valign="top">The name of a file containing the packages to process</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">Specify where to find user class files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Bootclasspath</td>
+    <td valign="top">Override location of class files loaded by the bootstrap
+      class loader</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">Specify where to find user class files by <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspathref</td>
+    <td valign="top">Override location of class files loaded by the
+      bootstrap class loader by <a href="../using.html#references">reference</a> to a
+      PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Extdirs</td>
+    <td valign="top">Override location of installed extensions</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Overview</td>
+    <td valign="top">Read overview documentation from HTML file</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">access</td>
+    <td valign="top">Access mode: one of <code>public</code>, <code>protected</code>,
+                     <code>package</code>, or <code>private</code></td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No (default <code>protected</code>)</td>
+  </tr>
+  <tr>
+    <td valign="top">Public</td>
+    <td valign="top">Show only public classes and members</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Protected</td>
+    <td valign="top">Show protected/public classes and members (default)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Package</td>
+    <td valign="top">Show package/protected/public classes and members</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Private</td>
+    <td valign="top">Show all classes and members</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Old</td>
+    <td valign="top">Generate output using JDK 1.1 emulating doclet</td>
+    <td align="center" valign="top">1.2</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Verbose</td>
+    <td valign="top">Output messages about what Javadoc is doing</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Locale</td>
+    <td valign="top">Locale to be used, e.g. en_US or en_US_WIN</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Encoding</td>
+    <td valign="top">Source file encoding name</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Version</td>
+    <td valign="top">Include @version paragraphs</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Use</td>
+    <td valign="top">Create class and package usage pages</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Author</td>
+    <td valign="top">Include @author paragraphs</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Splitindex</td>
+    <td valign="top">Split index into one file per letter</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Windowtitle</td>
+    <td valign="top">Browser window title for the documentation (text)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Doctitle</td>
+    <td valign="top">Include title for the package index(first) page (html-code)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Header</td>
+    <td valign="top">Include header text for each page (html-code)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Footer</td>
+    <td valign="top">Include footer text for each page (html-code)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bottom</td>
+    <td valign="top">Include bottom text for each page (html-code)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">link</td>
+    <td valign="top">Create links to javadoc output at the given URL
+    -- see also the nested <code>link</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">linkoffline</td>
+    <td valign="top">Link to docs at <code>&lt;url&gt;</code> using package list at
+    <code>&lt;url2&gt;</code> - separate the URLs by using a space character -- see
+    also the nested <code>link</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">group</td>
+    <td valign="top">Group specified packages together in overview
+    page.  The format is as described <a
+    href="#groupattribute">below</a> -- see also the nested
+    <code>group</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nodeprecated</td>
+    <td valign="top">Do not include @deprecated information</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nodeprecatedlist</td>
+    <td valign="top">Do not generate deprecated list</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">notree</td>
+    <td valign="top">Do not generate class hierarchy</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noindex</td>
+    <td valign="top">Do not generate index</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nohelp</td>
+    <td valign="top">Do not generate help link</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nonavbar</td>
+    <td valign="top">Do not generate navigation bar</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">serialwarn</td>
+    <td valign="top">Generate warning about @serial tag</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">helpfile</td>
+    <td valign="top">Specifies the HTML help file to use</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">stylesheetfile</td>
+    <td valign="top">Specifies the CSS stylesheet to use</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">charset</td>
+    <td valign="top">Charset for cross-platform viewing of generated
+      documentation</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">docencoding</td>
+    <td valign="top">Output file encoding name</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">doclet</td>
+    <td valign="top">Specifies the class file that starts the doclet
+    used in generating the documentation -- see also the nested
+    <code>doclet</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">docletpath</td>
+    <td valign="top">Specifies the path to the doclet class file that is specified with the -doclet option.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">docletpathref</td>
+    <td valign="top">Specifies the path to the doclet class file that
+      is specified with the -doclet option by <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">additionalparam</td>
+    <td valign="top">Lets you add additional parameters to the javadoc
+    command line. Useful for doclets. Parameters containing spaces
+    need to be quoted using &amp;quot; -- see also the nested
+    <code>arg</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludepackagenames</td>
+    <td valign="top">comma separated list of packages you don't want
+      docs for -- see also the nested <code>excludepackage</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used
+      (<code>yes</code> | <code>no</code>); default excludes are used when omitted.</td>
+    <td align="center" valign="top">all</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">useexternalfile</td>
+    <td valign="top">indicates whether the sourcefile name specified
+      in srcfiles or as nested source elements should be written to a
+      temporary file to make the command line shorter. Also applies to
+      the package names specified via the packagenames attribute or
+      nested package elements.<em>Since Ant 1.7.0</em>, also applies
+      to all the other command line options.
+      (<code>yes</code> | <code>no</code>). Default is no.</td>
+    <td align="center" valign="top">all</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+    <td valign="top">Necessary to enable javadoc to handle assertions
+    present in J2SE v 1.4 source code. Set this to &quot;1.4&quot; to
+    documents code that compiles using <code>&quot;javac -source
+    1.4&quot;</code>.<br>
+    A default value for this attribute can be provided using the magic
+    <a
+    href="../javacprops.html#source"><code>ant.build.javac.source</code></a>
+    property.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">linksource</td>
+    <td valign="top">Generate hyperlinks to source files.
+      <em>since Ant 1.6</em>.
+      (<code>yes</code> | <code>no</code>). Default is no.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">breakiterator</td>
+    <td valign="top">Use the new breakiterator algorithm.
+      <em>since Ant 1.6</em>.
+      (<code>yes</code> | <code>no</code>). Default is no.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noqualifier</td>
+    <td valign="top">Enables the <code>-noqualifier</code> argument -
+      must be <code>all</code> or a colon separated list of packages.
+      <em>since Ant 1.6</em>.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includenosourcepackages</td>
+    <td valign="top">If set to true, packages that don't contain Java
+      source but a package.html will get documented as well.
+      <em>since Ant 1.6.3</em>.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No (default is <code>false</code>)</td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">Specify a particular <code>javadoc</code> executable
+      to use in place of the default binary (found in the same JDK as Ant is running in).
+      <em>since Ant 1.6.3</em>.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4><a name="groupattribute">Format of the group attribute</a></h4>
+<p>The arguments are comma-delimited. Each single argument is 2
+space-delimited strings, where the first one is the group's title and
+the second one a colon delimited list of packages.</p>
+<p>If you need to specify more than one group, or a group whose title
+contains a comma or a space character, using <a
+href="#groupelement">nested group elements</a> is highly
+recommended.</p>
+<p>E.g.:</p>
+<pre>    group=&quot;XSLT_Packages org.apache.xalan.xslt*,XPath_Packages org.apache.xalan.xpath*&quot;</pre>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>packageset</h4>
+
+<p>A <a href="../CoreTypes/dirset.html">DirSet</a>.  All matched
+directories that contain Java source files will be passed to javadoc
+as package names.  Package names are created from the directory names
+by translating the directory separator into dots.  Ant assumes the
+base directory of the packageset points to the root of a package
+hierarchy.</p>
+
+<p>The <code>packagenames</code>, <code>excludepackagenames</code> and
+<code>defaultexcludes</code> attributes of the task have no effect on
+the nested <code>&lt;packageset&gt;</code> elements.</p>
+
+<h4>fileset</h4>
+
+<p>A <a href="../CoreTypes/fileset.html">FileSet</a>.  All matched
+files will be passed to javadoc as source files.  Ant will
+automatically add the include pattern <code>**/*.java</code> (and
+<code>**/package.html</code> if includenosourcepackages is true) to
+these filesets.</p>
+
+<p>Nested filesets can be used to document sources that are in the
+default package or if you want to exclude certain files from
+documentation.  If you want to document all source files and don't use
+the default package, packagesets should be used instead as this
+increases javadocs performance.</p>
+
+<p>The <code>packagenames</code>, <code>excludepackagenames</code> and
+<code>defaultexcludes</code> attributes of the task have no effect on
+the nested <code>&lt;fileset&gt;</code> elements.</p>
+
+<h4>sourcefiles</h4>
+
+<p>A container for arbitrary file system based <a
+href="../CoreTypes/resources.html#collection">resource
+collections</a>.  All files contained in any of the nested collections
+(this includes nested filesets, filelists or paths) will be passed to
+javadoc as source files.</p>
+
+<h4>package</h4>
+<p>Same as one entry in the list given by <code>packagenames</code>.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The package name (may be a wildcard)</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>excludepackage</h4>
+<p>Same as one entry in the list given by <code>excludepackagenames</code>.</p>
+
+<h5>Parameters</h5>
+Same as for <code>package</code>.
+
+<h4>source</h4>
+<p>Same as one entry in the list given by <code>sourcefiles</code>.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The source file to document</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>doctitle</h4>
+
+<p>Same as the <code>doctitle</code> attribute, but you can nest text
+inside the element this way.</p>
+
+<h4>header</h4>
+
+<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
+
+<h4>footer</h4>
+
+<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
+
+<h4>bottom</h4>
+
+<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
+
+<h4>link</h4>
+<p>Create link to javadoc output at the given URL. This performs the
+same role as the link and linkoffline attributes. You can use either
+syntax (or both at once), but with the nested elements you can easily
+specify multiple occurrences of the arguments.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">href</td>
+    <td valign="top">The URL for the external documentation you wish
+    to link to.  This can be an absolute URL, or a relative file
+    name.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">offline</td>
+    <td valign="top">True if this link is not available online at the time of
+                     generating the documentation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">packagelistLoc</td>
+    <td valign="top">The location to the directory containing the package-list file for
+                     the external documentation</td>
+    <td align="center" valign="top">Only if the offline attribute is true</td>
+  </tr>
+  <tr>
+    <td valign="top">resolveLink</td>
+    <td valign="top">If the link attribute is a relative file name,
+    Ant will first try to locate the file relative to the current
+    project's basedir and if it finds a file there use an absolute URL
+    for the link attribute, otherwise it will pass the file name
+    verbatim to the javadoc command.</td>
+    <td align="center" valign="top">No, default is false.</td>
+  </tr>
+</table>
+
+<h4><a name="groupelement">group</a></h4>
+<p>Separates packages on the overview page into whatever groups you
+specify, one group per table. This performs the same role as the group
+attribute. You can use either syntax (or both at once), but with the
+nested elements you can easily specify multiple occurrences of the
+arguments.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">title</td>
+    <td valign="top">Title of the group</td>
+    <td align="center" valign="top">Yes, unless nested <code>&lt;title&gt;</code> given</td>
+  </tr>
+  <tr>
+    <td valign="top">packages</td>
+    <td valign="top">List of packages to include in that group. Multiple packages are separated with ':'.</td>
+    <td align="center" valign="top">Yes, unless nested <code>&lt;package&gt;</code>s given</td>
+  </tr>
+</table>
+
+<p>The title may be specified as a nested <code>&lt;title&gt;</code> element
+with text contents, and the packages may be listed with nested
+<code>&lt;package&gt;</code> elements as for the main task.</p>
+
+<h4>doclet</h4>
+<p>The doclet nested element is used to specify the doclet that javadoc will
+use to process the input source files. A number of the standard javadoc arguments
+are actually arguments of the standard doclet. If these are specified in the javadoc
+task's attributes, they will be passed to the doclet specified in the
+<code>&lt;doclet&gt;</code> nested element. Such attributes should only be specified,
+therefore, if they can be interpreted by the doclet in use.</p>
+
+<p>If the doclet requires additional parameters, these can be specified with
+<code>&lt;param&gt;</code> elements within the <code>&lt;doclet&gt;</code>
+element. These parameters are restricted to simple strings. An example usage
+of the doclet element is shown below:</p>
+
+<pre>  &lt;javadoc ... &gt;
+     &lt;doclet name=&quot;theDoclet&quot;
+             path=&quot;path/to/theDoclet&quot;&gt;
+        &lt;param name=&quot;-foo&quot; value=&quot;foovalue&quot;/&gt;
+        &lt;param name=&quot;-bar&quot; value=&quot;barvalue&quot;/&gt;
+     &lt;/doclet&gt;
+  &lt;/javadoc&gt;
+</pre>
+
+<h4><a name="tagelement">tag</a></h4>
+
+<p>The tag nested element is used to specify custom tags. This option
+is only available with Java 1.4.</p>
+
+<p>If you want to specify a standard tag using a nested tag element
+because you want to determine the order the tags are output, you must
+not set the description attribute for those tags.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the tag (e.g. <code>todo</code>)</td>
+    <td align="center" valign="top">Yes, unless the <code>dir</code> attribute is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">Description for tag (e.g. <code>To do:</code>)</td>
+    <td align="center" valign="top">No, the name will be used as a description
+      if this is not specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">enabled</td>
+    <td valign="top">Whether or not the tag is enabled (defaults to <code>true</code>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">scope</td>
+    <td valign="top">Scope for the tag - the elements in which it can be used. This
+    is a comma separated list of some of the elements: <code>overview</code>,
+    <code>packages</code>, <code>types</code>, <code>constructors</code>,
+    <code>methods</code>, <code>fields</code> or the default, <code>all</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">If this attribute is specified, this element will behave as an implicit
+    <a href="../CoreTypes/fileset.html">fileset</a>. The files included by this fileset should
+    contain each tag definition on a separate line, as described in the
+    <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#tag">Javadoc reference guide</a>:
+    <pre>ejb.bean:t:XDoclet EJB Tag
+todo:a:To Do</pre>
+      <b>Note:</b> The  Javadoc reference quide has double quotes around
+the description part of the definition. This will not work when used in
+a file, as the definition is quoted again when given to
+the javadoc program.
+    <br/>
+      <b>Note:</b> If this attribute is specified, all the other attributes in this
+    element will be ignored.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4><a name="tagletelement">taglet</a></h4>
+<p>The taglet nested element is used to specify custom taglets. This option is
+only available with Java 1.4.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the taglet class
+              (e.g. <code>com.sun.tools.doclets.ToDoTaglet</code>)</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">A path specifying the search path for the taglet class
+            (e.g. <code>/home/taglets</code>).
+            The path may also be specified by a nested <code>&lt;path&gt;</code> element</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4>sourcepath, classpath and bootclasspath</h4>
+<p><code>Javadoc</code>'s <i>sourcepath</i>, <i>classpath</i> and
+<i>bootclasspath</i> attributes are <a href="../using.html#path">PATH like
+structure</a> and can also be set via nested <i>sourcepath</i>,
+<i>classpath</i> and <i>bootclasspath</i> elements
+respectively.</p>
+
+<h4>arg</h4>
+
+<p>Use nested <code>&lt;arg&gt;</code> to specify additional
+arguments.  See <a href="../using.html#arg">Command line
+arguments</a>. <em>Since Ant 1.6</em></p>
+
+<h3>Example</h3>
+<pre>  &lt;javadoc packagenames=&quot;com.dummy.test.*&quot;
+           sourcepath=&quot;src&quot;
+           excludepackagenames=&quot;com.dummy.test.doc-files.*&quot;
+           defaultexcludes=&quot;yes&quot;
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;&gt;
+    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+    &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot;/&gt;
+    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+  &lt/javadoc&gt;</pre>
+
+<p>is the same as</p>
+
+<pre>  &lt;javadoc
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;&gt;
+
+    &lt;packageset dir=&quot;src&quot; defaultexcludes=&quot;yes&quot;&gt;
+      &lt;include name=&quot;com/dummy/test/**&quot;/&gt;
+      &lt;exclude name=&quot;com/dummy/test/doc-files/**&quot;/&gt;
+    &lt;/packageset&gt;
+
+    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+    &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot;/&gt;
+    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+  &lt/javadoc&gt;</pre>
+
+<p>or</p>
+
+<pre>  &lt;javadoc
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;&gt;
+
+    &lt;fileset dir=&quot;src&quot; defaultexcludes=&quot;yes&quot;&gt;
+      &lt;include name=&quot;com/dummy/test/**&quot;/&gt;
+      &lt;exclude name=&quot;com/dummy/test/doc-files/**&quot;/&gt;
+    &lt;/fileset&gt;
+
+    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+    &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot;/&gt;
+    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+  &lt/javadoc&gt;</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/length.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/length.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/length.html	(revision 14989)
@@ -0,0 +1,99 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Length Task</title>
+</head>
+
+<body>
+
+<h2><a name="length">Length</a></h2>
+<h3>Description</h3>
+<p>Display or set a property containing length information for
+   a string, a file, or one or more nested
+   <a href="../CoreTypes/resources.html#collection">Resource Collection</a>s.
+   Can also be used as a condition. <b>Since Ant 1.6.3</b></p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The property to set.  If omitted
+      the results are written to the log. Ignored when
+      processing as a condition.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">Single file whose length to report.</td>
+    <td valign="top" align="center" rowspan="2">One of these,
+      or one or more nested filesets</td>
+  </tr>
+  <tr>
+    <td valign="top">string</td>
+    <td valign="top">The string whose length to report.</td>
+  </tr>
+  <tr>
+    <td valign="top">mode</td>
+    <td valign="top">File length mode; when &quot;all&quot; the resulting
+      value is the sum of all included resources' lengths; when &quot;each&quot;
+      the task outputs the absolute path and length of each included resource,
+      one per line. Ignored when processing as a condition.</td>
+    <td valign="top" align="center">No; default is &quot;all&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">trim</td>
+    <td valign="top">Whether to trim when operating on a string.</td>
+    <td valign="top" align="center">No; only valid when string is set</td>
+  </tr>
+  <tr>
+    <td valign="top">length</td>
+    <td valign="top">Comparison length for processing as a condition.</td>
+    <td valign="top" align="center">Yes, in condition mode</td>
+  </tr>
+  <tr>
+    <td valign="top">when</td>
+    <td valign="top">Comparison type: "equal", "eq", "greater", "gt", "less",
+      "lt", "ge" (greater or equal), "ne" (not equal), "le" (less or equal)
+      for use when operating as a condition.</td>
+    <td valign="top" align="center">No; default is "equal"</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>Resource Collections</h4>
+<p>You can include resources via nested
+  <a href="../CoreTypes/resources.html#collection">Resource Collection</a>s.</p>
+<h3>Examples</h3>
+<pre>&lt;length string=&quot;foo&quot; property=&quot;length.foo&quot; /&gt;
+</pre>
+<p>Stores the length of the string &quot;foo&quot; in the property named
+<i>length.foo</i>.</p>
+<pre>&lt;length file=&quot;bar&quot; property=&quot;length.bar&quot; /&gt;
+</pre>
+<p>Stores the length of file &quot;bar&quot; in the property named
+<i>length.bar</i>.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/loadfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/loadfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/loadfile.html	(revision 14989)
@@ -0,0 +1,130 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>LoadFile Task</title>
+</head>
+
+<body>
+
+
+<h2><a name="loadfile">LoadFile</a></h2>
+<h3>Description</h3>
+<p>
+Specialization of <a href="loadresource.html">loadresource</a> that
+works on files exclusively and provides a srcFile attribute for
+convenience.  Unless an encoding is specified, the encoding of the
+current locale is used.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcFile</td>
+    <td valign="top">source file</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">property to save to</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use when loading the file</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Whether to halt the build on failure</td>
+    <td align="center" valign="top">No, default "true"</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">Do not display a diagnostic message (unless Ant has been 
+    invoked with the <code>-verbose</code> or <code>-debug</code>
+    switches) or modify the exit status to reflect an error. Setting this to 
+    "true" implies setting failonerror to "false".
+      <em>Since Ant 1.7.0.</em>
+    </td>
+    <td align="center" valign="top">No, default "false"</td>
+  </tr>
+
+</table>
+<p>
+The LoadFile task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.
+
+<h3>Examples</h3>
+<pre>    &lt;loadfile property="message"
+      srcFile="message.txt"/&gt;
+</pre>
+Load file message.txt into property "message"; an <tt>&lt;echo&gt;</tt>
+can print this.  This is identical to
+<pre>    &lt;loadresource property="message"&gt;
+       &lt;file file="message.txt"/&gt;
+    &lt;/loadresource&gt;
+</pre>
+</p>
+
+<pre>    &lt;loadfile property="encoded-file"
+      srcFile="loadfile.xml"
+      encoding="ISO-8859-1"/&gt;
+</pre>
+Load a file using the latin-1 encoding
+
+<pre>    &lt;loadfile
+      property="optional.value"
+      srcFile="optional.txt"
+      failonerror="false"/&gt;
+</pre>
+Load a file, don't fail if it is missing (a message is printed, though)
+
+<pre>    &lt;loadfile
+      property="mail.recipients"
+      srcFile="recipientlist.txt"&gt;
+      &lt;filterchain&gt;
+        &lt;<a href="../CoreTypes/filterchain.html#striplinebreaks">striplinebreaks</a>/&gt;
+      &lt;/filterchain&gt;
+    &lt;/loadfile&gt;
+</pre>
+Load a property which can be used as a parameter for another task (in this case mail),
+merging lines to ensure this happens.
+
+<pre>    &lt;loadfile
+      property="system.configuration.xml"
+      srcFile="configuration.xml"&gt;
+        &lt;filterchain&gt;
+          &lt;<a href="../CoreTypes/filterchain.html#expandproperties">expandproperties</a>/&gt;
+        &lt;/filterchain&gt;
+    &lt;/loadfile&gt;
+</pre>
+Load an XML file into a property, expanding all properties declared
+in the file in the process.
+
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/loadproperties.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/loadproperties.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/loadproperties.html	(revision 14989)
@@ -0,0 +1,127 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>LoadProperties Task</title>
+</head>
+
+<body>
+
+
+<h2><a name="loadproperties">LoadProperties</a></h2>
+<h3>Description</h3>
+<p>
+Load a file's contents as Ant properties.  This is equivalent
+to <code>&lt;property file|resource=&quot;...&quot;/&gt;</code> except that it
+supports nested <code>&lt;filterchain&gt;</code> elements.
+Also if the file is missing, the build is halted with an error, rather
+than a warning being printed.
+</p>
+
+<p>If you want to simulate <a href="property.html">property</a>'s
+prefix attribute, please use <a
+href="../CoreTypes/filterchain.html#prefixlines">prefixlines</a>
+filter.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcFile</td>
+    <td valign="top">source file</td>
+    <td valign="top" rowspan="2" align="center">One of these or a
+          nested resource</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">the resource name of the property file</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use when loading the file</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up a resource.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use when looking up a resource,
+      given as <a href="../using.html#references">reference</a>
+      to a <code>&lt;path&gt;</code> defined elsewhere..</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as src. <em>Since Ant 1.7</em></p>
+
+<h4><a href="../CoreTypes/filterchain.html">FilterChain</a></h4>
+
+<h4>classpath</h4>
+
+<p>for use with the <i>resource</i> attribute.</p>
+
+<h3>Examples</h3>
+<pre>    &lt;loadproperties srcFile="file.properties"/&gt;
+</pre>
+or
+<pre>
+    &lt;loadproperties&gt;
+      &lt;file file="file.properties"/&gt;
+    &lt;/loadproperties&gt;
+</pre>
+Load contents of file.properties as Ant properties.
+
+<pre>    &lt;loadproperties srcFile="file.properties"&gt;
+      &lt;filterchain&gt;
+        &lt;<a href="../CoreTypes/filterchain.html#linecontains">linecontains</a>&gt;
+          &lt;contains value=&quot;import.&quot;/&gt;
+        &lt;/linecontains&gt;
+      &lt;/filterchain&gt;
+    &lt;/loadproperties&gt;
+</pre>
+Read the lines that contain the string &quot;import.&quot;
+from the file &quot;file.properties&quot; and load them as
+Ant properties.
+
+<pre>
+    &lt;loadproperties&gt;
+      &lt;<a href="../CoreTypes/resources.html#gzipresource">gzipresource</a>&gt;
+        &lt;<a href="../CoreTypes/resources.html#url">url</a> url="http://example.org/url.properties.gz"/&gt;
+      &lt;/gzipresource&gt;
+    &lt;/loadproperties&gt;
+</pre>
+Load contents of http://example.org/url.properties.gz, uncompress it
+on the fly and load the contents as Ant properties.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/loadresource.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/loadresource.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/loadresource.html	(revision 14989)
@@ -0,0 +1,89 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>LoadResource Task</title>
+</head>
+
+<body>
+
+
+<h2><a name="loadresource">LoadResource</a></h2>
+
+<p><em>Since Ant 1.7</em></p>
+
+<h3>Description</h3>
+<p>
+Load a text resource into a single property. Unless an encoding is
+specified, the encoding of the current locale is used.  Resources to
+load are specified as nested <a
+href="../CoreTypes/resources.html">resource</a> elements or single
+element resource collections.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">property to save to</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use when loading the resource</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Whether to halt the build on failure</td>
+    <td align="center" valign="top">No, default "true"</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">Do not display a diagnostic message (unless Ant has been 
+    invoked with the <code>-verbose</code> or <code>-debug</code>
+    switches) or modify the exit status to reflect an error. Setting this to 
+    "true" implies setting failonerror to "false".
+    </td>
+    <td align="center" valign="top">No, default "false"</td>
+  </tr>
+</table>
+<p>
+The LoadResource task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.
+
+<h3>Examples</h3>
+<pre>
+&lt;loadresource property="homepage"&gt;
+  &lt;url url="http://ant.apache.org/index.html"/&gt;
+&lt;/loadresource&gt;
+</pre>
+Load the entry point of Ant's homepage into property "homepage"; an
+<tt>&lt;echo&gt;</tt> can print this.
+
+<p>For more examples see the <a href="loadfile.html">loadfile</a> task.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/macrodef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/macrodef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/macrodef.html	(revision 14989)
@@ -0,0 +1,382 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>MacroDef Task</title>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+    <style type="text/css">
+      <!--
+           .code { background: #EFEFEF; margin-top: }
+           -->
+    </style>
+  </head>
+
+  <body>
+
+    <h2><a name="macrodef">MacroDef</a></h2>
+    <h3>Description</h3>
+    <p>
+      This defines a new task using a <code>&lt;sequential&gt;</code>
+      nested task as a template. Nested elements <code>&lt;attribute&gt;</code> and
+      <code>&lt;element&gt;</code> are used to specify attributes and elements of
+      the new task. These get substituted into the <code>&lt;sequential&gt;</code>
+      task when the new task is run.
+    </p>
+    <h3>Note</h3>
+    <p>
+      You can also use <i>prior defined</i> attributes for default-values in
+      other attributes. See the examples.
+    </p>
+    <p>
+      <em>since Ant 1.6</em>
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the new definition.</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">uri</td>
+        <td valign="top">
+          The uri that this definition should live in.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">A description of the macrodef
+          (for documentation purposes only).
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">backtrace</td>
+        <td valign="top">
+          This controls the error traceback if they is an
+          error detected when running the macro. If this is
+          set to true, there will be an error trackback, if false
+          there will not be one. <em>Since Ant 1.7</em>.
+        </td>
+        <td valign="top" align="center">No; default <em>true</em></td>
+      </tr>
+    </table>
+      <h3>Parameters specified as nested elements</h3>
+    <h4>attribute</h4>
+    <p>
+      This is used to specify attributes of the new task. The values
+      of the attributes get substituted into the templated task.
+      The attributes will be required attributes unless a default
+      value has been set.
+    </p>
+    <p>
+      This attribute is placed in the body of the templated
+      task using a notation similar to the ant property notation
+      - @{attribute name}. (May be remembered as "put the substitution
+      AT this location").
+    </p>
+    <p>
+      The escape sequence @@ is used to escape @. This allows @{x} to be
+      placed in the text without substitution of x by using @@{x}.
+      This corresponds to the $$ escape sequence for properties.
+    </p>
+    <p>
+      The case of the attribute is ignored, so @{myAttribute} is treated the
+      same as @{MyAttribute}.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the new attribute</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">default</td>
+        <td valign="top">
+          The default value of the attribute.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">
+          This contains a description of the attribute.
+          <em>since ant 1.6.1</em>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+    <h4>element</h4>
+    <p>
+      This is used to specify nested elements of the new task.
+      The contents of the nested elements of the task instance
+      are placed in the templated task at the tag name.
+    </p>
+    <p>
+      The case of the element name is ignored.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the element</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">optional</td>
+        <td valign="top">
+          If true this nested element is optional. Default is
+          false - i.e the nested element is required in
+          the new task.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">implicit</td>
+        <td valign="top">
+          If true this nested element is implicit. This means that
+          any nested elements of the macrodef instance will be placed
+          in the element indicated by the name of this element.
+          There can only be one element if an element is implicit.
+          The default value is false. <em>since ant 1.6.2</em>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">
+          This contains a description
+          informing the user what the contents of the element are expected to be.
+          <em>since ant 1.6.1</em>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+    <h4>text</h4>
+    <p>
+      This is used to specify the treatment of text contents of the macrodef.
+      If this element is not present, then any nested text in the macro
+      will be an error. If the text element is present, then the name
+      becomes an attribute that gets set to the nested text of the macro.
+      <em>Since ant 1.6.1.</em>
+    </p>
+    <p>
+      The case of the text name is ignored.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the text attribute</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">optional</td>
+        <td valign="top">
+          If true nested text in the macro is optional, default is "false".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">trim</td>
+        <td valign="top">
+          If true, the nested text is trimmed of white space,
+          default is "false".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">
+          This contains a description
+          informing the user what the nested text of the macro is expected
+          to be.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <h3>Examples</h3>
+    <p>
+      The following example defined a task called testing and
+      runs it.
+    </p>
+    <blockquote>
+<pre class=code>
+&lt;macrodef name="testing"&gt;
+   &lt;attribute name="v" default="NOT SET"/&gt;
+   &lt;element name="some-tasks" optional="yes"/&gt;
+   &lt;sequential&gt;
+      &lt;echo&gt;v is @{v}&lt;/echo&gt;
+      &lt;some-tasks/&gt;
+   &lt;/sequential&gt;
+&lt;/macrodef&gt;
+
+&lt;testing v="This is v"&gt;
+   &lt;some-tasks&gt;
+      &lt;echo&gt;this is a test&lt;/echo&gt;
+   &lt;/some-tasks&gt;
+&lt;/testing&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following fragment defines a task called <code>&lt;call-cc&gt;</code> which
+      take the attributes "target", "link" and "target.dir" and the
+      nested element "cc-elements". The body of the task
+      uses the <code>&lt;cc&gt;</code> task from the
+      <a href="http://ant-contrib.sourceforge.net/">ant-contrib</a> project.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="call-cc"&gt;
+   &lt;attribute name="target"/&gt;
+   &lt;attribute name="link"/&gt;
+   &lt;attribute name="target.dir"/&gt;
+   &lt;element name="cc-elements"/&gt;
+   &lt;sequential&gt;
+      &lt;mkdir dir="${obj.dir}/@{target}"/&gt;
+      &lt;mkdir dir="@{target.dir}"/&gt;
+         &lt;cc link="@{link}" objdir="${obj.dir}/@{target}"
+             outfile="@{target.dir}/@{target}"&gt;
+            &lt;compiler refid="compiler.options"/&gt;
+            &lt;cc-elements/&gt;
+         &lt;/cc&gt;
+      &lt;/sequential&gt;
+&lt;/macrodef&gt;
+</pre>
+    </blockquote>
+    <p>
+      This then can be used as follows:
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;call-cc target="unittests" link="executable"
+         target.dir="${build.bin.dir}"&gt;
+   &lt;cc-elements&gt;
+      &lt;includepath location="${gen.dir}"/&gt;
+      &lt;includepath location="test"/&gt;
+      &lt;fileset dir="test/unittest" includes = "**/*.cpp"/&gt;
+      &lt;fileset dir="${gen.dir}" includes = "*.cpp"/&gt;
+      &lt;linker refid="linker-libs"/&gt;
+   &lt;/cc-elements&gt;
+&lt;/call-cc&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following fragment shows &lt;call-cc&gt;, but this time
+      using an implicit element and with the link and target.dir arguments
+      having default values.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="call-cc"&gt;
+   &lt;attribute name="target"/&gt;
+   &lt;attribute name="link" default="executable"/&gt;
+   &lt;attribute name="target.dir" default="${build.bin.dir}"/&gt;
+   &lt;element name="cc-elements" implicit="yes"/&gt;
+   &lt;sequential&gt;
+      &lt;mkdir dir="${obj.dir}/@{target}"/&gt;
+      &lt;mkdir dir="@{target.dir}"/&gt;
+         &lt;cc link="@{link}" objdir="${obj.dir}/@{target}"
+             outfile="@{target.dir}/@{target}"&gt;
+            &lt;compiler refid="compiler.options"/&gt;
+            &lt;cc-elements/&gt;
+         &lt;/cc&gt;
+      &lt;/sequential&gt;
+&lt;/macrodef&gt;
+</pre>
+    </blockquote>
+    <p>
+      This then can be used as follows, note that &lt;cc-elements&gt;
+      is not specified.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;call-cc target="unittests"/&gt;
+   &lt;includepath location="${gen.dir}"/&gt;
+   &lt;includepath location="test"/&gt;
+   &lt;fileset dir="test/unittest" includes = "**/*.cpp"/&gt;
+   &lt;fileset dir="${gen.dir}" includes = "*.cpp"/&gt;
+   &lt;linker refid="linker-libs"/&gt;
+&lt;/call-cc&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following shows the use of the <code>text</code> element.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="echotest"&gt;
+   &lt;text name="text"/&gt;
+   &lt;sequential&gt;
+      &lt;echo&gt;@{text}&lt;/echo&gt;
+   &lt;/sequential&gt;
+&lt;/macrodef&gt;
+&lt;echotest&gt;
+   Hello world
+&lt;/echotest&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following uses a prior defined attribute for setting the
+      default value of another. The output would be
+      <tt>one=test two=test</tt>. If you change the order of lines
+      *1 and *2 the output would be <tt>one=test two=@{one}</tt>,
+      because while processing the <i>two</i>-line the value for
+      <i>one</i> is not set.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="test"&gt;
+   &lt;attribute name="one"/&gt;                     <b>*1</b>
+   &lt;attribute name="two" default="@{one}"/&gt;    <b>*2</b>
+   &lt;sequential&gt;
+      &lt;echo&gt;one=@{one}   two=@{two}&lt;/echo&gt;
+   &lt;/sequential&gt;
+&lt;/macrodef&gt;
+&lt;test one="test"/&gt;
+</pre>
+    </blockquote>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/mail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/mail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/mail.html	(revision 14989)
@@ -0,0 +1,324 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Mail Task</title>
+</head>
+
+<body>
+
+<h2><a name="mail">Mail</a></h2>
+<h3>Description</h3>
+  <p>
+    A task to send SMTP email.
+  </p>
+  <p>
+    This task can send mail using either plain
+    text, UU encoding, or MIME format mail, depending on what is available.
+  </p>
+  <p>
+    SMTP auth and SSL/TLS require JavaMail and are only available in MIME format.
+  </p>
+  <p>
+    Attachments may be sent using nested
+    <code>&lt;attachments&gt;</code> elements, which are <a
+    href="../using.html#path">path-like structures</a>.  This means
+    any filesystem based <a
+    href="../CoreTypes/resources.html">resource</a> or resource
+    collection can be used to point to attachments.  Prior to Ant 1.7
+    only <code>&lt;fileset&gt;</code> has been supported as a nested
+    element, you can still use this directly without an
+    <code>&lt;attachments&gt;</code> container.
+  </p>
+  <p>
+    <strong>Note:</strong> This task may depend on external libraries
+    that are not included in the Ant distribution. 
+    See <a href="../install.html#librarydependencies">Library Dependencies</a>
+    for more information.
+  </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">Email address of sender.</td>
+    <td align="center" valign="top">Either a <code>from</code> attribute, or a <code>&lt;from&gt;</code>
+    element.</td>
+  </tr>
+  <tr>
+    <td valign="top">replyto</td>
+    <td valign="top">Replyto email address.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tolist</td>
+    <td valign="top">Comma-separated list of recipients.</td>
+    <td align="center" valign="middle" rowspan="3">At least one of these, or the
+       equivalent elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">cclist</td>
+    <td valign="top">Comma-separated list of recipients to carbon copy</td>
+    </tr>
+  <tr>
+    <td valign="top">bcclist</td>
+    <td valign="top">Comma-separated list of recipients to blind carbon copy
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">Message to send in the body of the email.</td>
+    <td align="center" valign="middle" rowspan="2">One of these or a
+    <code>&lt;message&gt;</code> element.</td>
+  </tr>
+  <tr>
+    <td valign="top">messagefile</td>
+    <td valign="top">File to send as the body of the email. Property
+    values in the file will be expanded.</td>
+  </tr>
+      <td valign="top">messagemimetype</td>
+    <td valign="top">The content type of the message.  The default is
+    <code>text/plain</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">files</td>
+    <td valign="top">Files to send as attachments to the email.  Separate multiple
+    file names using a comma or space.  You can also use <code>&lt;fileset&gt;</code>
+    elements to specify files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">flag to indicate whether to halt the build on
+    any error.  The default value is <code>true</code>.</td>
+    <td align="center" valign="top">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">includefilenames</td>
+    <td valign="top">Include filename(s) before file contents.
+    Valid only when the <code>plain</code> encoding is used.  The default
+    value is <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mailhost</td>
+    <td valign="top">Host name of the SMTP server.  The default value is
+    <code>localhost</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mailport</td>
+    <td valign="top">TCP port of the SMTP server.  The default value is 25.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">user</td>
+    <td valign="top">user name for SMTP auth</td>
+    <td valign="center">Yes, if SMTP auth is required on your SMTP server<br></br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">password for SMTP auth</td>
+    <td valign="center">Yes, if SMTP auth is required on your SMTP server<br></br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td valign="top">ssl</td>
+    <td valign="top">"true", "on" or "yes" accepted here<br></br>
+    indicates whether you need TLS/SSL</td>
+    <td valign="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">Specifies the encoding to use for the content of the email.
+    Values are <code>mime</code>, <code>uu</code>, <code>plain</code>, or
+      <code>auto</code>.  The default value is <code>auto</code>.
+      <code>uu</code> or <code>plain</code> are not compatible with SMTP auth</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">charset</td>
+    <td valign="top">Character set of the email.<br>
+    You can also set the charset in the message nested element.<br>
+    These options are mutually exclusive.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">subject</td>
+    <td valign="top">Email subject line.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Note regarding the attributes containing email addresses</h3>
+Since Ant 1.6, the attributes from, replyto, tolist, cclist, bcclist
+can contain email addresses of the form :
+<ul>
+<li>address@xyz.com</li>
+<li>name &lt;address@xyz.com&gt;</li>
+<li>&lt;address@xyz.com&gt; name</li>
+<li>(name) address@xyz.com</li>
+<li>address@xyz.com (name)</li>
+</ul>
+<p>You need to enter the angle brackets as XML entities
+<code>&amp;gt;</code> and <code>&amp;lt;</code>.</p>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>to / cc / bcc / from/ replyto </h4>
+<p>Adds an email address element.  It takes the following attributes:</p>
+
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The display name for the address.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">address</td>
+    <td valign="top">The email address.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>message</h4>
+
+<p>Specifies the message to include in the email body.  It takes the following
+attributes:</p>
+
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The file to use as the message.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mimetype</td>
+    <td valign="top">The content type to use for the message.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">charset</td>
+    <td valign="top">Character set of the message<br>
+    You can also set the charset as attribute of the enclosing mail task.<br>
+    These options are mutually exclusive.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>If the <code>src</code> attribute is not specified, then text can be added
+inside the <code>&lt;message&gt;</code> element. Property expansion will occur
+in the message, whether it is specified as an external file or as text within
+the <code>&lt;message&gt;</code> element.</p>
+
+<h4>header</h4>
+<p><strong>Since Ant 1.7</strong>, arbitrary mail headers can be added by
+  specifying these attributes on one or more nested header elements:</p>
+
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name associated with this mail header.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to assign to this mail header.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<p>It is permissible to duplicate the name attribute amongst multiple headers.
+</p>
+
+<h3>Examples</h3>
+
+<blockquote><pre>
+&lt;mail from=&quot;me&quot;
+      tolist=&quot;you&quot;
+      subject=&quot;Results of nightly build&quot;
+      files=&quot;build.log&quot;/&gt;
+</pre></blockquote>
+
+<p>Sends an email from <i>me</i> to <i>you</i> with a subject of
+<i>Results of nightly build</i> and includes the contents of the file
+<i>build.log</i> in the body of the message.</p>
+
+<blockquote><pre>
+&lt;mail mailhost=&quot;smtp.myisp.com&quot; mailport=&quot;1025&quot; subject=&quot;Test build&quot;&gt;
+  &lt;from address=&quot;config@myisp.com&quot;/&gt;
+  &lt;replyto address=&quot;me@myisp.com&quot;/&gt;
+  &lt;to address=&quot;all@xyz.com&quot;/&gt;
+  &lt;message&gt;The ${buildname} nightly build has completed&lt;/message&gt;
+  &lt;attachments&gt;
+    &lt;fileset dir=&quot;dist&quot;&gt;
+      &lt;include name=&quot;**/*.zip&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/attachments&gt;
+&lt;/mail&gt;
+</pre></blockquote>
+
+<p>Sends an eMail from <i>config@myisp.com</i> to <i>all@xyz.com</i> with a subject of
+<i>Test Build</i>. Replies to this email will go to <i>me@myisp.com</i>.
+Any zip files from the dist directory are attached.&nbsp; The
+task will attempt to use JavaMail and fall back to UU encoding or no encoding in
+that order depending on what support classes are available. <code>${buildname}</code>
+will be replaced with the <code>buildname</code> property's value.</p>
+
+<blockquote><pre>
+&lt;property name=&quot;line2&quot; value=&quot;some_international_message&quot;/&gt;
+&lt;echo message=&quot;${line2}&quot;/&gt;
+
+&lt;mail mailhost=&quot;somehost@xyz.com&quot; mailport=&quot;25&quot; subject=&quot;Test build&quot;  charset=&quot;utf-8&quot;&gt;
+  &lt;from address=&quot;me@myist.com&quot;/&gt;
+  &lt;to address=&quot;all@xyz.com&quot;/&gt;
+  &lt;message&gt;some international text:${line2}&lt;/message&gt;
+&lt;/mail&gt;
+</pre></blockquote>
+
+<p>Sends an eMail from <i>me@myisp.com</i> to <i>all@xyz.com</i> with a subject of
+<i>Test Build</i>, the message body being coded in UTF-8
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/makeurl.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/makeurl.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/makeurl.html	(revision 14989)
@@ -0,0 +1,152 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Makeurl Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+</head>
+
+<body>
+
+<h2><a name="makeurl">Makeurl</a></h2>
+<h3>Description</h3>
+
+<p>This task takes one or more filenames and turns them into URLs, which it then assigns to a property.
+Useful when setting up RMI or JNLP codebases, for example.
+Nested filesets are supported; if present, these are turned into the URLs with the supplied separator between them (default: space).
+<p/>
+<p>Examples:</p>
+<pre>
+&lt;makeurl file="${user.home}/.m2/repository" property="m2.repository.url"/&gt;
+</pre>
+Sets the property <code>m2.repository.url</code> to the file: URL of the local Maven2 repository.
+<pre>
+&lt;makeurl property="codebase"&gt;&lt;fileset dir="lib includes="*.jar"/&gt;&lt;/makeurl&gt;
+</pre>
+Set the property <code>codebase</code> to the three URLs of the files provided as nested elements.
+      </blockquote>
+
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+<a name="attributes"></a>
+          <h3>Parameters</h3>    
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          file
+        </td>
+        <td>
+          name of a file to be converted into a URL
+        </td>
+        <td>
+          File
+        </td>
+        <td>
+          optional, if a nested fileset or path is supplied
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          property
+        </td>
+        <td>
+          name of a property to set to the URL
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          required
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          separator
+        </td>
+        <td>
+          separator for the multi-URL option
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          optional
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          validate
+        </td>
+        <td>
+          validate that every named file exists
+        </td>
+        <td>
+          boolean
+        </td>
+        <td>
+          optional; default: true
+        </td>
+    </tr>
+
+
+        </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <a name="elements"></a>
+          <h3>Parameters as nested elements</h3>
+    <!-- Start Element -->
+          <h4>fileset</h4> (org.apache.tools.ant.types.FileSet)
+
+        <p>A fileset of JAR files to include in the URL list, each separated by the separator.</p>
+
+          <h4>path</h4> (org.apache.tools.ant.types.Path)
+
+        <p>Add a path to the URL. All elements in the path will be converted to individual URL entries.</p>
+
+    <!-- End Element -->
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/manifest.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/manifest.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/manifest.html	(revision 14989)
@@ -0,0 +1,174 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Manifest Task</title>
+</head>
+
+<body>
+
+<h2><a name="manifest">Manifest</a></h2>
+<h3>Description</h3>
+<p>Creates a manifest file.</p>
+
+<p>This task can be used to write a Manifest file, optionally
+replacing or updating an existing file.</p>
+
+
+
+<p>Manifests are processed according to the 
+<a href="http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html">Jar
+file specification.</a>. Specifically, a manifest element consists of
+a set of attributes and sections. These sections in turn may contain
+attributes. Note in particular that this may result in manifest lines
+greater than 72 bytes being wrapped and continued on the next
+line.</p>
+
+<p>
+  The Ant team regularly gets complaints that this task in generating invalid
+  manifests. By and large, this is not the case: we believe that we are following
+  the specification to the letter. The usual problem is that some third party
+  manifest reader is not following the same specification as well as they think
+  they should; we cannot generate invalid manifest files just because one
+  single application is broken. J2ME runtimes appear to be particularly troublesome.
+</p>
+
+<p>
+  If you find that Ant generates manifests incompatible with your runtime, take
+  a manifest it has built, fix it up however you need and switch to using the &lt;zip&gt
+  task to create the JAR, feeding in the hand-crafted manifest.
+</p>
+
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the manifest-file to create/update.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">mode</td>
+    <td valign="top">One of "update" or "replace", default is "replace".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding used to read the existing manifest when updating.</td>
+    <td valign="top" align="center">No, defaults to UTF-8 encoding.</td>
+  </tr>
+</table>
+
+<h3>Nested elements</h3>
+<h4><a name="attribute">attribute</a></h4>
+<p>One attribute for the manifest file.  Those attributes that are
+not nested into a section will be added to the "Main" section.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the attribute.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the value of the attribute.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+
+<h4>section</h4>
+<p>A manifest section - you can nest <a
+href="#attribute">attribute</a> elements into sections.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the section.</td>
+    <td valign="top" align="center">No, if omitted it will be assumed
+       to be the main section.</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;manifest file=&quot;MANIFEST.MF&quot;&gt;
+    &lt;attribute name=&quot;Built-By&quot; value=&quot;${user.name}&quot;/&gt;
+    &lt;section name=&quot;common&quot;&gt;
+      &lt;attribute name=&quot;Specification-Title&quot; value=&quot;Example&quot;/&gt;
+      &lt;attribute name=&quot;Specification-Version&quot; value=&quot;${version}&quot;/&gt;
+      &lt;attribute name=&quot;Specification-Vendor&quot; value=&quot;Example Organization&quot;/&gt;
+      &lt;attribute name=&quot;Implementation-Title&quot; value=&quot;common&quot;/&gt;
+      &lt;attribute name=&quot;Implementation-Version&quot; value=&quot;${version} ${TODAY}&quot;/&gt; 
+      &lt;attribute name=&quot;Implementation-Vendor&quot; value=&quot;Example Corp.&quot;/&gt;
+    &lt;/section&gt;
+    &lt;section name=&quot;common/class1.class&quot;&gt;
+      &lt;attribute name=&quot;Sealed&quot; value=&quot;false&quot;/&gt;
+    &lt;/section&gt;
+  &lt;/manifest&gt;
+</pre>
+
+<p>Creates or replaces the file MANIFEST.MF.  Note that the Built-By
+attribute will take the value of the Ant property ${user.name}.  The
+same is true for the ${version} and ${TODAY} properties.  This example
+produces a MANIFEST.MF that contains 
+<a href="http://java.sun.com/j2se/1.5.0/docs/guide/versioning/">package
+version identification</a> for the package <code>common</code>.</p>
+
+<p>The manifest produced by the above would look like this:</p>
+
+<pre><code>Manifest-Version: 1.0
+Built-By: bodewig
+Created-By: Apache Ant 1.7
+
+Name: common
+Specification-Title: Example
+Specification-Vendor: Example Organization
+Implementation-Vendor: Example Corp.
+Specification-Version: 1.2
+Implementation-Version: 1.2 February 19 2006
+Implementation-Title: common
+
+Name: common/class1.class
+Sealed: false
+
+</code></pre>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/manifestclasspath.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/manifestclasspath.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/manifestclasspath.html	(revision 14989)
@@ -0,0 +1,112 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ManifestClassPath Task</title>
+</head>
+
+<body>
+
+<h2><a name="manifestclasspath">Manifestclasspath</a></h2>
+
+<h3>Description</h3>
+<p>Converts a <a href="../using.html#path">Path</a> into a property
+whose value is appropriate for a <a href="manifest.html">Manifest</a>'s
+<code>Class-Path</code> attribute.</p>
+
+<p>This task is often used to work around command line limitations on Windows
+when using very long class paths when launching an application. The long class
+path normally specified on the command line is replaced by a single (possibly
+empty) jar file which an in-manifest Class-Path attribute whose value lists
+all the jar and zip files the class path should contain. The files referenced
+from this attribute must be found relatively to the jar file itself, usually
+in the same directory. The Java VM automically uses all file entries listed
+in the Class-Path attributes of a jar to locate/load classes. Note though that
+it silently ignores entries for which it cannot find any corresponding file.</p>
+
+<p>Note that the property value created may be longer than a manifest's maximum
+72 characters per line, but will be properly wrapped as per the Jar
+specification by the <code>&lt;manifest&gt;</code> element, where the
+defined property is re-referenced.</p>
+
+<p><em>since Ant 1.7</em></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">the name of the property to set. This property must
+                     not already be set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">jarfile</td>
+    <td valign="top">
+      the filename for the Jar which will contain the manifest that will
+      use the property this task will set. This file need not exist yet,
+      but its parent directory must exist.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">maxParentLevels</td>
+    <td valign="top">
+      The maximum number of parent directories one is allowed to traverse
+      to navigate from the jar file to the path entry. Put differently, the
+      maximum number of .. which is allowed in the relative path from the
+      jar file to a given class path enty. Specify 0 to enforce a path
+      entry to be in the same directory (or one of its sub-directories)
+      as the jar file itself.  Defaults to 2 levels.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p>A <a href="../using#path.html">Path-like</a> element, which can be
+defined in-place, or refer to a path defined elsewhere using the
+<code>&lt;classpath refid="<em>pathid</em>" /&gt;</code> syntax.
+This classpath must not be empty, and is required.</p>
+
+<h3>Examples</h3>
+<div id="example1">
+  <blockquote><pre>
+    &lt;manifestclasspath property="jar.classpath"
+                       jarfile="build/acme.jar"&gt;
+      &lt;classpath refid="classpath" /&gt;
+    &lt;/manifestclasspath&gt;
+  </pre></blockquote>
+  <p>Assuming a path of id "classpath" was already defined, convert this
+  path relatively to the build/ directory that will contain acme.jar, which
+  can later be created with <code>&lt;jar&gt;</code> with a nested 
+  <code>&lt;manifest&gt;</code> element that lists an
+  <code>&lt;attribute name="Class-Path" value="${jar.classpath}" /&gt;</code>.
+  </p>
+</div>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/mkdir.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/mkdir.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/mkdir.html	(revision 14989)
@@ -0,0 +1,52 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Mkdir Task</title>
+</head>
+
+<body>
+
+<h2><a name="mkdir">Mkdir</a></h2>
+<h3>Description</h3>
+<p>Creates a directory. Also non-existent parent directories are created, when
+necessary. Does nothing if the directory already exist.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory to create.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>&lt;mkdir dir=&quot;${dist}&quot;/&gt;</pre>
+<p>creates a directory <code>${dist}</code>.</p>
+<pre>&lt;mkdir dir=&quot;${dist}/lib&quot;/&gt;</pre>
+<p>creates a directory <code>${dist}/lib</code>.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/move.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/move.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/move.html	(revision 14989)
@@ -0,0 +1,230 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Move Task</title>
+</head>
+
+<body>
+
+<h2><a name="move">Move</a></h2>
+<h3>Description</h3>
+<p>Moves a file to a new file or directory, or collections of files to
+a new directory.  By default, the
+destination file is overwritten if it already exists.  When <var>overwrite</var> is
+turned off, then files are only moved if the source file is newer than
+the destination file, or when the destination file does not exist.</p>
+
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select a group of files to move.  Only
+file system based resource collections are supported, this includes <a
+href="../CoreTypes/fileset.html">fileset</a>s, <a
+href="../CoreTypes/filelist.html">filelist</a> and <a
+href="../using.html#path">path</a>.  Prior to Ant 1.7 only
+<code>&lt;fileset&gt;</code> has been supported as a nested element.
+To use a resource collection, the <code>todir</code> attribute must be
+set.</p>
+
+<p><b>Since Ant 1.6.3</b>, the <i>file</i> attribute may be used to move
+(rename) an entire directory.  If <i>tofile</i> denotes an existing file, or
+there is a directory by the same name in <i>todir</i>, the action will fail.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory to move</td>
+    <td valign="top" align="center">One of <var>file</var> or
+     at least one nested resource collection element</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the moved files the same last modified
+      time as the original source files.
+      (<em>Note</em>: Ignored on Java 1.1)</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">the file to move to</td>
+    <td valign="top" align="center" rowspan="2">With the <var>file</var> attribute,
+    either <var>tofile</var> or <var>todir</var> can be used.  With nested filesets,
+    if the fileset size is greater than 1 or if the only entry in the fileset is a
+    directory or if the <var>file</var> attribute is already specified, only
+    <var>todir</var> is allowed</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">the directory to move to</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">overwrite existing files even if the destination
+      files are newer (default is &quot;true&quot;)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place during
+      the move.  See the <a href="filter.html">filter</a> task for a description of
+      how filters work.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">flatten</td>
+    <td valign="top">ignore directory structure of source directory,
+      copy all files into a single directory, specified by the <var>todir</var>
+      attribute (default is &quot;false&quot;).Note that you can achieve the
+      same effect by using a <a href="../CoreTypes/mapper.html#flatten-mapper">flatten mapper</a></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+	 <td valign="top">Copy empty directories included with the nested FileSet(s).
+	   Defaults to &quot;yes&quot;.</td>
+	 <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">If false, log a warning message, but do not stop the
+       build, when the file to copy does not exist or one of the nested
+       filesets points to a directory that doesn't exist or an error occurs
+       while moving.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+     <td valign="top">Log the files that are being moved.</td>
+     <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding to assume when filter-copying the
+    files. <em>since Ant 1.5</em>.</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The encoding to use when writing the files.
+    <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to the value of the encoding
+    attribute if given or the default JVM encoding otherwise.</td>
+  </tr>
+  <tr>
+    <td valign="top">enablemultiplemapping</td>
+    <td valign="top">
+      If true the task will process to all the mappings for a
+      given source path. If false the task will only process
+      the first file or directory. This attribute is only relevant
+      if there is a mapper subelement.
+      <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">granularity</td>
+    <td valign="top">The number of milliseconds leeway to give before
+    deciding a file is out of date. This is needed because not every
+    file system supports tracking the last modified time to the
+    millisecond level. Default is 0 milliseconds, or 2 seconds on DOS
+    systems.  This can also be useful if source and target files live
+    on separate machines with clocks being out of sync.  <em>since Ant
+    1.6</em>.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>mapper</h4>
+<p>You can define file name transformations by using a nested <a
+href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
+<code>&lt;move&gt;</code> is the <a
+href="../CoreTypes/mapper.html#identity-mapper">identity</a>.</p>
+<p>Note that the source name handed to the mapper depends on the
+resource collection you use.  If you use <code>&lt;fileset&gt;</code>
+or any other collection that provides a base directory, the name
+passed to the mapper will be a relative filename, relative to the base
+directory.  In any other case the absolute filename of the source will
+be used.</p>
+<h4>filterchain</h4>
+<p>The Move task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.</p>
+
+<p>
+If <code>&lt;filterset&gt;</code> and <code>&lt;filterchain&gt;</code> elements are used inside the
+same <code>&lt;move&gt;</code> task, all <code>&lt;filterchain&gt;</code> elements are processed first
+followed by <code>&lt;filterset&gt;</code> elements.
+</p>
+
+<h3>Examples</h3>
+<p><b>Move a single file (rename a file)</b></p>
+<pre>
+  &lt;move file=&quot;file.orig&quot; tofile=&quot;file.moved&quot;/&gt;
+</pre>
+<p><b>Move a single file to a directory</b></p>
+<pre>
+  &lt;move file=&quot;file.orig&quot; todir=&quot;dir/to/move/to&quot;/&gt;
+</pre>
+<p><b>Move a directory to a new directory</b></p>
+<pre>
+  &lt;move todir=&quot;new/dir/to/move/to&quot;&gt;
+    &lt;fileset dir=&quot;src/dir&quot;/&gt;
+  &lt;/move&gt;
+</pre>
+  <i>or, since Ant 1.6.3:</i>
+<pre>
+  &lt;move file=&quot;src/dir&quot; tofile=&quot;new/dir/to/move/to&quot;/&gt;
+</pre>
+<p><b>Move a set of files to a new directory</b></p>
+<pre>
+  &lt;move todir=&quot;some/new/dir&quot;&gt;
+    &lt;fileset dir=&quot;my/src/dir&quot;&gt;
+      &lt;include name=&quot;**/*.jar&quot;/&gt;
+      &lt;exclude name=&quot;**/ant.jar&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/move&gt;
+</pre>
+<p><b>Move a list of files to a new directory</b></p>
+<pre>
+  &lt;move todir=&quot;some/new/dir&quot;&gt;
+    &lt;filelist dir=&quot;my/src/dir&quot;&gt;
+      &lt;file name="file1.txt"/&gt;
+      &lt;file name="file2.txt"/&gt;
+    &lt;/filelist&gt;
+  &lt;/move&gt;
+</pre>
+<p><b>Append <code>&quot;.bak&quot;</code> to the names of all files
+in a directory.</b></p>
+<pre>
+  &lt;move todir=&quot;my/src/dir&quot; includeemptydirs=&quot;false&quot;&gt;
+    &lt;fileset dir=&quot;my/src/dir&quot;&gt;
+      &lt;exclude name=&quot;**/*.bak&quot;/&gt;
+    &lt;/fileset&gt;
+    &lt;mapper type=&quot;glob&quot; from=&quot;*&quot; to=&quot;*.bak&quot;/&gt;
+  &lt;/move&gt;
+</pre>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/nice.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/nice.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/nice.html	(revision 14989)
@@ -0,0 +1,70 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Nice Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Nice</a></h2>
+<h3>Description</h3>
+<p>Provide "nice-ness" to the current thread
+   and/or query the current value.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">currentpriority</td>
+    <td valign="top">the name of the property whose value should be
+                     set to the current &quot;nice-ness&quot; level.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newpriority</td>
+    <td valign="top">the value to which the
+                     &quot;nice-ness&quot; level should be set.
+                     Must be a valid Java Thread priority.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>   &lt;nice newpriority=&quot;10&quot;/&gt;</pre>
+Set the Thread priority to 10 (highest).
+<pre>   &lt;nice currentpriority=&quot;priority&quot;/&gt;</pre>
+Store the current Thread priority in the user property "priority".
+<pre>
+   &lt;nice currentpriority=&quot;currentpriority&quot; newpriority=&quot;1&quot;/&gt;
+</pre>
+<p>Set the current Thread priority to 1 (lowest), storing the original
+priority in the user property "currentpriority".  This
+can be used to set the priority back to its original value later.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/pack.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/pack.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/pack.html	(revision 14989)
@@ -0,0 +1,76 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GZip/BZip2 Tasks</title>
+</head>
+
+<body>
+
+<h2><a name="pack">GZip/BZip2</a></h2>
+<h3>Description</h3>
+<p>Packs a resource using the GZip or BZip2 algorithm.
+The output file is only generated if it doesn't exist or the source
+resource is newer.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the file to gzip/bzip.</td>
+    <td align="center" valign="top">Yes, or a nested resource collection.</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the destination file to create.</td>
+    <td align="center" valign="top" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">zipfile</td>
+    <td valign="top">the <i>deprecated</i> old name of destfile.</td>
+  </tr>
+</table>
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as src. <em>Since Ant 1.7</em></p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;gzip src=&quot;test.tar&quot; destfile=&quot;test.tar.gz&quot;/&gt;
+</pre></blockquote>
+<blockquote><pre>
+&lt;bzip2 src=&quot;test.tar&quot; destfile=&quot;test.tar.bz2&quot;/&gt;
+</pre></blockquote>
+<blockquote><pre>
+&lt;gzip destfile=&quot;archive.tar.gz&quot;&gt;
+  &lt;url url="http://example.org/archive.tar"/&gt;
+&lt;/gzip&gt;
+</pre></blockquote>
+<p>downloads <i>http://example.org/archive.tar</i> and compresses it
+to <i>archive.tar.gz</i> in the project's basedir on the fly.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/parallel.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/parallel.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/parallel.html	(revision 14989)
@@ -0,0 +1,200 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Parallel Task</title>
+</head>
+
+<body>
+
+<h2>Parallel</h2>
+<h3>Description</h3>
+<p>Parallel is a container task - it can contain other Ant tasks. Each nested
+task within the parallel task will be executed in its own thread. </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">threadCount</td>
+    <td valign="top">Maximum numbers of thread to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">threadsPerProcessor</td>
+    <td valign="top">Maximum number of threads to use per available processor
+(Requires JDK 1.4)</td>
+    <td align="center" valign="top">No, defers to threadCount</td>
+  </tr>
+  <tr>
+    <td valign="top">pollInterval</td>
+    <td valign="top">Currently has no effect</td>
+    <td align="center" valign="top">No, default is 1000</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Number of milliseconds before execution is terminated</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonany</td>
+    <td valign="top">If any of the nested tasks fails, execution of the task completes
+                     at that point without waiting for any other tasks to complete.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>Parallel tasks have a number of uses in an Ant build file including:</p>
+<ul>
+<li>Taking advantage of available processing resources to reduce build time</li>
+<li>Testing servers, where the server can be run in one thread and the test
+harness is run in another thread.</li>
+</ul>
+
+<p>Care must be taken when using multithreading to ensure the tasks within the
+threads do not interact. For example, two javac compile tasks which write
+classes into the same destination directory may interact where one tries to
+read a class for dependency information while the other task is writing the
+class file. Be sure to avoid these types of interactions within a
+<code>&lt;parallel&gt;</code> task</p>
+
+<p>Any valid Ant task may be embedded within a
+parallel task, including other parallel tasks.</p>
+
+<p>Note that while the tasks within the parallel task are being run, the main
+thread will be blocked waiting for all the child threads to complete. If
+execution is terminated by a timeout or a nested task failure when the failonany
+flag is set, the parallel task will complete without waiting for other nested
+tasks to complete in other threads.
+</p>
+
+<p>If any of the tasks within the <code>&lt;parallel&gt;</code> task fails and failonany is
+not set, the remaining tasks in other threads will continue to run until
+all threads have completed. In this situation, the parallel task will also fail.</p>
+
+<p>The parallel task may be combined with the <a href="sequential.html">
+sequential</a> task to define sequences of tasks to be executed on each thread
+within the parallel block</p>
+
+<p>The threadCount attribute can be used to place a maximum number of available
+threads for the execution.  When not present all child tasks will be executed at
+once.  When present then the maximum number of concurrently executing tasks will
+not exceed the number of threads specified.  Furthermore, each task will be
+started in the order they are given.  But no guarantee is made as to the speed
+of execution or the order of completion of the tasks, only that each will be
+started before the next.<p>
+
+<p>If you are using J2RE 1.4 or later you can also use the threadsPerProcessor
+and the number of available threads will be the stated multiple of the number of
+processors (there is no affinity to a particular processor however).  This will
+override the value in threadCount.  If threadsPerProcessor is specified using
+any version prior to 1.4 then the value in threadCount will be used as is.</p>
+
+<p>When using threadCount and threadsPerProcessor care should be taken to ensure
+that the build does not deadlock.  This can be caused by tasks such as waitFor
+taking up all available threads before the tasks that would unlock the waitfor
+would occur.  This is not a repalcement for Java Language level thread
+semantics and is best used for "embarassingly parallel" tasks.</p>
+
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>daemons</h4>
+<p>
+The parallel task supports a <code>&lt;daemons&gt;</code> nested element. This is a list of tasks
+which are to be run in parallel daemon threads. The parallel task will not wait for
+these tasks to complete. Being daemon threads, however, they will not prevent Ant from
+completing, whereupon the threads are terminated. Failures in daemon threads which
+occur before the parallel task itself finishes will be reported and can cause
+parallel to throw an exception. Failures which occur after parallel has completed are not
+reported.
+</p>
+
+<p>Daemon tasks can be used, for example, to start test servers which might not be easily
+terminated from Ant. By using <code>&lt;daemons&gt;</code> such servers do not halt the build.
+</p>
+
+
+<h3>Examples</h3>
+<pre>
+&lt;parallel&gt;
+  &lt;wlrun ... &gt;
+  &lt;sequential&gt;
+    &lt;sleep seconds=&quot;30&quot;/&gt;
+    &lt;junit ... &gt;
+    &lt;wlstop/&gt;
+  &lt;/sequential&gt;
+&lt;/parallel&gt;
+</pre>
+<p>This example represents a typical pattern for testing a server application.
+In one thread the server is started (the wlrun task). The other thread consists
+of a three tasks which are performed in sequence. The sleep task is used to
+give the server time to come up. Another task which is capable of validating
+that the server is available could be used in place of the sleep task. The
+test harness is then run. Once the tests are complete, the server is stopped
+(using wlstop in this example), allowing both threads to complete. The
+parallel task will also complete at this time and the build will then
+continue.</p>
+
+<pre>
+&lt;parallel&gt;
+  &lt;javac ...&gt; &lt;!-- compiler servlet code --&gt;
+  &lt;wljspc ...&gt; &lt;!-- precompile JSPs --&gt;
+&lt;/parallel&gt;
+</pre>
+
+<p>This example shows two independent tasks being run to achieve better
+resource utilization during the build. In this instance, some servlets are being
+compiled in one thead and a set of JSPs is being precompiled in another. As
+noted above, you need to be careful that the two tasks are independent, both in
+terms of their dependencies and in terms of their potential interactions in
+Ant's external environment.</p>
+
+<pre>
+&lt;parallel threadCount='4'&gt;
+  &lt;ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'&gt;
+    &lt;param name='file' value='one.txt'/&gt;
+  &lt;/ant&gt;
+  &lt;ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'&gt;
+    &lt;param name='file' value='two.txt'/&gt;
+  &lt;/ant&gt;
+  &lt;ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'&gt;
+    &lt;param name='file' value='three.txt'/&gt;
+  &lt;/ant&gt;
+  &lt;!-- repeated about 40 times --&gt;
+&lt;/parallel&gt;
+</pre>
+
+<p>This example represents a typical need for use of the threadCount and
+threadsPerProcessor attributes.  Spinning up all 40 of those tasks could cripple
+the JVM for memory and the CPU for available time.  By limiting the number of
+concurrent executions you can get the task done in about the same assuming
+infinite memory time without needing infinite memory.  This is also a good
+candidiate for use of threadCount (and possibly threadsPerProcessor) because
+each task (in this hypothetical case) is independent and has no dependencies on
+the other tasks.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/patch.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/patch.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/patch.html	(revision 14989)
@@ -0,0 +1,104 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Patch Task</title>
+</head>
+
+<body>
+
+<h2><a name="patch">Patch</a></h2>
+<h3>Description</h3>
+<p>Applies a diff file to originals. ; requires "patch" to be
+ on the execution path.  </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">patchfile</td> 
+    <td valign="top">the file that includes the diff output</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">originalfile</td> 
+    <td valign="top">the file to patch</td>
+    <td align="center" valign="top">No, tries to guess it from the diff 
+      file</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td> 
+    <td valign="top">the file to send the output to instead of
+      patching the file(s) in place.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">backups</td> 
+    <td valign="top">Keep backups of the unpatched files</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td> 
+    <td valign="top">Work silently unless an error occurs</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">reverse</td> 
+    <td valign="top">Assume patch was created with old and new files 
+      swapped.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignorewhitespace</td> 
+    <td valign="top">Ignore whitespace differences.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strip</td> 
+    <td valign="top">Strip the smallest prefix containing <i>num</i> leading 
+      slashes from filenames.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td> 
+    <td valign="top">The directory in which to run the patch command.</td>
+    <td align="center" valign="top">No, default is the project's basedir.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;patch patchfile=&quot;module.1.0-1.1.patch&quot;/&gt;</pre>
+<p>applies the diff included in <i>module.1.0-1.1.patch</i> to the
+files in base directory guessing the filename(s) from the diff output.</p>
+<pre>  &lt;patch patchfile=&quot;module.1.0-1.1.patch&quot; strip=&quot;1&quot;/&gt;</pre>
+<p>like above but one leading directory part will be removed. i.e. if
+the diff output looked like</p>
+<pre>
+--- a/mod1.0/A	Mon Jun  5 17:28:41 2000
++++ a/mod1.1/A	Mon Jun  5 17:28:49 2000
+</pre> 
+the leading <i>a/</i> will be stripped.
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/pathconvert.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/pathconvert.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/pathconvert.html	(revision 14989)
@@ -0,0 +1,218 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PathConvert Task</title>
+</head>
+
+<body>
+
+<h2><a name="pathconvert">Pathconvert</a></h2>
+<h3>Description</h3>
+<p>Converts nested <a href="../CoreTypes/resources.html#collection">
+ResourceCollection</a>s, or a reference to just one, into a path
+form for a particular platform, optionally storing the result into
+a given property. It can also be used when you need
+to convert a Resource Collection into a list, separated by a given
+character, such as a comma or space, or, conversely, e.g. to convert a list
+of files in a FileList into a path.
+</p>
+<p>Nested <code>&lt;map&gt;</code> elements can be specified to map Windows
+drive letters to Unix paths, and vice-versa.</p>
+<p>More complex transformations can be achieved using a nested
+<a href="../CoreTypes/mapper.html"><code>&lt;mapper&gt;</code></a>
+(since Ant 1.6.2).
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">targetos</td>
+    <td valign="top">
+        The target architecture.  Must be one of 'unix', 'windows', 
+        'netware', 'tandem' or 'os/2'.
+        This is a shorthand mechanism for specifying both
+        <code>pathsep</code> and <code>dirsep</code>
+        according to the specified target architecture.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dirsep</td>
+    <td valign="top">
+       The character(s) to use as the directory separator in the
+       generated paths.
+    </td>
+    <td valign="top" align="center">No, defaults to current JVM <tt>File.separator</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">pathsep</td>
+    <td valign="top">
+       The character(s) to use as the path-element separator in the
+       generated paths.
+    </td>
+    <td valign="top" align="center">No, defaults to current JVM <tt>File.pathSeparator</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property in which to place the converted path.</td>
+    <td valign="top" align="center">No, result will be logged if unset</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">What to convert, given as a
+        <a href="../using.html#references">reference</a> to a
+        <code>&lt;path&gt;</code>, <code>&lt;fileset&gt;</code>,
+        <code>&lt;dirset&gt;</code>, or <code>&lt;filelist&gt;</code>
+        defined elsewhere</td>
+    <td valign="top" align="center">No; if omitted, a nested
+        <code>&lt;path&gt;</code> element must be supplied.</td>
+  </tr>
+    <td valign="top">setonempty</td>
+    <td valign="top">Should the property be set, even if the result
+      is the empty string?
+    <td valign="top" align="center">No; default is &quot;true&quot;.
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>map</h4>
+<p>Specifies the mapping of path prefixes between Unix and Windows.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">
+      The prefix to match.  Note that this value is case-insensitive when
+      the build is running on a Windows platform and case-sensitive 
+      when running on a Unix platform.
+      <em>Since Ant 1.7.0</em>, on Windows this value is also insensitive
+      to the slash style used for directories, one can use '/' or '\'.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">to</td>
+    <td valign="top">The replacement text to use when <code>from</code> is matched.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<p>Each map element specifies a single replacement map to be applied to the elements of
+   the path being processed.  If no map entries are specified, then no path prefix mapping
+   is performed.
+</p>
+<p><strong>Note</strong>: The map elements are applied in the order specified,
+and only the first matching map element is applied.  So, the ordering of
+your map elements can be important, if any <code>from</code> values are
+prefixes of other <code>from</code> values.</i>
+</p>   
+<h4>Resource Collections</h4>
+<p>If the <code>refid</code> attribute is not specified, then one or more
+   nested <a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s must be supplied.</p>
+<h4>mapper</h4>
+<p>A single nested <a href="../CoreTypes/mapper.html">
+<code>&lt;mapper&gt;</code></a> element can be specified
+to perform any of various filename transformations (since Ant 1.6.2).
+</p>
+
+<h3>Examples</h3>
+<p>In the examples below, assume that the <code>${wl.home}</code> property
+has the value
+<code>d:\weblogic</code>, and <code>${wl.home.unix}</code> has the value
+<code>/weblogic</code>.</p>
+<h4>Example 1</h4>
+<pre>
+    &lt;path id="wl.path"&gt;
+      &lt;pathelement location=&quot;${wl.home}/lib/weblogicaux.jar&quot;/&gt;
+      &lt;pathelement location=&quot;${wl.home}/classes&quot;/&gt;
+      &lt;pathelement location=&quot;${wl.home}/mssqlserver4/classes&quot;/&gt;
+      &lt;pathelement location=&quot;c:\winnt\System32&quot;/&gt;
+    &lt;/path&gt;
+    
+    &lt;pathconvert targetos=&quot;unix&quot; property=&quot;wl.path.unix&quot; refid=&quot;wl.path&quot;&gt;
+      &lt;map from=&quot;${wl.home}&quot; to=&quot;${wl.home.unix}&quot;/&gt;
+      &lt;map from=&quot;c:&quot; to=&quot;&quot;/&gt;
+    &lt;/pathconvert&gt;
+</pre>
+<p> will generate the path shown below
+and store it in the property named <code>wl.path.unix</code>.
+</p>   
+<pre>
+/weblogic/lib/weblogicaux.jar:/weblogic/classes:/weblogic/mssqlserver4/classes:/WINNT/SYSTEM32
+</pre>
+
+<h4>Example 2</h4>
+Given a FileList defined as:
+<pre>
+  &lt;filelist id=&quot;custom_tasks.jars&quot;
+        dir=&quot;${env.HOME}/ant/lib&quot;
+        files=&quot;njavac.jar,xproperty.jar&quot;/&gt;
+</pre>
+then:
+<pre>
+    &lt;pathconvert targetos=&quot;unix&quot; property=&quot;custom_tasks.jars&quot; refid=&quot;custom_tasks.jars&quot;&gt;
+      &lt;map from=&quot;${env.HOME}&quot; to=&quot;/usr/local&quot;/&gt;
+    &lt;/pathconvert&gt;
+</pre>
+will convert the list of files to the following Unix path:
+<pre>
+/usr/local/ant/lib/njavac.jar:/usr/local/ant/lib/xproperty.jar
+</pre>
+
+<h4>Example 3</h4>
+<pre>
+    &lt;fileset dir=&quot;${src.dir}&quot; id=&quot;src.files&quot;&gt;
+      &lt;include name=&quot;**/*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  
+    &lt;pathconvert pathsep=&quot;,&quot; property=&quot;javafiles&quot; refid=&quot;src.files&quot;/&gt;
+</pre>
+<p>This example takes the set of files determined by the fileset (all files ending
+in <tt>.java</tt>), joins them together separated by commas, and places the resulting
+list into the property <tt>javafiles</tt>.  The directory separator is not specified, so
+it defaults to the appropriate character for the current platform.  Such a list could
+then be used in another task, like <tt>javadoc</tt>, that requires a comma separated
+list of files.
+</p>
+<h4>Example 4</h4>
+<pre>
+    &lt;pathconvert property="prop" dirsep="|"&gt;
+      &lt;map from="${basedir}/abc/" to=''/&gt;
+      &lt;path location="abc/def/ghi"/&gt;
+    &lt;/pathconvert&gt;
+</pre>
+  <p>
+    This example sets the property "prop" to "def|ghi" on
+    Windows and on Unix.
+  </p>
+</body>
+</html>
+
+ 
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/presetdef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/presetdef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/presetdef.html	(revision 14989)
@@ -0,0 +1,184 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PreSetDef Task</title>
+    <style type="text/css">
+      <!--
+           .code { background: #EFEFEF; margin-top: }
+           -->
+    </style>
+  </head>
+  
+  <body>
+    
+    <h2><a name="presetdef">PreSetDef</a></h2>
+    <h3>Description</h3>
+    <p>
+      The preset definition generates a new definition
+      based on a current definition with some attributes
+      or elements preset.
+    </p>
+    <p>
+      <em>since Ant 1.6</em>
+    </p>
+    <p>
+      The resolution of properties in any of the attributes or
+      nested text takes place with the definition is used and <em>not</em>
+      when the preset definition is defined.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">the name of the new definition</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">uri</td>
+        <td valign="top">
+          The uri that this definition should live in.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+    <h3>Parameters specified as nested elements</h3>
+    <h4>another type with attributes or elements set</h4>
+    <p>The <code>&lt;presetdef&gt;</code> task takes one nested element as a parameter.
+      This nested element can be any other type or task. The attributes
+      and elements that need to be preset are placed here.
+    </p>
+    
+    <h3>Examples</h3>
+      The following fragment defines a javac task with the debug, deprecation
+      srcdir and destdir
+      attributes set. It also has a src element to source files from a generated
+      directory.
+    <blockquote>
+<pre class="code">
+&lt;presetdef name="my.javac"&gt;
+   &lt;javac debug="${debug}" deprecation="${deprecation}"
+          srcdir="${src.dir}" destdir="${classes.dir}"&gt;
+      &lt;src path="${gen.dir}"/&gt;
+   &lt;/javac&gt;
+&lt;/presetdef&gt;
+</pre>
+    </blockquote>
+      This can be used as a normal javac task - example:
+    <blockquote>
+<pre class="code">
+&lt;my.javac/&gt;
+</pre>
+    </blockquote>
+      The attributes specified in the preset task may be overridden - i.e.
+      they may be seen as optional attributes - example:
+    <blockquote>
+<pre class="code">
+&lt;my.javac srcdir="${test.src}" deprecation="no"/&gt;
+</pre>
+    </blockquote>
+      One may put a presetdef definition in an antlib.
+      For example suppose the jar file antgoodies.jar has
+      the antlib.xml as follows:
+    <blockquote>
+<pre class="code">
+&lt;antlib&gt;
+   &lt;taskdef resource="com/acme/antgoodies/tasks.properties"/&gt;
+   &lt;!-- Implement the common use of the javac command --&gt;
+   &lt;presetdef name="javac"&gt;
+      &lt;javac deprecation="${deprecation}" debug="${debug}"
+             srcdir="src" destdir="classes"/&gt;
+   &lt;/presetdef&gt;
+&lt;/antlib&gt;
+</pre>
+    </blockquote>
+      One may then use this in a build file as follows:
+    <blockquote>
+<pre class="code">
+&lt;project default="example" xmlns:antgoodies="antlib:com.acme.antgoodies"&gt;
+   &lt;target name="example"&gt;
+      &lt;!-- Compile source --&gt;
+      &lt;antgoodies:javac srcdir="src/main"/&gt;
+      &lt;!-- Compile test code --&gt;
+      &lt;antgoodies:javac srcdir="src/test"/&gt;
+   &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following is an example of evaluation of properties when the
+      definition is used:
+    </p>
+     <blockquote>
+<pre class="code">
+&lt;target name="defineandcall"&gt;
+   &lt;presetdef name="showmessage"&gt;
+      &lt;echo&gt;message is '${message}'&lt;/echo&gt;
+   &lt;/presetdef&gt;
+   &lt;showmessage/&gt;
+   &lt;property name="message" value="Message 1"/&gt;
+   &lt;showmessage/&gt;
+   &lt;antcall target="called"&gt;
+      &lt;param name="message" value="Message 2"/&gt;
+   &lt;/antcall&gt;
+&lt;/target&gt;
+&lt;target name="called"&gt;
+   &lt;showmessage/&gt;
+&lt;/target&gt;
+</pre>
+     </blockquote>
+     <p>
+        The command ant defineandcall results in the output:
+     </p>
+     <blockquote>
+<pre class="code">
+defineandcall:
+[showmessage] message is '${message}'
+[showmessage] message is 'Message 1'
+
+called:
+[showmessage] message is 'Message 2'
+</pre>
+     </blockquote>
+<p>
+It is possible to use a trick to evaluate properties when the definition is
+<em>made</em> rather than used. This can be useful if you do not expect some
+properties to be available in child builds run with
+<code>&lt;ant ... inheritall="false"&gt;</code>:
+</p>
+<blockquote><pre class="code">
+&lt;macrodef name="showmessage-presetdef"&gt;
+  &lt;attribute name="messageval"/&gt;
+  &lt;presetdef name="showmessage"&gt;
+    &lt;echo&gt;message is '@{messageval}'&lt;/echo&gt;
+  &lt;/presetdef&gt;
+&lt;/macrodef&gt;
+&lt;showmessage-presetdef messageval="${message}"/&gt;
+</pre></blockquote>
+    <hr></hr>
+    
+  </body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/property.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/property.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/property.html	(revision 14989)
@@ -0,0 +1,216 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Property Task</title>
+</head>
+
+<body>
+
+<h2><a name="property">Property</a></h2>
+<h3>Description</h3>
+<p>Sets a <a href="../using.html#properties">property</a>
+(by name and value), or set of properties (from file or
+resource) in the project.  Properties are case sensitive.</p>
+ Properties are immutable: whoever sets a property first freezes it for the
+ rest of the build; they are most definitely not variables.
+<p>There are six ways to set properties:</p>
+<ul>
+  <li>By supplying both the <i>name</i> and <i>value</i> attribute.</li>
+  <li>By supplying both the <i>name</i> and <i>refid</i> attribute.</li>
+  <li>By setting the <i>file</i> attribute with the filename of the property
+    file to load. This property file has the format as defined by the file used
+    in the class java.util.Properties, with the same rules about how
+    non-ISO8859-1 characters must be escaped.</li>
+  <li>By setting the <i>url</i> attribute with the url from which to load the
+    properties. This url must be directed to a file that has the format as defined
+    by the file used in the class java.util.Properties.</li>
+  <li>By setting the <i>resource</i> attribute with the resource name of the
+    property file to load. A resource is a property file on the current
+    classpath, or on the specified classpath.</li>
+  <li>By setting the <i>environment</i> attribute with a prefix to use.
+    Properties will be defined for every environment variable by
+    prefixing the supplied name and a period to the name of the variable.</li>
+</ul>
+<p>Although combinations of these ways are possible, only one should be used
+at a time. Problems might occur with the order in which properties are set, for
+instance.</p>
+<p>The value part of the properties being set, might contain references to other
+properties. These references are resolved at the time these properties are set.
+This also holds for properties loaded from a property file.</p>
+<p>A list of predefined properties can be found <a
+href="../using.html#built-in-props">here</a>.</p>
+
+<h4>OpenVMS Users</h4>
+<p>With the <code>environment</code> attribute this task will load all defined
+logicals on an OpenVMS system.  Logicals with multiple equivalence names get
+mapped to a property whose value is a comma separated list of all equivalence
+names.  If a logical is defined in multiple tables, only the most local
+definition is available (the table priority order being PROCESS, JOB, GROUP,
+SYSTEM).
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the property to set.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the value of the property.</td>
+    <td valign="middle" align="center" rowspan="3">One of these, when using the
+       name attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">Sets the property to the absolute filename of the
+      given file. If the value of this attribute is an absolute path, it
+      is left unchanged (with / and \ characters converted to the
+      current platforms conventions). Otherwise it is taken as a path
+      relative to the project's basedir and expanded.</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top"><a href="../using.html#references">Reference</a> to an object
+      defined elsewhere. Only yields reasonable results for references
+      to <a href="../using.html#path">PATH like structures</a> or properties.</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">the resource name of the property file.</td>
+    <td valign="middle" align="center" rowspan="4">One of these, when
+      <b>not</b> using the name attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the filename of the property file .</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">the url from which to read properties.</td>
+  </tr>
+  <tr>
+    <td valign="top">environment</td>
+    <td valign="top">the prefix to use when retrieving environment variables. Thus
+    if you specify environment=&quot;myenv&quot; you will be able to access OS-specific
+    environment variables via property names &quot;myenv.PATH&quot; or
+    &quot;myenv.TERM&quot;. Note that if you supply a property name with a final
+    &quot;.&quot; it will not be doubled. ie environment=&quot;myenv.&quot; will still
+    allow access of environment variables through &quot;myenv.PATH&quot; and
+    &quot;myenv.TERM&quot;. This functionality is currently only implemented
+    on select platforms. Feel free to send patches to increase the number of platforms
+    this functionality is supported on ;).<br>
+    Note also that properties are case sensitive, even if the
+    environment variables on your operating system are not, e.g. it
+    will be ${env.Path} not ${env.PATH} on Windows 2000.</td>
+
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up a resource.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use when looking up a resource,
+      given as <a href="../using.html#references">reference</a> to a <code>&lt;path&gt;</code> defined
+      elsewhere..</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">Prefix to apply to properties loaded using <code>file</code>
+    or <code>resource</code>. A "." is appended to the prefix if not specified.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p><code>Property</code>'s <i>classpath</i> attribute is a <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<i>classpath</i> element.</p>
+<h3>Examples</h3>
+<pre>  &lt;property name=&quot;foo.dist&quot; value=&quot;dist&quot;/&gt;</pre>
+<p>sets the property <code>foo.dist</code> to the value &quot;dist&quot;.</p>
+<pre>  &lt;property file=&quot;foo.properties&quot;/&gt;</pre>
+<p>reads a set of properties from a file called &quot;foo.properties&quot;.</p>
+<pre>  &lt;property url=&quot;http://www.mysite.com/bla/props/foo.properties&quot;/&gt;</pre>
+<p>reads a set of properties from the address &quot;http://www.mysite.com/bla/props/foo.properties&quot;.</p>
+<pre>  &lt;property resource=&quot;foo.properties&quot;/&gt;</pre>
+<p>reads a set of properties from a resource called &quot;foo.properties&quot;.</p>
+<p>Note that you can reference a global properties file for all of your Ant
+builds using the following:</p>
+<pre>  &lt;property file=&quot;${user.home}/.ant-global.properties&quot;/&gt;</pre>
+<p>since the &quot;user.home&quot; property is defined by the Java virtual machine
+to be your home directory.  Where the &quot;user.home&quot; property resolves to in
+the file system depends on the operating system version and the JVM implementation.
+On Unix based systems, this will map to the user's home directory. On modern Windows
+variants, this will most likely resolve to the user's directory in the &quot;Documents
+and Settings&quot; folder. Older windows variants such as Windows 98/ME are less
+predictable, as are other operating system/JVM combinations.</p>
+
+<pre>
+  &lt;property environment=&quot;env&quot;/&gt;
+  &lt;echo message=&quot;Number of Processors = ${env.NUMBER_OF_PROCESSORS}&quot;/&gt;
+  &lt;echo message=&quot;ANT_HOME is set to = ${env.ANT_HOME}&quot;/&gt;
+</pre>
+<p>reads the system environment variables and stores them in properties, prefixed with &quot;env&quot;.
+Note that this only works on <em>select</em> operating systems.
+Two of the values are shown being echoed.
+</p>
+
+<h3>Property Files</h3>
+
+As stated, this task will load in a properties file stored in the file
+system, or as a resource on a classpath. Here are some interesting facts
+about this feature
+<ol>
+<li>If the file is not there, nothing is printed except at -verbose log
+level. This lets you have optional configuration files for every
+project, that team members can customize.
+<li>The rules for this format are laid down
+<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream)">by Sun</a>.
+This makes it hard for Team Ant to field bug reports about it.
+<li>Trailing spaces are not stripped. It may have been what you wanted.
+<li>Want unusual characters? Escape them \u0456 or \" style.
+<li>Ant Properties are expanded in the file.
+</ol>
+In-file property expansion is very cool. Learn to use it.
+<p>
+Example:
+<pre>
+build.compiler=jikes
+deploy.server=lucky
+deploy.port=8080
+deploy.url=http://${deploy.server}:${deploy.port}/
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/recorder.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/recorder.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/recorder.html	(revision 14989)
@@ -0,0 +1,172 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Recorder Task</title>
+</head>
+
+<body>
+
+<h2><a name="log">Record</a></h2>
+<h3>Description</h3>
+<p>A recorder is a listener to the current build process that records the
+output to a file.</p>
+
+<p>Several recorders can exist at the same time.  Each recorder is
+associated with a file.  The filename is used as a unique identifier for
+the recorders.  The first call to the recorder task with an unused filename
+will create a recorder (using the parameters provided) and add it to the
+listeners of the build.  All subsequent calls to the recorder task using
+this filename will modify that recorders state (recording or not) or other
+properties (like logging level).</p>
+
+<p>Some technical issues: the file's print stream is flushed for &quot;finished&quot;
+events (buildFinished, targetFinished and taskFinished), and is closed on
+a buildFinished event.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the file this logger is associated with.</td>
+    <td align="center" valign="middle">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">This tells the logger what to do: should it start
+    recording or stop?  The first time that the recorder task is called for
+    this logfile, and if this attribute is not provided, then the default
+    for this attribute is &quot;start&quot;.  If this attribute is not provided on
+    subsequent calls, then the state remains as previous.
+    [Values = {start|stop}, Default = no state change]</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Should the recorder append to a file, or create a new
+    one? This is only applicable the first time this task is called for
+    this file.  [Values = {yes|no}, Default=no]</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">emacsmode</td>
+    <td valign="top">Removes <code>[task]</code> banners like Ant's
+    <code>-emacs</code> command line switch if set to
+    <em>true</em>.</td>
+    <td align="center" valign="middle">no, default is <em>false</em></td>
+  </tr>
+  <tr>
+    <td valign="top">loglevel</td>
+    <td valign="top">At what logging level should this recorder instance
+    record to?  This is not a once only parameter (like <code>append</code>
+    is) -- you can increase or decrease the logging level as the build process
+    continues.  [Values= {error|warn|info|verbose|debug}, Default = no change]
+    </td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p>The following build.xml snippet is an example of how to use the recorder
+to record just the <code>&lt;javac&gt;</code> task:</p>
+<pre>
+    ...
+    &lt;compile &gt;
+        &lt;record name=&quot;log.txt&quot; action=&quot;start&quot;/&gt;
+        &lt;javac ...
+        &lt;record name=&quot;log.txt&quot; action=&quot;stop&quot;/&gt;
+    &lt;compile/&gt;
+    ...
+</pre>
+
+<p>The following two calls to <code>&lt;record&gt;</code> set up two
+recorders: one to file &quot;records-simple.log&quot; at logging level <code>info</code>
+(the default) and one to file &quot;ISO.log&quot; using logging level of
+<code>verbose</code>.</p>
+<pre>
+    ...
+    &lt;record name=&quot;records-simple.log&quot;/&gt;
+    &lt;record name=&quot;ISO.log&quot; loglevel=&quot;verbose&quot;/&gt;
+    ...
+</pre>
+
+<h3>Notes</h3>
+<p>There is some functionality that I would like to be able to add in the
+future.  They include things like the following:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">listener</td>
+    <td valign="top">A classname of a build listener to use from this point
+    on instead of the default listener.</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">includetarget</td>
+    <td valign="top" rowspan=2>A comma-separated list of targets to automatically
+    record.  If this value is &quot;all&quot;, then all targets are recorded.
+    [Default = all]</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludetarget</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">includetask</td>
+    <td valign="top" rowspan=2>A comma-separated list of task to automatically
+    record or not.  This could be difficult as it could conflict with the
+    <code>includetarget/excludetarget</code>.  (e.g.:
+    <code>includetarget=&quot;compile&quot; exlcudetask=&quot;javac&quot;</code>, what should
+    happen?)</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludetask</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">add greater flexibility to the action attribute.  Things
+    like <code>close</code> to close the print stream.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top"></td>
+    <td valign="top"></td>
+    <td align="center" valign="top"></td>
+  </tr>
+</table>
+
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/rename.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/rename.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/rename.html	(revision 14989)
@@ -0,0 +1,64 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Rename Task</title>
+</head>
+
+<body>
+
+<h2><a name="rename">Rename</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Move task instead.</i></p>
+<h3>Description</h3>
+<p>Renames a given file.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">file to rename.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">new name of the file.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">Enable replacing of existing file (default: on).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;rename src=&quot;foo.jar&quot; dest=&quot;${name}-${version}.jar&quot;/&gt;</pre> 
+<p>Renames the file <code>foo.jar</code> to <code>${name}-${version}.jar</code> (assuming <code>name</code>
+ and <code>version</code> being predefined properties). If a file named <code>${name}-${version}.jar</code>
+ already exists, it will be removed prior to renaming <code>foo.jar</code>.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/replace.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/replace.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/replace.html	(revision 14989)
@@ -0,0 +1,205 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Replace Task</title>
+</head>
+
+<body>
+
+<h2><a name="replace">Replace</a></h2>
+<h3>Description</h3>
+<p>Replace is a directory based task for replacing the occurrence of a given string with another string 
+in selected file.</p>
+<p>If you want to replace a text that crosses line boundaries, you
+must use a nested <code>&lt;replacetoken&gt;</code> element.</p>
+
+<p>The output file is only written if it differs from the existing
+file.  This prevents spurious rebuilds based on unchanged files which
+have been regenerated by this task.</p> 
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">file for which the token should be replaced.</td>
+    <td align="center" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The base directory to use when replacing a token in 
+      multiple files.</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the files upon which replace operates.</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">token</td>
+    <td valign="top">the token which must be replaced.</td>
+    <td valign="top" align="center">Yes, unless a nested
+    <code>replacetoken</code> element or the replacefilterfile
+    attribute is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the new value for the token. When omitted, an empty string
+      (&quot;&quot;) is used.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">summary</td>
+    <td valign="top">Indicates whether a summary of the replace operation 
+                     should be produced, detailing how many token occurrences 
+                     and files were processed
+                     </td>
+    <td valign="top" align="center">No, by default no summary is produced</td>
+  </tr>
+  <tr>
+    <td valign="top">propertyFile</td>
+    <td valign="top">valid property file from which properties specified using nested <code>&lt;replacefilter&gt;</code> elements are drawn.</td>
+    <td valign="top" align="center">Yes only if <i>property</i> attribute of <code>&lt;replacefilter&gt;</code> is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">replacefilterfile</td>
+    <td valign="top">valid property file.  Each property will be
+    treated as a replacefilter where <code>token</code> is the name of
+    the property and <code>value</code> is the properties value.
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;replace file=&quot;${src}/index.html&quot; token=&quot;@@@&quot; value=&quot;wombat&quot;/&gt;</pre>
+<p>replaces occurrences of the string &quot;@@@&quot; with the string
+&quot;wombat&quot;, in the file <code>${src}/index.html</code>.</p>
+<h3>Parameters specified as nested elements</h3>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code> as well as the
+nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>If either the text you want to replace or the replacement text
+cross line boundaries, you can use nested elements to specify
+them.</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;replace dir=&quot;${src}&quot; value=&quot;wombat&quot;&gt;
+  &lt;include name=&quot;**/*.html&quot;/&gt;
+  &lt;replacetoken&gt;&lt;![CDATA[multi line
+token]]&gt;&lt;/replacetoken&gt;
+&lt;/replace&gt;
+</pre></blockquote>
+<p>replaces occurrences of the string &quot;multi
+line<i>\n</i>token&quot; with the string &quot;wombat&quot;, in all
+HTML files in the directory <code>${src}</code>.Where <i>\n</i> is
+the platform specific line separator.</p>
+<blockquote><pre>
+&lt;replace file=&quot;${src}/index.html&quot;&gt;
+  &lt;replacetoken&gt;&lt;![CDATA[two line
+token]]&gt;&lt;/replacetoken&gt;
+  &lt;replacevalue&gt;&lt;![CDATA[two line
+token]]&gt;&lt;/replacevalue&gt;
+&lt;/replace&gt;
+</pre></blockquote>
+<h4>replacefilter</h4>
+<p>In addition to allowing for multiple replacements, optional nested <code>&lt;replacefilter&gt;</code> elements allow replacement values to be extracted from a property file. The name of this file is specified using the <code>&lt;replace&gt;</code> attribute <i>propertyFile</i>.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">token</td>
+    <td valign="top">The string to search for.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The replacement string.</td>
+    <td align="center" rowspan="2">Either may be specified, but not both. Both can be omitted, if desired.</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">Name of the property whose value is to serve as the replacement value.</td>
+  </tr>
+</table>
+<p>If neither <i>value</i> nor <i>property</i> is used, the value provided using the <code>&lt;replace&gt;</code> attribute <i>value</i> and/or the <code>&lt;replacevalue&gt;</code> element is used. If no value was specified using either of these options, the token is replaced with an empty string.
+</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;replace 
+    file=&quot;configure.sh&quot;
+    value=&quot;defaultvalue&quot;
+    propertyFile=&quot;source/name.properties&quot;&gt;
+  &lt;replacefilter 
+    token=&quot;@token1@&quot;/&gt;
+  &lt;replacefilter 
+    token=&quot;@token2@&quot; 
+    value=&quot;value2&quot;/&gt;
+  &lt;replacefilter 
+    token=&quot;@token3@&quot; 
+    property=&quot;property.key&quot;/&gt;
+&lt;/replace&gt;
+</pre></blockquote>
+<p>In file <code>configure.sh</code>, replace all instances of &quot;@token1@&quot; with &quot;defaultvalue&quot;, all instances of &quot;@token2@&quot; with &quot;value2&quot;, and all instances of &quot;@token3@&quot; with the value of the property &quot;property.key&quot;, as it appears in property file <code>src/name.properties</code>.</p>
+<p><b>Note:</b> It is possible to use either the <i>token</i>/<code>&lt;replacetoken&gt;</code> and <i>value</i>/<code>&lt;replacevalue&gt;</code> attributes/elements, the nested replacefilter elements, or both in the same operation.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/resourcecount.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/resourcecount.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/resourcecount.html	(revision 14989)
@@ -0,0 +1,82 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ResourceCount Task</title>
+</head>
+
+<body>
+
+<h2><a name="resourcecount">ResourceCount</a></h2>
+<h3>Description</h3>
+<p>Display or set a property containing the size of a nested
+   <a href="../CoreTypes/resources.html#collection">Resource Collection</a>.
+   Can also be used as a condition. <b>Since Ant 1.7</b></p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The property to set. If omitted the results are written
+      to the log. Ignored when processing as a condition.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">A <a href="../using.html#references">reference</a>
+      to a Resource Collection.</td>
+    <td valign="top" align="center">
+      Yes, unless a nested Resource Collection is supplied
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">count</td>
+    <td valign="top">Comparison count for processing as a condition.</td>
+    <td valign="top" align="center">Yes, in condition mode</td>
+  </tr>
+  <tr>
+    <td valign="top">when</td>
+    <td valign="top">Comparison type: "equal", "eq", "greater", "gt", "less",
+      "lt", "ge" (greater or equal), "ne" (not equal), "le" (less or equal)
+      for use when operating as a condition.</td>
+    <td valign="top" align="center">No; default is "equal"</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>Resource Collection</h4>
+<p>A single
+  <a href="../CoreTypes/resources.html#collection">Resource Collection</a>
+should be specified via a nested element or the <code>refid</code> attribute.
+</p>
+<h3>Examples</h3>
+<pre>&lt;resourcecount property=&quot;count.foo&quot;&gt;
+  &lt;filelist dir=&quot;.&quot; files=&quot;foo,bar&quot; /&gt;
+&lt;/resourcecount&gt;
+</pre>
+<p>Stores the number of resources in the specified filelist (two)
+in the property named <i>count.foo</i>.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/rmic.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/rmic.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/rmic.html	(revision 14989)
@@ -0,0 +1,272 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Rmic Task</title>
+</head>
+
+<body>
+
+<h2><a name="rmic">Rmic</a></h2>
+<h3>Description</h3>
+<p>Runs the rmic compiler for a certain class.</p>
+<p>Rmic can be run on a single class (as specified with the classname
+attribute) or a number of classes at once (all classes below base that
+are neither _Stub nor _Skel classes).  If you want to rmic a single
+class and this class is a class nested into another class, you have to
+specify the classname in the form <code>Outer$$Inner</code> instead of
+<code>Outer.Inner</code>.</p>
+<p>It is possible to refine the set of files that are being rmiced. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>base</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>It is possible to use different compilers. This can be selected
+with the &quot;build.rmic&quot; property or the <code>compiler</code>
+attribute.
+<a name="compilervalues">Here are the choices</a>:</p>
+<ul>
+  <li>default -the default compiler (kaffe or sun) for the platform.
+  <li>sun (the standard compiler of the JDK)</li>
+  <li>kaffe (the standard compiler of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
+  <li>weblogic</li>
+  <li>forking - the sun compiler forked into a separate process (since Ant 1.7)</li>
+  <li>xnew - the sun compiler forked into a separate process,
+      with the -Xnew option (since Ant 1.7).
+      This is the most reliable way to use -Xnew</li>
+    <li> "" (empty string). This has the same behaviour as not setting the compiler attribute.
+    First the value of <tt>build.rmic</tt> is used if defined, and if not, the default
+    for the platform is chosen. If build.rmic is set to this, you get the default.
+
+</ul>
+
+<p>The <a href="http://dione.zcu.cz/~toman40/miniRMI/">miniRMI</a>
+project contains a compiler implementation for this task as well,
+please consult miniRMI's documentation to learn how to use it.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">base</td>
+    <td valign="top">the location to store the compiled files.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the class for which to run <code>rmic</code>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcebase</td>
+    <td valign="top">Pass the &quot;-keepgenerated&quot; flag to rmic and
+ move the generated source file to the given sourcebase directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">stubversion</td>
+    <td valign="top">Specify the JDK version for the generated stub code.
+ Specify &quot;1.1&quot; to pass the &quot;-v1.1&quot; option to rmic,
+ "1.2" for -v12, compat for -vcompat. <br>
+        Since Ant1.7, if you do not specify a version, and do not ask
+        for iiop or idl files, "compat" is selected.
+ 
+ </td>
+    <td align="center" valign="top">No, default="compat"</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use during compilation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use during compilation, given as <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verify</td>
+    <td valign="top">check that classes implement Remote before handing them 
+        to rmic (default is false)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">iiop</td>
+    <td valign="top">indicates that portable (RMI/IIOP) stubs should be generated</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">iiopopts</td>
+    <td valign="top">additional arguments for IIOP class generation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">idl</td>
+    <td valign="top">indicates that IDL output files should be generated</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">idlopts</td>
+    <td valign="top">additional arguments for IDL file generation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">generate debug info (passes -g to rmic). Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeAntRuntime</td> 
+    <td valign="top">whether to include the Ant run-time libraries;
+      defaults to <code>yes</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeJavaRuntime</td> 
+    <td valign="top">whether to include the default run-time
+      libraries from the executing VM; defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">extdirs</td>
+    <td valign="top">location of installed extensions.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">The compiler implementation to use.
+      If this attribute is not set, the value of the
+      <code>build.rmic</code> property, if set, will be used.
+      Otherwise, the default compiler for the current VM will be used.
+      (See the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath and extdirs</h4>
+<p><code>Rmic</code>'s <i>classpath</i> and <i>extdirs</i> attributes are <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<i>classpath</i> and <i>extdirs</i> elements.</p>
+
+<h4>compilerarg</h4>
+
+<p>You can specify additional command line arguments for the compiler
+with nested <code>&lt;compilerarg&gt;</code> elements.  These elements
+are specified like <a href="../using.html#arg">Command-line
+Arguments</a> but have an additional attribute that can be used to
+enable arguments only if a given compiler implementation will be
+used.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td>Only pass the specified argument if the chosen
+      compiler implementation matches the value of this attribute.
+      Legal values are the
+      same as those in the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;rmic classname=&quot;com.xyz.FooBar&quot; base=&quot;${build}/classes&quot;/&gt;</pre>
+<p>runs the rmic compiler for the class <code>com.xyz.FooBar</code>. The
+compiled files will be stored in the directory <code>${build}/classes</code>.</p>
+<pre>  &lt;rmic base=&quot;${build}/classes&quot; includes=&quot;**/Remote*.class&quot;/&gt;</pre>
+<p>runs the rmic compiler for all classes with <code>.class</code>
+files below <code>${build}/classes</code> whose classname starts with
+<i>Remote</i>. The compiled files will be stored in the directory
+<code>${build}/classes</code>.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sequential.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sequential.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sequential.html	(revision 14989)
@@ -0,0 +1,55 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Sequential Task</title>
+</head>
+
+<body>
+
+<h2><a name="sequintial">Sequential</a></h2>
+<h3>Description</h3>
+<p>Sequential is a container task - it can contain other Ant tasks. The nested 
+tasks are simply executed in sequence. Sequential's primary use is to support 
+the sequential execution of a subset of tasks within the 
+<a href="parallel.html">parallel</a> task</p>
+
+<p>The sequential task has no attributes and does not support any nested 
+elements apart from Ant tasks. Any valid Ant task may be embedded within the 
+sequential task.</p>
+
+<h3>Example</h3>
+<pre>
+&lt;parallel&gt;
+  &lt;wlrun ... &gt;
+  &lt;sequential&gt;
+    &lt;sleep seconds=&quot;30&quot;/&gt;
+    &lt;junit ... &gt;
+    &lt;wlstop/&gt;
+  &lt;/sequential&gt;
+&lt;/parallel&gt;
+</pre>
+<p>This example shows how the sequential task is used to execute three tasks in
+sequence, while another task is being executed in a separate thread. </p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/signjar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/signjar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/signjar.html	(revision 14989)
@@ -0,0 +1,235 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SignJar Task</title>
+</head>
+
+<body>
+
+<h2><a name="signjar">SignJar</a></h2>
+<h3>Description</h3>
+<p>Signs JAR files with the <tt>jarsigner</tt> command line tool. 
+It will take a named file in the <tt>jar</tt> attribute, and an optional
+<tt>destDir</tt> or <tt>signedJar</tt> attribute. Nested paths are also
+supported; here only an (optional) <tt>destDir</tt> is allowed. If a destination
+directory or explicit JAR file name is not provided, JARs are signed in place.
+</p>
+<p>
+Dependency rules
+</p>
+<ul>
+<li>Nonexistent destination JARs are created/signed</li>
+<li>Out of date destination JARs are created/signed</li>
+<li>If a destination file and a source file are the same,
+and <tt>lazy</tt> is true, the JAR is only signed if it does not 
+contain a signature by this alias.</li>
+<li>If a destination file and a source file are the same,
+and <tt>lazy</tt> is false, the JAR is signed.</li> 
+</ul>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">jar</td>
+    <td valign="top">the jar file to sign</td>
+    <td valign="top" align="center">Yes, unless nested paths have
+      been used.</td>
+  </tr>
+  <tr>
+    <td valign="top">alias</td>
+    <td valign="top">the alias to sign under</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">storepass</td>
+    <td valign="top">password for keystore integrity.</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">keystore</td>
+    <td valign="top">keystore location</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">storetype</td>
+    <td valign="top">keystore type</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keypass</td>
+    <td valign="top">password for private key (if different)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sigfile</td>
+    <td valign="top">name of .SF/.DSA file</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">signedjar</td>
+    <td valign="top">name of signed JAR file. This can only be set when 
+    the <tt>jar</tt> attribute is set.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">(true | false) verbose output when signing</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">internalsf</td>
+    <td valign="top">(true | false) include the .SF file inside the signature
+block</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">sectionsonly</td>
+    <td valign="top">(true | false) don't compute hash of entire manifest</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">lazy</td>
+    <td valign="top">flag to control whether the presence of a signature
+  file means a JAR is signed. This is only used when the target JAR matches
+  the source JAR</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Specifies the maximum memory the jarsigner VM will use. Specified in the
+                     style of standard java memory specs (e.g. 128m = 128 MBytes)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the signed files the same last modified
+      time as the original jar files.</td>
+    <td valign="top" align="center">No; default false.</td>
+  </tr>
+  <tr>
+    <td valign="top">tsaurl</td>
+    <td valign="top">URL for a timestamp authority for timestamped
+    JAR files in Java1.5+</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tsacert</td>
+    <td valign="top">alias in the keystore for a timestamp authority for 
+    timestamped JAR files in Java1.5+</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  
+</table>
+<h3>Parameters as nested elements</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">path of JAR files to sign. <em>since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fileset</td>
+    <td valign="top">fileset of JAR files to sign. </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mapper</td>
+    <td valign="top">A mapper to rename jar files during signing</td>
+    <td valign="top" align="center">No, and only one can be supplied</td>
+  </tr>
+  <tr>
+    <td valign="top">sysproperty</td>
+    <td valign="top">JVM system properties, with the syntax of Ant
+    <a href="exec.html#env">environment variables</a> </td>
+    <td valign="top" align="center">No, and only one can be supplied</td>
+  </tr>
+ </table>
+
+
+<h3>Examples</h3>
+  <blockquote><pre>
+&lt;signjar jar=&quot;${dist}/lib/ant.jar&quot;
+alias=&quot;apache-group&quot; storepass=&quot;secret&quot;/&gt;
+</pre></blockquote>
+<p>
+  signs the ant.jar with alias &quot;apache-group&quot; accessing the
+  keystore and private key via &quot;secret&quot; password.
+</p>
+  <blockquote><pre>
+&lt;signjar destDir="signed"
+    alias="testonly" keystore="testkeystore"
+    storepass="apacheant"
+    preservelastmodified="true"&gt;
+  &lt;path&gt;
+    &lt;fileset dir="dist" includes="**/*.jar" /&gt;
+  &lt;/path&gt;
+  &lt;flattenmapper /&gt;
+&lt;/signjar&gt;
+</pre></blockquote>
+<p>
+Sign all JAR files matching the dist/**/*.jar pattern, copying them to the
+directory "signed" afterwards. The flatten mapper means that they will
+all be copied to this directory, not to subdirectories.
+
+</p>
+  <blockquote><pre>
+&lt;signjar
+    alias="testonly" keystore="testkeystore"
+    storepass="apacheant"
+    lazy="true"
+    &gt;
+  &lt;path&gt;
+    &lt;fileset dir="dist" includes="**/*.jar" /&gt;
+  &lt;/path&gt;
+&lt;/signjar&gt;
+</pre></blockquote>
+<p>
+Sign all the JAR files in dist/**/*.jar <i>in-situ</i>. Lazy signing is used,
+so the files will only be signed if they are not already signed.
+</p>
+<h3>About timestamp signing</h3>
+
+<p>
+Timestamped JAR files are a new feature in Java1.5; a feature supported in Ant since
+Ant 1.7. Ant does not yet support proxy setup for this singing process, and
+the whole TSA feature is not tested yet. Furthermore, the 
+<a href="http://java.sun.com/j2se/1.5.0/docs/guide/security/time-of-signing-beta1.html">
+official TSA documentation</a>
+warns that the API is subject to change. If a future version of Java changes the
+API, Ant will break. It may be possible to hide changes if and when they occur,
+but this can not be guaranteed. 
+</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sleep.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sleep.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sleep.html	(revision 14989)
@@ -0,0 +1,85 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Sleep Task</title>
+</head>
+
+<body>
+
+<h2><a name="sleep">Sleep</a></h2>
+<h3>Description</h3>
+<p> A task for sleeping a short period of time, useful when a build or deployment 
+  process requires an interval between tasks.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr> 
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr> 
+    <td valign="top">hours</td>
+    <td valign="top">hours to to add to the sleep time</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">minutes</td>
+    <td valign="top"> minutes to add to the sleep time</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">seconds</td>
+    <td valign="top">seconds to add to the sleep time</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">milliseconds</td>
+    <td valign="top">milliseconds to add to the sleep time</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">failonerror</td>
+    <td valign="top">flag controlling whether to break the build on an error. 
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>The sleep time is the sum of specified values, hours, minutes seconds and milliseconds. 
+  A negative value can be supplied to any of them provided the total sleep time 
+  is positive</p>
+<p>Note that sleep times are always hints to be interpred by the OS how it feels 
+  - small times may either be ignored or rounded up to a minimum timeslice. Note 
+  also that the system clocks often have a fairly low granularity too, which complicates 
+  measuring how long a sleep actually took.</p>
+<h3>Examples</h3>
+<pre>   &lt;sleep milliseconds=&quot;10&quot;/&gt;</pre>
+Sleep for about 10 mS. 
+<pre>   &lt;sleep seconds=&quot;2&quot;/&gt;</pre>
+Sleep for about 2 seconds. 
+<pre>   &lt;sleep hours=&quot;1&quot; minutes=&quot;-59&quot; seconds=&quot;-58&quot;/&gt;</pre>
+<p>Sleep for one hour less 59:58, or two seconds again </p>
+<pre>   &lt;sleep/&gt;</pre>
+Sleep for no time at all. This may yield the CPU time to another thread or process. 
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sql.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sql.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sql.html	(revision 14989)
@@ -0,0 +1,380 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SQL Task</title>
+</head>
+<body>
+
+<h2><a name="sql">Sql</a></h2>
+<h3>Description</h3>
+<p>Executes a series of SQL statements via JDBC to a database. Statements can 
+either be read in from a text file using the <i>src</i> attribute or from 
+between the enclosing SQL tags.</p>
+
+<p>Multiple statements can be provided, separated by semicolons (or the 
+defined <i>delimiter</i>). Individual lines within the statements can be 
+commented using either --, // or REM at the start of the line.</p>
+
+<p>The <i>autocommit</i> attribute specifies whether auto-commit should be 
+turned on or off whilst executing the statements. If auto-commit is turned 
+on each statement will be executed and committed. If it is turned off the 
+statements will all be executed as one transaction.</p>
+
+<p>The <i>onerror</i> attribute specifies how to proceed when an error occurs 
+during the execution of one of the statements. 
+The possible values are: <b>continue</b> execution, only show the error;
+<b>stop</b> execution and commit transaction;
+and <b>abort</b> execution and transaction and fail task.</p>
+
+<p>
+<b>Proxies</b>. Some JDBC drivers (including the Oracle thin driver), 
+    use the JVM's proxy settings to route their JDBC operations to the database.
+    Since Ant1.7, Ant running on Java1.5 or later defaults to 
+    <a href="../proxy.html">using
+    the proxy settings of the operating system</a>. 
+    Accordingly, the OS proxy settings need to be valid, or Ant's proxy
+    support disabled with <code>-noproxy</code> option.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+  <td width="12%" valign="top">driver</td>
+  <td width="78%" valign="top">Class name of the jdbc driver</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">url</td>
+  <td width="78%" valign="top">Database connection url</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">userid</td>
+  <td width="78%" valign="top">Database user name</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">password</td>
+  <td width="78%" valign="top">Database password</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">src</td>
+  <td width="78%" valign="top">File containing SQL statements</td>
+  <td width="10%" valign="top">Yes, unless statements enclosed within tags</td>
+</tr>
+<tr>
+  <td valign="top">encoding</td>
+  <td valign="top">The encoding of the files containing SQL statements</td>
+  <td align="center">No - defaults to default JVM encoding</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">delimiter</td>
+  <td width="78%" valign="top">String that separates SQL statements</td>
+  <td width="10%" valign="top">No, default &quot;;&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">autocommit</td>
+  <td width="78%" valign="top">Auto commit flag for database connection (default false)</td>
+  <td width="10%" valign="top">No, default &quot;false&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">print</td>
+  <td width="78%" valign="top">Print result sets from the statements (default false)</td>
+  <td width="10%" valign="top">No, default &quot;false&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">showheaders</td>
+  <td width="78%" valign="top">Print headers for result sets from the statements (default true)</td>
+  <td width="10%" valign="top">No, default &quot;true&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">showtrailers</td>
+  <td width="78%" valign="top">Print trailer for number of rows affected (default true)</td>
+  <td width="10%" valign="top">No, default &quot;true&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">output</td>
+  <td width="78%" valign="top">Output file for result sets (defaults to System.out)</td>
+  <td width="10%" valign="top">No (print to System.out by default)</td>
+</tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">whether output should be appended to or overwrite
+    an existing file.  Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+  <td width="12%" valign="top">classpath</td>
+  <td width="78%" valign="top">Classpath used to load driver</td>
+  <td width="10%" valign="top">No (use system classpath)</td>
+</tr>
+  <tr>
+    <td width="12%" valign="top">classpathref</td>
+    <td width="78%" valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+  <td width="10%" valign="top">No (use system classpath)</td>
+  </tr>
+<tr>
+  <td width="12%" valign="top">onerror</td>
+  <td width="78%" valign="top">Action to perform when statement fails: continue, stop, abort</td>
+  <td width="10%" valign="top">No, default &quot;abort&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">rdbms</td>
+  <td width="78%" valign="top">Execute task only if this rdbms</td>
+  <td width="10%" valign="top">No (no restriction)</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">version</td>
+  <td width="78%" valign="top">Execute task only if rdbms version match</td>
+  <td width="10%" valign="top">No (no restriction)</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">caching</td>
+  <td width="78%" valign="top">Should the task cache loaders and the driver?</td>
+  <td width="10%" valign="top">No (default=true)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">delimitertype</td>
+  <td width="78%" valign="top">Control whether the delimiter will only be recognized on a line by itself.<br>
+    Can be "normal" -anywhere on the line, or "row", meaning it must be on a line by itself</td>
+  <td width="10%" valign="top">No (default:normal)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">keepformat</td>
+  <td width="78%" valign="top">Control whether the format of the sql will be preserved.<br>
+    Usefull when loading packages and procedures.
+  <td width="10%" valign="top">No (default=false)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">escapeprocessing</td>
+  <td width="78%" valign="top">Control whether the Java statement
+    object will perform escape substitution.<br>
+    See <a
+    href="http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Statement.html#setEscapeProcessing(boolean)">Statement's
+    API docs</a> for details.  <em>Since Ant 1.6</em>.
+  <td width="10%" valign="top">No (default=true)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">expandproperties</td>
+  <td width="78%" valign="top">Set to true to turn on property expansion in
+  nested SQL, inline in the task or nested transactions. <em>Since Ant 1.7</em>.
+  <td width="10%" valign="top">No (default=false)</td>
+</tr>
+
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>transaction</h4>
+<p>Use nested <code>&lt;transaction&gt;</code> 
+elements to specify multiple blocks of commands to the executed
+executed in the same connection but different transactions. This
+is particularly useful when there are multiple files to execute
+on the same schema.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">File containing SQL statements</td>
+    <td valign="top" align="center">Yes, unless statements enclosed within tags</td>
+  </tr>
+</table>
+<p>The <code>&lt;transaction&gt;</code> element supports any <a
+href="../CoreTypes/resources.html">resource</a> or single element
+resource collection as nested element to specify the resource
+containing the SQL statements.</p>
+
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or resource
+collection</h4>
+
+<p>You can specify multiple sources via nested resource collection
+elements.  Each resource of the collection will be run in a
+transaction of its own.  Prior to Ant 1.7 only filesets were
+supported.  Use a sort resource collection to get a predictable order
+of transactions. </p>
+
+<h4>classpath</h4>
+<p><code>Sql</code>'s <em>classpath</em> attribute is a <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<em>classpath</em> element. It is used to load the JDBC classes.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    src=&quot;data.sql&quot;
+/&gt;
+</pre></blockquote>
+
+<p>Connects to the database given in <i>url</i> as the sa user using the 
+org.database.jdbcDriver and executes the SQL statements contained within 
+the file data.sql</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    &gt;
+insert
+into table some_table
+values(1,2,3,4);
+
+truncate table some_other_table;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>Connects to the database given in <i>url</i> as the sa
+ user using the org.database.jdbcDriver and executes the two SQL statements 
+ inserting data into some_table and truncating some_other_table. Ant Properties
+ in the nested text will not be expanded.</p>
+
+<p>Note that you may want to enclose your statements in
+<code>&lt;![CDATA[</code> ... <code>]]&gt;</code> sections so you don't
+need to escape <code>&lt;</code>, <code>&gt;</code> <code>&amp;</code>
+or other special characters. For example:</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    &gt;&lt;![CDATA[
+
+update some_table set column1 = column1 + 1 where column2 &lt; 42;
+
+]]&gt;&lt;/sql&gt;
+</pre></blockquote>
+
+The following command turns property expansion in nested text on (it is off purely for backwards
+compatibility), then creates a new user in the HSQLDB database using Ant properties. 
+
+<blockquote><pre>&lt;sql
+    driver="org.hsqldb.jdbcDriver";
+    url="jdbc:hsqldb:file:${database.dir}"
+    userid="sa"
+    password=""
+    expandProperties="true"
+    &gt;
+  &lt;transaction&gt;
+    CREATE USER ${newuser} PASSWORD ${newpassword}
+  &lt;/transaction&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+
+<p>The following connects to the database given in url as the sa user using 
+the org.database.jdbcDriver and executes the SQL statements contained within 
+the files data1.sql, data2.sql and data3.sql and then executes the truncate 
+operation on <i>some_other_table</i>.</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot; &gt;
+  &lt;transaction  src=&quot;data1.sql&quot;/&gt;
+  &lt;transaction  src=&quot;data2.sql&quot;/&gt;
+  &lt;transaction  src=&quot;data3.sql&quot;/&gt;
+  &lt;transaction&gt;
+    truncate table some_other_table;
+  &lt;/transaction&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following example does the same as (and may execute additional
+SQL files if there are more files matching the pattern
+<code>data*.sql</code>) but doesn't guarantee that data1.sql will be
+run before <code>data2.sql</code>.</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;&gt;
+  &lt;path&gt;
+    &lt;fileset dir=&quot;.&quot;&gt;
+      &lt;include name=&quot;data*.sql&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;path&gt;
+  &lt;transaction&gt;
+    truncate table some_other_table;
+  &lt;/transaction&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following connects to the database given in url as the sa user using the 
+org.database.jdbcDriver and executes the SQL statements contained within the 
+file data.sql, with output piped to outputfile.txt, searching /some/jdbc.jar 
+as well as the system classpath for the driver class.</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    src=&quot;data.sql&quot;
+    print=&quot;yes&quot;
+    output=&quot;outputfile.txt&quot;
+    &gt;
+&lt;classpath&gt;
+	&lt;pathelement location=&quot;/some/jdbc.jar&quot;/&gt;
+&lt;/classpath&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following will only execute if the RDBMS is &quot;oracle&quot; and the version 
+starts with &quot;8.1.&quot;</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    src=&quot;data.sql&quot;
+    rdbms=&quot;oracle&quot;
+    version=&quot;8.1.&quot;
+    &gt;
+insert
+into table some_table
+values(1,2,3,4);
+
+truncate table some_other_table;
+&lt;/sql&gt;
+</pre></blockquote>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/style.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/style.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/style.html	(revision 14989)
@@ -0,0 +1,485 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XSLT Task</title>
+</head>
+
+<body>
+
+<h2><a name="style">XSLT</a></h2>
+<p><em>The name <code>style</code> is a deprecated name for the same task.</em></p>
+<h3>Description</h3>
+<p>Process a set of documents via XSLT.</p>
+<p>This is useful for building views of XML based documentation,
+or for generating code.</p>
+<p><b>Note:</b> If you are using JDK 1.4 or higher, this task does not require external libraries
+not supplied in the Ant distribution. However, often the built in XSL engine is not as up
+to date as a fresh download, so an update is still highly recommended.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+<p>It is possible to refine the set of files that are being processed. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and supports all
+  attributes of <code>&lt;fileset&gt;</code> (<code>dir</code> becomes <code>basedir</code>)
+  as well as the nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code>
+  and <code>&lt;patternset&gt;</code> elements.</p>
+
+<p><b>Note</b>: Unlike other similar tasks, this task treats
+directories that have been matched by the include/exclude patterns of
+the implicit fileset in a special way.  It will apply the stylesheets
+to all files contain in them as well.  Since the default include
+pattern is <code>**</code> this means it will apply the stylesheet to
+all files.  If you specify an excludes pattern, it may still work on
+the files matched by those patterns because the parent directory has
+been matched.  If this behavior is not what you want, set the
+scanincludedirectories attribute to false.</p>
+
+<p>Starting with Ant 1.7 this task supports nested <a
+href="../CoreTypes/resources.html#collection">resource collection</a>s
+in addition to (or instead of, depending on the useImplicitFileset
+attribute) the implicit fileset formed by this task.</p>
+
+<p>This task supports the use of a nested <code>&lt;param&gt;</code> element which is used to pass values
+  to an <code>&lt;xsl:param&gt;</code> declaration.</p>
+<p>This task supports the use of a nested <a href="../CoreTypes/xmlcatalog.html">xmlcatalog</a>
+element which is used to perform Entity and URI resolution.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">where to find the source XML file, default is the
+      project's basedir.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">directory in which to store the results.</td>
+    <td align="center" valign="top">Yes, unless in and out have been
+      specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">extension</td>
+    <td valign="top">desired file extension to be used for the targets. If not
+      specified, the default is &quot;.html&quot;.  Will be ignored if
+      a nested <code>&lt;mapper&gt;</code> has been specified.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">style</td>
+    <td valign="top">name of the stylesheet to use - given either relative
+      to the project's basedir or as an absolute path.<br/>
+      <br/>
+      Alternatively, a nested element which ant can interpret as a resource
+      can be used to indicate where to find the stylesheet<br/>
+      <em>deprecated variation :</em> <br/>
+      If the stylesheet cannot be found, and if you have specified the
+      attribute basedir for the task, ant will assume that the style
+      attribute is relative to the basedir of the task.
+    </td>
+    <td align="center" valign="top">No, if the location of
+        the stylesheet is specified using a nested &lt;style&gt; element</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up the XSLT
+      processor.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use, given as <a
+      href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">Recreate target files, even if they are newer
+      than their corresponding source files or the stylesheet.</td>
+    <td valign="top" align="center">No; default is false</td>
+  </tr>
+  <tr>
+    <td valign="top">processor</td>
+
+    <td valign="top">name of the XSLT processor to use.
+      Permissible value is :<ul>
+      <li>&quot;trax&quot; for a TraX compliant processor (ie JAXP interface
+      implementation such as Xalan 2 or Saxon)</li></ul>
+      Defaults to trax.
+      <br/>
+      Support for xalan1 has been removed in ant 1.7.
+      </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be included.
+      All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is taken to be
+      an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be excluded.
+      No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is taken to be
+      an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">in</td>
+    <td valign="top">specifies a single XML document to be styled. Should be used
+      with the out attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">out</td>
+    <td valign="top">specifies the output name for the styled result from the
+      in attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">scanincludeddirectories</td>
+    <td valign="top">If any directories are matched by the
+      includes/excludes patterns, try to transform all files in these
+      directories.  Default is <code>true</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">reloadstylesheet</td>
+    <td valign="top">Control whether the stylesheet transformer is created
+    anew for every transform opertaion. If you set this to true, performance may
+    suffer, but you may work around a bug in certain Xalan-J versions.
+    Default is <code>false</code>.  <em>Since Ant 1.5.2</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">useImplicitFileset</td>
+    <td valign="top">Whether the implicit fileset formed by this task
+    shall be used.  If you set this to false you must use nested
+    resource collections - or the in attribute, in which case this
+    attribute has no impact anyway.  Default is <code>true</code>.
+    <em>Since Ant 1.7</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filenameparameter</td>
+    <td valign="top">Specifies a xsl parameter for accessing the name
+    of the current processed file. If not set, the file name is not
+    passed to the transformation.
+    <em>Since Ant 1.7</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filedirparameter</td>
+    <td valign="top">Specifies a xsl parameter for accessing the directory
+    of the current processed file. For files in the current directory a
+    value of '.' will be passed to the transformation.
+    If not set, the directory is not passed to the transformation. 
+    <em>Since Ant 1.7</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any <a href="../CoreTypes/resources.html#collection">resource
+collection</a></h4>
+
+<p><em>since Ant 1.7</em></p>
+
+<p>Use resource collections to specify resources that the stylesheet
+should be applied to.  Use a nested mapper and the task's destdir
+attribute to specify the output files.</p>
+
+<h4>classpath</h4>
+<p>The classpath to load the processor from can be specified via a
+nested <code>&lt;classpath&gt;</code>, as well - that is, a
+<a href="../using.html#path">path</a>-like structure.</p>
+
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html">xmlcatalog</a>
+element is used to perform Entity and URI resolution.</p>
+
+<h4>param</h4>
+<p>Param is used to pass a parameter to the XSL stylesheet.</p>
+<blockquote>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the XSL parameter</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">expression</td>
+    <td valign="top">Text value to be placed into the param.<br>
+    Was originally intended to be an XSL expression.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">The param will only passed if this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">The param will only passed unless this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+</blockquote>
+
+<h4>outputproperty ('trax' processors only)</h4>
+<p>Used to specify how you wish the result tree to be output
+as specified in the <a href="http://www.w3.org/TR/xslt#output">
+XSLT specifications</a>.
+<blockquote>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the property</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value of the property.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</blockquote>
+
+<h4>factory ('trax' processors only)</h4>
+Used to specify factory settings.
+<blockquote>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">fully qualified classname of the
+    transformer factory to use. For example
+      <tt>org.apache.xalan.processor.TransformerFactoryImpl</tt>
+       or <tt>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</tt>
+       or <tt>net.sf.saxon.TransformerFactoryImpl</tt>...
+    </td>
+    <td align="center" valign="top">No. Defaults to the JAXP lookup mechanism.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>attribute </h4>
+<p>Used to specify settings of the processor factory.
+The attribute names and values are entirely processor specific
+so you must be aware of the implementation to figure them out.
+Read the documentation of your processor.
+For example, in Xalan 2.x:
+<ul>
+<li>http://xml.apache.org/xalan/features/optimize (boolean)</li>
+<li>http://xml.apache.org/xalan/features/incremental (boolean)</li>
+<li>...</li>
+</ul>
+And in Saxon 7.x:
+<ul>
+<li>http://saxon.sf.net/feature/allow-external-functions (boolean)</li>
+<li>http://saxon.sf.net/feature/timing (boolean)</li>
+<li>http://saxon.sf.net/feature/traceListener (string)</li>
+<li>http://saxon.sf.net/feature/treeModel (integer)</li>
+<li>http://saxon.sf.net/feature/linenumbering (integer)</li>
+<li>...</li>
+</ul>
+<blockquote>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the attribute</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value of the attribute.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</blockquote>
+</blockquote>
+<h4>mapper</h4>
+
+<p><em>since Ant 1.6.2</em></p>
+
+<p>You can define filename transformations by using a nested <a
+href="../CoreTypes/mapper.html">mapper</a> element. The default mapper
+used by <code>&lt;xslt&gt;</code> removes the file extension from the
+source file and adds the extension specified via the extension
+attribute.</p>
+
+<h4>style</h4>
+
+<p><em>Since Ant 1.7</em></p>
+
+<p>The nested style element can be used to specify your stylesheet in terms
+of Ant's <a href="../CoreTypes/resources.html">resource</a> types.  With
+this element, the stylesheet should be specified as a nested resource or
+single-element collection.  Alternatively, use the <code>refid</code> to
+specify the resource or collection as a reference.</p>
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>
+&lt;style basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+       extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;/&gt;</pre>
+  <h4>Using an xmlcatalog</h4>
+  <pre>
+&lt;xslt basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+      extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;&gt;
+  &lt;xmlcatalog refid=&quot;mycatalog&quot;/&gt;
+&lt;/xslt&gt;
+
+&lt;xslt basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+   extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;&gt;
+   &lt;xmlcatalog&gt;
+       &lt;dtd
+         publicId=&quot;-//ArielPartners//DTD XML Article V1.0//EN&quot;
+         location=&quot;com/arielpartners/knowledgebase/dtd/article.dtd&quot;/&gt;
+   &lt;/xmlcatalog&gt;
+&lt;/xslt&gt;
+</pre>
+  <h4>Using XSL parameters</h4>
+<pre>
+&lt;xslt basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+      extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;&gt;
+  &lt;param name=&quot;date&quot; expression=&quot;07-01-2000&quot;/&gt;
+&lt;/xslt&gt;</pre>
+
+  <p>Then if you declare a global parameter &quot;date&quot; with the top-level
+  element &lt;xsl:param name=&quot;date&quot;/&gt;, the variable
+  <code>$date</code> will subsequently have the value 07-01-2000.
+  </p>
+
+  <h4>Using output properties</h4>
+<pre>
+&lt;xslt in=&quot;doc.xml&quot; out=&quot;build/doc/output.xml&quot;
+      style=&quot;style/apache.xsl&quot;&gt;
+  &lt;outputproperty name=&quot;method&quot; value=&quot;xml&quot;/&gt;
+  &lt;outputproperty name=&quot;standalone&quot; value=&quot;yes&quot;/&gt;
+  &lt;outputproperty name=&quot;encoding&quot; value=&quot;iso8859_1&quot;/&gt;
+  &lt;outputproperty name=&quot;indent&quot; value=&quot;yes&quot;/&gt;
+&lt;/xslt&gt;
+</pre>
+
+  <h4>Using factory settings</h4>
+<pre>
+&lt;xslt in=&quot;doc.xml&quot; out=&quot;build/doc/output.xml&quot;
+      style=&quot;style/apache.xsl&quot;&gt;
+  &lt;factory name=&quot;org.apache.xalan.processor.TransformerFactoryImpl&quot;&gt;
+    &lt;attribute name=&quot;http://xml.apache.org/xalan/features/optimize&quot; value=&quot;true&quot;/&gt;
+  &lt;/factory&gt;
+&lt;/xslt&gt;</pre>
+
+  <h4>Using a mapper</h4>
+<pre>
+&lt;xslt basedir=&quot;in&quot; destdir=&quot;out&quot;
+      style=&quot;style/apache.xsl&quot;&gt;
+  &lt;mapper type=&quot;glob&quot; from=&quot;*.xml.en&quot; to=&quot;*.html.en&quot;/&gt;
+&lt;/xslt&gt;</pre>
+
+  <h4>Using a nested resource to define the stylesheet</h4>
+    <pre>
+&lt;xslt in="data.xml" out="${out.dir}/out.xml"&gt;
+    &lt;style&gt;
+        &lt;url url="${printParams.xsl.url}"/&gt;
+    &lt;/style&gt;
+    &lt;param name="set" expression="value"/&gt;
+&lt;/xslt&gt;</pre>
+
+  <h4>Print the current processed file name</h4>
+<pre>
+&lt;project&gt;
+  &lt;xslt style=&quot;printFilename.xsl&quot; destdir=&quot;out&quot; basedir=&quot;in&quot; extension=&quot;.txt&quot;
+        filenameparameter=&quot;filename&quot;
+        filedirparameter=&quot;filedir&quot;
+  /&gt;
+&lt;/project&gt;
+
+&lt;xsl:stylesheet
+  version=&quot;1.0&quot;
+  xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
+
+    &lt;xsl:param name=&quot;filename&quot;&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name=&quot;filedir&quot;&gt;.&lt;/xsl:param&gt;
+
+&lt;xsl:template match=&quot;/&quot;&gt;
+  Current file is &lt;xsl:value-of select=&quot;$filename&quot;/&gt; in directory &lt;xsl:value-of select=&quot;$filedir&quot;/&gt;.
+&lt;/xsl:template&gt;
+
+&lt;/xsl:stylesheet&gt;
+</pre>
+
+</blockquote>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/subant.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/subant.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/subant.html	(revision 14989)
@@ -0,0 +1,419 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+  <title>Subant Task</title>
+</head>
+
+<body>
+
+<h2><a name="subant">Subant Task</a></h2>
+Calls a given target for all defined sub-builds.
+
+          <h3>Description</h3>
+<p>
+            Calls a given target for all defined sub-builds.
+            This is an extension
+            of ant for bulk project execution.
+
+            <strong>This task must not be used outside of a
+                <code>target</code> if it invokes the same build file it is
+                part of.</strong>
+        </p>
+        <p><em>Since Ant 1.6</em></p>
+                              <a name="Use with directories">
+          <strong>Use with directories</strong></a>
+        <p>
+                subant can be used with directory sets to execute a build from different directories.
+                2 different options are offered :
+            </p>
+<ul>
+                <li>
+                    to run the same build file <code>/somepath/otherpath/mybuild.xml</code>
+                    with different base directories, use the genericantfile attribute
+                </li>
+                <li>if you want to run <code>directory1/mybuild.xml</code>, <code>directory2/mybuild.xml</code>, <code>....</code>,
+                    use the antfile attribute. The subant task does not set the base directory for you in this case, because you can specify it in each build file.
+                </li>
+            </ul>
+
+
+ <!-- Ignore -->
+
+
+
+          
+          <h3><a name="attributes">Parameters</a></h3>
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->
+
+    <!-- Attribute Group -->
+        <!-- Attribute -->
+    <tr>
+        <td>
+          antfile
+        </td>
+        <td>
+          Build file name, to use in conjunction with directories.<br> Defaults to "build.xml".<br> If <code>genericantfile</code> is set, this attribute is ignored.
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Optional
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          buildpath
+        </td>
+        <td>
+          Set the buildpath to be used to find sub-projects.
+        </td>
+        <td>
+          Path
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          buildpathref
+        </td>
+        <td>
+          Buildpath to use, by reference.
+        </td>
+        <td>
+          Reference
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          failonerror
+        </td>
+        <td>
+          Sets whether to fail with a build exception on error, or go on.
+        </td>
+        <td>
+          boolean
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          genericantfile
+        </td>
+        <td>
+          Build file path, to use in conjunction with directories.<br> Use <code>genericantfile</code>, in order to run the same build file with different basedirs.<br> If this attribute is set, <code>antfile</code> is ignored.
+        </td>
+        <td>
+          File
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          inheritall
+        </td>
+        <td>
+          Corresponds to
+                        <code>&lt;ant&gt;</code>'s
+                        <code>inheritall</code> attribute but defaults
+                        to false in this task..
+        </td>
+        <td>
+          boolean
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          inheritrefs
+        </td>
+        <td>
+          Corresponds to <code>&lt;ant&gt;</code>'s <code>inheritrefs</code> attribute.
+        </td>
+        <td>
+          boolean
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          output
+        </td>
+        <td>
+          Corresponds to <code>&lt;ant&gt;</code>'s <code>output</code> attribute.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          target
+        </td>
+        <td>
+          
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+
+    <!-- Attribute -->
+    <tr>
+        <td>
+          verbose
+        </td>
+        <td>
+          
+            Enable/ disable log messages showing when each sub-build path is entered/ exited.
+            The default value is false.
+        </td>
+        <td>
+          boolean
+        </td>
+    </tr>
+
+
+     </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+          
+          <h3><a name="elements">Parameters as nested elements</a></h3>
+
+    <!-- Start Element -->
+          <h4>any filesystem based <a href="../CoreTypes/resources.html#collection">resource collection</a></h4>
+        <p>This includes <code>&lt;fileset&gt;</code>,
+        <code>&lt;dirset&gt;</code> and <code>&lt;filelist&gt;</code>
+        which are the nested resource collections supported prior
+        to Ant 1.7.</p>
+
+          <h4>dirset</h4> (org.apache.tools.ant.types.DirSet)
+        
+        <p>Adds a directory set to the implicit build path. <p> <em>Note that the directories will be added to the build path in no particular order, so if order is significant, one should use a file list instead!</em></p>
+          
+          <h4>filelist</h4> (org.apache.tools.ant.types.FileList)
+      <p>
+        Adds an ordered file list to the implicit build path. <p> <em>Note that contrary to file and directory sets, file lists can reference non-existent files or directories!</em></p>
+
+
+          <h4>fileset</h4> (org.apache.tools.ant.types.FileSet)
+      <p>
+        Adds a file set to the implicit build path. <p> <em>Note that the directories will be added to the build path in no particular order, so if order is significant, one should use a file list instead!</em>
+</p>
+
+
+          <h4>property</h4> (org.apache.tools.ant.taskdefs.Property)
+      <p>
+        Corresponds to <code>&lt;ant&gt;</code>'s nested <code>&lt;property&gt;</code> element.
+</p>
+
+
+          <h4>propertyset</h4> (org.apache.tools.ant.types.PropertySet)
+      <p>
+        Corresponds to <code>&lt;ant&gt;</code>'s nested <code>&lt;propertyset&gt;</code> element.
+</p>
+
+
+          <h4>buildpath</h4> (org.apache.tools.ant.types.Path)
+      <p>
+        Creates a nested build path, and add it to the implicit build path.
+</p>
+
+
+          <h4>buildpathelement</h4> (org.apache.tools.ant.types.Path.PathElement)
+      <p>
+        Creates a nested <code>&lt;buildpathelement&gt;</code>, and add it to the implicit build path.
+</p>
+
+
+          <h4>target</h4> (org.apache.tools.ant.taskdefs.Ant.TargetElement)
+      <p>
+        You can specify multiple targets using nested <code>&lt;target&gt;</code> elements
+        instead of using the target attribute.  These will be executed as if
+        Ant had been invoked with a single target whose dependencies are the
+        targets so specified, in the order specified.
+ <!-- Ignore -->
+ <!-- Ignore -->
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+        <tr>
+          <td valign="top">name</td>
+          <td valign="top">The name of the called target.</td>
+          <td valign="top" align="center">Yes</td>
+        </tr>
+      </table>
+      <p><em>since Ant 1.7</em>.</p>
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+<!-- manually written end -->
+
+<h3><a name="examples">Examples</a></h3>
+      <p>
+        <pre>
+        &lt;project name="subant" default="subant1"&gt;
+            &lt;property name="build.dir" value="subant.build"/&gt;
+            &lt;target name="subant1"&gt;
+                &lt;subant target=""&gt;
+                    &lt;property name="build.dir" value="subant1.build"/&gt;
+                    &lt;property name="not.overloaded" value="not.overloaded"/&gt;
+                    &lt;fileset dir="." includes="*/build.xml"/&gt;
+                &lt;/subant&gt;
+            &lt;/target&gt;
+        &lt;/project&gt;
+        </pre>
+<p>
+            this snippet build file will run ant in each subdirectory of the project directory,
+            where a file called build.xml can be found.
+            The property build.dir will have the value subant1.build in the ant projects called by subant.
+        </p>
+<pre>
+          &lt;subant target=""&gt;
+              &lt;propertyset&gt;
+                  &lt;propertyref prefix="toplevel"/&gt;
+                  &lt;mapper type="glob" from="foo*" to="bar*"/&gt;
+              &lt;/propertyset&gt;
+              &lt;fileset dir="." includes="*/build.xml"/&gt;
+          &lt;/subant&gt;
+        </pre>
+<p>
+            this snippet build file will run ant in each subdirectory of the project directory,
+            where a file called build.xml can be found.
+            All properties whose name starts with "foo" are passed, their names are changed to start with "bar" instead
+        </p>
+<pre>
+          &lt;subant target="compile" genericantfile="/opt/project/build1.xml"&gt;
+              &lt;dirset dir="." includes="projects*"/&gt;
+          &lt;/subant&gt;
+        </pre>
+<p>
+            assuming the subdirs of the project dir are called projects1, projects2, projects3
+            this snippet will execute the compile target of /opt/project/build1.xml,
+            setting the basedir to projects1, projects2, projects3
+        </p>
+
+        <!-- manually written -->
+        <p>Now a little more complex - but useful - scenario. Assume that we have
+        a directory structure like this:</p>
+        <pre>
+        root
+          |  common.xml
+          |  build.xml
+          |
+          +-- modules
+                +-- modA
+                |     +-- src
+                +-- modB
+                      +-- src
+
+        <u><b>common.xml:</b></u><br>
+        &lt;project&gt;
+            &lt;property name="src.dir"      value="src"/&gt;
+            &lt;property name="build.dir"    value="build"/&gt;
+            &lt;property name="classes.dir"  value="${build.dir}/classes"/&gt;
+
+            &lt;target name="compile"&gt;
+                &lt;mkdir dir="${classes.dir}"/&gt;
+                &lt;javac srcdir="${src.dir}" destdir="${classes.dir}"/&gt;
+            &lt;/target&gt;
+
+            &lt;!-- more targets --&gt;
+        &lt;/project&gt;
+
+        <u><b>build.xml:</b></u><br>
+        &lt;project&gt;
+
+            &lt;macrodef name="iterate"&gt;
+                &lt;attribute name="target"/&gt;
+                &lt;sequential&gt;
+                    &lt;subant target="@{target}"&gt;
+                        &lt;fileset dir="modules" includes="*/build.xml"/&gt;
+                    &lt;/subant&gt;
+                &lt;/sequential&gt;
+            &lt;/macrodef&gt;
+
+
+            &lt;target name="compile"&gt;
+                &lt;iterate target="compile"/&gt;
+            &lt;/target&gt;
+
+            &lt;!-- more targets --&gt;
+        &lt;/project&gt;
+
+        <u><b>modules/modA/build.xml:</b></u><br>
+        &lt;project name="modA"&gt;
+            &lt;import file="../../common.xml"/&gt;
+        &lt;/project&gt;
+        </pre>
+
+        <p>This results in very small buildfiles in the modules, maintainable
+        buildfile (common.xml) and a clear project structure. Additionally
+        the root buildfile is capable to run the whole build over all
+        modules.
+        </p>
+
+        <pre>
+        &lt;subant failonerror="false"&gt;
+            &lt;fileset dir="." includes="**/build.xml" excludes="build.xml"/&gt;
+            &lt;target name="clean"/&gt;
+            &lt;target name="build"/&gt;
+        &lt;/subant&gt;
+        </pre>
+
+        <p>Does a &quot;clean build&quot; for each subproject.</p>
+        <p><b>Hint:</b> because buildfiles are plain xml, you could generate the
+        masterbuildfile from the common buildfile by using a XSLT transformation:
+        </p>
+
+        <pre>
+        &lt;xslt in=&quot;common.xml&quot;
+              out=&quot;master.xml&quot;
+              style=&quot;${ant.home}/etc/common2master.xsl&quot;
+        /&gt;
+        </pre>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sync.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sync.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/sync.html	(revision 14989)
@@ -0,0 +1,137 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Sync Task</title>
+</head>
+
+<body>
+
+<h2><a name="get">Sync</a></h2>
+<p><em>Since Ant 1.6</em></p>
+<h3>Description</h3>
+
+<p>Synchronize a target directory from the files defined in one or
+more <a href="../CoreTypes/resources.html#collection">Resource Collection</a>s.</p>
+
+<p>Any file in the target directory that has not been matched by at
+least one of the nested resource collections gets removed.  I.e. if you exclude a
+file in your sources and a file of that name is present in the target
+dir, it will get removed from the target.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">the target directory to sync with the resource collections</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>  
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+     <td valign="top">Copy any empty directories included in the resource collection(s).
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">If is set to false, log a warning message, but do not stop the build,
+       when one of the nested filesets points to a directory that
+       doesn't exist.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+     <td valign="top">Log the files that are being copied.</td>
+     <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">granularity</td>
+    <td valign="top">The number of milliseconds leeway to give before
+    deciding a file is out of date. This is needed because not every
+    file system supports tracking the last modified time to the
+    millisecond level. Default is 0 milliseconds, or 2 seconds on DOS
+    systems.  This can also be useful if source and target files live
+    on separate machines with clocks being out of sync.  <em>since Ant
+    1.6.2</em>.</td>
+     <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset or any other resource collection</h4>
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select groups of files to copy.  To use a
+resource collection, the <code>todir</code> attribute must be set.</p>
+<p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
+supported as a nested element.</p>
+
+<h4>preserveInTarget</h4>
+
+<p>Specifies files or directories that should be kept in the target
+directory even if they are not present in one of the source
+directories.</p>
+
+<p>This nested element is like a <a
+href="../CoreTypes/fileset.html">FileSet</a> except that it doesn't
+support the dir attribute and the usedefaultexcludes attribute
+defaults to false.</p>
+
+<h3>Examples</h3>
+
+<blockquote><pre>
+&lt;sync todir=&quot;site&quot;&gt;
+  &lt;fileset dir=&quot;generated-site&quot;/&gt;
+&lt;/sync&gt;
+</pre></blockquote>
+<p>overwrites all files in <em>site</em> with newer files from
+<em>generated-site</em>, deletes files from <em>site</em> that are not
+present in <em>generated-site</em>.</p>
+
+<blockquote><pre>
+&lt;sync todir=&quot;site&quot;&gt;
+  &lt;fileset dir=&quot;generated-site&quot;/&gt;
+  &lt;preserveintarget&gt;
+    &lt;include name=&quot;**/CVS/**&quot;/&gt;
+  &lt;/preserveintarget&gt;
+&lt;/sync&gt;
+</pre></blockquote>
+<p>overwrites all files in <em>site</em> with newer files from
+<em>generated-site</em>, deletes files from <em>site</em> that are not
+present in <em>generated-site</em> but keeps all files in any
+<em>CVS</em> sub-directory.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/tar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/tar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/tar.html	(revision 14989)
@@ -0,0 +1,251 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Tar Task</title>
+</head>
+
+<body>
+
+<h2><a name="tar">Tar</a></h2>
+<h3>Description</h3>
+<p>Creates a tar archive.</p>
+<p>The <i>basedir</i> attribute is the reference directory from where to tar.</p>
+<p>This task is a <a href="../dirtasks.html#directorybasedtasks">directory based task</a>
+and, as such, forms an implicit <a href="../CoreTypes/fileset.html">Fileset</a>. This
+defines which files, relative to the <i>basedir</i>, will be included in the
+archive. The tar task supports all the attributes of Fileset to refine the
+set of files to be included in the implicit fileset.</p>
+
+<p>In addition to the implicit fileset, the tar task supports nested
+      resource collections and a special form of filesets. These
+filesets are extended to allow control over the access mode, username and groupname
+to be applied to the tar entries. This is useful, for example, when preparing archives for
+Unix systems where some files need to have execute permission.</p>
+
+<p>Early versions of tar did not support path lengths greater than 100
+characters. Modern versions of tar do so, but in incompatible ways.
+The behaviour of the tar task when it encounters such paths is
+controlled by the <i>longfile</i> attribute.
+If the longfile attribute is set to <code>fail</code>, any long paths will
+cause the tar task to fail.  If the longfile attribute is set to
+<code>truncate</code>, any long paths will be truncated to the 100 character
+maximum length prior to adding to the archive. If the value of the longfile
+attribute is set to <code>omit</code> then files containing long paths will be
+omitted from the archive.  Either option ensures that the archive can be
+untarred by any compliant version of tar. If the loss of path or file
+information is not acceptable, and it rarely is, longfile may be set to the
+value <code>gnu</code>. The tar task will then produce a GNU tar file which
+can have arbitrary length paths. Note however, that the resulting archive will
+only be able to be untarred with GNU tar.  The default for the longfile
+attribute is <code>warn</code> which behaves just like the gnu option except
+that it produces a warning for each file path encountered that does not match
+the limit.</p>
+
+<p>This task can perform compression by setting the compression attribute to "gzip"
+or "bzip2".</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the tar-file to create.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to tar the files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">longfile</td>
+    <td valign="top">Determines how long files (&gt;100 chars) are to be
+       handled.  Allowable values are &quot;truncate&quot;, &quot;fail&quot;,
+       &quot;warn&quot;, &quot;omit&quot; and &quot;gnu&quot;.  Default is
+       &quot;warn&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top">compression method.  Allowable values are 
+       &quot;none&quot;, &quot;gzip&quot; and &quot;bzip2&quot;.  Default is
+       &quot;none&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+The tar task supports nested <a
+href="../CoreTypes/tarfileset.html">tarfileset</a> elements. These are
+extended <a href="../CoreTypes/fileset.html">FileSets</a> which,
+in addition to the standard elements, support one additional
+attributes
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">preserveLeadingSlashes</td>
+    <td valign="top">Indicates whether leading `/'s should
+    be preserved in the file names. Default is <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4>any other resource collection</h4>
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select groups of files to archive.</p>
+<p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
+supported as a nested element.</p>
+
+<h3>Examples</h3>
+<pre>
+&lt;tar tarfile=&quot;${dist}/manual.tar&quot; basedir=&quot;htdocs/manual&quot;/&gt;
+&lt;gzip zipfile=&quot;${dist}/manual.tar.gz&quot; src=&quot;${dist}/manual.tar&quot;/&gt;</pre>
+<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
+in the <code>${dist}</code>  directory, then applies the gzip task to compress
+it.</p>
+<pre>
+&lt;tar destfile=&quot;${dist}/manual.tar&quot;
+      basedir=&quot;htdocs/manual&quot;
+      excludes=&quot;mydocs/**, **/todo.html&quot;
+/&gt;</pre>
+<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
+in the <code>${dist}</code> directory. Files in the directory <code>mydocs</code>,
+or files with the name <code>todo.html</code> are excluded.</p>
+
+<pre>
+&lt;tar destfile=&quot;${basedir}/docs.tar&quot;&gt;
+  &lt;tarfileset dir=&quot;${dir.src}/docs&quot;
+              fullpath=&quot;/usr/doc/ant/README&quot;
+              preserveLeadingSlashes=&quot;true&quot;&gt;
+    &lt;include name=&quot;readme.txt&quot;/&gt;
+  &lt;/tarfileset&gt;
+  &lt;tarfileset dir=&quot;${dir.src}/docs&quot;
+              prefix=&quot;/usr/doc/ant&quot;
+              preserveLeadingSlashes=&quot;true&quot;&gt;
+    &lt;include name=&quot;*.html&quot;/&gt;
+  &lt;/tarfileset&gt;
+&lt;/tar&gt;</pre>
+
+<p>
+  Writes the file <code>docs/readme.txt</code> as
+  <code>/usr/doc/ant/README</code> into the archive. All
+  <code>*.html</code> files in the <code>docs</code> directory are
+  prefixed by <code>/usr/doc/ant</code>, so for example
+  <code>docs/index.html</code> is written as
+  <code>/usr/doc/ant/index.html</code> to the archive.
+</p>
+
+
+<pre>
+&lt;tar longfile=&quot;gnu&quot;
+     destfile=&quot;${dist.base}/${dist.name}-src.tar&quot; &gt;
+  &lt;tarfileset dir=&quot;${dist.name}/..&quot; mode=&quot;755&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt;
+    &lt;include name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
+    &lt;include name=&quot;${dist.name}/build.sh&quot;/&gt;
+  &lt;/tarfileset&gt;
+  &lt;tarfileset dir=&quot;${dist.name}/..&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt;
+    &lt;include name=&quot;${dist.name}/**&quot;/&gt;
+    &lt;exclude name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
+    &lt;exclude name=&quot;${dist.name}/build.sh&quot;/&gt;
+  &lt;/tarfileset&gt;
+&lt;/tar&gt;
+</pre>
+
+<p>This example shows building a tar which uses the GNU extensions for long paths and
+where some files need to be marked as executable (mode 755)
+and the rest are use the default mode (read-write by owner). The first
+fileset selects just the executable files. The second fileset must exclude
+the executable files and include all others. </p>
+
+
+
+<p><strong>Note: </strong> The tar task does not ensure that a file is only selected
+by one resource collection. If the same file is selected by more than one collection, it will be included in the
+tar file twice, with the same path.</p>
+
+<p><strong>Note:</strong> The patterns in the include and exclude
+elements are considered to be relative to the corresponding dir
+attribute as with all other filesets.  In the example above,
+<code>${dist.name}</code> is not an absolute path, but a simple name
+of a directory, so <code>${dist.name}</code> is a valid path relative
+to <code>${dist.name}/..</code>.</p>
+
+<pre>
+&lt;tar dest="release.tar.gz" compress="gzip"&gt;
+  &lt;zipfileset src="release.zip"/&gt;
+&lt;/tar&gt;
+</pre>
+
+<p>Re-packages a ZIP archive as a GZip compressed tar archive.  If
+Unix file permissions have been stored as part of the ZIP file, they
+will be retained in the resulting tar archive.</p>
+
+  <p><strong>Note:</strong>
+    Please note the tar task creates a tar file, it does not append 
+    to an existing tar file. The existing tar file is replaced instead.
+    As with most tasks in Ant, the task only takes action if the output
+    file (the tar file in this case) is older than the input files, or
+    if the output file does not exist.
+  </p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/taskdef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/taskdef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/taskdef.html	(revision 14989)
@@ -0,0 +1,43 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>TaskDef Task</title>
+</head>
+
+<body>
+
+<h2><a name="taskdef">Taskdef</a></h2>
+<h3>Description</h3>
+  <p>Adds a task definition to the current project, such that this new task can be
+    used in the current project.</p>
+  <p>This task is a form of <a href="typedef.html">Typedef</a> with the
+    attributes "adapter" and "adaptto" set to the values 
+    "org.apache.tools.ant.TaskAdapter" and "org.apache.tools.ant.Task"
+    respectively.
+<h3>Examples</h3>
+<pre>  &lt;taskdef name=&quot;myjavadoc&quot; classname=&quot;com.mydomain.JavadocTask&quot;/&gt;</pre>
+<p>makes a task called <code>myjavadoc</code> available to Ant. The class <code>com.mydomain.JavadocTask</code>
+implements the task.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/tempfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/tempfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/tempfile.html	(revision 14989)
@@ -0,0 +1,164 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Tempfile
+ Task</title>
+ <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+</head>
+
+<body>
+
+
+            <h2><a name="tempfile">Tempfile Task</a></h2>
+            <br>This task sets a property to the name of a temporary file.
+  
+          
+          <h3><a name="description">Description</a></h3>
+
+<p>
+          This task sets a property to the name of a temporary file.
+          Unlike <code>java.io.File.createTempFile</code>,
+          this task does not actually create the temporary file, but it does guarantee that the
+          file did not exist when the task was executed.
+
+          <p>Examples:
+
+          <pre>&lt;tempfile property="temp.file"/&gt;</pre>
+
+          create a temporary file
+
+          <pre>&lt;tempfile property="temp.file" suffix=".xml"/&gt;</pre>
+
+          create a temporary file with the <code>.xml</code> suffix
+
+          <pre>&lt;tempfile property="temp.file" destDir="build"/&gt;</pre>
+
+          create a temporary file in the <code>build</code> subdirectory
+
+      </blockquote>
+</p>
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+
+
+        
+          
+          <h3><a name="attributes">Parameters</a></h3>
+
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          property
+        </td>
+        <td>
+          Sets the property you wish to assign the temporary file to.
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Required
+        </td>
+    </tr>
+
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          destdir
+        </td>
+        <td>
+          Sets the destination directory. If not set, the basedir directory is used instead.
+        </td>
+        <td>
+          File
+        </td>
+        <td>
+          Optional
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          prefix
+        </td>
+        <td>
+          Sets the optional prefix string for the temp file.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          suffix
+        </td>
+        <td>
+          Sets the optional suffix string for the temp file.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          deleteonexit
+        </td>
+        <td>
+          Whether the temp file will be marked for deletion on normal exit of the Java Virtual Machine (even though the file may never be created); default <em>false</em>. <strong>Since Ant 1.7</strong>
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+          
+          <h3><a name="elements">Parameters as nested elements</a></h3>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/touch.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/touch.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/touch.html	(revision 14989)
@@ -0,0 +1,132 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Touch Task</title>
+</head>
+
+<body>
+
+<h2><a name="touch">Touch</a></h2>
+<h3>Description</h3>
+
+<p>Changes the modification time of a resource and possibly creates it
+at the same time. In addition to working with a single file, this Task
+can also work on <a href="../CoreTypes/resource.html">resource</a> and
+resource collections (which also includes directories).  Prior to Ant
+1.7 only FileSet or <a href="../CoreTypes/filelist.html">Filelist</a>
+(since Ant 1.6) have been supported.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The name of the file.</td>
+    <td valign="top" align="center">Unless a nested resource collection element
+       has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">millis</td>
+    <td valign="top">Specifies the new modification time of the file
+       in milliseconds since midnight Jan 1 1970.</td>
+    <td valign="center" align="center" rowspan="2">No--datetime takes
+       precedence, however if both are omitted the current time is assumed.</td>
+  </tr>
+  <tr>
+    <td valign="top">datetime</td>
+    <td valign="top">Specifies the new modification time of the file.</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">SimpleDateFormat-compatible pattern string.
+       Defaults to MM/DD/YYYY HH:MM AM_or_PM or MM/DD/YYYY HH:MM:SS AM_or_PM.
+       <b>Since Ant 1.6.3</b></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mkdirs</td>
+    <td valign="top">Whether to create nonexistent parent
+       directories when touching new files. <b>Since Ant 1.6.3</b></td>
+    <td valign="top" align="center">No, default <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to log the creation of new files.
+       <b>Since Ant 1.6.3</b></td>
+    <td valign="top" align="center">No, default <i>true</i>.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>any resource collection</h4>
+
+<p>You can use any number of nested resource collection elements to
+define the resource for this task and refer to resources defined
+elsewhere.  <b>Note:</b> resource passed to this task must implement
+the <code>org.apache.tools.ant.types.resources.Touchable</code>
+interface, this is true for all filesystem-based resources like those
+returned by path, fileset ot filelist.</p>
+
+<p>For backwards compatibility directories matched by nested filesets
+will be "touched" as well, use a &lt;type&gt; selector to suppress
+this.  This only applies to filesets nested into the task directly,
+not to filesets nested into a path or any other resource
+collection.</p>
+
+<h4>mapper</h4>
+<p><em>Since Ant 1.6.3,</em> a nested <a href="../CoreTypes/mapper.html">
+    mapper</a> can be specified.  Files specified via nested
+    <code>fileset</code>s, <code>filelist</code>s, or the <code>file</code>
+    attribute are mapped using the specified mapper.  For each file mapped,
+    the resulting files are touched.  If the original file exists its
+    timestamp will be used.  Otherwise the task settings (<code>millis</code>,
+    <code>datetime</code>) take effect.</p>
+<h3>Examples</h3>
+<pre>  &lt;touch file=&quot;myfile&quot;/&gt;</pre>
+<p>creates <code>myfile</code> if it doesn't exist and changes the
+modification time to the current time.</p>
+<pre>  &lt;touch file=&quot;myfile&quot; datetime=&quot;06/28/2000 2:02 pm&quot;/&gt;</pre>
+<p>creates <code>myfile</code> if it doesn't exist and changes the
+modification time to Jun, 28 2000 2:02 pm (14:02 for those used to 24
+hour times).</p>
+<pre>  &lt;touch datetime=&quot;09/10/1974 4:30 pm&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+  &lt;/touch&gt;</pre>
+<p>changes the modification time to Oct, 09 1974 4:30 pm of all files and directories 
+  found in <code>src_dir</code>. </p>
+<pre>  &lt;touch file=&quot;myfile&quot; datetime=&quot;06/28/2000 2:02:17 pm&quot;/&gt;</pre>
+<p>creates <code>myfile</code> if it doesn't exist and changes the
+modification time to Jun, 28 2000 2:02:17 pm (14:02:17 for those used to 24
+hour times), if the filesystem allows a precision of one second - a
+time close to it otherwise.</p>
+<pre>  &lt;touch file=&quot;foo&quot;&gt;
+    &lt;mapper type=&quot;glob&quot; from=&quot;foo&quot; to=&quot;bar&quot; /&gt;
+  &lt;/touch&gt;
+</pre>
+<p>creates <code>bar</code> if it doesn't exist and changes the
+modification time to that of <code>foo</code>.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/tstamp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/tstamp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/tstamp.html	(revision 14989)
@@ -0,0 +1,161 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>TStamp Task</title>
+</head>
+
+<body>
+
+<h2><a name="tstamp">Tstamp</a></h2>
+
+<h3>Description</h3>
+<p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and <code>TODAY</code>
+properties in the current project. By default,
+the <code>DSTAMP</code> property is in the
+format &quot;yyyyMMdd&quot;, <code>TSTAMP</code> is in the
+format &quot;hhmm&quot;, and <code>TODAY</code> is in the
+format &quot;MMMM dd yyyy&quot;. Use the nested <code>&lt;format&gt;</code> element
+to specify a different format.</p>
+
+<p>These properties can be used in the build-file, for instance, to create
+time-stamped filenames, or used to replace placeholder tags inside documents
+to indicate, for example, the release date. The best place for this task is
+probably in an initialization target.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">Prefix used for all properties set. The default is no prefix.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+The Tstamp task supports a <code>&lt;format&gt;</code> nested element that
+allows a property to be set to the current date and time in a given format.
+The date/time patterns are as defined in the Java
+<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html">SimpleDateFormat</a> class.
+The format element also allows offsets to be applied to the time to generate different time values.
+<br><br>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">
+        The property to receive the date/time string in the given pattern.
+    </td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">The date/time pattern to be used. The values are as defined by the Java SimpleDateFormat class.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">timezone</td>
+    <td valign="top">The timezone to use for displaying time. The values are as defined by the Java <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/TimeZone.html">TimeZone</a> class.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">offset</td>
+    <td valign="top">The numeric offset to the current time</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unit</td>
+    <td valign="top">The unit of the offset to be applied to the current time.
+                     Valid Values are
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day</li>
+                        <li>week</li>
+                        <li>month</li>
+                        <li>year</li>
+                     </ul>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">locale</td>
+    <td valign="top">The locale used to create date/time string. The general
+      form is &quot;language, country, variant&quot; but either variant or variant and
+      country may be omitted. For more information please refer to documentation
+      for the
+      <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Locale.html">Locale</a>
+      class.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;tstamp/&gt;
+</pre>
+
+<p>
+sets the standard <code>DSTAMP</code>, <code>TSTAMP</code>,
+and <code>TODAY</code> properties according to the default formats.</p>
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property=&quot;TODAY_UK&quot; pattern=&quot;d-MMMM-yyyy&quot; locale=&quot;en,UK&quot;/&gt;
+  &lt;/tstamp&gt;
+</pre>
+<p>
+sets the standard properties as well as the property
+<code>TODAY_UK</code> with the date/time pattern &quot;d-MMMM-yyyy&quot;
+using English locale (eg. 21-May-2001).</p>
+
+<pre>
+  &lt;tstamp&gt;
+      &lt;format property=&quot;touch.time&quot; pattern=&quot;MM/dd/yyyy hh:mm aa&quot;
+              offset=&quot;-5&quot; unit=&quot;hour&quot;/&gt;
+  &lt;/tstamp&gt;
+</pre>
+<p>
+Creates a timestamp, in the property touch.time, 5 hours before the current time. The format in this example
+is suitable for use with the <code>&lt;touch&gt;</code> task. The standard properties are set also.</p>
+
+<pre>
+  &lt;tstamp prefix="start"/&gt;
+</pre>
+<p>
+Sets three properties with the standard formats, prefixed with "start.":
+<code>start.DSTAMP</code>, <code>start.TSTAMP</code>, and <code>start.TODAY</code>.</p>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/typedef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/typedef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/typedef.html	(revision 14989)
@@ -0,0 +1,241 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Typedef Task</title>
+</head>
+
+<body>
+
+<h2><a name="typedef">Typedef</a></h2>
+<h3>Description</h3>
+  <p>
+    Adds a task or a data type definition to the current project
+    such that this new type or task can be used in the current project.
+  </p>
+  <p>
+    A Task is any class that extends org.apache.tools.ant.Task or
+    can be adapted as a Task using an adapter class.
+  </p>
+  <p>
+    Data types are things like <a href="../using.html#path">paths</a> or
+    <a href="../CoreTypes/fileset.html">filesets</a> that can be defined at
+    the project level and referenced via their ID attribute.
+    Custom data types usually need custom tasks to put them to good use.
+  </p>
+  <p>
+    Two attributes are needed to make a definition: the name that
+    identifies this data type uniquely, and the full name of the class
+    (including its package name) that implements this type.
+  </p>
+  <p>
+    You can also define a group of definitions at once using the file or
+    resource attributes.  These attributes point to files in the format of
+    Java property files or an xml format.
+  </p>
+  <p>
+    For property files each line defines a single data type in the
+    format:</p>
+  <pre>
+    typename=fully.qualified.java.classname
+  </pre>
+    
+  <p>
+    The xml format is described in the
+    <a href="../CoreTypes/antlib.html">Antlib</a> section.
+  </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the data type</td>
+    <td valign="top" align="center">Yes, unless the file or resource type
+      attributes have been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the full class name implementing the data type</td>
+    <td valign="top" align="center">Yes, unless file or resource
+      have been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">Name of the file to load definitions from.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">
+      Name of the resource to load definitions from.
+      If multiple resources by this name are found along the classpath,
+      and the format is "properties", the first resource will be loaded;
+      otherwise all such resources will be loaded.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">The format of the file or resource. The values
+      are "properties" or "xml". If the value is "properties" the file/resource
+      is a property file contains name to classname pairs. If the value
+      is "xml", the file/resource is an xml file/resource structured according
+      to <a href="../CoreTypes/antlib.html">Antlib</a>.
+      The default is "properties" unless the file/resource name ends with
+      ".xml", in which case the format attribute will have the value "xml".
+      <b>since Ant 1.6</b>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td> <td valign="top">the classpath to
+      use when looking up <code>classname</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">
+      a reference to a classpath to use when looking up <code>classname</code>.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">loaderRef</td>
+    <td valign="top">the name of the loader that is
+      used to load the class, constructed from the specified classpath. Use
+      this to allow multiple tasks/types to be loaded with the same loader,
+      so they can call each other. <b>since Ant 1.5</b> </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">onerror</td>
+    <td valign="top">The action to take if there was a failure in defining the
+      type. The values are <i>fail</i>: cause a build exception; <i>report</i>:
+      output a warning, but continue; <i>ignore</i>: do nothing.
+      <b>since Ant 1.6</b>
+      An additional value is <i>failall</i>: cause all behavior of fail,
+      as well as a build exception for the resource or file attribute
+      if the resource or file is not found. <b>since Ant 1.7</b>
+      The default is <i>fail</i>.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">adapter</td>
+    <td valign="top">A class that is used to adapt the defined class to
+      another interface/class. The adapter class must implement the interface
+      "org.apache.tools.ant.TypeAdapter". The adapter class will be used
+      to wrap the defined class unless the defined class implements/extends
+      the class defined by the attribute "adaptto".
+      If "adaptto" is not set, the defined class will always be wrapped.
+      <b>since Ant 1.6</b>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">adaptto</td>
+    <td valign="top">This attribute is used in conjunction with the
+      adapter attribute.
+      If the defined class does not implement/extend the interface/class
+      specified by this attribute, the adaptor class will be used
+      to wrap the class. <b>since Ant 1.6</b>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uri</td>
+    <td valign="top">
+      The uri that this definition should live in.
+      <b>since Ant 1.6</b>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+  <h3>Parameters specified as nested elements</h3>
+  <h4>classpath</h4>
+  <p><code>Typedef</code>'s <i>classpath</i> attribute is a 
+    <a href="../using.html#path">path-like structure</a> and can also be set
+    via a nested <i>classpath</i> element.</p>
+
+<h3>Examples</h3>
+  The following fragment defines define a type called <i>urlset</i>.
+  <pre>
+    &lt;typedef name="urlset" classname="com.mydomain.URLSet"/&gt; </pre>
+  The data type is now available to Ant. The
+  class <code>com.mydomain.URLSet</code> implements this type.</p>
+
+
+  <p>
+    Assuming a class <i>org.acme.ant.RunnableAdapter</i> that
+    extends Task and implements <i>org.apache.tools.ant.TypeAdapter</i>,
+    and in the execute method invokes <i>run</i> on the proxied object,
+    one may use a Runnable class as an Ant task. The following fragment
+    defines a task called <i>runclock</i>.
+  </p>
+  <pre>
+    &lt;typedef name="runclock"
+             classname="com.acme.ant.RunClock"
+             adapter="org.acme.ant.RunnableAdapter"/&gt;
+  </pre>
+
+
+  <p>
+    The following fragment shows the use of the classpathref and
+    loaderref to load up two definitions.
+  </p>
+  <pre>
+    &lt;path id="lib.path"&gt;
+      &lt;fileset dir="lib" includes="lib/*.jar"/&gt;
+    &lt;/path&gt;
+
+    &lt;typedef name="filter1"
+             classname="org.acme.filters.Filter1"
+             classpathref="lib.path"
+             loaderref="lib.path.loader"
+             /&gt;
+    &lt;typedef name="filter2"
+             classname="org.acme.filters.Filter2"
+             loaderref="lib.path.loader"
+             /&gt;
+  </pre>
+  
+  
+  <p>
+    If you want to load an antlib into a special xml-namespace, the <tt>uri</tt> attribute
+    is important:
+  </p>
+  <pre>
+  &lt;project xmlns:antcontrib="antlib:net.sf.antcontrib"&gt;
+     &lt;taskdef uri="antlib:net.sf.antcontrib"
+              resource="net/sf/antcontrib/antlib.xml"
+              classpath="path/to/ant-contrib.jar"/&gt;
+  </pre>
+            
+  
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/unpack.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/unpack.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/unpack.html	(revision 14989)
@@ -0,0 +1,117 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GUnzip/BUnzip2 Task</title>
+</head>
+
+<body>
+
+<h2><a name="unpack">GUnzip/BUnzip2</a></h2>
+<h3>Description</h3>
+<p>Expands a resource packed using GZip or BZip2.</p>
+
+<p>If <i>dest</i> is a directory the name of the destination file is
+the same as <i>src</i> (with the &quot;.gz&quot; or &quot;.bz2&quot;
+extension removed if present). If <i>dest</i> is omitted, the parent
+dir of <i>src</i> is taken. The file is only expanded if the source
+resource is newer than the destination file, or when the destination file
+does not exist.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the file to expand.</td>
+    <td align="center" valign="top">Yes, or a nested resource collection.</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the destination file or directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as src.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;gunzip src=&quot;test.tar.gz&quot;/&gt;
+</pre></blockquote>
+<p>expands <i>test.tar.gz</i> to <i>test.tar</i></p>
+<blockquote><pre>
+&lt;bunzip2 src=&quot;test.tar.bz2&quot;/&gt;
+</pre></blockquote>
+<p>expands <i>test.tar.bz2</i> to <i>test.tar</i></p>
+<blockquote><pre>
+&lt;gunzip src=&quot;test.tar.gz&quot; dest=&quot;test2.tar&quot;/&gt;
+</pre></blockquote>
+<p>expands <i>test.tar.gz</i> to <i>test2.tar</i></p>
+<blockquote><pre>
+&lt;gunzip src=&quot;test.tar.gz&quot; dest=&quot;subdir&quot;/&gt;
+</pre></blockquote>
+<p>expands <i>test.tar.gz</i> to <i>subdir/test.tar</i> (assuming
+subdir is a directory).</p>
+<blockquote><pre>
+&lt;gunzip dest=&quot;.&quot;&gt;
+  &lt;url url="http://example.org/archive.tar.gz"/&gt;
+&lt;/gunzip&gt;
+</pre></blockquote>
+<p>downloads <i>http://example.org/archive.tar.gz</i> and expands it
+to <i>archive.tar</i> in the project's basedir on the fly.</p>
+
+<h3>Related tasks</h3>
+
+<pre>
+&lt;gunzip src="some-archive.gz" dest="some-dest-dir"/&gt;
+</pre>
+
+is identical to
+
+<pre>
+&lt;copy todir="some-dest-dir"&gt;
+  &lt;gzipresource&gt;
+    &lt;file file="some-archive.gz"/&gt;
+  &lt;/gzipresource&gt;
+  &lt;mapper type="glob" from="*.gz" to="*"/&gt;
+&lt;/copy&gt;
+</pre>
+
+<p>The same is also true for <code>&lt;bunzip2&gt;</code> and
+<code>&lt;bzip2resource&gt;</code>.  <code>&lt;copy&gt;</code> offers
+additional features like <a
+href="../CoreTypes/filterchains.html">filtering files</a> on the fly,
+allowing a file to be mapped to multiple destinations, preserving the
+last modified time or a configurable file system timestamp
+granularity.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/untar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/untar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/untar.html	(revision 14989)
@@ -0,0 +1,35 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Untar Task</title>
+</head>
+
+<body>
+
+<h2><a name="untar">Untar</a></h2>
+<h3>Description</h3>
+<p>Untars a tarfile.</p>
+
+This document has moved <A HREF="unzip.html">here</A>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/unzip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/unzip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/unzip.html	(revision 14989)
@@ -0,0 +1,178 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Unzip Task</title>
+</head>
+
+<body>
+
+<h2><a name="unzip">Unjar/Untar/Unwar/Unzip</a></h2>
+<h3>Description</h3>
+<p>Unzips a zip-, war-, or jar file.</p>
+<p><a href="../CoreTypes/patternset.html">PatternSet</a>s are used to select files to extract
+<I>from</I> the archive.  If no patternset is used, all files are extracted.
+</p>
+
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s may be used to select archived files to perform
+unarchival upon.  Only file system based resource collections are
+supported by Unjar/Unwar/Unzip, this includes <a
+href="../CoreTypes/fileset.html">fileset</a>, <a
+href="../CoreTypes/filelist.html">filelist</a>, <a
+href="../using.html#path">path</a>, and <a
+href="../CoreTypes/resources.html#files">files</a>.
+Untar supports arbitrary resource collections.
+Prior to Ant 1.7 only fileset has been supported as a nested element.</p>
+
+<p>You can define filename transformations by using a nested <a href="../CoreTypes/mapper.html">mapper</a> element.  The default mapper is the
+<a href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a>.
+</p>
+<p>File permissions will not be restored on extracted files.</p>
+<p>The untar task recognizes the long pathname entries used by GNU tar.<p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">archive file to expand.</td>
+    <td align="center" valign="top">Yes, if filesets are not used.</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">directory where to store the expanded files.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite files, even if they are newer than the
+      corresponding entries in the archive (true or false, default is
+      true).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top"><b>Note:</b> This attribute is only available for
+    the <code>untar</code> task.<br>
+    compression method.  Allowable values are &quot;none&quot;,
+    &quot;gzip&quot; and &quot;bzip2&quot;.  Default is
+    &quot;none&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top"><b>Note:</b> This attribute is not available for
+    the <code>untar</code> task.<br>
+    The character encoding that has been used for filenames
+    inside the zip file.  For a list of possible values see <a
+    href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.<br>
+    Defaults to &quot;UTF8&quot;, use the magic value
+    <code>native-encoding</code> for the platform's default character
+    encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;unzip src=&quot;${tomcat_src}/tools-src.zip&quot; dest=&quot;${tools.home}&quot;/&gt;
+</pre>
+<p>
+<pre>
+&lt;gunzip src=&quot;tools.tar.gz&quot;/&gt;
+&lt;untar src=&quot;tools.tar&quot; dest=&quot;${tools.home}&quot;/&gt;
+</pre>
+<pre>
+&lt;unzip src=&quot;${tomcat_src}/tools-src.zip&quot;
+       dest=&quot;${tools.home}&quot;&gt;
+    &lt;patternset&gt;
+        &lt;include name=&quot;**/*.java&quot;/&gt;
+        &lt;exclude name=&quot;**/Test*.java&quot;/&gt;
+    &lt;/patternset&gt;
+&lt;/unzip&gt;
+</pre>
+<p>
+<pre>
+&lt;unzip dest=&quot;${tools.home}&quot;&gt;
+    &lt;patternset&gt;
+        &lt;include name=&quot;**/*.java&quot;/&gt;
+        &lt;exclude name=&quot;**/Test*.java&quot;/&gt;
+    &lt;/patternset&gt;
+    &lt;fileset dir=&quot;.&quot;&gt;
+        &lt;include name=&quot;**/*.zip&quot;/&gt;
+        &lt;exclude name=&quot;**/tmp*.zip&quot;/&gt;
+    &lt;/fileset&gt;
+&lt;/unzip&gt;
+</pre>
+<p>
+<pre>
+&lt;unzip src=&quot;apache-ant-bin.zip&quot; dest=&quot;${tools.home}&quot;&gt;
+    &lt;patternset&gt;
+        &lt;include name=&quot;apache-ant/lib/ant.jar&quot;/&gt;
+    &lt;/patternset&gt;
+    &lt;mapper type=&quot;flatten&quot;/&gt;
+&lt;/unzip&gt;
+</pre>
+
+<h3>Related tasks</h3>
+
+<pre>
+&lt;unzip src="some-archive" dest="some-dir"&gt;
+  &lt;patternset&gt;
+    &lt;include name="some-pattern"/&gt;
+  &lt;/patternset&gt;
+  &lt;mapper type=&quot;some-mapper&quot;/&gt;
+&lt;/unzip&gt;
+</pre>
+
+is identical to
+
+<pre>
+&lt;copy todir="some-dir" preservelastmodified="true"&gt;
+  &lt;zipfileset src="some-archive"&gt;
+    &lt;patternset&gt;
+      &lt;include name="some-pattern"/&gt;
+    &lt;/patternset&gt;
+  &lt;/zipfileset&gt;
+  &lt;mapper type=&quot;some-mapper&quot;/&gt;
+&lt;/copy&gt;
+</pre>
+
+<p>The same is also true for <code>&lt;untar&gt;</code> and
+<code>&lt;tarfileset&gt;</code>.  <code>&lt;copy&gt;</code> offers
+additional features like <a href="../CoreTypes/filterchain.html">filtering files</a> on the fly,
+allowing a file to be mapped to multiple destinations or a
+configurable file system timestamp granularity.</p>
+
+<pre>&lt;zip destfile=&quot;new.jar&quot;&gt;
+  &lt;zipfileset src=&quot;old.jar&quot;&gt;
+    &lt;exclude name=&quot;do/not/include/this/class&quot;/&gt;
+  &lt;/zipfileset&gt;
+&lt;/zip&gt;
+</pre>
+<p>&quot;Deletes&quot; files from a zipfile.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/uptodate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/uptodate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/uptodate.html	(revision 14989)
@@ -0,0 +1,172 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Uptodate Task</title>
+</head>
+
+<body>
+
+<h2><a name="uptodate">Uptodate</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a target file or set of target files is more up-to-date
+than a source file or set of source files. A single source file is specified
+using the <code>srcfile</code> attribute. A set of source files is specified
+using the nested <code>&lt;srcfiles&gt;</code>
+elements. These are <a href="../CoreTypes/fileset.html">FileSet</a>s,
+whereas multiple target files are specified using a nested
+<a href="../CoreTypes/mapper.html"><code>&lt;mapper&gt;</code></a> element.</p>
+<p>By default, the value of the property is set to <code>true</code> if
+the timestamp of the source file(s) is not more recent than the timestamp of
+the corresponding target file(s). You can set the value to something other
+than the default by specifying the <code>value</code> attribute.</p>
+<p>If a <code>&lt;srcfiles&gt;</code> element is used, without also specifying
+a <code>&lt;mapper&gt;</code> element, the default behavior is to use a
+<a href="../CoreTypes/mapper.html#merge-mapper">merge mapper</a>, with the
+<code>to</code> attribute set to the value of the
+<code>targetfile</code> attribute.</p>
+<p>Normally, this task is used to set properties that are useful to avoid
+target execution depending on the relative age of the specified files.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to set the property to.</td>
+    <td valign="top" align="center">No; defaults to <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">srcfile</td>
+    <td valign="top">The file to check against the target file(s).</td>
+    <td valign="top" align="center">Yes, unless a nested
+    <code>&lt;srcfiles&gt;</code> or <code>&lt;srcresources&gt;</code>
+    element is present.</td>
+  </tr>
+  <tr>
+    <td valign="top">targetfile</td>
+    <td valign="top">The file for which we want to determine the status.</td>
+    <td valign="top" align="center">Yes, unless a nested
+      <code>&lt;mapper&gt;</code> element is present.</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4><a name="srcfiles">srcfiles</a></h4>
+<p>The nested <code>&lt;srcfiles&gt;</code> element allows you to specify a
+set of files to check against the target file(s).</p>
+
+<p><strong>Note:</strong> You can specify either the <code>srcfile</code>
+attribute or nested <code>&lt;srcfiles&gt;</code> elements, but not both.
+
+<h4><a name="srcresources">srcresources</a></h4>
+<p>The nested <code>&lt;srcresources&gt;</code> element is a <a
+href="../CoreTypes/resources.html#union">union</a> and allows you to
+specify a collection of resources to check against the target file(s).
+<em>Since Ant 1.7</em></p>
+
+<h4><a name="mapper">mapper</a></h4>
+<p>The nested <code>&lt;mapper&gt;</code> element allows you to specify
+a set of target files to check for being up-to-date with respect to a
+set of source files.</p>
+   <p>
+      The mapper "to" attribute is relative to the target file, or to
+      the "dir" attribute of the nested srcfiles element.
+   </p>
+  <p>
+    <em>Since Ant 1.6.3</em>,
+    one can use a filenamemapper type in place of the mapper element.
+  </p>
+<h3>Examples</h3>
+<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot; targetfile=&quot;${deploy}\xmlClasses.jar&quot; &gt;
+    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
+  &lt;/uptodate&gt;</pre>
+<p>sets the property <code>xmlBuild.notRequired</code> to <code>true</code>
+if the <code>${deploy}/xmlClasses.jar</code> file is more up-to-date than
+any of the DTD files in the <code>${src}/xml</code> directory.</p>
+<p>This can be written as:</p>
+<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot;&gt;
+    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
+    &lt;mapper type=&quot;merge&quot; to=&quot;${deploy}\xmlClasses.jar&quot;/&gt;
+  &lt;/uptodate&gt;</pre>
+<p>as well.</p>
+<p>
+The <code>xmlBuild.notRequired</code> property can then be used in a
+<code>&lt;target&gt;</code> tag's <code>unless</code> attribute to
+conditionally run that target. For example, running the following target:</p>
+<pre>
+&lt;target name=&quot;xmlBuild&quot; depends=&quot;chkXmlBuild&quot; unless=&quot;xmlBuild.notRequired&quot;&gt;
+  ...
+&lt;/target&gt;
+</pre>
+<p>
+will first run the <code>chkXmlBuild</code> target, which contains
+the <code>&lt;uptodate&gt;</code> task that determines whether
+<code>xmlBuild.notRequired</code> gets set. The property named in
+the <code>unless</code> attribute is then checked for being set/not set.
+If it did get set (ie., the jar file is up-to-date),
+then the <code>xmlBuild</code> target won't be run.
+</p>
+
+<p> The following example shows a single source file being checked
+against a single target file:</p>
+<pre>  &lt;uptodate property=&quot;isUpToDate&quot;
+            srcfile=&quot;/usr/local/bin/testit&quot;
+            targetfile=&quot;${build}/.flagfile&quot;/&gt;
+</pre>
+<p>sets the property <code>isUpToDate</code> to <code>true</code>
+if <code>/usr/local/bin/testit</code> is not newer than
+<code>${build}/.flagfile</code>.</p>
+</p>
+  <p>
+    The following shows usage of a relative mapper.
+  </p>
+  <pre>
+    &lt;uptodate property="checkUptodate.uptodate"&gt;
+      &lt;srcfiles dir="src" includes="*"/&gt;
+      &lt;mapper type="merge" to="../dest/output.done"/&gt;
+    &lt;/uptodate&gt;
+    &lt;echo message="checkUptodate result: ${checkUptodate.uptodate}"/&gt;
+  </pre>
+  <p>
+    The previous example can be a bit confusing, so it may be better to
+    use absolute paths:
+  </p>
+  <pre>
+    &lt;property name="dest.dir" location="dest"/&gt;
+    &lt;uptodate property="checkUptodate.uptodate"&gt;
+      &lt;srcfiles dir="src" includes="*"/&gt;
+      &lt;mapper type="merge" to="${dest.dir}/output.done"/&gt;
+    &lt;/uptodate&gt;
+  </pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/waitfor.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/waitfor.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/waitfor.html	(revision 14989)
@@ -0,0 +1,133 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>WaitFor Task</title>
+</head>
+
+<body>
+
+<h2>Waitfor</h2>
+<h3>Description</h3>
+<p>Blocks execution until a set of specified conditions become true. This is intended
+  to be used with the <a href="parallel.html">parallel</a> task to
+  synchronize a set of processes.</p>
+<p>The conditions to wait for are defined in <a href="waitfor.html#nested">nested elements</a>,
+if multiple conditions are specified, then the task will wait until all conditions are true..</p>
+<p></p>
+<p>If both maxwait and maxwaitunit are not specified, the maxwait is 3 minutes (180000 milliseconds).</p>
+<p>If the <code>timeoutproperty</code> attribute has been set, a
+property of that name will be created if the condition didn't come
+true within the specified time.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">maxwait</td>
+    <td valign="top">The maximum amount of time to wait for all the required conditions
+      to become true before failing the task. Defaults to 180000 maxwaitunits.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxwaitunit</td>
+    <td valign="top">The unit of time that must be used to interpret the value of the
+    maxwait attribute.  Defaults to millisecond.
+                     Valid Values are
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day</li>
+                        <li>week</li>
+                     </ul>
+      </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">checkevery</td>
+    <td valign="top">The amount of time to wait between each test of the conditions.
+      Defaults to 500 checkeveryunits.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">checkeveryunit</td>
+    <td valign="top">The unit of time that must be used to interpret the value of the
+    checkevery attribute.  Defaults to millisecond.
+                     Valid Values are
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day</li>
+                        <li>week</li>
+                     </ul>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeoutproperty</td>
+    <td valign="top">the name of the property to set if maxwait has
+      been exceeded.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+
+<p>The available conditions that satisfy the
+<code>&lt;waitfor&gt;</code> task are the same as those for the
+<a href="condition.html"><code>&lt;condition&gt;</code></a> task. See
+<a href="conditions.html">here</a> for the full list.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;waitfor maxwait="30" maxwaitunit="second"&gt;
+        &lt;available file="errors.log"/&gt;
+&lt;/waitfor&gt;
+</pre></blockquote>
+<p>waits up to 30 seconds for a file called errors.log to appear.</p>
+<blockquote><pre>
+&lt;waitfor maxwait="3" maxwaitunit="minute" checkevery="500"&gt;
+        &lt;http url="http://localhost/myapp/index.html"/&gt;
+&lt;/waitfor&gt;
+</pre></blockquote>
+<p>waits up to 3 minutes (and checks every 500 milliseconds) for a web server on localhost
+  to serve up the specified URL.</p>
+<blockquote><pre>
+&lt;waitfor maxwait="10" maxwaitunit="second"&gt;
+        &lt;and&gt;
+            &lt;socket server="dbserver" port="1521"/&gt;
+            &lt;http url="http://webserver/mypage.html"/&gt;
+        &lt;/and&gt;
+&lt;/waitfor&gt;
+</pre></blockquote>
+<p>waits up to 10 seconds for a server on the dbserver machine to begin listening
+  on port 1521 and for the http://webserver/mypage.html web page
+  to become available.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/war.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/war.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/war.html	(revision 14989)
@@ -0,0 +1,269 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>WAR Task</title>
+</head>
+
+<body>
+
+<h2><a name="war">War</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="jar.html">Jar</a> task with special
+treatment for files that should end up in the
+<code>WEB-INF/lib</code>, <code>WEB-INF/classes</code> or
+<code>WEB-INF</code> directories of the Web Application Archive.</p>
+<p>(The War task is a shortcut for specifying the particular layout of a WAR file.
+The same thing can be accomplished by using the <i>prefix</i> and <i>fullpath</i>
+attributes of zipfilesets in a Zip or Jar task.)</p>
+<p>The extended zipfileset element from the zip task
+    (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>)
+    is available in the War task. The task is also resource-enabled
+    and will add nested resources and resource collections to the archive.</p>
+
+<p>
+    Before Servlet API 2.5/Java EE 5, a WEB-INF/web.xml file was mandatory in a
+    WAR file, so this task failed if the <code>webxml</code> attribute was missing.
+    As the web.xml file is now optional, the <code>webxml</code> attribute may now
+    be made optional. However, as most real web applications do need a web.xml file,
+    it is not optional by default. The task will fail if the file is not
+    included, unless the <code>needxmlfile</code> attribute
+    is set to <code>true</code>. The task
+    will warn if more than one web.xml file is added to the JAR  
+    through the filesets.
+</p>
+
+
+<p><b>Please note that the Zip format allows multiple files of the same
+fully-qualified name to exist within a single archive.  This has been
+documented as causing various problems for unsuspecting users.  If you wish
+to avoid this behavior you must set the <code>duplicate</code> attribute
+to a value other than its default, <code>&quot;add&quot;</code>.</b></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the WAR file to create.</td>
+    <td align="center" valign="top" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">warfile</td>
+    <td valign="top"><i>Deprecated</i> name of the file to create
+    -use <tt>destfile</tt> instead.</td>
+  </tr>
+  <tr>
+    <td valign="top">webxml</td>
+    <td valign="top">The servlet configuration descriptor to use (WEB-INF/web.xml).</td>
+    <td valign="top" align="center">Yes, unless <tt>needxmlfile</tt> is true,
+    the file is pulled in via a nested fileset, or an existing WAR file is
+    being updated.</td>
+  </tr>
+  <tr>
+    <td valign="top">needxmlfile</td>
+    <td valign="top">Flag to indicate whether or not the web.xml file is needed.
+        I=it should be set to false when generating
+        servlet 2.5+ WAR files without a web.xml file.
+        <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No -default "true"</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">the manifest file to use.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Non-default level at which file compression should be
+    performed. Valid values range from 0 (no compression/fastest) to 9
+    (maximum compression/slowest). <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Nested elements</h3>
+<h4>lib</h4>
+<p>The nested <code>lib</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>WEB-INF/lib</code> directory of the war file.</p>
+<h4>classes</h4>
+<p>The nested <code>classes</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>WEB-INF/classes</code> directory of the war file.</p>
+<h4>webinf</h4>
+<p>The nested <code>webinf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>WEB-INF</code> directory of the war file. If this
+fileset includes a file named <code>web.xml</code>, the file is
+ignored and you will get a warning.</p>
+<h4>metainf</h4>
+<p>The nested <code>metainf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>META-INF</code> directory of the war file. If this
+fileset includes a file named <code>MANIFEST.MF</code>, the file is
+ignored and you will get a warning.</p>
+<h3>Examples</h3>
+<p>Assume the following structure in the project's base directory:</p>
+<pre>
+thirdparty/libs/jdbc1.jar
+thirdparty/libs/jdbc2.jar
+build/main/com/myco/myapp/Servlet.class
+src/metadata/myapp.xml
+src/html/myapp/index.html
+src/jsp/myapp/front.jsp
+src/graphics/images/gifs/small/logo.gif
+src/graphics/images/gifs/large/logo.gif
+</pre>
+<p>then the war file <code>myapp.war</code> created with</p>
+<pre>
+&lt;war destfile=&quot;myapp.war&quot; webxml=&quot;src/metadata/myapp.xml&quot;&gt;
+  &lt;fileset dir=&quot;src/html/myapp&quot;/&gt;
+  &lt;fileset dir=&quot;src/jsp/myapp&quot;/&gt;
+  &lt;lib dir=&quot;thirdparty/libs&quot;&gt;
+    &lt;exclude name=&quot;jdbc1.jar&quot;/&gt;
+  &lt;/lib&gt;
+  &lt;classes dir=&quot;build/main&quot;/&gt;
+  &lt;zipfileset dir=&quot;src/graphics/images/gifs&quot;
+              prefix=&quot;images&quot;/&gt;
+&lt;/war&gt;
+</pre>
+<p>will consist of</p>
+<pre>
+WEB-INF/web.xml
+WEB-INF/lib/jdbc2.jar
+WEB-INF/classes/com/myco/myapp/Servlet.class
+META-INF/MANIFEST.MF
+index.html
+front.jsp
+images/small/logo.gif
+images/large/logo.gif
+</pre>
+<p>using Ant's default manifest file. The content of
+<code>WEB-INF/web.xml</code> is identical to
+<code>src/metadata/myapp.xml</code>.</p>
+
+<p>We regulary receive bug reports that this task is creating the WEB-INF
+directory, and thus it is our fault your webapp doesn't work. The cause
+of these complaints lies in WinZip, which turns an all upper-case
+directory into an all lower case one in a fit of helpfulness. Please check that
+<code>jar xvf yourwebapp.war</code> shows the same behaviour before filing another
+report.<br/>
+Winzip has an option allowing all uppercase names (which is off by default!).  It can be enabled by:
+Menu "Options" -> "Configuration",  "View" property/tab page, then "General" group box has an option called "Allow all uppercase file names".
+</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/whichresource.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/whichresource.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/whichresource.html	(revision 14989)
@@ -0,0 +1,147 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Whichresource
+ Task</title>
+ <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+</head>
+
+<body>
+
+  <!-- PAGE HEADER -->
+
+            <h2><a name="whichresource">Whichresource Task</a></h2>
+  
+  <!-- START RIGHT SIDE MAIN BODY -->
+
+          
+          <h3><a name="description">Description</a></h3>
+<p>
+        Find a class or resource on the supplied classpath, or the system classpath if none is supplied. The named property is set if the item can be found. For example <pre> &lt;whichresource resource="/log4j.properties" property="log4j.url" &gt; </pre>
+</p>
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+          
+          <h3><a name="attributes">Parameters</a></h3>
+
+
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          property
+        </td>
+        <td>
+          the property to fill with the URL of the resource or class
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Required
+        </td>
+    </tr>
+
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          class
+        </td>
+        <td>
+          name the class to look for
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Exactly one of these two
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          resource
+        </td>
+        <td>
+          name the resource to look for
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          classpath
+        </td>
+        <td>
+          Set the classpath to be used for this compilation.
+        </td>
+        <td>
+          Path
+        </td>
+        <td>
+          Optional
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+
+          
+          <h3><a name="elements">Parameters as nested elements</a></h3>
+
+    <!-- Start Element -->
+          <h4>classpath</h4> (org.apache.tools.ant.types.Path)
+<p>
+        Adds a path to the classpath.
+</p>
+    <!-- End Element -->
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/xmlproperty.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/xmlproperty.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/xmlproperty.html	(revision 14989)
@@ -0,0 +1,284 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XmlProperty Task</title>
+</head>
+
+<body>
+
+<h2><a name="xmlproperty">XmlProperty</a></h2>
+<h3>Description</h3>
+<p>
+Loads property values from a well-formed xml file. There are no other restrictions
+than "well-formed". You can choose the layout you want. For example this XML property file:
+<pre>
+  &lt;root&gt;
+    &lt;properties&gt;
+      &lt;foo&gt;bar&lt;/foo&gt;
+    &lt;/properties&gt;
+  &lt;/root&gt;
+</pre>
+is roughly equivalent to this Java property file:
+<pre>
+  root.properties.foo = bar
+</pre>
+
+<p>
+By default, this load
+does <em>no</em> processing of the input.  In particular, unlike the
+<a href="property.html">Property task</a>, property references
+(i.e., <samp>${foo}</samp>) are not resolved.
+<p>
+
+<h3><a name="semanticAttributes">Semantic Attributes</a></h3>
+
+Input processing can be enabled by using the <b>semanticAttributes</b>
+attribute.  If this attribute is set to <i>true</i> (its default is
+<i>false</i>), the following processing occurs as the input XML file
+is loaded:
+<ul>
+  <li>Property references are resolved.</li>
+  <li>The following attriubtes are treated differently:
+    <ul>
+      <li><b>id</b>: The property is associated with the given id value.</li>
+      <li><b>location</b>: The property is treated as a file location</li>
+      <li><b>refid</b>: The property is set to the value of the
+          referenced property.</li>
+      <li><b>value</b>: The property is set to the value indicated.</li>
+    </ul>
+  </li>
+  <li><a href="../using.html#path">Path-like Structures</a> can be defined
+      by use of the following attributes:
+    <ul>
+      <li><b>pathid</b>: The given id is used to identify a path.  The
+          nested XML tag name is ignored.  Child elements can be used
+          (XML tag names are ignored) to identify elements of the path.</li>
+    </ul>
+  </li>
+</ul>
+<p>
+For example, with semantic attribute processing enabled, this XML property
+file:
+<pre>
+  &lt;root&gt;
+    &lt;properties&gt;
+      &lt;foo location="bar"/&gt;
+      &lt;quux&gt;${root.properties.foo}&lt;/quux&gt;
+    &lt;/properties&gt;
+  &lt;/root&gt;
+</pre>
+is roughly equivalent to the following fragments in a build.xml file:
+<pre>
+  &lt;property name="root.properties.foo" location="bar"/&gt;
+  &lt;property name="root.properties.quux" value="${root.properties.foo}"/&gt;
+</pre>
+
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The XML file to parse.</td>
+    <td valign="top" align="center">Yes, or a nested resource collection.</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">The prefix to prepend to each property</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepRoot</td>
+    <td valign="top">Keep the xml root tag as the
+                     first value in the property name.</td>
+    <td valign="top" align="center">No, default is <i>true</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">validate</td>
+    <td valign="top">Validate the input file (e.g. by a DTD). Otherwise the XML must only be well-formed.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">collapseAttributes</td>
+    <td valign="top">Treat attributes as nested elements.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">semanticAttributes</td>
+    <td valign="top">Enable special handling of certain attribute names.
+                     See the <a href="#semanticAttributes">Semantic Attributes</a>
+                     section for more information.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeSemanticAttribute</td>
+    <td valign="top">Include the semantic attribute name
+                     as part of the property name.  Ignored if
+                     <i>semanticAttributes</i> is not set to <i>true</i>.
+                     See the <a href="#semanticAttributes">Semantic Attributes</a>
+                     section for more information.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">rootDirectory</td>
+    <td valign="top">The directory to use for resolving file references. Ignored
+                     if <i>semanticAttributes</i> is not set to <i>true</i>.</td>
+    <td valign="top" align="center">No, default is <i>${basedir}</i>.</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a>
+element is used to perform entity resolution.</p>
+
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as input.</p>
+
+<a name="examples">
+<h3>Examples</h3>
+</a>
+
+<h4>Non-semantic Attributes</h4>
+
+<p>Here is an example xml file that does not have any semantic attributes.</p>
+
+<pre>
+   &lt;root-tag myattr="true"&gt;
+    &lt;inner-tag someattr="val"&gt;Text&lt;/inner-tag&gt;
+    &lt;a2&gt;&lt;a3&gt;&lt;a4&gt;false&lt;/a4&gt;&lt;/a3&gt;&lt;/a2&gt;
+   &lt;/root-tag&gt;
+</pre>
+
+<h5>default loading</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml"/&gt;</pre>
+is equivalent to the following properties:
+<pre>
+   root-tag(myattr)=true
+   root-tag.inner-tag=Text
+   root-tag.inner-tag(someattr)=val
+   root-tag.a2.a3.a4=false
+</pre>
+
+<h5>collapseAttributes=false</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml" collapseAttributes="true"/&gt;</pre>
+is equivalent to the following properties:
+<pre>
+   root-tag.myattr=true
+   root-tag.inner-tag=Text
+   root-tag.inner-tag.someatt=val
+   root-tag.a2.a3.a4=false
+</pre>
+
+<h5>keepRoot=false</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml" keepRoot="false"/&gt;</pre>
+is equivalent to the following properties:
+<pre>
+   inner-tag=Text
+   inner-tag(someattr)=val
+   a2.a3.a4=false
+</pre>
+
+<h4>Semantic Attributes</h4>
+
+<p>Here is an example xml file that has semantic attributes.</p>
+<pre>
+  &lt;root-tag&gt;
+    &lt;version value="0.0.1"/&gt;
+    &lt;build folder="build"&gt;
+      &lt;classes id="build.classes" location="${build.folder}/classes"/&gt;
+      &lt;reference refid="build.classes"/&gt;
+    &lt;/build&gt;
+    &lt;compile&gt;
+      &lt;classpath pathid="compile.classpath"&gt;
+        &lt;pathelement location="${build.classes}"/&gt;
+      &lt;/classpath&gt;
+    &lt;/compile&gt;
+    &lt;run-time&gt;
+      &lt;jars&gt;*.jar&lt;/jars&gt;
+      &lt;classpath pathid="run-time.classpath"&gt;
+        &lt;path refid="compile.classpath"/&gt;
+        &lt;pathelement path="${run-time.jars}"/&gt;
+      &lt;/classpath&gt;
+    &lt;/run-time&gt;
+  &lt;/root-tag&gt;
+</pre>
+
+<h5>default loading (semanticAttributes=true)</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml"
+                semanticAttributes="true"/&gt;</pre>
+is equivalent to the following entries in a build file:
+<pre>
+  &lt;property name="version" value="0.0.1"/&gt;
+  &lt;property name="build.folder" value="build"/&gt;
+  &lt;property name="build.classes" location="${build.folder}/classes" id="build.classes"/&gt;
+  &lt;property name="build.reference" refid="build.classes"/&gt;
+
+  &lt;property name="run-time.jars" value="*.jar/&gt;
+
+  &lt;classpath id="compile.classpath"&gt;
+    &lt;pathelement location="${build.classes}"/&gt;
+  &lt;/classpath&gt;
+
+  &lt;classpath id="run-time.classpath"&gt;
+    &lt;path refid="compile.classpath"/&gt;
+    &lt;pathelement path="${run-time.jars}"/&gt;
+  &lt;/classpath&gt;
+</pre>
+
+<h5>includeSemanticAttribute="true"</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml"
+                semanticAttributes="true"
+                includeSemanticAttribute="true"/&gt;
+</pre>
+is equivalent to the following entries in a build file:
+<pre>
+  &lt;property name="version.value" value="0.0.1"/&gt;
+  &lt;property name="build.folder" value="build"/&gt;
+  &lt;property name="build.classes.location" location="${build.folder}/classes"/&gt;
+  &lt;property name="build.reference.refid" refid="build.location"/&gt;
+
+  &lt;property name="run-time.jars" value="*.jar/&gt;
+
+  &lt;classpath id="compile.classpath"&gt;
+    &lt;pathelement location="${build.classes}"/&gt;
+  &lt;/classpath&gt;
+
+  &lt;classpath id="run-time.classpath"&gt;
+    &lt;path refid="compile.classpath"/&gt;
+    &lt;pathelement path="${run-time.jars}"/&gt;
+  &lt;/classpath&gt;
+</pre>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/zip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/zip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTasks/zip.html	(revision 14989)
@@ -0,0 +1,303 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Zip Task</title>
+</head>
+
+<body>
+
+<h2><a name="zip">Zip</a></h2>
+<h3>Description</h3>
+<p>Creates a zipfile.</p>
+<p>The <i>basedir</i> attribute is the reference directory from where to zip.</p>
+<p>Note that file permissions will not be stored in the resulting zipfile.</p>
+<p>It is possible to refine the set of files that are being zipped. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns. </p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>basedir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>Or, you may place within it nested file sets, or references to file sets.
+In this case <code>basedir</code> is optional; the implicit file set is <i>only used</i>
+if <code>basedir</code> is set. You may use any mixture of the implicit file set
+(with <code>basedir</code> set, and optional attributes like <code>includes</code>
+and optional subelements like <code>&lt;include&gt;</code>); explicit nested
+<code>&lt;fileset&gt;</code> elements so long as at least one fileset total is specified. The ZIP file will
+only reflect the relative paths of files <i>within</i> each fileset. The Zip task and its derivatives know a special form of a fileset named zipfileset that has additional attributes (described below). </p>
+<p>The Zip task also supports the merging of multiple zip files into the zip file. 
+This is possible through either the <i>src</i> attribute of any nested filesets 
+or by using the special nested fileset <i>zipgroupfileset</i>.</p>
+
+<p>The <code>update</code> parameter controls what happens if the ZIP
+file already exists. When set to <code>yes</code>, the ZIP file is
+updated with the files specified. (New files are added; old files are
+replaced with the new versions.) When set to <code>no</code> (the
+default) the ZIP file is overwritten if any of the files that would be
+added to the archive are newer than the entries inside the archive.
+Please note that ZIP files store file modification times with a
+granularity of two seconds.  If a file is less than two seconds newer
+than the entry in the archive, Ant will not consider it newer.</p>
+
+<p>The <code>whenempty</code> parameter controls what happens when no files match.
+If <code>skip</code> (the default), the ZIP is not created and a warning is issued.
+If <code>fail</code>, the ZIP is not created and the build is halted with an error.
+If <code>create</code>, an empty ZIP file (explicitly zero entries) is created,
+which should be recognized as such by compliant ZIP manipulation tools.</p>
+<p>This task will now use the platform's default character encoding
+for filenames - this is consistent with the command line ZIP tools,
+but causes problems if you try to open them from within Java and your
+filenames contain non US-ASCII characters. Use the encoding attribute
+and set it to UTF8 to create zip files that can safely be read by
+Java.</p>
+
+<p>Starting with Ant 1.5.2, <code>&lt;zip&gt;</code> can store Unix permissions
+inside the archive (see description of the filemode and dirmode
+attributes for <a href="../CoreTypes/zipfileset.html">&lt;zipfileset&gt;</a>).
+Unfortunately there is no portable way to store these permissions.
+Ant uses the algorithm used by <a href="http://www.info-zip.org">Info-Zip's</a>
+implementation of the zip and unzip commands - these are the default
+versions of zip and unzip for many Unix and Unix-like systems.</p>
+
+<p><b>Please note that the zip format allows multiple files of the same
+fully-qualified name to exist within a single archive.  This has been
+documented as causing various problems for unsuspecting users.  If you wish
+to avoid this behavior you must set the <code>duplicate</code> attribute
+to a value other than its default, <code>&quot;add&quot;</code>.</b></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the zip-file to create.</td>
+    <td align="center" valign="top" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">zipfile</td>
+    <td valign="top">the <i>deprecated</i> old name of destfile.</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to zip the files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+    inside the zip file.  For a list of possible values see <a
+    href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.
+    Defaults to the platform's default character encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">whenempty</td>
+    <td valign="top">behavior when no files match.  Valid values are &quot;fail&quot;, &quot;skip&quot;, and &quot;create&quot;.  Default is &quot;skip&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;. The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">comment</td>
+    <td valign="top">Comment to store in the archive. <em>Since Ant 1.6.3</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Non-default level at which file compression should be
+    performed. Valid values range from 0 (no compression/fastest) to 9
+    (maximum compression/slowest). <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any resource collection</h4>
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select groups of files to archive.</p>
+<p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> and
+<code>&lt;zipfileset&gt;</code> have been supported as nested elements.</p>
+
+<h4>zipgroupfileset</h4>
+<p>A <code>&lt;zipgroupfileset&gt;</code> allows for multiple zip files to be 
+merged into the archive. Each file found in this fileset is added to the archive 
+the same way that <i>zipfileset src</i> files are added.</p>
+
+
+<h3>Examples</h3>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code>
+in the <code>${dist}</code> directory.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+       update=&quot;true&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code>
+in the <code>${dist}</code> directory. If <code>manual.zip</code>
+doesn't exist, it is created; otherwise it is updated with the
+new/changed files.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+       excludes=&quot;mydocs/**, **/todo.html&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory. Files in the directory <code>mydocs</code>,
+or files with the name <code>todo.html</code> are excluded.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+       includes=&quot;api/**/*.html&quot;
+       excludes=&quot;**/todo.html&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory. Only html files under the directory <code>api</code>
+are zipped, and files with the name <code>todo.html</code> are excluded.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;&gt;
+    &lt;fileset dir=&quot;htdocs/manual&quot;/&gt;
+    &lt;fileset dir=&quot;.&quot; includes=&quot;ChangeLog.txt&quot;/&gt;
+  &lt;/zip&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory, and also adds the file <code>ChangeLog.txt</code> in the
+current directory. <code>ChangeLog.txt</code> will be added to the top of the ZIP file, just as if
+it had been located at <code>htdocs/manual/ChangeLog.txt</code>.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;&gt;
+    &lt;zipfileset dir=&quot;htdocs/manual&quot; prefix=&quot;docs/user-guide&quot;/&gt;
+    &lt;zipfileset dir=&quot;.&quot; includes=&quot;ChangeLog27.txt&quot; fullpath=&quot;docs/ChangeLog.txt&quot;/&gt;
+    &lt;zipfileset src=&quot;examples.zip&quot; includes=&quot;**/*.html&quot; prefix=&quot;docs/examples&quot;/&gt;
+  &lt;/zip&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory into the <code>docs/user-guide</code> directory
+in the archive, adds the file <code>ChangeLog27.txt</code> in the
+current directory as <code>docs/ChangeLog.txt</code>, and includes all the html files in <code>examples.zip</code> 
+under <code>docs/examples</code>.  The archive might end up containing the files:</p>
+<pre>    docs/user-guide/html/index.html
+    docs/ChangeLog.txt
+    docs/examples/index.html
+</pre>
+<p>
+The code
+<pre>
+  &lt;zip destfile=&quot;${dist}/manual.zip&quot;&gt;
+    &lt;zipfileset dir=&quot;htdocs/manual&quot; prefix=&quot;docs/user-guide&quot;/&gt;
+    &lt;zipgroupfileset dir=&quot;.&quot; includes=&quot;examples*.zip&quot;/&gt;
+  &lt;/zip&gt;
+</pre>
+<p>
+<p>zips all files in the <code>htdocs/manual</code> directory into the <code>docs/user-guide</code> directory in the archive and includes all the files in any file that maches <code>examples*.zip</code>, such as all files within <code>examples1.zip</code> or <code>examples_for_brian.zip</code>.
+
+<pre>
+&lt;zip dest="release.zip"&gt;
+  &lt;tarfileset src="release.tar"/&gt;
+&lt;/zip&gt;
+</pre>
+
+<p>Re-packages a TAR archive as a ZIP archive.  If Unix file
+permissions have been stored as part of the TAR file, they will be
+retained in the resulting ZIP archive.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/antlib.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/antlib.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/antlib.html	(revision 14989)
@@ -0,0 +1,267 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>AntLib</title>
+  </head>
+
+  <body>
+    <h2><a name="antlib">Antlib</a></h2>
+
+
+    <h3>Description</h3>
+    <p>
+      An antlib file is an xml file with a root element of "antlib".
+      Antlib's elements are ant definition tasks - like
+      
+      and <a href="../CoreTasks/taskdef.html">Taskdef</a>,
+      or any ant task that extends
+      <code>org.apache.tools.ant.taskdefs.AntlibDefinition</code>.
+    </p>
+    <p>
+        The current set of declarations bundled with Ant that do this are:
+    </p>
+        <ol>
+            <li><a href="../CoreTasks/typedef.html">Typedef</a>
+            </li>
+            <li><a href="../CoreTasks/taskdef.html">Taskdef</a>
+            </li>
+            <li><a href="../CoreTasks/macrodef.html">Macrodef</a>
+            </li>
+            <li><a href="../CoreTasks/presetdef.html">Presetdef</a>
+            </li>
+            <li><a href="../OptionalTasks/scriptdef.html">Scriptdef</a>
+            </li>
+        </ol>
+    <p>
+      A group of tasks and types may be defined together in an antlib
+      file. For example the file <i>sample.xml</i> contains the following:
+    </p>
+    <blockquote>
+      <pre>
+&lt;?xml version="1.0"?&gt;
+&lt;antlib&gt;
+   &lt;typedef name="if" classname="org.acme.ant.If"/&gt;
+   &lt;typedef name="scriptpathmapper"
+            classname="org.acme.ant.ScriptPathMapper"
+            onerror="ignore"/&gt;
+   &lt;macrodef name="print"&gt;
+      &lt;attribute name="file"/&gt;
+      &lt;sequential&gt;
+         &lt;concat taskname="print"&gt;
+            &lt;fileset dir="." includes="@{file}"/&gt;
+         &lt;/concat&gt;
+      &lt;/sequential&gt;
+   &lt;/macrodef&gt;
+&lt;/antlib&gt;
+      </pre>
+    </blockquote>
+    <p>
+      It defines two types or tasks, <i>if</i> and <i>scriptpathmapper</i>.
+      This antlib file may be used in a build script as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef file="sample.xml"/&gt;
+      </pre>
+    </blockquote>
+    <p>
+      The other attributes of <code>&lt;typedef&gt;</code> may be used as well.
+      For example, assuming that the <i>sample.xml</i> is in a jar
+      file <i>sample.jar</i> also containing the classes, the
+      following build fragment will define the <i>if</i> and <i>scriptpathmapper</i>
+      tasks/types and place them in the namespace uri <i>samples:/acme.org</i>.
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef resource="org/acme/ant/sample.xml"
+         uri="samples:/acme.org"/&gt;
+      </pre>
+    </blockquote>
+    <p>
+      The definitions may then be used as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;sample:if valuetrue="${props}" xmlns:sample="samples:/acme.org"&gt;
+   &lt;sample:scriptpathmapper language="beanshell"&gt;
+      some bean shell
+   &lt;/sample:scriptpathmapper&gt;
+&lt;/sample:if&gt;
+      </pre>
+    </blockquote>
+
+
+    <h3><a name="antlibnamespace">Antlib namespace</a></h3>
+    <p>
+      The name space URIs with the pattern <b>antlib:<i>java package</i></b>
+      are given special treatment.
+    </p>
+    <p>
+      When ant encounters a element with a namespace URI with this pattern, it
+      will check to see if there is a resource of the name <i>antlib.xml</i> in
+      the package directory in the default classpath.
+    </p>
+    <p>
+      For example, assuming that the file <i>antcontrib.jar</i> has been placed
+      in the directory <i>${ant.home}/lib</i> and it contains the resource
+      <i>net/sf/antcontrib/antlib.xml</i> which has all antcontrib's definitions
+      defined, the following build file will automatically load the antcontrib
+      definitions at location <i>HERE</i>:
+    </p>
+    <blockquote>
+      <pre>
+&lt;project default="deletetest" xmlns:antcontrib="antlib:net.sf.antcontrib"&gt;
+   &lt;macrodef name="showdir"&gt;
+      &lt;attribute name="dir"/&gt;
+      &lt;sequential&gt;
+         &lt;antcontrib:shellscript shell="bash"&gt;  &lt;!-- HERE --&gt;
+            ls -Rl @{dir}
+         &lt;/antcontrib:shellscript&gt;
+      &lt;/sequential&gt;
+   &lt;/macrodef&gt;
+
+   &lt;target name="deletetest"&gt;
+      &lt;delete dir="a" quiet="yes"/&gt;
+      &lt;mkdir dir="a/b"/&gt;
+      &lt;touch file="a/a.txt"/&gt;
+      &lt;touch file="a/b/b.txt"/&gt;
+      &lt;delete&gt;
+         &lt;fileset dir="a"/&gt;
+      &lt;/delete&gt;
+      &lt;showdir dir="a"/&gt;
+   &lt;/target&gt;
+&lt;/project&gt;
+      </pre>
+    </blockquote>
+    <p>
+      The requirement that the resource is in the default classpath
+      may be removed in future versions of Ant.</p>
+    </p>
+
+
+	<h3><a name="loadFromInside">Load antlib from inside of the buildfile</a></h3>
+	<p>
+	  If you want to seperate the antlib from your local Ant installation, e.g. because you 
+	  want to hold that jar in your projects SCM system, you have to specify a classpath, so 
+	  that Ant could find that jar. The best solution is loading the antlib with <tt>&lt;taskdef&gt;</tt>.
+	</p>
+    <blockquote>
+      <pre>
+&lt;project xmlns:<font color="green">antcontrib</font>="<font color="red">antlib:net.sf.antcontrib</font>"&gt;
+   &lt;taskdef uri="<font color="red">antlib:net.sf.antcontrib</font>"
+            resource="net/sf/antcontrib/antlib.xml"
+            classpath="path/to/ant-contrib.jar"/&gt;
+   
+   &lt;target name="iterate"&gt;
+      &lt;<font color="green">antcontrib</font>:for param="file"&gt;
+         &lt;fileset dir="."/&gt;
+         &lt;sequential&gt;
+            &lt;echo message="- @{file}"/&gt;
+         &lt;/sequential&gt;
+      &lt;/antcontrib:for&gt;
+   &lt;/target&gt;
+&lt;/project&gt;
+      </pre>
+    </blockquote>
+
+	
+	
+
+    <h3><a name="currentnamespace">Current namespace</a></h3>
+    <p>
+      Definitions defined in antlibs may be used in antlibs. However
+      the namespace that definitions are placed in are dependent on
+      the <code>&lt;typedef&gt;</code> that uses the antlib. To deal with this
+      problem, the definitions are placed in the namepace URI <i>ant:current</i>
+      for the duration of the antlib execution.
+      For example the following antlib defines the task <code>&lt;if&gt;</code>, the
+      type <code>&lt;isallowed&gt;</code> and a macro
+      <code>&lt;ifallowed&gt;</code> that makes use of the task and type:
+    </p>
+    <blockquote>
+      <pre>
+&lt;antlib xmlns:current="ant:current"&gt;
+   &lt;taskdef name="if" classname="org.acme.ant.If"/&gt;
+   &lt;typedef name="isallowed" classname="org.acme.ant.Isallowed"/&gt;
+   &lt;macrodef name="ifallowed"&gt;
+      &lt;attribute name="action"/&gt;
+      &lt;element name="do"/&gt;
+      &lt;sequential&gt;
+         &lt;current:if&gt;
+            &lt;current:isallowed test="@{action}"/&gt;
+            &lt;current:then&gt;
+               &lt;do/&gt;
+            &lt;/current:then&gt;
+         &lt;/current:if&gt;
+      &lt;/sequential&gt;
+   &lt;/macrodef&gt;
+&lt;/antlib&gt;
+      </pre>
+    </blockquote>
+
+
+    <h3>Other examples and comments</h3>
+    <p>
+      Antlibs may make use of other antlibs.
+    </p>
+    <p>
+      As the names defined in the antlib are in the namespace uri as
+      specified by the calling <code>&lt;typedef&gt;</code> or by automatic element
+      resolution, one may reuse names from core ant types and tasks,
+      provided the caller uses a namespace uri. For example, the
+      following antlib may be used to define defaults for various
+      tasks:
+    </p>
+    <blockquote>
+      <pre>
+&lt;antlib xmlns:antcontrib="antlib:net.sf.antcontrib"&gt;
+   &lt;presetdef name="javac"&gt;
+      &lt;javac deprecation="${deprecation}"
+             debug="${debug}"/&gt;
+   &lt;/presetdef&gt;
+   &lt;presetdef name="delete"&gt;
+      &lt;delete quiet="yes"/&gt;
+   &lt;/presetdef&gt;
+   &lt;presetdef name="shellscript"&gt;
+      &lt;antcontrib:shellscript shell="bash"/&gt;
+   &lt;/presetdef&gt;
+&lt;/antlib&gt;
+      </pre>
+    </blockquote>
+    <p>
+      This may be used as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;project xmlns:local="localpresets"&gt;
+   &lt;typedef file="localpresets.xml" uri="localpresets"/&gt;
+   &lt;local:shellscript&gt;
+      echo "hello world"
+   &lt;/local:shellscript&gt;
+&lt;/project&gt;
+      </pre>
+    </blockquote>
+    
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/assertions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/assertions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/assertions.html	(revision 14989)
@@ -0,0 +1,208 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Assertions type</title>
+</head>
+
+<body>
+
+<h2><a name="assertions">Assertions</a></h2>
+<p>
+The <tt>assertions</tt> type enables or disables the Java 1.4 assertions feature,
+on a whole Java program, or components of a program. It can be used
+in <a href="../CoreTasks/java.html"><code>&lt;java&gt;</code></a> and
+<a href="../OptionalTasks/junit.html"><code>&lt;junit&gt;</code></a> to add extra validation to code.  
+
+<p>
+Assertions are covered in the 
+<a href="http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html">J2SDK 1.4 documentation</a>,
+and the
+<a href="http://java.sun.com/docs/books/jls/assert-spec.html">Java Language Specification</a>.
+
+<p>
+The key points to note are that a <tt>java.lang.AssertionError</tt>
+is thrown when an assertion fails, and that the facility is only available 
+on Java 1.4 and later. To enable assertions one must set <tt>source="1.4"</tt>
+(or later) in <tt>&lt;javac&gt;</tt> when the source is being compiled, and
+that the code must contain <tt>assert</tt> statements to be tested. The
+result of such an action is code that neither compiles or runs on earlier
+versions of Java. For this reason Ant itself currently contains no assertions.
+<p>
+
+When assertions are enabled (or disabled) in a task through nested 
+assertions elements, the class loader or command line is modified with the 
+appropriate options. This means that the JVM executed must be a Java 1.4
+or later JVM, even if there are no assertions in the code. Attempting to
+enable assertions on earlier VMs will result in an "Unrecognized option" 
+error and the JVM will not start.  
+
+<p>
+<h4>Attributes</h4>
+<p>
+
+
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">enableSystemAssertions</td>
+    <td valign="top">Flag to turn system assertions on or off.</td>
+    <td valign="top" align="center">No; default is "unspecified"</td>
+  </tr>
+</table>
+<p>
+When system assertions have been neither enabled nor disabled, then
+the JVM is not given any assertion information - the default action of the
+ current JVMs is to disable system assertions. 
+<p>
+Note also that there is no apparent documentation for what parts of the
+JRE come with useful assertions.
+
+<h3>Nested elements</h3>
+
+<h4>enable</h4>
+<p>
+Enable assertions in portions of code.
+If neither a package nor class is specified, assertions are turned on in <i>all</i> (user) code.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The name of a class on which to enable assertions.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">
+    The name of a package in which to enable assertions on all classes. (Includes subpackages.)
+    Use "<tt>...</tt>" for the anonymous package.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>disable</h4>
+<p>
+Disable assertions in portions of code.
+
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The name of a class on which to disable assertions.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">
+    The name of a package in which to disable assertions on all classes. (Includes subpackages.)
+    Use "<tt>...</tt>" for the anonymous package.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+
+Because assertions are disabled by default, it only makes sense to disable
+assertions where they have been enabled in a parent package.
+
+
+<h3>Examples</h3>
+
+<h5>Example: enable assertions in all user classes</h5>
+
+All classes not in the JRE (i.e. all non-system classes) will have assertions turned on.
+<pre>
+&lt;assertions&gt;
+  &lt;enable/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: enable a single class</h5>
+
+Enable assertions in a class called Test
+<pre>
+&lt;assertions&gt;
+  &lt;enable class="Test"/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: enable a package</h5>
+
+Enable assertions in the <tt>org.apache</tt> package
+and all packages starting with the <tt>org.apache.</tt> prefix
+<pre>
+&lt;assertions&gt;
+  &lt;enable package="org.apache"/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: System assertions</h5>
+
+Example: enable system assertions and assertions in all <tt>org.apache</tt> packages except
+for Ant (but including <tt>org.apache.tools.ant.Main</tt>)
+<pre>
+&lt;assertions enableSystemAssertions="true"&gt;
+  &lt;enable package="org.apache"/&gt;
+  &lt;disable package="org.apache.tools.ant"/&gt;
+  &lt;enable class="org.apache.tools.ant.Main"/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: disabled and anonymous package assertions</h5>
+
+Disable system assertions; enable those in the anonymous package
+<pre>
+&lt;assertions enableSystemAssertions="false"&gt;
+  &lt;enable package="..."/&gt;
+&lt;/assertions&gt;
+</pre>
+
+
+<h5>Example: referenced assertions</h5>
+
+This type is a datatype, so you can declare assertions and use them later
+
+<pre>
+&lt;assertions id="project.assertions"&gt;
+  &lt;enable package="org.apache.test"/&gt;
+&lt;/assertions&gt;
+
+&lt;assertions refid="project.assertions"/&gt;
+</pre>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/custom-programming.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/custom-programming.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/custom-programming.html	(revision 14989)
@@ -0,0 +1,415 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Custom Components</title>
+  </head>
+  <body>
+    <h2>Custom Components</h2>
+    <h3>Overview</h3>
+    <p>
+      Custom components are conditions, selectors, filters and other
+      objects that are defined outside ant core.
+    </p>
+    <p>
+      In Ant 1.6 custom conditions, selectors and filters has
+      been overhauled.
+    </p>
+    <p>
+      It is now possible to define custom conditions, selectors and filters
+      that behave like Ant Core components.
+      This is achieved by allowing datatypes defined in build scripts
+      to be used as custom components if the class of the datatype
+      is compatible, or has been adapted by an adapter class.
+    </p>
+    <p>
+      The old methods of defining custom components are still supported.
+    </p>
+    <h3>Definition and use</h3>
+    <p>
+      A custom component is a normal Java class that implements a particular
+      interface or extends a  particular class, or has been adapted to the
+      interface or class.
+    </p>
+    <p>
+      It is exactly like writing a
+      <a href="../develop.html#writingowntask">custom task</a>.
+      One defines attributes and nested elements by writing <i>setter</i>
+      methods and <i>add</i> methods.
+    </p>
+    <p>
+      After the class has been written, it is added to the ant system
+      by using <code>&lt;typedef&gt;</code>.
+    </p>
+    <h3><a name="customconditions">Custom Conditions</a></h3>
+    <p>
+      Custom conditions are datatypes that implement
+      <code>org.apache.tools.ant.taskdefs.condition.Condition</code>.
+      For example a custom condition that returns true if a
+      string is all upper case could be written as:
+    </p>
+    <blockquote>
+      <pre>
+package com.mydomain;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.taskdefs.condition.Condition;
+
+public class AllUpperCaseCondition implements Condition {
+    private String value;
+
+    // The setter for the "value" attribute
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // This method evaluates the condition
+    public boolean eval() {
+        if (value == null) {
+            throw new BuildException("value attribute is not set");
+        }
+        return value.toUpperCase().equals(value);
+   }
+}
+      </pre>
+    </blockquote>
+
+    <p>
+        Adding the condition to the system is achieved as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef
+    name="alluppercase"
+    classname="com.mydomain.AllUpperCaseCondition"
+    classpath="${mydomain.classes}"/&gt;
+      </pre>
+    </blockquote>
+    <p>
+      This condition can now be used wherever a Core Ant condition
+      is used.
+    </p>
+    <blockquote>
+      <pre>
+&lt;condition property="allupper"&gt;
+   &lt;alluppercase value="THIS IS ALL UPPER CASE"/&gt;
+&lt;/condition&gt;
+      </pre>
+    </blockquote>
+    <h3><a name="customselectors">Custom Selectors</a></h3>
+    <p>
+      Custom selectors are datatypes that implement
+      <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+    </p>
+    <p>There is only one method required.
+      <code>public boolean isSelected(File basedir, String filename,
+        File file)</code>.
+      It returns true
+      or false depending on whether the given file should be
+      selected or not.
+    </p>
+    <p>
+      An example of a custom selection that selects filenames ending
+      in ".java" would be:
+    </p>
+    <blockquote>
+      <pre>
+package com.mydomain;
+import java.io.File;
+import org.apache.tools.ant.types.selectors.FileSelector;
+public class JavaSelector implements FileSelector {
+    public boolean isSelected(File b, String filename, File f) {
+       return filename.toLowerCase().endsWith(".java");
+    }
+}
+      </pre>
+    </blockquote>
+    <p>
+      Adding the selector to the system is achieved as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef
+    name="javaselector"
+    classname="com.mydomain.JavaSelector"
+    classpath="${mydomain.classes}"/&gt;
+      </pre>
+    </blockquote>
+        <p>
+      This selector can now be used wherever a Core Ant selector
+      is used, for example:
+    </p>
+    <blockquote>
+      <pre>
+&lt;copy todir="to"&gt;
+   &lt;fileset dir="src"&gt;
+      &lt;javaselector/&gt;
+   &lt;/fileset&gt;
+&lt;/copy&gt;
+      </pre>
+    </blockquote>
+
+      <p>
+        One may use
+        <code>org.apache.tools.ant.types.selectors.BaseSelector</code>,
+        a convenience class that provides reasonable default
+        behaviour.
+        It has some predefined behaviours you can take advantage
+        of. Any time you encounter a problem when setting attributes or
+        adding tags, you can call setError(String errmsg) and the class
+        will know that there is a problem. Then, at the top of your
+        <code>isSelected()</code> method call <code>validate()</code> and
+        a BuildException will be thrown with the contents of your error
+        message. The <code>validate()</code> method also gives you a
+        last chance to check your settings for consistency because it
+        calls <code>verifySettings()</code>. Override this method and
+        call <code>setError()</code> within it if you detect any
+        problems in how your selector is set up.
+    </p>
+    <p>
+      To write custom selector containers one should extend
+      <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+      Implement the
+      <code>public boolean isSelected(File baseDir, String filename, File file)</code>
+      method to do the right thing. Chances are you'll want to iterate
+      over the selectors under you, so use
+      <code>selectorElements()</code> to get an iterator that will do
+      that.
+    </p>
+    <p>
+      For example to create a selector container that will select files
+      if a certain number of contained selectors select, one could write
+      a selector as follows:
+    </p>
+    <blockquote>
+      <pre>
+public class MatchNumberSelectors extends BaseSelectorContainer {
+    private int number = -1;
+    public void setNumber(int number) {
+        this.number = number;
+    }
+    public void verifySettings() {
+        if (number &lt; 0) {
+           throw new BuildException("Number attribute should be set");
+        }
+    }
+    public boolean isSelected(File baseDir, String filename, File file) {
+        validate();
+        int numberSelected = 0;
+        for (Enumeration e = selectorElements(); e.hasNextElement();) {
+            FileSelector s = (FileSelector) e.nextElement();
+            if (s.isSelected(baseDir, filename, file)) {
+                numberSelected++;
+            }
+        }
+        return numberSelected == number;
+    }
+}
+      </pre>
+    </blockquote>
+    <p>
+      To define and use this selector one could do:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef name="numberselected"
+         classname="com.mydomain.MatchNumberSelectors"/&gt;
+...
+&lt;fileset dir="${src.path}"&gt;
+   &lt;numberselected number="2"&gt;
+      &lt;contains text="script" casesensitive="no"/&gt;
+      &lt;size value="4" units="Ki" when="more"/&gt;
+      &lt;javaselector/&gt;
+   &lt;/numberselected&gt;
+&lt;/fileset&gt;
+      </pre>
+    </blockquote>
+    <p>
+      <i>The custom selector</i>
+    </p>
+    <p>
+      The custom selector was the pre ant 1.6 way of defining custom selectors.
+      This method is still supported for backward compatibility.
+    </p>
+    <p>You can write your own selectors and use them within the selector
+      containers by specifying them within the <code>&lt;custom&gt;</code> tag.</p>
+
+        <p>To create a new Custom Selector, you have to create a class that
+        implements
+        <code>org.apache.tools.ant.types.selectors.ExtendFileSelector</code>.
+        The easiest way to do that is through the convenience base class
+        <code>org.apache.tools.ant.types.selectors.BaseExtendSelector</code>,
+        which provides all of the methods for supporting
+        <code>&lt;param&gt;</code> tags. First, override the
+        <code>isSelected()</code> method, and optionally the
+        <code>verifySettings()</code> method. If your custom
+        selector requires parameters to be set, you can also override
+        the <code>setParameters()</code> method and interpret the
+        parameters that are passed in any way you like. Several of the
+        core selectors demonstrate how to do that because they can
+        also be used as custom selectors.</p>
+
+
+    <p>Once that is written, you include it in your build file by using
+      the <code>&lt;custom&gt;</code> tag.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">classname</td>
+        <td valign="top">The name of your class that implements
+          <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">classpath</td>
+        <td valign="top">The classpath to use in order to load the
+          custom selector class. If neither this classpath nor the
+          classpathref are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">classpathref</td>
+        <td valign="top">A reference to a classpath previously
+          defined. If neither this reference nor the
+          classpath above are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is how you use <code>&lt;custom&gt;</code> to
+      use your class as a selector:
+    </p>
+
+    <blockquote><pre>
+&lt;fileset dir="${mydir}" includes="**/*"&gt;
+    &lt;custom classname="com.mydomain.MySelector"&gt;
+        &lt;param name="myattribute" value="myvalue"/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+      </pre></blockquote>
+
+
+    <p>The core selectors that can also be used as custom selectors
+      are</p>
+
+    <ul>
+      <li><a href="selectors.html#containsselect">Contains Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.ContainsSelector</code>
+      </li>
+      <li><a href="selectors.html#dateselect">Date Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DateSelector</code>
+      </li>
+      <li><a href="selectors.html#depthselect">Depth Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DepthSelector</code>
+      </li>
+      <li><a href="selectors.html#filenameselect">Filename Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.FilenameSelector</code>
+      </li>
+      <li><a href="selectors.html#sizeselect">Size Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.SizeSelector</code>
+      </li>
+    </ul>
+
+    <p>Here is the example from the Depth Selector section rewritten
+    to use the selector through <code>&lt;custom&gt;</code>.</p>
+
+    <blockquote><pre>
+&lt;fileset dir="${doc.path}" includes="**/*"&gt;
+    &lt;custom classname="org.apache.tools.ant.types.selectors.DepthSelector"&gt;
+        &lt;param name="max" value="1"/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+      </pre></blockquote>
+
+    <p>Selects all files in the base directory and one directory below
+      that.</p>
+
+    <h3><a name="filterreaders">Custom Filter Readers</a></h3>
+    <p>
+      Custom filter readers selectors are datatypes that implement
+      <code>org.apache.tools.ant.types.filters.ChainableReader</code>.
+    </p>
+    <p>There is only one method required.
+      <code>Reader chain(Reader reader)</code>.
+      This returns a reader that filters input from the specified
+      reader.
+    </p>
+    <p>
+      For example a filterreader that removes every second character
+      could be:
+    </p>
+    <blockquote>
+      <pre>
+public class RemoveOddCharacters implements ChainableReader {
+   public Reader chain(Reader reader) {
+      return new BaseFilterReader(reader) {
+          int count = 0;
+          public int read() throws IOException {
+              while (true) {
+                int c = in.read();
+                if (c == -1) {
+                    return c;
+                }
+                count++;
+                if ((count % 2) == 1) {
+                    return c;
+                }
+              }
+          }
+      }
+   }
+}
+      </pre>
+    </blockquote>
+    <p>
+      For line oriented filters it may be easier to extend
+      <code>ChainableFilterReader</code> an inner class of
+      <code>org.apache.tools.ant.filters.TokenFilter</code>.
+    </p>
+    <p>
+      For example a filter that appends the line number could be
+    </p>
+    <blockquote>
+      <pre>
+public class AddLineNumber extends ChainableReaderFilter {
+   private void lineNumber = 0;
+   public String filter(String string) {
+      lineNumber++;
+      return "" + lineNumber + "\t" + string;
+   }
+}
+      </pre>
+    </blockquote>
+
+
+    <hr></hr>
+  </body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/description.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/description.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/description.html	(revision 14989)
@@ -0,0 +1,46 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="description">Description</a></h2>
+<h3>Description</h3>
+<p>Allows for a description of the project to be specified that
+will be included in the output of the <code>ant &#x2011;projecthelp</code>
+command.</p>
+
+<h3>Parameters</h3>
+<p>(none)</p>
+<h3>Examples</h3>
+<pre>  
+&lt;description&gt;
+This buildfile is used to build the Foo subproject within 
+the large, complex Bar project.
+&lt;/description&gt;
+</pre>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/dirset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/dirset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/dirset.html	(revision 14989)
@@ -0,0 +1,127 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>DirSet Type</title>
+</head>
+
+<body>
+
+<h2><a name="dirset">DirSet</a></h2>
+<p>A DirSet is a group of directories. These directories can be found in a
+directory tree starting in a base directory and are matched by
+patterns taken from a number of <a href="patternset.html">PatternSets</a>
+and <a href="selectors.html">Selectors</a>.
+</p>
+<p>PatternSets can be specified as nested
+<code>&lt;patternset&gt;</code> elements. In addition, DirSet holds
+an implicit PatternSet and supports the nested
+<code>&lt;include&gt;</code>, <code>&lt;includesfile&gt;</code>,
+<code>&lt;exclude&gt;</code> and <code>&lt;excludesfile&gt;</code>
+elements of <code>&lt;patternset&gt;</code> directly, as well as
+<code>&lt;patternset&gt;</code>'s attributes.</p>
+<p>Selectors are available as nested elements within the DirSet.
+If any of the selectors within the DirSet do not select the directory, it
+is not considered part of the DirSet. This makes a DirSet
+equivalent to an <code>&lt;and&gt;</code> selector container.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The root of the directory tree of this DirSet.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">A comma- or space-separated list of patterns of directories that
+     must be included; all directories are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">The name of a file; each line of this file is
+      taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">A comma- or space-separated list of patterns of directories that
+     must be excluded; no directories are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">The name of a file; each line of this file is
+      taken to be an exclude pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Specifies whether case-sensitivity should be applied
+     (<code>true</code>|<code>yes</code>|<code>on</code> or
+     <code>false</code>|<code>no</code>|<code>off</code>).</td>
+    <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">followsymlinks</td>
+    <td valign="top">Shall symbolic links be followed? Defaults to
+      true. See <a href="fileset.html#symlink">fileset's documentation</a>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;dirset dir=&quot;${build.dir}&quot;&gt;
+  &lt;include name=&quot;apps/**/classes&quot;/&gt;
+  &lt;exclude name=&quot;apps/**/*Test*&quot;/&gt;
+&lt;/dirset&gt;
+</pre></blockquote>
+<p>Groups all directories named <code>classes</code> found under the
+<code>apps</code> subdirectory of <code>${build.dir}</code>, except those
+that have the text <code>Test</code> in their name.</p>
+<blockquote><pre>
+&lt;dirset dir=&quot;${build.dir}&quot;&gt;
+  &lt;patternset id=&quot;non.test.classes&quot;&gt;
+    &lt;include name=&quot;apps/**/classes&quot;/&gt;
+    &lt;exclude name=&quot;apps/**/*Test*&quot;/&gt;
+  &lt;/patternset&gt;
+&lt;/dirset&gt;
+</pre></blockquote>
+<p>Groups the same directories as the above example, but also establishes
+a PatternSet that can be referenced in other
+<code>&lt;dirset&gt;</code> elements, rooted at a different directory.</p>
+<blockquote><pre>
+&lt;dirset dir=&quot;${debug_build.dir}&quot;&gt;
+  &lt;patternset refid=&quot;non.test.classes&quot;/&gt;
+&lt;/dirset&gt;
+</pre></blockquote>
+<p>Groups all directories in directory <code>${debug_build.dir}</code>,
+using the same patterns as the above example.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/filelist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/filelist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/filelist.html	(revision 14989)
@@ -0,0 +1,120 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FileList Type</title>
+</head>
+
+<body>
+
+<h2><a name="filelist">FileList</a></h2> 
+
+<p>FileLists are explicitly named lists of files.  Whereas FileSets
+act as filters, returning only those files that exist in the file
+system and match specified patterns, FileLists are useful for
+specifying files that may or may not exist.  Multiple files are
+specified as a list of files, relative to the specified directory,
+with no support for wildcard expansion (filenames with wildcards will be
+included in the list unchanged).
+FileLists can appear inside tasks that support this feature or as stand-alone
+types.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The base directory of this FileList.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">files</td>
+    <td valign="top">The list of file names. This is a list of
+    file name separated by whitespace, or by commas.</td>
+    <td valign="top" align="center">
+      Yes, unless there is a nested file element</td>
+  </tr>
+</table>
+  <h4>Nested Element: file</h4>
+  <p>
+    This represents a file name. The nested element allows filenames containing
+    white space and commas.
+  </p>
+  <p><em>Since Ant 1.6.2</em></p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">name</td>
+      <td valign="top">The name of the file.</td>
+      <td valign="top" align="center">Yes</td>
+    </tr>
+</table>  
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;filelist 
+    id=&quot;docfiles&quot; 
+    dir=&quot;${doc.src}&quot;
+    files=&quot;foo.xml,bar.xml&quot;/&gt; 
+</pre></blockquote>
+
+<p>The files <code>${doc.src}/foo.xml</code> and
+<code>${doc.src}/bar.xml</code>.  Note that these files may not (yet)
+actually exist.
+</p>
+
+<blockquote><pre>
+&lt;filelist 
+    id=&quot;docfiles&quot; 
+    dir=&quot;${doc.src}&quot;
+    files=&quot;foo.xml
+           bar.xml&quot;/&gt; 
+</pre></blockquote>
+
+<p>Same files as the example above.</p>
+
+<blockquote><pre>
+&lt;filelist refid=&quot;docfiles&quot;/&gt; 
+</pre></blockquote>
+
+<p>Same files as the example above.</p>
+
+<blockquote><pre>
+&lt;filelist 
+    id=&quot;docfiles&quot; 
+    dir=&quot;${doc.src}&quot;&gt;
+    &lt;file name="foo.xml"/&gt;
+    &lt;file name="bar.xml"/&gt;
+&lt;/filelist&gt;
+</pre></blockquote>
+
+<p>Same files as the example above.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/fileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/fileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/fileset.html	(revision 14989)
@@ -0,0 +1,171 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FileSet Type</title>
+</head>
+
+<body>
+
+<h2><a name="fileset">FileSet</a></h2>
+<p>A FileSet is a group of files. These files can be found in a
+directory tree starting in a base directory and are matched by
+patterns taken from a number of <a
+href="patternset.html">PatternSets</a> and
+<a href="selectors.html">Selectors</a>.
+<p>PatternSets can be specified as nested
+<code>&lt;patternset&gt;</code> elements. In addition, FileSet holds
+an implicit PatternSet and supports the nested
+<code>&lt;include&gt;</code>, <code>&lt;includesfile&gt;</code>,
+<code>&lt;exclude&gt;</code> and <code>&lt;excludesfile&gt;</code>
+elements of PatternSet directly, as well as PatternSet's
+attributes.</p>
+<p>Selectors are available as nested elements within the FileSet.
+If any of the selectors within the FileSet do not select the file, the
+file is not considered part of the FileSet. This makes a FileSet
+equivalent to an <code>&lt;and&gt;</code> selector container.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the root of the directory tree of this FileSet.</td>
+    <td valign="middle" align="center" rowspan="2">Either dir or file must be specified</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">shortcut for specifying a single-file fileset</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether <a href="../dirtasks.html#defaultexcludes">default excludes</a> should be used or not
+      (<code>yes | no</code>); default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included; all files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded; no files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an exclude pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Must the include and exclude patterns be treated in a case sensitive way?
+        Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">followsymlinks</td>
+    <td valign="top">Shall symbolic links be followed? Defaults to
+      true. See the note <a href="#symlink">below</a>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p><a name="symlink"><b>Note</b></a>: All files/directories for which
+the canonical path is different from its path are considered symbolic
+links.  On Unix systems this usually means the file really is a
+symbolic link but it may lead to false results on other
+platforms.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;include name=&quot;**/*.java&quot;/&gt;
+  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups all files in directory <code>${server.src}</code> that are Java
+source files and don't have the text <code>Test</code> in their
+name.</p>
+
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;patternset id=&quot;non.test.sources&quot;&gt;
+    &lt;include name=&quot;**/*.java&quot;/&gt;
+    &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+  &lt;/patternset&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups the same files as the above example, but also establishes
+a PatternSet that can be referenced in other
+<code>&lt;fileset&gt;</code> elements, rooted at a different directory.</p>
+
+<blockquote><pre>
+&lt;fileset dir=&quot;${client.src}&quot; &gt;
+  &lt;patternset refid=&quot;non.test.sources&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups all files in directory <code>${client.src}</code>, using the
+same patterns as the above example.</p>
+
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;filename name=&quot;**/*.java&quot;/&gt;
+  &lt;filename name=&quot;**/*Test*&quot; negate=&quot;true&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups the same files as the top example, but using the
+<code>&lt;filename&gt;</code> selector.</p>
+
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;filename name=&quot;**/*.java&quot;/&gt;
+  &lt;not&gt;
+    &lt;filename name=&quot;**/*Test*&quot;/&gt;
+  &lt;/not&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups the same files as the previous example using a combination of the
+<code>&lt;filename&gt;</code> selector and the <code>&lt;not&gt;</code>
+selector container.</p>
+
+<blockquote><pre>
+&lt;fileset dir="src" includes="main/" /&gt;
+</pre></blockquote>
+<p>Selects all files in <i>src/main</i> (e.g. <i>src/main/Foo.java</i> or 
+<i>src/main/application/Bar.java</i>).</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/filterchain.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/filterchain.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/filterchain.html	(revision 14989)
@@ -0,0 +1,1491 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FilterChains and FilterReaders</title>
+</head>
+
+<body>
+
+<h2>FilterChains and FilterReaders</h2>
+Consider the flexibility of Unix pipes.  If you wanted,
+for example, to copy just those lines that contained the
+string blee from the first 10 lines of a text file 'foo'
+(<em>you wouldn't want to filter a binary file</em>)
+to a file 'bar', you would do something like:<p>
+<code>
+cat foo|head -n10|grep blee &gt; bar
+</code><p>
+Ant was not flexible enough.  There was no way for the
+<code>&lt;copy&gt;</code> task to do something similar.  If you wanted
+the <code>&lt;copy&gt;</code> task to get the first 10 lines, you would have
+had to create special attributes:<p>
+<code>
+&lt;copy file=&quot;foo&quot; tofile=&quot;bar&quot; head=&quot;10&quot; contains=&quot;blee&quot;/&gt;
+</code><p>
+The obvious problem thus surfaced: Ant tasks would not be able
+to accommodate such data transformation attributes as they would
+be endless.  The task would also not know in which order these
+attributes were to be interpreted.  That is, must the task execute the
+contains attribute first and then the head attribute or vice-versa?
+What Ant tasks needed was a mechanism to allow pluggable filter (data
+transformer) chains.  Ant would provide a few filters for which there
+have been repeated requests.  Users with special filtering needs
+would be able to easily write their own and plug them in.<p>
+
+The solution was to refactor data transformation oriented
+tasks to support FilterChains.  A FilterChain is a group of
+ordered FilterReaders.  Users can define their own FilterReaders
+by just extending the java.io.FilterReader class.  Such custom
+FilterReaders can be easily plugged in as nested elements of
+<code>&lt;filterchain&gt;</code> by using <code>&lt;filterreader&gt;</code> elements.
+<p>
+Example:
+<blockquote><pre>
+&lt;copy file=&quot;${src.file}&quot; tofile=&quot;${dest.file}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;your.extension.of.java.io.FilterReader&quot;&gt;
+      &lt;param name=&quot;foo&quot; value=&quot;bar&quot;/&gt;
+    &lt;/filterreader&gt;
+    &lt;filterreader classname=&quot;another.extension.of.java.io.FilterReader&quot;&gt;
+      &lt;classpath&gt;
+        &lt;pathelement path="${classpath}"/&gt;
+      &lt;/classpath&gt;
+      &lt;param name=&quot;blah&quot; value=&quot;blee&quot;/&gt;
+      &lt;param type=&quot;abra&quot; value=&quot;cadabra&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+
+Ant provides some built-in filter readers.  These filter readers
+can also be declared using a syntax similar to the above syntax.
+However, they can be declared using some simpler syntax also.<p>
+Example:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+is equivalent to:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.HeadFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+The following built-in tasks support nested <code>&lt;filterchain&gt;</code> elements.<br>
+<a href="../CoreTasks/concat.html">Concat</a>,<br>
+<a href="../CoreTasks/copy.html">Copy</a>,<br>
+<a href="../CoreTasks/loadfile.html">LoadFile</a>,<br>
+<a href="../CoreTasks/loadproperties.html">LoadProperties</a>,<br>
+<a href="../CoreTasks/move.html">Move</a><br><br>
+
+A FilterChain is formed by defining zero or more of the following
+nested elements.<br>
+<a href="#filterreader">FilterReader</a><br>
+<a href="#classconstants">ClassConstants</a><br>
+<a href="#escapeunicode">EscapeUnicode</a><br>
+<a href="#expandproperties">ExpandProperties</a><br>
+<a href="#headfilter">HeadFilter</a><br>
+<a href="#linecontains">LineContains</a><br>
+<a href="#linecontainsregexp">LineContainsRegExp</a><br>
+<a href="#prefixlines">PrefixLines</a><br>
+<a href="#replacetokens">ReplaceTokens</a><br>
+<a href="#stripjavacomments">StripJavaComments</a><br>
+<a href="#striplinebreaks">StripLineBreaks</a><br>
+<a href="#striplinecomments">StripLineComments</a><br>
+<a href="#tabstospaces">TabsToSpaces</a><br>
+<a href="#tailfilter">TailFilter</a><br>
+<a href="#deletecharacters">DeleteCharacters</a><br>
+<a href="#concatfilter">ConcatFilter</a><br>
+<a href="#tokenfilter">TokenFilter</a><br>
+<a href="../CoreTasks/fixcrlf.html">FixCRLF</a><br>
+
+<h3><a name="filterreader">FilterReader</a></h3>
+
+The filterreader element is the generic way to
+define a filter.  User defined filter elements are
+defined in the build file using this.  Please note that
+built in filter readers can also be defined using this
+syntax.
+
+A FilterReader element must be supplied with a class name as
+an attribute value.  The class resolved by this name must
+extend java.io.FilterReader.  If the custom filter reader
+needs to be parameterized, it must implement
+org.apache.tools.type.Parameterizable.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>classname</td>
+    <td vAlign=top>The class name of the filter reader.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<p>
+<h4>Nested Elements:</h4>
+<code>&lt;filterreader&gt;</code> supports <code>&lt;classpath&gt;</code> and <code>&lt;param&gt;</code>
+as nested elements.  Each <code>&lt;param&gt;</code> element may take in the following
+attributes - name, type and value.
+<p>
+The following FilterReaders are supplied with the default
+distribution.
+
+<h3><a name="classconstants">ClassConstants</a></h3>
+<p>
+  This filters basic constants defined in a Java Class,
+  and outputs them in lines composed of the format <i>name</i>=<i>value</i>.
+  This filter uses the <em>bcel</em> library to understand the Java Class file.
+  See <a href="../install.html#librarydependencies">Library Dependencies</a>.
+<p>
+  <p>
+    <em><b>Important:</b></em>
+    This filter is different from most of the other filters.
+    Most of the filters operate on a sequence of characters.
+    This filter operates on the sequence of bytes that makes up
+    a class. However the bytes arrive to the filter as a sequence
+    of characters. This means that one must be careful on the
+    choice of character encoding to use. Most encoding lose information
+    on conversion from an arbitary sequence of bytes to characters
+    and back again to bytes. In particular the usual default
+    character encodings (CP152 and UTF-8) do.
+    For this reason, <em>since Ant 1.7</em>, the character
+    encoding <b>ISO-8859-1</b> is used to convert from characters back to
+    bytes, so one <b>has</b> to use this encoding for reading the java
+    class file.
+<h4>Example:</h4>
+
+This loads the basic constants defined in a Java class as Ant properties.
+
+<blockquote><pre>
+&lt;loadproperties srcfile="foo.class" encoding="ISO-8859-1"&gt;
+  &lt;filterchain&gt;
+    &lt;classconstants/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</pre></blockquote>
+
+This loads the constants from a Java class file as Ant properties,
+prepending the names with a prefix.
+
+    <blockquote><pre>
+&lt;loadproperties srcfile="build/classes/org/acme/bar.class"
+                encoding="ISO-8859-1"&gt;
+  &lt;filterchain&gt;
+    &lt;classconstants/&gt;
+    &lt;prefixlines prefix="ini."/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</pre></blockquote>
+<h3><a name="escapeunicode">EscapeUnicode</a></h3>
+<p>
+This filter converts its input by changing all non US-ASCII characters
+into their equivalent unicode escape backslash u plus 4 digits.</p>
+
+<p><em>since Ant 1.6</em></p>
+
+<h4>Example:</h4>
+
+This loads the basic constants defined in a Java class as Ant properties.
+<blockquote><pre>
+&lt;loadproperties srcfile=&quot;non_ascii_property.properties&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.EscapeUnicode&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadproperties srcfile=&quot;non_ascii_property.properties&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;escapeunicode/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</pre></blockquote>
+
+<h3><a name="expandproperties">ExpandProperties</a></h3>
+<p>
+If the data contains data that represents Ant
+properties (of the form ${...}), that is substituted
+with the property's actual value.
+<p>
+<h4>Example:</h4>
+
+This results in the property modifiedmessage holding the value
+&quot;All these moments will be lost in time, like teardrops in the rain&quot;
+<blockquote><pre>
+&lt;echo
+  message=&quot;All these moments will be lost in time, like teardrops in the ${weather}&quot;
+  file=&quot;loadfile1.tmp&quot;
+  /&gt;
+&lt;property name=&quot;weather&quot; value=&quot;rain&quot;/&gt;
+&lt;loadfile property=&quot;modifiedmessage&quot; srcFile=&quot;loadfile1.tmp&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.ExpandProperties&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;echo
+  message=&quot;All these moments will be lost in time, like teardrops in the ${weather}&quot;
+  file=&quot;loadfile1.tmp&quot;
+  /&gt;
+&lt;property name=&quot;weather&quot; value=&quot;rain&quot;/&gt;
+&lt;loadfile property=&quot;modifiedmessage&quot; srcFile=&quot;loadfile1.tmp&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;expandproperties/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="headfilter">HeadFilter</a></h3>
+
+This filter reads the first few lines from the data supplied to it.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>lines</td>
+    <td vAlign=top align="center">Number of lines to be read.
+    Defaults to &quot;10&quot; <br> A negative value means that all lines are
+    passed (useful with <i>skip</i>)</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>skip</td>
+    <td vAlign=top align="center">Number of lines to be skipped (from the beginning).
+    Defaults to &quot;0&quot;</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+<h4>Example:</h4>
+
+This stores the first 15 lines of the supplied data in the property src.file.head
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.HeadFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+This stores the first 15 lines, skipping the first 2 lines, of the supplied data
+in the property src.file.head. (Means: lines 3-17)
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot; skip=&quot;2&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+See the testcases for more examples (<i>src\etc\testcases\filters\head-tail.xml</i> in the
+source distribution).
+
+<h3><a name="linecontains">LineContains</a></h3>
+
+This filter includes only those lines that contain all the user-specified
+strings.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Type</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>contains</td>
+    <td vAlign=top align="center">Substring to be searched for.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>negate</td>
+    <td vAlign=top align="center">Whether to select
+      <i>non-</i>matching lines only. <b>Since Ant 1.7</b></td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+<h4>Example:</h4>
+
+This will include only those lines that contain <code>foo</code> and
+<code>bar</code>.
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContains&quot;&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;foo&quot;/&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;bar&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;linecontains&gt;
+  &lt;contains value=&quot;foo&quot;/&gt;
+  &lt;contains value=&quot;bar&quot;/&gt;
+&lt;/linecontains&gt;
+</pre></blockquote>
+
+Negation:
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContains&quot;&gt;
+  &lt;param type=&quot;negate&quot; value=&quot;true&quot;/&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;foo&quot;/&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;bar&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+<i>or</i>
+<blockquote><pre>
+&lt;linecontains negate=&quot;true&quot;&gt;
+  &lt;contains value=&quot;foo&quot;/&gt;
+  &lt;contains value=&quot;bar&quot;/&gt;
+&lt;/linecontains&gt;
+</pre></blockquote>
+
+<h3><a name="linecontainsregexp">LineContainsRegExp</a></h3>
+
+Filter which includes only those lines that contain the user-specified
+regular expression matching strings.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Type</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>regexp</td>
+    <td vAlign=top align="center">Regular expression to be searched for.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>negate</td>
+    <td vAlign=top align="center">Whether to select
+      <i>non-</i>matching lines only. <b>Since Ant 1.7</b></td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+
+See <a href="regexp.html">Regexp Type</a> for the description of the nested element regexp and of
+the choice of regular expression implementation.
+<h4>Example:</h4>
+
+This will fetch all those lines that contain the pattern <code>foo</code>
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContainsRegExp&quot;&gt;
+  &lt;param type=&quot;regexp&quot; value=&quot;foo*&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;linecontainsregexp&gt;
+  &lt;regexp pattern=&quot;foo*&quot;/&gt;
+&lt;/linecontainsregexp&gt;
+</pre></blockquote>
+
+Negation:
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContainsRegExp&quot;&gt;
+  &lt;param type=&quot;negate&quot; value=&quot;true&quot;/&gt;
+  &lt;param type=&quot;regexp&quot; value=&quot;foo*&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+<i>or</i>
+<blockquote><pre>
+&lt;linecontainsregexp negate=&quot;true&quot;&gt;
+  &lt;regexp pattern=&quot;foo*&quot;/&gt;
+&lt;/linecontainsregexp&gt;
+</pre></blockquote>
+
+<h3><a name="prefixlines">PrefixLines</a></h3>
+
+Attaches a prefix to every line.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>prefix</td>
+    <td vAlign=top align="center">Prefix to be attached to lines.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+<p>
+<h4>Example:</h4>
+
+This will attach the prefix <code>Foo</code> to all lines.
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.PrefixLines&quot;&gt;
+  &lt;param name=&quot;prefix&quot; value=&quot;Foo&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;prefixlines prefix=&quot;Foo&quot;/&gt;
+</pre></blockquote>
+
+<h3><a name="replacetokens">ReplaceTokens</a></h3>
+
+This filter reader replaces all strings that are
+sandwiched between begintoken and endtoken with
+user defined values.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Type</b></td>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>tokenchar</td>
+    <td vAlign=top>begintoken</td>
+    <td vAlign=top>Character marking the
+    beginning of a token.  Defaults to @</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>tokenchar</td>
+    <td vAlign=top>endtoken</td>
+    <td vAlign=top>Character marking the
+    end of a token.  Defaults to @</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>token</td>
+    <td vAlign=top>User defined String.</td>
+    <td vAlign=top>User defined search String.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>propertiesfile</td>
+    <td vAlign=top>Not applicable.</td>
+    <td vAlign=top>Properties file to take tokens from.</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+
+<h4>Example:</h4>
+
+This replaces occurrences of the string &#64;DATE&#64; in the data
+with today's date and stores it in the property ${src.file.replaced}
+<blockquote><pre>
+&lt;tstamp/&gt;
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.replaced}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.ReplaceTokens&quot;&gt;
+      &lt;param type=&quot;token&quot; name=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;tstamp/&gt;
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.replaced}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;replacetokens&gt;
+      &lt;token key=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+    &lt;/replacetokens&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+This will treat each properties file entry in sample.properties as a token/key pair :
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.replaced}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.ReplaceTokens&quot;&gt;
+      &lt;param type=&quot;propertiesfile&quot; value=&quot;sample.properties&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+&lt;/filterchain&gt;
+</pre></blockquote>
+
+<h3><a name="stripjavacomments">StripJavaComments</a></h3>
+
+This filter reader strips away comments from the data,
+using Java syntax guidelines.  This filter does not
+take in any parameters.
+<p>
+<h4>Example:</h4>
+
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${java.src.file}&quot; property=&quot;${java.src.file.nocomments}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripJavaComments&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${java.src.file}&quot; property=&quot;${java.src.file.nocomments}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;stripjavacomments/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="striplinebreaks">StripLineBreaks</a></h3>
+
+This filter reader strips away specific characters
+from the data supplied to it.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>linebreaks</td>
+    <td vAlign=top align="center">Characters that are to
+    be stripped out.  Defaults to &quot;\r\n&quot;</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+<h4>Examples:</h4>
+
+This strips the '\r' and '\n' characters.
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.contents}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripLineBreaks&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.contents}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;striplinebreaks/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+This treats the '(' and ')' characters as line break characters and
+strips them.
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.contents}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripLineBreaks&quot;&gt;
+      &lt;param name=&quot;linebreaks&quot; value=&quot;()&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="striplinecomments">StripLineComments</a></h3>
+
+This filter removes all those lines that begin with strings
+that represent comments as specified by the user.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Type</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>comment</td>
+    <td vAlign=top align="center">Strings that identify a line as a comment
+    when they appear at the start of the line.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+<p>
+<h4>Examples:</h4>
+
+This removes all lines that begin with #, --, REM, rem and //
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripLineComments&quot;&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;#&quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;--&quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;REM &quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;rem &quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;//&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;striplinecomments&gt;
+  &lt;comment value=&quot;#&quot;/&gt;
+  &lt;comment value=&quot;--&quot;/&gt;
+  &lt;comment value=&quot;REM &quot;/&gt;
+  &lt;comment value=&quot;rem &quot;/&gt;
+  &lt;comment value=&quot;//&quot;/&gt;
+&lt;/striplinecomments&gt;
+</pre></blockquote>
+
+<h3><a name="tabstospaces">TabsToSpaces</a></h3>
+
+This filter replaces tabs with spaces
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>tablength</td>
+    <td vAlign=top align="center">Defaults to &quot;8&quot;</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+<h4>Examples:</h4>
+
+This replaces tabs in ${src.file} with spaces.
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.notab}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.TabsToSpaces&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.notab}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;tabstospaces/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="tailfilter">TailFilter</a></h3>
+
+This filter reads the last few lines from the data supplied to it.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>lines</td>
+    <td vAlign=top align="center">Number of lines to be read.
+    Defaults to &quot;10&quot; <br> A negative value means that all lines are
+    passed (useful with <i>skip</i>)</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>skip</td>
+    <td vAlign=top align="center">Number of lines to be skipped (from the end).
+    Defaults to &quot;0&quot; </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+
+<h4>Background:</h4>
+With HeadFilter and TailFilter you can extract each part of a text file you want.
+This graphic shows the dependencies:
+
+<table cellSpacing=0 cellPadding=2 border=1>
+<tr>
+ <th> Content </th>
+ <th></th>
+ <th></th>
+ <th></th>
+ <th> Filter </th>
+</tr>
+<tr>
+ <td> Line 1 </td>
+ <td rowspan="2" bgcolor="#C0C0C0">&nbsp;</td>
+ <td rowspan="9" bgcolor="#FF00FF">&nbsp;</td>
+ <td rowspan="4">&nbsp;</td>
+ <td rowspan="11">
+    <table>
+    <tr>
+     <td bgcolor="#C0C0C0">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;headfilter lines="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    <tr>
+     <td bgcolor="#FF00FF">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;tailfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    <tr>
+     <td bgcolor="#008000">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;headfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    <tr>
+     <td bgcolor="#0000FF">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;headfilter lines="-1" skip="2"/&gt;
+    &lt;tailfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    <tr>
+     <td bgcolor="#00FF00">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;tailfilter lines="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    </table>
+ </td>
+</tr>
+<tr>
+ <td> Line 2 </td>
+</tr>
+<tr>
+ <td> Line 3 </td>
+ <td rowspan="9" bgcolor="#008000">&nbsp;</td>
+</tr>
+<tr>
+ <td> Line 4 </td>
+</tr>
+<tr>
+ <td> Line 5 </td>
+ <td rowspan="3" bgcolor="#0000FF">&nbsp;</td>
+</tr>
+<tr>
+ <td> Lines ... </td>
+</tr>
+<tr>
+ <td> Line 95 </td>
+</tr>
+<tr>
+ <td> Line 96 </td>
+ <td rowspan="4">&nbsp;</td>
+</tr>
+<tr>
+ <td> Line 97 </td>
+</tr>
+<tr>
+ <td> Line 98 </td>
+ <td rowspan="2" bgcolor="#00FF00">&nbsp;</td>
+</tr>
+<tr>
+ <td> Line 99 </td>
+</tr>
+</table>
+
+
+
+<h4>Examples:</h4>
+
+This stores the last 15 lines of the supplied data in the property ${src.file.tail}
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.tail}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.TailFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.tail}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;tailfilter lines=&quot;15&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+
+This stores the last 5 lines of the first 15 lines of the supplied
+data in the property ${src.file.mid}
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.mid}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.HeadFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.TailFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;5&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.mid}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot;/&gt;
+    &lt;tailfilter lines=&quot;5&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+
+This stores the last 10 lines, skipping the last 2 lines, of the supplied data
+in the property src.file.head. (Means: if supplied data contains 60 lines,
+lines 49-58 are extracted)
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;tailfilter lines=&quot;10&quot; skip=&quot;2&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="deletecharacters">DeleteCharacters</a></h3>
+
+  <p>This filter deletes specified characters.</p>
+  <p><em>since Ant 1.6</em></p>
+  <p>This filter is only available in the convenience form.</p>
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>chars</td>
+    <td vAlign=top>
+      The characters to delete. This attribute is
+      <a href="#backslash">backslash enabled</a>.
+    </td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+<p>
+<h4>Examples:</h4>
+
+Delete tabs and returns from the data.
+<blockquote><pre>
+&lt;deletecharacters chars="\t\r"/&gt;
+</pre></blockquote>
+
+<h3><a name="concatfilter">ConcatFilter</a></h3>
+  <p>This filter prepends or appends the content file to the filtered files.</p>
+  <p><em>since Ant 1.6</em></p>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>prepend</td>
+    <td vAlign=top>
+      The name of the file which content should be prepended to the file.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>append</td>
+    <td vAlign=top>
+      The name of the file which content should be appended to the file.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+
+<h4>Examples:</h4>
+
+Do nothing:
+<blockquote><pre>
+&lt;filterchain&gt;
+    &lt;concatfilter/&gt;
+&lt;/filterchain&gt;
+</pre></blockquote>
+
+Adds a license text before each java source:
+<blockquote><pre>
+&lt;filterchain&gt;
+    &lt;concatfilter prepend="apache-license-java.txt"/&gt;
+&lt;/filterchain&gt;
+</pre></blockquote>
+
+
+
+<h3><a name="tokenfilter">TokenFilter</a></h3>
+This filter tokenizes the inputstream into strings and passes these
+strings to filters of strings. Unlike the other filterreaders, this does
+not support params, only convenience methods are implemented.
+The tokenizer and the string filters are defined by nested elements.
+<p><em>since Ant 1.6</em></p>
+<p>
+Only one tokenizer element may be used, the LineTokenizer is the
+default if none are specified.  A tokenizer
+splits the input into token strings and trailing delimiter strings.
+<p>
+There may be zero or more string filters. A string filter processes
+a token and either returns a string or a null.
+It the string is not null it is passed to the next filter. This
+proceeds until all the filters are called.
+If a string is returned after all the filters, the string is
+outputs with its associated token delimitier
+(if one is present).
+The trailing delimiter may be overridden by the <i>delimOutput</i>
+attribute.
+<p>
+<a name="backslash"><em>blackslash interpretation</em></a>
+A number of attributes (including <i>delimOutput</i>) interpret
+backslash escapes. The following are understood: \n, \r, \f, \t
+and \\.
+
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>delimOutput</td>
+    <td vAlign=top>
+     This overrides the tokendelimiter
+        returned by the tokenizer if it is not empty. This
+     attribute is backslash enabled.
+</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+
+    The following tokenizers are provided by the default distribution.
+    <p>
+        <a href="#linetokenizer">LineTokenizer</a><br>
+        <a href="#filetokenizer">FileTokenizer</a><br>
+        <a href="#stringtokenizer">StringTokenizer</a><br>
+    </p>
+
+    The following string filters are provided by the default distribution.
+    <p>
+        <a href="#replacestring">ReplaceString</a><br>
+        <a href="#containsstring">ContainsString</a><br>
+        <a href="#replaceregex">ReplaceRegex</a><br>
+        <a href="#containsregex">ContainsRegex</a><br>
+        <a href="#trim">Trim</a><br>
+        <a href="#ignoreblank">IgnoreBlank</a><br>
+        <a href="#filterdeletecharacters">DeleteCharacters</a><br>
+    </p>
+
+    The following string filters are provided by the optional distribution.
+    <p>
+        <a href="#scriptfilter">ScriptFilter</a><br>
+    </p>
+
+Some of the filters may be used directly within a filter chain. In this
+case a tokenfilter is created implicitly. An extra attribute "byline"
+is added to the filter to specify whether to use a linetokenizer
+(byline="true") or a filetokenizer (byline="false"). The default
+is "true".
+<p>
+
+<p><b><em><a name="linetokenizer">LineTokenizer</a></em></b></p>
+This tokenizer splits the input into lines.
+The tokenizer delimits lines
+by "\r", "\n" or "\r\n".
+This is the default tokenizer.
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>includeDelims</td>
+    <td vAlign=top>
+      Include the line endings in the token.
+      Default is false.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<h4>Examples:</h4>
+
+Convert input current line endings to unix style line endings.
+<blockquote><pre>
+&lt;tokenfilter delimoutput=&quot;\n&quot;/&gt;
+</pre></blockquote>
+
+
+Remove blank lines.
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;ignoreblank/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="filetokenizer">FileTokenizer</a></em></b></p>
+This tokenizer treats <b>all</b> the input as a token. So be
+careful not to use this on very large input.
+<h4>Examples:</h4>
+
+Replace the first occurrence of package with //package.
+<blockquote><pre>
+&lt;tokenfilter&gt;
+      &lt;filetokenizer/&gt;
+      &lt;replaceregex pattern="([\n\r]+[ \t]*|^[ \t]*)package"
+                    flags="s"
+                    replace="\1//package"/&gt;
+&lt;/tokenfilter&gt;
+</pre></blockquote>
+
+<p><b><em><a name="stringtokenizer">StringTokenizer</a></em></b></p>
+This tokenizer is based on java.util.StringTokenizer.
+It splits up the input into strings separated by white space, or
+by a specified list of delimiting characters.
+If the stream starts with delimiter characters, the first
+token will be the empty string (unless the <i>delimsaretokens</i>
+attribute is used).
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>delims</td>
+    <td vAlign=top>The delimiter characters. White space
+      is used if this is not set. (White space is defined
+      in this case by java.lang.Character.isWhitespace()).
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">delimsaretokens</td>
+    <td valign="top">If this is true,
+      each delimiter character is returned as a token.
+      Default is false.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressdelims</td>
+    <td valign="top">
+      If this is true, delimiters are not returned.
+      Default is false.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>includeDelims</td>
+    <td vAlign=top>
+      Include the delimiters in the token.
+      Default is false.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Surround each non space token with a "[]".
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;stringtokenizer/&gt;
+    &lt;replaceregex pattern="(.+)" replace="[\1]"/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="replacestring">ReplaceString</a></em></b></p>
+This is a simple filter to replace strings.
+This filter may be used directly within a filterchain.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>from</td>
+    <td vAlign=top>The string that must be replaced.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">to</td>
+    <td valign="top">The new value for the replaced string. When omitted
+      an empty string is used.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Replace "sun" with "moon".
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;replacestring from="sun" to="moon"/&gt;
+&lt;/tokenfilter&gt;
+</pre></blockquote>
+
+<p><b><em><a name="containsstring">ContainsString</a></em></b></p>
+This is a simple filter to filter tokens that contains
+a specified string.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>contains</td>
+    <td vAlign=top>The string that the token must contain.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Include only lines that contain "foo";
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;containsstring contains="foo"/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="replaceregex">ReplaceRegex</a></em></b></p>
+This string filter replaces regular expressions.
+This filter may be used directly within a filterchain.
+<p>
+ See <a href="regexp.html#implementation">Regexp Type</a>
+concerning the choice of the implementation.
+</p>
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>pattern</td>
+    <td vAlign=top>The regular expression pattern to match in
+      the token.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>replace</td>
+    <td vAlign=top>The substitution pattern to replace the matched
+      regular expression. When omitted an empty string is used.</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>flags</td>
+    <td vAlign=top>See
+<a href="../OptionalTasks/replaceregexp.html">ReplaceRegexp</a>
+for an explanation of regex flags.</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<h4>Examples:</h4>
+
+Replace all occurrences of "hello" with "world", ignoring case.
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;replaceregex pattern="hello" replace="world" flags="gi"/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="containsregex">ContainsRegex</a></em></b></p>
+This filters strings that match regular expressions.
+The filter may optionally replace the matched regular expression.
+This filter may be used directly within a filterchain.
+<p>
+See
+<a href="regexp.html#implementation">Regexp Type</a>
+concerning the choice of regular expression implementation.
+</p>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>pattern</td>
+    <td vAlign=top>The regular expression pattern to match in
+      the token.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>replace</td>
+    <td vAlign=top>The substitution pattern to replace the matched
+      regular expression. When omitted the orignal token is returned.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>flags</td>
+    <td vAlign=top>See
+<a href="../OptionalTasks/replaceregexp.html">ReplaceRegexp</a>
+for an explanation of regex flags.</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Filter lines that contain "hello" or "world", ignoring case.
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;containsregex pattern="(hello|world)" flags="i"/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+This example replaces lines like "SUITE(TestSuite, bits);" with
+"void register_bits();" and removes other lines.
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;containsregex
+        pattern="^ *SUITE\(.*,\s*(.*)\s*\).*"
+        replace="void register_\1();"/&gt;
+&lt;/tokenfilter&gt;
+</pre></blockquote>
+
+<p><b><em><a name="trim">Trim</a></em></b></p>
+This filter trims whitespace from the start and end of
+tokens.
+This filter may be used directly within a filterchain.
+<p><b><em><a name="ignoreblank">IgnoreBlank</a></em></b></p>
+This filter removes empty tokens.
+This filter may be used directly within a filterchain.
+<p><b><em><a name="filterdeletecharacters">DeleteCharacters</a></em></b></p>
+This filter deletes specified characters from tokens.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>chars</td>
+    <td vAlign=top>The characters to delete. This attribute
+      is backslash enabled.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Delete tabs from lines, trim the lines and removes empty lines.
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;deletecharacters chars="\t"/&gt;
+    &lt;trim/&gt;
+    &lt;ignoreblank/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="scriptfilter">ScriptFilter</a></em></b></p>
+This is an optional filter that executes a script in a
+<a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+  or
+  <a href="https://scripting.dev.java.net">JSR 223</a>
+supported language.</p>
+See the <a href="../OptionalTasks/script.html">Script</a> task for
+an explanation of scripts and dependencies.
+</p>
+<p>
+The script is provided with an object <i>self</i> that has
+getToken() and setToken(String) methods.
+The getToken() method returns the current token. The setToken(String)
+method replaces the current token.
+</p>
+
+This filter may be used directly within a filterchain.<p>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>language</td>
+    <td vAlign=top> The programming language the script is written in.
+Must be a supported Apache BSF or JSR 223 language</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manager</td>
+    <td valign="top">
+      The script engine manager to use.
+      See the <a href="../OptionalTasks/script.html">script</a> task
+      for using this attribute.
+    </td>
+    <td valign="top" align="center">No - default is "auto"</td>
+  </tr>
+  <tr>
+    <td vAlign=top>src</td>
+    <td vAlign=top>The location of the script as a file, if not inline
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">setbeans</td>
+    <td valign="top">whether to have all properties, references and targets as
+      global variables in the script.</td>
+    <td valign="top" align="center">No, default is "true".</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">
+      The classpath to pass into the script.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+       <a href="../using.html#references">reference</a> to a path defined elsewhere.
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+  <p>
+    This filter can take a nested &lt;classpath&gt; element.
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    on how to use this element.
+  </p>
+<h4>Examples:</h4>
+
+Convert to uppercase:
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;scriptfilter language="javascript"&gt;
+        self.setToken(self.getToken().toUpperCase());
+    &lt;/scriptfilter&gt;
+&lt;/tokenfilter&gt;
+</pre></blockquote>
+
+Remove lines containing the string "bad" while
+copying text files:
+  <blockquote>
+    <pre>
+&lt;copy todir="dist"&gt;
+  &lt;fileset dir="src" includes="**/*.txt"/&gt;
+  &lt;filterchain&gt;
+    &lt;scriptfilter language="beanshell"&gt;
+        if (self.getToken().indexOf("bad") != -1) {
+            self.setToken(null);
+        }
+    &lt;/scriptfilter&gt;
+  &lt;/filterchain&gt;
+&lt;/copy&gt;
+    </pre>
+  </blockquote>
+
+<h4>Custom tokenizers and string filters</h4>
+
+Custom string filters and tokenizers may be plugged in by
+extending the interfaces org.apache.tools.ant.filters.TokenFilter.Filter
+and org.apache.tools.ant.util.Tokenizer respectly.
+
+They are defined the build file using <code>&lt;typedef/&gt;</code>. For
+example a string filter that capitalizes words may be declared as:
+<blockquote><pre>
+package my.customant;
+import org.apache.tools.ant.filters.TokenFilter;
+
+public class Capitalize
+    implements TokenFilter.Filter
+{
+    public String filter(String token) {
+        if (token.length() == 0)
+            return token;
+        return token.substring(0, 1).toUpperCase() +
+                token.substring(1);
+   }
+}
+</pre></blockquote>
+
+This may be used as follows:
+<blockquote><pre>
+  &lt;typedef type="capitalize" classname="my.customant.Capitalize"
+           classpath="my.customant.path"/&gt;
+  &lt;copy file="input" tofile="output"&gt;
+    &lt;filterchain&gt;
+      &lt;tokenfilter&gt;
+        &lt;stringtokenizer/&gt;
+        &lt;capitalize/&gt;
+      &lt;/tokenfilter&gt;
+    &lt;/filterchain&gt;
+  &lt;/copy&gt;
+</pre></blockquote>
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/filterset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/filterset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/filterset.html	(revision 14989)
@@ -0,0 +1,181 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FilterSet Type</title>
+</head>
+
+<body>
+<h2><a name="filterset">FilterSet</a></h2>
+
+<p>FilterSets are groups of filters. Filters can be defined as token-value
+pairs 
+or be read in from a file. FilterSets can appear inside tasks that support this 
+feature or at the same level as <code>&lt;target&gt;</code> - i.e., as
+children of 
+<code>&lt;project&gt;</code>.</p>
+
+<p>FilterSets support the <code>id</code> and <code>refid</code>
+attributes.  You can define a FilterSet with an <code>id</code>
+attribute and then refer to that definition from another FilterSet
+with a <code>refid</code> attribute.  It is also possible to nest
+filtersets into filtersets to get a set union of the contained
+filters.</p>
+
+<p>In addition, FilterSets can specify
+<code>begintoken</code> and/or 
+<code>endtoken</code> attributes to define what to match.</p>
+<p>Filtersets are used for doing 
+replacements in tasks such as <code>&lt;copy&gt;</code>, etc.</p>
+
+<p>
+<strong>Note: </strong>When a filterset is used in an operation, the files are 
+processed in text mode and the filters applied line by line. This means that
+the copy operations will typically corrupt binary files. When applying filters
+you should ensure that the set of files being filtered are all text files.
+</p>
+
+<h2>Filterset</h2>
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top><b>Default</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>begintoken</td>
+    <td vAlign=top>The string marking the beginning of a token (eg.,
+      <code>&#64;DATE&#64;</code>).</td>
+    <td vAlign=top>@</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>endtoken</td>
+    <td vAlign=top>The string marking the end of a token (eg.,
+      <code>&#64;DATE&#64;</code>).</td>
+    <td vAlign=top>@</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>filtersfile</td>
+    <td vAlign=top>Specify a single filtersfile.</td>
+    <td vAlign=top><i>none</i></td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>recurse</td>
+    <td vAlign=top>Indicates whether the replacement text of tokens
+      should be searched for more tokens. <b>Since Ant 1.6.3</b></td>
+    <td vAlign=top><i>true</i></td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>onmissingfiltersfile</td>
+    <td vAlign=top>Indicate behavior when a nonexistent <i>filtersfile</i>
+      is specified.  One of "fail", "warn", "ignore". <b>Since Ant 1.7</b></td>
+    <td vAlign=top>"fail"</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+
+<h2>Filter</h2>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>token</td>
+    <td vAlign=top>The token to replace (eg., <code>&#64;DATE&#64;</code>)</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>value</td>
+    <td vAlign=top>The value to replace it with
+     (eg., <code>Thursday, April 26, 2001</code>).</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<h2>Filtersfile</h2>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>file</td>
+    <td vAlign=top>A properties file of 
+      name-value pairs from which to load the tokens.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<p>You are copying the <code>version.txt</code> file to the <code>dist</code>
+directory from the <code>build</code> directory 
+but wish to replace the token <code>&#64;DATE&#64;</code> with today's date.</p>
+<blockquote><pre>
+&lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
+  &lt;filterset&gt;
+    &lt;filter token=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+  &lt;/filterset&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+
+<p>You are copying the <code>version.txt</code> file to the <code>dist</code>
+directory from the build directory 
+but wish to replace the token <code>%DATE*</code> with today's date.</p>
+<blockquote><pre>
+&lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
+  &lt;filterset begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
+    &lt;filter token=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+  &lt;/filterset&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+
+<p>Copy all the docs but change all dates and appropriate notices as stored in a file.</p>
+<blockquote><pre>
+&lt;copy toDir=&quot;${dist.dir}/docs&quot;&gt;
+  &lt;fileset dir=&quot;${build.dir}/docs&quot;&gt;
+    &lt;include name=&quot;**/*.html&quot;&gt;
+  &lt;/fileset&gt;
+  &lt;filterset begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
+    &lt;filtersfile file=&quot;${user.dir}/dist.properties&quot;/&gt;
+  &lt;/filterset&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+
+<p>Define a FilterSet and reference it later.</p>
+<blockquote><pre>
+&lt;filterset id=&quot;myFilterSet&quot; begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
+  &lt;filter token=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+&lt;/filterset&gt;
+
+&lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
+  &lt;filterset refid=&quot;myFilterSet&quot;/&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/mapper.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/mapper.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/mapper.html	(revision 14989)
@@ -0,0 +1,840 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Mapper Type</title>
+</head>
+
+<body>
+
+<h2><a name="mapper">Mapping File Names</a></h2>
+<p>Some tasks take source files and create target files. Depending on
+the task, it may be quite obvious which name a target file will have
+(using <a href="../CoreTasks/javac.html">javac</a>, you know there will be
+<code>.class</code> files for your <code>.java</code> files) - in
+other cases you may want to specify the target files, either to help
+Ant or to get an extra bit of functionality.</p>
+<p>While source files are usually specified as <a
+href="fileset.html">fileset</a>s, you don't specify target files directly -
+instead, you tell Ant how to find the target file(s) for one source file. An
+instance of <code>org.apache.tools.ant.util.FileNameMapper</code> is
+responsible for this. It constructs target file names based on rules
+that can be parameterized with <code>from</code> and <code>to</code>
+attributes - the exact meaning of which is implementation-dependent.</p>
+<p>These instances are defined in <code>&lt;mapper&gt;</code> elements
+with the following attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">specifies one of the built-in implementations.</td>
+    <td rowspan="2" align="center" valign="middle">Exactly one of these</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">specifies the implementation by class name.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up
+      <code>classname</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use, given as <a
+      href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">the <code>from</code> attribute for the given
+      implementation.</td>
+    <td align="center" valign="top">Depends on implementation.</td>
+  </tr>
+  <tr>
+    <td valign="top">to</td>
+    <td valign="top">the <code>to</code> attribute for the given
+      implementation.</td>
+    <td align="center" valign="top">Depends on implementation.</td>
+  </tr>
+</table>
+<p>Note that Ant will not automatically convert / or \ characters in
+the <code>to</code> and <code>from</code> attributes to the correct
+directory separator of your current platform.  If you need to specify
+this separator, use <code>${file.separator}</code> instead.
+  For the regexpmapper, <code>${file.separator}</code> will not work,
+as on windows it is the '\' character, and this is an escape character
+for regular expressions, one should use the <code>handledirsep</code> attribute
+instead.
+</p>
+<h3>Parameters specified as nested elements</h3>
+<p>The classpath can be specified via a nested
+<code>&lt;classpath&gt;</code>, as well - that is,
+a <a href="../using.html#path">path</a>-like structure.</p>
+<p><b>Since Ant 1.6.2,</b> nested File Mappers can
+be supplied via either <CODE>&lt;mapper&gt;</CODE> elements or
+<a href="../CoreTasks/typedef.html"><code>&lt;typedef&gt;</code></a>'d
+implementations of <CODE>org.apache.tools.ant.util.FileNameMapper</CODE>.
+If nested File Mappers are specified by either means, the mapper will be
+implicitly configured as a <a href="#composite-mapper">composite mapper</a>.
+</p>
+<hr>
+<h3>The built-in mapper types are:</h3>
+<p>All built-in mappers are case-sensitive.</p>
+<p><b>As of Ant 1.6.2,</b> each of the built-in mapper implementation
+  types is directly accessible using a specific tagname. This makes it
+  possible for filename mappers to support attributes in addition to
+  the generally available <i>to</i> and <i>from</i>.<br>
+  The <code>&lt;mapper type|classname=&quot;...&quot;&gt;</code> usage
+  form remains valid for reasons of backward compatibility.</p>
+<h4><a name="identity-mapper">identity</a></h4>
+<p>The target file name is identical to the source file name. Both
+<code>to</code> and <code>from</code> will be ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;identity&quot;/&gt;
+&lt;identitymapper/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>C.properties</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+  </tr>
+</table>
+<h4><a name="flatten-mapper">flatten</a></h4>
+<p>The target file name is identical to the source file name, with all
+leading directory information stripped off. Both <code>to</code> and
+<code>from</code> will be ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;flatten&quot;/&gt;
+&lt;flattenmapper/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>B.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>C.properties</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>A.properties</code></td>
+  </tr>
+</table>
+<h4><a name="merge-mapper">merge</a></h4>
+<p>The target file name will always be the same, as defined by
+<code>to</code> - <code>from</code> will be ignored.</p>
+<h5>Examples:</h5>
+<blockquote><pre>
+&lt;mapper type=&quot;merge&quot; to=&quot;archive.tar&quot;/&gt;
+&lt;mergemapper to=&quot;archive.tar&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+</table>
+<h4><a name="glob-mapper">glob</a></h4>
+<p>Both <code>to</code> and <code>from</code> define patterns that may
+contain at most one <code>*</code>. For each source file that matches
+the <code>from</code> pattern, a target file name will be constructed
+from the <code>to</code> pattern by substituting the <code>*</code> in
+the <code>to</code> pattern with the text that matches the
+<code>*</code> in the <code>from</code> pattern. Source file names
+that don't match the <code>from</code> pattern will be ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.java.bak&quot;/&gt;
+&lt;globmapper from=&quot;*.java&quot; to=&quot;*.java.bak&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/B.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type=&quot;glob&quot; from=&quot;C*ies&quot; to=&quot;Q*y&quot;/&gt;
+&lt;globmapper from=&quot;C*ies&quot; to=&quot;Q*y&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>Q.property</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>Qlasses/dir/dir2/A.property</code></td>
+  </tr>
+</table>
+  <p>
+    The globmapper mapper can take the following extra attributes.
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">casesensitive</td>
+      <td valign="top">
+        If this is false, the mapper will ignore case when matching the glob pattern.
+        This attribute can be true or false, the default is true.
+      <em>Since Ant 1.6.3.</em>
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">handledirsep</td>
+      <td valign="top">
+        If this is specified, the mapper will ignore the difference between the normal
+        directory separator characters - \ and /.
+        This attribute can be true or false, the default is false.
+        This attribute is useful for cross-platform build files.
+        <em>Since Ant 1.6.3.</em>
+        <td align="center" valign="top">No</td>
+      </tr>
+    </table>
+    <p>
+      An example:
+    </p>
+    <pre>
+      &lt;pathconvert property="x" targetos="unix"&gt;
+        &lt;path path="Aj.Java"/&gt;
+        &lt;mapper&gt;
+        &lt;chainedmapper&gt;
+          &lt;flattenmapper/&gt;
+          &lt;globmapper from="a*.java" to="*.java.bak" casesensitive="no"/&gt;
+        &lt;/chainedmapper&gt;
+        &lt;/mapper&gt;
+      &lt;/pathconvert&gt;
+      &lt;echo&gt;x is ${x}&lt;/echo&gt;
+    </pre>
+    <p>
+      will output "x is j.java.bak".
+    </p>
+    <p>
+      and
+    </p>
+    <pre>
+      &lt;pathconvert property="x" targetos="unix"&gt;
+        &lt;path path="d/e/f/j.java"/&gt;
+        &lt;mapper&gt;
+          &lt;globmapper from="${basedir}\d/e\*" to="*" ignoredirchar="yes"/&gt;
+        &lt;/mapper&gt;
+      &lt;/pathconvert&gt;
+      &lt;echo&gt;x is ${x}&lt;/echo&gt;
+    </pre>
+    <p>
+      will output "x is f/j.java".
+    </p>
+
+<h4><a name="regexp-mapper">regexp</a></h4>
+<p>Both <code>to</code> and <code>from</code> define regular
+expressions. If the source file name matches the <code>from</code>
+pattern, the target file name will be constructed from the
+<code>to</code> pattern, using <code>\0</code> to <code>\9</code> as
+back-references for the full
+match (<code>\0</code>) or the matches of the subexpressions in
+parentheses.
+Source
+files not matching the <code>from</code> pattern will be ignored.</p>
+<p>Note that you need to escape a dollar-sign (<code>$</code>) with
+another dollar-sign in Ant.</p>
+<p>The regexp mapper needs a supporting library and an implementation
+of <code>org.apache.tools.ant.util.regexp.RegexpMatcher</code> that
+hides the specifics of the library. Ant comes with implementations for
+<a href="http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html"  target="_top">the java.util.regex package of JDK 1.4 or higher</a>,
+<a href="http://jakarta.apache.org/regexp/" target="_top">jakarta-regexp</a> and <a
+href="http://jakarta.apache.org/oro/" target="_top">jakarta-ORO</a>. If you compile
+from sources and plan to use one of them, make sure the libraries are
+in your <code>CLASSPATH</code>. For information about using <a
+href="http://www.cacas.org/~wes/java/" target="_top">gnu.regexp</a> or <a
+href="http://www.crocodile.org/~sts/Rex/" target="_top">gnu.rex</a> with Ant, see <a
+href="http://marc.theaimsgroup.com/?l=ant-dev&m=97550753813481&w=2" target="_top">this</a>
+article.</p>
+<p>This means, you need one of the supported regular expression
+  libraries <strong>and</strong>
+  the corresponding <code>ant-[jakarta-oro, jakarta-regexp, apache-oro, apache-regexp}.jar</code>
+from the Ant release you are using.
+Make sure, both will be loaded from the same
+classpath, that is either put them into your <code>CLASSPATH</code>,
+<code>ANT_HOME/lib</code> directory or a nested
+<code>&lt;classpath&gt;</code> element of the mapper - you cannot have
+<code>ant-[jakarta-oro, jakarta-regexp, apache-oro, apache-regexp].jar</code> in <code>ANT_HOME/lib</code>
+ and the library
+in a nested <code>&lt;classpath&gt;</code>.</p>
+<p>Ant will choose the regular-expression library based on the
+following algorithm:</p>
+<ul>
+<li>If the system property
+<code>ant.regexp.matcherimpl</code> has been set, it is taken as the
+name of the class implementing
+<code>org.apache.tools.ant.util.regexp.RegexpMatcher</code> that
+should be used.</li>
+<li>If it has not been set, first try the JDK 1.4 classes, then
+jakarta-ORO and finally try jakarta-regexp.</li>
+</ul>
+
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)\.java$$&quot; to=&quot;\1.java.bak&quot;/&gt;
+&lt;regexpmapper from=&quot;^(.*)\.java$$&quot; to=&quot;\1.java.bak&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/B.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)/([^/]+)/([^/]*)$$&quot; to=&quot;\1/\2/\2-\3&quot;/&gt;
+&lt;regexpmapper from=&quot;^(.*)/([^/]+)/([^/]*)$$&quot; to=&quot;\1/\2/\2-\3&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/bar-B.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>Classes/dir/dir2/dir2-A.properties</code></td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type="regexp" from="^(.*)\.(.*)$$" to="\2.\1"/&gt;
+&lt;regexpmapper from="^(.*)\.(.*)$$&" to="\2.\1"/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>java.A</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>java.foo/bar/B</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>properties.C</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>properties.Classes/dir/dir2/A</code></td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type="regexp" from="^(.*?)(\$$[^/\\\.]*)?\.class$$" to="\1.java"/&gt;
+&lt;regexpmapper from="^(.*?)(\$$[^/\\\.]*)?\.class$$" to="\1.java"/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>ClassLoader.class</code></td>
+    <td valign="top"><code>ClassLoader.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>java/lang/ClassLoader.class</code></td>
+    <td valign="top"><code>java/lang/ClassLoader.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>java\lang\ClassLoader$1.class</code></td>
+    <td valign="top"><code>java\lang\ClassLoader.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>java/lang/ClassLoader$foo$1.class</code></td>
+    <td valign="top"><code>java/lang/ClassLoader.java</code></td>
+  </tr>
+</table>
+  <p>
+    The regexpmapper mapper can take the following extra attributes.
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">casesensitive</td>
+      <td valign="top">
+        If this is false, the mapper will ignore case when matching the pattern.
+        This attribute can be true or false, the default is true.
+      <em>Since Ant 1.6.3.</em>
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">handledirsep</td>
+      <td valign="top">
+        If this is specified, the mapper will treat a \ character in a filename
+        as a / for the purposes of matching.
+        This attribute can be true or false, the default is false.
+        This attribute is useful for cross-platform build files.
+        <em>Since Ant 1.6.3.</em>
+        <td align="center" valign="top">No</td>
+      </tr>
+    </table>
+    <p>
+      An example:
+    </p>
+    <pre>
+      &lt;pathconvert property="x" targetos="unix"&gt;
+        &lt;path path="Aj.Java"/&gt;
+        &lt;chainedmapper&gt;
+          &lt;flattenmapper/&gt;
+          &lt;regexpmapper from="a(.*)\.java" to="\1.java.bak" casesensitive="no"/&gt;
+        &lt;/chainedmapper&gt;
+      &lt;/pathconvert&gt;
+      &lt;echo&gt;x is ${x}&lt;/echo&gt;
+    </pre>
+    <p>
+      will output "x is j.java.bak".
+    </p>
+    <p>
+      and
+    </p>
+    <pre>
+    &lt;pathconvert property="hd.prop" targetos="windows"&gt;
+      &lt;path path="d\e/f\j.java"/&gt;
+      &lt;chainedmapper&gt;
+        &lt;regexpmapper from="${basedir}/d/e/(.*)" to="\1" handledirsep="yes"/&gt;
+      &lt;/chainedmapper&gt;
+    &lt;/pathconvert&gt;
+    </pre>
+    <p>
+      will set <code>hd.prop</code> to "f\j.java".
+    </p>
+<h4><a name="package-mapper">package</a></h4>
+<p>Sharing the same syntax as the <a href="#glob-mapper">glob mapper</a>,
+the package mapper replaces
+directory separators found in the matched source pattern with dots in the target
+pattern placeholder. This mapper is particularly useful in combination
+with <code>&lt;uptodate&gt;</code> and <code>&lt;junit&gt;</code> output.</p>
+<b>Example:</b>
+<blockquote><pre>
+&lt;mapper type="package" from="*Test.java" to="TEST-*Test.xml"/&gt;
+&lt;packagemapper from="*Test.java" to="TEST-*Test.xml"/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/tools/ant/util/PackageMapperTest.java</code></td>
+    <td valign="top"><code>TEST-org.apache.tools.ant.util.PackageMapperTest.xml</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/tools/ant/util/Helper.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+</table>
+<h4><a name="unpackage-mapper">unpackage (since Ant 1.6.0)</a></h4>
+  <p>This mapper is the inverse of the <a href="#package-mapper">package</a> mapper.
+    It replaces the dots in a package name with directory separators. This
+    is useful for matching XML formatter results against their JUnit test
+    test cases. The mapper shares the sample syntax
+    as the <a href="#glob-mapper">glob mapper</a>.
+  </p>
+<b>Example:</b>
+<blockquote><pre>
+&lt;mapper type="unpackage" from="TEST-*Test.xml" to="${test.src.dir}/*Test.java"&gt;
+&lt;unpackagemapper from="TEST-*Test.xml" to="${test.src.dir}/*Test.java"&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>TEST-org.acme.AcmeTest.xml</code></td>
+    <td valign="top"><code>${test.src.dir}/org/acme/AcmeTest.java</code></td>
+  </tr>
+</table>
+<h4><a name="composite-mapper">composite (since Ant 1.6.2)</a></h4>
+  <p>This mapper implementation can contain multiple nested mappers.
+    File mapping is performed by passing the source filename to each nested
+    <code>&lt;mapper&gt;</code> in turn, returning all results.
+    The <i>to</i> and <i>from</i> attributes are ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;compositemapper&gt;
+  &lt;identitymapper/&gt;
+  &lt;packagemapper from="*.java" to="*"/&gt;
+&lt;/compositemapper&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center" rowspan="2"><code>foo/bar/A.java</code></td>
+    <td valign="top"><code>foo/bar/A.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo.bar.A</code></td>
+  </tr>
+</table>
+  <p>The composite mapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+<h4><a name="chained-mapper">chained (since Ant 1.6.2)</a></h4>
+  <p>This mapper implementation can contain multiple nested mappers.
+    File mapping is performed by passing the source filename to the first
+    nested mapper, its results to the second, and so on.  The target filenames
+    generated by the last nested mapper comprise the ultimate results of the
+    mapping operation.  The <i>to</i> and <i>from</i> attributes are ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;chainedmapper&gt;
+  &lt;flattenmapper/&gt;
+  &lt;globmapper from="*" to="new/path/*"/&gt;
+  &lt;mapper&gt;
+    &lt;globmapper from="*" to="*1"/&gt;
+    &lt;globmapper from="*" to="*2"/&gt;
+  &lt;/mapper&gt;
+&lt;/chainedmapper&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center" rowspan="2"><code>foo/bar/A.java</code></td>
+    <td valign="top"><code>new/path/A.java1</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>new/path/A.java2</code></td>
+  </tr>
+  <tr>
+    <td valign="center" rowspan="2"><code>boo/far/B.java</code></td>
+    <td valign="top"><code>new/path/B.java1</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>new/path/B.java2</code></td>
+  </tr>
+</table>
+  <p>The chained mapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+
+    <!--                                        -->
+    <!--             Filter Mapper              -->
+    <!--                                        -->
+
+<h4><a name="filter-mapper">filtermapper (since Ant 1.6.3)</a></h4>
+    <p>
+      This mapper implementation applies a <a href="filterchain.html">filterchain</a>
+      to the source file name.
+    </p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;filtermapper&gt;
+  &lt;replacestring from="\" to="/"/&gt;
+&lt;/filtermapper&gt;
+</pre></blockquote>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center"><code>foo\bar\A.java</code></td>
+    <td valign="top"><code>foo/bar/A.java</code></td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;filtermapper&gt;
+  &lt;scriptfilter language="beanshell"&gt;
+    self.setToken(self.getToken().toUpperCase());
+  &lt;/scriptfilter&gt;
+&lt;/filtermapper&gt;
+</pre></blockquote>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center"><code>foo\bar\A.java</code></td>
+    <td valign="top"><code>FOO\BAR\A.JAVA</code></td>
+  </tr>
+</table>
+
+  <p>The filtermapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+
+    <!--                                        -->
+    <!--             Script Mapper              -->
+    <!--                                        -->
+
+<h4><a name="script-mapper">scriptmapper (since Ant 1.7)</a></h4>
+<p>
+This mapper executes a script written in <a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+or
+  <a href="https://scripting.dev.java.net">JSR 223</a>
+supported language, once per file to map.</p>
+The script can be declared inline or in a specified file.
+</p>
+<p>
+See the <a href="../OptionalTasks/script.html">Script</a> task for
+an explanation of scripts and dependencies.
+</p>
+
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">language</td>
+      <td valign="top">
+        Scripting language
+      </td>
+      <td align="center" valign="top">Yes</td>
+    </tr>
+    <tr>
+      <td valign="top">manager</td>
+      <td valign="top">
+        The script engine manager to use.
+        See the <a href="../OptionalTasks/script.html">script</a> task
+        for using this attribute.
+      </td>
+      <td valign="top" align="center">No - default is "auto"</td>
+    </tr>
+    <tr>
+      <td valign="top">src</td>
+      <td valign="top">
+        File containing the script
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">setbeans</td>
+      <td valign="top">whether to have all properties, references and targets as
+        global variables in the script.</td>
+      <td valign="top" align="center">No, default is "true".</td>
+    </tr>
+    <tr>
+      <td valign="top">classpath</td>
+      <td valign="top">
+        The classpath to pass into the script.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">classpathref</td>
+      <td valign="top">The classpath to use, given as a
+        <a href="../using.html#references">reference</a> to a path defined elsewhere.
+        <td align="center" valign="top">No</td>
+      </tr>
+    </table>
+  <p>
+    This filename mapper can take a nested &lt;classpath&gt; element.
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    on how to use this element.
+  </p>
+
+<p>
+  <b>Example:</b>
+</p>
+<blockquote><pre>
+&lt;scriptmapper language="javascript"&gt;
+  self.addMappedName(source.toUpperCase());
+  self.addMappedName(source.toLowerCase());
+&lt;/scriptmapper&gt;
+</pre></blockquote>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center"><code>foo\bar\A.java</code></td>
+    <td valign="top"><code>FOO\BAR\A.JAVA foo\bar\a.java</code></td>
+  </tr>
+</table>
+
+<p>
+To use this mapper, the scripts need access to the source file,
+and the ability to return multiple mappings. Here are the relevant beans and
+their methods. The script is called once for every source file, with the
+list of mapped names reset after every invocation.
+
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Script bean</b></td>
+      <td valign="top"><b>Description</b></td>
+    </tr>
+    <tr>
+      <td valign="top"><code>source: String</code></td>
+      <td valign="top">
+        The file/path to map
+      </td>
+    </tr>
+    <tr>
+      <td valign="top">self</td>
+      <td valign="top">
+        the scriptmapper itself
+      </td>
+    </tr>
+    <tr>
+      <td valign="top"><code>self.addMappedName(String name)</code></td>
+      <td valign="top">
+        Add a new mapping
+      </td>
+    </tr>
+    <tr>
+      <td valign="top"><code>self.clear()</code></td>
+      <td valign="top">
+        Reset the list of files.
+      </td>
+    </tr>
+    </table>
+
+  <p>The scriptmapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/namespace.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/namespace.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/namespace.html	(revision 14989)
@@ -0,0 +1,220 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html><head><link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XmlNamespaceSupport</title></head>
+  <body>
+    <h2><a name="namespace">XML Namespace Support</a></h2>
+    Ant 1.6 introduces support for XML namespaces. 
+    <h3>History</h3>
+    
+    <p>
+      All releases of Ant prior to Ant 1.6 do not support XML namespaces.
+      No support basically implies two things here:
+    </p>
+    <ul>
+      <li> Element names correspond to the "qname" of the tags, which is
+        usually the same as the local name. But if the build file writer uses
+        colons in names of defined tasks/types, those become part of the
+        element name. Turning on namespace support gives colon-separated
+        prefixes in tag names a special meaning, and thus build files using
+        colons in user-defined tasks and types will break.
+      </li>
+      <li> Attributes with the names 'xmlns' and 'xmlns:<code>&lt;prefix&gt;</code>'
+        are not treated specially, which means that custom tasks and types have
+        actually been able to use such attributes as parameter names. Again,
+        such tasks/types are going to break when namespace support is enabled
+        on the parser.
+      </li>
+    </ul>
+    <p>Use of colons in element names has been discouraged in the past,
+      and using any attribute starting with "xml" is actually strongly
+      discouraged by the XML spec to reserve such names for future use.
+    </p>
+    <h3>Motivation</h3>
+
+    <p>In build files using a lot of custom and third-party tasks, it is
+      easy to get into name conflicts. When individual types are defined, the
+      build file writer can do some namespacing manually (for example, using
+      "tomcat-deploy" instead of just "deploy"). But when defining whole
+      libraries of types using the <code>&lt;typedef&gt;</code> 'resource' attribute, the
+      build file writer has no chance to override or even prefix the names
+      supplied by the library. </p>
+    <h3>Assigning Namespaces</h3>
+
+    <p>
+      Adding a 'prefix' attribute to <code>&lt;typedef&gt;</code> might have been enough,
+      but XML already has a well-known method for namespacing. Thus, instead
+      of adding a 'prefix' attribute, the <code>&lt;typedef&gt;</code> and <code>&lt;taskdef&gt;</code>
+      tasks get a 'uri' attribute, which stores the URI of the XML namespace
+      with which the type should be associated:
+    </p><pre> &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+ &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+    ...
+ &lt;/my:task&gt;
+</pre>
+    <p>As the above example demonstrates, the namespace URI needs to be
+      specified at least twice: one time as the value of the 'uri' attribute,
+      and another time to actually map the namespace to occurrences of
+      elements from that namespace, by using the 'xmlns' attribute. This
+      mapping can happen at any level in the build file:
+    </p><pre> &lt;project name="test" xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt; 
+   &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+   &lt;my:task&gt;
+     ...
+   &lt;/my:task&gt;
+ &lt;/project&gt;
+</pre>
+    <p>
+      Use of a namespace prefix is of course optional. Therefore
+      the example could also look like this:
+    </p><pre> &lt;project name="test"&gt; 
+   &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+   &lt;task xmlns="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+     ...
+   &lt;/task&gt;
+ &lt;/project&gt;
+</pre>
+    <p>
+      Here, the namespace is set as the default namespace for the <code>&lt;task&gt;</code>
+      element and all its descendants.
+    </p>
+    <h3>Default namespace</h3>
+    <p>
+      The default namespace used by Ant is "antlib:org.apache.tools.ant".
+    </p>
+    <pre>
+&lt;typedef resource="org/example/tasks.properties" uri="antlib:org.apache.tools.ant"/&gt;
+&lt;task&gt;
+      ....
+&lt;/task&gt;
+    </pre>
+
+     
+
+    <h3>Namespaces and Nested Elements</h3>
+
+    <p>
+      Almost always in Ant 1.6, elements nested inside a namespaced
+      element have the same namespace as their parent. So if 'task' in the
+      example above allowed a nested 'config' element, the build file snippet
+      would look like this:
+    </p><pre> &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+ &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;my:config a="foo" b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+    <p>If the element allows or requires a lot of nested elements, the
+      prefix needs to be used for every nested element. Making the namespace
+      the default can reduce the verbosity of the script:
+    </p><pre> &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+          &lt;task xmlns="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+          &lt;config a="foo" b="bar"/&gt;
+   ...
+          &lt;/task&gt;
+        </pre>
+    <p>
+      From Ant 1.6.2, elements nested inside a namespaced element may also be
+      in Ant's default namespace. This means that the following is now allowed:
+    </p>
+    </p><pre> &lt;typedef resource="org/example/tasks.properties"
+   uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+ &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;config a="foo" b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+      
+    <h3>Namespaces and Attributes</h3>
+
+    <p>
+      Attributes are only used to configure the element they belong to if:
+    </p>
+    <ul>
+      <li> they have no namespace (note that the default namespace does *not* apply to attributes)
+      </li>
+      <li> they are in the same namespace as the element they belong to
+      </li>
+    </ul>
+    <p>
+      Other attributes are simply ignored.
+    </p>
+    <p>
+      This means that both:
+    </p>
+    <p>
+    </p><pre> &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;my:config a="foo" b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+    <p>
+      and
+    </p>
+    <pre> &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;my:config my:a="foo" my:b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+    <p>
+      result in the parameters "a" and "b" being used as parameters to configure the nested "config" element.
+    </p>
+    <p>It also means that you can use attributes from other namespaces
+      to markup the build file with extra metadata, such as RDF and
+      XML-Schema (whether that's a good thing or not). The same is not true
+      for elements from unknown namespaces, which result in a error.
+    </p>
+    <h3>Mixing Elements from Different Namespaces</h3>
+
+    <p>Now comes the difficult part: elements from different namespaces can
+      be woven together under certain circumstances. This has a lot to do
+      with the Ant 1.6
+      <a href="../develop.html#nestedtype">add type introspection rules</a>:
+      Ant types and tasks are now free to accept arbritrary named types as
+      nested elements, as long as the concrete type implements the interface
+      expected by the task/type. The most obvious example for this is the
+      <code>&lt;condition&gt;</code> task, which supports various nested conditions, all
+      of which extend the interface <tt>Condition</tt>. To integrate a
+      custom condition in Ant, you can now simply <code>&lt;typedef&gt;</code> the
+      condition, and then use it anywhere nested conditions are allowed
+      (assuming the containing element has a generic <tt>add(Condition)</tt> or <tt>addConfigured(Condition)</tt> method):
+</p><pre> &lt;typedef resource="org/example/conditions.properties" uri="<a href="http://example.org/conditions">http://example.org/conditions</a>"/&gt;
+ &lt;condition property="prop" xmlns="<a href="http://example.org/conditions">http://example.org/conditions</a>"&gt;
+   &lt;and&gt;
+     &lt;available file="bla.txt"/&gt;
+     &lt;my:condition a="foo"/&gt;
+   &lt;/and&gt;
+ &lt;/condition&gt;
+</pre>
+    <p>
+      In Ant 1.6, this feature cannot be used as much as we'd all like to: a
+      lot of code has not yet been adapted to the new introspection rules,
+      and elements like Ant's built-in conditions and selectors are not
+      really types in 1.6. This is expected to change in Ant 1.7.
+    </p>
+    <h3>Namespaces and Antlib</h3>
+
+    <p>
+      The new <a href="antlib.html">AntLib</a>
+      feature is also very much integrated with the namespace support in Ant
+      1.6. Basically, you can "import" Antlibs simply by using a special
+      scheme for the namespace URI: the <tt>antlib</tt> scheme, which expects the package name in which a special <tt>antlib.xml</tt> file is located.
+    </p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/patternset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/patternset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/patternset.html	(revision 14989)
@@ -0,0 +1,186 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PatternSet Type</title>
+</head>
+
+<body>
+
+<h2><a name="patternset">PatternSet</a></h2>
+<p><a href="../dirtasks.html#patterns">Patterns</a> can be grouped to
+sets and later be referenced by their <code>id</code> attribute. They
+are defined via a <code>patternset</code> element, which can appear
+nested into a <a href="fileset.html">FileSet</a> or a directory-based
+task that constitutes an implicit FileSet. In addition,
+<code>patternset</code>s can be defined as a stand alone element at
+the same level as <code>target</code> &#151; i.e., as children of
+<code>project</code> as well as as children of
+<code>target</code>.</p> <p>Patterns can be specified by nested
+<code>&lt;include&gt;</code>, or <code>&lt;exclude&gt;</code> elements
+or the following attributes.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an include pattern. You can specify more than one
+      include file by using a nested includesfile elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded; no files (except default excludes) are excluded when omitted.</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an exclude pattern. You can specify more than one
+      exclude file by using a nested excludesfile elements.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4><code>include</code> and <code>exclude</code></h4>
+<p>Each such element defines a single pattern for files to include or
+exclude.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the <a href="../dirtasks.html#patterns">pattern</a>
+      to in/exclude.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only use this pattern if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only use this pattern if the named property is
+       <b>not</b> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h4><code>includesfile</code> and <code>excludesfile</code></h4>
+<p>If you want to list the files to include or exclude external to
+your build file, you should use the includesfile/excludesfile
+attributes or elements.  Using the attribute, you can only specify a
+single file of each type, while the nested elements can be specified
+more than once - the nested elements also support if/unless attributes
+you can use to test the existance of a property.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the file holding the patterns to
+      in/exclude.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only read this file if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only read this file if the named property is
+      <b>not</b> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h4><code>patternset</code></h4>
+<p>Patternsets may be nested within one another, adding the nested
+patterns to the parent patternset.</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;patternset id=&quot;non.test.sources&quot;&gt;
+  &lt;include name=&quot;**/*.java&quot;/&gt;
+  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+&lt;/patternset&gt;
+</pre></blockquote>
+<p>Builds a set of patterns that matches all <code>.java</code> files
+that do not contain the text <code>Test</code> in their name. This set
+can be <a href="../using.html#references">referred</a> to via
+<code>&lt;patternset refid=&quot;non.test.sources&quot;/&gt;</code>,
+by tasks that support this feature, or by FileSets.</p>
+<p>Note that while the <code>includes</code> and
+<code>excludes</code> attributes accept
+multiple elements separated by commas or spaces, the nested
+<code>&lt;include&gt;</code> and <code>&lt;exclude&gt;</code> elements expect their name
+attribute to hold a single pattern.</p>
+<p>The nested elements allow you to use if and unless arguments to
+specify that the element should only be used if a property is set, or
+that it should be used only if a property is not set.</p>
+<p>For example</p>
+<blockquote><pre>
+&lt;patternset id=&quot;sources&quot;&gt;
+  &lt;include name=&quot;std/**/*.java&quot;/&gt;
+  &lt;include name=&quot;prof/**/*.java&quot; if=&quot;professional&quot;/&gt;
+  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+&lt;/patternset&gt;
+</pre></blockquote>
+<p>will only include the files in the sub-directory <em>prof</em> if the property
+<em>professional</em> is set to some value.</p>
+<p>The two sets</p>
+<blockquote><pre>
+&lt;patternset includesfile=&quot;some-file&quot;/&gt;
+</pre></blockquote>
+<p>and</p>
+<blockquote><pre>
+&lt;patternset&gt;
+  &lt;includesfile name=&quot;some-file&quot;/&gt; 
+&lt;patternset/&gt;
+</pre></blockquote>
+<p>are identical.  The include patterns will be read from the file
+<code>some-file</code>, one pattern per line.</p>
+<blockquote><pre>
+&lt;patternset&gt;
+  &lt;includesfile name=&quot;some-file&quot;/&gt; 
+  &lt;includesfile name=&quot;${some-other-file}&quot; 
+                if=&quot;some-other-file&quot;
+  /&gt; 
+&lt;patternset/&gt;
+</pre></blockquote>
+<p>will also read include patterns from the file the property
+<code>some-other-file</code> points to, if a property of that name has
+been defined.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/permissions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/permissions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/permissions.html	(revision 14989)
@@ -0,0 +1,164 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Permissions type</title>
+</head>
+
+<body>
+
+<h2><a name="permissions">Permissions</a></h2>
+<p>
+Permissions represents a set of security permissions granted or revoked to
+a specific part code executed in the JVM where ant is running in.
+The actual Permissions are specified via a set of nested permission items either
+<code>&lt;grant&gt;</code>ed or <code>&lt;revoke&gt;</code>d.</p>
+<p>
+In the base situation a <a href="#baseset">base set</a> of permissions granted. 
+Extra permissions can be
+granted. A granted permission can be overruled by revoking a permission.
+The security manager installed by the permissions will throw an 
+<code>SecurityException</code> if
+the code subject to these permissions try to use an permission that has not been 
+granted or that has been revoked.</p>
+<h3>Nested elements</h3>
+<h4>grant</h4>
+<p>
+Indicates a specific permission is always granted. Its attributes indicate which 
+permissions are granted.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The fully qualified name of the Permission class.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the Permission. The actual contents depends on the
+    Permission class.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">actions</td>
+    <td valign="top">The actions allowed. The actual contents depend on the 
+    Permission class and name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+Implied permissions are granted.
+</p>
+<p>
+Please note that some Permission classes may actually need a name and / or actions in order to function properly. The name and actions are parsed by the actual
+Permission class.
+</p>
+<h4>revoke</h4>
+<p>
+Indicates a specific permission is revoked.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The fully qualified name of the Permission class.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the Permission. The actual contents depends on the
+    Permission class.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">actions</td>
+    <td valign="top">The actions allowed. The actual contents depend on the 
+    Permission class and name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+Implied permissions are not resolved and therefore also not revoked.
+</p>
+<p>
+The name can handle the * wildcard at the end of the name, in which case all 
+permissions of the specified class of which the name starts with the specified name
+(excluding the *) are revoked. Note that the - wildcard often supported by the
+granted properties is not supported.
+If the name is left empty all names match, and are revoked.
+If the actions are left empty all actions match, and are revoked.
+</p>
+<h3><a name="baseset">Base set</a></h3>
+A permissions set implictly contains the following permissions:
+<blockquote><pre>
+&lt;grant class=&quot;java.net.SocketPermission&quot; name=&quot;localhost:1024-&quot; actions=&quot;listen&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vendor.url&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.class.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;os.name&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;os.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;os.arch&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;file.encoding&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;file.separator&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;path.separator&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;line.separator&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.specification.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.specification.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.specification.name&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.specification.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.specification.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.specification.name&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.name&quot; actions=&quot;read&quot;&gt;
+</blockquote></pre>
+These permissions can be revoked via <code>&lt;revoke&gt;</code> elements if necessary.
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;permissions&gt;
+  &lt;grant class=&quot;java.security.AllPermission&quot;/&gt;
+  &lt;revoke class=&quot;java.util.PropertyPermission&quot;/&gt;
+&lt;/permissions&gt;
+</pre></blockquote>
+<p>
+Grants all permissions to the code except for those handling Properties.
+</p>
+<blockquote><pre>
+&lt;permissions&gt;
+  &lt;grant class=&quot;java.net.SocketPermission&quot; name=&quot;foo.bar.com&quot; action=&quot;connect&quot;/&gt;
+  &lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;user.home&quot; action=&quot;read,write&quot;/&gt;
+&lt;/permissions&gt;
+</pre></blockquote>
+<p>
+Grants the base set of permissions with the addition of a SocketPermission to connect
+to foo.bar.com and the permission to read and write the user.home system property.
+</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/propertyset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/propertyset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/propertyset.html	(revision 14989)
@@ -0,0 +1,143 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PropertySet Type</title>
+</head>
+
+<body>
+
+<h2><a name="propertyset">PropertySet</a></h2>
+<p><em>Since Ant 1.6</em></p>
+
+<p>Groups a set of properties to be used by reference in a task that
+supports this.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dynamic</td>
+    <td valign="top">Whether to reevaluate the set everytime the set
+      is used.  Default is &quot;<code>true</code>&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">negate</td>
+    <td valign="top">Whether to negate results. If
+      &quot;<code>true</code>&quot;, all properties <i>not</i>
+      selected by nested elements will be returned. Default is
+      &quot;<code>false</code>&quot;. <em>Since Ant 1.6.2</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>propertyref</h4>
+
+<p>Selects properties from the current project to be included in the
+set.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Select the property with the given name.</td>
+    <td align="center" valign="top" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">Select the properties whose name starts with the
+      given string.</td>
+  </tr>
+  <tr>
+    <td valign="top">regex</td>
+    <td valign="top">Select the properties that match the given
+      regular expression.  Similar to <a
+      href="mapper.html#regexp-mapper">regexp type mappers</a>, this
+      requires a supported regular expression library.</td>
+  </tr>
+  <tr>
+    <td valign="top">builtin</td>
+    <td valign="top">Selects a builtin set of properties.  Valid
+      values for this attribute are <code>all</code> for all Ant
+      properties, <code>system</code> for the system properties and
+      <code>commandline</code> for all properties specified on the
+      command line when invoking Ant (plus a number of special
+      internal Ant properties).</td>
+  </tr>
+</table>
+
+<h4>propertyset</h4>
+
+<p>A <code>propertyset</code> can be used as the set union of more
+<code>propertyset</code>s.</p>
+
+<p>For example:</p>
+
+<blockquote><pre>
+&lt;propertyset id=&quot;properties-starting-with-foo&quot;&gt;
+  &lt;propertyref prefix=&quot;foo&quot;/&gt;
+&lt;/propertyset&gt;
+&lt;propertyset id=&quot;properties-starting-with-bar&quot;&gt;
+  &lt;propertyref prefix=&quot;bar&quot;/&gt;
+&lt;/propertyset&gt;
+&lt;propertyset id=&quot;my-set&quot;&gt;
+  &lt;propertyset refid=&quot;properties-starting-with-foo&quot;/&gt;
+  &lt;propertyset refid=&quot;properties-starting-with-bar&quot;/&gt;
+&lt;/propertyset&gt;
+</pre></blockquote>
+
+<p>collects all properties whose name starts with either
+&quot;foo&quot; or &quot;bar&quot; in the set named
+&quot;my-set&quot;.</p>
+
+<h4>mapper</h4>
+
+<p>A <a href="mapper.html">mapper</a> - at maximum one mapper can be
+specified.  The mapper is used to change the names of the property
+keys, for example:
+
+<blockquote><pre>
+&lt;propertyset id=&quot;properties-starting-with-foo&quot;&gt;
+  &lt;propertyref prefix=&quot;foo&quot;/&gt;
+  &lt;mapper type=&quot;glob&quot; from=&quot;foo*&quot; to=&quot;bar*&quot;/&gt;
+&lt;/propertyset&gt;
+</pre></blockquote>
+
+<p>collects all properties whose name starts with &quot;foo&quot;, but
+changes the names to start with &quot;bar&quot; instead.</p>
+
+<p>If supplied, the nested mapper will be applied
+subsequent to any negation of matched properties.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/redirector.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/redirector.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/redirector.html	(revision 14989)
@@ -0,0 +1,183 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Redirector Type</title>
+</head>
+
+<body>
+
+<h2><a name="redirector">I/O redirection</a></h2>
+<p>For many tasks, input and output can be defined in a fairly
+straightforward fashion.  The <a href="../CoreTasks/exec.html">exec</a>
+task, used to execute an external process, stands as a very
+basic example.  The executed process may accept input, produce
+output, or do either or both depending upon various circumstances.
+Output may be classified as &quot;output&quot; or as &quot;error
+output.&quot;  The <code>&lt;redirector&gt;</code> type provides a concrete means
+of redirecting input and output featuring the use of
+<a href="./mapper.html">File Mapper</a>s to specify
+source (input) and destination (output/error) files.  <em>Since Ant 1.6.2</em>
+<p>The <code>&lt;redirector&gt;</code> element accepts the following attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which output should be written.
+      If the error stream is not also redirected to a file or property,
+      it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the
+      command should be redirected.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see
+      error output in Ant's log and you are redirecting output to
+      a file/property. The error output will not be included in
+      the output file/property. If you redirect error with the
+      <i>error</i> or <i>errorProperty</i> attributes, this will
+      have no effect.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output and error files should be
+      appended to rather than overwritten. Defaults to
+      <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">createemptyfiles</td>
+    <td valign="top">Whether output and error files should be
+      created even when empty.  Defaults to <code>true</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the
+      command should be stored. Unless the error stream is redirected
+      to a separate file or stream, this property will include the
+      error output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error
+      of the command should be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard input
+      is taken. This attribute is mutually exclusive with the
+      <i>inputstring</i> attribute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+      executed command. This attribute is mutually exclusive with the
+      <i>input</i> attribute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputencoding</td>
+    <td valign="top">The input encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The output encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorencoding</td>
+    <td valign="top">The error encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">alwayslog</td>
+    <td valign="top">Always send to the log in addition to
+        any other destination. <i>Since Ant 1.6.3</i>.
+    </td>
+    <td align="center" valign="top">No, default is <code>false</code></td>
+  </tr>
+  <tr>
+    <td valign="top">loginputstring</td>
+    <td valign="top">Controls the display of <i>inputstring</i>'s value in
+        log messages. Set to <code>false</code> when sending sensitive data
+        (e.g. passwords) to external processes. <i>Since Ant 1.6.3</i>.
+    </td>
+    <td align="center" valign="top">No, default is <code>true</code></td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>inputmapper</h4>
+<p>A single <a href="./mapper.html">File Mapper</a> used to redirect process
+input.  Multiple mapping results should concatenate all mapped files as input.
+Mapping will ordinarily be performed on a task-specified sourcefile;
+consult the documentation of the individual task for more details.
+A nested <code>&lt;inputmapper&gt;</code> is not compatible with either of the
+<i>input</i> or <i>inputstring</i> attributes.</p>
+<h4>outputmapper</h4>
+<p>A single <a href="./mapper.html">File Mapper</a> used to redirect process
+output.  Mapping will ordinarily be performed on a task-specified sourcefile;
+consult the documentation of the individual task for more details.
+A nested <code>&lt;outputmapper&gt;</code> is not compatible with the
+<i>output</i> attribute.</p>
+<h4>errormapper</h4>
+<p>A single <a href="./mapper.html">File Mapper</a> used to redirect error
+output.  Mapping will ordinarily be performed on a task-specified sourcefile;
+consult the documentation of the individual task for more details.
+A nested <code>&lt;errormapper&gt;</code> is not compatible with the
+<i>error</i> attribute.</p>
+<h4>inputfilterchain</h4>
+<p>A <a href="./filterchain.html">FilterChain</a> can be
+applied to the process input.</p>
+<h4>outputfilterchain</h4>
+<p>A <a href="./filterchain.html">FilterChain</a> can be
+applied to the process output.</p>
+<h4>errorfilterchain</h4>
+<p>A <a href="./filterchain.html">FilterChain</a> can be
+applied to the error output.</p>
+<h3>Usage</h3>
+Tasks known to support I/O redirection:
+<ul>
+<li><a href="../CoreTasks/exec.html">Exec</a></li>
+<li><a href="../CoreTasks/apply.html">Apply</a></li>
+<li><a href="../CoreTasks/java.html">Java</a></li>
+</ul>
+<p>The expected behavior of a <code>&lt;redirector&gt;</code> is to a great degree
+dependent on the supporting task.  Any possible points of confusion
+should be noted at the task level.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/regexp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/regexp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/regexp.html	(revision 14989)
@@ -0,0 +1,112 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Regexp Type</title>
+</head>
+
+<body>
+
+<h2><a name="regexp">Regexp</a></h2>
+<p>
+Regexp represents a regular expression.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">regular expression pattern</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+     &lt;regexp id="myregexp" pattern="alpha(.+)beta"/&gt;<br>
+</pre></blockquote>
+<p>
+Defines a regular expression for later use with id myregexp.
+</p>
+<blockquote><pre>
+     &lt;regexp refid="myregexp"/&gt;<br>
+</pre></blockquote>
+<p>
+Use the regular expression with id myregexp.
+</p>
+<h3><a name="implementation">Choice of regular expression implementation</a></h3>
+<p>
+Ant comes with
+wrappers for
+<a href="http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html" target="_top">the java.util.regex package of JDK 1.4</a>,
+<a href="http://jakarta.apache.org/regexp/" target="_top">jakarta-regexp</a>
+and <a href="http://jakarta.apache.org/oro/" target="_top">jakarta-ORO</a>,
+See <a href="../install.html#librarydependencies">installation dependencies</a>
+ concerning the supporting libraries.</p>
+<p>
+The property <code>ant.regexp.regexpimpl</code> governs which regular expression implementation will be chosen.
+Possible values for this property are :
+<ul>
+<li>
+org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
+</li>
+<li>
+org.apache.tools.ant.util.regexp.JakartaOroRegexp
+</li>
+<li>
+org.apache.tools.ant.util.regexp.JakartaRegexpRegexp
+</li>
+</ul>
+It can also be another implementation of the interface <code>org.apache.tools.ant.util.regexp.Regexp</code>.
+If <code>ant.regexp.regexpimpl</code> is not defined, ant checks in the order Jdk14Regexp, JakartaOroRegexp,
+ JakartaRegexp for the availability of the corresponding library. The first of these 3 which is found will be used.</p>
+<p>
+There are cross-platform issues for matches related to line terminator.
+For example if you use $ to anchor your regular expression on the end of a line
+the results might be very different depending on both your platform and the regular
+expression library you use. It is 'highly recommended' that you test your pattern on
+both Unix and Windows platforms before you rely on it.
+<ul>
+    <li>Jakarta Oro defines a line terminator as '\n' and is consistent with Perl.</li>
+    <li>Jakarta RegExp uses a system-dependant line terminator.</li>
+    <li>JDK 1.4 uses '\n', '\r\n', '\u0085', '\u2028', '\u2029' as a default
+    but is configured in the wrapper to use only '\n' (UNIX_LINE)</li>
+</ul>
+<em>We <b>strongly</b> recommend that you use Jakarta Oro.</em>
+</p>
+<h3>Usage</h3>
+The following tasks and types use the Regexp type :
+<ul>
+<li><a href="../OptionalTasks/replaceregexp.html">ReplaceRegExp task</a></li>
+<li><a href="filterchain.html#linecontainsregexp">LineContainsRegexp filter</a></li>
+</ul>
+<p>
+These string filters also use the mechanism of regexp to choose a regular expression implementation :
+</p>
+<ul>
+<li><a href="filterchain.html#containsregex">ContainsRegex string filter</a></li>
+<li><a href="filterchain.html#replaceregex">ReplaceRegex string filter</a></li>
+</ul>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/resources.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/resources.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/resources.html	(revision 14989)
@@ -0,0 +1,841 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Resources and Resource Collections</title>
+</head>
+
+<body>
+
+<h2><a name="resource">Resources</a></h2>
+<p>
+A file-like entity can be abstracted to the concept of a <i>resource</i>.
+In addition to providing access to file-like attributes, a resource
+implementation should, when possible, provide the means to read content
+from and/or write content to the underlying entity. Although the resource
+concept was introduced in <i>Ant 1.5.2</i>, resources are available for
+explicit use beginning in <b>Ant 1.7</b>.
+</p>
+
+<h3>The built-in resource types are:</h3>
+
+<ul>
+  <li><a href="#basic">resource</a> - a basic resource.</li>
+  <li><a href="#bzip2resource">bzip2resource</a> - a BZip2 compressed resource.</li>
+  <li><a href="#file">file</a> - a file.</li>
+  <li><a href="#gzipresource">gzipresource</a> - a GZip compressed resource.</li>
+  <li><a href="#javaresource">javaresource</a> - a resource loadable
+        via a Java classloader.</li>
+  <li><a href="#propertyresource">propertyresource</a> - an Ant property.</li>
+  <li><a href="#string">string</a> - a text string.</li>
+  <li><a href="#tarentry">tarentry</a> - an entry in a tar file.</li>
+  <li><a href="#url">url</a> - a URL.</li>
+  <li><a href="#zipentry">zipentry</a> - an entry in a zip file.</li>
+</ul>
+
+<h4><a name="basic">resource</a></h4>
+
+<p>A basic resource. Other resource types derive from this basic
+type; as such all its attributes are available, though in most cases
+irrelevant attributes will be ignored. This and all resource
+implementations are also usable as single-element
+<a href="#collection">Resource Collections</a>.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of this resource</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">exists</td>
+    <td valign="top">Whether this resource exists</td>
+    <td align="center" valign="top">No, default <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">lastmodified</td>
+    <td valign="top">The last modification time of this resource</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">directory</td>
+    <td valign="top">Whether this resource is directory-like</td>
+    <td align="center" valign="top">No, default <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">size</td>
+    <td valign="top">The size of this resource</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4><a name="file">file</a></h4>
+
+<p>Represents a file accessible via local filesystem conventions.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file represented by this resource</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">The base directory of this resource.  When this
+      attribute is set, attempts to access the name of the resource
+      will yield a path relative to this location.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4><a name="javaresource">javaresource</a></h4>
+
+<p>Represents a resource loadable via a Java classloader.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the resource.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up a resource.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use when looking up a resource,
+      given as <a href="../using.html#references">reference</a>
+      to a <code>&lt;path&gt;</code> defined elsewhere..</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">loaderRef</td>
+    <td valign="top">the name of the loader that is
+      used to load the resource, constructed from the specified classpath.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>The classpath can also be specified as nested classpath element,
+where <b>&lt;classpath&gt;</b> is a <a
+href="../using.html#path">path-like</a> structure.</p>
+
+<h4><a name="zipentry">zipentry</a></h4>
+
+<p>Represents an entry in a ZIP archive.  The archive can be specified
+using the archive attribute or a nested single-element resource
+collection.  <code>zipentry</code> only supports file system resources
+as nested elements.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">zipfile or its alias name archive</td>
+    <td valign="top">The zip file containing this resource</td>
+    <td align="center" valign="top">Yes, unless a nested resource
+    collection has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the archived resource</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the zipfile</td>
+    <td align="center" valign="top">No;
+      platform default used if unspecified</td>
+  </tr>
+</table>
+
+<h4><a name="tarentry">tarentry</a></h4>
+
+<p>Represents an entry in a TAR archive.  The archive can be specified
+using the archive attribute or a nested single-element resource
+collection.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">archive</td>
+    <td valign="top">The tar archive containing this resource</td>
+    <td align="center" valign="top">Yes, unless a nested resource
+    collection has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the archived resource</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4><a name="gzipresource">gzipresource</a></h4>
+
+<p>This is not a stand-alone resource, but a wrapper around another
+resource providing compression of the resource's contents on the fly.
+A single element resource collection must be specified as a nested
+element.</p>
+
+<h4><a name="bzip2resource">bzip2resource</a></h4>
+
+<p>This is not a stand-alone resource, but a wrapper around another
+resource providing compression of the resource's contents on the fly.
+A single element resource collection must be specified as a nested
+element.</p>
+
+<h4><a name="url">url</a></h4>
+
+<p>Represents a URL.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The url to expose</td>
+    <td rowspan="3" align="center" valign="middle">Exactly one of these</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to expose as a file: url</td>
+  </tr>
+</table>
+
+<h4><a name="string">string</a></h4>
+
+<p>Represents a Java String. As such a string is readable but not writable.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value of this resource</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4><a name="propertyresource">propertyresource</a></h4>
+
+<p>Represents an Ant property.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The property name</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<hr>
+<h2><a name="collection">Resource Collections</a></h2>
+<p>
+A Resource Collection is an abstraction of an entity that groups
+together a number of <a href="#resource">resources</a>. Several of
+Ant's "legacy" datatypes have been modified to behave as Resource Collections:
+<ul>
+  <li><a href="fileset.html">fileset</a>,
+    <a href="dirset.html">dirset</a>,
+    <a href="filelist.html">filelist</a>, and
+    <a href="../using.html#path">path</a>
+    (and derivative types) expose <a href="#file">file</a> resources
+  </li>
+  <li><a href="zipfileset.html">tarfileset</a>
+    can expose <a href="#file">file</a> or <a href="#tarentry">tarentry</a>
+    resources depending on configuration
+  </li>
+  <li><a href="zipfileset.html">zipfileset</a>
+    can expose <a href="#file">file</a> or <a href="#zipentry">zipentry</a>
+    resources depending on configuration
+  </li>
+  <li><a href="propertyset.html">propertyset</a>
+    exposes <a href="#property">property</a> resources
+  </li>
+</ul>
+</p>
+<h3>The additional built-in resource collections are:</h3>
+<ul>
+  <li><a href="#resources">resources</a> - generic resource collection</li>
+  <li><a href="#files">files</a> - collection of files similar to
+    <a href="fileset.html">fileset</a></li>
+  <li><a href="#restrict">restrict</a> - restrict a resource collection
+    to include only resources meeting specified criteria</li>
+  <li><a href="#sort">sort</a> - sorted resource collection</li>
+  <li><a href="#first">first</a> - first <i>n</i> resources from a
+    nested collection</li>
+  <li><a href="#tokens">tokens</a> - <a href="#string">string</a> tokens
+    gathered from a nested collection</li>
+  <li><a href="#union">union</a> - set union of nested resource collections</li>
+  <li><a href="#intersect">intersect</a> - set intersection
+    of nested resource collections</li>
+  <li><a href="#difference">difference</a> - set difference
+    of nested resource collections</li>
+</ul>
+<h4><a name="resources">resources</a></h4>
+<p>A generic resource collection, designed for use with
+  <a href="../using.html#references">references</a>.
+  For example, if a third-party Ant task generates a Resource Collection
+  of an unknown type, it can still be accessed via a
+  <code>&lt;resources&gt;</code> collection. The secondary use of this
+  collection type is as a container of other resource collections,
+  preserving the order of nested collections as well as
+  duplicate resources (contrast with <a href="#union">union</a>).
+</p>
+
+<h4><a name="files">files</a></h4>
+<p>A group of files. These files are matched by <b>absolute</b> patterns
+  taken from a number of <a href="patternset.html">PatternSets</a>.
+  These can be specified as nested <code>&lt;patternset&gt;</code>
+  elements. In addition, <code>&lt;files&gt;</code> holds an implicit
+  PatternSet and supports the nested <code>&lt;include&gt;</code>,
+  <code>&lt;includesfile&gt;</code>, <code>&lt;exclude&gt;</code>
+  and <code>&lt;excludesfile&gt;</code> elements of PatternSet directly,
+  as well as PatternSet's attributes.
+</p>
+<p><a href="selectors.html">File Selectors</a> are available as nested
+  elements. A file must be selected by all selectors in order to be included;
+  <code>&lt;files&gt;</code> is thus equivalent to an
+  <code>&lt;and&gt;</code> file selector container.
+</p>
+<p><b>More simply put</b>, this type is equivalent to a
+  <a href="fileset.html">fileset</a> with no base directory.
+  <b>Please note</b> that without a base directory,
+  filesystem scanning is based entirely on include and exclude patterns.
+  A <a href="selectors.html#filenameselect">filename</a> (or any)
+  selector can <i>only</i> influence the scanning process <i>after</i>
+  the file has been included based on pattern-based selection.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns
+      of files that must be included</td>
+    <td rowspan="2" valign="middle" align="center">At least one of these</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an include pattern.</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns
+      of files that must be excluded</td>
+    <td rowspan="2" valign="top" align="center">No, default none
+      (except default excludes when true)</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an exclude pattern.</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">Whether
+      <a href="../dirtasks.html#defaultexcludes">default excludes</a>
+      should be used</td>
+    <td valign="top" align="center">No, default <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Whether patterns are case-sensitive</td>
+    <td valign="top" align="center">No, default <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">followsymlinks</td>
+    <td valign="top">Whether to follow symbolic links
+      (see note <a href="#symlink">below</a>)</td>
+    <td valign="top" align="center">No, default <i>true</i></td>
+  </tr>
+</table>
+
+<p><a name="symlink"><b>Note</b></a>: All files/directories for which
+the canonical path is different from its path are considered symbolic
+links.  On Unix systems this usually means the file really is a
+symbolic link but it may lead to false results on other
+platforms.
+</p>
+
+<h4><a name="restrict">restrict</a></h4>
+<p>Restricts another nested resource collection using resource selectors:
+<blockquote>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>A single resource collection is required.</p>
+  <p>Nested resource selectors are used to "narrow down" the included
+    resources. These are patterned after <a href="selectors.html">file
+    selectors</a> but are, unsurprisingly, targeted to resources.
+    Several built-in resource selectors are available in the internal
+    <a href="antlib.html">antlib</a>
+    <code>org.apache.tools.ant.types.resources.selectors</code>:
+  </p>
+
+  <ul>
+    <li><a href="#rsel.name">name</a> - select resources by name.</li>
+    <li><a href="#rsel.exists">exists</a> - select existing resources.</li>
+    <li><a href="#rsel.date">date</a> - select resources by date.</li>
+    <li><a href="#rsel.type">type</a> - select resources by type.</li>
+    <li><a href="#rsel.size">size</a> - select resources by size.</li>
+    <li><a href="#rsel.instanceof">instanceof</a>
+      - select resources by class or Ant datatype.</li>
+    <li><a href="#rsel.and">and</a> - "and" nested resource selectors.</li>
+    <li><a href="#rsel.or">or</a> - "or" nested resource selectors.</li>
+    <li><a href="#rsel.not">not</a> - "not" a nested resource selector.</li>
+    <li><a href="#rsel.none">none</a>
+      - select resources selected by no nested resource selectors.</li>
+    <li><a href="#rsel.majority">majority</a> - select resources selected
+      by a majority of nested resource selectors.</li>
+    <li><a href="selectors.html#modified">modified</a> - select resources which
+      content has changed.</li>
+    <li><a href="selectors.html#containsselect">contains</a> - select resources 
+      containing a particular text string.</li>
+    <li><a href="selectors.html#regexpselect">containsregexp</a> - select
+      resources whose contents match a particular regular expression.</li>
+    <li><a href="#rsel.compare">compare</a> - select resources
+      based on comparison to other resources.</li>
+  </ul>
+
+  <h4><a name="rsel.name">name</a></h4>
+  <p>Selects resources by name.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">name</td>
+      <td valign="top">The name pattern to test</td>
+      <td align="center" valign="top">Yes</td>
+    </tr>
+    <tr>
+      <td valign="top">casesensitive</td>
+      <td valign="top">Whether name comparisons are case-sensitive</td>
+      <td align="center" valign="top">No, default <i>true</i></td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.exists">exists</a></h4>
+  <p>Selects existing resources.</p>
+
+  <h4><a name="rsel.date">date</a></h4>
+  <p>Selects resources by date.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">millis</td>
+      <td valign="top">The comparison date/time in ms since January 1, 1970</td>
+      <td rowspan="2" align="center" valign="middle">One of these</td>
+    </tr>
+    <tr>
+      <td valign="top">datetime</td>
+      <td valign="top">The formatted comparison date/time</td>
+    </tr>
+    <tr>
+      <td valign="top">pattern</td>
+      <td valign="top">SimpleDateFormat-compatible pattern
+        for use with the <code>datetime</code> attribute</td>
+      <td align="center" valign="top">
+        No, default is "MM/DD/YYYY HH:MM AM_or_PM"</td>
+    </tr>
+    <tr>
+      <td valign="top">granularity</td>
+      <td valign="top">The number of milliseconds leeway to use when
+        comparing file modification times. This is needed because not
+        every file system supports tracking the last modified time to
+        the millisecond level.</td>
+      <td align="center" valign="top">No; default varies by platform:
+        FAT filesystems = 2 sec; Unix = 1 sec; NTFS = 1 ms.</td>
+    </tr>
+    <tr>
+      <td valign="top">when</td>
+      <td valign="top">One of "before", "after", "equal"</td>
+      <td align="center" valign="top">No, default "equal"</td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.type">type</a></h4>
+  <p>Selects resources by type (file or directory).</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">type</td>
+      <td valign="top">One of "file", "dir"</td>
+      <td align="center" valign="top">Yes</td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.size">size</a></h4>
+  <p>Selects resources by size.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">size</td>
+      <td valign="top">The size to compare</td>
+      <td align="center" valign="top">Yes</td>
+    </tr>
+    <tr>
+      <td valign="top">when</td>
+      <td valign="top">One of "equal", "eq", "greater", "gt", "less", "lt",
+        "ge" (greater or equal), "ne" (not equal), "le" (less or equal)</td>
+      <td align="center" valign="top">No, default "equal"</td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.instanceof">instanceof</a></h4>
+  <p>Selects resources by type.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">class</td>
+      <td valign="top">The class of which the resource must be an instance</td>
+      <td rowspan="2" align="center" valign="middle">One of these</td>
+    </tr>
+    <tr>
+      <td valign="top">type</td>
+      <td valign="top">The Ant type that must
+        be assignable from the resource</td>
+    </tr>
+    <tr>
+      <td valign="top">uri</td>
+      <td valign="top">The uri in which <i>type</i> must be defined</td>
+      <td valign="top">No</td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.and">and</a></h4>
+  <p>Selects a resource if it is selected by all nested resource selectors.</p>
+
+  <h4><a name="rsel.or">or</a></h4>
+  <p>Selects a resource if it is selected
+    by at least one nested resource selector.</p>
+
+  <h4><a name="rsel.not">not</a></h4>
+  <p>Negates the selection result of the single
+    nested resource selector allowed.</p>
+
+  <h4><a name="rsel.none">none</a></h4>
+  <p>Selects a resource if it is selected
+    by no nested resource selectors.</p>
+
+  <h4><a name="rsel.majority">majority</a></h4>
+  <p>Selects a resource if it is selected
+    by the majority of nested resource selectors.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">allowtie</td>
+      <td valign="top">Whether a tie (when there is an even number
+        of nested resource selectors) is considered a majority</td>
+      <td valign="top">No, default <i>true</i></td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.compare">compare</a></h4>
+  <p>Selects a resource based on its comparison to one or more "control"
+     resources using nested <a href="#rcmp">resource comparators</a>.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">when</td>
+      <td valign="top">Comparison ("equal"/"eq", "greater"/"gt", "less"/"lt",
+        "le" (less or equal), "ge" (greater or equal), "ne" (not equal).</td>
+      <td valign="top">No, default "equal"</td>
+    </tr>
+    <tr>
+      <td valign="top">against</td>
+      <td valign="top">Quantifier ("all"/"each"/"every", "any"/"some",
+        (exactly) "one", "most"/"majority", "none".</td>
+      <td valign="top">No, default "all"</td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>The resources against which comparisons will be made must be specified
+    using the nested &lt;control&gt; element, which denotes a
+    <a href="#resources">resources</a> collection.</p>
+  <h3>Examples</h3>
+  <p>The following selects files a, b, c, and d:</p>
+  <pre>
+&lt;restrict&gt;
+  &lt;fileset dir="src" includes="a,b,c,d,e,f,g" /&gt;
+  &lt;rsel:compare when="le" against="all"&gt;
+    &lt;control&gt;
+      &lt;resource name="d" /&gt;
+    &lt;/control&gt;
+    &lt;rcmp:name /&gt;
+  &lt;/rsel:compare&gt;
+&lt;/restrict&gt;</pre>
+</blockquote>
+
+<h4><a name="sort">sort</a></h4>
+
+<p>Sorts another nested resource collection according to the resources'
+   natural order, or by one or more nested <a href="#rcmp">resource
+   comparators</a>:</p>
+<blockquote>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>A single resource collection is required.</p>
+  <p>The sort can be controlled and customized by specifying one or more
+    resource comparators. Resources can be sorted according to multiple
+    criteria; the first specified is the "outermost", while the last
+    specified is the "innermost". Several built-in resource comparators
+    are available in the internal <a href="antlib.html">antlib</a>
+    <code>org.apache.tools.ant.types.resources.comparators</code>:
+  </p>
+  <h4><a name="rcmp">Resource Comparators:</a></h4>
+  <ul>
+    <li><a href="#rcmp.name">name</a> - sort resources by name</li>
+    <li><a href="#rcmp.exists">exists</a> - sort resources by existence</li>
+    <li><a href="#rcmp.date">date</a> - sort resources by date</li>
+    <li><a href="#rcmp.type">type</a> - sort resources by type</li>
+    <li><a href="#rcmp.size">size</a> - sort resources by size</li>
+    <li><a href="#rcmp.content">content</a> - sort resources by content</li>
+    <li><a href="#rcmp.reverse">reverse</a> - reverse the natural sort order,
+      or that of a single nested resource comparator</li>
+  </ul>
+
+  <h4><a name="rcmp.name">name</a></h4>
+  <p>Sort resources by name.</p>
+
+  <h4><a name="rcmp.exists">exists</a></h4>
+  <p>Sort resources by existence.
+    Not existing is considered "less than" existing.</p>
+
+  <h4><a name="rcmp.date">date</a></h4>
+  <p>Sort resources by date.</p>
+
+  <h4><a name="rcmp.type">type</a></h4>
+  <p>Sort resources by type (file or directory).
+    Because directories contain files, they are considered "greater".</p>
+
+  <h4><a name="rcmp.size">size</a></h4>
+  <p>Sort resources by size.</p>
+
+  <h4><a name="rcmp.content">content</a></h4>
+  <p>Sort resources by content.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">binary</td>
+      <td valign="top">Whether content should be compared in binary mode.
+        If <i>false<i>, content will be compared without regard to
+        platform-specific line-ending conventions.</td>
+      <td valign="top">No, default <i>true</i></td>
+    </tr>
+  </table>
+
+  <h4><a name="rcmp.reverse">reverse</a></h4>
+  <p>Reverse the natural sort order, or that of a single nested comparator.</p>
+
+</blockquote>
+
+<h4><a name="first">first</a></h4>
+<p>Includes the first <i>count</i> resources from a nested resource collection.
+This can be used in conjunction with the <a href="#sort">sort</a> collection,
+for example, to select the first few oldest, largest, etc. resources from a
+larger collection.</p>
+<blockquote>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">count</td>
+      <td valign="top">The number of resources to include</td>
+      <td valign="top" align="center">No, default 1</td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>A single resource collection is required.</p>
+</blockquote>
+
+<h4><a name="tokens">tokens</a></h4>
+<p>Includes the <a href="#string">string</a> tokens gathered from a nested
+ resource collection. Uses the same tokenizers supported by the
+<a href="filterchain.html#tokenfilter">TokenFilter</a>. Hint: imaginative
+  use of this resource collection can implement equivalents for such Unix
+  functions as <code>sort</code>, <code>grep -c</code>, <code>wc</code> and
+  <code>wc -l</code>.</p>
+<blockquote>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">encoding</td>
+      <td valign="top">The encoding of the nested resources</td>
+      <td valign="top" align="center">No, default is platform default</td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>A single resource collection is required.</p>
+</blockquote>
+
+<h4><a name="setlogic">Set operations</a></h4>
+<blockquote>
+  <p>The following resource collections implement set operations:</p>
+  <ul>
+    <li><a href="#union">union</a></li>
+    <li><a href="#intersect">intersect</a></li>
+    <li><a href="#difference">difference</a></li>
+  </ul>
+
+  <h4><a name="union">union</a></h4>
+  <p>Union of nested resource collections.</p>
+
+  <h4><a name="intersect">intersect</a></h4>
+  <p>Intersection of nested resource collections.</p>
+
+  <h4><a name="difference">difference</a></h4>
+  <p>Difference of nested resource collections.</p>
+
+  <p>The following attributes apply to all set-operation resource collections:
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+</blockquote>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/selectors-program.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/selectors-program.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/selectors-program.html	(revision 14989)
@@ -0,0 +1,264 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  <head>
+    <meta http-equiv="Content-Language" content="en-us">
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Programming Selectors in Ant</title>
+  </head>
+
+  <body>
+    <h2>Programming your own Selectors</h2>
+
+    <h3>Selector Programming API</h3>
+
+    <p>Want to define your own selectors? It's easy!</p>
+
+    <p>First, pick the type of selector that you want to define. There
+    are three types, and a recipe for each one follows. Chances are
+    you'll want to work with the first one, Custom Selectors.</p>
+
+    <ol>
+      <li>Custom Selectors
+
+        <p>This is the category that Ant provides specifically for you to
+        define your own Selectors. Anywhere you want to use your selector
+        you use the <code>&lt;custom&gt;</code> element and specify
+        the class name of your selector within it. See the
+        <a href="selectors.html#customselect">Custom Selectors</a>
+        section of the Selector page for details. The
+        <code>&lt;custom&gt;</code> element can be used anywhere
+        the core selectors can be used. It can be contained within
+        <a href="selectors.html#selectcontainers">Selector Containers</a>,
+        for example.</p>
+
+        <p>To create a new Custom Selector, you have to create a class that
+        implements
+        <code>org.apache.tools.ant.types.selectors.ExtendFileSelector</code>.
+        The easiest way to do that is through the convenience base class
+        <code>org.apache.tools.ant.types.selectors.BaseExtendSelector</code>,
+        which provides all of the methods for supporting
+        <code>&lt;param&gt;</code> tags. First, override the
+        <code>isSelected()</code> method, and optionally the
+        <code>verifySettings()</code> method. If your custom
+        selector requires parameters to be set, you can also override
+        the <code>setParameters()</code> method and interpret the
+        parameters that are passed in any way you like. Several of the
+        core selectors demonstrate how to do that because they can
+        also be used as custom selectors.</p>
+
+      <li>Core Selectors
+
+        <p>These are the selectors used by Ant itself. To implement one of
+        these, you will have to alter some of the classes contained within
+        Ant.</p>
+
+        <ul>
+          <li><p>First, create a class that implements
+            <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+            You can either choose to implement all methods yourself from
+            scratch, or you can extend
+            <code>org.apache.tools.ant.types.selectors.BaseSelector</code>
+            instead, a convenience class that provides reasonable default
+            behaviour for many methods.</p>
+
+            <p>There is only one method required.
+            <code>public boolean isSelected(File basedir, String filename,
+              File file)</code>
+              is the real purpose of the whole exercise. It returns true
+              or false depending on whether the given file should be
+              selected from the list or not.</p>
+
+            <p>If you are using
+            <code>org.apache.tools.ant.types.selectors.BaseSelector</code>
+            there are also some predefined behaviours you can take advantage
+            of. Any time you encounter a problem when setting attributes or
+            adding tags, you can call setError(String errmsg) and the class
+            will know that there is a problem. Then, at the top of your
+            <code>isSelected()</code> method call <code>validate()</code> and
+            a BuildException will be thrown with the contents of your error
+            message. The <code>validate()</code> method also gives you a
+            last chance to check your settings for consistency because it
+            calls <code>verifySettings()</code>. Override this method and
+            call <code>setError()</code> within it if you detect any
+            problems in how your selector is set up.</p>
+
+            <p>You may also want to override <code>toString()</code>.</p>
+
+          <li><p>Put an <code>add</code> method for your selector in
+            <code>org.apache.tools.ant.types.selectors.SelectorContainer</code>.
+            This is an interface, so you will also have to add an implementation
+            for the method in the classes which implement it, namely
+            <code>org.apache.tools.ant.types.AbstractFileSet</code>,
+            <code>org.apache.tools.ant.taskdefs.MatchingTask</code> and
+            <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+            Once it is in there, it will be available everywhere that core
+            selectors are appropriate.</p>
+        </ul>
+
+      <li>Selector Containers
+        <p>Got an idea for a new Selector Container? Creating a new one is
+        no problem:</p>
+        <ul>
+          <li><p>Create a new class that implements
+            <code>org.apache.tools.ant.types.selectors.SelectorContainer</code>.
+            This will ensure that your new
+            Container can access any new selectors that come along. Again, there
+            is a convenience class available for you called
+            <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+            </p>
+          <li><p>Implement the
+            <code>public boolean isSelected(String filename, File file)</code>
+            method to do the right thing. Chances are you'll want to iterate
+            over the selectors under you, so use
+            <code>selectorElements()</code> to get an iterator that will do
+            that.</p>
+          <li><p>Again, put an <code>add</code> method for your container in
+            <code>org.apache.tools.ant.types.selectors.SelectorContainer</code>
+            and its implementations
+            <code>org.apache.tools.ant.types.AbstractFileSet</code> and
+            <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+            </p>
+        </ul>
+    </ol>
+
+    <h3>Testing Selectors</h3>
+
+    <p>For a robust component (and selectors are (Project)Components) tests are
+    necessary. For testing Tasks we use JUnit TestCases - more specific
+    <tt>org.apache.tools.ant.BuildFileTest extends junit.framework.TestCase</tt>.
+    Some of its features like configure the (test) project by reading its buildfile and
+    execute targets we need for selector tests also. Therefore we use that BuildFileTest.
+    But testing selectors requires some more work: having a set of files, instantiate
+    and configure the selector, check the selection work and more. Because we usually
+    extend <tt>BaseExtendSelector</tt> its features have to be tested also (e.g. setError()).
+    </p>
+
+    <p>That's why we have a base class for doing our selector tests:
+    <tt>org.apache.tools.ant.types.selectors.BaseSelectorTest</tt>.</p>
+
+    <p>This class extends TestCase and therefore can included in the set of Ant's
+    unit tests. It holds an instance of preconfigured BuildFileTest. Configuration
+    is done by parsing the src/etc/testcases/types/selectors.xml. BaseSelectorTest
+    then gives us helper methods for handling multiple selections. </p>
+
+    <p>Because the term "testcase" or "testenvironment" are so often used, this
+    special testenvironment got a new name: <i>bed</i>. Like you initialize the
+    test environment by calling setUp() and cleaning by calling tearDown() (<i>or like
+    to make your bed before go sleeping</i>) you have to do that work with your
+    <i>bed</i> by calling <tt>makeBed()</tt> respecitive <tt>cleanupBed()</tt>.</p>
+
+    <p>A usual test scenario is<ol>
+       <li>make the bed</li>
+       <li>instantiate the selector</li>
+       <li>configure the selector</li>
+       <li>let the selector do some work</li>
+       <li>verify the work</li>
+       <li>clean the bed</li>
+       </ol>
+    </p>
+
+    <p>For common way of instantiation you have to override the <tt>getInstance()</tt>
+    simply by returning a new object of your selector. For easier "selection and verification work"
+    BaseSelectorTest provides the method <tt>performTests()</tt> which
+    iterates over all files (and directories) in the String array <tt>filenames</tt>
+    and checks whether the given selector returns the expected result. If an error
+    occurred (especially the selector does not return the expected result) the test
+    fails and the failing filenames are logged.</p>
+
+    <p>An example test would be:<pre>
+package org.apache.tools.ant.types.selectors;
+
+public class MySelectorTest extends BaseSelectorTest {
+
+    public MySelectorTest(String name) {
+        super(name);
+    }
+
+    public BaseSelector getInstance() {
+        return new MySelector();
+    }
+
+    public void testCase1() {
+        try {
+            // initialize test environment 'bed'
+            makeBed();
+
+            // Configure the selector
+            MySelector s = (MySelector)getSelector();
+            s.addParam("key1", "value1");
+            s.addParam("key2", "value2");
+            s.setXX(true);
+            s.setYY("a value");
+
+            // do the tests
+            performTests(s, "FTTTTTTTTTTT");  // First is not selected - rest is
+
+        } finally {
+            // cleanup the environment
+            cleanupBed();
+        }
+    }
+}
+    </pre>
+    As an example of an error JUnit could log<pre>
+    [junit]     FAILED
+    [junit] Error for files: <font color=blue>.;copy.filterset.filtered;tar/gz/asf-logo.gif.tar.gz</font>
+    [junit] expected:&lt;<font color=blue>FTTTFTTTF...</font>&gt; but was:&lt;TTTTTTTTT...&gt;
+    [junit] junit.framework.ComparisonFailure: Error for files: .;copy.filterset.filtered;tar/gz/asf-logo.gif.tar.gz
+    [junit] expected:&lt;FTTTFTTTF...&gt; but was:&lt;TTTTTTTTT...&gt;
+    [junit]     at junit.framework.Assert.assertEquals(Assert.java:81)
+    [junit]     at org.apache.tools.ant.types.selectors.BaseSelectorTest.performTest(BaseSelectorTest.java:194)
+    </pre></p>
+
+    <p>Described above the test class should provide a <tt>getInstance()</tt>
+    method. But that isn't used here. The used <tt>getSelector()</tt> method is
+    implemented in the base class and gives an instance of an Ant Project to
+    the selector. This is usually done inside normal build file runs, but not
+    inside this special environment, so this method gives the selector the
+    ability to use its own Project object (<tt>getProject()</tt>), for example
+    for logging.</p>
+
+
+    <h3>Logging</h3>
+
+    <p>During development and maybe later you sometimes need the output of information.
+    Therefore Logging is needed. Because the selector extends BaseExtendSelector or directly
+    BaseSelector it is an Ant <tt>DataType</tt> and therefore a <tt>ProjectComponent</tt>. <br>
+    That means that you have access to the project object and its logging capability.
+    <tt>ProjectComponent</tt> itself provides <i>log</i> methods which will do the
+    access to the project instance. Logging is therefore done simply with:
+    <pre>
+        log( "message" );
+    </pre>
+    or
+    <pre>
+        log( "message" , loglevel );
+    </pre>
+    where the <tt>loglevel</tt> is one of the values <ul>
+    <li> org.apache.tools.ant.Project.MSG_ERR </li>
+    <li> org.apache.tools.ant.Project.MSG_WARN </li>
+    <li> org.apache.tools.ant.Project.MSG_INFO  (= default) </li>
+    <li> org.apache.tools.ant.Project.MSG_VERBOSE </li>
+    <li> org.apache.tools.ant.Project.MSG_DEBUG </li>
+    </ul>
+    </p>
+
+    
+  </body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/selectors.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/selectors.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/selectors.html	(revision 14989)
@@ -0,0 +1,1527 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  <head>
+    <meta http-equiv="Content-Language" content="en-us">
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Selectors in Ant</title>
+  </head>
+
+  <body>
+    <h2>Selectors</h2>
+
+    <p>Selectors are a mechanism whereby the files that make up a
+    <code>&lt;fileset&gt;</code> can be selected based on criteria
+    other than filename as provided by the <code>&lt;include&gt;</code>
+    and <code>&lt;exclude&gt;</code> tags.</p>
+
+    <h3>How to use a Selector</h3>
+
+    <p>A selector is an element of FileSet, and appears within it. It can
+    also be defined outside of any target by using the <code>&lt;selector&gt;</code> tag
+    and then using it as a reference.
+    </p>
+
+    <p>Different selectors have different attributes. Some selectors can
+    contain other selectors, and these are called
+    <a href="#selectcontainers"><code>Selector Containers</code></a>.
+    There is also a category of selectors that allow
+    user-defined extensions, called
+    <a href="#customselect"><code>Custom Selectors</code></a>.
+    The ones built in to Ant are called
+    <a href="#coreselect"><code>Core Selectors</code></a>.
+    </p>
+
+    <a name="coreselect"></a>
+    <h3>Core Selectors</h3>
+
+    <p>Core selectors are the ones that come standard
+    with Ant. They can be used within a fileset and can be contained
+    within Selector Containers.</p>
+
+    <p>The core selectors are:</p>
+
+    <ul>
+      <li><a href="#containsselect"><code>&lt;contains&gt;</code></a> - Select
+        files that contain a particular text string</li>
+      <li><a href="#dateselect"><code>&lt;date&gt;</code></a> - Select files
+        that have been modified either before or after a particular date
+        and time</li>
+      <li><a href="#dependselect"><code>&lt;depend&gt;</code></a> - Select files
+        that have been modified more recently than equivalent files
+        elsewhere</li>
+      <li><a href="#depthselect"><code>&lt;depth&gt;</code></a> - Select files
+        that appear so many directories down in a directory tree</li>
+      <li><a href="#differentselect"><code>&lt;different&gt;</code></a> - Select files
+        that are different from those elsewhere</li>
+      <li><a href="#filenameselect"><code>&lt;filename&gt;</code></a> - Select
+        files whose name matches a particular pattern. Equivalent to
+        the include and exclude elements of a patternset.</li>
+      <li><a href="#presentselect"><code>&lt;present&gt;</code></a> - Select
+        files that either do or do not exist in some other location</li>
+      <li><a href="#regexpselect"><code>&lt;containsregexp&gt;</code></a> - Select
+        files that match a regular expression</li>
+      <li><a href="#sizeselect"><code>&lt;size&gt;</code></a> - Select files
+        that are larger or smaller than a particular number of bytes.</li>
+      <li><a href="#typeselect"><code>&lt;type&gt;</code></a> - Select files
+        that are either regular files or directories.</li>
+      <li><a href="#modified"><code>&lt;modified&gt;</code></a> - Select files if
+        the return value of the configured algorithm is different from that
+        stored in a cache.</li>
+      <li><a href="#signedselector"><code>&lt;signedselector&gt;</code></a> - Select files if
+        they are signed, and optionally if they have a signature of a certain name.
+      </li>
+      <li><a href="#scriptselector"><code>&lt;scriptselector&gt;</code></a> - 
+        Use a BSF or JSR 223 scripting language to create
+        your own selector
+      </li>
+    </ul>
+
+    <a name="containsselect"></a>
+    <h4>Contains Selector</h4>
+
+    <p>The <code>&lt;contains&gt;</code> tag in a FileSet limits
+    the files defined by that fileset to only those which contain the
+    string specified by the <code>text</code> attribute.
+    .</p>
+    <p>The <code>&lt;contains&gt;</code> selector can be used as a
+      ResourceSelector (see the
+      <a href="resources.html#restrict">&lt;restrict&gt;</a>
+      ResourceCollection).</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">text</td>
+        <td valign="top">Specifies the text that every file must contain
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">casesensitive</td>
+        <td valign="top">Whether to pay attention to case when looking
+          for the string in the <code>text</code> attribute. Default is
+          true.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">ignorewhitespace</td>
+        <td valign="top">Whether to eliminate whitespace before checking
+          for the string in the <code>text</code> attribute. Default is
+          false.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Contains Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*.html&quot;&gt;
+    &lt;contains text=&quot;script&quot; casesensitive=&quot;no&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the HTML files that contain the string
+    <code>script</code>.</p>
+
+
+    <a name="dateselect"></a>
+    <h4>Date Selector</h4>
+
+    <p>The <code>&lt;date&gt;</code> tag in a FileSet will put
+    a limit on the files specified by the include tag, so that tags
+    whose last modified date does not meet the date limits specified
+    by the selector will not end up being selected.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">datetime</td>
+        <td valign="top">Specifies the date and time to test for.
+          Should be in the format MM/DD/YYYY HH:MM AM_or_PM, or
+          an alternative pattern specified via the <i>pattern</i>
+          attribute.
+        </td>
+        <td valign="top" align="center" rowspan="2">At least one of the two.</td>
+      </tr>
+      <tr>
+        <td valign="top">millis</td>
+        <td valign="top">The number of milliseconds since 1970 that should
+          be tested for. It is usually much easier to use the datetime
+          attribute.
+        </td>
+      </tr>
+      <tr>
+        <td valign="top">when</td>
+        <td valign="top">Indicates how to interpret the date, whether
+          the files to be selected are those whose last modified times should
+          be before, after, or equal to the specified value. Acceptable
+          values for this attribute are:
+          <ul>
+            <li>before - select files whose last modified date is before the indicated date
+            <li>after - select files whose last modified date is after the indicated date
+            <li>equal - select files  whose last modified date is this exact date
+          </ul>
+          The default is equal.
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">granularity</td>
+        <td valign="top">The number of milliseconds leeway to use when
+          comparing file modification times. This is needed because not every
+          file system supports tracking the last modified time to the
+          millisecond level. Default is 0 milliseconds, or 2 seconds on DOS systems.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">pattern</td>
+        <td valign="top">The <CODE>SimpleDateFormat</CODE>-compatible pattern
+          to use when interpreting the <i>datetime</i> attribute.
+          <i>Since Ant 1.6.2</i>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">checkdirs</td>
+        <td valign="top">
+          Indicates whether or not to check dates on directories.
+        </td>
+        <td valign="top" align="center">No, defaults to <i>false</i></td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Date Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${jar.path}&quot; includes=&quot;**/*.jar&quot;&gt;
+    &lt;date datetime=&quot;01/01/2001 12:00 AM&quot; when=&quot;before&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all JAR files which were last modified before midnight
+    January 1, 2001.</p>
+
+
+    <a name="dependselect"></a>
+    <h4>Depend Selector</h4>
+
+    <p>The <code>&lt;depend&gt;</code> tag selects files
+    whose last modified date is later than another, equivalent file in
+    another location.</p>
+
+    <p>The <code>&lt;depend&gt;</code> tag supports the use of a
+    contained <a href="mapper.html"><code>&lt;mapper&gt;</code></a> element
+    to define the location of the file to be compared against. If no
+    <code>&lt;mapper&gt;</code> element is specified, the
+    <code>identity</code> type mapper is used.</p>
+
+    <p>The <code>&lt;depend&gt;</code> selector is case-sensitive.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">targetdir</td>
+        <td valign="top">The base directory to look for the files to compare
+          against. The precise location depends on a combination of this
+          attribute and the <code>&lt;mapper&gt;</code> element, if any.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">granularity</td>
+        <td valign="top">The number of milliseconds leeway to give before
+          deciding a file is out of date. This is needed because not every
+          file system supports tracking the last modified time to the
+          millisecond level. Default is 0 milliseconds, or 2 seconds on DOS systems.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Depend Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${ant.1.5}/src/main&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;depend targetdir=&quot;${ant.1.4.1}/src/main&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the Java source files which were modified in the
+      1.5 release.
+    </p>
+
+
+    <a name="depthselect"></a>
+    <h4>Depth Selector</h4>
+
+    <p>The <code>&lt;depth&gt;</code> tag selects files based on
+    how many directory levels deep they are in relation to the base
+    directory of the fileset.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">min</td>
+        <td valign="top">The minimum number of directory levels below
+          the base directory that a file must be in order to be selected.
+          Default is no limit.
+        </td>
+        <td valign="top" align="center" rowspan="2">At least one of the two.</td>
+      </tr>
+      <tr>
+        <td valign="top">max</td>
+        <td valign="top">The maximum number of directory levels below
+          the base directory that a file can be and still be selected.
+          Default is no limit.
+        </td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Depth Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;depth max=&quot;1&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all files in the base directory and one directory below
+    that.</p>
+
+    <a name="differentselect"></a>
+    <h4>Different Selector</h4>
+
+    <p>The <code>&lt;different&gt;</code> selector will select a file
+    if it is deemed to be 'different' from an equivalent file in
+    another location. The rules for determining difference between
+    the two files are as follows:
+    <ol>
+    <li> If there is no 'other' file, it's different.
+    <li> Files with different lengths are different.
+    <li> If <tt>ignoreFileTimes</tt> is turned off, then differing file
+    timestamps will cause files to be regarded as different.
+    <li> Unless <tt>ignoreContents</tt> is set to true,
+         a byte-for-byte check is run against the two files.
+    </ol>
+
+    This is a useful selector to work with programs and tasks that don't handle
+    dependency checking properly; even if a predecessor task always creates its
+    output files, followup tasks can be driven off copies made with a different
+    selector, so their dependencies are driven on the absolute state of the
+    files, not just a timestamp. For example: anything fetched from a web site,
+    or the output of some program. To reduce the amount of checking, when using
+    this task inside a <code>&lt;copy&gt;</code> task, set
+    <tt>preservelastmodified</tt> to <i>true</i> to propagate the timestamp
+    from the source file to the destination file.<p>
+
+    The <code>&lt;different&gt;</code> selector supports the use of a
+    contained <a href="mapper.html"><code>&lt;mapper&gt;</code></a> element
+    to define the location of the file to be compared against. If no
+    <code>&lt;mapper&gt;</code> element is specified, the
+    <code>identity</code> type mapper is used.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">targetdir</td>
+        <td valign="top">The base directory to look for the files to compare
+          against. The precise location depends on a combination of this
+          attribute and the <code>&lt;mapper&gt;</code> element, if any.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">ignoreFileTimes</td>
+        <td valign="top">Whether to use file times in the comparison or not.
+          Default is true (time differences are ignored).
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">ignoreContents</td>
+        <td valign="top">Whether to do a byte per byte compare.
+          Default is false (contents are compared).
+          Since Ant 1.6.3
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">granularity</td>
+        <td valign="top">The number of milliseconds leeway to give before
+          deciding a file is out of date. This is needed because not every
+          file system supports tracking the last modified time to the
+          millisecond level. Default is 0 milliseconds, or 2 seconds on DOS systems.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Different Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${ant.1.5}/src/main&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;different targetdir=&quot;${ant.1.4.1}/src/main&quot;
+        ignoreFileTimes="true"/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Compares all the Java source files between the 1.4.1 and the 1.5 release
+    and selects those who are different, disregarding file times.
+    </p>
+
+    <a name="filenameselect"></a>
+    <h4>Filename Selector</h4>
+
+    <p>The <code>&lt;filename&gt;</code> tag acts like the
+    <code>&lt;include&gt;</code> and <code>&lt;exclude&gt;</code>
+    tags within a fileset. By using a selector instead, however,
+    one can combine it with all the other selectors using whatever
+    <a href="#selectcontainers">selector container</a> is desired.
+    </p>
+
+    <p>The <code>&lt;filename&gt;</code> selector is
+    case-sensitive.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of files to select. The name parameter
+          can contain the standard Ant wildcard characters.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">casesensitive</td>
+        <td valign="top">Whether to pay attention to case when looking
+          at file names. Default is "true".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">negate</td>
+        <td valign="top">Whether to reverse the effects of this filename
+          selection, therefore emulating an exclude rather than include
+          tag. Default is "false".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Filename Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;filename name=&quot;**/*.css&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the cascading style sheet files.</p>
+
+
+    <a name="presentselect"></a>
+    <h4>Present Selector</h4>
+
+    <p>The <code>&lt;present&gt;</code> tag selects files
+    that have an equivalent file in another directory tree.</p>
+
+    <p>The <code>&lt;present&gt;</code> tag supports the use of a
+    contained <a href="mapper.html"><code>&lt;mapper&gt;</code></a> element
+    to define the location of the file to be tested against. If no
+    <code>&lt;mapper&gt;</code> element is specified, the
+    <code>identity</code> type mapper is used.</p>
+
+    <p>The <code>&lt;present&gt;</code> selector is case-sensitive.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">targetdir</td>
+        <td valign="top">The base directory to look for the files to compare
+          against. The precise location depends on a combination of this
+          attribute and the <code>&lt;mapper&gt;</code> element, if any.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">present</td>
+        <td valign="top">Whether we are requiring that a file is present in
+          the src directory tree only, or in both the src and the target
+          directory tree. Valid values are:
+          <ul>
+            <li>srconly - select files only if they are in the src
+              directory tree but not in the target directory tree
+            <li>both - select files only if they are present both in the
+              src and target directory trees
+          </ul>
+          Default is both. Setting this attribute to &quot;srconly&quot;
+          is equivalent to wrapping the selector in the <code>&lt;not&gt;</code>
+          selector container.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Present Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${ant.1.5}/src/main&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;present present=&quot;srconly&quot; targetdir=&quot;${ant.1.4.1}/src/main&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the Java source files which are new in the
+      1.5 release.
+    </p>
+
+    <a name="regexpselect"></a>
+    <h4>Regular Expression Selector</h4>
+
+    <p>The <code>&lt;containsregexp&gt;</code> tag in a FileSet limits
+    the files defined by that fileset to only those which contain a
+    match to the regular expression specified by the <code>expression</code> attribute.
+    </p>
+    <p>The <code>&lt;containsregexp&gt;</code> selector can be used as a
+      ResourceSelector (see the
+      <a href="resources.html#restrict">&lt;restrict&gt;</a>
+      ResourceCollection).</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">expression</td>
+        <td valign="top">Specifies the regular expression that must
+        match true in every file</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the regular expression Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;*.txt&quot;&gt;
+    &lt;containsregexp expression=&quot;[4-6]\.[0-9]&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the text files that match the regular expression
+    (have a 4,5 or 6 followed by a period and a number from 0 to 9).
+
+
+    <a name="sizeselect"></a>
+    <h4>Size Selector</h4>
+
+    <p>The <code>&lt;size&gt;</code> tag in a FileSet will put
+    a limit on the files specified by the include tag, so that tags
+    which do not meet the size limits specified by the selector will not
+    end up being selected.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">value</td>
+        <td valign="top">The size of the file which should be tested for.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">units</td>
+        <td valign="top">The units that the <code>value</code> attribute
+          is expressed in. When using the standard single letter SI
+          designations, such as &quot;k&quot;,&quot;M&quot;, or
+          &quot;G&quot;, multiples of 1000 are used. If you want to use
+          power of 2 units, use the IEC standard: &quot;Ki&quot; for 1024,
+          &quot;Mi&quot; for 1048576, and so on. The default is no units,
+          which means the <code>value</code> attribute expresses the exact
+          number of bytes.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">when</td>
+        <td valign="top">Indicates how to interpret the size, whether
+          the files to be selected should be larger, smaller, or equal to
+          that value. Acceptable values for this attribute are:
+          <ul>
+            <li>less - select files less than the indicated size
+            <li>more - select files greater than the indicated size
+            <li>equal - select files this exact size
+          </ul>
+          The default is equal.
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Size Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${jar.path}&quot;&gt;
+  &lt;patternset&gt;
+    &lt;include name=&quot;**/*.jar&quot;/&gt;
+  &lt;/patternset&gt;
+  &lt;size value=&quot;4&quot; units=&quot;Ki&quot; when=&quot;more&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all JAR files that are larger than 4096 bytes.</p>
+
+    <a name="typeselect"></a>
+    <h4>Type Selector</h4>
+
+    <p>The <code>&lt;type&gt;</code> tag selects files of a certain type:
+    directory or regular.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">type</td>
+        <td valign="top">The type of file which should be tested for.
+            Acceptable values are:
+            <ul>
+                <li>file - regular files</li>
+                <li>dir - directories</li>
+            </ul>
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Type Selector to select only
+    directories in <code>${src}</code></p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${src}&quot;&gt;
+  &lt;type type="dir"/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>The Type Selector is often used in conjunction with other selectors.
+    For example, to select files that also exist in a <code>template</code>
+    directory, but avoid selecting empty directories, use:
+
+<blockquote><pre>
+&lt;fileset dir="${src}"&gt;
+    &lt;and&gt;
+        &lt;present targetdir="template"/&gt;
+        &lt;type type="file"/&gt;
+    &lt;/and&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+
+    <a name="modified"></a>
+    <h4>Modified Selector</h4>
+    <p>The <code>&lt;modified&gt;</code> selector computes a value for a file, compares that
+    to the value stored in a cache and select the file, if these two values
+    differ.</p>
+    <p>Because this selector is highly configurable the order in which the selection is done
+    is: <ol>
+        <li> get the absolute path for the file </li>
+        <li> get the cached value from the configured cache (absolute path as key) </li>
+        <li> get the new value from the configured algorithm </li>
+        <li> compare these two values with the configured comparator </li>
+        <li> update the cache if needed and requested </li>
+        <li> do the selection according to the comparison result </li>
+        </ol>
+    The comparison, computing of the hashvalue and the store is done by implementation
+    of special interfaces. Therefore they may provide additional parameters.</p>
+
+    <p>The <code>&lt;modified&gt;</code> selector can be used as a
+      ResourceSelector (see the
+      <a href="resources.html#restrict">&lt;restrict&gt;</a>
+      ResourceCollection).
+    In that case it maps simple file resources to files and does its job. If the
+    resource is from another type, the <code>&lt;modified&gt;</code> selector tries
+    to (<b>attention!</b>) copy the content into a local file for computing the
+    hashvalue.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top"> algorithm </td>
+        <td valign="top"> The type of algorithm should be used.
+            Acceptable values are (further information see later):
+            <ul>
+                <li> hashvalue - HashvalueAlgorithm </li>
+                <li> digest - DigestAlgorithm </li>
+                <li> checksum - ChecksumAlgorithm </li>
+            </ul>
+        </td>
+        <td valign="top" align="center"> No, defaults to <i>digest</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> cache </td>
+        <td valign="top"> The type of cache should be used.
+            Acceptable values are (further information see later):
+            <ul>
+                <li> propertyfile - PropertyfileCache </li>
+            </ul>
+        </td>
+        <td valign="top" align="center"> No, defaults to <i>propertyfile</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> comparator </td>
+        <td valign="top"> The type of comparator should be used.
+            Acceptable values are (further information see later):
+            <ul>
+                <li> equal - EqualComparator </li>
+                <li> rule - java.text.RuleBasedCollator
+                  <!-- NOTE -->
+                  <i>(see <a href="#ModSelNote">note</a> for restrictions)</i>
+                </li>
+            </ul>
+        </td>
+        <td valign="top" align="center"> No, defaults to <i>equal</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> algorithmclass </td>
+        <td valign="top"> Classname of custom algorithm implementation. Lower
+          priority than <i>algorithm</i>. </td>
+        <td valign="top" align="center"> No </td>
+      </tr>
+      <tr>
+        <td valign="top"> cacheclass </td>
+        <td valign="top"> Classname of custom cache implementation. Lower
+          priority than <i>cache</i>. </td>
+        <td valign="top" align="center"> No </td>
+      </tr>
+      <tr>
+        <td valign="top"> comparatorclass </td>
+        <td valign="top"> Classname of custom comparator implementation. Lower
+          priority than <i>comparator</i>. </td>
+        <td valign="top" align="center"> No </td>
+      </tr>
+      <tr>
+        <td valign="top"> update </td>
+        <td valign="top"> Should the cache be updated when values differ? (boolean) </td>
+        <td valign="top" align="center"> No, defaults to <i>true</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> seldirs </td>
+        <td valign="top"> Should directories be selected? (boolean) </td>
+        <td valign="top" align="center"> No, defaults to <i>true</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> selres </td>
+        <td valign="top"> Should Resources whithout an InputStream, and
+           therefore without checking, be selected?  (boolean) </td>
+        <td valign="top" align="center"> No, defaults to <i>true</i>. Only relevant
+           when used as ResourceSelector. </td>
+      </tr>
+      <tr>
+        <td valign="top"> delayupdate </td>
+        <td valign="top"> If set to <i>true</i>, the storage of the cache will be delayed until the
+             next finished BuildEvent; task finished, target finished or build finished,
+             whichever comes first.  This is provided for increased performance.  If set
+             to <i>false</i>, the storage of the cache will happen with each change.  This
+             attribute depends upon the <i>update</i> attribute. (boolean)</td>
+        <td valign="top" align="center"> No, defaults to <i>true</i> </td>
+      </tr>
+    </table>
+
+    <p>These attributes can be set with nested <code>&lt;param/&gt;</code> tags. With <code>&lt;param/&gt;</code>
+    tags you can set other values too - as long as they are named according to
+    the following rules: <ul>
+        <li> <b> algorithm </b>: same as attribute algorithm </li>
+        <li> <b> cache </b>: same as attribute cache </li>
+        <li> <b> comparator </b>: same as attribute comparator </li>
+        <li> <b> algorithmclass </b>: same as attribute algorithmclass </li>
+        <li> <b> cacheclass </b>: same as attribute cacheclass </li>
+        <li> <b> comparatorclass </b>: same as attribute comparatorclass </li>
+        <li> <b> update </b>: same as attribute update </li>
+        <li> <b> seldirs </b>: same as attribute seldirs </li>
+        <li> <b> algorithm.* </b>: Value is transfered to the algorithm via its
+                                   <i>set</i>XX-methods </li>
+        <li> <b> cache.* </b>: Value is transfered to the cache via its
+                                   <i>set</i>XX-methods </li>
+        <li> <b> comparator.* </b>: Value is transfered to the comparator via its
+                                   <i>set</i>XX-methods </li>
+    </ul></p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr><td colspan="2"><font size="+1"><b> Algorithm options</b></font></td></tr>
+      <tr>
+        <td valign="top"><b>Name</b></td>
+        <td valign="top"><b>Description</b></td>
+      </tr>
+      <tr>
+        <td valign="top"> hashvalue </td>
+        <td valign="top"> Reads the content of a file into a java.lang.String
+          and use thats hashValue(). No additional configuration required.
+        </td>
+      </tr>
+      <tr>
+        <td valign="top"> digest </td>
+        <td valign="top"> Uses java.security.MessageDigest. This Algorithm supports
+          the following attributes:
+          <ul>
+            <li><i>algorithm.algorithm</i> (optional): Name of the Digest algorithm
+                (e.g. 'MD5' or 'SHA', default = <i>MD5</i>) </li>
+            <li><i>algorithm.provider</i> (optional): Name of the Digest provider
+                (default = <i>null</i>) </li>
+          </ul>
+        </td>
+      </tr>
+      <tr>
+        <td valign="top"> checksum </td>
+        <td valign="top"> Uses java.util.zip.Checksum. This Algorithm supports
+          the following attributes:
+          <ul>
+            <li><i>algorithm.algorithm</i> (optional): Name of the algorithm
+                (e.g. 'CRC' or 'ADLER', default = <i>CRC</i>) </li>
+          </ul>
+        </td>
+      </tr>
+      <tr><td colspan="2"><font size="+1"><b> Cache options </b></font></td></tr>
+      <tr>
+        <td valign="top"> propertyfile </td>
+        <td valign="top"> Use the java.util.Properties class and its possibility
+          to load and store to file.
+          This Cache implementation supports the following attributes:
+          <ul>
+            <li><i>cache.cachefile</i> (optional): Name of the properties-file
+                (default = <i>cache.properties</i>) </li>
+          </ul>
+        </td>
+      </tr>
+      <tr><td colspan="2"><font size="+1"><b> Comparator options</b></font></td></tr>
+      <tr>
+        <td valign="top"> equal </td>
+        <td valign="top"> Very simple object comparison. </td>
+      </tr>
+      <tr>
+        <td valign="top"> rule </td>
+        <td valign="top"> Uses <i>java.text.RuleBasedCollator</i> for Object
+          comparison.
+          <!-- NOTE -->
+          <i>(see <a href="#ModSelNote">note</a> for restrictions)</i>
+        </td>
+      </tr>
+    </table>
+
+    <p>The <code>&lt;modified&gt;</code> selector supports a nested
+    <code>&lt;classpath&gt;</code> element that represents a <a href="../using.html#path">
+    PATH like structure</a> for finding custom interface implementations. </p>
+
+    <p>Here are some examples of how to use the Modified Selector:</p>
+
+    <blockquote><pre>
+    &lt;copy todir="dest"&gt;
+        &lt;fileset dir="src"&gt;
+            &lt;modified/&gt;
+        &lt;/fileset&gt;
+    &lt;/copy&gt;
+    </pre></blockquote>
+    <p>This will copy all files from <i>src</i> to <i>dest</i> which content has changed.
+    Using an updating PropertyfileCache with cache.properties and
+    MD5-DigestAlgorithm.</p>
+
+    <blockquote><pre>
+    &lt;copy todir="dest"&gt;
+        &lt;fileset dir="src"&gt;
+            &lt;modified update="true"
+                      seldirs="true"
+                      cache="propertyfile"
+                      algorithm="digest"
+                      comparator="equal"&gt;
+                &lt;param name="cache.cachefile"     value="cache.properties"/&gt;
+                &lt;param name="algorithm.algorithm" value="MD5"/&gt;
+            &lt;/modified&gt;
+        &lt;/fileset&gt;
+    &lt;/copy&gt;
+    </pre></blockquote>
+  <p>This is the same example rewritten as CoreSelector with setting the all the values
+  (same as defaults are).</p>
+
+    <blockquote><pre>
+    &lt;copy todir="dest"&gt;
+        &lt;fileset dir="src"&gt;
+            &lt;custom class="org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector"&gt;
+                &lt;param name="update"     value="true"/&gt;
+                &lt;param name="seldirs"    value="true"/&gt;
+                &lt;param name="cache"      value="propertyfile"/&gt;
+                &lt;param name="algorithm"  value="digest"/&gt;
+                &lt;param name="comparator" value="equal"/&gt;
+                &lt;param name="cache.cachefile"     value="cache.properties"/&gt;
+                &lt;param name="algorithm.algorithm" value="MD5"/&gt;
+            &lt;/custom&gt;
+        &lt;/fileset&gt;
+    &lt;/copy&gt;
+    </pre></blockquote>
+  <p>And this is the same rewritten as CustomSelector.</p>
+
+    <blockquote><pre>
+  &lt;target name="generate-and-upload-site"&gt;
+      &lt;echo&gt; generate the site using forrest &lt;/echo&gt;
+      &lt;antcall target="site"/&gt;
+
+      &lt;echo&gt; upload the changed file &lt;/echo&gt;
+      &lt;ftp server="${ftp.server}" userid="${ftp.user}" password="${ftp.pwd}"&gt;
+          &lt;fileset dir="htdocs/manual"&gt;
+              &lt;modified/&gt;
+          &lt;/fileset&gt;
+      &lt;/ftp&gt;
+  &lt;/target&gt;
+    </pre></blockquote>
+  <p>A useful scenario for this selector inside a build environment
+  for homepage generation (e.g. with <a href="http://xml.apache.org/forrest/">
+  Apache Forrest</a>). Here all <b>changed</b> files are uploaded to the server. The
+  CacheSelector saves therefore much upload time.</p>
+
+    <blockquote><pre>
+  &lt;modified cacheclassname="com.mycompany.MyCache"&gt;
+      &lt;classpath&gt;
+          &lt;pathelement location="lib/mycompony-antutil.jar"/&gt;
+      &lt;/classpath&gt;
+  &lt;/modified&gt;
+    </pre></blockquote>
+    <p>Uses <tt>com.mycompany.MyCache</tt> from a jar outside of Ants own classpath
+    as cache implementation</p>
+
+  <a name="ModSelNote"></a>
+  <h4>Note on RuleBasedCollator</h4>
+  <p>The RuleBasedCollator needs a format for its work, but its needed while
+  instantiation. There is a problem in the initialization algorithm for this
+  case. Therefore you should not use this (or tell me the workaround :-).</p>
+
+      <a name="signedselector"></a>
+      <h4>Signed Selector</h4>
+
+      <p>
+        The <code>&lt;signedselector&gt;</code> tag selects signed files and optionaly
+        signed with a certain name.
+      </p>
+      <p>
+        This selector has been added in Apache Ant 1.7.
+      </p>
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+        <tr>
+          <td valign="top">name</td>
+          <td valign="top"> The signature name to check for.</td>
+          <td valign="top" align="center">no</td>
+        </tr>
+      </table>
+
+      <a name="scriptselector"></a>
+      <h4>Script Selector</h4>
+
+      <p>
+        The <code>&lt;scriptselector&gt;</code> element enables you
+        to write a complex selection algorithm in any
+        <a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+        or
+        <a href="https://scripting.dev.java.net">JSR 223</a>
+        supported language.</p>
+        See the <a href="../OptionalTasks/script.html">Script</a> task for
+        an explanation of scripts and dependencies.
+      </p>
+      <p>
+        This selector was added in Apache Ant 1.7.
+      </p>
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+        <tr>
+          <td valign="top">language</td>
+          <td valign="top">language of the script.</td>
+          <td valign="top" align="center">yes</td>
+        </tr>
+        <tr>
+          <td valign="top">manager</td>
+          <td valign="top">
+            The script engine manager to use.
+            See the <a href="../OptionalTasks/script.html">script</a> task
+            for using this attribute.
+          </td>
+          <td valign="top" align="center">No - default is "auto"</td>
+        </tr>
+        <tr>
+          <td valign="top">src</td>
+          <td valign="top">filename of the script</td>
+          <td valign="top" align="center">no</td>
+        </tr>
+        <tr>
+          <td valign="top">setbeans</td>
+          <td valign="top">whether to have all properties, references and targets as
+            global variables in the script.</td>
+          <td valign="top" align="center">No, default is "true".</td>
+        </tr>
+        <tr>
+          <td valign="top">classpath</td>
+          <td valign="top">
+            The classpath to pass into the script.
+          </td>
+          <td align="center" valign="top">No</td>
+        </tr>
+        <tr>
+          <td valign="top">classpathref</td>
+          <td valign="top">The classpath to use, given as a
+            <a href="../using.html#references">reference</a> to a path defined elsewhere.
+            <td align="center" valign="top">No</td>
+          </tr>
+      </table>
+  <p>
+    This selector can take a nested &lt;classpath&gt; element.
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    on how to use this element.
+  </p>
+      <p>
+      If no <code>src</code> attribute is supplied, the script must be nested
+      inside the selector declaration.
+      </p>
+      <p>The embedded script is invoked for every test, with
+         the bean <code>self</code>
+        is bound to the selector. It has an attribute <code>selected</code>
+        must can be set using <code>setSelected(boolean)</code> to select that
+        file.
+
+      <p>
+
+      The following beans are configured for every script, alongside
+      the classic set of project, properties, and targets.
+
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Bean</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td valign="top"><b>Type</b></td>
+        </tr>
+        <tr>
+          <td valign="top">self</td>
+          <td valign="top">selector instance</td>
+          <td valign="top">org.apache.tools.ant.types.optional</td>
+        </tr>
+        <tr>
+          <td valign="top">filename</td>
+          <td valign="top">filename of the selection</td>
+          <td valign="top" >String</td>
+        </tr>
+        <tr>
+          <td valign="top">file</td>
+          <td valign="top">file of the selection</td>
+          <td valign="top" >java.io.File</td>
+        </tr>
+        <tr>
+          <td valign="top">basedir</td>
+          <td valign="top">Fileset base directory</td>
+          <td valign="top" >java.io.File</td>
+        </tr>
+
+      </table>
+      <p>
+      The <code>self</code> bean maps to the selector, which has the following
+      attributes. Only the <code>selected</code> flag is writeable, the rest
+      are read only via their getter methods.
+
+            <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Type</b></td>
+        </tr>
+        <tr>
+          <td valign="top">selected</td>
+          <td valign="top">writeable flag to select this file</td>
+          <td valign="top" align="center">boolean</td>
+        </tr>
+        <tr>
+          <td valign="top">filename</td>
+          <td valign="top">filename of the selection</td>
+          <td valign="top" >String</td>
+        </tr>
+        <tr>
+          <td valign="top">file</td>
+          <td valign="top">file of the selection</td>
+          <td valign="top" >java.io.File</td>
+        </tr>
+        <tr>
+          <td valign="top">basedir</td>
+          <td valign="top">Fileset base directory</td>
+          <td valign="top" >java.io.File</td>
+        </tr>
+      </table>
+
+      <p>
+      Example
+      </p>
+<pre>
+    &lt;scriptselector language=&quot;javascript&quot;&gt;
+      self.setSelected(true);
+    &lt;/scriptselector&gt;
+</pre>
+    <p>
+    Selects every file.
+    </p>
+
+<pre>
+    &lt;scriptselector language=&quot;javascript&quot;&gt;
+      self.setSelected((filename.length%2)==0);
+    &lt;/scriptselector&gt;
+</pre>
+Select files whose filename length is even.
+
+    <a name="selectcontainers"></a>
+    <h3>Selector Containers</h3>
+
+    <p>To create more complex selections, a variety of selectors that
+    contain other selectors are available for your use. They combine the
+    selections of their child selectors in various ways.</p>
+
+    <p>The selector containers are:</p>
+
+    <ul>
+      <li><a href="#andselect"><code>&lt;and&gt;</code></a> - select a file only if all
+        the contained selectors select it.
+      <li><a href="#majorityselect"><code>&lt;majority&gt;</code></a> - select a file
+        if a majority of its selectors select it.
+      <li><a href="#noneselect"><code>&lt;none&gt;</code></a> - select a file only if
+        none of the contained selectors select it.
+      <li><a href="#notselect"><code>&lt;not&gt;</code></a> - can contain only one
+        selector, and reverses what it selects and doesn't select.
+      <li><a href="#orselect"><code>&lt;or&gt;</code></a> - selects a file if any one
+        of the contained selectors selects it.
+      <li><a href="#selectorselect"><code>&lt;selector&gt;</code></a> - contains only one
+        selector and forwards all requests to it without alteration, provided
+        that any <code>&quot;if&quot;</code> or
+        <code>&quot;unless&quot;</code> conditions are met. This
+        is the selector to use if you want to define a reference. It is
+        usable as an element of <code>&lt;project&gt;</code>. It is also
+        the one to use if you want selection of files to be dependent on
+        Ant property settings.
+    </ul>
+
+    <p>All selector containers can contain any other selector, including
+    other containers, as an element. Using containers, the selector tags
+    can be arbitrarily deep. Here is a complete list of allowable
+    selector elements within a container:</P>
+
+    <ul>
+      <li><code>&lt;and&gt;</code></li>
+      <li><code>&lt;contains&gt;</code></li>
+      <li><code>&lt;custom&gt;</code></li>
+      <li><code>&lt;date&gt;</code></li>
+      <li><code>&lt;depend&gt;</code></li>
+      <li><code>&lt;depth&gt;</code></li>
+      <li><code>&lt;filename&gt;</code></li>
+      <li><code>&lt;majority&gt;</code></li>
+      <li><code>&lt;none&gt;</code></li>
+      <li><code>&lt;not&gt;</code></li>
+      <li><code>&lt;or&gt;</code></li>
+      <li><code>&lt;present&gt;</code></li>
+      <li><code>&lt;selector&gt;</code></li>
+      <li><code>&lt;size&gt;</code></li>
+    </ul>
+
+    <a name="andselect"></a>
+    <h4>And Selector</h4>
+
+    <p>The <code>&lt;and&gt;</code> tag selects files that are
+    selected by all of the elements it contains. It returns as
+    soon as it finds a selector that does not select the file,
+    so it is not guaranteed to check every selector.
+    </p>
+
+    <p>Here is an example of how to use the And Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${dist}&quot; includes=&quot;**/*.jar&quot;&gt;
+    &lt;and&gt;
+        &lt;size value=&quot;4&quot; units=&quot;Ki&quot; when=&quot;more&quot;/&gt;
+        &lt;date datetime=&quot;01/01/2001 12:00 AM&quot; when=&quot;before&quot;/&gt;
+    &lt;/and&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the JAR file larger than 4096 bytes which haven't been update
+      since the last millenium.
+    </p>
+
+
+    <a name="majorityselect"></a>
+    <h4>Majority Selector</h4>
+
+    <p>The <code>&lt;majority&gt;</code> tag selects files provided
+    that a majority of the contained elements also select it. Ties are
+    dealt with as specified by the <code>allowtie</code> attribute.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">allowtie</td>
+        <td valign="top">Whether files should be selected if there
+          are an even number of selectors selecting them as are
+          not selecting them. Default is true.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+
+    <p>Here is an example of how to use the Majority Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${docs}&quot; includes=&quot;**/*.html&quot;&gt;
+    &lt;majority&gt;
+        &lt;contains text=&quot;project&quot; casesensitive="false"/&gt;
+        &lt;contains text=&quot;taskdef&quot; casesensitive="false"/&gt;
+        &lt;contains text=&quot;IntrospectionHelper&quot; casesensitive="true"/&gt;
+    &lt;/majority&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the HTML files which contain at least two of the three
+    phrases "project", "taskdef", and "IntrospectionHelper" (this last phrase must
+    match case exactly).
+    </p>
+
+
+    <a name="noneselect"></a>
+    <h4>None Selector</h4>
+
+    <p>The <code>&lt;none&gt;</code> tag selects files that are
+    not selected by any of the elements it contains. It returns as
+    soon as it finds a selector that selects the file,
+    so it is not guaranteed to check every selector.
+    </p>
+
+    <p>Here is an example of how to use the None Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${src}&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;none&gt;
+        &lt;present targetdir=&quot;${dest}&quot;/&gt;
+        &lt;present targetdir=&quot;${dest}&quot;&gt;
+            &lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.class&quot;/&gt;
+        &lt;/present&gt;
+    &lt;/none&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects only Java files which do not have equivalent java or
+    class files in the dest directory.
+    </p>
+
+
+    <a name="notselect"></a>
+    <h4>Not Selector</h4>
+
+    <p>The <code>&lt;not&gt;</code> tag reverses the meaning of the
+    single selector it contains.
+    </p>
+
+    <p>Here is an example of how to use the Not Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${src}&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;not&gt;
+        &lt;contains text=&quot;test&quot;/&gt;
+    &lt;/not&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the files in the src directory that do not contain the
+    string "test".
+    </p>
+
+
+    <a name="orselect"></a>
+    <h4>Or Selector</h4>
+
+    <p>The <code>&lt;or&gt;</code> tag selects files that are
+    selected by any one of the elements it contains. It returns as
+    soon as it finds a selector that selects the file,
+    so it is not guaranteed to check every selector.
+    </p>
+
+    <p>Here is an example of how to use the Or Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${basedir}&quot;&gt;
+    &lt;or&gt;
+        &lt;depth max=&quot;0&quot;/&gt;
+        &lt;filename name="*.png"/&gt;
+        &lt;filename name="*.gif"/&gt;
+        &lt;filename name="*.jpg"/&gt;
+    &lt;/or&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the files in the top directory along with all the
+    image files below it.
+    </p>
+
+
+    <a name="selectorselect"></a>
+    <h4>Selector Reference</h4>
+
+    <p>The <code>&lt;selector&gt;</code> tag is used to create selectors
+    that can be reused through references. It is the only selector which can
+    be used outside of
+    any target, as an element of the <code>&lt;project&gt;</code> tag. It
+    can contain only one other selector, but of course that selector can
+    be a container.
+    </p>
+
+    <p>The <code>&lt;selector&gt;</code> tag can also be used to select
+    files conditionally based on whether an Ant property exists or not.
+    This functionality is realized using the <code>&quot;if&quot;</code> and
+    <code>&quot;unless&quot;</code> attributes in exactly the same way they
+    are used on targets or on the <code>&lt;include&gt;</code> and
+    <code>&lt;exclude&gt;</code> tags within a
+    <code>&lt;patternset&gt;</code>.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">if</td>
+        <td valign="top">Allow files to be selected only if the named
+          property is set.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">unless</td>
+        <td valign="top">Allow files to be selected only if the named
+          property is <b>not</b> set.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Selector Reference:</p>
+
+    <blockquote><pre>
+&lt;project default=&quot;all&quot; basedir=&quot;./ant&quot;&gt;
+
+    &lt;selector id=&quot;completed&quot;&gt;
+        &lt;none&gt;
+            &lt;depend targetdir=&quot;build/classes&quot;&gt;
+                &lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.class&quot;/&gt;
+            &lt;/depend&gt;
+            &lt;depend targetdir=&quot;docs/manual/api&quot;&gt;
+                &lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.html&quot;/&gt;
+            &lt;/depend&gt;
+        &lt;/none&gt;
+    &lt;/selector&gt;
+
+    &lt;target&gt;
+        &lt;zip&gt;
+            &lt;fileset dir=&quot;src/main&quot; includes=&quot;**/*.java&quot;&gt;
+                &lt;selector refid=&quot;completed&quot;/&gt;
+            &lt;/fileset&gt;
+        &lt;/zip&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre></blockquote>
+
+    <p>Zips up all the Java files which have an up-to-date equivalent
+    class file and javadoc file associated with them.
+    </p>
+
+    <p>And an example of selecting files conditionally, based on whether
+    properties are set:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${working.copy}&quot;&gt;
+    &lt;or&gt;
+        &lt;selector if=&quot;include.tests&quot;&gt;
+            &lt;filename name=&quot;**/*Test.class&quot;&gt;
+        &lt;/selector&gt;
+        &lt;selector if=&quot;include.source&quot;&gt;
+            &lt;and&gt;
+                &lt;filename name=&quot;**/*.java&quot;&gt;
+                &lt;not&gt;
+                    &lt;selector unless=&quot;include.tests&quot;&gt;
+                        &lt;filename name=&quot;**/*Test.java&quot;&gt;
+                    &lt;/selector&gt;
+                &lt;/not&gt;
+            &lt;/and&gt;
+        &lt;/selector&gt;
+    &lt;/or&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>A fileset that conditionally contains Java source files and Test
+    source and class files.</p>
+
+    <a name="customselect"></a>
+    <h3>Custom Selectors</h3>
+
+    <p>You can write your own selectors and use them within the selector
+    containers by specifying them within the <code>&lt;custom&gt;</code> tag.</p>
+
+    <p>First, you have to write your selector class in Java. The only
+    requirement it must meet in order to be a selector is that it implements
+    the <code>org.apache.tools.ant.types.selectors.FileSelector</code>
+    interface, which contains a single method. See
+    <a href="selectors-program.html">Programming Selectors in Ant</a> for
+    more information.</p>
+
+    <p>Once that is written, you include it in your build file by using
+    the <code>&lt;custom&gt;</code> tag.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">classname</td>
+        <td valign="top">The name of your class that implements
+          <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">classpath</td>
+        <td valign="top">The classpath to use in order to load the
+          custom selector class. If neither this classpath nor the
+          classpathref are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">classpathref</td>
+        <td valign="top">A reference to a classpath previously
+          defined. If neither this reference nor the
+          classpath above are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is how you use <code>&lt;custom&gt;</code> to
+    use your class as a selector:
+    </p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${mydir}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;custom classname=&quot;com.mydomain.MySelector&quot;&gt;
+        &lt;param name=&quot;myattribute&quot; value=&quot;myvalue&quot;/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>A number of core selectors can also be used as custom selectors
+    by specifying their attributes using <code>&lt;param&gt;</code> elements. These
+    are</p>
+
+    <ul>
+      <li><a href="#containsselect">Contains Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.ContainsSelector</code>
+      <li><a href="#dateselect">Date Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DateSelector</code>
+      <li><a href="#depthselect">Depth Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DepthSelector</code>
+      <li><a href="#filenameselect">Filename Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.FilenameSelector</code>
+      <li><a href="#sizeselect">Size Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.SizeSelector</code>
+    </ul>
+
+    <p>Here is the example from the Depth Selector section rewritten
+    to use the selector through <code>&lt;custom&gt;</code>.</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;custom classname=&quot;org.apache.tools.ant.types.selectors.DepthSelector&quot;&gt;
+        &lt;param name=&quot;max&quot; value=&quot;1&quot;/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all files in the base directory and one directory below
+    that.</p>
+
+    <p>For more details concerning writing your own selectors, consult
+    <a href="selectors-program.html">Programming Selectors in Ant</a>.</p>
+
+    
+
+  </body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/tarfileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/tarfileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/tarfileset.html	(revision 14989)
@@ -0,0 +1,160 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>TarFileSet Type</title>
+</head>
+<body>
+<h2><a name="fileset">TarFileSet</a></h2>
+
+<p><em>TarFileSet</em> has been added as a stand-alone type in Ant
+1.7.</p>
+
+<p>A <code>&lt;tarfileset&gt;</code> is a special form of a <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code> which can behave in 2
+different ways : <br>
+</p>
+<ul>
+  <li>When the <span style="font-style: italic;">src</span> attribute
+  is used - or a nested resource collection has been specified, the
+  tarfileset is populated with tar entries found in the file <span
+  style="font-style: italic;">src</span>.<br>
+  </li>
+  <li>When the <span style="font-style: italic;">dir</span> attribute
+is used, the tarfileset is populated with filesystem files found under <span
+ style="font-style: italic;">dir</span>.<br>
+  </li>
+</ul>
+<p><code>&lt;tarfileset&gt;</code> supports all attributes of <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code>
+in addition to those listed below.<br>
+</p>
+<p>A tarfileset can be defined with the <span style="font-style:
+italic;">id </span>attribute and referred to with the <span
+style="font-style: italic;">refid</span> attribute.  This is also true
+for tarfileset which has been added in Ant 1.7.<br>
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody>
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td valign="top" align="center"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">prefix</td>
+      <td valign="top">all files in the fileset are prefixed with that 
+path in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">fullpath</td>
+      <td valign="top">the file described by the fileset is placed at  
+that exact location in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">src</td>
+      <td valign="top">may be used in place of the <i>dir</i> attribute
+ to specify a tar file whose contents will be extracted and     included
+in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">filemode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+plain files.  Default is 644.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">dirmode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+directories.  Default is 755.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">username</td>
+      <td valign="top">The username for the tar entry. This is not the same as the UID.
+       </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">group</td>
+      <td valign="top">The groupname for the tar entry. This is not the same as the GID.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">uid</td>
+      <td valign="top">The user identifier (UID) for the tar entry. This is an integer value
+        and is not the same as the username.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">gid</td>
+      <td valign="top">The group identifier (GID) for the tar entry.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+  </tbody>
+</table>
+<p>The <i>fullpath</i> attribute can only be set for filesets that
+represent a single file. The <i>prefix</i> and <i>fullpath</i>
+attributes cannot both be set on the same fileset.</p>
+<p>When using the <i>src</i> attribute, include and exclude patterns
+may be used to specify a subset of the archive for inclusion in the
+archive as with the <i>dir</i> attribute.</p>
+
+<p>Please note that currently only the <a
+href="../CoreTasks/tar.html">tar</a> task uses the permission and
+ownership attributes.</p>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any <a href="resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as src.</p>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+  &lt;copy todir="some-dir"&gt;
+    &lt;tarfileset includes="lib/**"&gt;
+      &lt;bzip2resource&gt;
+        &lt;url url="http://example.org/dist/some-archive.tar.bz2"/&gt;
+      &lt;/bzip2resource&gt;
+    &lt;/tarfileset&gt;
+  &lt;/copy&gt;
+      </pre></blockquote>
+
+<p>downloads the archive some-archive.tar.bz2, uncompresses and
+extracts it on the fly, copies the contents of the lib directory into
+some-dir and discards the rest of the archive.  File timestamps will
+be compared between the archive's entries and files inside the target
+directory, no files get overwritten unless they are out-of-date.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/xmlcatalog.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/xmlcatalog.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/xmlcatalog.html	(revision 14989)
@@ -0,0 +1,306 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XMLCatalog Type</title>
+</head>
+
+<body>
+
+<h2><a name="XMLCatalog">XMLCatalog</a></h2>
+
+<p>An XMLCatalog is a catalog of public resources such as DTDs or
+entities that are referenced in an XML document.  Catalogs are
+typically used to make web references to resources point to a locally
+cached copy of the resource.</p>
+
+<p>This allows the XML Parser, XSLT Processor or other consumer of XML 
+documents
+to efficiently allow a local substitution for a resource available on the 
+web.
+</p>
+<p><b>Note:</b> This task <em>uses, but does not depend on</em> external
+libraries not included in the Ant distribution.  See <a
+  href="../install.html#librarydependencies">Library Dependencies</a> for more
+information.</p>
+<p>This data type provides a catalog of resource locations based
+on the <a
+href="http://oasis-open.org/committees/entity/spec-2001-08-06.html">
+OASIS "Open Catalog" standard</a>.  The catalog entries are used
+both for Entity resolution and URI resolution, in accordance with
+the <code>org.xml.sax.EntityResolver</code> and <code>
+javax.xml.transform.URIResolver</code> interfaces as defined
+in the <a href="http://java.sun.com/xml/jaxp">Java API for XML
+Processing (JAXP) Specification</a>.</p>
+<p>For example, in a <code>web.xml</code> file, the DTD is referenced as:
+<pre>
+&lt;!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN&quot;
+  &quot;http://java.sun.com/j2ee/dtds/web-app_2_2.dtd&quot;&gt;
+</pre>
+The XML processor, without XMLCatalog support, would need to retrieve the 
+DTD from
+the URL specified whenever validation of the document was required.
+</p>
+<p>This can be very time consuming during the build process,
+especially where network throughput is limited.  Alternatively, you
+can do the following:
+<ol>
+<li>Copy <code>web-app_2_2.dtd</code> onto your local disk somewhere (either in the
+filesystem or even embedded inside a jar or zip file on the classpath).</li>
+<li>Create an <code>&lt;xmlcatalog&gt;</code> with a <code>&lt;dtd&gt;</code> 
+element whose <code>location</code> attribute points to the file.</li>
+<li>Success! The XML processor will now use the local copy instead of calling out
+to the internet.</li>
+</ol>
+</p>
+<p>XMLCatalogs can appear inside tasks
+that support this feature or at the same level as <code>target</code>
+- i.e., as children of <code>project</code> for reuse across different 
+tasks,
+e.g. XML Validation and XSLT Transformation.  The XML Validate task
+uses XMLCatalogs for entity resolution.  The XSLT Transformation
+task uses XMLCatalogs for both entity and URI resolution.</p>
+<p>XMLCatalogs are specified as either a reference to another
+XMLCatalog, defined previously in a build file, or as a list of
+<code>dtd</code> or <code>entity</code> locations.  In addition,
+external catalog files may be specified in a nested <code>catalogpath</code> ,
+but they will be ignored unless the resolver library from
+xml-commons is available in the system classpath.  <b>Due to backwards
+incompatible changes in the resolver code after the release of
+resolver 1.0, Ant will not support resolver.jar in version 1.0 - we
+expect a resolver release 1.1 to happen before Ant 1.6 gets
+released.</b>  A separate classpath for entity resolution may be
+specified inline via nested <code>classpath</code> elements; otherwise
+the system classpath is used for this as well.</p>
+<p>XMLCatalogs can also be nested inside other XMLCatalogs.  For
+example, a "superset" XMLCatalog could be made by including several
+nested XMLCatalogs that referred to other, previously defined
+XMLCatalogs.</p>
+<p>Resource locations can be specified either in-line or in
+external catalog file(s), or both.  In order to use an external
+catalog file, the xml-commons resolver library ("resolver.jar")
+must be in your path.  External catalog files may be either <a
+href="http://oasis-open.org/committees/entity/background/9401.html">
+plain text format</a> or <a
+href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">
+XML format</a>.  If the xml-commons resolver library is not found in the
+classpath, external catalog files, specified in <code>catalogpath</code>, 
+will be ignored and a warning
+will be logged.  In this case, however, processing of inline entries will
+proceed normally.</p>
+<p>Currently, only <code>&lt;dtd&gt;</code> and
+<code>&lt;entity&gt;</code> elements may be specified inline; these
+roughly correspond to OASIS catalog entry types <code>PUBLIC</code> and
+<code>URI</code> respectively.  By contrast, external catalog files
+may use any of the entry types defined in the 
+<a href="http://oasis-open.org/committees/entity/spec-2001-08-06.html">
++OASIS specification</a>.</p>
+<h3><a name="ResolverAlgorithm">Entity/DTD/URI Resolution Algorithm</a></h3>
+
+When an entity, DTD, or URI is looked up by the XML processor, the
+XMLCatalog searches its list of entries to see if any match.  That is,
+it attempts to match the <code>publicId</code> attribute of each entry
+with the PublicID or URI of the entity to be resolved.  Assuming a
+matching entry is found, XMLCatalog then executes the following steps:
+
+<h4>1. Filesystem lookup</h4>
+
+<p>The <code>location</code> is first looked up in the filesystem.  If
+the <code>location</code> is a relative path, the ant project basedir
+attribute is used as the base directory.  If the <code>location</code>
+specifies an absolute path, it is used as is.  Once we have an
+absolute path in hand, we check to see if a valid and readable file
+exists at that path.  If so, we are done.  If not, we proceed to the
+next step.</p>
+
+<h4>2. Classpath lookup</h4>
+
+<p>The <code>location</code> is next looked up in the classpath.
+Recall that jar files are merely fancy zip files.  For classpath
+lookup, the <code>location</code> is used as is (no base is
+prepended).  We use a Classloader to attempt to load the resource from
+the classpath.  For example, if hello.jar is in the classpath and it
+contains <code>foo/bar/blat.dtd</code> it will resolve an entity whose
+<code>location</code> is <code>foo/bar/blat.dtd</code>.  Of course, it
+will <em>not</em> resolve an entity whose <code>location</code> is
+<code>blat.dtd</code>.
+
+
+<h4>3a. Apache xml-commons resolver lookup</h4>
+
+<p>What happens next depends on whether the resolver library from
+xml-commons is available on the classpath.  If so, we defer all
+further attempts at resolving to it.  The resolver library supports
+extremely sophisticated functionality like URL rewriting and so on,
+which can be accessed by making the appropriate entries in external
+catalog files (XMLCatalog does not yet provide inline support for all
+of the entries defined in the <a
+href="http://oasis-open.org/committees/entity/spec-2001-08-06.html">OASIS
+standard</a>).</p>
+
+<h4>3. URL-space lookup</h4>
+
+<p>Finally, we attempt to make a URL out of the <code>location</code>.
+At first this may seem like this would defeat the purpose of
+XMLCatalogs -- why go back out to the internet?  But in fact, this can
+be used to (in a sense) implement HTTP redirects, substituting one URL
+for another.  The mapped-to URL might also be served by a local web
+server.  If the URL resolves to a valid and readable resource, we are
+done.  Otherwise, we give up.  In this case, the XML processor will
+perform its normal resolution algorithm.  Depending on the processor
+configuration, further resolution failures may or may not result in
+fatal (i.e. build-ending) errors.</p>
+
+<h3>XMLCatalog attributes</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">id</td>
+    <td valign="top">a unique name for an XMLCatalog, used for referencing 
+the
+    XMLCatalog's contents from another XMLCatalog</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">the <code>id</code> of another XMLCatalog whose 
+contents
+    you would like to be used for this XMLCatalog</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>XMLCatalog nested elements</h3>
+<h4>dtd/entity</h4>
+<p>The <code>dtd</code> and <code>entity</code> elements used to specify
+XMLCatalogs are identical in their structure</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">The public identifier used when defining a dtd or 
+entity,
+    e.g. <code>&quot;-//Sun Microsystems, Inc.//DTD Web Application 
+2.2//EN&quot;</code>
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">The location of the local replacement to be used for 
+the public identifier specified. This may be specified as a file name, 
+resource name found on the classpath, or a URL.  Relative paths will
+be resolved according to the base, which by default is the Ant project
+basedir.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h4>classpath</h4>
+<p>The classpath to use for <a href="#ResolverAlgorithm">entity
+resolution</a>.  The nested <code>&lt;classpath&gt;</code> is a
+<a href="../using.html#path">path</a>-like structure.</p>
+<h4>catalogpath</h4>
+<p>
+The nested <code>catalogpath</code> element is a <a
+href="../using.html#path">path</a>-like structure listing catalog files to
+search.  All files in this path are assumed to be OASIS catalog files, in
+either
+<a href="http://oasis-open.org/committees/entity/background/9401.html">
+plain text format</a> or <a
+href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">
+XML format</a>. Entries specifying nonexistent files will be ignored. If the
+resolver library from xml-commons is not available in the classpath, all
+<code>catalogpaths</code> will be ignored and a warning will be logged.
+</p>
+<h3>Examples</h3>
+<p>Set up an XMLCatalog with a single dtd referenced locally in a user's 
+home 
+directory:</p>
+<blockquote><pre>
+    &lt;xmlcatalog&gt;
+        &lt;dtd 
+            publicId=&quot;-//OASIS//DTD DocBook XML V4.1.2//EN&quot;
+            location=&quot;/home/dion/downloads/docbook/docbookx.dtd&quot;/&gt;
+    &lt;/xmlcatalog&gt;
+</pre></blockquote>
+<p>Set up an XMLCatalog with a multiple dtds to be found either in the
+filesystem (relative to the Ant project basedir) or in the classpath:
+</p>
+<blockquote><pre>
+    &lt;xmlcatalog id=&quot;commonDTDs&quot;&gt;
+        &lt;dtd 
+            publicId=&quot;-//OASIS//DTD DocBook XML V4.1.2//EN&quot;
+            location=&quot;docbook/docbookx.dtd&quot;/&gt;
+        &lt;dtd 
+            publicId=&quot;-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN&quot;
+            location=&quot;web-app_2_2.dtd&quot;/&gt;
+    &lt;/xmlcatalog&gt;
+</pre></blockquote>
+
+<p>Set up an XMLCatalog with a combination of DTDs and entities as
+well as a nested XMLCatalog and external catalog files in both
+formats:</p>
+
+<blockquote><pre>
+    &lt;xmlcatalog id=&quot;allcatalogs&quot;&gt;
+        &lt;dtd 
+            publicId=&quot;-//ArielPartners//DTD XML Article V1.0//EN&quot;
+            location=&quot;com/arielpartners/knowledgebase/dtd/article.dtd&quot;/&gt;
+        &lt;entity 
+            publicId=&quot;LargeLogo&quot;
+            location=&quot;com/arielpartners/images/ariel-logo-large.gif&quot;/&gt;
+        &lt;xmlcatalog refid="commonDTDs"/&gt;
+            &lt;catalogpath&gt;
+                &lt;pathelement location="/etc/sgml/catalog"/&gt;
+                &lt;fileset 
+                    dir=&quot;/anetwork/drive&quot;
+                    includes=&quot;**/catalog&quot;/&gt;
+                &lt;fileset 
+                    dir=&quot;/my/catalogs&quot;
+                    includes=&quot;**/catalog.xml&quot;/&gt;
+            &lt;/catalogpath&gt;
+        &lt;/xmlcatalog&gt;
+    &lt;/xmlcatalog&gt;
+</pre></blockquote>
+<p>To reference the above XMLCatalog in an <code>xslt</code> task:<p>
+<blockquote><pre>
+    &lt;xslt basedir="${source.doc}"
+           destdir="${dest.xdocs}"
+           extension=".xml"
+           style="${source.xsl.converter.docbook}"
+           includes="**/*.xml"
+           force="true"&gt;
+        &lt;xmlcatalog refid=&quot;allcatalogs&quot;/&gt;
+    &lt;/xslt&gt;
+</pre></blockquote>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/zipfileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/zipfileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/CoreTypes/zipfileset.html	(revision 14989)
@@ -0,0 +1,136 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ZipFileSet Type</title>
+</head>
+<body>
+<h2><a name="fileset">ZipFileSet</a></h2>
+
+<p>A <code>&lt;zipfileset&gt;</code> is a special form of a <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code> which can behave in 2
+different ways : <br>
+</p>
+<ul>
+  <li>When the <span style="font-style: italic;">src</span> attribute
+  is used - or a nested resource collection has been specified
+  (<em>since Ant 1.7</em>), the zipfileset is populated with 
+  zip entries found in the file <span style="font-style:
+  italic;">src</span>.<br>
+  </li>
+  <li>When the <span style="font-style: italic;">dir</span> attribute
+is used, the zipfileset is populated with filesystem files found under <span
+ style="font-style: italic;">dir</span>.<br>
+  </li>
+</ul>
+<p><code>&lt;zipfileset&gt;</code> supports all attributes of <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code>
+in addition to those listed below.<br>
+</p>
+<p>Since Ant 1.6, a zipfileset can be defined with the <span
+ style="font-style: italic;">id </span>attribute and referred to with
+the <span style="font-style: italic;">refid</span> attribute.<br>
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody>
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td valign="top" align="center"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">prefix</td>
+      <td valign="top">all files in the fileset are prefixed with that 
+path in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">fullpath</td>
+      <td valign="top">the file described by the fileset is placed at  
+that exact location in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">src</td>
+      <td valign="top">may be used in place of the <i>dir</i> attribute
+ to specify a zip file whose contents will be extracted and     included
+in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">filemode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+plain files.  Default is 644. <em>since Ant 1.5.2</em>.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">dirmode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+directories.  Default is 755. <em>since Ant 1.5.2</em>.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">encoding</td>
+      <td valign="top">The character encoding to use for filenames
+      inside the zip file.  For a list of possible values see <a
+      href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.
+      Defaults to the platform's default character encoding.
+      <b>Only supported by zipfileset.</b></td>
+      <td align="center" valign="top">No</td>
+    </tr>
+  </tbody>
+</table>
+<p>The <i>fullpath</i> attribute can only be set for filesets that
+represent a single file. The <i>prefix</i> and <i>fullpath</i>
+attributes cannot both be set on the same fileset.</p>
+<p>When using the <i>src</i> attribute, include and exclude patterns
+may be used to specify a subset of the archive for inclusion in the
+archive as with the <i>dir</i> attribute.</p>
+
+<p>Please note that currently only the <a
+href="../CoreTasks/tar.html">tar</a> and <a
+href="../CoreTaks/zip.html">zip</a> tasks use the permission.</p>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any file system based <a href="resources.html">resource</a> or
+single element resource collection</h4>
+
+<p>The specified resource will be used as src.</p>
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>  &lt;zip destfile="${dist}/manual.zip"&gt;<br>    &lt;zipfileset dir="htdocs/manual" prefix="docs/user-guide"/&gt;<br>    &lt;zipfileset dir="." includes="ChangeLog27.txt" fullpath="docs/ChangeLog.txt"/&gt;<br>    &lt;zipfileset src="examples.zip" includes="**/*.html" prefix="docs/examples"/&gt;<br>  &lt;/zip&gt;<br></pre>
+  <p>zips all files in the <code>htdocs/manual</code> directory into
+the <code>docs/user-guide</code> directory in the archive, adds the
+file <code>ChangeLog27.txt</code> in the current directory as <code>docs/ChangeLog.txt</code>,
+and includes all the html files in <code>examples.zip</code> under <code>docs/examples</code>.
+The archive might end up containing the files:</p>
+  <code> docs/user-guide/html/index.html<br>
+docs/ChangeLog.txt<br>
+docs/examples/index.html<br>
+  </code></blockquote>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/Integration/Antidote.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/Integration/Antidote.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/Integration/Antidote.html	(revision 14989)
@@ -0,0 +1,113 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd">
+<HTML> 
+  <HEAD> 
+     <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>About Antidote</TITLE> 
+  </HEAD> 
+
+  <BODY> 
+
+    <H1>About Antidote</H1>
+
+    <P>Version 0.1 (2001/02/13)</P>
+
+    <P>Authors: 
+    <A HREF="mailto:simeon@fitch.net">Simeon H.K. Fitch</A>
+    </P>
+
+    <H2>Overview</H2> 
+
+    <P>Antidote is the <A
+    HREF="http://ant.apache.org/index.html">Ant</A> subproject
+    for developing a graphical user interface to facilitate the
+    efficient use of Ant. In general, its purpose is to allow the
+    quick generation, modification, and use of Ant build files,
+    helping the user define a build process and track down build
+    problems. It is not meant to be an IDE, but an enabler for the
+    powerful features available in Ant, particularly for novice
+    users, or users who want a rapid way of controlling their build
+    process.</P>
+
+
+    <H2>Status</H2>
+
+    <P>Antidote is still in the early stages of development, but does
+    have a set of usable features, including:</p>
+    <UL>
+      <LI>Reading Ant build files.</LI>
+      <LI>Selecting targets and executing them.</LI>
+      <LI>Context highlighted build status console.</LI>
+      <LI>Modification of (some) build file components.</LI>
+      <LI>Saving modified build file.</LI>
+    </UL>
+
+    <P>Current development tasks include:</p>
+    <UL>
+      <LI>A more complete set of target and task editing
+      capabilities.</LI>
+      <LI>A wizard for creating basic build files, including importing
+      existing code bases.</LI>
+      <LI>Better build progress monitoring.</LI>
+    </UL>
+
+    <P>The Antidote source distribution comes with requirements and
+    design documentation that better cover the details of application
+    architecture, how to develop against it, and what the long term
+    goals are. Furthermore, there is a <code>TODO</code> file listing
+    the detailed, near-term tasks that need accomplishing.</P>
+
+    <H2>Getting Involved</H2>
+
+    <P>The source code for Antidote is located in a separate Module 
+    (<a href="http://cvs.apache.org/viewcvs/ant-antidote/">ant-antidote</a>) in CVS.
+    All the existing documentation can
+    be found there where new contributors should read:</p>
+    <UL>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/design-overview.html">Design Overview</A></LI> 
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/gui-requirements.html">Feature List</A></LI>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/gui-ideas.txt">Idea Refinement</A></LI>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/new-module-howto.html">New Module HOWTO</A></LI>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/uml/index.html">Static Class Diagrams</A></LI>
+    </UL>
+
+    <P>Online discussions about Antidote occur on the <A
+    HREF="http://ant.apache.org/mail.html">Ant developer
+    mailing list</A>. The application infrastructure is fairly
+    complete, but there are almost unlimited opportunities for feature
+    contributions.</p>
+
+    <P>Aspiring contributors new to the project should
+    (carefully) read the following for details on the contribution
+    process:</p>
+    <UL>
+      <LI><A
+      HREF="http://jakarta.apache.org/site/getinvolved.html">Get
+      Involved</A></LI>
+      <LI><A
+      HREF="http://ant.apache.org/guidelines.html">Project
+      Guidelines</A></LI>
+      <LI><A HREF="http://jakarta.apache.org/site/source.html">Source
+      Repositories (how to contribute patches)</A></LI>
+    </UL>
+    
+
+    
+
+  </BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/manual/manual/Integration/jext-plugin.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/Integration/jext-plugin.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/Integration/jext-plugin.html	(revision 14989)
@@ -0,0 +1,56 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Apache AntWork Plugin for the Jext Java Text Editor</title>
+</head>
+<body>
+
+<h1>AntWork Plugin for the Jext Java Text Editor</h1>
+ <a name="authors"></a>by<ul>
+  <li>Klaus Hartlage
+      (<a href="mailto:KHartlage@t-online.de">KHartlage@t-online.de</a>)</li>
+</ul>
+<hr>
+
+<p>You can download the plugin at: <a
+href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a></p>
+
+<h2>Installation instructions from the Readme.txt:</h2>
+
+<p>You have to enable the Jext Console to see the Ant output (menu:
+Edit-&gt;Options... - General Panel), because the Ant messages are
+redirected to the Jext console.</p>
+
+<p>You can configure the Ant call in the Jext menu: Edit-&gt;Options... -
+Plugin Options - Antwork Plugin Panel; here you can set the ant home
+directory and the path to your build file.</p>
+
+<p>You can start AntWork in the menu: Plugins-&gt;Ant-&gt;Work Now!  In the
+appearing dialog box you can enter the target which you want to
+compile.</p>
+
+<p>If a javac error occurs in the ant run an error-list opens within
+Jext. With a double-click on the error-message you jump to the error
+in the specified java text file.</p>
+
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual/manual/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/LICENSE	(revision 14989)
@@ -0,0 +1,203 @@
+/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      "License" shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      "Licensor" shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      "Legal Entity" shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      "control" means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      "You" (or "Your") shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      "Source" form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      "Object" form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      "Work" shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      "Derivative Works" shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      "Contribution" shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, "submitted"
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *      "Contributor" shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a "NOTICE" text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an "AS IS" BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets "[]"
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same "printed page" as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] [name of copyright owner]
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   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.
+ */
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/BorlandEJBTasks.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/BorlandEJBTasks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/BorlandEJBTasks.html	(revision 14989)
@@ -0,0 +1,143 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Borland EJB Tasks</title>
+</head>
+
+<body>
+
+<h2><a name="log">BorlandDeploy</a>Tool</h2>
+<p>by Benoit Moussaud (<a href="mailto:benoit.moussaud@criltelecom.com">benoit.moussaud@criltelecom.com</a>)</p>
+
+
+<h3>Description</h3>
+<p>The BorlandDeployTool is a vendor specific nested element for the Ejbjar optional task.</p>
+<p>BorlandDeploymentTool is dedicated to the Borland Application Server 4.5.x and Borland
+  Enterprise Server 5.x. It  generates and compiles the stubs and skeletons for all ejb described into the
+  Deployment Descriptor, builds the jar file including the support files and
+  verify whether the produced jar is valid or not.</p>
+
+<p>Benoit Moussaud maintains a separate <a
+href="http://www.moussaud.org/ejbjar.html">FAQ</a> for this task at
+his homepage.</p>
+
+<h3>Borland element</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top" width="63"><b>Attribute</b></td>
+    <td valign="top" width="915"><b>Description</b></td>
+    <td align="center" valign="top" width="62"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">destdir</td>
+    <td valign="top" width="915">The base directory into which the generated borland
+      ready jar files are deposited</td>
+    <td align="center" valign="middle" width="62">yes</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">debug</td>
+    <td valign="top" width="915">If true, turn on the debug mode for each borland
+      tools (java2iiop, iastool ...) default = false</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">verify</td>
+    <td valign="top" width="915">If true, turn on the verification at the end
+      of the jar production (default = false)</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">verifyargs</td>
+    <td valign="top" width="915">extra parameter for verify command</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">suffix</td>
+    <td valign="top" width="915">String value appended to the basename of the
+      deployment descriptor to create the filename of the Borland EJB jar file.</td>
+    <td align="center" valign="middle" width="62">No, defaults to '-ejb.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">basdtd</td>
+    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
+      DTD which covers the Borland specific deployment descriptors.
+      This should not be necessary if you have borland in your classpath. If you
+      do not, you should use a nested
+      <a href="ejb.html#ejbjar-dtd"><code>&lt;dtd&gt;</code></a> element, described
+      in the ejbjar task documentation.</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">ejbdtd</td>
+    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
+      ejb-jar DTD in the class hierarchy. This should not be necessary
+      if you have borland in your classpath. If you do not, you should use a
+      nested <a href="ejb.html#ejbjar-dtd"><code>&lt;dtd&gt;</code></a> element,
+      described in the ejbjar task
+      documentation. </td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">generateclient </td>
+    <td valign="top" width="915">If true, turn on the generation of the corresponding
+      ejbjar (default = false)</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">version</td>
+    <td valign="top" width="915">set the Borland Application Version.
+            <ul>
+              <li>4 means B.A.S (Borland Application Server) 4.x, target will add ejb-inprise.xml file</li>
+              <li>5 means B.E.S (Borland Application Server) 5.x, target will add ejb-borland.xml file</li>
+            </ul>
+          </td>
+    <td align="center" valign="middle" width="62">No, defaults to 4</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">java2iiopParams </td>
+    <td valign="top" width="915">If filled, the params are added to the java2iiop command (ex: -no_warn_missing_define)</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+<p>The following build.xml snippet is an example of how to use Borland element
+  into the ejbjar task</p>
+<pre>    &lt;ejbjar srcdir=&quot;${build.classes}&quot; basejarname=&quot;vsmp&quot; descriptordir=&quot;${rsc.dir}/hrmanager&quot;&gt;
+        &lt;borland destdir=&quot;lib&quot; verify=&quot;on&quot; generateclient=&quot;on&quot; version=&quot;5&quot;&gt;
+          &lt;classpath refid=&quot;classpath&quot;/&gt;
+        &lt;/borland&gt;
+        &lt;include name=&quot;**\ejb-jar.xml&quot;/&gt;
+        &lt;support dir=&quot;${build.classes}&quot;&gt;
+          &lt;include name=&quot;demo\*.class&quot;/&gt;
+          &lt;include name=&quot;demo\helper\*.class&quot;/&gt;
+         &lt;/support&gt;
+     &lt;/ejbjar&gt;</pre>
+<pre>The borland element will generate into the lib dir an ejb jar file using the deployment descriptor placed into the ${rsc.dir}/hrmanager directory.
+The verify phase is turned on and the generate client phase as well.
+</pre>
+
+<h3>&nbsp;</h3>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/BorlandGenerateClient.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/BorlandGenerateClient.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/BorlandGenerateClient.html	(revision 14989)
@@ -0,0 +1,90 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>BorlandGenerateClient Task</title>
+</head>
+
+<body>
+
+<h2><a name="log">BorlandGenerateClient</a></h2>
+<p>by Benoit Moussaud (<a href="mailto:benoit.moussaud@criltelecom.com">benoit.moussaud@criltelecom.com</a>)</p>
+<h3>Description</h3>
+<p>The BorlandGenerateClient is a task dedicated to Borland Application Server
+  v 4.5. It offers to generate the client jar file corresponding to an ejb jar
+  file.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top" width="63"><b>Attribute</b></td>
+    <td valign="top" width="915"><b>Description</b></td>
+    <td align="center" valign="top" width="62"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">ejbjar</td>
+    <td valign="top" width="915">ejb jar file</td>
+    <td align="center" valign="middle" width="62">yes</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">debug</td>
+    <td valign="top" width="915">If true, turn on the debug mode for each borland
+      tools (java2iiop, iastool ...) default = false</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">clientjar</td>
+    <td valign="top" width="915">client jar file name. If missing the client jar
+      file name is build using the ejbjar file name: ejbjar = hellobean-ejb.jar
+      =&gt; hellobean-ejbclient.jar</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">mode</td>
+    <td valign="top" width="915">choose the command launching mode. Two values:
+      java or fork. default = fork. java is not supported for version=5.Possibility to specify a classpath.</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">version</td>
+    <td valign="top" width="915">set the Borland Application Version.
+            <ul>
+              <li>4 means B.A.S (Borland Application Server 4.x)</li>
+              <li>5 means B.E.S (Borland Application Server 5.x)</li>
+            </ul>
+          </td>
+    <td align="center" valign="middle" width="62">No, defaults to 4</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p>The following build.xml snippet is an example of how to use Borland element
+   into the ejbjar task using the java mode.</p>
+<pre>
+&lt;blgenclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot; debug=&quot;true&quot; mode=&quot;fork&quot;&gt; version=&quot;5&quot;&gt;
+    &lt;classpath&gt;
+        &lt;pathelement location=&quot;mymodule.jar&quot;/&gt;
+    &lt;/classpath&gt;
+&lt;/blgenclient&gt;
+</pre>
+<pre>&nbsp;</pre>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/antinstaller.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/antinstaller.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/antinstaller.html	(revision 14989)
@@ -0,0 +1,231 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>AntInstaller Task</title>
+</head>
+
+<body>
+
+<h2><a name="installer">Installer</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="../CoreTasks/jar.html">Jar</a> task for creating
+installers.</p>
+<p>This task will correctly package the AntInstaller classes, the Ant classes,
+the antinstall-config.xml, the build.xml file, the default LookAndFeel classes, the button icons
+and create the required MANIFEST.mf to execute the Jar.</p> 
+<p>Nested filesets should
+be used to specify other resources required by the install (e.g. License.txt)
+and the files required to run the application being installed.  </p>
+
+<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the Installer task.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tbody>
+  <tr class="tpheader">
+    <td><b>Attribute</b></td>
+    <td><b>Description</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="file"></a>file</td>
+    <td valign="top">the JAR file to create.</td>
+
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="buildFile"></a>buildFile</td>
+    <td valign="top">The build.xml file to use when AntInstaller is run.</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+
+  <tr>
+    <td valign="top"><a name="installConfig"></a>installConfig</td>
+    <td valign="top">The antinstall-config.xml file to use when AntInstaller is run.</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="extractType"></a>extractType</td>
+
+    <td valign="top">Either NonExtractor or SelfExtractor.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="antInstallLib"></a>antInstallLib</td>
+    <td valign="top">The location of the AntInstaller jars.</td>
+    <td valign="top" align="center">Yes</td>
+
+  </tr>
+  <tr>
+    <td valign="top"><a name="antLib"></a>antLib</td>
+    <td valign="top">The location of the Ant jars. N.B. Ant 1.6.2 or above is required.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="icons"></a>icons</td>
+
+    <td valign="top">The <a target="_top" href="../../../icons.html">icon set to be used</a>. One of bluecurve, crystalsvg, amaranth, krystaline or eclipse,  new icons can be created and should be packed into a Jar with the name ai-icons-[name].jar with the png files in the resources/icons directory inside the jar.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="validateConfig"></a>validateConfig</td>
+    <td valign="top">when true the AntInstaller config file is validated and errors and 
+		warnings are printed to System.out, defaults to false</td>
+
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="failOnError"></a>failOnError</td>
+    <td valign="top">if a known error is found during validation the build will stop.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+  <tr>
+    <td valign="top"><a name="basedir"></a>basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="compress"></a>compress</td>
+
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="keepcompression"></a>keepcompression</td>
+
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="encoding"></a>encoding</td>
+
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="filesonly"></a>filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+
+    <td valign="top"><a name="includes"></a>includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+
+  </tr>
+  <tr>
+    <td valign="top"><a name="includesfile"></a>includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+
+    <td valign="top"><a name="excludes"></a>excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="excludesfile"></a>excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="defaultexcludes"></a>defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="manifest"></a>manifest</td>
+    <td valign="top">The manifest file to use if you wish to manually set the MANIFEST.MF (not recommended).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+  <tr>
+    <td valign="top"><a name="update"></a>update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+
+    <td valign="top"><a name="duplicate"></a>duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+
+  </tr>
+</tbody>
+</table>
+
+<h3>Examples</h3>
+<p>
+Creates a compressed self-extracting jar, validating the configuration file myprojects-antinstall-config.xml
+</p>
+<pre>
+&lt;installer 
+	file="./MyProject-installer.jar" 
+	compress="true"
+	extractType="SelfExtractor"
+	installConfig="myprojects-antinstall-config.xml"
+	buildFile="myprojects-build.xml"
+	antInstallLib="${AntInstaller.home}/lib"
+	antLib="${AntInstaller.home}/antlib"
+	validateConfig="true"
+	failOnError="true"
+	icons="bluecurve"&gt;
+
+		&lt;!-- 
+			include the images for your installer 
+			and license texts
+		--&gt;
+		&lt;fileset dir="extra-install-classpath" includes="resources/*"/&gt;
+
+		&lt;!-- 
+			add you application binaries and resources 
+			to the installer here, for example
+		--&gt;
+		&lt;fileset dir="myproject" includes="myproject.jar"/&gt;
+		&lt;fileset dir="myproject" includes="myproject.properties"/&gt;
+		&lt;fileset dir="myproject" includes="mydefaultdata/*"/&gt;
+
+&lt;/installer&gt;
+</pre>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/antlr.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/antlr.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/antlr.html	(revision 14989)
@@ -0,0 +1,200 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ANTLR Task</title>
+</head>
+
+<body>
+
+<h2><a name="antlr">ANTLR</a></h2>
+<h3>Description</h3>
+<p>
+  Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a> Translator generator
+  on a grammar file.
+</p>
+<p>
+  To use the ANTLR task, set the <i>target</i> attribute to the name of the
+  grammar file to process.  Optionally, you can also set the
+  <i>outputdirectory</i> to write the generated file to a specific directory.
+  Otherwise ANTLR writes the generated files to the directory containing
+  the grammar file.
+</p>
+<p>
+  This task only invokes ANTLR if the grammar file (or the
+  supergrammar specified by the glib attribute) is newer than the
+  generated files.
+</p>
+<p>Antlr 2.7.1 Note:
+<i>
+  To successfully run ANTLR, your best option is probably to build the whole
+  jar with the provided script <b>mkalljar</b> and drop the resulting jar (about 300KB)
+  into ${ant.home}/lib. Dropping the default jar (70KB) is probably not enough
+  for most needs and your only option will be to add ANTLR home directory
+  to your classpath as described in ANTLR <tt>install.html</tt> document.
+</i>
+</p>
+<p>Antlr 2.7.2 Note:
+<i>
+  Instead of the above, you will need antlrall.jar that can be created
+  by the <b>antlr-all.jar</b> target of the Makefile provided with the
+  download.
+</i>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The grammar file to process.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">outputdirectory</td>
+    <td valign="top">
+      The directory to write the generated files to.  If not set, the files
+      are written to the directory containing the grammar file.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">glib</td>
+    <td valign="top">
+      An optional super grammar file that the target grammar overrides.  This
+      feature is only needed for advanced vocabularies.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">
+      When set to "yes", this flag adds code to the generated parser that will
+      launch the ParseView debugger upon invocation.  The default is "no".
+      <br>
+      Note: ParseView is a separate component that needs to be installed or your
+      grammar will have compilation errors.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">html</td>
+    <td valign="top">
+      Emit an html version of the grammar with hyperlinked actions.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">diagnostic</td>
+    <td valign="top">
+      Generates a text file with debugging information based on the target grammar.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">trace</td>
+    <td valign="top">
+      Forces <b>all</b> rules to call traceIn/traceOut if set to "yes".
+      The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">traceParser</td>
+    <td valign="top">
+      Only forces parser rules to call traceIn/traceOut if set to "yes".
+      The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">traceLexer</td>
+    <td valign="top">
+      Only forces lexer rules to call traceIn/traceOut if set to "yes".
+      The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">traceTreeWalker</td>
+    <td valign="top">
+      Only forces tree walker rules to call traceIn/traceOut if set to
+      "yes".  The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <!--tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run ANTLR in a separate VM.</td>
+    <td align="center" valign="top">No, default is &quot;off&quot;</td>
+  </tr-->
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to invoke the VM in. <!--(ignored if
+      fork is disabled)--></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+
+<p><code>ANTLR</code> supports a nested <code>&lt;classpath&gt;</code>
+element, that represents a <a href="../using.html#path">PATH like
+structure</a>. It is given as a convenience if you have to specify
+the original ANTLR directory. In most cases, dropping the appropriate
+ANTLR jar in the normal Ant lib repository will be enough.</p>
+
+<h4>jvmarg</h4>
+
+<p><!--If fork is enabled, -->Additional parameters may be passed to the new
+VM via nested <code>&lt;jvmarg&gt;</code> attributes, for example:</p>
+
+<pre>
+&lt;antlr target="..."&gt;
+  &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
+  ...
+&lt;/antlr&gt;
+</pre>
+
+<p>would run ANTLR in a VM without JIT.</p>
+
+<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
+href="../using.html#arg">Command line arguments</a>.</p>
+
+<h3>Example</h3>
+<blockquote><pre>
+&lt;antlr
+    target=&quot;etc/java.g&quot;
+    outputdirectory=&quot;build/src&quot;
+/&gt;
+</pre></blockquote>
+<p>
+  This invokes ANTLR on grammar file etc/java.g, writing the generated
+  files to build/src.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/attrib.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/attrib.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/attrib.html	(revision 14989)
@@ -0,0 +1,145 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="attrib">Attrib</a></h2>
+<p><em>Since Ant 1.6.</em></p>
+<h3>Description</h3>
+
+<p>Changes the attributes of a file or all files inside specified
+directories.  Right now it has effect only under Windows. Each of the
+4 possible permissions has its own attribute, matching the arguments
+for the attrib command.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s, 
+<a href="../CoreTypes/dirset.html">DirSet</a>s or <a
+href="../CoreTypes/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
+<code>&lt;filelist&gt;</code> elements.</p>
+
+<p>Starting with Ant 1.7, this task supports arbitrary <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+as nested elements.</p>
+
+<p>By default this task will use a single invocation of the underlying
+attrib command.  If you are working on a large number of files this
+may result in a command line that is too long for your operating
+system.  If you encounter such problems, you should set the
+maxparallel attribute of this task to a non-zero value.  The number to
+use highly depends on the length of your file names (the depth of your
+directory tree), so you'll have to experiment a little.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory of which the permissions must be
+    changed.</td>
+    <td valign="top" valign="middle">Yes or nested
+    <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">readonly</td>
+    <td valign="top">the readonly permission.</td>
+    <td valign="top" rowspan="4">at least one of the four. </td>
+  </tr>
+  <tr>
+    <td valign="top">archive</td>
+    <td valign="top">the archive permission.</td>
+  </tr>
+  <tr>
+    <td valign="top">system</td>
+    <td valign="top">the system permission.</td>
+  </tr>
+  <tr>
+    <td valign="top">hidden</td>
+    <td valign="top">the hidden permission.</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or <i>both</i>. If set to
+      <i>file</i>, only the permissions of plain files are going to be changed.
+      If set to <i>dir</i>, only the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chmod</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+  <blockquote>
+<pre>&lt;attrib file=&quot;${dist}/run.bat&quot; readonly=&quot;true&quot; hidden=&quot;true&quot;/&gt;</pre>
+</blockquote>
+<p>makes the &quot;run.bat&quot; file read-only and hidden.</p>
+<blockquote>
+  <pre>&lt;attrib readonly=&quot;false&quot;&gt;
+  &lt;fileset dir=&quot;${meta.inf}&quot; includes=&quot;**/*.xml&quot;/&gt;
+&lt;attrib&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.xml&quot; files below <code>${meta.inf}</code> readable.</p>
+<blockquote>
+  <pre>
+&lt;attrib readonly=&quot;true&quot; archive=&quot;true&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/attrib&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those below any
+  directory named trial) read-only and archived. In addition all files belonging
+  to a FileSet with <code>id</code> <code>other.shared.sources</code> get the
+  same attributes.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/cab.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/cab.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/cab.html	(revision 14989)
@@ -0,0 +1,167 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Cab Task</title>
+</head>
+
+<body>
+
+<h2><a name="cab">Cab</a></h2>
+<h3>Description</h3>
+<p>The cab task creates Microsoft cab archive files.  It is invoked
+similar to the <a href="../CoreTasks/jar.html">jar</a> or <a href="../CoreTasks/zip.html">zip</a> tasks.
+This task will work on Windows using the external cabarc tool (provided by Microsoft)
+which must be located in your executable path.</p>
+<p>To use this task on other platforms you need to download and compile libcabinet from
+<a href="http://trill.cis.fordham.edu/~barbacha/cabinet_library/">
+http://trill.cis.fordham.edu/~barbacha/cabinet_library/</a>.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
+tasks</a>, on how the inclusion/exclusion of files works, and how to
+write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>basedir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">cabfile</td>
+    <td valign="top">the name of the cab file to create.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory to start archiving files from.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">set to &quot;yes&quot; if you want to see the output from
+      the cabarc tool.  defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">set to &quot;no&quot; to store files without compressing.
+      defaults to &quot;yes&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">options</td>
+    <td valign="top">use to set additional command-line options for
+      the cabarc tool.  should not normally be necessary.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that
+      must be included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that
+      must be excluded. No files (except default excludes) are excluded
+      when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used
+      or not (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+
+<p>The cab task supports one nested <a
+href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>
+element to specify the files to be included in the archive.
+  If this is specified, the "basedir" attribute cannot be used.
+</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;
+  /&gt;
+</pre></blockquote>
+<p>cabs all files in the htdocs/manual directory into a file called
+manual.cab in the ${dist} directory.</p>
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;
+     excludes=&quot;mydocs/**, **/todo.html&quot;
+  /&gt;
+</pre></blockquote>
+<p>cabs all files in the htdocs/manual directory into a file called
+manual.cab in the ${dist} directory. Files in the directory mydocs,
+or files with the name todo.html are excluded.</p>
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;
+     includes=&quot;api/**/*.html&quot;
+     excludes=&quot;**/todo.html&quot;
+     verbose=&quot;yes&quot;
+  /&gt;
+</pre></blockquote>
+<p>Cab all files in the htdocs/manual directory into a file called
+manual.cab in the ${dist} directory. Only html files under the
+directory api are archived, and files with the name todo.html are
+excluded. Output from the cabarc tool is displayed in the build
+output.</p>
+
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     verbose=&quot;yes&quot;&gt;
+  &lt;fileset
+       dir=&quot;htdocs/manual&quot;
+       includes=&quot;api/**/*.html&quot;
+       excludes=&quot;**/todo.html&quot;
+  /&gt;
+&lt;/cab&gt;
+</pre></blockquote>
+<p>is equivalent to the example above.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ccm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ccm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ccm.html	(revision 14989)
@@ -0,0 +1,273 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Continuus Tasks</title>
+</head>
+
+<body>
+
+<h1>Continuus Support</h1>
+<ul>
+  <li><a href="#ccmcheckin">CCMCheckin</a></li>
+  <li><a href="#ccmcheckout">CCMCheckout</a></li>
+  <li><a href="#ccmcheckintask">CCMCheckinTask</a></li>
+  <li><a href="#ccmreconfigure">CCMReconfigure</a></li>
+  <li><a href="#ccmcreatetask">CCMCreateTask</a></li>
+</ul>
+
+<p>These ant tasks are wrappers around Continuus Source Manager. They have been tested
+  against versions 5.1/6.2 on Windows 2000, but should work on other platforms with ccm installed.</p>
+<p>author: <a href="mailto:benoit.moussaud@criltelecom.com">Benoit Mousaud (benoit.moussaud@criltelecom.com) </a></p>
+<hr>
+<h2><a name="ccmcheckin">CCMCheckin</a></h2>
+<h3>Description</h3>
+Task to checkin a file
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0" width="598">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>file</td>
+    <td>Path to the file that the command will operate on</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Default is &quot;Checkin&quot; plus the date</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>task</td>
+    <td>Specify the task number used to check in the file (may use 'default')</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td>path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <pre>&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot;
+        comment=&quot;mycomment&quot;/&gt;
+</pre>
+</blockquote>
+<p>Checks in the file <i>c:/wa/com/foo/MyFile.java</i>.
+  Comment attribute <i>mycomment</i> is added as a task comment. The task
+  used is the one set as the default.</p>
+<hr>
+<h2><a name="ccmcheckout">CCMCheckout</a></h2>
+<h3>Description</h3>
+Task to perform a Checkout command to Continuus
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0" width="614">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>file</td>
+    <td>Path to the file that the command will operate on</td>
+    <td rowspan=2">Yes (file|fileset)</td>
+  </tr>
+  <tr>
+    <td>fileset</td>
+    <td>fileset containing the file to be checked out</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>task</td>
+    <td>Specify the task number used to checkin the file (may use
+      'default')</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td>path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <pre>&lt;ccmcheckout file=&quot;c:/wa/com/foo/MyFile.java&quot;
+        comment=&quot;mycomment&quot;/&gt;
+</pre>
+</blockquote>
+<p>Check out the file <i>c:/wa/com/foo/MyFile.java</i>.
+  Comment attribute <i>mycomment</i> is added as a task comment
+   The used task is the one set as the default.</p>
+<blockquote>
+  <pre>&lt;ccmcheckout  comment=&quot;mycomment&quot;&gt;
+  &lt;fileset dir=&quot;lib&quot; &gt;
+    &lt;include name=&quot;**/*.jar&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/ccmcheckout &gt;
+  </pre>
+</blockquote>
+
+<p>Check out all the files in the <i>lib</i> directory having the <i>.jar</i> extension.
+  Comment attribute <i>mycomment</i> is added as a task comment
+   The used task is the one set as the default.</p>
+
+
+
+<hr>
+<h2><a name="ccmcheckintask">CCMCheckinTask</a></h2>
+<h3>Description</h3>
+Task to perform a check in default task command to Continuus
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>task</td>
+    <td>Specify the task number used to check in the file (may use 'default')</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples </h3>
+<blockquote>
+  <pre>&lt;ccmcheckintask comment=&quot;blahblah/&gt;
+</pre>
+</blockquote>
+<p>Does a Checkin default task on all the checked out files in the current task.</p>
+<hr>
+<h2><a name="ccmreconfigure">CCMReconfigure</a></h2>
+<h3>Description</h3>
+Task to perform an reconfigure command to Continuus.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>recurse</td>
+    <td>recurse on subproject (default false)</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>verbose</td>
+    <td>do a verbose reconfigure operation (default false)</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmproject</td>
+    <td>Specifies the ccm project on which the operation is applied.</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+ <pre>&lt;ccmreconfigure ccmproject=&quot;ANTCCM_TEST#BMO_1&quot;
+         verbose=&quot;true&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a Continuus <i>reconfigure</i> on the project <i>ANTCCM_TEST#BMO_1</i>.
+</p>
+<hr>
+<h2><a name="ccmcreatetask">CCMCreateTask</a></h2>
+<h3>Description</h3>
+Create a Continuus task.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>platform</td>
+    <td>Specify the target platform</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>resolver</td>
+    <td>Specify the resolver</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>release</td>
+    <td>Specify the CCM release</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>subsystem</td>
+    <td>Specify the subsystem</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>task</td>
+    <td>Specify the task number used to checkin the file (may use 'default')</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <pre>&lt;ccmcreatetask resolver=&quot;${user.name}&quot;
+            release=&quot;ANTCCM_TEST&quot; comment=&quot;blahblah&quot;/&gt;
+</pre>
+</blockquote>
+<p>Creates a task for the release <i>ANTCCM_TEST</i> with the
+  current user as the resolver for this task.</p>
+
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/chgrp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/chgrp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/chgrp.html	(revision 14989)
@@ -0,0 +1,166 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Chgrp Task</title>
+</head>
+
+<body>
+
+<h2><a name="Chgrp">Chgrp</a></h2>
+<p><em>Since Ant 1.6.</em></p>
+<h3>Description</h3>
+
+<p>Changes the group of a file or all files inside specified
+directories. Right now it has effect only under Unix.  The group
+attribute is equivalent to the corresponding argument for the chgrp
+command.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s, 
+<a href="../CoreTypes/dirset.html">DirSet</a>s or <a
+href="../CoreTypes/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
+<code>&lt;filelist&gt;</code> elements.</p>
+
+<p>Starting with Ant 1.7, this task supports arbitrary <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+as nested elements.</p>
+
+<p>By default this task will use a single invocation of the underlying
+chgrp command.  If you are working on a large number of files this may
+result in a command line that is too long for your operating system.
+If you encounter such problems, you should set the maxparallel
+attribute of this task to a non-zero value.  The number to use highly
+depends on the length of your file names (the depth of your directory
+tree) and your operating system, so you'll have to experiment a
+little.  POSIX recommends command line length limits of at least 4096
+characters, this may give you an approximation for the number you
+could use as initial value for these experiments.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory of which the group must be
+    changed.</td>
+    <td valign="top" valign="middle">Yes, unless nested
+      <code>&lt;fileset|filelist|dirset&gt;</code>
+      elements are specified</td>
+  </tr>
+  <tr>
+    <td valign="top">group</td>
+    <td valign="top">the new group.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chgrp</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the group of
+      plain files are going to be changed. If set to <i>dir</i>, only
+      the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.</td>
+    <td align="center" valign="top">No</td>
+
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+  <blockquote><pre>
+&lt;chgrp file=&quot;${dist}/start.sh&quot; group=&quot;coders&quot;/&gt;
+</pre>
+</blockquote>
+<p>makes the &quot;start.sh&quot; file belong to the coders group on a
+UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chgrp group=&quot;coders&quot;&gt;
+  &lt;fileset dir=&quot;${dist}/bin&quot; includes=&quot;**/*.sh&quot;/&gt;
+&lt;/chgrp&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
+belong to the coders group on a UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chgrp group=&quot;coders&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/chgrp&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those
+below any directory named trial) belong to the coders group on a UNIX 
+system. In addition all files belonging to a FileSet
+with <code>id</code> <code>other.shared.sources</code> get the same
+group.</p>
+
+<blockquote>
+<pre>
+&lt;chgrp group=&quot;webdev&quot; type=&quot;file&quot;&gt;
+  &lt;fileset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/*.test.jsp&quot;/&gt;
+    &lt;include name=&quot;**/*.new&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;dirset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/test_*&quot;/&gt;
+  &lt;/dirset&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+
+<p>makes all <code>.test.jsp</code>, and <code>.new</code> files belong to 
+group webdev. Directories beginning with <code>test_</code> also will belong 
+to webdev, but if there is a directory that ends in <code>.new</code> or a file
+that begins with <code>test_</code> it will be unaffected.</p>
+
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/chown.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/chown.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/chown.html	(revision 14989)
@@ -0,0 +1,164 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Chown Task</title>
+</head>
+
+<body>
+
+<h2><a name="Chown">Chown</a></h2>
+<p><em>Since Ant 1.6.</em></p>
+<h3>Description</h3>
+
+<p>Changes the owner of a file or all files inside specified
+directories. Right now it has effect only under Unix.  The owner
+attribute is equivalent to the corresponding argument for the chown
+command.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s, 
+<a href="../CoreTypes/dirset.html">DirSet</a>s or <a
+href="../CoreTypes/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
+<code>&lt;filelist&gt;</code> elements.</p>
+
+<p>Starting with Ant 1.7, this task supports arbitrary <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+as nested elements.</p>
+
+<p>By default this task will use a single invocation of the underlying
+chown command.  If you are working on a large number of files this may
+result in a command line that is too long for your operating system.
+If you encounter such problems, you should set the maxparallel
+attribute of this task to a non-zero value.  The number to use highly
+depends on the length of your file names (the depth of your directory
+tree) and your operating system, so you'll have to experiment a
+little.  POSIX recommends command line length limits of at least 4096
+characters, this may give you an approximation for the number you
+could use as initial value for these experiments.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory of which the owner must be
+    changed.</td>
+    <td valign="top" valign="middle">Yes or nested
+    <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">owner</td>
+    <td valign="top">the new owner.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chown</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the owner of
+      plain files are going to be changed. If set to <i>dir</i>, only
+      the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.</td>
+    <td align="center" valign="top">No</td>
+
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;chown file="${dist}/start.sh" owner="coderjoe"/&gt;
+</pre>
+</blockquote>
+<p>makes the "start.sh" file belong to coderjoe on a
+UNIX system.</p>
+<blockquote>
+<pre>
+    &lt;chown owner="coderjoe"&gt;
+      &lt;fileset dir="${dist}/bin" includes="**/*.sh"/&gt;
+    &lt;/chown&gt;
+</pre>
+</blockquote>
+<p>makes all ".sh" files below <code>${dist}/bin</code>
+belong to coderjoe on a UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chown owner="coderjoe"&gt;
+  &lt;fileset dir="shared/sources1"&gt;
+    &lt;exclude name="**/trial/**"/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid="other.shared.sources"/&gt;
+&lt;/chown&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those
+below any directory named trial) belong to coderjoe on a UNIX 
+system. In addition all files belonging to a FileSet
+with <code>id</code> <code>other.shared.sources</code> get the same
+owner.</p>
+
+<blockquote>
+<pre>
+&lt;chown owner="webadmin" type="file"&gt;
+  &lt;fileset dir="/web"&gt;
+    &lt;include name="**/*.cgi"/&gt;
+    &lt;include name="**/*.old"/&gt;
+  &lt;/fileset&gt;
+  &lt;dirset dir="/web"&gt;
+    &lt;include name="**/private_*"/&gt;
+  &lt;/dirset&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+
+<p>makes cgi scripts, files with a <code>.old</code> extension or
+directories beginning with <code>private_</code> belong to the user named
+webadmin. A directory ending in <code>.old</code> or a file beginning with 
+<code>private_</code> would remain unaffected.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/clearcase.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/clearcase.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/clearcase.html	(revision 14989)
@@ -0,0 +1,958 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Clearcase Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>Ant ClearCase Tasks</h1>
+<p>by:<br>
+Curtis White (cwhite at aracnet dot com),<br>
+Sean P. Kane (spkane at genomatica dot com),<br>
+Rob Anderson (Anderson.Rob at vectorscm dot com), and<br>
+Sean Egan    (sean at cm-logic dot com)</p>
+
+<p>Version 1.6 - 02/25/2003</p>
+
+<h1>ClearCase Support</h1>
+<h2>Table of Contents</h2>
+<ul>
+  <li><A href="#introduction">Introduction</a>
+  <li><A href="#cccheckin">CCCheckin</a>
+  <li><A href="#cccheckout">CCCheckout</a>
+  <li><A href="#ccuncheckout">CCUnCheckout</a>
+  <li><A href="#ccupdate">CCUpdate</a>
+  <li><A href="#ccmklbtype">CCMklbtype</a>
+  <li><A href="#ccmklabel">CCMklabel</a>
+  <li><A href="#ccrmtype">CCRmtype</a>
+  <li><A href="#cclock">CCLock</a>
+  <li><A href="#ccunlock">CCUnlock</a>
+  <li><A href="#ccmkbl">CCMkbl</a>
+  <li><A href="#ccmkattr">CCMkattr</a>
+  <li><A href="#ccmkdir">CCMkdir</a>
+  <li><A href="#ccmkelem">CCMkelem</a></li>
+
+</ul>
+
+<hr>
+<h2><a name="introduction">Introduction</a></h2>
+<p>Ant provides several optional tasks for working with ClearCase. These tasks correspond to various
+ClearCase commands using the Cleartool program. The current tasks available for Ant correspond to only
+a few of the significant ClearCase commands.</p>
+
+<p>More tasks can be easily added by deriving from the ClearCase class and then adding
+functionality that is specific to that ClearCase command.</p>
+<p>
+    Important: these tasks all require <code>cleartool</code> on the command line.
+    If a task fails with an IOException, especially error code 2 on Windows,
+    this is your problem.
+</p>
+
+
+<hr>
+<h2><a name="cccheckin">CCCheckin</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool checkin" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or commentfile
+        may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nowarn</td>
+    <td>Suppress warning messages</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>preservetime</td>
+    <td>Preserve the modification time</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>keepcopy</td>
+    <td>Keeps a copy of the file with a .keep extension</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>identical</td>
+    <td>Allows the file to be checked in even if it is identical
+        to the original</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;cccheckin viewpath="c:/views/viewdir/afile"
+        commentfile="acomment.txt"
+        nowarn="true"
+        identical="true"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>checkin</i> on the file <i>c:/views/viewdir/afile</i>.
+Comment text from the file <i>acomment.txt</i> is added to ClearCase as a comment.
+All warning messages are suppressed. The file is checked in even if it is
+<i>identical</i> to the original.</p>
+<hr>
+<h2><a name="cccheckout">CCCheckout</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool checkout" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>reserved</td>
+    <td>Specifies whether to check out the file as reserved or not</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>out</td>
+    <td>Creates a writable file under a different filename</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nodata</td>
+    <td>Checks out the file but does not create an editable file
+        containing its data</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>branch</td>
+    <td>Specify a branch to check out the file to</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>version</td>
+    <td>Allows checkout of a version other than main latest</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nowarn</td>
+    <td>Suppress warning messages</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or
+        commentfile may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>notco</td>
+    <td>Fail if it's already checked out to the current view. Set to false to ignore it.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;cccheckout viewpath="c:/views/viewdir/afile"
+        reserved="true"
+        branch="abranch"
+        nowarn="true"
+        comment="Some comment text"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>checkout</i> on the file <i>c:/views/viewdir/afile</i>.
+It is checked out as <i>reserved</i> on branch called <i>abranch</i>. All
+warning messages are suppressed. A <i>Some comment text</i> is added to
+ClearCase as a comment.</p>
+<hr>
+<h2><a name="ccuncheckout">CCUnCheckout</a></h2>
+<h3>Description</h3>
+Task to perform a UnCheckout command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>keepcopy</td>
+    <td>Specifies whether to keep a copy of the file with a .keep
+        extension or not</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccuncheckout viewpath="c:/views/viewdir/afile"
+        keepcopy="true"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>uncheckout</i> on the file <i>c:/views/viewdir/afile</i>.
+A copy of the file called <i>c:/views/viewdir/afile.keep</i> is kept.</p>
+<hr>
+<h2><a name="ccupdate">CCUpdate</a></h2>
+<h3>Description</h3>
+Task to perform an "cleartool update" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase snapshot view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>graphical</td>
+    <td>Displays a graphical dialog during the update</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>log</td>
+    <td>Specifies a log file for ClearCase to write to</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>overwrite</td>
+    <td>Specifies whether to overwrite hijacked files or not</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>rename</td>
+    <td>Specifies that hijacked files should be renamed with a .keep extension</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>currenttime</td>
+    <td>Specifies that modification time should be written as the
+        current time. Either currenttime or preservetime can be
+        specified.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>preservetime</td>
+    <td>Specifies that modification time should preserved from the
+        VOB time. Either currenttime or preservetime can be
+        specified.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccupdate viewpath="c:/views/viewdir"
+        graphical="false"
+        log="log.log"
+        overwrite="true"
+        currenttime="true"
+        rename="false"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>update</i> on the snapshot view directory <i>c:/views/viewdir</i>.
+A graphical dialog will be displayed. The output will be logged to
+<i>log.log</i> and it will overwrite any hijacked files. The modified
+time will be set to the current time.</p>
+
+
+
+<hr>
+<h2><a name="ccmklbtype">CCMklbtype</a></h2>
+<h3>Description</h3>
+Task to perform a "mklbtype" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>typename</td>
+    <td>Name of the label type to create</td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>vob</td>
+    <td>Name of the VOB</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>replace</td>
+    <td>Replace an existing label definition of the same type</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>global</td>
+    <td>Either global or ordinary can be specified, not both. Creates a label type that is global to the VOB or to VOBs that use this VOB</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>ordinary</td>
+    <td>Either global or ordinary can be specified, not both. Creates a label type that can be used only in the current VOB. <B>Default</B></td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>pbranch</td>
+    <td>Allows the label type to be used once per branch in a given element's version tree</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>shared</td>
+    <td>Sets the way mastership is checked by ClearCase. See ClearCase documentation for details</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr></tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmklbtype typename="VERSION_1"
+        ordinary="true"
+        comment="Development version 1"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mklbtype</i> to create a label type named <i>VERSION_1</i>.
+It is created as <i>ordinary</i> so it is available only to the current VOB.
+The text <i>Development version 1</i> is added as a comment.</p>
+
+
+<hr>
+<h2><a name="ccmklabel">CCMklabel</a></h2>
+<h3>Description</h3>
+Task to perform a "mklabel" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>typename</td>
+    <td>Name of the label type</td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command will operate on</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>replace</td>
+    <td>Replace a label of the same type on the same branch</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>recurse</td>
+    <td>Process each subdirectory under viewpath</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>version</td>
+    <td>Identify a specific version to attach the label to</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>vob</td>
+    <td>Name of the VOB</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr></tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmklabel viewpath="c:/views/viewdir/afile"
+        comment="Some comment text"
+        recurse="true"
+        version="\main\2"
+        typename="VERSION_1"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mklabel</i> on the file <i>c:/views/viewdir/afile</i> under
+the main branch for version 2 (<i>\main\2</i>). Text <i>Some comment text</i> is added
+as a comment. It will <i>recurse</i> all subdirectories.
+
+
+<hr>
+<h2><a name="ccrmtype">CCRmtype</a></h2>
+<h3>Description</h3>
+Task to perform a "rmtype" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>typekind</td>
+    <td>The kind of type to create. Valid types are:
+      <table border="0" width="40%" class="layout">
+        <tr>
+          <td><b>attype</b><br>
+              <b>brtype</b><br>
+              <b>eltype</b><br>
+              <b>hltype</b><br>
+              <b>lbtype</b><br>
+              <b>trtype</b>
+          </td>
+          <td>- <br>
+              - <br>
+              - <br>
+              - <br>
+              - <br>
+              -
+          </td>
+          <td>attribute type<br>
+              branch type<br>
+              element type<br>
+              hyperlink type<br>
+              label type<br>
+              trigger type
+          </td>
+        </tr>
+      </table>
+    </td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>typename</td>
+    <td>The name of the type to remove</td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>ignore</td>
+    <td>Used with trigger types only. Forces removal of trigger type even if a pre-operation trigger would prevent its removal</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>rmall</td>
+    <td>Removes all instances of a type and the type object itself</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr></tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccrmtype typekind="lbtype"
+        typename="VERSION_1"
+        commentfile="acomment.txt"
+        rmall="true"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>rmtype</i> to remove a label type (<i>lbtype</i>) named <i>VERSION_1</i>.
+Comment text from the file <i>acomment.txt</i> is added as a comment. All instances of the type
+are removed, including the type object itself.</p>
+<hr>
+
+<h2><a name="cclock">CCLock</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool lock" command to ClearCase.
+<h3>Parameters</h3>
+ <table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>replace</td>
+      <td>Specifies replacing an existing lock</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>nusers</td>
+      <td>Specifies user(s) who can still modify the object</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>obsolete</td>
+      <td>Specifies that the object should be marked obsolete</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>comment</td>
+      <td>Specifies how to populate comments fields</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>pname</td>
+      <td>Specifies the object pathname to be locked.</td>
+      <td>No</td>
+   <tr>
+      <td>objselect</td>
+      <td>This variable is obsolete. Should use <i>objsel</i> instead.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>objsel</td>
+      <td>Specifies the object(s) to be locked.<br>
+      Since ant 1.6.1</td>
+      <td>No</td>
+   <tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;cclock
+    objsel="stream:Application_Integration@\MyProject_PVOB"
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>lock</i> on the object <i>stream:Application_Integration@\MyProject_PVOB</i>.</p>
+<hr>
+
+<h2><a name="ccunlock">CCUnlock</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool unlock" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specifies how to populate comments fields</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>pname</td>
+      <td>Specifies the object pathname to be unlocked.</td>
+      <td>No</td>
+   <tr>
+      <td>objselect</td>
+      <td>This variable is obsolete. Should use <i>objsel</i> instead.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>objsel</td>
+      <td>Specifies the object(s) to be unlocked.<br>
+      Since ant 1.6.1</td>
+      <td>No</td>
+   <tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+
+ </table>
+ <h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccunlock
+    objsel="stream:Application_Integration@\MyProject_PVOB"
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>unlock</i> on the object <i>stream:Application_Integration@\MyProject_PVOB</i>.</p>
+<hr>
+
+<h2><a name="ccmkbl">CCMkbl</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool mkbl" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be
+used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or
+cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>baselinerootname</td>
+      <td>Specify the name to be associated with the baseline.</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>nowarn</td>
+      <td>Suppress warning messages</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>identical</td>
+      <td>Allows the baseline to be created even if it is identical to the
+previous baseline.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>full</td>
+      <td>Creates a full baseline.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>nlabel</td>
+      <td>Allows the baseline to be created without a label.</td>
+      <td>No</td>
+   </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkbl
+    baselinerootname="Application_Baseline_AUTO"
+    identical="yes"
+    full="no"
+    viewpath="v:\ApplicationCC"
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkbl</i> on the Integration view at <i>v:\ApplicationCC</i>
+even if it is <i>identical</i> to a previous baseline. The new baseline with be
+incremental and named "Application_Baseline_AUTO".</p>
+<hr>
+
+<h2><a name="ccmkattr">CCMkattr</a></h2>
+<h3>Description</h3>
+Task to perform a &quot;cleartool mkattr&quot; command to ClearCase.<br>
+Since ant 1.6.1
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>viewpath</td>
+      <td>Path to the ClearCase view file or directory that the command will operate on</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>replace</td>
+      <td>Replace the value of the attribute if it already exists</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>recurse</td>
+      <td>Process each subdirectory under viewpath</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>version</td>
+      <td>Identify a specific version to attach the attribute to</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>typename</td>
+      <td>Name of the attribute type</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>typevalue</td>
+      <td>Value to attach to the attribute type</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>failonerr</td>
+      <td>Throw an exception if the command fails. Default is true</td>
+      <td>No</td>
+   </tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkattr viewpath=&quot;c:/views/viewdir/afile&quot;
+    typename=&quot;BugFix&quot;
+    typevalue=&quot;34445&quot;
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkattr</i> on the file <i>c:/views/viewdir/afile</i> and
+attaches the attribute <i>BugFix</i> with a value of <i>34445</i> to it.</p>
+<hr>
+
+<h2><a name="ccmkdir">CCMkdir</a></h2>
+<h3>Description</h3>
+Task to perform a &quot;cleartool mkdir&quot; command to ClearCase.<br>
+Since ant 1.6.1
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>viewpath</td>
+      <td>Path to the ClearCase view directory that the command will operate on</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>nocheckout</td>
+      <td>Do not checkout after element creation</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>failonerr</td>
+      <td>Throw an exception if the command fails. Default is true</td>
+      <td>No</td>
+   </tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkdir viewpath=&quot;c:/views/viewdir/adir&quot;
+        nochcekout=&quot;true&quot;
+        comment=&quot;Some comment text&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkdir</i> on the dir <i>c:/views/viewdir/adir</i> and
+does not automatically check it out.</p>
+<hr>
+
+<h2><a name="ccmkelem">CCMkelem</a></h2>
+<h3>Description</h3>
+Task to perform a &quot;cleartool mkelem&quot; command to ClearCase.<br>
+Since ant 1.6.1
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>viewpath</td>
+      <td>Path to the ClearCase view file or directory that the command will operate on</td>
+      <td>Yes</td>
+   <tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>nowarn</td>
+      <td>Suppress warning messages</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>nocheckout</td>
+      <td>Do not checkout after element creation</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>checkin</td>
+      <td>Checkin element after creation</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>preservetime</td>
+      <td>Preserve the modification time (for checkin)</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>master</td>
+      <td>Assign mastership of the main branch to the current site</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>eltype</td>
+      <td>Element type to use during element creation</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>failonerr</td>
+      <td>Throw an exception if the command fails. Default is true</td>
+      <td>No</td>
+   <tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkelem viewpath=&quot;c:/views/viewdir/afile&quot;
+        eltype=&quot;text_file&quot;
+        checkin=&quot;true&quot;
+        comment=&quot;Some comment text&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkelem</i> on the file <i>c:/views/viewdir/afile</i> with
+element type <i>text_file</i>. It also checks in the file after creation.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/csc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/csc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/csc.html	(revision 14989)
@@ -0,0 +1,494 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Csc
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Csc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Compiles C# source into executables or modules.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Compiles C# source into executables or modules. csc.exe on Windows or mcs on any other platform must be on the execute path, unless another executable or the full path to that executable is specified in the <tt>executable</tt> parameter <p> All parameters are optional: <code>&lt;csc/&gt;</code> should suffice to produce a debug build of all *.cs files. However, naming an <tt>destFile</tt>stops the csc compiler from choosing an output name from random, and allows the dependency checker to determine if the file is out of date. <p> The task is a directory based task, so attributes like <b>includes="*.cs" </b> and <b>excludes="broken.cs"</b> can be used to control the files pulled in. By default, all *.cs files from the project folder down are included in the command. When this happens the output file -if not specified- is taken as the first file in the list, which may be somewhat hard to control. Specifying the output file with <tt>destFile</tt> seems prudent. <p> <p> For more complex source trees, nested <tt>src</tt> elements can be supplied. When such an element is present, the implicit fileset is ignored. This makes sense, when you think about it :)  <p>For historical reasons the pattern <code>**/*.cs</code> is preset as includes list and you can not override it with an explicit includes attribute.  Use nested <code>&lt;src&gt;</code> elements instead of the basedir attribute if you need more control.</p> <p> References to external files can be made through the references attribute, or (since Ant1.6), via nested <code>&lt;reference&gt;</code> filesets. With the latter, the timestamps of the references are also used in the dependency checking algorithm. <p> Example <pre>&lt;csc optimize=&quot;true&quot; debug=&quot;false&quot; docFile=&quot;documentation.xml&quot; warnLevel=&quot;4&quot; unsafe=&quot;false&quot; targetType=&quot;exe&quot; incremental=&quot;false&quot; mainClass = &quot;MainApp&quot; destFile=&quot;NetApp.exe&quot; &gt; &lt;src dir="src" includes="*.cs"/&gt; &lt;reference file="${testCSC.dll}"/&gt; &lt;define name="RELEASE"/&gt; &lt;define name="DEBUG" if="debug.property"/&gt; &lt;define name="def3" unless="def3.property"/&gt; &lt;/csc&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="26">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">definitions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of defined constants.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">docfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">file for generated XML documentation</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">filealign</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the file alignment. Valid values are 0,512, 1024, 2048, 4096, 8192, and 16384, 0 means 'leave to the compiler'</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">fullpaths</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, print the full path of files on errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">incremental</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the incremental compilation flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">noconfig</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">A flag that tells the compiler not to read in the compiler settings files 'csc.rsp' in its bin directory and then the local directory</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">outputfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">The output file. This is identical to the destFile attribute.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">unsafe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables the unsafe keyword.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/depend.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/depend.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/depend.html	(revision 14989)
@@ -0,0 +1,216 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Depend Task</title>
+</head>
+
+<body>
+
+<h2>Depend</h2>
+
+A task to manage Java class file dependencies.
+
+<h3>Description</h3>
+
+<p>
+The depend task works by determining which classes are out of date with
+respect to their source and then removing the class files of any other
+classes which depend on the out-of-date classes.
+</p>
+
+<p> To determine the class dependencies, the depend task analyses the class 
+files of all class files passed to it. Depend does not parse your source code in 
+any way but relies upon the class references encoded into the class files by the 
+compiler. This is generally faster than parsing the Java source.</p>
+
+<p>
+To learn more about how this information is obtained from the class files, 
+please refer to <a href="http://java.sun.com/docs/books/vmspec/">the Java 
+Virtual Machine Specification</a>
+</p>
+
+<p> Since a class' dependencies only change when the class itself changes, the 
+depend task is able to cache dependency information. Only those class files 
+which have changed will have their dependency information re-analysed. Note that 
+if you change a class' dependencies by changing the source, it will be 
+recompiled anyway. You can examine the dependency files created to understand 
+the  dependencies of your classes. Please do not rely, however, on the format of 
+the information, as it may change in a later release. </p>
+
+<p> Once depend discovers all of the class dependencies, it &quot;inverts&quot; 
+this relation to determine, for each class, which other classes are dependent 
+upon it. This &quot;affects&quot; list is used to discover which classes are 
+invalidated by the out of date class. The class files of the invalidated 
+classes are removed, triggering the compilation of the affected classes. </p>
+
+<p> The depend task supports an attribute, &quot;closure&quot; which controls 
+whether depend will only consider direct class-class relationships or whether it 
+will also consider transitive, indirect relationships. For example, say there 
+are three classes, A, which depends on B, which in-turn depend on C. Now say 
+that class C is out of date. Without closure, only class B would be removed by 
+depend. With closure set, class A would also be removed. Normally direct 
+relationships are sufficient - it is unusual for a class to depend on another 
+without having a direct relationship. With closure set, you will notice that 
+depend typically removes far more class files. </p>
+
+<p>The classpath attribute for <code>&lt;depend&gt;</code> is optional. If it is present, 
+depend will check class dependencies against classes and jars on this classpath.
+Any classes which depend on an element from this classpath and which are older 
+than that element will be deleted. A typical example where you would use this 
+facility would be where you are building a utility jar and want to make sure 
+classes which are out of date with respect to this jar are rebuilt. You should
+<b>not</b> include jars in this classpath which you do not expect to change, 
+such as the JDK runtime jar or third party jars, since doing so will just slow 
+down the dependency check. This means that if you do use a classpath for the 
+depend task it may be different from the classpath necessary to actually 
+compile your code.</p>
+
+<h3>Performance</h3> 
+
+<p> The performance of the depend task is dependent on a 
+number of factors such as class relationship complexity and how many class files 
+are out of date. The decision about whether it is cheaper to just recompile all 
+classes or to use the depend task will depend on the size of your project and 
+how interrelated your classes are. </p>
+
+
+<h3>Limitations</h3>
+
+<p> There are some source dependencies which depend will not detect. </p>
+
+<ul>
+<li>If the Java compiler optimizes away a class relationship, 
+    there can be a source dependency without a class dependency. </li>
+    
+<li>Non public classes cause two problems. Firstly depend cannot relate
+    the class file to a source file. In the future this may be addressed
+    using the source file attribute in the classfile. Secondly, neither 
+    depend nor the compiler tasks can detect when a non public class is
+    missing. Inner classes are handled by the depend task.</li>
+</ul>
+
+The most obvious example of these limitations is that the task can't tell
+which classes to recompile when a constant primitive data type exported 
+by other classes is changed. For example, a change in the definition of
+something like
+<pre>
+public final class Constants {
+  public final static boolean DEBUG=false;
+}
+</pre> will not be picked up by other classes.
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">This is the directory where the source exists. depend
+will examine this to determine which classes are out of date. If you use multiple
+source directories you can pass this attribute a path of source directories.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destDir</td>
+    <td valign="top">This is the root directory of the class files which
+will be analysed. If this is not present, the srcdir is used.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cache</td>
+    <td valign="top">This is a directory in which depend can store and
+retrieve dependency information. If this is not present, depend will not
+use a cache </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">closure</td>
+    <td valign="top">This attribute controls whether depend only removes
+classes which directly depend on out of date classes. If this is set to true,
+depend will traverse the class dependency graph deleting all affected
+classes. Defaults to false</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dump</td>
+    <td valign="top">If true the dependency information will be written to the debug level log
+                     </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath containing jars and classes for which <code>&lt;depend&gt;</code> should also
+                     check dependencies</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">warnOnRmiStubs</td>
+    <td valign="top">Flag to disable warnings about files that look like rmic generated stub/skeleton
+    classes, and which have no .java source. Useful when doing rmi development. </td>
+    <td valign="top" align="center">No, default=true</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<p>The <code>depend</code> task's <code>classpath</code> attribute is a 
+<a href="../using.html#path">PATH-like structure</a> and can also be set
+via a nested <code>&lt;classpath&gt;</code> element.</p>
+
+<p>Additionally,
+this task forms an implicit
+<a href="../CoreTypes/fileset.html">FileSet</a>
+and supports all attributes of
+<code>&lt;fileset&gt;</code> (<code>dir</code> becomes <code>srcdir</code>),
+as well as the nested <code>&lt;include&gt;</code>,
+<code>&lt;exclude&gt;</code>, and <code>&lt;patternset&gt;</code> elements.
+
+<h3>Examples</h3>
+<pre>&lt;depend srcdir=&quot;${java.dir}&quot;
+        destdir=&quot;${build.classes}&quot;
+        cache=&quot;depcache&quot;
+        closure=&quot;yes&quot;/&gt;</pre>
+
+<p>removes any classes in the <code>${build.classes}</code> directory
+that depend on out-of-date classes. Classes are considered out-of-date with 
+respect to the source in the <code>${java.dir}</code> directory, using the same
+mechanism as the <code>&lt;javac&gt;</code> task. In this example, the
+<code>&lt;depend&gt;</code> task caches its dependency 
+information in the <code>depcache</code> directory. </p>
+
+<pre>
+&lt;depend srcdir=&quot;${java.dir}&quot; destdir=&quot;${build.classes}&quot;
+        cache=&quot;depcache&quot; closure=&quot;yes&quot;&gt;
+  &lt;include name=&quot;**/*.java&quot;/&gt;
+  &lt;excludesfile name=&quot;${java.dir}/build_excludes&quot;/&gt;
+&lt;/depend&gt;
+</pre>
+<p>does the same as the previous example, but explicitly includes all
+<code>.java</code> files, except those that match the list given
+in <code>${java.dir}/build_excludes</code>.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/dotnet.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/dotnet.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/dotnet.html	(revision 14989)
@@ -0,0 +1,326 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>.NET Tasks</title>
+</head>
+
+<h1>.NET tasks</h1>
+<h2>Introduction</h2>
+
+
+<p><strong>These tasks are deprecated and will be removed in a future
+release of Ant.  They are now part of the <a
+href="http://ant.apache.org/antlibs/dotnet/index.html">.NET
+Antlib</a>.</strong></p>
+
+Ant support for .NET goes back to before .NET was released, and
+continues to be expanded based on user demand. Users writing nothing but
+a .NET application, may want to look at the .NET-based
+<A href="http://nant.sourceforge.net/">NAnt</A> project, that supports
+both the Microsoft and the Ximian managed <A
+href="http://go-mono.com/">Mono</A> project's implementation of the
+.NET framework.
+<p>
+
+Over time, the .NET tasks in Ant have tended to evolve to meet a few
+limited needs. Firstly, developers working with complex deployment problems may
+want to use ant to use the fairly advanced deployment tasks Ant ships
+with. Secondly, anyone who has a cross-platform project can use these
+tasks to cover the .NET side of the problem. Here, cross-platform can
+mean more than just Java and .NET: the C++ tasks in the ant-contrib
+project on sourceforge can be used with Ant to do native C++ and .NET
+cross development if that is your need. Finally, Ant support for .NET
+lets one automate .NET development under an automated build process,
+such as AntHill or Cruise Control.
+
+<p>
+
+What this means is that the Ant tasks for .NET support do not get as
+much rigorous use as the Java tools, and are evolving more slowly -that
+includes the time for support calls to change. But as a consequence,
+developers working on .NET support have more freedom to play around with
+the code. It also means that the fairly unusual set of tasks supported
+by ant enable a few interesting operations that can not be performed any
+other way:
+<ol>
+
+<li>Integrating with a Java based SOAP Service -generating C# code from
+the server's WSDL and running it against the server.
+</li>
+<li>Building and deploying a C#-based Web Service, then using the Apache
+Axis tasks to create JUnit tests to call the endpoints.
+
+<li>Patching .NET type libraries to work with more complex IDL than the
+basic <code>&lt;importtypelib&gt;</code> wrapper around tlbimport supports. Hence the
+disassembler and the reassembler.
+</li>
+
+</ol>
+Needless to say, possible does not mean easy.
+<A href="http://www.manning.com/hatcher/chap15.pdf">Chapter 15</A> of
+Java Development with Ant covers the first of these, using the Ant1.5
+version of the tasks. Going the other way -generating Java client
+code and JUnit testcases is covered in
+<A href="http://www.iseran.com/Steve/papers/interop/">The Wondrous curse
+of Interop</A>. The final trick, IDL and Typelib abuse, is not
+documented as we do not want to encourage such an ugly practise. It,
+can, however, be done if absolutely necessary. 
+
+<h3>Task List</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td><b>Task</b></td>
+  <td><b>Description</b></td>
+</tr>
+<tr>
+  <td><a href="csc.html">csc</a></td>
+  <td>Compiles C# code</td>
+</tr>
+
+<tr>
+  <td><a href="vbc.html">vbc</a></td>
+  <td>Compiles VB.NET code</td>
+</tr>
+
+<tr>
+  <td><a href="jsharpc.html">jsharpc</a></td>
+  <td>Compiles J# files</td>
+</tr>
+
+<tr>
+  <td><a href="ildasm.html">ildasm</a></td>
+  <td>Disassembles .NET executables and libraries</td>
+</tr>
+
+<tr>
+  <td><a href="ilasm.html">ilasm</a></td>
+  <td>Assembles .il files</td>
+</tr>
+
+<tr>
+  <td><a href="wsdltodotnet.html">wsdltodotnet</a></td>
+  <td>Generates .NET code (C# or VB) from a WSDL file</td>
+</tr>
+
+<tr>
+  <td><a href="importtypelib.html">importtypelib</a></td>
+  <td>Imports a COM type library into .NET</td>
+</tr>
+
+</table>
+
+<hr>
+<h3>Common .NET Datatypes </h3>
+
+There are some datatypes that are common to the core compiler classes:
+csc, vbc and  jsharpc
+
+<h4>Resource</h4>
+
+This is a resource that is included in the build. Ant uses this for
+dependency checking -if resources included this way have changed, the
+executable or library will be rebuilt.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">File</td> 
+    <td valign="top">the resource to include</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td> 
+    <td valign="top">the name of the resource. 
+    Optional unless the resource is
+    marked as public or private</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">embed</td> 
+    <td valign="top">flag to control whether the resource
+    is embedded in the assembly, or just linked to it</td>
+    <td align="center" valign="top">No -default is true</td>
+  </tr>
+  <tr>
+    <td valign="top">public</td> 
+    <td valign="top">VB only: flag to control if a resource should be 
+    public or private. Set to true for public, false for private
+    and leave undefined for for neither. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h5>Examples</h5>
+
+<pre>
+&lt;resource file="app.ico" name="icon"/&gt;
+&lt;resource file="splash.jpg"/&gt;
+&lt;resource name="splash" file="splash.jpg" public="false"/&gt;
+</pre>
+
+<h4>Define</h4>
+
+This is a definition; in .NET these can either be defined or undefined,
+unlike C++ #defines, which can be either undefined or arbitrary text.
+The Ant compilation tasks can unconditionally add definitions, or
+conditionally set a compile-time definition if an ant property is
+defined or not.
+<p>
+
+Dependency Logic: the tasks are not (yet) clever enough to remember what
+the last definitions were and trigger a rebuild when they change. Clean
+build the code when the defines are likely to be different.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td> 
+    <td valign="top">the name of the definition</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td> 
+    <td valign="top">name of a ant property to test for;
+    the definition is only set if this property is defined.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td> 
+    <td valign="top">name of a ant property to test for;
+    the definition is only set if this property is undefined.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h5>Examples</h5>
+
+<pre>
+&lt;define name="unsafe"/&gt;
+&lt;define name="debug" if="build.debug"/&gt;
+&lt;define name="dotnet" unless="build.mono"/&gt;
+</pre>
+
+<hr>
+<h3> Change Log </h3>
+
+<h4>Ant1.6</h4>
+This revision goes along with NET 1.1, though there is no reason why
+it should not work on other versions.
+<p>
+
+<ol>
+<li>vbc task</li>
+<li>jsharpc task</li>
+<li>mono support</li>
+<li>ilasm</li>
+<li>tlbimport</li>
+<li>Reference filesets in the compiler tasks</li>
+<li>definitions in the compiler tasks</li>
+<li>multiple source filesets in the compiler tasks. If these are used, the
+implicit fileset is disabled</li>
+</ol>
+
+The compile tasks: vbc, jsharpc, and csc, all contain lots of common code
+in a shared base class: if you can use one you should be able to use
+another.
+
+<h4>Ant 1.5</h4>
+This revision goes along with NET 1.0 (SP1)
+<ol>
+<li>CSC: added filealign</li>
+<li>CSC: added reference to office.dll</li>
+<li>CSC: dependency checking! only if destFile is set!
+<li>WsdlToDotnet written
+</ol>
+
+<h4>Version 0.5</h4>
+This revision goes along with NET 1.0 (SP1)
+<ol>
+<li>CSC: added filealign</li>
+<li>CSC: added reference to office.dll</li>
+<li>CSC: dependency checking! only if destFile is set!
+<li>WsdlToDotnet written
+</ol>
+
+<h4>Version 0.4</h4>
+This is the beta-2 revision of the tasks.
+<ol>
+<li>ILASM: pulled the owner attribute, added keyfile for giving binaries a strong name
+(MD5 hash of the checksum)</li>
+<li>CSC: added win32res , noConfig, utf8output, fullpaths</li>
+<li>CSC: </li>
+</ol>
+
+<h4>Version 0.3</h4>
+
+The changes here reflect Beta-1 of the dotnet SDK and experience of use in
+more complex projects. This build does not work with the older SDK,
+primarily because the automatic reference feature references libraries
+only found in the new SDK version.
+<p>
+External changes</p>
+<ul>
+<li>Recursive inclusion of .cs and .il files</li>
+
+<li>Documentation enhanced, includes examples and details of all parameters</li>
+
+<li>The csc task automatically includes the common dotnet assemblies, so
+there is no need to remember to refer to 'System.dll', 'System.Web.Services',
+ etc. This feature can be disabled by setting the 'includeDefaultReferences'
+ flag to false. </li>
+
+ <li> References can also be referred to using the ReferenceFiles parameter, which
+is an ant path specification. The old 'references' string is still retained.</li>
+<li> An 'extraoptions' attribute enables the build file to include any CSC options
+which are not explicitly supported in the CSC task. </li>
+</ul>
+
+Internal changes
+<ul>
+<li>Some minor refactoring (move common code a method)</li>
+<li>Application of Jedits JavaStyle task resulted in a major reshaping of
+the codebase and the insertion of a blank line every second line. Significant
+effort was required to revert some (but not all) changes.</li>
+<li>Removed throws clause from methods which can't throw exception
+</ul>
+
+The test harness has been expanded to include unicode source file
+(the build works but the rest of the system has 'issues' with high unicode
+package and method names)
+
+<h4>Version 0.2</h4>
+First public edition, added to the ant cvs tree. Tested on the PDC build of
+the dotnet SDK only, and still immature. The command execution code was
+refactored out into a 'NetCommand' class for re-use. The Ilasm task was added
+at this time.
+
+<h4>Version 0.1</h4>
+Initial proof of concept; very rudimentary support for CSC only.
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/echoproperties.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/echoproperties.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/echoproperties.html	(revision 14989)
@@ -0,0 +1,146 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Echoproperties Task</title>
+</head>
+
+<body>
+
+<h2><a name="echoproperties">echoproperties</a></h2>
+<h3>Description</h3>
+
+<p>Displays all the current properties (or a subset of them specified
+by a nested <code>&lt;propertyset&gt;</code>) in the project.  The
+output can be sent to a file if desired.  This task can be used as a
+somewhat contrived means of returning data from an
+<tt>&lt;ant&gt;</tt> invocation, but is really for debugging build
+files.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">If specified, the value indicates the name of the
+    file to send the output of the statement to.  The generated output file
+    is compatible for loading by any Java application as a property file.
+    If not specified, then the output will go to the Ant log.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">
+        a prefix which is used to filter the properties
+        only those properties starting with this prefix will be echoed.
+        <P>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">regex</td>
+    <td valign="top">
+        a regular expression which is used to filter the
+        properties
+        only those properties whose names match it will be echoed.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>   
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">By default, the "failonerror" attribute is enabled.
+    If an error occurs while writing the properties to a file, and this
+    attribute is enabled, then a BuildException will be thrown, causing the
+    build to fail.  If disabled, then IO errors will be reported as a log
+    statement, and the build will continue without failure from this task.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">One of <code>text</code> or <code>xml</code>.
+    Determines the output format.  Defaults to <code>text</code>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>propertyset</h4>
+
+<p>You can specify subsets of properties to be echoed with <a
+href="../CoreTypes/propertyset.html">propertyset</a>s. Using
+<tt>propertyset</tt>s gives more control on which properties will be
+picked up. The attributes <tt>prefix</tt> and <tt>regex</tt> are just
+shorcuts that use <tt>propertyset</tt>s internally.
+</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+  &lt;echoproperties/&gt;
+</pre></blockquote>
+<p>Report the current properties to the log.</p>
+<blockquote><pre>
+  &lt;echoproperties destfile="my.properties"/&gt;
+</pre></blockquote>
+<p>Report the current properties to the file "my.properties", and will
+fail the build if the file could not be created or written to.</p>
+<blockquote><pre>
+  &lt;echoproperties destfile="my.properties" failonerror="false"/&gt;
+</pre></blockquote>
+<p>Report the current properties to the file "my.properties", and will
+log a message if the file could not be created or written to, but will still
+allow the build to continue.</p>
+<blockquote><pre>
+  &lt;echoproperties prefix="java."/&gt;
+</pre></blockquote>
+<p>List all properties beginning with "java."</p>
+<blockquote><pre>
+  &lt;echoproperties&gt;
+    &lt;propertyset&gt;
+      &lt;propertyref prefix="java."/&gt;
+    &lt;/propertyset&gt;
+  &lt;/echoproperties&gt;
+</pre></blockquote>
+<p>This again lists all properties beginning with "java." using a nested
+<tt>&lt;/propertyset&gt;</tt> which is an equivalent but longer way.</p>
+<blockquote><pre>
+  &lt;echoproperties regex=".*ant.*"/&gt;
+</pre></blockquote>
+<p>Lists all properties that contain "ant" in their names.
+The equivalent snippet with <tt>&lt;/propertyset&gt;</tt> is:</p>
+<blockquote><pre>
+  &lt;echoproperties&gt;
+    &lt;propertyset&gt;
+      &lt;propertyref regex=".*ant.*"/&gt;
+    &lt;/propertyset&gt;
+  &lt;/echoproperties&gt;
+</pre></blockquote>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ejb.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ejb.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ejb.html	(revision 14989)
@@ -0,0 +1,1776 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>EJB Tasks</title>
+
+</head>
+
+<body>
+
+<h1>Ant EJB Tasks User Manual</h1>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Paul Austin (<a href="mailto:p_d_austin@yahoo.com">p_d_austin@yahoo.com</a>)</li>
+  <li>Holger Engels (<a href="mailto:hengels@innovidata.com">hengels@innovidata.com</a>)</li>
+  <li>Tim Fennell (<a href="mailto:tfenne@rcn.com">tfenne@rcn.com</a>)</li>
+  <li>Martin Gee (<a href="mailto:martin.gee@icsynergy.com">martin.gee@icsynergy.com</a>)</li>
+  <li>Conor MacNeill</li>
+  <li>Cyrille Morvan (<a href="mailto:cmorvan@ingenosya.com">cmorvan@ingenosya.com</a>)</li>
+  <li>Greg Nelson (<a href="mailto:gn@sun.com">gn@sun.com</a>)</li>
+  <li>Rob van Oostrum(<a href="mailto:rob@springwellfarms.ca">rob@springwellfarms.ca</a>)</li>
+</ul>
+
+<hr>
+<h2>Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#ejbtasks">EJB Tasks</a></li>
+</ul>
+
+<hr>
+<h2><a name="introduction">Introduction</a></h2>
+<p>Ant provides a number of optional tasks for developing 1.x and 2.x
+<a href="http://java.sun.com/products/ejb" target="_top">Enterprise Java Beans (EJBs)</a>.
+In general these tasks are specific to the particular vendor's EJB Server.</p>
+
+<p> The tasks support:<br>
+
+<ul>
+  <li><a href="http://www.borland.com">Borland </a>
+  Application Server 4.5</li>
+  <li><a href="http://www.iplanet.com">iPlanet </a>
+  Application Server 6.0</li>
+  <li><a href="http://www.jboss.org/" target="_top">
+  JBoss 2.1</a> and above EJB servers</li>
+  <li><a href="http://www.bea.com" target="_top">Weblogic</a>
+   4.5.1 through to 7.0 EJB servers</li>
+  <li><a href="http://www.objectweb.org/jonas/" target="_top">JOnAS</a>
+   2.4.x and 2.5 Open Source EJB server</li>
+  <li><a href="http://www.ibm.com/websphere">IBM WebSphere</a> 4.0</li>
+</ul>
+    Vendors such as BEA and IBM now provide custom Ant tasks to work with their
+    particular products. More importantly, EJB3.0 renders this whole process obsolete.
+    Accordingly, developement of these tasks is effectively frozen. Bug reports
+    and especially patches are welcome, but there is no pressing need to add
+    support for new application servers. Nobody should be writing new EJB2.x applications
+    and definitely not new EJB2.x servers.
+</p>
+
+<hr>
+<h2><a name="ejbtasks">EJB Tasks</a></h2>
+<table border="1" cellpadding="2" cellspacing="0">
+ <tr><td>Task</td><td colspan="2">Application Servers</td></tr>
+ <tr><td><a href="BorlandGenerateClient.html">blgenclient</a></td><td colspan="2">Borland Application Server 4.5 and 5.x</td></tr>
+ <tr><td><a href="#ddcreator">ddcreator</a></td><td colspan="2">Weblogic 4.5.1</td></tr>
+ <tr><td><a href="#ejbc">ejbc</a></td><td colspan="2">Weblogic 4.5.1</td></tr>
+ <tr><td><a href="#iplanet-ejbc">iplanet-ejbc</a></td><td colspan="2">iPlanet Application Server 6.0</td></tr>
+ <tr><td rowspan="7"><a href="#ejbjar">ejbjar</a></td><td colspan="2" align="center"><b>Nested Elements</b></td></tr>
+ <tr><td><a href="BorlandEJBTasks.html">borland</a></td><td>Borland Application Server 4.5 and 5.x</td></tr>
+ <tr><td><a href="#ejbjar_iplanet">iPlanet</a></td><td>iPlanet Application Server 6.0</td></tr>
+ <tr><td><a href="#ejbjar_jboss">jboss</a></td><td>JBoss</td></tr>
+ <tr><td><a href="#ejbjar_jonas">jonas</a></td><td>JOnAS 2.4.x and 2.5</td></tr>
+ <tr><td><a href="#ejbjar_weblogic">weblogic</a></td><td>Weblogic 5.1 to 7.0</td></tr>
+ <tr><td><a href="#ejbjar_websphere">websphere</a></td><td>IBM WebSphere 4.0</td></tr>
+ <tr><td><a href="#wlrun">wlrun</a></td><td colspan="2">Weblogic 4.5.1 to 7.0</td></tr>
+ <tr><td><a href="#wlstop">wlstop</a></td><td colspan="2">Weblogic 4.5.1 to 7.0</td></tr>
+
+</table>
+
+<hr>
+<h2><a name="ddcreator">ddcreator</a></h2>
+<h3><b>Description:</b></h3>
+<p>ddcreator will compile a set of Weblogic text-based deployment descriptors into a serialized
+EJB deployment descriptor. The selection of which of the text-based descriptors are to be compiled
+is based on the standard Ant include and exclude selection mechanisms.
+</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">descriptors</td>
+    <td valign="top">This is the base directory from which descriptors are selected.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">The directory where the serialized deployment descriptors will be written</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">This is the classpath to use to run the underlying weblogic ddcreator tool.
+                     This must include the <code>weblogic.ejb.utils.DDCreator</code> class</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;ddcreator descriptors=&quot;${dd.dir}&quot;
+           dest=&quot;${gen.classes}&quot;
+           classpath=&quot;${descriptorbuild.classpath}&quot;&gt;
+  &lt;include name=&quot;*.txt&quot;/&gt;
+&lt;/ddcreator&gt;
+</pre>
+
+<hr>
+<h2><a name="ejbc">ejbc</a></h2>
+<h3><b>Description:</b></h3>
+<p>The ejbc task will run Weblogic's ejbc tool. This tool will take a serialized deployment descriptor,
+examine the various EJB interfaces and bean classes and then generate the required support classes
+necessary to deploy the bean in a Weblogic EJB container. This will include the RMI stubs and skeletons
+as well as the classes which implement the bean's home and remote interfaces.</p>
+<p>
+The ant task which runs this tool is able to compile several beans in a single operation. The beans to be
+compiled are selected by including their serialized deployment descriptors. The standard ant
+<code>include</code> and <code>exclude</code> constructs can be used to select the deployment descriptors
+to be included. </p>
+<p>
+Each descriptor is examined to determine whether the generated classes are out of date and need to be
+regenerated. The deployment descriptor is de-serialized to discover the home, remote and
+implementation classes. The corresponding source files are determined and checked to see their
+modification times. These times and the modification time of the serialized descriptor itself are
+compared with the modification time of the generated classes. If the generated classes are not present
+or are out of date, the ejbc tool is run to generate new versions.</p>
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">descriptors</td>
+    <td valign="top">This is the base directory from which the serialized deployment descriptors are selected.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">The base directory where the generated classes, RIM stubs and RMI skeletons are written</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">The name of a manifest file to be written. This manifest will contain an entry for each EJB processed</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The base directory of the source tree containing the source files of the home interface,
+                     remote interface and bean implementation classes.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">This classpath must include both the <code>weblogic.ejbc</code> class and the
+                     class files of the bean, home interface, remote interface, etc of the bean being
+                     processed.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgenerated</td>
+    <td>Controls whether ejbc will keep the
+        intermediate Java files used to build the class files. This can be
+        useful when debugging.</td>
+    <td>No, defaults to false.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;ejbc descriptors=&quot;${gen.classes}&quot;
+           src=&quot;${src.dir}&quot;
+           dest=&quot;${gen.classes}&quot;
+           manifest=&quot;${build.manifest}&quot;
+           classpath=&quot;${descriptorbuild.classpath}&quot;&gt;
+  &lt;include name=&quot;*.ser&quot;/&gt;
+&lt;/ejbc&gt;
+</pre>
+
+<hr>
+<h2>
+<a NAME="iplanet-ejbc"></a>iplanet-ejbc</h2>
+
+<h3>
+<b>Description:</b></h3>
+Task to compile EJB stubs and skeletons for the iPlanet Application Server
+6.0.  Given a standard EJB 1.1 XML descriptor as well as an iAS-specific
+EJB descriptor, this task will generate the stubs and skeletons required
+to deploy the EJB to iAS.  Since the XML descriptors can include multiple
+EJBs, this is a convenient way of specifying many EJBs in a single Ant
+task.
+<p>For each EJB specified, the task will locate the three classes that
+comprise the EJB in the destination directory.  If these class files
+cannot be located in the destination directory, the task will fail. The
+task will also attempt to locate the EJB stubs and skeletons in this directory.
+If found, the timestamps on the stubs and skeletons will be checked to
+ensure they are up to date. Only if these files cannot be found or if they
+are out of date will the iAS ejbc utility be called to generate new stubs
+and skeletons.</p>
+<h3>
+Parameters:</h3>
+
+<table border="1" cellspacing="0" cellpadding="2">
+<tr>
+<td valign="top"><b>Attribute</b></td>
+
+<td valign="top"><b>Description</b></td>
+
+<td align="center" valign="top"><b>Required</b></td>
+</tr>
+
+<tr>
+<td valign="top">ejbdescriptor</td>
+
+<td valign="top">Standard EJB 1.1 XML descriptor (typically titled "ejb-jar.xml").</td>
+
+<td align="center" valign="top">Yes</td>
+</tr>
+
+<tr>
+<td valign="top">iasdescriptor</td>
+
+<td valign="top">iAS-specific EJB XML descriptor (typically titled "ias-ejb-jar.xml").</td>
+
+<td align="center" valign="top">Yes</td>
+</tr>
+
+<tr>
+<td valign="top">dest</td>
+
+<td valign="top">The is the base directory where the RMI stubs and skeletons
+are written. In addition, the class files for each bean (home interface,
+remote interface, and EJB implementation) must be found in this directory.</td>
+
+<td align="center" valign="top">Yes</td>
+</tr>
+
+<tr>
+<td valign="top">classpath</td>
+
+<td valign="top">The classpath used when generating EJB stubs and skeletons.
+If omitted, the classpath specified when Ant was started will be used.
+Nested "classpath" elements may also be used.</td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">keepgenerated</td>
+
+<td valign="top">Indicates whether or not the Java source files which are
+generated by ejbc will be saved or automatically deleted. If "yes", the
+source files will be retained. If omitted, it defaults to "no". </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">debug</td>
+
+<td>Indicates whether or not the ejbc utility should log additional debugging
+statements to the standard output. If "yes", the additional debugging statements
+will be generated.  If omitted, it defaults to "no". </td>
+
+<td align="center" valign="top">
+<center>No</center>
+</td>
+</tr>
+
+<tr>
+<td valign="top">iashome</td>
+
+<td>May be used to specify the "home" directory for this iAS installation.
+This is used to find the ejbc utility if it isn't included in the user's
+system path. If specified, it should refer to the "[install-location]/iplanet/ias6/ias"
+directory. If omitted, the ejbc utility must be on the user's system path. </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+</table>
+
+<h3>
+Examples</h3>
+
+<pre>
+&lt;iplanet-ejbc ejbdescriptor="ejb-jar.xml"
+              iasdescriptor="ias-ejb-jar.xml"
+              dest="${build.classesdir}"
+              classpath="${ias.ejbc.cpath}"/&gt;
+
+
+&lt;iplanet-ejbc ejbdescriptor="ejb-jar.xml"
+              iasdescriptor="ias-ejb-jar.xml"
+              dest="${build.classesdir}"
+              keepgenerated="yes"
+              debug="yes"
+              iashome="${ias.home}"&gt;
+              &lt;classpath&gt;
+                  &lt;pathelement path="."/&gt;
+                  &lt;pathelement path="${build.classpath}"/&gt;
+              &lt;/classpath&gt;
+&lt;/iplanet-ejbc&gt;
+
+
+</pre>
+
+<hr>
+<h2><a name="wlrun">wlrun</a></h2>
+<h3><b>Description:</b></h3>
+
+<p>The <code>wlrun</code> task is used to start a weblogic server. The task runs
+a weblogic instance in a separate Java Virtual Machine. A number of parameters
+are used to control the operation of the weblogic instance. Note that the task,
+and hence ant, will not complete until the weblogic instance is stopped.</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required for 4.5.1 and 5.1</b></td>
+    <td align="center" valign="top"><b>Required for 6.0</b></td>
+  </tr>
+  <tr>
+    <td valign="top">BEA Home</td>
+    <td valign="top">The location of the BEA Home where the server's config is defined.
+                     If this attribute is present, wlrun assumes that the server will
+                     be running under Weblogic 6.0</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">home</td>
+    <td valign="top">The location of the weblogic home that is to be used. This is the location
+                     where weblogic is installed.</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">Yes. Note this is the absolute location, not relative to
+                                    BEA home.</td>
+  </tr>
+  <tr>
+    <td valign="top">Domain</td>
+    <td valign="top">The domain to which the server belongs.</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be used with the Java Virtual Machine that runs the Weblogic
+                     Server. Prior to Weblogic 6.0, this is typically set to the Weblogic
+                     boot classpath. Under Weblogic 6.0 this should include all the
+                     weblogic jars</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">wlclasspath</td>
+    <td valign="top">The weblogic classpath used by the Weblogic Server.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">N/A</td>
+  </tr>
+  <tr>
+    <td valign="top">properties</td>
+    <td valign="top">The name of the server's properties file within the weblogic home directory
+                     used to control the weblogic instance.</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">N/A</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the weblogic server within the weblogic home which is to be run.
+                     This defaults to &quot;myserver&quot;</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">policy</td>
+    <td valign="top">The name of the security policy file within the weblogic home directory that
+                     is to be used. If not specified, the default policy file <code>weblogic.policy</code>
+                     is used.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The management username used to manage the server</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The server's management password</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">pkPassword</td>
+    <td valign="top">The private key password so the server can decrypt the SSL
+                     private key file</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmargs</td>
+    <td valign="top">Additional argument string passed to the Java Virtual Machine used to run the
+                     Weblogic instance.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">weblogicMainClass</td>
+    <td valign="top">name of the main class for weblogic</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<p>The wlrun task supports nested <code>&lt;classpath&gt;</code> and <code>&lt;wlclasspath&gt;</code>
+elements to set the respective classpaths.</p>
+
+<h3>Examples</h3>
+
+<p>This example shows the use of wlrun to run a server under Weblogic 5.1</p>
+
+<pre>
+    &lt;wlrun taskname=&quot;myserver&quot;
+           classpath=&quot;${weblogic.boot.classpath}&quot;
+           wlclasspath=&quot;${weblogic.classes}:${code.jars}&quot;
+           name=&quot;myserver&quot;
+           home=&quot;${weblogic.home}&quot;
+           properties=&quot;myserver/myserver.properties&quot;/&gt;
+</pre>
+
+<p>This example shows wlrun being used to run the petstore server under
+Weblogic 6.0</p>
+
+<pre>
+    &lt;wlrun taskname=&quot;petstore&quot;
+           classpath=&quot;${weblogic.classes}&quot;
+           name=&quot;petstoreServer&quot;
+           domain=&quot;petstore&quot;
+           home=&quot;${weblogic.home}&quot;
+           password=&quot;petstorePassword&quot;
+           beahome=&quot;${bea.home}&quot;/&gt;
+</pre>
+
+<hr>
+<h2><a name="wlstop">wlstop</a></h2>
+<h3><b>Description:</b></h3>
+
+<p>The <code>wlstop</code> task is used to stop a weblogic instance which is
+currently running. To shut down an instance you must supply both a username and
+a password. These will be stored in the clear in the build script used to stop
+the instance. For security reasons, this task is therefore only appropriate in a
+development environment. </p>
+
+<p>This task works for most version of Weblogic, including 6.0. You need to
+specify the BEA Home to have this task work correctly under 6.0</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">BEAHome</td>
+    <td valign="top">This attribute selects Weblogic 6.0 shutdown.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be used with the Java Virtual Machine that runs the Weblogic
+                     Shutdown command.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">user</td>
+    <td valign="top">The username of the account which will be used to shutdown the server</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password for the account specified in the user parameter.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The URL which describes the port to which the server is listening for T3 connections.
+                     For example, t3://localhost:7001</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">delay</td>
+    <td valign="top">The delay in seconds after which the server will stop. This defaults to an
+                     immediate shutdown.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Element</h3>
+
+<p>The classpath of the wlstop task can be set by a <code>&lt;classpath&gt;</code> nested element.</p>
+
+<h3>Examples</h3>
+
+<p>This example show the shutdown for a Weblogic 6.0 server</p>
+
+<pre>
+    &lt;wlstop classpath=&quot;${weblogic.classes}&quot;
+            user=&quot;system&quot;
+            url=&quot;t3://localhost:7001&quot;
+            password=&quot;foobar&quot;
+            beahome=&quot;${bea.home}&quot;/&gt;
+</pre>
+
+<hr>
+
+<h2><a name="ejbjar">ejbjar</a></h2>
+<h3><b>Description:</b></h3>
+
+<p>This task is designed to support building of EJB jar files (EJB 1.1 &amp; 2.0).
+Support is currently provided for 'vanilla' EJB jar files - i.e. those containing only
+the user generated class files and the standard deployment descriptor. Nested
+elements provide support for vendor specific deployment tools. These currently
+include: </p>
+<ul>
+  <li>Borland Application Server 4.5</li>
+  <li>iPlanet Application Server 6.0</li>
+  <li>JBoss 2.1 and above</li>
+  <li>Weblogic 5.1/6.0 session/entity beans using the weblogic.ejbc tool</li>
+  <li>IBM WebSphere 4.0</li>
+  <li>TOPLink for WebLogic 2.5.1-enabled entity beans</li>
+  <li><a href="http://www.objectweb.org/jonas/">JOnAS</a> 2.4.x and 2.5 Open Source EJB server</li>
+</ul>
+
+
+<p>The task works as a directory scanning task, and performs an action for each
+deployment descriptor found. As such the includes and excludes should be set
+to ensure that all desired EJB descriptors are found, but no application
+server descriptors are found. For each descriptor found, ejbjar will parse the
+deployment descriptor to determine the necessary class files which implement the
+bean. These files are assembled along with the deployment descriptors into a
+well formed EJB jar file. Any support files which need to be included in the
+generated jar can be added with the <code>&lt;support&gt;</code> nested element. For each
+class included in the jar, ejbjar will scan for any super classes or super
+interfaces. These will be added to the generated jar.</p>
+
+<p>If no nested vendor-specific deployment elements are present, the task will
+simply generate a generic EJB jar. Such jars are typically used as the input to
+vendor-specific deployment tools. For each nested deployment element, a vendor
+specific deployment tool is run to generate a jar file ready for deployment in
+that vendor's EJB container. </p>
+
+<p>The jar files are only built if they are out of date.  Each deployment tool
+element will examine its target jar file and determine if it is out of date with
+respect to the class files and deployment descriptors that make up the bean. If
+any of these files are newer than the jar file the jar will be rebuilt otherwise
+a message is logged that the jar file is up to date.</p>
+
+<p>The task uses the
+<a href="http://jakarta.apache.org/bcel"> jakarta-BCEL </a> framework
+to extract all dependent classes. This
+means that, in addition to the classes that are mentioned in the
+deployment descriptor, any classes that these depend on are also
+automatically included in the jar file.</p>
+
+
+<h3>Naming Convention</h3>
+
+Ejbjar handles the processing of multiple beans, and it uses a set of naming
+conventions to determine the name of the generated EJB jars. The naming convention
+that is used is controlled by the &quot;naming&quot; attribute. It supports the
+following values
+<ul>
+
+<li>descriptor</li>
+<p>This is the default naming scheme. The name of the generated bean is derived from the
+name of the deployment descriptor.  For an Account bean, for example, the deployment
+descriptor would be named <code>Account-ejb-jar.xml</code>. Vendor specific descriptors are
+located using the same naming convention. The weblogic bean, for example, would be named
+<code>Account-weblogic-ejb-jar.xml</code>. Under this arrangement, the deployment descriptors
+can be separated from the code implementing the beans, which can be useful when the same bean code
+is deployed in separate beans.
+</p>
+
+<p>This scheme is useful when you are using one bean per EJB jar and where you may be
+deploying the same bean classes in different beans, with different deployment characteristics.
+
+<li>ejb-name</li>
+<p> This naming scheme uses the <code>&lt;ejb-name&gt;</code> element from the deployment descriptor to
+determine the bean name. In this situation, the descriptors normally use the generic
+descriptor names, such as <code>ejb-jar.xml</code> along with any associated vendor specific descriptor
+names. For example, If the value of the <code>&lt;ejb-name&gt;</code> were to be given in the deployment descriptor
+as follows:
+<pre>
+&lt;ejb-jar&gt;
+    &lt;enterprise-beans&gt;
+        &lt;entity&gt;
+            &lt;ejb-name&gt;Sample&lt;/ejb-name&gt;
+            &lt;home&gt;org.apache.ant.ejbsample.SampleHome&lt;/home&gt;
+</pre>
+
+then the name of the generated bean would be <code>Sample.jar</code>
+</p>
+<p> This scheme is useful where you want to use the standard deployment descriptor names, which may be more
+compatible with other EJB tools. This scheme must have one bean per jar.
+</p>
+<li>directory</li>
+<p>
+In this mode, the name of the generated bean jar is derived from the directory
+containing the deployment descriptors. Again the deployment descriptors typically use
+the standard filenames. For example, if the path to the deployment descriptor is
+<code>/home/user/dev/appserver/dd/sample</code>, then the generated
+bean will be named <code>sample.jar</code>
+</p>
+<p>
+This scheme is also useful when you want to use standard style descriptor names. It is often
+most useful when the  descriptors are located in the same directory as the bean source code,
+although that is not mandatory. This scheme can handle multiple beans per jar.
+</p>
+
+<li>basejarname</li>
+<p>
+The final scheme supported by the <code>&lt;ejbjar&gt;</code> task is used when you want to specify the generated
+bean jar name directly. In this case the name of the generated jar is specified by the
+&quot;basejarname&quot; attribute. Since all generated beans will have the same name, this task should
+be only used when each descriptor is in its own directory.
+</p>
+
+<p>
+This scheme is most appropriate when you are using multiple beans per jar and only process a single
+deployment descriptor. You typically want to specify the name of the jar and not derive it from the
+beans in the jar.
+</p>
+
+</ul>
+
+<a name="ejbjar_deps"><h3>Dependencies</h3></a>
+<p>In addition to the bean classes, ejbjar is able to ad additional classes to the generated
+ejbjar. These classes are typically the support classes which are used by the bean's classes or as
+parameters to the bean's methods.</p>
+
+<p>In versions of Ant prior to 1.5, ejbjar used reflection and attempted to add the super
+classes and super interfaces of the bean classes. For this technique to work the bean
+classes had to be loaded into Ant's JVM. This was not always possible due to class dependencies.
+</p>
+
+<p>The ejbjar task in Ant releases 1.5 and later uses the
+<a href="http://jakarta.apache.org/bcel"> jakarta-BCEL </a> library
+to analyze the bean's class
+files directly, rather than loading them into the JVM. This also allows ejbjar to add all
+of the required support classes for a bean and not just super classes.
+</p>
+
+<p>In Ant 1.5, a new attribute, <code>dependency</code> has been introduced to allow the
+buildfile to control what additional classes are added to the generated jar. It takes three
+possible values</p>
+<ul>
+<li><code>none</code> - only the bean classes and interfaces described in the bean's
+descriptor are added to the jar.</li>
+<li><code>super</code> - this is the default value and replicates the original ejbjar
+behaviour where super classes and super interfaces are added to the jar</li>
+<li><code>full</code> - In this mode all classes used by the bean's classes and interfaces
+are added to the jar</li>
+</ul>
+<p>The <code>super</code> and <code>full</code> values require the
+<a href="http://jakarta.apache.org/bcel"> jakarta-BCEL </a> library
+to be available. If it is not, ejbjar will drop back to the behaviour corresponding to
+the value <code>none</code>.</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">descriptordir</td>
+    <td valign="top">The base directory under which to scan for EJB
+                     deployment descriptors. If this attribute is not
+                     specified, then the deployment descriptors must be
+                     located in the directory specified by the 'srcdir'
+                     attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcdir</td>
+    <td valign="top">The base directory containing the .class files that
+                     make up the bean. Included are the home- remote- pk-
+                     and implementation- classes and all classes, that these
+                     depend on. Note that this can be the same as the
+                     descriptordir if all files are in the same directory
+                     tree.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which generated jar files are
+                     deposited. Jar files are deposited in directories
+                     corresponding to their location within the descriptordir
+                     namespace. Note that this attribute is only used if the
+                     task is generating generic jars (i.e. no vendor-specific
+                     deployment elements have been specified).</td>
+    <td valign="top" align="center">Yes, unless vendor-specific deployment elements
+    have been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">cmpversion</td>
+    <td valign="top">Either <code>1.0</code> or <code>2.0</code>.<br>
+    Default is <code>1.0</code>.<br>
+    A CMP 2.0 implementation exists currently only for JBoss.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">naming</td>
+    <td valign="top">Controls the naming convention used to name generated
+                     EJB jars. Please refer to the description above.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">basejarname</td>
+    <td valign="top">The base name that is used for the generated jar files.
+                     If this attribute is specified, the generic jar file name
+                     will use this value as the prefix (followed by the value
+                     specified in the 'genericjarsuffix' attribute) and the
+                     resultant ejb jar file (followed by any suffix specified
+                     in the nested element).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">basenameterminator</td>
+    <td valign="top">String value used to substring out a string from the name
+                     of each deployment descriptor found, which is then used to
+                     locate related deployment descriptors (e.g. the WebLogic
+                     descriptors). For example, a basename of '.' and a
+                     deployment descriptor called 'FooBean.ejb-jar.xml' would
+                     result in a basename of 'FooBean' which would then be used
+                     to find FooBean.weblogic-ejb-jar.xml and
+                     FooBean.weblogic-cmp-rdbms-jar.xml, as well as to create
+                     the filenames of the jar files as FooBean-generic.jar and
+                     FooBean-wl.jar. This attribute is not used if the
+                     'basejarname' attribute is specified.</td>
+    <td valign="top" align="center">No, defaults to '-'.</td>
+  </tr>
+  <tr>
+    <td valign="top">genericjarsuffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the generic EJB jar
+                     file.</td>
+    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">This classpath is used when resolving classes which
+                     are to be added to the jar. Typically nested deployment
+                     tool elements will also support a classpath which
+                     will be combined with this classpath when resolving
+                     classes</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">flatdestdir</td>
+    <td valign="top">Set this attribute to true if you want all generated jars
+                     to be placed in the root of the destdir, rather than
+                     according to the location of the deployment descriptor
+                     within the descriptor dir hierarchy.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">dependency</td>
+    <td valign="top">This attribute controls which additional classes and interfaces
+                     are added to the jar. Please refer to the description
+                     <a href="#ejbjar_deps">above</a></td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<p>In addition to the vendor specific nested elements, the ejbjar task provides
+three nested elements. </p>
+
+<h4>Classpath</h4>
+
+<p>The <code>&lt;classpath&gt;</code> nested element allows the classpath
+to be set. It is useful when setting the classpath from a reference path. In all
+other respects the behaviour is the same as the classpath attribute.</p>
+
+<a name="ejbjar-dtd"><h4>dtd</h4></a>
+
+<p>The <code>&lt;dtd&gt;</code> element is used to specify the local location of DTDs to be
+used when parsing the EJB deployment descriptor. Using a local DTD is much
+faster than loading the DTD across the net. If you are running ejbjar behind a
+firewall you may not even be able to access the remote DTD. The supported
+vendor-specific nested elements know the location of the required DTDs within
+the vendor class hierarchy and, in general, this means <code>&lt;dtd&gt;</code> elements are
+not required. It does mean, however, that the vendor's class hierarchy must be
+available in the classpath when Ant is started. If your want to run Ant without
+requiring the vendor classes in the classpath, you would need to use a
+<code>&lt;dtd&gt;</code> element.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">The public Id of the DTD for which the location is being provided</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">The location of the local copy of the DTD. This can either be a
+                     file or a resource loadable from the classpath.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>support</h4>
+
+<p>The <code>&lt;support&gt;</code> nested element is used to supply additional classes
+(files) to be included in the generated jars. The <code>&lt;support&gt;</code> element is a
+<a href="../CoreTypes/fileset.html">FileSet</a>, so it can either reference a fileset declared elsewhere or it can be
+defined in-place with the appropriate <code>&lt;include&gt;</code> and <code>&lt;exclude&gt;</code> nested
+elements. The files in the support fileset are added into the generated EJB jar
+in the same relative location as their location within the support fileset. Note
+that when ejbjar generates more than one jar file, the support files are added
+to each one.</p>
+
+<h3>Vendor-specific deployment elements</h3>
+
+Each vendor-specific nested element controls the generation of a deployable jar
+specific to that vendor's EJB container. The parameters for each supported
+deployment element are detailed here.
+
+
+<h3><a name="ejbjar_jboss">Jboss element</a></h3>
+
+<p>The jboss element searches for the JBoss specific deployment descriptors and adds them
+to the final ejb jar file. JBoss has two deployment descriptors:
+<ul><li>jboss.xml</li>
+<li>for container manager persistence:<br>
+<table border="1">
+<tr><td><b>CMP version</b></td><td><b>File name</b></td></tr>
+<tr><td>CMP 1.0</td><td>jaws.xml</td></tr>
+<tr><td>CMP 2.0</td><td>jbosscmp-jdbc.xml</td></tr>
+</table>
+</li>
+</ul>
+<br>
+. The JBoss server uses hot deployment and does
+not require compilation of additional stubs and skeletons.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which the generated weblogic ready
+                     jar files are deposited. Jar files are deposited in
+                     directories corresponding to their location within the
+                     descriptordir namespace. </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">genericjarsuffix</td>
+    <td valign="top">A generic jar is generated as an intermediate step in
+                     build the weblogic deployment jar. The suffix used to
+                     generate the generic jar file is not particularly
+                     important unless it is desired to keep the generic
+                     jar file. It should not, however, be the same
+                     as the suffix setting.</td>
+    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the JBoss EJB
+                     jar file.</td>
+    <td valign="top" align="center">No, defaults to '.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgeneric</td>
+    <td valign="top">This controls whether the generic file used as input to
+                     ejbc is retained.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+</table>
+
+
+<h3><a name="ejbjar_weblogic">Weblogic element</a></h3>
+
+<p>The weblogic element is used to control the weblogic.ejbc compiler for
+generating weblogic EJB jars. Prior to Ant 1.3, the method of locating CMP
+descriptors was to use the ejbjar naming convention. So if your ejb-jar was
+called, Customer-ejb-jar.xml, your weblogic descriptor was called Customer-
+weblogic-ejb-jar.xml and your CMP descriptor had to be Customer-weblogic-cmp-
+rdbms-jar.xml. In addition, the <code>&lt;type-storage&gt;</code> element in the weblogic
+descriptor had to be set to the standard name META-INF/weblogic-cmp-rdbms-
+jar.xml, as that is where the CMP descriptor was mapped to in the generated
+jar.</p>
+
+<p>There are a few problems with this scheme. It does not allow for more than
+one CMP descriptor to be defined in a jar and it is not compatible with the
+deployment descriptors generated by some tools.</p>
+
+<p>In Ant 1.3, ejbjar parses the weblogic deployment descriptor to discover the
+CMP descriptors, which are then included automatically. This behaviour is
+controlled by the newCMP attribute. Note that if you move to the new method of
+determining CMP descriptors, you will need to update your weblogic deployment
+descriptor's <code>&lt;type-storage&gt;</code> element. In the above example, you would
+define this as META-INF/Customer-weblogic-cmp-rdbms-jar.xml.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which the generated weblogic ready
+                     jar files are deposited. Jar files are deposited in
+                     directories corresponding to their location within the
+                     descriptordir namespace. </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">genericjarsuffix</td>
+    <td valign="top">A generic jar is generated as an intermediate step in
+                     build the weblogic deployment jar. The suffix used to
+                     generate the generic jar file is not particularly
+                     important unless it is desired to keep the generic
+                     jar file. It should not, however, be the same
+                     as the suffix setting.</td>
+    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the WebLogic EJB
+                     jar file.</td>
+    <td valign="top" align="center">No, defaults to '.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be used when running the weblogic ejbc
+                     tool. Note that this tool typically requires the classes
+                     that make up the bean to be available on the classpath.
+                     Currently, however, this will cause the ejbc tool to be
+                     run in a separate VM</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">wlclasspath</td>
+    <td valign="top">Weblogic 6.0 will give a warning if the home and remote interfaces
+                     of a bean are on the system classpath used to run weblogic.ejbc.
+                     In that case, the standard weblogic classes should be set with
+                     this attribute (or equivalent nested element) and the
+                     home and remote interfaces located with the standard classpath
+                     attribute</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgeneric</td>
+    <td valign="top">This controls whether the generic file used as input to
+                     ejbc is retained.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">This allows for the selection of a different compiler
+                     to be used for the compilation of the generated Java
+                     files. This could be set, for example, to Jikes to
+                     compile with the Jikes compiler. If this is not set
+                     and the <code>build.compiler</code> property is set
+                     to jikes, the Jikes compiler will be used. If this
+                     is not desired, the value &quot;<code>default</code>&quot;
+                     may be given to use the default compiler</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">rebuild</td>
+    <td valign="top">This flag controls whether weblogic.ejbc is always
+                     invoked to build the jar file. In certain circumstances,
+                     such as when only a bean class has been changed, the jar
+                     can be generated by merely replacing the changed classes
+                     and not rerunning ejbc. Setting this to false will reduce
+                     the time to run ejbjar.
+                     </td>
+    <td valign="top" align="center">No, defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgenerated</td>
+    <td valign="top">Controls whether weblogic will keep the generated Java
+                     files used to build the class files added to the
+                     jar. This can be useful when debugging
+                     </td>
+    <td valign="top" align="center">No, defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">args</td>
+    <td valign="top">Any additional arguments to be passed to the weblogic.ejbc
+                     tool.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">weblogicdtd</td>
+    <td valign="top"><b>Deprecated</b>. Defines the location of the ejb-jar DTD in
+                     the weblogic class hierarchy. This should not be necessary if you
+                     have weblogic in your classpath. If you do not, you should use a
+                     nested <code>&lt;dtd&gt;</code> element, described above. If you do choose
+                     to use an attribute, you should use a
+                     nested <code>&lt;dtd&gt;</code> element.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">wldtd</td>
+    <td valign="top"><b>Deprecated</b>. Defines the location of the weblogic-ejb-jar
+                     DTD which covers the Weblogic specific deployment descriptors.
+                     This should not be necessary if you have weblogic in your
+                     classpath. If you do not, you should use a nested <code>&lt;dtd&gt;</code>
+                     element, described above.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">ejbdtd</td>
+    <td valign="top"><b>Deprecated</b>. Defines the location of the ejb-jar DTD in
+                     the weblogic class hierarchy. This should not be necessary if you
+                     have weblogic in your classpath. If you do not, you should use a
+                     nested <code>&lt;dtd&gt;</code> element, described above.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">newCMP</td>
+    <td valign="top">If this is set to true, the new method for locating
+                     CMP descriptors will be used.</td>
+    <td valign="top" align="center">No. Defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">oldCMP</td>
+    <td valign="top"><b>Deprecated</b> This is an antonym for newCMP which should be used instead.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">noEJBC</td>
+    <td valign="top">If this attribute is set to true, Weblogic's ejbc will not be run on the EJB jar.
+                     Use this if you prefer to run ejbc at deployment time.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">ejbcclass</td>
+    <td valign="top">Specifies the classname of the ejbc compiler. Normally ejbjar determines
+                     the appropriate class based on the DTD used for the EJB. The EJB 2.0 compiler
+                     featured in weblogic 6 has, however, been deprecated in version 7. When
+                     using with version 7 this attribute should be set to
+                     &quot;weblogic.ejbc&quot; to avoid the deprecation warning.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmargs</td>
+    <td valign="top">Any additional arguments to be passed to the Virtual Machine
+                     running weblogic.ejbc tool. For example to set the memory size,
+                     this could be jvmargs=&quot;-Xmx128m&quot;
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmdebuglevel</td>
+    <td valign="top">Sets the weblogic.StdoutSeverityLevel to use when running
+                     the Virtual Machine that executes ejbc. Set to 16 to avoid
+                     the warnings about EJB Home and Remotes being in the classpath
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">outputdir</td>
+    <td valign="top">If set ejbc will be given this directory as the output
+                     destination rather than a jar file. This allows for the
+                     generation of &quot;exploded&quot; jars.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<p>The weblogic nested element supports three nested elements. The
+first two, <code>&lt;classpath&gt;</code> and <code>&lt;wlclasspath&gt;</code>, are used to set the
+respective classpaths. These nested elements are useful when setting up
+class paths using reference Ids. The last, <code>&lt;sysproperty&gt;</code>, allows
+Java system properties to be set during the compiler run. This turns out
+to be necessary for supporting CMP EJB compilation in all environments.
+</p>
+
+<h3>TOPLink for Weblogic element</h3>
+
+<p><b><i>Deprecated</i></b></p>
+
+<p>The toplink element is no longer required. Toplink beans can now be built with the standard
+weblogic element, as long as the newCMP attribute is set to &quot;true&quot;
+</p>
+
+<p>The TopLink element is used to handle beans which use Toplink for the CMP operations. It
+is derived from the standard weblogic element so it supports the same set of attributes plus these
+additional attributes</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">toplinkdescriptor</td>
+    <td valign="top">This specifies the name of the TOPLink deployment descriptor file contained in the
+                     'descriptordir' directory.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">toplinkdtd</td>
+    <td valign="top">This specifies the location of the TOPLink DTD file. This can be a file path or
+                     a file URL. This attribute is not required, but using a local DTD is recommended.</td>
+    <td valign="top" align="center">No, defaults to dtd file at www.objectpeople.com.</td>
+  </tr>
+</table>
+
+
+<h3>Examples</h3>
+
+<p>This example shows ejbjar being used to generate deployment jars using a
+Weblogic EJB container. This example requires the naming standard to be used for
+the deployment descriptors. Using this format will create a ejb jar file for
+each variation of '*-ejb-jar.xml' that is found in the deployment descriptor
+directory.</p>
+
+<pre>
+    &lt;ejbjar srcdir=&quot;${build.classes}&quot;
+            descriptordir=&quot;${descriptor.dir}&quot;&gt;
+      &lt;weblogic destdir=&quot;${deploymentjars.dir}&quot;
+                classpath=&quot;${descriptorbuild.classpath}&quot;/&gt;
+      &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
+      &lt;exclude name=&quot;**/*weblogic*.xml&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<p>If weblogic is not in the Ant classpath, the following example
+shows how to specify the location of the weblogic DTDs. This
+example also show the use of a nested classpath element.</p>
+
+<pre>
+    &lt;ejbjar descriptordir=&quot;${src.dir}&quot; srcdir=&quot;${build.classes}&quot;&gt;
+       &lt;weblogic destdir=&quot;${deployment.webshop.dir}&quot;
+                 keepgeneric=&quot;true&quot;
+                 args=&quot;-g -keepgenerated ${ejbc.compiler}&quot;
+                 suffix=&quot;.jar&quot;
+                 oldCMP=&quot;false&quot;&gt;
+         &lt;classpath&gt;
+           &lt;pathelement path=&quot;${descriptorbuild.classpath}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/weblogic&gt;
+       &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
+       &lt;exclude name=&quot;**/*-weblogic-ejb-jar.xml&quot;/&gt;
+       &lt;dtd publicId=&quot;-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN&quot;
+            location=&quot;${weblogic.home}/classes/weblogic/ejb/deployment/xml/ejb-jar.dtd&quot;/&gt;
+       &lt;dtd publicId=&quot;-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN&quot;
+            location=&quot;${weblogic.home}/classes/weblogic/ejb/deployment/xml/weblogic-ejb-jar.dtd&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+
+<p>This example shows ejbjar being used to generate a single deployment jar
+using a Weblogic EJB container. This example does not require the deployment
+descriptors to use the naming standard. This will create only one ejb jar file -
+'TheEJBJar.jar'.</p>
+
+
+<pre>
+    &lt;ejbjar srcdir=&quot;${build.classes}&quot;
+            descriptordir=&quot;${descriptor.dir}&quot;
+            basejarname=&quot;TheEJBJar&quot;&gt;
+      &lt;weblogic destdir=&quot;${deploymentjars.dir}&quot;
+                classpath=&quot;${descriptorbuild.classpath}&quot;/&gt;
+      &lt;include name=&quot;**/ejb-jar.xml&quot;/&gt;
+      &lt;exclude name=&quot;**/weblogic*.xml&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<p>This example shows ejbjar being used to generate deployment jars for a TOPLink-enabled entity bean using a
+Weblogic EJB container. This example does not require the deployment descriptors to use the naming standard.
+This will create only one TOPLink-enabled ejb jar file - 'Address.jar'.</p>
+
+<pre>
+    &lt;ejbjar srcdir=&quot;${build.dir}&quot;
+            destdir=&quot;${solant.ejb.dir}&quot;
+            descriptordir=&quot;${descriptor.dir}&quot;
+            basejarname=&quot;Address&quot;&gt;
+            &lt;weblogictoplink destdir=&quot;${solant.ejb.dir}&quot;
+                    classpath=&quot;${java.class.path}&quot;
+                    keepgeneric=&quot;false&quot;
+                    toplinkdescriptor=&quot;Address.xml&quot;
+                    toplinkdtd=&quot;file:///dtdfiles/toplink-cmp_2_5_1.dtd&quot;
+                    suffix=&quot;.jar&quot;/&gt;
+            &lt;include name=&quot;**/ejb-jar.xml&quot;/&gt;
+            &lt;exclude name=&quot;**/weblogic-ejb-jar.xml&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<p>This final example shows how you would set-up ejbjar under Weblogic 6.0. It also shows the use of the
+<code>&lt;support&gt;</code> element to add support files</p>
+
+<pre>
+    &lt;ejbjar descriptordir=&quot;${dd.dir}&quot; srcdir=&quot;${build.classes.server}&quot;&gt;
+       &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
+       &lt;exclude name=&quot;**/*-weblogic-ejb-jar.xml&quot;/&gt;
+       &lt;support dir=&quot;${build.classes.server}&quot;&gt;
+            &lt;include name=&quot;**/*.class&quot;/&gt;
+       &lt;/support&gt;
+       &lt;weblogic destdir=&quot;${deployment.dir}&quot;
+                 keepgeneric=&quot;true&quot;
+                 suffix=&quot;.jar&quot;
+                 rebuild=&quot;false&quot;&gt;
+         &lt;classpath&gt;
+            &lt;pathelement path=&quot;${build.classes.server}&quot;/&gt;
+         &lt;/classpath&gt;
+         &lt;wlclasspath&gt;
+            &lt;pathelement path=&quot;${weblogic.classes}&quot;/&gt;
+         &lt;/wlclasspath&gt;
+       &lt;/weblogic&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+
+<h3><a name="ejbjar_websphere">WebSphere element</a></h3>
+
+<p>The websphere element searches for the websphere specific deployment descriptors and
+adds them to the final ejb jar file. Websphere has two specific descriptors for session
+beans:
+<ul>
+   <li>ibm-ejb-jar-bnd.xmi</li>
+   <li>ibm-ejb-jar-ext.xmi</li>
+</ul>
+and another two for container managed entity beans:
+<ul>
+   <li>Map.mapxmi</li>
+   <li>Schema.dbxmi</li>
+</ul>
+In terms of WebSphere, the generation of container code and stubs is called <code>deployment</code>.
+This step can be performed by the websphere element as part of the jar generation process. If the
+switch <code>ejbdeploy</code> is on, the ejbdeploy tool from the websphere toolset is called for
+every ejb-jar. Unfortunately, this step only works, if you use the ibm jdk. Otherwise, the rmic
+(called by ejbdeploy) throws a ClassFormatError. Be sure to switch ejbdeploy off, if run ant with
+sun jdk.
+</p>
+
+<p>
+For the websphere element to work, you have to provide a complete classpath, that contains all
+classes, that are required to reflect the bean classes. For ejbdeploy to work, you must also provide
+the classpath of the ejbdeploy tool and set the <i>websphere.home</i> property (look at the examples below).
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which the generated weblogic ready
+                     jar files are deposited. Jar files are deposited in
+                     directories corresponding to their location within the
+                     descriptordir namespace. </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">ejbdeploy</td>
+    <td valign="top">Decides whether ejbdeploy is called. When you set this to true,
+                     be sure, to run ant with the ibm jdk.</td>
+    <td valign="top" align="center">No, defaults to true</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the WebLogic EJB
+                     jar file.</td>
+    <td valign="top" align="center">No, defaults to '.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgeneric</td>
+    <td valign="top">This controls whether the generic file used as input to
+                     ejbdeploy is retained.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">rebuild</td>
+    <td valign="top">This controls whether ejbdeploy is called although no changes
+                     have occurred.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">tempdir</td>
+    <td valign="top">A directory, where ejbdeploy will write temporary files</td>
+    <td valign="top" align="center">No, defaults to '_ejbdeploy_temp'.</td>
+  </tr>
+  <tr>
+    <td valign="top">dbName<br>dbSchema</td>
+    <td valign="top">These options are passed to ejbdeploy.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dbVendor</td>
+    <td valign="top">This option is passed to ejbdeploy. 
+                   <p>
+                   Valid options can be obtained by running the following command:
+                   <code>
+                   &lt;WAS_HOME&gt;/bin/EJBDeploy.[sh/bat] -help
+                   </code>
+                   </p>
+                    This is also used to determine the name of the Map.mapxmi and
+                     Schema.dbxmi files, for example Account-DB2UDBWIN_V71-Map.mapxmi
+                     and Account-DB2UDBWIN_V71-Schema.dbxmi.
+                     </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">codegen<br>quiet<br>novalidate<br>noinform<br>trace<br>
+                     use35MappingRules</td>
+    <td valign="top">These options are all passed to ejbdeploy. All options
+                     except 'quiet' default to false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">rmicOptions</td>
+    <td valign="top">This option is passed to ejbdeploy and will be passed
+                     on to rmic.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p>This example shows ejbjar being used to generate deployment jars for all deployment descriptors
+in the descriptor dir:</p>
+
+<pre>
+    &lt;property name=&quot;webpshere.home&quot; value=&quot;${was4.home}&quot;/&gt;
+    &lt;ejbjar srcdir="${build.class}" descriptordir="etc/ejb"&gt;
+      &lt;include name="*-ejb-jar.xml"/&gt;
+      &lt;websphere dbvendor="DB2UDBOS390_V6"
+                 ejbdeploy="true"
+                 oldCMP="false"
+                 tempdir="/tmp"
+                 destdir="${dist.server}"&gt;
+        &lt;wasclasspath&gt;
+          &lt;pathelement location="${was4.home}/deploytool/itp/plugins/org.eclipse.core.boot/boot.jar"/&gt;
+          &lt;pathelement location="${was4.home}/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime/batch.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/xerces.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/ivjejb35.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/j2ee.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/vaprt.jar"/&gt;
+        &lt;/wasclasspath&gt;
+        &lt;classpath&gt;
+          &lt;path refid="build.classpath"/&gt;
+        &lt;/classpath&gt;
+      &lt;/websphere&gt;
+      &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"
+           location="${lib}/dtd/ejb-jar_1_1.dtd"/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<h3><a name="ejbjar_iplanet">iPlanet Application Server (iAS) element</a></h3>
+
+The &lt;iplanet&lt; nested element is used to build iAS-specific stubs and
+
+skeletons and construct a JAR file which may be deployed to the iPlanet
+Application Server 6.0.  The build process will always determine if
+the EJB stubs/skeletons and the EJB-JAR file are up to date, and it will
+do the minimum amount of work required.
+<p>Like the WebLogic element, a naming convention for the EJB descriptors
+is most commonly used to specify the name for the completed JAR file.
+For example, if the EJB descriptor ejb/Account-ejb-jar.xml is found in
+the descriptor directory, the iplanet element will search for an iAS-specific
+EJB descriptor file named ejb/Account-ias-ejb-jar.xml (if it isn't found,
+the task will fail) and a JAR file named ejb/Account.jar will be written
+in the destination directory.  Note that when the EJB descriptors
+are added to the JAR file, they are automatically renamed META-INF/ejb-jar.xml
+and META-INF/ias-ejb-jar.xml.</p>
+<p>Of course, this naming behaviour can be modified by specifying attributes
+in the ejbjar task (for example, basejarname, basenameterminator, and flatdestdir)
+as well as the iplanet element (for example, suffix).  Refer to the
+appropriate documentation for more details.</p>
+<h3>
+Parameters:</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top"><b>Attribute</b></td>
+
+<td valign="top"><b>Description</b></td>
+
+<td align="center" valign="top"><b>Required</b></td>
+</tr>
+
+<tr>
+<td valign="top">destdir</td>
+
+<td valign="top">The base directory into which the generated JAR files will
+be written. Each JAR file is written in directories which correspond to
+their location within the "descriptordir" namespace.</td>
+
+<td align="center" valign="top">Yes</td>
+</tr>
+
+<tr>
+<td valign="top">classpath</td>
+
+<td valign="top">The classpath used when generating EJB stubs and skeletons.
+If omitted, the classpath specified in the "ejbjar" parent task will be
+used.  If specified, the classpath elements will be prepended to the
+classpath specified in the parent "ejbjar" task. Note that nested "classpath"
+elements may also be used.</td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">keepgenerated</td>
+
+<td valign="top">Indicates whether or not the Java source files which are
+generated by ejbc will be saved or automatically deleted. If "yes", the
+source files will be retained.  If omitted, it defaults to "no". </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">debug</td>
+
+<td>Indicates whether or not the ejbc utility should log additional debugging
+statements to the standard output. If "yes", the additional debugging statements
+will be generated.  If omitted, it defaults to "no". </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">iashome</td>
+
+<td>May be used to specify the "home" directory for this iAS installation.
+This is used to find the ejbc utility if it isn't included in the user's
+system path.  If specified, it should refer to the [install-location]/iplanet/ias6/ias
+directory.  If omitted, the ejbc utility must be on the user's system
+path. </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">suffix</td>
+
+<td>String value appended to the JAR filename when creating each JAR.
+If omitted, it defaults to ".jar". </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+</table>
+
+<p>As noted above, the iplanet element supports additional <code>&lt;classpath&gt;</code>
+nested elements.</p>
+<h3>
+Examples</h3>
+This example demonstrates the typical use of the <code>&lt;iplanet&gt;</code> nested element.
+It will name each EJB-JAR using the "basename" prepended to each standard
+EJB descriptor.  For example, if the descriptor named "Account-ejb-jar.xml"
+is processed, the EJB-JAR will be named "Account.jar"
+<pre>
+    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"&gt;
+
+            &lt;iplanet destdir="${assemble.ejbjar}"
+                     classpath="${ias.ejbc.cpath}"/&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+    &lt;/ejbjar&gt;</pre>
+
+This example demonstrates the use of a nested classpath element as well
+as some of the other optional attributes.
+<pre>
+    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"&gt;
+
+            &lt;iplanet destdir="${assemble.ejbjar}"
+                     iashome="${ias.home}"
+                     debug="yes"
+                     keepgenerated="yes"&gt;
+                     &lt;classpath&gt;
+                         &lt;pathelement path="."/&gt;
+                         &lt;pathelement path="${build.classpath}"/&gt;
+                     &lt;/classpath&gt;
+            &lt;/iplanet&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+    &lt;/ejbjar&gt;</pre>
+
+This example demonstrates the use of basejarname attribute.  In this
+case, the completed EJB-JAR will be named "HelloWorld.jar"  If multiple
+EJB descriptors might be found, care must be taken to ensure that the completed
+JAR files don't overwrite each other.
+<pre>
+    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"
+            basejarname="HelloWorld"&gt;
+
+            &lt;iplanet destdir="${assemble.ejbjar}"
+                     classpath="${ias.ejbc.cpath}"/&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+    &lt;/ejbjar&gt;</pre>
+This example demonstrates the use of the dtd nested element. If the local
+copies of the DTDs are included in the classpath, they will be automatically
+referenced without the nested elements.  In iAS 6.0 SP2, these local DTDs are
+found in the [iAS-install-directory]/APPS directory.  In iAS 6.0 SP3, these
+local DTDs are found in the [iAS-install-directory]/dtd directory.
+<pre>
+    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"&gt;
+            &lt;iplanet destdir="${assemble.ejbjar}"&gt;
+                     classpath="${ias.ejbc.cpath}"/&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+
+            &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"
+                 location="${ias.home}/APPS/ejb-jar_1_1.dtd"/&gt;
+            &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD iAS Enterprise JavaBeans 1.0//EN"
+                 location="${ias.home}/APPS/IASEjb_jar_1_0.dtd"/&gt;
+    &lt;/ejbjar&gt;</pre>
+
+<h3><a name="ejbjar_jonas">JOnAS (Java Open Application Server) element</a></h3>
+
+<p>The <code>&lt;jonas&gt;</code> nested element is used to build JOnAS-specific stubs and
+skeletons thanks to the <code>GenIC</code> specific tool, and construct a JAR
+file which may be deployed to the JOnAS Application Server. The build process
+will always determine if the EJB stubs/skeletons and the EJB-JAR file are up to
+date, and it will do the minimum amount of work required.</p>
+
+<p>Like the WebLogic element, a naming convention for the EJB descriptors is
+most commonly used to specify the name for the completed JAR file. For example,
+if the EJB descriptor <code>ejb/Account-ejb-jar.xml</code> is found in the
+descriptor directory, the <code>&lt;jonas&gt;</code> element will search for a JOnAS-specific
+EJB descriptor file named <code>ejb/Account-jonas-ejb-jar.xml</code> and a JAR
+file named <code>ejb/Account.jar</code> will be written in the destination
+directory. But the <code>&lt;jonas&gt;</code> element can also use the JOnAS naming
+convention. With the same example as below, the EJB descriptor can also be named
+<code>ejb/Account.xml</code> (no base name terminator here) in the descriptor
+directory. Then the <code>&lt;jonas&gt;</code> element will search for a JOnAS-specific EJB
+descriptor file called <code>ejb/jonas-Account.xml</code>. This convention do
+not follow strictly the ejb-jar naming convention recommendation but is
+supported for backward compatibility with previous version of JOnAS.</p>
+
+<p>Note that when the EJB descriptors are added to the JAR file, they are
+automatically renamed <code>META-INF/ejb-jar.xml</code> and
+<code>META-INF/jonas-ejb-jar.xml</code>.</p>
+
+<p>Of course, this naming behavior can be modified by specifying attributes in
+the ejbjar task (for example, basejarname, basenameterminator, and flatdestdir)
+as well as the iplanet element (for example, suffix). Refer to the appropriate
+documentation for more details.</p>
+
+<h3> Parameters:</h3>
+
+<table border="1" cellspacing="0" cellpadding="2">
+  <tbody>
+    <tr>
+      <td valign="Top"><b>Attribute</b></td>
+      <td valign="Top"><b>Description</b></td>
+      <td align="Center" valign="Top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="Top">destdir</td>
+      <td valign="Top">The base directory into which the generated JAR files
+      will be written. Each JAR file is written in directories which correspond
+      to their location within the "<code>descriptordir</code>" namespace.</td>
+      <td align="Center" valign="Top">Yes</td>
+    </tr>
+    <tr>
+      <td valign="Top">jonasroot</td>
+      <td valign="Top">The root directory for JOnAS.</td>
+      <td valign="Top" align="Center">Yes</td>
+    </tr>
+    <tr>
+      <td valign="Top">classpath</td>
+      <td valign="Top">The classpath used when generating EJB stubs and
+      skeletons. If omitted, the classpath specified in the "ejbjar" parent
+      task will be used. If specified, the classpath elements will be prepended
+      to the classpath specified in the parent "ejbjar" task (see also the ORB
+      attribute documentation below). Note that nested "classpath" elements may
+      also be used.</td>
+      <td valign="Top" align="Center">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">keepgenerated</td>
+      <td valign="Top"><code>true</code> if the intermediate Java
+      source files generated by GenIC must be deleted or not. If
+      omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">nocompil</td>
+      <td valign="Top"><code>true</code> if the generated source files
+      must not be compiled via the java and rmi compilers. If omitted,
+      it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">novalidation</td>
+      <td valign="Top"><code>true</code> if the XML deployment descriptors must
+      be parsed without validation. If omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">javac</td>
+      <td valign="Top">Java compiler to use. If omitted, it defaults
+      to the value of <code>build.compiler</code> property.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">javacopts</td>
+      <td valign="Top">Options to pass to the java compiler.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">rmicopts</td>
+      <td valign="Top">Options to pass to the rmi compiler.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">secpropag</td>
+      <td valign="top"><code>true</code> if the RMI Skel. and
+      Stub. must be modified to implement the implicit propagation of
+      the security context (the transactional context is always
+      provided). If omitted, it defaults to <code>false</code>.</td>
+      <td valign="top" align="center">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">verbose</td>
+      <td valign="Top">Indicates whether or not to use -verbose switch. If
+      omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">additionalargs</td>
+      <td valign="Top">Add additional args to GenIC.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">keepgeneric</td>
+      <td valign="Top"><code>true</code> if the generic JAR file used as input
+      to GenIC must be retained. If omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">suffix</td>
+      <td>String value appended to the JAR filename when creating each JAR.  If
+      omitted, it defaults to ".jar". </td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">orb</td>
+      <td>Choose your ORB : RMI, JEREMIE, DAVID. If omitted, it defaults to the
+      one present in classpath. If specified, the corresponding JOnAS JAR is
+      automatically added to the classpath.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">nogenic</td>
+      <td valign="Top">If this attribute is set to <code>true</code>,
+      JOnAS's GenIC will not be run on the EJB JAR. Use this if you
+      prefer to run GenIC at deployment time. If omitted, it defaults
+      to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+  </tbody>
+</table>
+
+<p>As noted above, the jonas element supports additional <code>&lt;classpath&gt;</code>
+nested elements.</p>
+
+<h3>Examples</h3>
+
+<p>This example shows ejbjar being used to generate deployment jars using a
+JOnAS EJB container. This example requires the naming standard to be used for
+the deployment descriptors. Using this format will create a EJB JAR file for
+each variation of &nbsp;'*-jar.xml' that is found in the deployment descriptor
+directory.&nbsp;</p>
+
+<pre>
+      &lt;ejbjar srcdir="${build.classes}"
+              descriptordir="${descriptor.dir}"&gt;
+        &lt;jonas destdir="${deploymentjars.dir}"
+             jonasroot="${jonas.root}"
+             orb="RMI"/&gt;
+        &lt;include name="**/*.xml"/&gt;
+        &lt;exclude name="**/jonas-*.xml"/&gt;
+        &lt;support dir="${build.classes}"&gt;
+             &lt;include name="**/*.class"/&gt;
+        &lt;/support&gt;
+      &lt;/ejbjar&gt;
+</pre>
+
+<p>This example shows ejbjar being used to generate a single deployment jar
+using a JOnAS EJB container. This example does require the deployment
+descriptors to use the naming standard. This will create only one ejb jar file -
+'TheEJBJar.jar'.</p>
+
+<pre>
+      &lt;ejbjar srcdir="${build.classes}"
+              descriptordir="${descriptor.dir}"
+              basejarname="TheEJBJar"&gt;
+        &lt;jonas destdir="${deploymentjars.dir}"
+                  jonasroot="${jonas.root}"
+                  suffix=".jar"
+                  classpath="${descriptorbuild.classpath}"/&gt;
+        &lt;include name="**/ejb-jar.xml"/&gt;
+        &lt;exclude name="**/jonas-ejb-jar.xml"/&gt;
+      &lt;/ejbjar&gt;
+</pre>
+
+
+
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ftp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ftp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ftp.html	(revision 14989)
@@ -0,0 +1,718 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FTP Task</title>
+</head>
+
+<body>
+
+<h2><a name="ftp">FTP</a></h2>
+<h3>Description</h3>
+<p>The ftp task implements a basic FTP client that can send, receive,
+list, delete files, and create directories.  See below for descriptions and examples of how
+to perform each task.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#commons-net">Library Dependencies</a> for more information.
+<i>Get the latest version of this library, for the best support in Ant</i>
+
+</p>
+<p>The ftp task attempts to determine what file system is in place on the FTP server.
+Supported server types are Unix, NT, OS2, VMS, and OS400.  In addition, NT and OS400 servers
+which have been configured to display the directory in Unix style are also supported correctly.
+Otherwise, the system will default to Unix standards.
+<i>remotedir</i> must be specified in the exact syntax required by the ftp
+server. If the usual Unix conventions are not supported by the server,
+<i>separator</i> can be used to set the file separator that should be used
+instead.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
+tasks</a>, on how the inclusion/exclusion of files works, and how to
+write patterns.</p>
+<p>
+This task does not currently use the proxy information set by the
+<a href="setproxy.html"><code>&lt;setproxy&gt;</code></a> task, and cannot go through
+a firewall via socks. 
+<p>
+<b>Warning: </b> there have been problems reported concerning the ftp get with the <code>newer</code> attribute.
+Problems might be due to format of ls -l differing from what is expected by commons-net,
+for instance due to specificities of language used by the ftp server in the directory listing.
+If you encounter such a problem, please send an email including a sample directory listing
+coming from your ftp server (ls -l on the ftp prompt).
+</p>
+<p>
+If you can connect but not upload or download, try setting the <code>passive</code>
+attribute to true to use the existing (open) channel, instead of having the server
+try to set up a new connection.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top" width="15%"><b>Attribute</b></td>
+    <td valign="top" width="65%"><b>Description</b></td>
+    <td align="center" valign="top" width="20%"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">server</td>
+    <td valign="top">the address of the remote ftp server.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">the port number of the remote ftp server.
+                     Defaults to port 21.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">userid</td>
+    <td valign="top">the login id to use on the ftp server.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">the login password to use on the ftp server.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">account</td>
+    <td valign="top">the account to use on the ftp server.
+        <em>since Ant 1.7</em>.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">remotedir</td>
+    <td valign="top">remote directory on the
+                     ftp server
+                     see table below for detailed usage
+                     </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">the ftp action to perform, defaulting to "send".
+                     Currently supports "put", "get",
+                     "del", "list", "chmod",
+                     "mkdir", "rmdir", and "site".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">binary</td>
+    <td valign="top">selects binary-mode ("yes") or text-mode
+                     ("no") transfers.
+                     Defaults to "yes"</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">passive</td>
+    <td valign="top">selects passive-mode ("yes") transfers, for
+                     better through-firewall connectivity, at the price
+                     of performance.
+                     Defaults to "no"</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">displays information on each file transferred if set 
+                     to "yes". Defaults to "no".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">depends</td>
+    <td valign="top">transfers only new or changed files if set to 
+                     "yes". Defaults to "no".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newer</td>
+    <td valign="top">a synonym for <i>depends</i>.
+    see timediffauto and timediffmillis</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timediffauto</td>
+    <td valign="top">set to <code>"true"</code>
+    to make ant calculate the time difference between client and server.<br>
+    <em>requires write access in the remote directory</em><br>
+    Since ant 1.6</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <a name="timestampGranularity"/>
+  <tr>
+    <td valign="top">timestampGranularity</td>
+    <td valign="top">Specify either <code>MINUTE</code>, <code>NONE</code>,
+     (or you may specify <code>""</code> which is equivalent to not specifying a value,
+     useful for property-file driven scripts).  Allows override of the typical situation 
+     in PUT and GET where local filesystem timestamps are <code>HH:mm:ss</code> 
+     and the typical FTP server's timestamps are <code>HH:mm</code>.  This can throw 
+     off uptodate calculations.  However, the default values should suffice for most
+     applications.<br>
+    Since ant 1.7
+    </td>
+    <td valign="top" align="center">No.  Only applies in "puts" and "gets" where the
+    default values are <code>MINUTE</code> for PUT and <code>NONE</code> for GET.  
+    (It is not as necessary in GET because we have the <b>preservelastmodified</b> option.)</td>
+  </tr>
+  <tr>
+    <td valign="top">timediffmillis</td>
+    <td valign="top"><b>Deprecated</b>. Number of milliseconds to add to the time on 
+    the remote machine to get the time on the local machine.  The <b>timestampGranularity</b> 
+    attribute (for which the default values should suffice in most situations), and the 
+    <b>serverTimeZoneConfig</b> option, should make this unnecessary. 
+    <b>serverTimeZoneConfig</b> does the math for you and also knows about 
+    Daylight Savings Time.<br>
+    Since ant 1.6
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">separator</td>
+    <td valign="top">sets the file separator used on the ftp server.
+                     Defaults to "/".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">umask</td>
+    <td valign="top">sets the default file permissions for new files,
+                     unix only.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">chmod</td>
+    <td valign="top">sets or changes file permissions for new or existing files,
+      unix only. If used with a put action, chmod will be issued for each file.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">listing</td>
+    <td valign="top">the file to write results of the "list" action.
+                     Required for the "list" action, ignored otherwise.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoreNoncriticalErrors</td>
+    <td valign="top">flag which permits the task to ignore some non-fatal error
+      codes sent by some servers during directory creation: wu-ftp in particular.
+      Default: false</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">skipFailedTransfers</td>
+    <td valign="top">flag which enables unsuccessful file put, delete
+    and get operations to be skipped with a warning and the
+    remainder of the files still transferred. Default: false</td>
+    <td valign="top" align="center">No</td>
+  </tr>  
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the copied files the same last modified
+      time as the original source files (applies to getting files only).
+      (<em>Note</em>: Ignored on Java 1.1)</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">retriesAllowed</td>
+    <td valign="top">Set the number of retries allowed on an file-transfer operation.
+    If a number > 0 specified, each file transfer can fail up to that
+    many times before the operation is failed.  If -1 or "forever" specified, the
+    operation will keep trying until it succeeds.</td>
+    <td valign="top" align="center">No; defaults to 0</td>
+  </tr>
+  <tr>
+    <td valign="top">siteCommand</td>
+    <td valign="top">Set the server-specific SITE command to execute if
+    the <code>action</code> attribute has been specified as <code>"site"</code>.
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">initialSiteCommand</td>
+    <td valign="top">Set a server-specific SITE command to execute immediately
+    after login.
+    <td valign="top" align="center">No</td>
+  </tr>
+
+    <tr>
+    <td colspan="3">
+    <p><b>The following attributes require <a href=
+    "http://jakarta.apache.org/commons/net/download.html">
+    jakarta-commons-net-1.4.0 or greater</a>.</b></p>
+    <p>
+    Use these options when the standard options don't work, because
+    <ul><li>the server is in a different timezone and you need timestamp
+    dependency checking</li>
+    <li>the default timestamp formatting doesn't match the server display and
+    list parsing therefore fails</li></ul>
+    </p><p>
+    If none of these is specified, the default mechanism of letting the system
+    auto-detect the server OS type based on the FTP SYST command and assuming
+    standard formatting for that OS type will be used.
+    </p><p>
+    To aid in property-file-based development where a build script is configured
+    with property files, for any of these attributes, a value of <code>""</code>
+    is equivalent to not specifying it.
+    </p><p>
+    Please understand that these options are incompatible with the autodetection
+    scheme.  If any of these options is specified, (other than with a value of
+    <code>""</code> ) a system type must be chosen and if systemTypeKey is not
+    specified, UNIX will be assumed. The philosophy behind this is that these
+    options are for setting non-standard formats, and a build-script author who
+    knows what system he is dealing with will know what options to need to be
+    set. Otherwise, these options should be left alone and the default
+    autodetection scheme can be used and will work in the majority of cases.
+    </p></td>
+    </tr>
+  <tr>
+    <td valign="top">systemTypeKey</td>
+    <td valign="top">Specifies the type of system in use on the server.
+      Supported values are <code>"UNIX", "VMS", "WINDOWS", "OS/2", "OS/400",
+      "MVS".</code>  If not specified, (or specified as <code>""</code>) and if
+      no other xxxConfig attributes are specified, the autodectection mechanism
+      based on the FTP SYST command will be used.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">No, but if any of the following xxxConfig
+        attributes is specified, UNIX will be assumed, even if <code>""</code>
+        is specified here.
+    </td>
+   </tr>
+   <tr>
+    <td valign="top">serverTimeZoneConfig</td>
+    <td valign="top">Specify as a Java
+     <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/TimeZone.html">
+     TimeZone</a> identifier, (e.g. <code>GMT</code>, <code>America/Chicago</code> or
+    <code>Asia/Jakarta</code>) the timezone used by the server for timestamps.  This 
+      enables timestamp dependency checking even when the server is in a different 
+      time zone from the client. Time Zones know, also, about daylight savings time, 
+      and do not require you to calculate milliseconds of difference.  If not specified, 
+      (or specified as <code>""</code>), the time zone of the client is assumed.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    
+    <td valign="top">defaultDateFormatConfig</td>
+    <td valign="top">Specify in Java 
+    <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html">
+     SimpleDateFormat</a> notation, (e.g.
+     <code>yyyy-MM-dd</code>), the date format generally used by the FTP server
+      to parse dates.  In some cases this will be the only date format used.
+      In others, (unix for example) this will be used for dates
+      older than a year old. (See <b>recentDateFormatConfig</b>).  If not specified,
+      (or specified as <code>""</code>), the default date format for the system
+      type indicated by the <b>systemTypeKey</b> attribute will be used.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">
+    No.
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">recentDateFormatConfig</td>
+    <td valign="top">Specify in Java 
+    <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html">
+     SimpleDateFormat</a> notation,
+      (e.g. <code>MMM dd hh:mm</code>) the date format used by the FTP server
+      to parse dates less than a year old.  If not specified (or specified as
+      <code>""</code>), and if the system type indicated by the system key uses
+      a recent date format, its standard format will be used.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">serverLanguageCodeConfig</td>
+    <td valign="top">a <a href="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt">
+      two-letter ISO-639 language code</a> used to specify the
+      language used by the server to format month names.  This only needs to be
+      specified when the server uses non-numeric abbreviations for months in its
+      date listings in a language other than English.  This appears to be
+      becoming rarer and rarer, as commonly distributed ftp servers seem
+      increasingly to use English or all-numeric formats.
+      Languages supported are:
+      <ul>
+      	<li>en - English</li>
+      	<li>fr - French</li>
+      	<li>de - German</li>
+      	<li>it - Italian</li>
+      	<li>es - Spanish</li>
+      	<li>pt - Portuguese</li>
+      	<li>da - Danish</li>
+      	<li>sv - Swedish</li>
+      	<li>no - Norwegian</li>
+      	<li>nl - Dutch</li>
+      	<li>ro - Romanian</li>
+      	<li>sq - Albanian</li>
+      	<li>sh - Serbo-croatian</li>
+      	<li>sk - Slovak</li>
+      	<li>sl - Slovenian</li>
+      </ul>
+      If you require a language other than the above, see also the
+      <b>shortMonthNamesConfig</b> attribute.<br>
+      Since ant 1.7
+    </td>
+
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">shortMonthNamesConfig</td>
+    <td valign="top">specify the month abbreviations used on the server in file
+      timestamp dates as a pipe-delimited string for each month. For example,
+      a set of month names used by a hypothetical
+      Icelandic FTP server might conceivably be specified as
+      <code>"jan|feb|mar|apr|ma&#xED;|j&#xFA;n|j&#xFA;l|&#xE1;g&#xFA;|sep|okt|n&#xF3;v|des"</code>.
+      This attribute exists primarily to support languages not supported by
+      the <b>serverLanguageCode</b> attribute.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Note about remotedir attribute</h3>
+<table  border="1" cellpadding="2" cellspacing="0"
+ >
+  <tbody>
+    <tr>
+      <td style="vertical-align: top;" width="20%">Action<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">meaning of <code>remotedir</code><br>
+      </td>
+      <td style="vertical-align: top;">use of nested <code>fileset</code>
+(s)<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">send/put<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory to
+which the files are sent<br>
+      </td>
+      <td style="vertical-align: top;">they are used normally and
+evaluated on the local machine<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">recv/get<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which the files are retrieved<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset&nbsp;</code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">del/delete<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which files get deleted<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset <br>
+      </code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">list<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which files are listed<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset <br>
+      </code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">mkdir</td>
+      <td style="vertical-align: top;" width="40%">directory to create<br>
+      </td>
+      <td style="vertical-align: top;">not used<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">chmod</td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which the mode of files get changed<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset <br>
+      </code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">rmdir<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which directories get removed<br>
+      </td>
+      <td style="vertical-align: top;">the remote directories located
+under the <code>remotedir </code>matching the include/exclude
+patterns of the <code>fileset <br>
+      </code></td>
+    </tr>
+  </tbody>
+</table><h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+<p>The ftp task supports any number of nested <a
+href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a> elements to specify
+the files to be retrieved, or deleted, or listed, or whose mode you want to change.</p>
+<p>
+The attribute <code>followsymlinks</code> of <code>fileset</code> is supported on
+local (put) as well as remote (get, chmod, delete) filesets.
+<em>Before ant 1.6 there was no support of symbolic links in remote filesets.
+In order to exclude symbolic links (preserve the behavior of ant 1.5.x and older),
+you need to explicitly set <code>followsymlinks</code> to <code>false</code>.</em>
+On remote filesets hidden files are not checked for being symbolic links. Hidden
+files are currently assumed to not be symbolic links.
+</p>
+<p>
+Remote filesets do not support selectors.<br>
+</p>
+
+<h3>Sending Files</h3>
+<p>The easiest way to describe how to send files is with a couple of examples:</p>
+<pre>
+  &lt;ftp server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"&gt;
+    &lt;fileset dir="htdocs/manual"/&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
+uploads all files in the <code>htdocs/manual</code> directory 
+to the default directory for that user.</p>
+<pre>  &lt;ftp server="ftp.apache.org"
+       remotedir="incoming"
+       userid="anonymous"
+       password="me@myorg.com"
+       depends="yes"&gt;
+    &lt;fileset dir="htdocs/manual"/&gt;
+  &lt;/ftp&gt;</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and
+uploads all new or changed files in the <code>htdocs/manual</code> directory 
+to the <code>incoming</code> directory relative to the default directory
+for <code>anonymous</code>.</p>
+<pre>  &lt;ftp server="ftp.apache.org"
+       port="2121"
+       remotedir="/pub/incoming"
+       userid="coder"
+       password="java1"
+       passive="yes"
+       depends="yes"
+       binary="no"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;</pre>
+<p>Logs in to <code>ftp.apache.org</code> at port <code>2121</code> as
+<code>coder</code> with password <code>java1</code> and uploads all new or
+changed HTML files in the <code>htdocs/manual</code> directory to the
+<code>/pub/incoming</code> directory. The files are transferred in text mode.
+Passive mode has been switched on to send files from behind a firewall.</p>
+<pre>  &lt;ftp server="ftp.hypothetical.india.org"
+       port="2121"
+       remotedir="/pub/incoming"
+       userid="coder"
+       password="java1"
+       depends="yes"
+       binary="no"
+       systemTypeKey="Windows"
+       serverTimeZoneConfig="India/Calcutta"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;</pre>
+<p>Logs in to a Windows server at <code>ftp.hypothetical.india.org</code>
+at port <code>2121</code> as <code>coder</code> with password <code>java1</code>
+and uploads all new or changed (accounting for timezone differences)
+HTML files in the <code>htdocs/manual</code>
+directory to the <code>/pub/incoming</code> directory. The files are transferred
+in text mode.</p>
+<pre>  &lt;ftp server="ftp.nt.org"
+       remotedir="c:\uploads"
+       userid="coder"
+       password="java1"
+       separator="\"
+       verbose="yes"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;</pre><p>Logs in to the Windows-based <code>ftp.nt.org</code> as 
+<code>coder</code> with password <code>java1</code> and uploads all 
+HTML files in the <code>htdocs/manual</code> directory to the 
+<code>c:\uploads</code> directory.  Progress messages are displayed as each
+file is uploaded.</p>
+<h3>Getting Files</h3>
+<p>Getting files from an FTP server works pretty much the same way as 
+sending them does.  The only difference is that the nested filesets
+use the remotedir attribute as the base directory for the files on the
+FTP server, and the dir attribute as the local directory to put the files
+into.  The file structure from the FTP site is preserved on the local machine.</p>
+<pre>
+  &lt;ftp action="get"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
+recursively downloads all .html files from default directory for that user 
+into the <code>htdocs/manual</code> directory on the local machine.</p>
+<pre>
+  &lt;ftp action="get"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"
+       systemTypeKey="UNIX"
+       defaultDateFormatConfig="yyyy-MM-dd HH:mm"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>If apache.org ever switches to a unix FTP server that uses the new all-numeric
+format for timestamps, this version would become necessary.  It would accomplish
+the same functionality as the previous example but would successfully handle the
+numeric timestamps.
+The <code>systemTypeKey</code> is not necessary here but helps clarify what is
+going on.</p>
+<pre>
+  &lt;ftp action="get"
+       server="ftp.hypthetical.fr"
+       userid="anonymous"
+       password="me@myorg.com"
+       defaultDateFormatConfig="d MMM yyyy"
+       recentDateFormatConfig="d MMM HH:mm"
+       serverLanguageCodeConfig="fr"&gt;
+     &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs into a UNIX FTP server at <code>ftp.hypothetical.fr</code> which displays
+dates with French names in Standard European format, as <code>anonymous</code>, and
+recursively downloads all .html files from default directory for that user
+into the <code>htdocs/manual</code> directory on the local machine.</p>
+
+<h3>Deleting Files</h3>
+As you've probably guessed by now, you use nested fileset elements to 
+select the files to delete from the remote FTP server.  Again, the 
+filesets are relative to the remote directory, not a local directory.  In
+fact, the dir attribute of the fileset is ignored completely.
+
+<pre>
+  &lt;ftp action="del"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"&gt;
+    &lt;fileset&gt;
+      &lt;include name="**/*.tmp"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and
+tries to delete all *.tmp files from the default directory for that user.
+If you don't have permission to delete a file, a BuildException is thrown.</p>
+<h3>Listing Files</h3>
+<pre>
+  &lt;ftp action="list"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"
+       listing="data/ftp.listing"&gt;
+    &lt;fileset&gt;
+      &lt;include name="**"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>This provides a file listing in <code>data/ftp.listing</code> of all the files on
+the FTP server relative to the default directory of the <code>anonymous</code>
+user. The listing is in whatever format the FTP server normally lists files.</p>
+
+<h3>Creating Directories</h3>
+<p>Note that with the mkdir action, the directory to create is specified using the
+remotedir attribute.</p>
+<pre>
+  &lt;ftp action="mkdir"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"
+       remotedir="some/remote/dir"/&gt;
+</pre>
+<p>This creates the directory <code>some/remote/dir</code> beneath the default root
+directory.  As with all other actions, the directory separator character must be correct
+according to the desires of the FTP server.</p>
+<h3>Removing Directories</h3>
+This action uses nested fileset elements to 
+select the directories to remove from the remote FTP server.  The 
+filesets are relative to the remote directory, not a local directory. 
+The dir attribute of the fileset is ignored completely.
+The directories to be removed must be empty, or contain only
+other directories that have been also selected to be removed by the filesets
+patterns, otherwise a BuildException will be thrown.
+Also, if you don't have permission to remove a directory, a BuildException is 
+thrown.
+
+<pre>
+  &lt;ftp action="rmdir"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"
+       remotedir="/somedir" &gt;
+    &lt;fileset&gt;
+      &lt;include name="dira"/&gt;
+      &lt;include name="dirb/**"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and
+tries to remove <code>/somedir/dira</code> directory and
+all the directories tree starting at, and including, <code>/somedir/dirb</code>.
+When removing the <code>/somedir/dirb</code> tree,
+it will start at the leaves moving up to the root, so that when
+it tries to remove a directory it is sure all the directories under it are
+already removed.
+Obviously all the files in the tree must have been already deleted.
+</p>
+<p>As an example suppose you want to delete everything contained into 
+<code>/somedir</code>, so invoke first the <code>&lt;ftp&gt;</code> task with
+<code>action="delete"</code>, then with
+<code>action="rmdir"</code> specifying in both cases
+<code>remotedir="/somedir"</code> and
+
+<pre>
+    &lt;fileset&gt;
+        &lt;include name="**"/&gt;
+    &lt;/fileset&gt;
+</pre>
+
+The directory specified in the <code>remotedir</code> parameter is never
+selected for remove, so if you need to remove it, specify its parent in
+<code>remotedir</code> parameter and include it in the 
+<code>&lt;fileset&gt;</code> pattern, like <code>"somedir/**"</code>.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ilasm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ilasm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ilasm.html	(revision 14989)
@@ -0,0 +1,278 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Ilasm
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Ilasm
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Assembles .NET Intermediate Language files.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Assembles .NET Intermediate Language files. ilasm.exe must be on the execute path, unless another executable or the full path to that executable is specified in the <tt>executable</tt> parameter <p> <p> All parameters are optional: <code>&lt;il/&gt;</code> should suffice to produce a debug build of all *.il files. The option set is roughly compatible with the CSharp class; even though the command line options are only vaguely equivalent. [The low level commands take things like /OUT=file, csc wants /out:file ... /verbose is used some places; /quiet here in ildasm... etc.] It would be nice if someone made all the command line tools consistent (and not as brittle as the java cmdline tools) <p> <p> The task is a directory based task, so attributes like <b>includes="*.il" </b> and <b>excludes="broken.il"</b> can be used to control the files pulled in. You can also use nested &lt;src&gt filesets to refer to source. <p>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="10">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fails if ilasm tool fails.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">keyfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the name of a file containing a private key.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">listing</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, produce a listing (off by default).</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">outputfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the output file; identical to setDestFile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">resourcefile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name of resource file to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">verbose</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enable verbose ILASM output.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ildasm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ildasm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/ildasm.html	(revision 14989)
@@ -0,0 +1,338 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Ildasm
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Ildasm
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Task to take a .NET or Mono -generated managed executable and turn it into ILASM assembly code.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Task to take a .NET or Mono -generated managed executable and turn it into ILASM assembly code. Useful when converting imported typelibs into assembler before patching and recompiling, as one has to do when doing advanced typelib work. <p> As well as generating the named output file, the ildasm program will also generate resource files <code>Icons.resources</code> <code>Message.resources</code> and a .res file whose filename stub is derived from the source in ways to obscure to determine. There is no way to control whether or not these files are created, or where they are created (they are created in the current directory; their names come from inside the executable and may be those used by the original developer). This task creates the resources in the directory specified by <code>resourceDir</code> if set, else in the same directory as the <code>destFile</code>. <p> This task requires the .NET SDK installed and ildasm on the path. To disassemble using alternate CLR systems, set the executable attribute to the name/path of the alternate implementation -one that must support all the classic ildasm commands. <p> Dependency logic: the task executes the command if the output file is missing or older than the source file. It does not take into account changes in the options of the task, or timestamp differences in resource files. When the underlying ildasm executable fails for some reason, it leaves the .il file in place with some error message. To prevent this from confusing the dependency logic, the file specified by the <code>dest</code> attribute is <i>always</i> deleted after an unsuccessful build.
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">assembler</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable (default) or disable assembly language in the output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="17">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">bytes</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable or disable (default) the original bytes as comments</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the output file (required)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">encoding</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Select the output encoding: ascii, utf8 or unicode</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"ascii", "utf8", "unicode"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">override the name of the executable (normally ildasm) or set its full path. Do not set a relative path, as the ugly hacks needed to create resource files in the dest directory force us to change to this directory before running the application. i.e use &lt;property location&gt to create an absolute path from a relative one before setting this value.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">header</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include header information; default false.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">item</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name a single item to decode; a class or a method e.g item="Myclass::method" or item="namespace1::namespace2::Myclass:method(void(int32))</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">linenumbers</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include line number information; default=false</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">metadata</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include metadata information</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">progressbar</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">show a graphical progress bar in a window during the process; off by default</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">quoteallnames</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">quote all names.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">rawexceptionhandling</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable raw exception handling (default = false)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">resourcedir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of the directory for resources to be created. We cannot control their names, but we can say where they get created. If not set, the directory of the dest file is used</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">showsource</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include the source as comments (default=false)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">sourcefile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the file to disassemble -required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">alternate name for sourceFile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">visibility</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">visibility options: one or more of the following, with + signs to concatenate them: <pre> pub : Public pri : Private fam : Family asm : Assembly faa : Family and Assembly foa : Family or Assembly psc : Private Scope </pre> e.g. visibility="pub+pri". Family means <code>protected</code> in C#;</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/image.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/image.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/image.html	(revision 14989)
@@ -0,0 +1,239 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Image Task</title>
+</head>
+
+<body>
+
+<h2><a name="image">Image</a></h2>
+<h3>Description</h3>
+<p>Applies a chain of image operations on a set of files.</p>
+<p>Requires Java Advanced Image API from Sun.</p>
+
+<h5>Overview of used datatypes</h5>
+<img src="image-classdiagram.gif" border="0" alt="Class-Diagram">
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"> failonerror </td>
+    <td valign="top"> Boolean value. If false, note errors to the output but keep going. </td>
+    <td align="center"> no (defaults to <i>true</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> srcdir </td>
+    <td valign="top"> Directory containing the images. </td>
+    <td align="center"> yes, unless nested fileset is used </td>
+  </tr>
+  <tr>
+    <td valign="top"> encoding </td>
+    <td valign="top"> Image encoding type. <br>
+      Valid (caseinsensitive) are: jpg, jpeg, tif, tiff
+    </td>
+    <td align="center"> no (defaults to <i>JPEG</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> overwrite </td>
+    <td valign="top"> Boolean value. Sets whether or not to overwrite
+      a file if there is naming conflict.
+    </td>
+    <td align="center"> no (defaults to <i>false</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> gc </td>
+    <td valign="top"> Boolean value. Enables garbage collection after
+      each image processed.
+    </td>
+    <td align="center"> no (defaults to <i>false</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> destdir </td>
+    <td valign="top"> Directory where the result images are stored. </td>
+    <td align="center"> no (defaults to value of <i>srcdir</i>) </td>
+  </tr>
+  <!-- attributes inherited from MatchingTask -->
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"> excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"> caseSensitive </td>
+    <td valign="top"> Boolean value. Sets case sensitivity of the file system. </td>
+    <td align="center"> no (defaults to <i>false</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> followSymlinks </td>
+    <td valign="top"> Boolean value. Sets whether or not symbolic links should be followed. </td>
+    <td align="center"> no (defaults to <i>true</i>) </td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code> as well as the
+nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+
+
+<h4>ImageOperation</h4>
+<p>Adds an ImageOperation to chain.</p>
+<h5>Nested Elements</h5>
+ImageOperation can handle nested Rotate, Draw, Rectangle, Text and Scale objects.
+
+<h4>Rotate</h4>
+<p>Adds a Rotate ImageOperation to chain.</p>
+<h5>Parameters</h5>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"> angle </td>
+    <td valign="top"> Float value. Sets the angle of rotation in degrees. </td>
+    <td align="center"> no (defaults to <i>0.0F</i>) </td>
+  </tr>
+</table>
+
+<h4>Scale</h4>
+<p>Adds a Scale ImageOperation to chain.</p>
+<h5>Parameters</h5>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+    <td valign="top"> proportions </td>
+    <td valign="top"> Sets which dimension to control proportions from. Valid values are:<ul>
+        <li>&quot;ignore&quot; -  treat the dimensions independently.</li>
+        <li>&quot;height&quot; - keep proportions based on the width.</li>
+        <li>&quot;width&quot; - keep proportions based on the height.</li>
+        <li>&quot;cover&quot; - keep proportions and fit in the supplied dimensions.</li>
+        <li>&quot;fit&quot; - keep proportions and cover the supplied dimensions.</li>
+    </ul></td>
+    <td align="center"> no (defaults to <i>ignore</i>) </td>
+  <tr>
+    <td valign="top"> width </td>
+    <td valign="top"> Sets the width of the image, either as an integer or a %. </td>
+        <!-- todo: if integer, what kind? cm, px, inches, ... -->
+    <td align="center"> no (defaults to <i>100%</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> height </td>
+    <td valign="top"> Sets the height of the image, either as an integer or a %. </td>
+        <!-- todo: if integer, what kind? cm, px, inches, ... -->
+    <td align="center"> no (defaults to <i>100%</i>) </td>
+  </tr>
+</table>
+
+<h4>Draw</h4>
+<p>Adds a Draw ImageOperation to chain. DrawOperation DataType objects can be
+nested inside the Draw object.</p>
+<h5>Parameters</h5>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"> xloc </td>
+    <td valign="top"> X-Position where to draw nested image elements. </td>
+    <td align="center"> no (defaults to <i>0</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> yloc </td>
+    <td valign="top"> Y-Position where to draw nested image elements. </td>
+    <td align="center"> no (defaults to <i>0</i>) </td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<blockquote><pre>
+&nbsp;&lt;image destdir="samples/low" overwrite="yes"&gt;
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="samples/full"&gt;
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="**/*.jpg"/&gt;
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;scale width="160" height="160" proportions="fit"/&gt;
+&nbsp;&lt;/image&gt;
+</pre></blockquote>
+<p>Create thumbnails of my images and make sure they all fit within the 160x160 size whether the
+image is portrait or landscape.</p>
+
+<blockquote><pre>
+&lt;image srcdir="src" includes="*.png"&gt;
+    &lt;scale proportions="width" width="40"/&gt;
+&lt;/image&gt;
+</pre></blockquote>
+<p>Creates a thumbnail for all PNG-files in <i>src</i> in the size of 40 pixel keeping the proportions
+and stores the <i>src</i>.</p>
+
+<blockquote><pre>
+&lt;image srcdir="src" destdir="dest" includes="*.png"&gt;
+    &lt;scale proportions="width" width="40"/&gt;
+&lt;/image&gt;
+</pre></blockquote>
+<p>Same as above but stores the result in <i>dest</i>.</p>
+
+<blockquote><pre>
+</pre></blockquote>
+
+
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/importtypelib.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/importtypelib.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/importtypelib.html	(revision 14989)
@@ -0,0 +1,206 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Importtypelib
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Importtypelib
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Import a COM type library into the .NET framework.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Import a COM type library into the .NET framework. <p> This task is a wrapper to .NET's tlbimport; it imports a tlb file to a NET assembly by generating a binary assembly (.dll) that contains all the binding metadata. It uses date timestamps to minimise rebuilds. <p> Example <pre> &lt;importtypelib srcfile="xerces.tlb" destfile="xerces.dll" namespace="Apache.Xerces"/&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name the output file. required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="6">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set any extra options that are not yet supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">what namespace is the typelib to be in. required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">what is the source .tlb file? required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">unsafe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">do you want unsafe code.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">usesysarray</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set this to map a COM SafeArray to the System.Array class</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-available.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-available.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-available.html	(revision 14989)
@@ -0,0 +1,135 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>jarlib-available Task</title>
+</head>
+
+<body>
+
+<h2><a name="jarlib-available">jarlib-available</a></h2>
+<h3>Description</h3>
+<p>Check whether an extension is present in a fileset or an extensionSet.
+If the extension is present then a property is set.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of property to set if extensions is available.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to check for extension</td>
+    <td valign="top" align="center">No, one of file, nested
+    ExtensionSet or nested fileset must be present.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>extension</h4>
+ <p><a href="../OptionalTypes/extension.html">Extension</a> the extension
+ to search for.</p>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select
+sets of files to check for extension.</p>
+
+<h4>extensionSet</h4>
+ <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s is the set
+ of extensions to search for extension in.</p>
+
+<h3>Examples</h3>
+<p><b>Search for extension in single file</b></p>
+<pre>
+  &lt;jarlib-available property=&quot;myext.present&quot; file=&quot;myfile.jar&quot;&gt;
+    &lt;extension
+      extensionName=&quot;org.apache.tools.ant&quot;
+      specificationVersion=&quot;1.4.9&quot;
+      specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+
+<p><b>Search for extension in single file referencing external Extension</b></p>
+<pre>
+  &lt;extension id=&quot;myext&quot;
+    extensionName=&quot;org.apache.tools.ant&quot;
+    specificationVersion=&quot;1.4.9&quot;
+    specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+
+  &lt;jarlib-available property=&quot;myext.present&quot; file=&quot;myfile.jar&quot;&gt;
+    &lt;extension refid=&quot;myext&quot;/&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+<p><b>Search for extension in fileset</b></p>
+<pre>
+  &lt;extension id=&quot;myext&quot;
+    extensionName=&quot;org.apache.tools.ant&quot;
+    specificationVersion=&quot;1.4.9&quot;
+    specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+
+  &lt;jarlib-available property=&quot;myext.present&quot;&gt;
+    &lt;extension refid=&quot;myext&quot;/&gt;
+    &lt;fileset dir="lib"&gt;
+      &lt;include name="*.jar"/&gt;
+    &lt;/fileset&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+<p><b>Search for extension in extensionSet</b></p>
+<pre>
+  &lt;extension id=&quot;myext&quot;
+    extensionName=&quot;org.apache.tools.ant&quot;
+    specificationVersion=&quot;1.4.9&quot;
+    specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+
+  &lt;jarlib-available property=&quot;myext.present&quot;&gt;
+    &lt;extension refid=&quot;myext&quot;/&gt;
+    &lt;extensionSet id=&quot;exts3&quot;&gt;
+      &lt;libfileset
+        includeUrl=&quot;false&quot;
+        includeImpl=&quot;true&quot;
+        dir=&quot;lib&quot;&gt;
+        &lt;include name=&quot;*.jar&quot;/&gt;
+      &lt;/libfileset&gt;
+    &lt;/extensionSet&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-display.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-display.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-display.html	(revision 14989)
@@ -0,0 +1,81 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>jarlib-display Task</title>
+</head>
+
+<body>
+
+<h2><a name="jarlib-display">jarlib-display</a></h2>
+<h3>Description</h3>
+<p>Display the "Optional Package" and "Package Specification" information
+ contained within the specified jars.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to display extension information about.</td>
+    <td valign="top" align="center">No, but one of file or fileset must be
+    present.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s contain list of files to
+ display Extension information  about.</p>
+
+<h3>Examples</h3>
+<p><b>Display Extension info for a single file</b></p>
+<pre>
+  &lt;jarlib-display file=&quot;myfile.jar&quot;&gt;
+</pre>
+
+<p><b>Display Extension info for a fileset</b></p>
+<pre>
+  &lt;jarlib-display&gt;
+    &lt;fileset dir="lib"&gt;
+      &lt;include name="*.jar"/&gt;
+    &lt;/fileset&gt;
+  &lt;/jarlib-display&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-manifest.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-manifest.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-manifest.html	(revision 14989)
@@ -0,0 +1,124 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>jarlib-manifest Task</title>
+</head>
+
+<body>
+
+<h2><a name="jarlib-manifest">jarlib-manifest</a></h2>
+<h3>Description</h3>
+<p>Task to generate a manifest that declares all the dependencies
+ in manifest. The dependencies are determined by looking in the
+ specified path and searching for Extension / "Optional Package"
+ specifications in the manifests of the jars.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file to generate Manifest into</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>extension</h4>
+ <p><a href="../OptionalTypes/extension.html">Extension</a> the extension
+ that this library implements.</p>
+
+<h4>depends</h4>
+ <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s containing
+ all dependencies for jar.</p>
+
+<h4>options</h4>
+ <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s containing
+ all optional dependencies for jar. (Optional dependencies will be used if
+ present else they will be ignored)</p>
+
+<h3>Examples</h3>
+<p><b>Basic Manifest generated for single Extension</b></p>
+<pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com&quot;/&gt;
+
+&lt;jarlib-manifest destfile=&quot;myManifest.txt&quot;&gt;
+    &lt;extension refid=&quot;e1&quot;/&gt;
+&lt;/jarlib-manifest&gt;
+</pre>
+
+<p><b>Search for extension in fileset</b></p>
+<p><b>A large example with required and optional dependencies</b></p>
+<pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com&quot;/&gt;
+
+&lt;extensionSet id=&quot;option.ext&quot;&gt;
+    &lt;libfileset dir=&quot;lib/option&quot;&gt;
+        &lt;include name=&quot;**/*.jar&quot;/&gt;
+    &lt;/libfileset&gt;
+&lt;/extensionSet&gt;
+
+&lt;extensionSet id=&quot;depends.ext&quot;&gt;
+    &lt;libfileset dir=&quot;lib/required&quot;&gt;
+        &lt;include name=&quot;*.jar&quot;/&gt;
+    &lt;/libfileset&gt;
+&lt;/extensionSet&gt;
+
+&lt;jarlib-manifest destfile=&quot;myManifest.txt&quot;&gt;
+    &lt;extension refid=&quot;e1&quot;/&gt;
+    &lt;depends refid=&quot;depends.ext&quot;/&gt;
+    &lt;options refid=&quot;option.ext&quot;/&gt;
+&lt;/jarlib-manifest&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-resolve.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-resolve.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jarlib-resolve.html	(revision 14989)
@@ -0,0 +1,212 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>jarlib-resolve Task</title>
+</head>
+
+<body>
+
+<h2><a name="jarlib-resolve">jarlib-resolve</a></h2>
+<h3>Description</h3>
+<p>Try to locate a jar to satisfy an extension and place
+ location of jar into property. The task allows you to
+ add a number of resolvers that are capable of locating a
+ library for a specific extension. Each resolver will be attempted
+ in specified order until library is found or no resolvers are left.
+ If no resolvers are left and failOnError is true then a BuildException
+ will be thrown.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of property to set to library location.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">failOnError</td>
+    <td valign="top">True if failure to locate library should result in build exception.</td>
+    <td valign="top" align="center">No, defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">checkExtension</td>
+    <td valign="top">True if libraries returned by nested resolvers should be checked to see if
+    they supply extension.</td>
+    <td valign="top" align="center">No, defaults to true.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>extension</h4>
+ <p><a href="../OptionalTypes/extension.html">Extension</a> the extension
+ to resolve. Must be present</p>
+
+<h4>location</h4>
+ <p>The location sub element allows you to look for a library in a
+ location relative to project directory.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">The pathname of library.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>url</h4>
+ <p>The url resolver allows you to download a library from a URL to a
+ local file.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The URL to download.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file to download URL into.</td>
+    <td valign="top" align="center">No, But one of destfile or
+    destdir must be present</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The directory in which to place downloaded file.</td>
+    <td valign="top" align="center">No, But one of destfile or
+    destdir must be present</td>
+  </tr>
+</table>
+
+<h4>ant</h4>
+ <p>The ant resolver allows you to run a ant build file to generate a library.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">antfile</td>
+    <td valign="top">The build file.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file that the ant build creates.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The target to run in build file.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p><b>Resolve Extension to file.</b> If file does not exist or file
+   does not implement extension then throw an exception.</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;location location="/opt/jars/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<p><b>Resolve Extension to url.</b> If url does not exist or can not write
+   to destfile or files does not implement extension then throw an exception.</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;url url="http://www.realityforge.net/jars/dve.jar" destfile="lib/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<p><b>Resolve Extension to file produce by ant build.</b> If file does not get produced
+   or ant file is missing or build fails then throw an exception (Note does not check
+   that library implements extension).</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library" checkExtension="false"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<p><b>Resolve Extension via multiple methods.</b> First check local file to see if it implements
+  extension. If it does not then try to build it from source in parallel directory. If that
+  fails then finally try to download it from a website. If all steps fail then throw a build
+  exception.</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;location location="/opt/jars/dve.jar"/&gt;
+    &lt;ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/&gt;
+    &lt;url url="http://www.realityforge.net/jars/dve.jar" destfile="lib/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/javacc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/javacc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/javacc.html	(revision 14989)
@@ -0,0 +1,204 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JavaCC Task</title>
+</head>
+
+<body>
+
+<h2><a name="javacc">JavaCC</a></h2>
+<h3>Description</h3>
+<p>
+  Invokes the <a HREF="http://javacc.dev.java.net/" target="_top">JavaCC</a> compiler
+  compiler on a grammar file.
+</p>
+<p>
+  To use the javacc task, set the <i>target</i> attribute to the name of the
+  grammar file to process.  You also need to specify the directory containing
+  the JavaCC installation using the <i>javacchome</i> attribute, so that ant
+  can find the JavaCC classes.  Optionally, you can also set the
+  <i>outputdirectory</i> to write the generated file to a specific directory.
+  Otherwise javacc writes the generated files to the directory containing
+  the grammar file.
+</p>
+<p>
+  This task only invokes JavaCC if the grammar file is newer than the generated
+  Java files.  javacc assumes that the Java class name of the generated parser
+  is the same as the name of the grammar file, ignoring the .jj.
+  If this is not the case, the javacc task will still work, but it will always
+  generate the output files.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The grammar file to process.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">javacchome</td>
+    <td valign="top">The directory containing the JavaCC distribution.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">outputdirectory</td>
+    <td valign="top">
+      The directory to write the generated files to.  If not set, the files
+      are written to the directory containing the grammar file.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">buildparser</td>
+    <td valign="top">Sets the BUILD_PARSER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">buildtokenmanager</td>
+    <td valign="top">Sets the BUILD_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cachetokens</td>
+    <td valign="top">Sets the CACHE_TOKENS grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">choiceambiguitycheck</td>
+    <td valign="top">Sets the CHOICE_AMBIGUITY_CHECK grammar option.  This is an integer option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">commontokenaction</td>
+    <td valign="top">Sets the COMMON_TOKEN_ACTION grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debuglookahead</td>
+    <td valign="top">Sets the DEBUG_LOOKAHEAD grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debugparser</td>
+    <td valign="top">Sets the DEBUG_PARSER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debugtokenmanager</td>
+    <td valign="top">Sets the DEBUG_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorreporting</td>
+    <td valign="top">Sets the ERROR_REPORTING grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forcelacheck</td>
+    <td valign="top">Sets the FORCE_LA_CHECK grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignorecase</td>
+    <td valign="top">Sets the IGNORE_CASE grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">javaunicodeescape</td>
+    <td valign="top">Sets the JAVA_UNICODE_ESCAPE grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jdkversion</td>
+    <td valign="top">Sets the JDK_VERSION option. This is a string option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>  <tr>
+    <td valign="top">keeplinecolumn</td>
+    <td valign="top">Sets the KEEP_LINE_COLUMN grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">lookahead</td>
+    <td valign="top">Sets the LOOKAHEAD grammar option.  This is an integer option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">optimizetokenmanager</td>
+    <td valign="top">Sets the OPTIMIZE_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">otherambiguitycheck</td>
+    <td valign="top">Sets the OTHER_AMBIGUITY_CHECK grammar option.  This is an integer option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sanitycheck</td>
+    <td valign="top">Sets the SANITY_CHECK grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">static</td>
+    <td valign="top">Sets the STATIC grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unicodeinput</td>
+    <td valign="top">Sets the UNICODE_INPUT grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">usercharstream</td>
+    <td valign="top">Sets the USER_CHAR_STREAM grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">usertokenmanager</td>
+    <td valign="top">Sets the USER_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Example</h3>
+<blockquote><pre>
+&lt;javacc
+    target=&quot;src/Parser.jj&quot;
+    outputdirectory=&quot;build/src&quot;
+    javacchome=&quot;c:/program files/JavaCC&quot;
+    static=&quot;true&quot;
+/&gt;
+</pre></blockquote>
+<p>
+  This invokes JavaCC on grammar file src/Parser.jj, writing the generated
+  files to build/src.  The grammar option STATIC is set to true when
+  invoking JavaCC.
+</p>
+
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/javah.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/javah.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/javah.html	(revision 14989)
@@ -0,0 +1,192 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Javah Task</title>
+</head>
+
+<body>
+
+<h2><a name="javah">Javah</a></h2>
+<h3>Description</h3>
+<p>Generates JNI headers from a Java class.</p>
+<p> When this task executes, it will generate the C header and source files that
+are needed to implement native methods. JNI operates differently depending on
+whether <a href="http://java.sun.com/j2se/1.3/docs/tooldocs/win32/javah.html">JDK1.2</a>
+(or later) or <a href="http://java.sun.com/products/jdk/1.1/docs/tooldocs/win32/javah.html">pre-JDK1.2</a>
+systems are used.</p>
+
+<p>It is possible to use different compilers. This can be selected
+with the <code>implementation</code> attribute.  <a
+name="implementationvalues">Here are the choices</a>:</p>
+<ul>
+  <li>default - the default compiler (kaffeh or sun) for the platform.</li>
+  <li>sun (the standard compiler of the JDK)</li>
+  <li>kaffeh (the native standard compiler of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
+</ul>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">the fully-qualified name of the class (or classes,
+      separated by commas)</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">outputFile</td>
+    <td valign="top">concatenates the resulting header or source files for all the classes listed into this file</td>
+    <td align="center" valign="middle" rowspan="2">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">sets the directory where javah saves the header files or the
+      stub files.</td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">specifies that output files should always be written (JDK1.2 only)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">old</td>
+    <td valign="top">specifies that old JDK1.0-style header files should be generated
+      (otherwise output file contain JNI-style native method      function prototypes) (JDK1.2 only)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">stubs</td>
+    <td valign="top">generate C declarations from the Java object file (used with old)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">causes Javah to print a message concerning the status     of the generated files</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspath</td>
+    <td valign="top">location of bootstrap class files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">extdirs</td>
+    <td valign="top"> location of installed extensions.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">implementation</td>
+    <td valign="top">The compiler implementation to use.  If this
+    attribute is not set, the default compiler for the current VM
+    will be used.  (See the above <a
+    href="#implementationvalues">list</a> of valid compilers.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>Either outputFile or destdir must be supplied, but not both.&nbsp;</p>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>arg</h4>
+
+<p>You can specify additional command line arguments for the compiler
+with nested <code>&lt;arg&gt;</code> elements.  These elements are
+specified like <a href="../using.html#arg">Command-line Arguments</a>
+but have an additional attribute that can be used to enable arguments
+only if a given compiler implementation will be used.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">implementation</td>
+    <td>Only pass the specified argument if the chosen compiler
+    implementation matches the value of this attribute.  Legal values
+    are the same as those in the above <a
+    href="#implementationvalues">list</a> of valid compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;javah destdir=&quot;c&quot; class=&quot;org.foo.bar.Wibble&quot;/&gt;</pre>
+<p>makes a JNI header of the named class, using the JDK1.2 JNI model. Assuming
+the directory 'c' already exists, the file <tt>org_foo_bar_Wibble.h</tt>
+is created there. If this file already exists, it is left unchanged.</p>
+<pre>  &lt;javah outputFile=&quot;wibble.h&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble,org.foo.bar.Bobble&quot;/&gt;
+  &lt;/javah&gt;</pre>
+<p>is similar to the previous example, except the output is written to a file
+called <tt>wibble.h</tt>
+in the current directory.</p>
+<pre>  &lt;javah destdir=&quot;c&quot; force=&quot;yes&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
+  &lt;/javah&gt;</pre>
+<p>writes three header files, one for each of the classes named. Because the
+force option is set, these header files are always written when the Javah task
+is invoked, even if they already exist.</p>
+<pre>  &lt;javah destdir=&quot;c&quot; verbose=&quot;yes&quot; old=&quot;yes&quot; force=&quot;yes&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
+  &lt;/javah&gt;
+  &lt;javah destdir=&quot;c&quot; verbose=&quot;yes&quot; stubs=&quot;yes&quot; old=&quot;yes&quot; force=&quot;yes&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
+  &lt;/javah&gt;</pre>
+<p>writes the headers for the three classes using the 'old' JNI format, then
+writes the corresponding .c stubs. The verbose option will cause Javah to
+describe its progress.</p>
+
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jdepend.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jdepend.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jdepend.html	(revision 14989)
@@ -0,0 +1,177 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html public "-//w3c//dtd html 4.0 transitional//en">
+
+<html>
+<head>
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JDepend Task</title>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+</head>
+
+<body>
+
+<h2><a NAME="JDepend"></a>JDepend</h2>
+
+<h3>Description</h3>
+
+<P>Invokes the <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> parser.</P>
+
+<P>This parser &quot;traverses a set of Java source file directories and generates design quality metrics for each Java package&quot;.
+It allows to &quot;automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to
+effectively manage and control package dependencies.&quot;</P>
+
+<p>Source file directories are defined by nested
+<code>&lt;sourcespath&gt;</code>; Class file directories are defined
+by nested <code>&lt;classesespath&gt;</code>, see <a
+href="#nested">nested elements</a>.</p>
+
+<p>Optionally, you can also set the <code>outputfile</code> name where the output is stored. By default the task writes its report to the standard output.</P>
+
+<p> The task requires at least the JDepend 1.2 version. </p>
+
+<h3>Parameters</h3>
+
+<table BORDER=1 CELLSPACING=0 CELLPADDING=2 >
+  <tr>
+    <td VALIGN=TOP><b>Attribute</b></td>
+    <td VALIGN=TOP><b>Description</b></td>
+    <td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>outputfile</td>
+    <td VALIGN=TOP>The output file name. If not set, the output is printed on the standard output.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>format</td>
+    <td VALIGN=TOP>The format to write the output in. The default is "text", the alternative is "xml"</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>fork</td>
+    <td VALIGN=TOP>Run the tests in a separate VM.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>haltonerror</td>
+    <td VALIGN=TOP>Stop the build process if an error occurs during the jdepend analysis.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>timeout</td>
+    <td VALIGN=TOP>Cancel the operation if it doesn't finish in the given time (measured in milliseconds). (Ignored if fork is disabled.)</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>jvm</td>
+    <td VALIGN=TOP>The command used to invoke the Java Virtual Machine, default is 'java'. The command is resolved by java.lang.Runtime.exec(). (Ignored if fork is disabled.)</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default "java"</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>dir</td>
+    <td VALIGN=TOP>The directory to invoke the VM in. (Ignored if fork is disabled)</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>includeruntime</td>
+    <td VALIGN=TOP>Implicitly add the classes required to run jdepend
+    in forked mode. (Ignored if fork is disabled). Since ant 1.6.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default is "no".</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>classpathref</td>
+    <td VALIGN=TOP>the classpath to use, given as reference to a PATH defined elsewhere.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+
+<p><code>jdepend</code> supports four nested elements:
+<code>&lt;classpath&gt;, &lt;classespath&gt; </code> and
+<code>&lt;sourcespath&gt;</code>, that represent <a
+href="../using.html#path">PATH like structures</a>, and
+<code>&lt;exclude&gt;</code>.</p>
+
+<p><code>&lt;sourcespath&gt;</code> is used to define the paths of the
+source code to analyze, but it is deprecated. With version 2.5 of
+JDepend, only class files are analyzed. The nested element
+<code>&lt;classespath&gt;</code> replaces <code>&lt;sourcespath&gt;</code> and is used to define
+the paths of compiled class code to analyze; the <code>&lt;sourcespath&gt;</code>
+variable is still available in case you are using an earlier version
+of JDepend.  The <code>&lt;exclude&gt;</code> element can be used to set packages
+to ignore (requires JDepend 2.5 or above).</p>
+
+<h3>Examples</h3>
+
+<blockquote>
+<pre>
+&lt;jdepend classpathref="base.path"&gt;
+&nbsp;&nbsp;&nbsp; &lt;classespath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="build"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/classespath&gt;
+&lt;/jdepend&gt;
+
+</pre>
+</blockquote>
+
+<p>This invokes JDepend on the <code>build</code> directory, writing
+the output on the standard output. The classpath is defined using a
+classpath reference.</p>
+
+<blockquote>
+<pre>
+&lt;jdepend outputfile="docs/jdepend.xml" fork="yes" format="xml"&gt;
+&nbsp;&nbsp;&nbsp; &lt;sourcespath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="src"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/sourcespath&gt;
+&nbsp;&nbsp;&nbsp; &lt;classpath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="classes"/&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="lib/jdepend.jar"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/classpath&gt;
+&lt;/jdepend&gt;
+</pre>
+</blockquote>
+
+<p>This invokes JDepend in a separate VM on the <code>src</code> and
+<code>testsrc</code> directories, writing the output to the
+<code>&lt;docs/jdepend.xml&gt;</code> file in xml format. The
+classpath is defined using nested elements. </p>
+
+<blockquote>
+<pre>
+&lt;jdepend classpathref="base.path"&gt;
+&nbsp;&nbsp;&nbsp; &lt;exclude name="java.*&gt;
+&nbsp;&nbsp;&nbsp; &lt;exclude name="javax.*&gt;
+&nbsp;&nbsp;&nbsp; &lt;classespath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="build"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/classespath&gt;
+&lt;/jdepend&gt;
+</pre>
+</blockquote>
+
+<p>This invokes JDepend with the build directory as the base for class
+files to analyze, and will ignore all classes in the java.* and
+javax.* packages.</p>
+
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jjdoc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jjdoc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jjdoc.html	(revision 14989)
@@ -0,0 +1,116 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JJDoc Task</title>
+</head>
+<body>
+
+<h2>
+<a NAME="jjtree"></a>JJDoc</h2>
+<p><em>Since Ant 1.6</em></p>
+<h3>Description</h3>
+
+<p>Invokes the <a href="http://javacc.dev.java.net/">JJDoc</a> preprocessor
+for the JavaCC compiler compiler. It takes a JavaCC parser specification
+and produces documentation for the BNF grammar.
+It can operate in three modes, determined by command line options.
+<p>To use the jjdoc task, set the <i>target</i> attribute to the name
+of the JavaCC grammar file to process. You also need to specify the directory
+containing the JavaCC installation using the <i>javacchome</i> attribute,
+so that ant can find the JavaCC classes. Optionally, you can also set the
+<i>outputfile</i> to write the generated BNF documentation file to a specific (directory and) file.
+Otherwise jjdoc writes the generated BNF documentation file as the JavaCC
+grammar file with a suffix .txt or .html.</p>
+<p>This task only invokes JJDoc if the grammar file is newer than the
+generated BNF documentation file.</p>
+
+<h3>Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP><b>Attribute</b></td>
+
+<td VALIGN=TOP><b>Description</b></td>
+
+<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>target</td>
+
+<td VALIGN=TOP>The javacc grammar file to process.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>javacchome</td>
+
+<td VALIGN=TOP>The directory containing the JavaCC distribution.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>outputfile</td>
+
+<td VALIGN=TOP>The file to write the generated BNF documentation file to. If not set,
+the file is written with the same name as the JavaCC grammar file but with a the suffix .html or .txt.&nbsp;</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>text</td>
+
+<td VALIGN=TOP>Sets the TEXT BNF documentation option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>onetable</td>
+
+<td VALIGN=TOP>Sets the ONE_TABLE BNF documentation option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+</table>
+
+<h3>
+Example</h3>
+
+<blockquote>
+<pre>&lt;jjdoc&nbsp;
+&nbsp;&nbsp;&nbsp; target="src/Parser.jj"&nbsp;
+&nbsp;&nbsp;&nbsp; outputfile="doc/ParserBNF.html"
+&nbsp;&nbsp;&nbsp; javacchome="c:/program files/JavaCC"&nbsp;
+/&gt;</pre>
+</blockquote>
+This invokes JJDoc on grammar file src/Parser.jj, writing the generated
+BNF documentation file, ParserBNF.html, file to doc.
+<br>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jjtree.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jjtree.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jjtree.html	(revision 14989)
@@ -0,0 +1,556 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JJTree Task</title>
+</head>
+<body>
+
+<h2>
+<a NAME="jjtree"></a>JJTree</h2>
+
+<h3>
+Description</h3>
+<p>Invokes the <a href="http://javacc.dev.java.net/">JJTree</a> preprocessor
+for the JavaCC compiler compiler. It inserts parse tree building actions
+at various places in the JavaCC source that it generates. The output of
+JJTree is run through JavaCC to create the parser.
+<p>To use the jjtree task, set the <i>target</i> attribute to the name
+of the JJTree grammar file to process. You also need to specify the directory
+containing the JavaCC installation using the <i>javacchome</i> attribute,
+so that ant can find the JavaCC classes. Optionally, you can also set the
+<i>outputdirectory</i>
+to write the generated JavaCC grammar and node files to a specific directory.
+Otherwise jjtree writes the generated JavaCC grammar and node files to the directory
+containing the JJTree grammar file. As an extra option, you can also set the
+<i>outputfile</i> to write the generated JavaCC grammar file to a specific (directory and) file.
+Otherwise jjtree writes the generated JavaCC grammar file as the JJTree
+grammar file with a suffix .jj.</p>
+<p>This task only invokes JJTree if the grammar file is newer than the
+generated JavaCC file.</p>
+
+<h3>Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP><b>Attribute</b></td>
+
+<td VALIGN=TOP><b>Description</b></td>
+
+<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>target</td>
+
+<td VALIGN=TOP>The jjtree grammar file to process.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>javacchome</td>
+
+<td VALIGN=TOP>The directory containing the JavaCC distribution.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>outputdirectory</td>
+
+<td VALIGN=TOP>The directory to write the generated JavaCC grammar and node files to.
+If not set, the files are written to the directory containing the grammar file.&nbsp;</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>outputfile</td>
+
+<td VALIGN=TOP>The file to write the generated JavaCC grammar file
+to. If not set, the file is written with the same name as the JJTree
+grammar file but with a the suffix <code>.jj</code>.  This is a
+filename relative to <em>outputdirectory</em> if specified, the
+project's basedir.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>buildnodefiles</td>
+
+<td VALIGN=TOP>Sets the BUILD_NODE_FILES grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>multi</td>
+
+<td VALIGN=TOP>Sets the MULTI grammar option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodedefaultvoid</td>
+
+<td VALIGN=TOP>Sets the NODE_DEFAULT_VOID grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodefactory</td>
+
+<td VALIGN=TOP>Sets the NODE_FACTORY grammar option. This is boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodescopehook</td>
+
+<td VALIGN=TOP>Sets the NODE_SCOPE_HOOK grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodeusesparser</td>
+
+<td VALIGN=TOP>Sets the NODE_USES_PARSER grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>static</td>
+
+<td VALIGN=TOP>Sets the STATIC grammar option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>visitor</td>
+
+<td VALIGN=TOP>Sets the VISITOR grammar option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodepackage</td>
+
+<td VALIGN=TOP>Sets the NODE_PACKAGE grammar option. This is a string option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>visitorexception</td>
+
+<td VALIGN=TOP>Sets the VISITOR_EXCEPTION grammar option. This is a string
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodeprefix</td>
+
+<td VALIGN=TOP>Sets the NODE_PREFIX grammar option. This is a string option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+</table>
+
+<h3>
+Example</h3>
+
+<blockquote>
+<pre>&lt;jjtree&nbsp;
+&nbsp;&nbsp;&nbsp; target="src/Parser.jjt"&nbsp;
+&nbsp;&nbsp;&nbsp; outputdirectory="build/src"
+&nbsp;&nbsp;&nbsp; javacchome="c:/program files/JavaCC"&nbsp;
+&nbsp;&nbsp;&nbsp; nodeusesparser="true"
+/&gt;</pre>
+</blockquote>
+This invokes JJTree on grammar file src/Parser.jjt, writing the generated
+grammar file, Parser.jj, file to build/src. The grammar option NODE_USES_PARSER
+is set to true when invoking JJTree.
+<br>
+
+<h3>Comparison output locations between command line JJTree and different Ant taskdef versions</h3>
+
+<table cellpadding="3" border="1">
+<tr>
+  <td><b>Command Line JJTree options</b>
+    <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>and Generated Files</i> (working directory: <code>/tmp</code>)</td>
+  <td><b>Ant 1.5.3</b> versus command line</td>
+  <td><b>Ant 1.6</b> versus command line</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  grammar.jjt</b>
+    /tmp/grammar.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  relative/grammar.jjt</b>
+    /tmp/grammar.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td><pre>
+/tmp/relative/grammar.jj
+/tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  /tmp/absolute/grammar.jjt</b>
+    /tmp/grammar.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td><pre>
+/tmp/absolute/grammar.jj
+/tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/grammar.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/grammar.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/grammar.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/grammar.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/grammar.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/grammar.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  grammar.jjt</b>
+    /tmp/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  relative/grammar.jjt</b>
+    /tmp/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  relative/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  relative/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj  grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Not Supported *)</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj  relative/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Not Supported *)</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Not Supported *)</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/tmp/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/tmp/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/tmp/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/tmp/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/tmp/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/tmp/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+</table>
+
+<p>*) <u>Footnote</u>: When running JJTree with the Ant taskdef <i>jjtree</i> the option <code>-OUTPUT_DIRECTORY</code> must always 
+be set, because the project's basedir and the ant working directory might differ. So even if you don't specify the jjtree taskdef 
+<i>outputdirectory</i> JJTree will be called with the <code>-OUTPUT_DIRECTORY</code> set to the project's basedirectory. 
+But when the <code>-OUTPUT_DIRECTORY</code> is set, the <code>-OUTPUT_FILE</code> setting is handled as if relative to this 
+<code>-OUTPUT_DIRECTORY</code>. Thus when the <code>-OUTPUT_FILE</code> is absolute or contains a drive letter we have a 
+problem. 
+Therefore absolute <i>outputfile</i>s (when the <i>outputdirectory</i> isn't specified) are made relative to the default directory.
+And for this reason <i>outputfile</i>s that contain a drive letter can't be supported.</p>
+
+<p>By the way: specifying a drive letter in the <code>-OUTPUT_FILE</code> when the <code>-OUTPUT_DIRECTORY</code> is set, also 
+results in strange behavior when running JJTree from the command line.</p>
+
+<br>
+
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jlink.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jlink.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jlink.html	(revision 14989)
@@ -0,0 +1,174 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JLink Task</title>
+</head>
+<body>
+
+<h2><a name="jlink">Jlink</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated. Use the zipfileset and zipgroupfileset attributes of the <a href="../CoreTasks/jar.html">Jar task</a> or <a href="../CoreTasks/zip.html">Zip task</a> instead.</i></p>
+
+<h3><b>Description:</b></h3>
+<p>Links entries from sub-builds and libraries.</p>
+
+<p>The jlink task can be used to build jar and zip files, similar to 
+the <i>jar</i> task.
+However, jlink provides options for controlling the way entries from 
+input files
+are added to the output file. Specifically, capabilities for merging 
+entries from
+multiple zip or jar files is available.</p>
+
+<p>If a mergefile is specified directly (eg. at the top level of a 
+<i>mergefiles</i>
+pathelement) <i>and</i> the mergefile ends in &quot;.zip&quot; or 
+&quot;.jar&quot;,
+entries in the mergefile will be merged into the outfile. A file with 
+any other extension
+will be added to the output file, even if it is specified in the 
+mergefiles element.
+Directories specified in either the mergefiles or addfiles element 
+are added to the
+output file as you would expect: all files in subdirectories are 
+recursively added to
+the output file with appropriate prefixes in the output file 
+(without merging).
+</p>
+
+<p>
+In the case where duplicate entries and/or files are found among the 
+files to be merged or
+added, jlink merges or adds the first entry and ignores all subsequent entries.
+</p>
+
+<p>
+jlink ignores META-INF directories in mergefiles. Users should supply their
+own manifest information for the output file.
+</p>
+
+<p>It is possible to refine the set of files that are being jlinked. 
+This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, 
+<i>excludesfile</i>,
+and <i>defaultexcludes</i> attributes on the <i>addfiles</i> and 
+<i>mergefiles</i>
+nested elements. With the <i>includes</i> or <i>includesfile</i>
+attribute you specify the files you want to have included by using patterns.
+The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns. The patterns are
+relative to the <i>base</i> directory.</p>
+
+
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <td valign="top"><b>Attribute</b></td>
+     <td valign="top"><b>Description</b></td>
+     <td align="center" valign="top"><b>Required</b></td>
+   </tr>
+   <tr>
+     <td valign="top">outfile</td>
+     <td valign="top">the path of the output file.</td>
+     <td valign="top" align="center">Yes</td>
+   </tr>
+   <tr>
+     <td valign="top">compress</td>
+     <td valign="top">whether or not the output should be compressed. 
+<i>true</i>,
+                      <i>yes</i>, or <i>on</i> result in compressed output.
+                      If omitted, output will be uncompressed (inflated).</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">mergefiles</td>
+     <td valign="top">files to be merged into the output, if possible.</td>
+     <td valign="middle" align="center" rowspan="2">At least one of 
+mergefiles or addfiles</td>
+   </tr>
+   <tr>
+     <td valign="top">addfiles</td>
+     <td valign="top">files to be added to the output.</td>
+   </tr>
+</table>
+
+<h3>Examples</h3>
+
+<p>The following will merge the entries in mergefoo.jar and mergebar.jar 
+into out.jar.
+mac.jar and pc.jar will be added as single entries to out.jar.</p>
+<pre>
+&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
+   &lt;mergefiles&gt;
+     &lt;pathelement path=&quot;${build.dir}/mergefoo.jar&quot;/&gt;
+     &lt;pathelement path=&quot;${build.dir}/mergebar.jar&quot;/&gt;
+   &lt;/mergefiles&gt;
+   &lt;addfiles&gt;
+     &lt;pathelement path=&quot;${build.dir}/mac.jar&quot;/&gt;
+     &lt;pathelement path=&quot;${build.dir}/pc.zip&quot;/&gt;
+   &lt;/addfiles&gt;
+&lt;/jlink&gt;
+</pre>
+
+<p><b>Non-deprecated alternative to the above:</b></p>
+<pre>
+&lt;jar compress=&quot;false&quot; destfile=&quot;out.jar&quot;&gt;
+  &lt;zipgroupfileset dir=&quot;${build.dir}&quot;&gt;
+    &lt;include name=&quot;mergefoo.jar&quot;/&gt;
+    &lt;include name=&quot;mergebar.jar&quot;/&gt;
+  &lt;/zipgroupfileset&gt;
+  &lt;fileset dir=&quot;${build.dir}&quot;&gt;
+    &lt;include name=&quot;mac.jar&quot;/&gt;
+    &lt;include name=&quot;pc.jar&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/jar&gt;
+</pre>
+
+<p>Suppose the file foo.jar contains two entries: bar.class and 
+barnone/myClass.zip.
+Suppose the path for file foo.jar is build/tempbuild/foo.jar. The 
+following example
+will provide the entry tempbuild/foo.jar in the out.jar.</p>
+<pre>
+&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
+   &lt;mergefiles&gt;
+     &lt;pathelement path=&quot;build/tempbuild&quot;/&gt;
+   &lt;/mergefiles&gt;
+&lt;/jlink&gt;
+</pre>
+
+<p>However, the next example would result in two top-level entries in out.jar,
+namely bar.class and barnone/myClass.zip</p>
+<pre>
+&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
+   &lt;mergefiles&gt;
+     &lt;pathelement path=&quot;build/tempbuild/foo.jar&quot;/&gt;
+   &lt;/mergefiles&gt;
+&lt;/jlink&gt;
+</pre>
+
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jsharpc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jsharpc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jsharpc.html	(revision 14989)
@@ -0,0 +1,434 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Jsharpc
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Jsharpc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Compile J# source down to a managed .NET application. <p>For historical reasons the pattern <code>**/*.java</code> is preset as includes list and you can not override it with an explicit includes attribute.  Use nested <code>&lt;src&gt;</code> elements instead of the basedir attribute if you need more control.</p></font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Compile J# source down to a managed .NET application. <p> J# is not Java. But it is the language closest to Java in the .NET framework. This task compiles jsharp source (.java files), and generates a .NET managed exe or dll. <p>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules - note that your version of vjc may not support this option.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="21">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">baseaddress</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"></font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">purejava</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">do we want pure java (default, true) or corrupted J#?</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">securescoping</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Make package scoped code visible to the current assembly only (default: false) .NET does not have package scoping. Instead it has assembly, private and public. By default, package content is public to all.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jspc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jspc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/jspc.html	(revision 14989)
@@ -0,0 +1,302 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JSPC Task</title>
+</head>
+
+<body>
+
+<h2><a name="jspc">jspc</a></h2>
+<h3>Description</h3>
+
+<p> Ant task to run the JSP compiler and turn JSP pages into Java source.
+
+<p><b>Deprecated</b> if you use this task with Tomcat's Jasper JSP
+compiler, you should seriously consider using the task shipping with
+Tomcat instead.  This task is only tested against Tomcat 4.x. There
+are known problems with Tomcat 5.x that won't get fixed in Ant, please
+use Tomcat's jspc task instead.</p>
+
+<p>
+
+It can be used to precompile JSP pages for fast initial invocation
+of JSP pages, deployment on a server without the full JDK installed,
+or simply to syntax check the pages without deploying them.
+In most cases, a javac task is usually the next stage in the build process.
+The task does basic dependency checking to prevent unnecessary recompilation -this
+checking compares source and destination timestamps, and does not factor
+in class or taglib dependencies, or <code>&lt;jsp:include&gt;</code> references.
+
+<p>
+By default the task uses the Jasper JSP compiler. This
+means the task needs jasper.jar and jasper-runtime.jar, which come with
+builds of Tomcat 4/Catalina from the
+<a href="http://jakarta.apache.org/tomcat/">Jakarta Tomcat project</a>,
+and any other Jar files which may be needed in future versions (it changes)
+
+We recommend (in March 2003) Tomcat version 4.1.x for the most robust version
+of Jasper.
+
+<p>
+There are many limitations with this task which partially stem from the
+many versions of Jasper, others from implementation 'issues' in the task
+(i.e. nobody's willingness to radically change large bits of it to work
+around jasper). Because of this and the fact that JSP pages do not have
+to be portable across implementations -or versions of implementations-
+this task is better used for validating JSP pages before deployment,
+rather than precompiling them. For that, just deploy and run your httpunit
+junit tests after deployment to compile and test your pages, all in one
+go.
+ 
+</p>
+
+
+<h3>Parameters</h3>
+The Task has the following attributes:<p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">Where to place the generated files. They are located
+    under here according to the given package name.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">srcdir</td>
+    <td valign="top">Where to look for source jsp files.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">The verbosity integer to pass to the compiler. Default="0"</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">Name of the destination package for generated java
+    classes.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">class name of a JSP compiler adapter,
+    such as "jasper" or "jasper41"</td>
+    <td valign="top" align="center">No -defaults to "jasper"</td>
+  </tr>
+  <tr>
+    <td valign="top">ieplugin</td>
+    <td valign="top">Java Plugin classid for Internet Explorer.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mapped</td>
+    <td valign="top">(boolean) Generate separate write() calls for each HTML
+    line in the JSP.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use to run the jsp compiler.
+    This can also be specified
+    by the nested element <code>classpath</code>
+    <a href="../using.html#path">Path</a>).</td>
+    <td valign="top" align="center">No, but it seems to work better when used</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">A <a href="../using.html#references">Reference</a>. As
+    per <code>classpath</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">flag to control action on compile failures: default=yes</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uribase</td>
+    <td valign="top">
+    The uri context of relative URI
+    references in the JSP pages. If it does not
+    exist then it is derived from the location of the file
+    relative to the declared or derived value of <tt>uriroot.</tt>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uriroot</td>
+    <td valign="top">
+    The root directory that uri files should be resolved
+    against.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">
+    Class name of jsp compiler adapter to use.  Defaults to
+    the standard adapter for Jasper.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compilerclasspath</td>
+    <td valign="top">The classpath used to find the compiler adapter specified
+    by the <code>compiler</code> attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">webinc</td>
+    <td valign="top">Output file name for the fraction of web.xml that lists servlets.</td>
+    <td valign="top" align="center">No</td>
+  </tr>    
+  <tr>
+    <td valign="top">webxml</td>
+    <td valign="top">File name for web.xml to be generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>  
+
+  </table>
+
+<P>The <tt>mapped</tt> option will, if set to true, split the JSP text content into a
+one line per call format.  There are comments above and below the mapped
+write calls to localize where in the JSP file each line of text comes
+from.  This can lead to a minor performance degradation (but it is bound
+by a linear complexity).  Without this options all adjacent writes are
+concatenated into a single write.</P>
+
+<P>The <tt>ieplugin</tt> option is used by the <tt>&lt;jsp:plugin&gt;</tt> tags.
+If the Java Plug-in COM Class-ID you want to use changes then it can be
+specified here.  This should not need to be altered.</P>
+
+<P><tt>uriroot</tt> specifies the root of the web
+application.  This is where all absolute uris will be resolved from.
+If it is not specified then the first JSP page will be used to derive
+it.  To derive it each parent directory of the first JSP page is
+searched for a <tt>WEB-INF</tt> directory, and the directory closest to
+the JSP page that has one will be used.  If none can be found then the
+directory Jasperc was called from will be used.  This only affects pages
+translated from an explicitly declared JSP file -including references
+to taglibs</P>
+
+<P><tt>uribase</tt> is used to establish the uri context of
+relative URI references in the JSP pages.  If it does not exist then it
+is derived from the location of the file relative to the declared or
+derived value of <tt>uriroot</tt>. This only affects pages
+translated from an explicitly declared JSP file.</P>
+
+<h3>Parameters specified as nested elements</h3>
+
+This task is a <a href="../dirtasks.html">directory based task</a>, like
+<strong>javac</strong>, so the jsp files to be compiled are located as java
+files are by <strong>javac</strong>. That is, elements such as <tt>includes</tt> and
+<tt>excludes</tt> can be used directly inside the task declaration.
+
+<p>
+
+Elements specific to the jspc task are:-
+
+<h4>classpath</h4>
+
+The classpath used to compile the JSP pages, specified as for any other
+classpath.
+
+<h4>classpathref</h4>
+a reference to an existing classpath
+
+<h4>webapp</h4>
+Instructions to jasper to build an entire web application.
+The base directory must have a WEB-INF subdirectory beneath it.
+When used, the task hands off all dependency checking to the compiler.
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the base directory of the web application</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Example</h3>
+<pre>
+&lt;jspc srcdir="${basedir}/src/war"
+      destdir="${basedir}/gensrc"
+      package="com.i3sp.jsp"
+      compiler="jasper41"
+      verbose="9"&gt;
+  &lt;include name="**/*.jsp"/&gt;
+&lt;/jspc&gt;
+</pre>
+Build all jsp pages under src/war into the destination /gensrc, in a
+package hierarchy beginning with com.i3sp.jsp.
+<pre>
+&lt;jspc
+      destdir="interim"
+      verbose="1"
+      srcdir="src"
+      compiler="jasper41"
+      package="com.i3sp.jsp"&gt;
+  &lt;include name="**/*.jsp"/&gt;
+&lt;/jspc&gt;
+&lt;depend
+         srcdir="interim"
+         destdir="build"
+         cache="build/dependencies"
+         classpath="lib/taglibs.jar"/&gt;
+&lt;javac
+         srcdir="interim"
+         destdir="build"
+         classpath="lib/taglibs.jar"
+         debug="on"/&gt;
+</pre>
+Generate jsp pages then javac them down to
+bytecodes. Include lib/taglib jar in the java compilation.
+ Dependency checking is used to scrub the
+java files if class dependencies indicate it is needed.
+
+<p><h4>Notes</h4>
+Using the <code>package</code> attribute it is possible to identify the resulting
+java files and thus do full dependency checking - this task should only rebuild
+java files if their jsp file has been modified. However, this only works
+with some versions of jasper. By default the checking supports tomcat 4.0.x
+with the "jasper" compiler, set the compiler to "jasper41" for the tomcat4.1.x
+dependency checking.
+Even when it does work, changes in
+.TLD imports or in compile time includes do not get picked up.
+
+<p>
+Jasper generates JSP pages against the JSP1.2 specification -a copy of
+version 2.3 of the servlet specification is needed on the classpath to
+compile the Java code.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/junit.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/junit.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/junit.html	(revision 14989)
@@ -0,0 +1,621 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JUnit Task</title>
+</head>
+<body>
+
+<h2><a name="junit">JUnit</a></h2>
+<h3>Description</h3>
+
+<p>This task runs tests from the JUnit testing framework. The latest
+version of the framework can be found at
+<a href="http://www.junit.org">http://www.junit.org</a>.
+This task has been tested with JUnit 3.0 up to JUnit 3.8.2; it won't
+work with versions prior to JUnit 3.0. It also works with JUnit 4.0, including
+"pure" JUnit 4 tests using only annotations and no <code>JUnit4TestAdapter</code>.</p>
+<p><strong>Note:</strong> This task depends on external libraries not included
+in the Ant distribution.  See <a href="../install.html#librarydependencies">
+Library Dependencies</a> for more information.
+</p>
+<p>
+<strong>Note</strong>:
+You must have <code>junit.jar</code> available.
+You can do one of:
+</p>
+<ol>
+<li>
+Put both <code>junit.jar</code> and <code>ant-junit.jar</code> in
+<code>ANT_HOME/lib</code>.
+</li>
+<li>
+Do not put either in <code>ANT_HOME/lib</code>, and instead
+include their locations in your <code>CLASSPATH</code> environment variable.
+</li>
+<li>
+Add both JARs to your classpath using <code>-lib</code>.
+</li>
+<li>
+Specify the locations of both JARs using
+a <code>&lt;classpath&gt;</code> element in a <code>&lt;taskdef&gt;</code> in the build file.
+</li>
+<li>
+Leave <code>ant-junit.jar</code> in its default location in <code>ANT_HOME/lib</code>
+but include <code>junit.jar</code> in the <code>&lt;classpath&gt;</code> passed
+to <code>&lt;junit&gt;</code>. <em>(since Ant 1.7)</em>
+</li>
+</ol>
+<p>
+See <a href="../../faq.html#delegating-classloader" target="_top">the
+FAQ</a> for details.
+</p>
+
+<p>Tests are defined by nested <code>test</code> or
+<code>batchtest</code> tags (see <a href="#nested">nested
+elements</a>).</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">printsummary</td>
+    <td valign="top">Print one-line statistics for each testcase. Can
+      take the values <code>on</code>,
+      <code>off</code>, and
+      <code>withOutAndErr</code>.
+      <code>withOutAndErr</code> is the same
+      as <code>on</code> but also includes the output of the test
+      as written to <code>System.out</code> and <code>System.err</code>.</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run the tests in a separate VM.</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">forkmode</td>
+    <td valign="top">Controls how many Java Virtual Machines get
+    created if you want to fork some tests.  Possible values are
+    &quot;perTest&quot; (the default), &quot;perBatch&quot; and
+    &quot;once&quot;.  &quot;once&quot; creates only a single Java VM
+    for all tests while &quot;perTest&quot; creates a new VM for each
+    TestCase class.  &quot;perBatch&quot; creates a VM for each nested
+    <code>&lt;batchtest&gt;</code> and one collecting all nested
+    <code>&lt;test&gt;</code>s.  Note that only tests with the same
+    settings of <code>filtertrace</code>, <code>haltonerror</code>,
+    <code>haltonfailure</code>, <code>errorproperty</code> and
+    <code>failureproperty</code> can share a VM, so even if you set
+    <code>forkmode</code> to &quot;once&quot;, Ant may have to create
+    more than a single Java VM.  This attribute is ignored for tests
+    that don't get forked into a new Java VM.  <em>since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No; default is <code>perTest</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">haltonerror</td>
+    <td valign="top">Stop the build process if an error occurs during the test
+       run.</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+<tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property to set in the event of an error.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">haltonfailure</td>
+    <td valign="top">Stop the build process if a test fails (errors are
+      considered failures as well).</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+<tr>
+    <td valign="top">failureproperty</td>
+    <td valign="top">The name of a property to set in the event of a failure
+      (errors are considered failures as well).</td>
+    <td align="center" valign="top">No.</td>
+</tr>
+  <tr>
+    <td valign="top">filtertrace</td>
+    <td valign="top">Filter out Junit and Ant stack frames from error and failure stack traces.</td>
+    <td align="center" valign="top">No; default is <code>on</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Cancel the individual tests if they don't finish
+      in the given time (measured in milliseconds).  Ignored if
+      <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Maximum amount of memory to allocate to the forked VM.
+      Ignored if <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvm</td>
+    <td valign="top">The command used to invoke the Java Virtual Machine,
+      default is 'java'.  The command is resolved by
+      <code>java.lang.Runtime.exec()</code>.
+      Ignored if <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No; default is <code>java</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory in which to invoke the VM. Ignored if
+      <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate the old environment when new
+      environment variables are specified. Ignored if <code>fork</code> is
+      disabled.</td>
+    <td align="center" valign="top">No; default is <code>false</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeantruntime</td>
+    <td valign="top">Implicitly add the Ant classes required to run
+      the tests and JUnit to the classpath in forked mode.
+      <b>Note:</b> Please read the <a
+      href="../../faq.html#junit-no-runtime-xml">Ant FAQ</a> if you
+      want to set this to <code>false</code> and use the XML formatter
+      at the same time.</td>
+    <td align="center" valign="top">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">showoutput</td>
+    <td valign="top">Send any output generated by tests to Ant's
+      logging system as well as to the formatters.  By default only the
+      formatters receive the output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputtoformatters</td>
+    <td valign="top">
+      <em>Since Ant 1.7.0.</em><br/>
+      Send any output generated by tests to the test formatters.
+      This is "true" by default.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tempdir</td>
+    <td valign="top">Where Ant should place temporary files.
+      <em>Since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No; default is the project's base
+      directory.</td>
+  </tr>
+  <tr>
+    <td valign="top">reloading</td>
+    <td valign="top">Whether or not a new classloader should be instantiated for each test case.<br>
+    Ignore if <code>fork</code> is set to true.
+      <em>Since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">clonevm</td>
+    <td valign="top">If set to true true, then all system properties
+      and the bootclasspath of the forked Java Virtual Machine will be
+      the same as those of the Java VM running Ant.  Default is
+      &quot;false&quot; (ignored if fork is disabled).
+      <em>since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>By using the <code>errorproperty</code> and <code>failureproperty</code>
+attributes, it is possible to
+perform setup work (such as starting an external server), execute the test,
+clean up, and still fail the build in the event of a failure.</p>
+
+<p>The <code>filtertrace</code> attribute condenses error and failure
+stack traces before reporting them.
+It works with both the plain and XML formatters.  It filters out any lines
+that begin with the following string patterns:<pre>
+   "junit.framework.TestCase"
+   "junit.framework.TestResult"
+   "junit.framework.TestSuite"
+   "junit.framework.Assert."
+   "junit.swingui.TestRunner"
+   "junit.awtui.TestRunner"
+   "junit.textui.TestRunner"
+   "java.lang.reflect.Method.invoke("
+   "sun.reflect."
+   "org.apache.tools.ant."</pre></p>
+
+<h3><a name="nested">Nested Elements</a></h3>
+
+<p>The <code>&lt;junit&gt;</code> task
+supports a nested <code>&lt;classpath&gt;</code>
+element that represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+
+<p>As of Ant 1.7, this classpath may be used to refer to <code>junit.jar</code>
+as well as your tests and the tested code.
+
+<h4>jvmarg</h4>
+
+<p>If <code>fork</code> is enabled, additional parameters may be passed to
+the new VM via nested <code>&lt;jvmarg&gt;</code> elements. For example:</p>
+
+<pre>
+&lt;junit fork=&quot;yes&quot;&gt;
+  &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
+  ...
+&lt;/junit&gt;
+</pre>
+
+<p>would run the test in a VM without JIT.</p>
+
+<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
+href="../using.html#arg">Command-line Arguments</a>.</p>
+
+<h4>sysproperty</h4>
+
+<p>Use nested <code>&lt;sysproperty&gt;</code> elements to specify system
+properties required by the class. These properties will be made available
+to the VM during the execution of the test (either ANT's VM or the forked VM,
+if <code>fork</code> is enabled).
+The attributes for this element are the same as for <a href="../CoreTasks/exec.html#env">environment variables</a>.</p>
+
+<pre>
+&lt;junit fork=&quot;no&quot;&gt;
+  &lt;sysproperty key=&quot;basedir&quot; value=&quot;${basedir}&quot;/&gt;
+  ...
+&lt;/junit&gt;
+</pre>
+
+<p>would run the test in ANT's VM and make the <code>basedir</code> property
+available to the test.</p>
+
+<h4>syspropertyset</h4>
+
+<p>You can specify a set of properties to be used as system properties
+with <a href="../CoreTypes/propertyset.html">syspropertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>env</h4>
+
+<p>It is possible to specify environment variables to pass to the
+forked VM via nested <code>&lt;env&gt;</code> elements. For a description
+of the <code>&lt;env&gt;</code> element's attributes, see the
+description in the <a href="../CoreTasks/exec.html#env">exec</a> task.</p>
+
+<p>Settings will be ignored if <code>fork</code> is disabled.</p>
+
+<h4>bootclasspath</h4>
+
+<p>The location of bootstrap class files can be specified using this
+<a href="../using.html#path">PATH like structure</a> - will be ignored
+if <i>fork</i> is not <code>true</code> or the target VM doesn't
+support it (i.e. Java 1.1).</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>permissions</h4>
+<p>Security permissions can be revoked and granted during the execution of the 
+class via a nested <i>permissions</i> element. For more information please
+see <a href="../CoreTypes/permissions.html">permissions</a></p>
+
+<p>Settings will be ignored if fork is enabled.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+ 
+<h4>assertions</h4>
+
+<p>You can control enablement of Java 1.4 assertions with an
+<a href="../CoreTypes/assertions.html"><tt>&lt;assertions&gt;</tt></a>
+subelement.</p>
+ 
+<p>Assertion statements are currently ignored in non-forked mode.</p>
+
+<p><em>since Ant 1.6.</em></p>
+
+<h4>formatter</h4>
+
+<p>The results of the tests can be printed in different
+formats. Output will always be sent to a file, unless you set the
+<code>usefile</code> attribute to <code>false</code>.
+The name of the file is determined by the
+name of the test and can be set by the <code>outfile</code> attribute
+of <code>&lt;test&gt;</code>.</p>
+
+<p>There are three predefined formatters - one prints the test results
+in XML format, the other emits plain text.  The formatter named
+<code>brief</code> will only print detailed information for testcases
+that failed, while <code>plain</code> gives a little statistics line
+for all test cases.  Custom formatters that need to implement
+<code>org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter</code>
+can be specified.</p>
+
+<p>If you use the XML formatter, it may not include the same output
+that your tests have written as some characters are illegal in XML
+documents and will be dropped.</p>
+
+<p><b>Note:</b> Please read the <a
+href="../../faq.html#junit-no-runtime-xml">Ant FAQ</a> if you want to
+set the fork attribute to <code>true</code>, the includeAntRuntime
+attribute to <code>false</code> and use the XML formatter at the same
+time.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">Use a predefined formatter (either
+      <code>xml</code>, <code>plain</code>, or <code>brief</code>).</td>
+    <td align="center" rowspan="2">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">Name of a custom formatter class.</td>
+  </tr>
+  <tr>
+    <td valign="top">extension</td>
+    <td valign="top">Extension to append to the output filename.</td>
+    <td align="center">Yes, if <code>classname</code> has been used.</td>
+  </tr>
+  <tr>
+    <td valign="top">usefile</td>
+    <td valign="top">Boolean that determines whether output should be
+      sent to a file.</td>
+    <td align="center">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only use formatter if the named property is set.</td>
+    <td align="center">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only use formatter if the named property is <b>not</b> set.</td>
+    <td align="center">No; default is <code>true</code>.</td>
+  </tr>  
+</table>
+
+<h4>test</h4>
+
+<p>Defines a single test class.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the test class.</td>
+    <td align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run the tests in a separate VM.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">haltonerror</td>
+    <td valign="top">Stop the build process if an error occurs during the test
+       run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property to set in the event of an error.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">haltonfailure</td>
+    <td valign="top">Stop the build process if a test fails (errors are
+      considered failures as well).  Overrides value set in
+      <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">failureproperty</td>
+    <td valign="top">The name of a property to set in the event of a failure
+      (errors are considered failures as well). Overrides value set in
+      <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">filtertrace</td>
+    <td valign="top">Filter out Junit and Ant stack frames from error and failure stack
+    traces.  Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No; default is <code>on</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">Directory to write the reports to.</td>
+    <td align="center" valign="top">No; default is the current directory.</td>
+  </tr>
+  <tr>
+    <td valign="top">outfile</td>
+    <td valign="top">Base name of the test result. The full filename is
+      determined by this attribute and the extension of
+      <code>formatter</code>.</td>
+    <td align="center" valign="top">No; default is
+      <code>TEST-</code><em>name</em>, where <em>name</em> is the name of
+      the test specified in the <code>name</code> attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only run test if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only run test if the named property is <b>not</b> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>Tests can define their own formatters via nested
+<code>&lt;formatter&gt;</code> elements.</p>
+
+<h4>batchtest</h4>
+
+<p>Define a number of tests based on pattern matching.</p>
+
+<p><code>batchtest</code> collects the included <a href="../CoreTypes/resources.html">resources</a> from any number
+of nested <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s. It then
+generates a test class name for each resource that ends in
+<code>.java</code> or <code>.class</code>.</p>
+
+<p>Any type of Resource Collection is supported as a nested element,
+prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
+supported.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run the tests in a separate VM.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">haltonerror</td>
+    <td valign="top">Stop the build process if an error occurs during the test
+       run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property to set in the event of an error.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">haltonfailure</td>
+    <td valign="top">Stop the build process if a test fails (errors are
+      considered failures as well).  Overrides value set in
+      <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">failureproperty</td>
+    <td valign="top">The name of a property to set in the event of a failure
+      (errors are considered failures as well). Overrides value set in
+      <code>&lt;junit&gt;</code></td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">filtertrace</td>
+    <td valign="top">Filter out Junit and Ant stack frames from error and failure stack
+    traces.  Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No; default is <code>on</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">Directory to write the reports to.</td>
+    <td align="center" valign="top">No; default is the current directory.</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only run tests if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only run tests if the named property is <strong>not</strong> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>Batchtests can define their own formatters via nested
+<code>&lt;formatter&gt;</code> elements.</p>
+
+<h3>Examples</h3>
+
+<pre>
+&lt;junit&gt;
+  &lt;test name="my.test.TestCase"/&gt;
+&lt;/junit&gt;
+</pre>
+
+<p>Runs the test defined in <code>my.test.TestCase</code> in the same
+VM. No output will be generated unless the test fails.</p>
+
+<pre>
+&lt;junit printsummary="yes" fork="yes" haltonfailure="yes"&gt;
+  &lt;formatter type="plain"/&gt;
+  &lt;test name="my.test.TestCase"/&gt;
+&lt;/junit&gt;
+</pre>
+
+<p>Runs the test defined in <code>my.test.TestCase</code> in a
+separate VM.  At the end of the test, a one-line summary will be
+printed. A detailed report of the test can be found in
+<code>TEST-my.test.TestCase.txt</code>. The build process will be
+stopped if the test fails.</p>
+
+<pre>
+&lt;junit printsummary="yes" haltonfailure="yes"&gt;
+  &lt;classpath&gt;
+    &lt;pathelement location="${build.tests}"/&gt;
+    &lt;pathelement path="${java.class.path}"/&gt;
+  &lt;/classpath&gt;
+
+  &lt;formatter type="plain"/&gt;
+
+  &lt;test name="my.test.TestCase" haltonfailure="no" outfile="result"&gt;
+    &lt;formatter type="xml"/&gt;
+  &lt;/test&gt;
+
+  &lt;batchtest fork="yes" todir="${reports.tests}"&gt;
+    &lt;fileset dir="${src.tests}"&gt;
+      &lt;include name="**/*Test*.java"/&gt;
+      &lt;exclude name="**/AllTests.java"/&gt;
+    &lt;/fileset&gt;
+  &lt;/batchtest&gt;
+&lt;/junit&gt;
+</pre>
+
+<p>Runs <code>my.test.TestCase</code> in the same VM, ignoring the
+given CLASSPATH; only a warning is printed if this test fails. In
+addition to the plain text test results, for this test a XML result
+will be output to <code>result.xml</code>.  
+Then, for each matching file in the directory defined for
+<code>${src.tests}</code> a
+test is run in a separate VM. If a test fails, the build process is
+aborted. Results are collected in files named
+<code>TEST-</code><em>name</em><code>.txt</code> and written to
+<code>${reports.tests}</code>.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/junitreport.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/junitreport.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/junitreport.html	(revision 14989)
@@ -0,0 +1,189 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JUnitReport Task</title>
+</head>
+
+<body>
+
+<h2><a name="junitreport">JUnitReport</a></h2>
+Merge the individual XML files generated by the JUnit task and eventually apply
+a stylesheet on the resulting merged document to provide a browsable report of
+the testcases results.
+<p><strong>Note:</strong> This task depends on external libraries not included in
+the Ant distribution.  See <a href="../install.html#librarydependencies">
+Library Dependencies</a> for more information.</p>
+
+<h3>Requirements</h3>
+
+<p>The task needs Apache <a
+href="http://xml.apache.org/xalan-j/">Xalan 2.4.1+ or Xalan XSLTC</a>
+(JDK 1.4 contains a version of Xalan-J 2.x while JDK 1.5 ships with a
+version of XSLTC). Starting from JDK 1.4.2-01 it ships with a bundled
+Xalan-J 2.4.1+, meaning that JDK version prior to 1.4.2-01 won't work
+out of the box. The table below summarize the compatibility status. 
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr><th>Xalan</th><th>Sun JDK Bundle</th><th>Status<th></tr> 
+<tr><td>2.4.1+</td><td>JDK 1.4.2-01+</td><td>OK</td></tr>
+<tr><td>XSLTC</td><td>JDK 1.5.x</td><td>OK</td></tr>
+<tr><td>2.x</td><td>JDK 1.4.x</td><td>DEPRECATED<br><i>Use ${ant.home}/etc/junit-frames-xalan1.xsl
+<br> Upgrade Xalan using the JDK endorsement mechanism</i></td></tr>
+</table>
+
+<p>With Ant 1.6.2 we had to decide between supporting Xalan-J 1/Xalan J 2.4.1-
+and Xalan 2.4.1+/XSLTC, since there was no way to support both couples at the same
+time.</p>
+<p>With Ant 1.7 we had to drop support Xalan-J 1, since Xalan-J 1 has not 
+available anymore for quite some time.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">The name of the XML file that will aggregate all individual
+      XML testsuite previously generated by the JUnit task.</td>
+    <td align="center" valign="top">No. Default to TESTS-TestSuites.xml</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory where should be written the file resulting
+      from the individual XML testsuite aggregation.</td>
+    <td align="center" valign="top">No. Default to current directory</td>
+  </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+<h4>fileset</h4>
+<p><code>junitreport</code> collects individual xml files generated by the JUnit
+task using the nested <a href="../CoreTypes/fileset.html"><code>&lt;FileSet&gt;</code></a>
+element.</p>
+<h4>report</h4>
+<p>Generate a browsable report based on the document created by the merge.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">The format of the generated report. Must be &quot;noframes&quot;
+      or &quot;frames&quot;.</td>
+    <td align="center" valign="top">No, default to &quot;frames&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">styledir</td>
+    <td valign="top">The directory where the stylesheets are defined. They must
+      be conforming to the following conventions:
+      <ul>
+        <li>frames format: the stylesheet must be named <i>junit-frames.xsl</i>.</li>
+        <li>noframes format: the stylesheet must be named <i>junit-noframes.xsl</i>.</li>
+      </ul>
+    </td>
+    <td align="center" valign="top">No. Default to embedded stylesheets.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory where the files resulting from the
+      transformation should be written to.</td>
+    <td align="center" valign="top">No. Default to current directory</td>
+  </tr>
+</table>
+<p> Ant assumes the following concerning the <tt>frames</tt> and <tt>noframes</tt> formats :</p>
+<p>The <tt>frames</tt> format uses
+a stylesheet which is generating output <em>only</em> by redirecting.</p>
+<p>The
+<tt>noframes</tt> format does not use redirecting and generates one
+file called <tt>junit-noframes.html</tt>.</p>
+<p>Custom versions of <tt>junit-frames.xsl</tt> or <tt>junit-noframes.xsl</tt> must adhere to the above conventions.</p>
+
+<h3>Nested Element of the report tag</h3>
+<h4>param</h4>
+<em>Since Ant 1.7</em>the report tag supports nested param tags.
+These tags can pass XSL parameters to the stylesheet.
+<h3>Parameters</h3>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the XSL parameter</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">expression</td>
+    <td valign="top">Text value to be placed into the param.<br>
+    Was originally intended to be an XSL expression.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">The param will only passed if this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">The param will only passed unless this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Example of report</h3>
+<blockquote>
+  <pre>&lt;junitreport todir=&quot;./reports&quot;&gt;
+  &lt;fileset dir=&quot;./reports&quot;&gt;
+    &lt;include name=&quot;TEST-*.xml&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;report format=&quot;frames&quot; todir=&quot;./report/html&quot;/&gt;
+&lt;/junitreport&gt;
+</pre>
+</blockquote>
+<p>would generate a <tt>TESTS-TestSuites.xml</tt> file in the directory <tt>reports</tt> and
+generate the default framed report in the directory <tt>report/html</tt>.</p>
+<h3>Example of report with xsl params</h3>
+<blockquote>
+  <pre>
+&lt;junitreport todir="${outputdir}"&gt;
+    &lt;fileset dir="${jrdir}"&gt;
+        &lt;include name="TEST-*.xml"/&gt;
+    &lt;/fileset&gt;
+    &lt;report todir="${outputdir}/html"
+        styledir="junitreport"
+        format="frames"&gt;
+        &lt;param name="key1" expression="value1"/&gt;
+        &lt;param name="key2" expression="value2"/&gt;
+    &lt;/report&gt;
+&lt;/junitreport&gt;
+  </pre>
+  </blockquote>
+<p>This example requires a file called <tt>junitreport/junit-frames.xsl</tt>.
+    The XSL parameters key1 and key2 will be passed to the XSL transformation.</p>
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/mimemail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/mimemail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/mimemail.html	(revision 14989)
@@ -0,0 +1,115 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>MimeMail Task</title>
+</head>
+
+<body>
+
+<h2><a name="mimemail">MimeMail</a></h2>
+
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the <a href="../CoreTasks/mail.html">mail</a> task instead.</i></p>
+
+<h3>Description</h3>
+<p>Sends SMTP mail with MIME attachments.
+<a href="http://java.sun.com/products/javamail/index.html">JavaMail</a>
+and <a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">Java
+Activation Framework</a> are required for this task.</p>
+<p>Multiple files can be attached using <a href="../CoreTypes/fileset.html">FileSets.</a></p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">The message body</td>
+    <td valign="top" align="center" rowspan="2">No, but only one of of 'message' or
+      'messageFile' may be specified.&nbsp; If not specified, a fileset must be
+      provided.</td>
+  </tr>
+  <tr>
+    <td valign="top">messageFile</td>
+    <td valign="top">A filename to read and used as the message body</td>
+  </tr>
+  <tr>
+    <td valign="top">messageMimeType</td>
+    <td valign="top">MIME type to use for 'message' or 'messageFile' when
+      attached.</td>
+    <td align="center" valign="top">No, defaults to "text/plain"</td>
+  </tr>
+  <tr>
+    <td valign="top">tolist</td>
+    <td valign="top">Comma-separated list of To: recipients</td>
+    <td valign="top" align="center" rowspan="3">Yes, at least one of 'tolist', 'cclist',
+      or 'bcclist' must be specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">cclist</td>
+    <td valign="top">Comma-separated list of CC: recipients</td>
+    <td valign="top" align="center">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">bcclist</td>
+    <td valign="top">Comma-separated list of BCC: recipients</td>
+    <td valign="top" align="center">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">mailhost</td>
+    <td valign="top">Host name of the mail server.</td>
+    <td valign="top" align="center">No, default to &quot;localhost&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">subject</td>
+    <td valign="top">Email subject line.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">Email address of sender.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if an error occurs sending the
+      e-mail.</td>
+    <td valign="top" align="center">No, default to &quot;true&quot;</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<p><b>Send a single HTML file as the body of a message</b></p>
+<pre>    &lt;mimemail messageMimeType=&quot;text/html&quot; messageFile=&quot;overview-summary.html&quot;
+        tolist=&quot;you&quot; subject=&quot;JUnit Test Results: ${TODAY}&quot; from=&quot;me&quot;/&gt;</pre>
+<p><b>Sends all files in a directory as attachments</b></p>
+<pre>    &lt;mimemail message=&quot;See attached files&quot; tolist=&quot;you&quot; subject=&quot;Attachments&quot; from=&quot;me&quot;&gt;
+        &lt;fileset dir=&quot;.&quot;&gt;
+            &lt;include name=&quot;dist/*.*&quot;/&gt;
+        &lt;/fileset&gt;
+    &lt;/mimemail&gt;
+</pre>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/native2ascii.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/native2ascii.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/native2ascii.html	(revision 14989)
@@ -0,0 +1,212 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  <head><link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Native2Ascii Task</title></head>
+  <body>
+    <h2>Native2Ascii</h2>
+
+    <h3>Description:</h3>
+
+    <p>
+      Converts files from native encodings to ASCII with escaped Unicode.
+      A common usage is to convert source files maintained in a native
+      operating system encoding, to ASCII prior to compilation.
+    </p>
+
+    <p>
+      Files in the directory <em>src</em>
+      are converted from a native encoding to ASCII.
+      By default, all files in the directory are converted.
+      However, conversion may be limited to selected files using
+      <em>includes</em> and <em>excludes</em> attributes.
+      For more information on file matching patterns,
+      see the section on
+      <a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>.
+      If no <em>encoding</em> is specified,
+      the default encoding for the JVM is used.
+      If <em>ext</em> is specified, then output files are renamed
+      to use it as a new extension.
+      More sophisticated file name translations can be achieved using a nested
+      <em><code>&lt;mapper&gt;</code></em> element. By default an
+      <a href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a> will be used.
+      If <em>dest</em> and <em>src</em> point to the same directory,
+      the <em>ext</em> attribute or a nested <em><code>&lt;mapper&gt;</code></em>
+      is required.
+    </p>
+
+    <p>
+      This task forms an implicit <a href="../CoreTypes/fileset.html">File Set</a>,
+      and supports all attributes of <code>&lt;fileset&gt;</code>
+      (<code>dir</code> becomes <code>src</code>) as well as
+      nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code>,
+      and <code>&lt;patternset&gt;</code> elements.
+    </p>
+
+    <p>It is possible to use different converters. This can be selected
+      with the <code>implementation</code> attribute.
+      <a name="implementationvalues">Here are the choices</a>:</p>
+    <ul>
+      <li>default - the default converter (kaffe or sun) for the platform.</li>
+      <li>sun (the standard converter of the JDK)</li>
+      <li>kaffe (the standard converter of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
+    </ul>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td><b>Attribute</b></td>
+        <td><b>Description</b></td>
+        <td><b>Required</b></td>
+      </tr>
+      <tr>
+        <td>reverse</td>
+        <td>Reverse the sense of the conversion,
+          i.e. convert from ASCII to native <b>only supported by the
+            sun converter</b></td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>encoding</td>
+        <td>The native encoding the files are in
+          (default is the default encoding for the JVM)</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>src</td>
+        <td>The directory to find files in (default is <em>basedir</em>)</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>dest</td>
+        <td>The directory to output file to</td>
+        <td align="center">Yes</td>
+      </tr>
+      <tr>
+        <td>ext</td>
+        <td>File extension to use in renaming output files</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>defaultexcludes</td>
+        <td>indicates whether default excludes should be used or not
+          (&quot;yes&quot;/&quot;no&quot;).
+          Default excludes are used when omitted.
+        </td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>includes</td>
+        <td>comma- or space-separated list of patterns of files that must be
+          included. All files are included when omitted.</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>includesfile</td>
+        <td>the name of a file. Each line of this file is
+          taken to be an include pattern</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>excludes</td>
+        <td>comma- or space-separated list of patterns of files that must be excluded.
+          No files (except default excludes) are excluded when omitted.</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>excludesfile</td>
+        <td>the name of a file. Each line of this file is
+          taken to be an exclude pattern</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">implementation</td>
+        <td valign="top">The converter implementation to use.
+          If this attribute is not set, the default converter for the
+          current VM will be used.  (See the above <a
+          href="#implementationvalues">list</a> of valid converters.)</td>
+        <td align="center" valign="top">No</td>
+      </tr>
+    </table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>arg</h4>
+
+<p>You can specify additional command line arguments for the converter
+with nested <code>&lt;arg&gt;</code> elements.  These elements are
+specified like <a href="../using.html#arg">Command-line Arguments</a>
+but have an additional attribute that can be used to enable arguments
+only if a given converter implementation will be used.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">implementation</td>
+    <td>Only pass the specified argument if the chosen converter
+    implementation matches the value of this attribute.  Legal values
+    are the same as those in the above <a
+    href="#implementationvalues">list</a> of valid compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+    <h3>Examples</h3>
+
+    <pre>
+&lt;native2ascii encoding=&quot;EUCJIS&quot; src=&quot;srcdir&quot; dest=&quot;srcdir&quot;
+   includes=&quot;**/*.eucjis&quot; ext=&quot;.java&quot;/&gt;
+    </pre>
+
+    <p>
+      Converts all files in the directory <em>srcdir</em>
+      ending in <code>.eucjis</code> from the EUCJIS encoding to ASCII
+      and renames them to end in <code>.java</code>.
+    </p>
+
+<pre>
+&lt;native2ascii encoding=&quot;EUCJIS&quot; src=&quot;native/japanese&quot; dest=&quot;src&quot;
+   includes=&quot;**/*.java&quot;/&gt;
+</pre>
+
+    <p>
+      Converts all the files ending in <code>.java</code>
+      in the directory <em>native/japanese</em> to ASCII,
+      placing the results in the directory <em>src</em>.
+      The names of the files remain the same.
+    </p>
+  </body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/netrexxc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/netrexxc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/netrexxc.html	(revision 14989)
@@ -0,0 +1,330 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>NetRexxC Task</title>
+</head>
+
+<body>
+
+<h2><a name="netrexxc">NetRexxC</a></h2>
+<h3>Description</h3>
+<p>Compiles a <a href="http://www2.hursley.ibm.com/netrexx" target="_top">NetRexx</a>
+source tree within the running (Ant) VM.</p>
+<p>The source and destination directory will be recursively scanned for
+NetRexx source files to compile.  Only NetRexx files that have no corresponding
+class file or where the class file is older than the java file will be compiled.</p>
+<p>Files in the source tree are copied to the destination directory,
+allowing support files to be located properly in the classpath. The source
+files are copied because the NetRexx compiler cannot produce class files in a
+specific directory via parameters</p>
+<p>The directory structure of the source tree should follow the package
+hierarchy.</p>
+<p>It is possible to refine the set of files that are being compiled/copied.
+This can be done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and
+<i>defaultexcludes</i> attributes. With the <i>includes</i> or <i>includesfile</i> attribute you
+specify the files you want to have included by using patterns. The
+<i>exclude</i> or <i>excludesfile</i> attribute is used to specify the files you want to have
+excluded.  This is also done with patterns.  And finally with the
+<i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>All properties except classpath, srcdir and destDir are also available as properties in the form
+<code>ant.netrexxc.<i>attributename</i></code>, eg.<br>
+<code>&lt;property name="ant.netrexxc.verbose" value="noverbose"/&gt;</code><br>
+or from the command line as<br>
+<code>ant -Dant.netrexxc.verbose=noverbose ...</code>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">binary</td>
+    <td valign="top">Whether literals are treated as the java binary
+      type rather than the NetRexx types</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use during compilation</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">comments</td>
+    <td valign="top">Whether comments are passed through to the
+      generated java source</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compact</td>
+    <td valign="top">Whether error messages come out in compact or
+      verbose format. Default is the compact format.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compile</td>
+    <td valign="top">Whether the NetRexx compiler should compile the
+      generated java code</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">console</td>
+    <td valign="top">Whether or not messages should be displayed on the
+      'console'</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">crossref</td>
+    <td valign="top">Whether variable cross references are generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">decimal</td>
+    <td valign="top">Whether decimal arithmetic should be used for the
+      NetRexx code</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">destDir</td>
+    <td valign="top">the destination directory into which the NetRexx
+      source files should be copied and then compiled</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">diag</td>
+    <td valign="top">Whether diagnostic information about the compile is
+      generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">explicit</td>
+    <td valign="top">Whether variables must be declared explicitly
+      before use</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">Whether the generated java code is formatted nicely
+      or left to match NetRexx line numbers for call stack debugging</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">java</td>
+    <td valign="top">Whether the generated java code is produced</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keep</td>
+    <td valign="top">Sets whether the generated java source file should be kept
+      after compilation. The generated files will have an extension of
+      .java.keep, <b>not</b> .java</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logo</td>
+    <td valign="top">Whether the compiler text logo is displayed when
+      compiling</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">Whether the generated .java file should be replaced
+      when compiling</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">savelog</td>
+    <td valign="top">Whether the compiler messages will be written to
+      NetRexxC.log as well as to the console</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcedir</td>
+    <td valign="top">Tells the NetRexx compiler to store the class files in the
+      same directory as the source files. The alternative is the working
+      directory</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">Set the source dir to find the source NetRexx
+      files</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">strictargs</td>
+    <td valign="top">Tells the NetRexx compiler that method calls always
+      need parentheses, even if no arguments are needed, e.g.
+      <code>aStringVar.getBytes</code> vs.
+      <code>aStringVar.getBytes()</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictassign</td>
+    <td valign="top">Tells the NetRexx compile that assignments must
+      match exactly on type</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictcase</td>
+    <td valign="top">Specifies whether the NetRexx compiler should be
+      case sensitive or not</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictimport</td>
+    <td valign="top">Whether classes need to be imported explicitly using an
+      <code>import</code> statement.  By default the NetRexx compiler will
+      import certain packages automatically</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictprops</td>
+    <td valign="top">Whether local properties need to be qualified
+      explicitly using <code>this</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictsignal</td>
+    <td valign="top">Whether the compiler should force catching of
+      exceptions by explicitly named types</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">symbols</td>
+    <td valign="top">Whether debug symbols should be generated into the
+      class file</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">time</td>
+    <td valign="top">Asks the NetRexx compiler to print compilation
+      times to the console</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">trace</td>
+    <td valign="top">Turns on or off tracing and directs the resultant
+      trace output</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">utf8</td>
+    <td valign="top">Tells the NetRexx compiler that the source is in UTF8</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether lots of warnings and error messages should
+      be generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressMethodArgumentNotUsed</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Method argument not used&amp; messages in strictargs mode.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressPrivatePropertyNotUsed</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Private Property defined, but not used&amp; messages in strictargs mode.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressVariableNotUsed</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Variable set but not used&amp; messages in strictargs mode.
+      Please be careful with this one, as you can hide errors behind it!</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressExceptionNotSignalled</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Exception is declared, but not signaled within the method&amp;
+      messages in strictsignal mode.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressDeprecation</td>
+    <td valign="top">Tells whether we should filter out any deprecation-messages
+      of the compiler out.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;netrexxc srcDir=&quot;/source/project&quot;
+           includes=&quot;vnr/util/*&quot;
+           destDir=&quot;/source/project/build&quot;
+           classpath=&quot;/source/project2/proj.jar&quot;
+           comments=&quot;true&quot;
+           crossref=&quot;false&quot; replace=&quot;true&quot;
+           keep=&quot;true&quot;/&gt;</code>
+  </p>
+</blockquote>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/perforce.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/perforce.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/perforce.html	(revision 14989)
@@ -0,0 +1,1006 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Perforce Tasks</title>
+</head>
+<body>
+<h1>Perforce Tasks User Manual</h1>
+<p>by</p>
+<ul>
+    <li>Les Hughes (<a href="mailto:leslie.hughes@rubus.com">leslie.hughes@rubus.com</a>)</li>
+    <li>Kirk Wylie (<a href="mailto:kirk@radik.com">kirk@radik.com</a>)</li>
+    <li>Matt Bishop (<a href="mailto:matt@thebishops.org">matt@thebishops.org</a>)</li>
+    <li>Antoine Levy-Lambert</li>
+</ul>
+<hr>
+<h2>Contents</h2>
+<ul>
+    <li><a href="#intro">Introduction</a></li>
+    <li><a href="#tasks">The Tasks</a></li>
+    <li><a href="#changes">Change History</a></li>
+</ul>
+<br>
+<h2><a name="intro">Introduction</a></h2>
+<p>These tasks provide an interface to the <a href="http://www.perforce.com" target="_top">Perforce</a> SCM.
+The <code>org.apache.tools.ant.taskdefs.optional.perforce</code> package consists of a simple framework to support 
+p4 functionality as well as some Ant tasks encapsulating frequently used (by me :-) p4 commands. 
+However, the addition of new p4 commands is a pretty simple task (see the source). 
+Although it is possible to use these commands on the desktop, 
+they were primarily intended to be used by automated build systems.</p>
+
+<p><b>Note:</b> These tasks require the <a href="http://jakarta.apache.org/oro" target="_top">oro</a> regular
+expression package. See <a href="../install.html#librarydependencies">library dependencies</a> for the precise
+version required.
+You will also need the Perforce client executable (p4 or p4.exe but not p4win.exe) in your path.
+</p>
+
+
+
+<h2><a name="tasks">The Tasks</a></h2>
+
+<table border="0" cellspacing="0" cellpadding="3">
+    <tr>
+      <td><b>Task</b></td>
+      <td><b>Description</b></td>
+    </tr>
+    <tr>
+        <td><a href="#p4sync">P4Sync</a></td>
+        <td>Synchronise a workspace to a depot</td>
+    </tr>
+    <tr>
+        <td><a href="#p4change">P4Change</a></td>
+        <td>Request a new changelist from the Perforce server</td>
+    </tr>
+    <tr>
+        <td><a href="#p4edit">P4Edit</a></td>
+        <td>Open files for edit (checkout)</td>
+    </tr>
+    <tr>
+        <td><a href="#p4submit">P4Submit</a></td>
+        <td>Submit a changelist to the Perforce server (checkin)</td>
+    </tr>
+    <tr>
+        <td><a href="#p4have">P4Have</a></td>
+        <td>List current files in client view, useful for reporting</td>
+    </tr>
+    <tr>
+        <td><a href="#p4label">P4Label</a></td>
+        <td>Create a label reflecting files in the current workspace</td>
+    </tr>
+    <tr>
+        <td><a href="#p4labelsync">P4Labelsync</a></td>
+        <td>Syncs an existing label</td>
+    </tr>
+    <tr>
+        <td><a href="#p4counter">P4Counter</a></td>
+        <td>Obtain or set the value of a counter</td>
+    </tr>
+	    <tr>
+        <td><a href="#p4reopen">P4Reopen</a></td>
+        <td>Move files between changelists</td>
+    </tr>
+
+	    <tr>
+        <td><a href="#p4revert">P4Revert</a></td>
+        <td>Revert files</td>
+    </tr>
+	    
+    <tr>
+        <td><a href="#p4add">P4Add</a></td>
+        <td>Add files</td>
+    </tr>
+    <tr>
+      <td><a href="#p4delete">P4Delete</a></td>
+      <td>Delete files</td>
+    </tr>
+    <tr>
+      <td><a href="#p4integrate">P4Integrate</a></td>
+      <td>Integrate files</td>
+    </tr>
+    <tr>
+      <td><a href="#p4resolve">P4Resolve</a></td>
+      <td>Resolve files</td>
+    </tr>
+    <tr>
+        <td><a href="#p4fstat">P4Fstat</a></td>
+        <td>Show differences between local repository and p4 repository</td>
+    </tr>
+</table>
+
+<h3>General P4 Properties</h3>
+<p>Each p4 task requires a number of settings, either through build-wide properties, individual attributes 
+or environment variables. These are
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Property</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Env Var</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Default</b></td>
+  </tr>
+  <tr>
+    <td valign="top">p4.port</td>
+    <td valign="top">port</td>
+    <td valign="top">P4PORT</td>
+    <td valign="top">The p4d server and port to connect to</td>
+    <td valign="top">perforce:1666</td>
+  </tr>
+  <tr>
+    <td valign="top">p4.client</td>
+    <td valign="top">client</td>
+    <td valign="top">P4CLIENT</td>
+    <td valign="top">The p4 client spec to use</td>
+    <td valign="top">The logged in username</td>
+  </tr>
+  <tr>
+    <td valign="top">p4.user</td>
+    <td valign="top">user</td>
+    <td valign="top">P4USER</td>
+    <td valign="top">The p4 username</td>
+    <td valign="top">The logged in username</td>
+  </tr>
+<tr>
+    <td valign="top" align="center">--</td>
+    <td valign="top">view</td>
+    <td valign="top" align="center">--</td>
+    <td valign="top">The client, branch or label view to operate upon. See the p4 user guide for more info.</td>
+    <td valign="top">//...</td>
+  </tr>
+
+</table>
+<p> Your local installation of Perforce may require other settings (e.g.
+P4PASSWD, P4CONFIG). Many of these settings can be set using the globalopts
+attribute (described below), but not all. If a setting cannot be set
+by the command-line options, then it can only be set outside of Ant as an 
+environment variable.
+</p>
+<p>
+Additionally, you may also specify the following attributes:
+</p>
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td valign="top"><b>Attribute</b></td>
+  <td valign="top"><b>Description</b></td>
+  <td align="center" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Specifies whether to stop the build
+     (<code>true</code>|<code>yes</code>|<code>on</code>)
+     or keep going (<code>false</code>|<code>no</code>|<code>off</code>)
+     if an error is returned from the p4 command.</td>
+    <td valign="top">No; defaults to true.</td>
+  </tr>
+  <tr>
+      <td valign="top">globalopts<br></td>
+      <td valign="top">Specifies global options for perforce to use while
+      executing the task. These properties should be concatenated into one
+      string,<br>
+      such as "-P <i>password</i> -C EUCJIS". Use the command-line option
+      syntax, NOT the environment variable names. See the<br>
+      Perforce Command Reference for details.</td>
+      <td valign="top">No<br></td>
+  </tr>
+</table>
+</p>
+
+<h3>Examples</h3>
+<p>Setting in the environment:-</p>
+<p>
+(Unix csh)</p>
+<pre>setenv P4PORT myperforcebox:1666</pre>
+<p>(Unix sh et al)</p>
+<pre>P4USER=myp4userid; export P4USER</pre>
+<p>Using build properties:-</p>
+<pre>&lt;property name=&quot;p4.client&quot; value=&quot;nightlybuild&quot;/&gt;</pre>
+<p>Using task attributes:-</p>
+<pre>
+&lt;p4Whatever
+	port=&quot;myserver:1666&quot;
+	client=&quot;smoketest&quot;
+	user=&quot;smoketestdude&quot;
+	.
+	.
+	.
+/&gt;
+</pre>
+
+<p>
+For more information regarding the underlying 'p4' commands you are referred to the Perforce Command Reference
+available from the <a href="http://www.perforce.com/" target="_top">Perforce website</a>.
+</p>
+
+
+<hr>
+<h2>Task Descriptions</h2>
+<h2><a name="p4sync">P4Sync</a></h2>
+<h3>Description:</h3>
+<p>Synchronize the current workspace with the depot.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">force a refresh of files, if this attribute has
+    been set.</td>
+    <td valign="top" align="center">no - if omitted, it will be off,
+    otherwise a refresh will be forced.</td>
+  </tr>
+<tr>
+    <td valign="top">label</td>
+    <td valign="top">sync client to label</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4sync label=&quot;nightlybuild-0.0123&quot; force=&quot;foo&quot;/&gt;
+&lt;p4sync view=&quot;//depot/projects/projectfoo/main/src/...&quot;/&gt;
+</pre>
+<hr>
+
+
+
+<h2><a name="p4change">P4Change</a></h2>
+<h3>Description:</h3>
+<p>Request a new changelist from the Perforce server. 
+This task sets the ${p4.change} property which can then be passed to <A HREF="#p4submit">P4Submit</A>,
+<A HREF="#p4edit">P4Edit</A>, or <a HREF="#p4add">P4Add</A>, or <a HREF="#p4delete">P4Delete</A>,
+then to <A HREF="#p4submit">P4Submit</A>.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">Description for ChangeList. If none specified, it will
+                     default to "AutoSubmit By Ant"</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4change description="Change Build Number in Script"&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4edit">P4Edit</a></h2>
+<h3>Description:</h3>
+<p>Open file(s) for edit. P4Change should be used to obtain a new changelist for P4Edit as,
+although P4Edit can open files to the default change,  P4Submit cannot yet submit it.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">The filespec to request to edit</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">An existing changelist number to assign files to.</td>
+    <td valign="top" align="center">No, but see above.</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+<pre>
+&lt;p4edit
+    view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4submit">P4Submit</a></h2>
+<h3>Description:</h3>
+<p>Submit a changelist, usually obtained from P4Change.
+<p>P4Submit will also change the value of the property p4.change if the change list is renamed by the Perforce server.
+<p>P4Submit will set a property p4.needsresolve to 1 if the change could not be submitted due to files needing resolving.
+<p>Files will need resolve if at the time of checking in, the revision that was checked out to do the current edit
+is not the latest any more.
+<p>If no files need resolve, the p4.needsresolve will be set to 0.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">The changelist number to submit</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">changeproperty</td>
+    <td valign="top">Name of a property to which the new change number
+    will be assigned if the Perforce server renumbers the change<br>
+    Since ant 1.6.1</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">needsresolveproperty</td>
+    <td valign="top">Name of property which will be set to <code>true</code>
+    if the submit requires a resolve<br>
+    Since ant 1.6.1</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4submit change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4have">P4Have</a></h2>
+<h3>Description:</h3>
+<p>List handy file info reflecting the current client contents.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">None</td>
+    <td valign="top" align="center">--</td>
+    <td valign="top" align="center">--</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4have/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4label">P4Label</a></h2>
+<h3>Description:</h3>
+<p>Create a new label and set contents to reflect current client file revisions.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the label</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">client view to use for label<br>
+    The view can contain multiple lines separated by ; or :</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">desc</td>
+    <td valign="top">Label Description</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">lock</td>
+    <td valign="top">Lock the label once created.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;p4label
+	name=&quot;NightlyBuild:${DSTAMP}:${TSTAMP}&quot; 
+	desc=&quot;Auto Nightly Build&quot;
+	lock=&quot;locked&quot;
+	view=&quot;//firstdepot/...;//secondepot/foo/bar/...&quot;
+/&gt;
+</pre>
+<hr>
+
+
+<h2><a name="p4labelsync">P4Labelsync</a></h2>
+<h3>Description:</h3>
+<p>Syncs an existing label against the current workspace or against specified revisions.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Perforce command line flag</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the label</td>
+    <td valign="center" align="center">Yes</td>
+    <td valign="top" align="center">-l labelname</td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">
+    list of files or revision specs separated by : or ;<br>
+    in the absence of this attribute, the labelsync will be done against the current Perforce client or the value of the p4client attribute or the value of the p4.client property or the value of the environment variable P4CLIENT</td>
+    <td valign="center" align="center">No</td>
+    <td valign="center" align="center">file[revRange] ... </td>
+  </tr>
+  <tr>
+    <td valign="top">simulationmode</td>
+    <td valign="top">Displays which effect the operation would have on the label but do not actually do it</td>
+    <td valign="center" align="center">No</td>
+    <td valign="top" align="center">-n</td>
+  </tr>
+  <tr>
+    <td valign="top">add</td>
+    <td valign="top">If set to true, preserve files which exist in the label, but not in the current view</td>
+    <td valign="center" align="center">No</td>
+    <td valign="top" align="center">-a</td>
+  </tr>
+  <tr>
+    <td valign="top">delete</td>
+    <td valign="top">If set to true, remove from the label the files mentioned in the view attribute</td>
+    <td valign="center" align="center">No</td>
+    <td valign="top" align="center">-d</td>
+  </tr>
+
+
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;
+p4labelsync
+name=&quot;current_release&quot;
+view="//depot/...#head;//depot2/file1#25"
+add=&quot;true&quot;
+/&gt;
+</pre>
+This example will add into the label called <i>current_release</i> the current head revision of all the files located under <i>//depot</i>
+and the revision 25 of the file <i>//depot2/file1</i>.
+<pre>
+&lt;
+p4labelsync
+name=&quot;current_release&quot;
+p4client=&quot;myclient&quot;
+/&gt;
+</pre>
+This example will update the label called <i>current_release</i> so that it reflects the Perforce client <i>myclient</i>.<br>
+Files present in the label before the sync and not present currently in the client will be removed from the label, because the add attribute is not set.
+<pre>
+&lt;
+p4labelsync
+name=&quot;current_release&quot;
+/&gt;
+</pre>
+This example will update the label called <i>current_release</i> so that it reflects the current default client for the ant Perforce tasks.<br>
+The default client is by order of priority :
+<ul>
+<li>
+the value of the p4.client property if set in the project
+</li>
+<li>
+the value of the P4CLIENT environment variable
+</li>
+<li>
+the default Perforce client from the Windows registry under Windows operating systems
+</li>
+</ul>
+Files present in the label before the sync and not present currently in the client will be removed from the label, because the add attribute is not set.
+<hr>
+
+
+<h2><a name="p4counter">P4Counter</a></h2>
+<h3>Description:</h3>
+<p>
+Obtain or set the value of a counter. When used in its base form
+(where only the counter name is provided), the counter value will be
+printed to the output stream. When the value is provided, the counter
+will be set to the value provided. When a property name is provided,
+the property will be filled with the value of the counter. You may
+not specify to both get and set the value of the counter in the same
+Task.
+</p>
+<P>
+The user performing this task must have Perforce &quot;review&quot; permissions
+as defined by Perforce protections in order for this task to succeed.
+</P>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the counter</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The new value for the counter</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The property to be set with the value of the counter</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+Print the value of the counter named &quot;last-clean-build&quot; to the output stream:
+<pre>
+&lt;p4counter name=&quot;last-clean-build&quot;/&gt;
+</PRE>
+Set the value of the counter based on the value of the &quot;TSTAMP&quot; property:
+<PRE>
+&lt;p4counter name=&quot;last-clean-build&quot; value=&quot;${TSTAMP}&quot;/&gt;
+</PRE>
+Set the value of the &quot;p4.last.clean.build&quot; property to the current
+value of the &quot;last-clean-build&quot; counter:
+<PRE>
+&lt;p4counter name=&quot;last-clean-build&quot; property=&quot;p4.last.clean.build&quot;/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4reopen">P4Reopen</a></h2>
+<h3>Description:</h3>
+<p>
+Move (or reopen in Perforce speak) checkout files between changelists.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">tochange</td>
+    <td valign="top">The changelist to move files to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+Move all open files to the default changelist
+<pre>
+&lt;p4reopen view=&quot;//...&quot; tochange=&quot;default&quot;/&gt;
+</PRE>
+Create a new changelist then reopen into it, any files from the view //projects/foo/main/...
+<PRE>
+&lt;p4change description="Move files out of the way"/&gt;
+&lt;p4reopen view=&quot;//projects/foo/main/...&quot; tochange=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+<h2><a name="p4revert">P4Revert</a></h2>
+<h3>Description:</h3>
+<p>
+Reverts files.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">The changelist to revert.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">revertOnlyUnchanged</td>
+    <td valign="top">Revert only unchanged files (p4 revert -a)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  
+</table>
+
+<h3>Examples</h3>
+Revert everything!
+<pre>
+&lt;p4revert view=&quot;//...&quot;/&gt;
+</PRE>
+Revert any unchanged files in the default change
+<PRE>
+&lt;p4revert change="default" revertonlyunchanged=&quot;true&quot;/&gt;
+</pre>
+<hr>
+
+<h2><a name="p4add">P4Add</a></h2>
+<h3>Description:</h3>
+<p>
+Adds files specified in nested fileset children.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">commandlength</td>
+    <td valign="top">A positive integer specifying the maximum length
+        of the commandline when calling Perforce to add the files. 
+        Defaults to 450, higher values mean faster execution,
+        but also possible failures.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">changelist</td>
+    <td valign="top">If specified the open files are associated with the
+specified pending changelist number; otherwise the open files are
+associated with the default changelist.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  
+</table>
+
+<h3>Examples</h3>
+Require a changelist, add all java files starting from a directory,
+and submit
+
+<pre>
+&lt;p4change/&gt;
+&lt;p4add commandlength=&quot;20000&quot; changelist=&quot;${p4.change}&quot;&gt;
+    &lt;fileset dir=&quot;../dir/src/&quot; includes=&quot;**/*.java&quot;/&gt;
+&lt;p4add&gt;
+&lt;p4submit change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+<h2><a name="p4fstat">P4Fstat</a></h2>
+<h3>Description:</h3>
+<p>
+Lists files under Perforce control and files not under Perforce control in one or several filesets
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">showfilter</td>
+    <td valign="top">should be one of
+      <table border="1">
+        <tr><td>value</td><td>description</td></tr>
+        <tr><td>&quot;all&quot;</td><td>list all files, first the ones which are under Perforce control, then the others</td></tr>
+        <tr><td>&quot;existing&quot;</td><td>list only files under Perforce control</td></tr>
+        <tr><td>&quot;non-existing&quot;</td><td>list only files which are not under Perforce control</td></tr></table>
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">fileset</td>
+    <td valign="top">one or several <a href="../CoreTypes/fileset.html">fileset(s)</a></td>
+    <td valign="top" align="center">yes (at least one fileset is needed)</td>
+  </tr>
+</table>
+Several nested filesets can be used with P4Fstat, one should be there at least.
+<h3>Examples</h3>
+will list all the files under C:\dev\gnu\depot, sorted by under Perforce or not under Perforce<br>
+<pre>
+&lt;project name=&quot;p4fstat&quot; default=&quot;p4fstat&quot; basedir=&quot;C:\dev\gnu&quot;&gt;
+    &lt;target name=&quot;p4fstat&quot; &gt;
+        &lt;p4fstat showfilter=&quot;all&quot;&gt;
+            &lt;fileset dir=&quot;depot&quot; includes=&quot;**/*&quot;/&gt;
+        &lt;/p4fstat&gt;
+    &lt;/target&gt;
+&lt;/project&gt;</p>
+</pre>
+
+
+
+
+<h2><a name="p4delete">P4Delete</a></h2>
+<h3>Description:</h3>
+<p>Open file(s) for delete. P4Change should be used to obtain a new changelist for P4Delete as,
+although P4Delete can open files to the default change,  P4Submit cannot yet submit it.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">The filespec to request to delete</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">An existing changelist number to assign files to.</td>
+    <td valign="top" align="center">No, but see above.</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+<pre>
+&lt;p4delete
+    view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+<h2><a name="p4integrate">P4Integrate</a></h2>
+<h3>Description:</h3>
+<p>Open file(s) for integrate. P4Change should be used to obtain a new changelist for P4Integrate as,
+although P4Integrate can open files to the default change,  P4Submit cannot yet submit it.
+</p>
+<h3>Parameters</h3>
+<p>If this task is used without using a branch definition, both fromfile and tofile must be supplied.
+If a branch definition is supplied, at least one of fromfile or tofile should be supplied.
+Both fromfile and tofile can be supplied together with a branch definition.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Perforce command line flag</b></td>
+  </tr>
+  <tr>
+    <td valign="top">fromfile</td>
+    <td valign="top">Original file or view</td>
+    <td valign="top" align="center">required if a branch is not specified</td>
+    <td valign="top" align="center"></td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">Target file or view.</td>
+    <td valign="top" align="center">required if a branch is not specified</td>
+    <td valign="top" align="center"></td>
+  </tr>
+  <tr>
+    <td valign="top">branch</td>
+    <td valign="top">Name of branch specification</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-b</td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">An existing changelist number to assign files to.</td>
+    <td valign="top" align="center">No, but see above.</td>
+    <td valign="top" align="center">-c</td>
+  </tr>
+  <tr>
+    <td valign="top">forceintegrate</td>
+    <td valign="top">Forces integration regardless of previous integration history (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-f</td>
+  </tr>
+  <tr>
+    <td valign="top">restoredeletedrevisions</td>
+    <td valign="top">Enables integration around deleted revisions (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-d</td>
+  </tr>
+  <tr>
+    <td valign="top">leavetargetrevision</td>
+    <td valign="top">Prevents target files from being synced to head revision before integration (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-h</td>
+  </tr>
+  <tr>
+    <td valign="top">enablebaselessmerges</td>
+    <td valign="top">Forces integration to existing target files which have no integration history relative to the source files (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-i</td>
+  </tr>
+  <tr>
+    <td valign="top">simulationmode</td>
+    <td valign="top">Displays which integrations are necessary but do not actually schedule them (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-n</td>
+  </tr>
+  <tr>
+    <td valign="top">reversebranchmappings</td>
+    <td valign="top">Reverses mappings in the branch view, with source and target files exchanging place (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-r</td>
+  </tr>
+  <tr>
+    <td valign="top">propagatesourcefiletype</td>
+    <td valign="top">Makes source file type propagate to existing target files (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-t</td>
+  </tr>
+  <tr>
+    <td valign="top">nocopytargetfiles</td>
+    <td valign="top">Prevents the physical delivery on disk of new target files (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-v</td>
+  </tr>
+</table>
+<br>
+(*) The following applies for a number of flags. The default is false. To set the flag, use  &quot;true&quot;
+
+<h3>Examples</h3>
+<pre>
+&lt;p4integrate
+    fromfile=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    tofile=&quot;//depot/projects/projectfoo/release/src/Blah.java...&quot;
+    change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+<h2><a name="p4resolve">P4Resolve</a></h2>
+<h3>Description:</h3>
+<p>Resolves files. You want to do this if :
+<ul>
+<li>
+there have been or there may be concurrent edits of the same file. For instance, you have begun to edit a file, and while you were working on it, somebody has submitted a new version  of the same file. When you first attempt to submit your file(s), you will get a message (property p4.needsresolve set).
+</li>
+<li>
+you have just been doing an integration to existing target files
+</li>
+</ul>
+P4Resolve does not use a change list number (it takes it from the files it is working on).
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Perforce command line flag</b></td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">The filespec to request to delete</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center"></td>
+   </tr>
+  <tr>
+    <td valign="top">resolvemode</td>
+    <td valign="top">Should have one of these values :
+      <ul>
+        <li>&quot;automatic&quot;</li>
+        <li>&quot;force&quot;</li>
+        <li>&quot;safe&quot;</li>
+        <li>&quot;theirs&quot;</li>
+        <li>&quot;yours&quot;</li>
+      </ul></td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">corresponds to one of -am -af -as -at -ay </td>
+  </tr>
+  <tr>
+    <td valign="top">redoall</td>
+    <td valign="top">allows previously resolved files to be resolved again (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-f</td>
+  </tr>
+  <tr>
+    <td valign="top">simulationmode</td>
+    <td valign="top">Lists the integrations which would be performed, without actually doing them. (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-n</td>
+  </tr>
+  <tr>
+    <td valign="top">forcetextmode</td>
+    <td valign="top">Attempts a textual merge, even for binary files (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-t</td>
+  </tr>
+  <tr>
+    <td valign="top">markersforall</td>
+    <td valign="top">Puts in markers for all changes, conflicting or not (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-v</td>
+  </tr>
+</table>
+<br>
+(*) The following applies for a number of flags. The default is false. To set the flag, use  &quot;true&quot;
+
+<h3>Examples</h3>
+<pre>
+&lt;p4resolve
+    view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    resolvemode=&quot;automatic&quot;/&gt;
+</pre>
+
+<h2><a name="changes">Change History</a></h2>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+    <td valign="top">Sept 2000</td>
+    <td valign="top" align="center">--</td>
+    <td valign="top">Internal Release within Rubus</td>
+</tr>
+
+<tr>
+    <td valign="top">Nov 2000</td>
+    <td valign="top">V1.0</td>
+    <td valign="top">Initial Release donated to ASF :-)</td>
+</tr>
+<tr>
+    <td valign="top">Jan 2001</td>
+    <td valign="top">V1.1</td>
+    <td valign="top">Fixed cross platform (NT/Unix) bug<br>
+    Refactored p4 output handling code<br>
+    Refactored exec'ing code</td>    
+</tr>
+<tr>
+    <td valign="top">Jan 2003</td>
+    <td valign="top">V1.2</td>
+    <td valign="top">Added globalopts to P4Base to allow 
+                     additional global options to be set.<br>
+                     Added p4fstat task</td>
+</tr>
+<tr>
+    <td valign="top">May 2003</td>
+    <td valign="top">V1.3</td>
+    <td valign="top">Added p4labelsync, p4resolve, p4integrate.<br>
+                     Changed p4submit (detection of changes of change numbers,
+                     and of failed submits due to resolution needed)</td>
+</tr>
+<tr>
+    <td valign="top">Jan 2004</td>
+    <td valign="top">ant 1.6.1</td>
+    <td valign="top">
+Changed p4submit, needsresolveproperty and changeproperty added</td>
+</tr>
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/propertyfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/propertyfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/propertyfile.html	(revision 14989)
@@ -0,0 +1,206 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PropertyFile Task</title>
+</head>
+
+<body>
+
+<h1>PropertyFile</h1>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Thomas Christen (<a href="mailto:chr@active.ch">chr@active.ch</a>)</li>
+  <li>Jeremy Mawson (<a href="mailto:jem@loftinspace.com.au">jem@loftinspace.com/au</a>)</li>
+</ul>
+
+<hr>
+<h2>Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#proptask">PropertyFile Task</a></li>
+  <li><a href="#entryElement">Entry Task</a></li>
+</ul>
+
+<hr>
+<h2><a name="introduction">Introduction</a></h2>
+<p>Ant provides an optional task for editing property files.  This is very useful
+when wanting to make unattended modifications to configuration files for application
+servers and applications.  Currently, the task maintains a working property file with
+the ability to add properties or make changes to existing ones.  However, any comments
+are lost.</p>
+
+<hr>
+<h2><a name="proptask">PropertyFile Task</a></h2>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+  <td width="12%" valign="top">file</td>
+  <td width="78%" valign="top">Location of the property file to be edited</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">comment</td>
+  <td width="78%" valign="top">Header for the file itself</td>
+  <td width="10%" valign="top">no</td>
+</tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4><a name="entryElement">Entry</a></h4>
+<p>Use nested <code>&lt;entry&gt;</code>
+elements to specify actual modifications to the property file itself.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">key</td>
+    <td valign="top">Name of the property name/value pair</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">Value to set (=), to add (+) or subtract (-)</td>
+    <td valign="top" align="center" rowspan="2">At least one must be specified</td>
+  </tr>
+  <tr>
+    <td valign="top">default</td>
+    <td valign="top">Initial value to set for a property if it is not
+                     already defined in the property file.<br>
+                     For type date, an additional keyword is allowed: &quot;now&quot;</td>
+    </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">Regard the value as : int, date or string (default)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">operation</td>
+    <td valign="top">&quot;+&quot; or &quot;=&quot; (default) for all datatypes<br>&quot;-&quot; (for date and int only).<br>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">For int and date type only. If present, Values will
+                     be parsed and formatted accordingly.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unit</td>
+    <td valign="top">The unit of the value to be applied to date +/- operations.
+                     Valid Values are:
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day (default)</li>
+                        <li>week</li>
+                        <li>month</li>
+                        <li>year</li>
+                     </ul>
+                     This only applies to date types using a +/- operation.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>The rules used when setting a property value are shown below.&nbsp; The
+operation occurs <b>after</b> these rules are considered.</p>
+
+<ul>
+  <li>If only value is specified, the property is set to it regardless of its
+  previous value.</li>
+  <li>If only default is specified and the property previously existed in the
+  property file, it is unchanged.</li>
+  <li>If only default is specified and the property did not exist in the
+  property file, the property is set to default.</li>
+  <li>If value and default are both specified and the property previously
+  existed in the property file, the property is set to value.</li>
+  <li>If value and default are both specified and the property did not exist in
+  the property file, the property is set to default.</li>
+</ul>
+<p>&nbsp;</p>
+
+<h3>Examples</h3>
+
+<p>The following changes the my.properties file.  Assume my.properties look like:</p>
+
+<pre># A comment
+akey=novalue</pre>
+
+<p>After running, the file would now look like
+</p>
+<pre>#Thu Nov 02 23:41:47 EST 2000
+akey=avalue
+adate=2000/11/02 23\:41
+anint=1
+formated.int=0014
+formated.date=028 17\:34
+</pre>
+<p>
+The slashes conform to the expectations of the Properties class.  The file will be stored in a manner so that each character is examined and escaped if necessary.  Note that the original comment is now lost.  Please keep this in mind when running this task against heavily commented properties files.  It may be best to have a commented version in the source tree, copy it to a deployment area, and then run the modifications on the copy.  Future versions of PropertyFile will hopefully eliminate this shortcoming.
+</p>
+
+<blockquote><pre>&lt;propertyfile
+    file=&quot;my.properties&quot;
+    comment=&quot;My properties&quot;&gt;
+  &lt;entry  key=&quot;akey&quot; value=&quot;avalue&quot;/&gt;
+  &lt;entry  key=&quot;adate&quot; type=&quot;date&quot; value=&quot;now&quot;/&gt;
+  &lt;entry  key=&quot;anint&quot; type=&quot;int&quot; operation=&quot;+&quot;/&gt;
+  &lt;entry  key=&quot;formated.int&quot; type=&quot;int&quot; default=&quot;0013&quot; operation=&quot;+&quot; pattern=&quot;0000&quot;/&gt;
+  &lt;entry  key=&quot;formated.date&quot; type=&quot;date&quot; value=&quot;now&quot; pattern=&quot;DDD HH:mm&quot;/&gt;
+&lt;/propertyfile&gt;
+</pre></blockquote>
+<p>
+To produce dates relative from today :</p>
+<blockquote><pre>&lt;propertyfile
+    file=&quot;my.properties&quot;
+    comment=&quot;My properties&quot;&gt;
+  &lt;entry  key=&quot;formated.date-1&quot;
+      type=&quot;date&quot; default=&quot;now&quot; pattern=&quot;DDD&quot;
+      operation=&quot;-&quot; value=&quot;1&quot;/&gt;
+  &lt;entry  key=&quot;formated.tomorrow&quot;
+      type=&quot;date&quot; default=&quot;now&quot; pattern=&quot;DDD&quot;
+      operation=&quot;+&quot; value=&quot;1&quot;/&gt;
+&lt;/propertyfile&gt;
+</pre></blockquote>
+
+<p>
+Concatenation of strings :</p>
+<blockquote><pre>&lt;propertyfile
+    file=&quot;my.properties&quot;
+    comment=&quot;My properties&quot;&gt;
+  &lt;entry  key=&quot;progress&quot; default=&quot;&quot; operation=&quot;+&quot; value=&quot;.&quot;/&gt;
+&lt;/propertyfile&gt;
+</pre></blockquote>
+<p>Each time called, a &quot;.&quot; will be appended to &quot;progress&quot;
+</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/pvcstask.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/pvcstask.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/pvcstask.html	(revision 14989)
@@ -0,0 +1,295 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PVCS task</title>
+</head>
+<body>
+
+<h1>
+Ant Pvcs Task User Manual</h1>
+
+<p><b>Note:</b>
+Before using this task, the user running ant must have access to the
+commands of PVCS (get and pcli) and must have access to the
+repository. Note that the way to specify the repository is platform
+dependent so use property to specify location of repository.
+</p>
+
+by
+<br><!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Thomas Christensen (<a href="mailto:tchristensen@nordija.com">tchristensen@nordija.com</a>)</li>
+  <li>Don Jeffery (<a href="mailto:donj@apogeenet.com">donj@apogeenet.com</a>)</li>
+  <li>Jon Dickinson (<a href="mailto:dickinson.j@ucles.org.uk">dickinson.j@ucles.org.uk</a>)</li>
+</ul>
+Version 1.1 - 2001/06/27<br>
+<p>Problems with UNC pathnames and the use of () in paths are fixed and an updateonly
+  argument introduced.</p>
+Version 1.0 - 2001/01/31<br>
+<p>Initial release.</p>
+<hr>
+<h2>
+Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#pvcs">Pvcs Task</a></li>
+</ul>
+<hr>
+
+<h2><a NAME="introduction">Introduction</a></h2>
+The pvcs task allows the user of ant to extract the latest edition
+of the source code from a PVCS repository. PVCS is a version control system
+developed by <a href="http://www.merant.com/products/pvcs">Merant</a>.
+<br>
+This version has been tested against PVCS version 6.5 and 6.6 under Windows and Solaris.
+
+<hr>
+<h2><a NAME="pvcs">Pvcs Task</a></h2>
+<h3>Description</h3>
+The pvcs task is set to point at a PVCS repository and optionally a project
+within that repository, and can from that specification get the latest
+version of the files contained by the repository.
+<h3>
+Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP WIDTH="12%"><b>Attribute</b></td>
+
+<td VALIGN=TOP WIDTH="78%"><b>Description</b></td>
+
+<td VALIGN=TOP WIDTH="10%"><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">repository</td>
+
+<td VALIGN=TOP WIDTH="78%">The location of the repository (see your PVCS
+manuals)</td>
+
+<td VALIGN=TOP WIDTH="10%">Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">pvcsproject</td>
+
+<td VALIGN=TOP WIDTH="78%">The project within the PVCS repository to extract
+files from (&quot;/&quot; is root project and that is default if this attribute isn't
+specified)</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">label</td>
+
+<td VALIGN=TOP WIDTH="78%">Only files marked with this label are extracted.</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">promotiongroup</td>
+
+<td VALIGN=TOP WIDTH="78%">Only files within this promotion group are extracted. Using
+both the <i>label</i> and the <i>promotiongroup</i> tag will cause the files in the
+promotion group and with that label to be extracted.
+</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">config</td>
+
+<td VALIGN=TOP WIDTH="78%">path of a non default .cfg file.
+Can be given absolute or relative to ant's base directory.
+</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">force</td>
+
+<td VALIGN=TOP WIDTH="78%">If set to <i>yes</i> all files that exists and are writable are overwritten. Default <i>no</i> causes the files that are writable to be ignored. This stops the PVCS command <i>get</i> to stop asking questions!</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">workspace</td>
+
+<td VALIGN=TOP WIDTH="78%">By specifying a workspace, the files are extracted to that location. A PVCS workspace is a
+name for a location of the workfiles and isn't as such the location itself. You define the location for a workspace
+using the PVCS GUI clients. If this isn't specified the default workspace for the current user is used.</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">pvcsbin</td>
+
+<td VALIGN=TOP WIDTH="78%">On some systems the PVCS executables <i>pcli</i>
+and <i>get</i> are not found in the PATH. In such cases this attribute
+should be set to the bin directory of the PVCS installation containing
+the executables mentioned before. If this attribute isn't specified the
+tag expects the executables to be found using the PATH environment variable.</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+    <tr>
+      <td VALIGN=TOP WIDTH="12%">ignorereturncode</td>
+      <td VALIGN=TOP WIDTH="78%">If set to <i>true</i> the return value from executing
+        the pvcs commands are ignored.</td>
+      <td VALIGN=TOP WIDTH="10%">No</td>
+    </tr>
+    <tr>
+      <td VALIGN=TOP WIDTH="12%">updateonly</td>
+      <td VALIGN=TOP WIDTH="78%">If set to <i>true</i> files are gotten only if
+        newer than existing local files.</td>
+      <td VALIGN=TOP WIDTH="10%">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">filenameformat</td>
+      <td valign="TOP">The format of your folder names in a
+          format suitable for <code>java.text.MessageFormat</code>.
+          Defaults to <code>{0}-arc({1})</code>.  Repositories where
+          the archive extension is not  <code>-arc</code> should set
+          this.</td>
+      <td valign="TOP">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">linestart</td>
+        <td valign="TOP">Used to parse the output of the pcli
+          command. It defaults to <code>&quot;P:</code>.  The parser already
+          knows about / and \\, this property is useful in cases where the
+          repository is accessed on a Windows platform via a drive letter
+          mapping.</td>
+      <td valign="TOP">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">revision</td>
+      <td valign="TOP">Retrieve the specified revision.</td>
+      <td valign="TOP">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">userid</td>
+      <td valign="TOP">Use the specified userid.</td>
+      <td valign="TOP">No</td>
+    </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+
+<h3>pvcsproject element</h3>
+<p><code>pvcs</code> supports a nested
+<code>&lt;pvcsproject&gt;</code> element, that represents a project
+within the PVCS repository to extract files from.  By nesting multiple
+<code>&lt;pvcsproject&gt;</code> elements under the
+<code>&lt;pvcs&gt;</code> task, multiple projects can be
+specified.</p>
+
+<h3>Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP WIDTH="12%"><b>Attribute</b></td>
+
+<td VALIGN=TOP WIDTH="78%"><b>Description</b></td>
+
+<td VALIGN=TOP WIDTH="10%"><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">name</td>
+
+<td VALIGN=TOP WIDTH="78%">The name of the pvcs project</td>
+
+<td VALIGN=TOP WIDTH="10%">Yes</td>
+</tr>
+</table>
+
+<h3>Examples</h3>
+The following set-up extracts the latest version of the files in the pvcs repository.
+<pre>
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Get the latest version                                              --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name=&quot;getlatest&quot;&gt;
+    &lt;pvcs repository=&quot;/mnt/pvcs&quot; pvcsproject=&quot;/myprj&quot;/&gt;
+  &lt;/target&gt;</ul>
+</pre>
+<p>Now run:</p>
+<code>ant getlatest</code>
+<p>This will cause the following output to appear:</p>
+<pre>
+  getlatest:
+  [pvcs] PVCS Version Manager (VMGUI) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT. All rights reserved.
+  [pvcs] PVCS Version Manager (get) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT. All rights reserved.
+  [pvcs] c:\myws\myprj\main.java &lt;- C:\mypvcs\archives\myprj\main.java-arc
+  [pvcs] rev 1.1
+  [pvcs] c:\myws\myprj\apache\tool.java &lt;- C:\mypvcs\archives\myprj\apache\tools.java-arc
+  [pvcs] rev 1.5
+
+  BUILD SUCCESSFUL
+
+  Total time: 19 seconds</pre>
+
+This next example extracts the latest version of the files in the pvcs
+repository from two projects using nested <code>&lt;pvcsproject&gt;</code> elements.
+<pre>
+  &lt;!-- ===================================================================--&gt;
+  &lt;!-- Get latest from myprj and myprj2                                   --&gt;
+  &lt;!-- ===================================================================--&gt;
+  &lt;target name=&quot;getlatest2&quot;&gt;
+    &lt;pvcs repository=&quot;/mnt/pvcs&quot;&gt;
+      &lt;pvcsproject name=&quot;/myprj&quot;/&gt;
+      &lt;pvcsproject name=&quot;/myprj2&quot;/&gt;
+    &lt;/pvcs&gt;
+  &lt;/target&gt;</ul>
+</pre>
+<p>Now run:</p>
+<code>ant getlatest2</code>
+<p>This will cause the following output to appear:</p>
+<pre>
+  getlatest2:
+  [pvcs] PVCS Version Manager (VMGUI) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT.  All rights reserved.
+  [pvcs] PVCS Version Manager (get) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT.  All rights reserved.
+  [pvcs] c:\myws\myprj\main.java &lt;- C:\mypvcs\archives\myprj\main.java-arc
+  [pvcs] rev 1.1
+  [pvcs] c:\myws\myprj\apache\tool.java &lt;- C:\mypvcs\archives\myprj\apache\tool.java-arc
+  [pvcs] rev 1.5
+  [pvcs] c:\myws\myprj2\apache\tool2.java &lt;- C:\mypvcs\archives\myprj2\apache\tool2.java-arc
+  [pvcs] rev 1.2
+
+  BUILD SUCCESSFUL
+
+  Total time: 22 seconds</pre>
+
+<hr WIDTH="100%">
+<p>PVCS is a registered trademark of MERANT.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/renameextensions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/renameextensions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/renameextensions.html	(revision 14989)
@@ -0,0 +1,123 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>RenameExtensions Task</title>
+</head>
+
+<body>
+
+<h2><a name="renameexts">RenameExtensions</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the <a href="../CoreTasks/move.html">move</a>
+task with a <a href="../CoreTypes/mapper.html#glob-mapper">glob mapper</a> instead.</i></p>
+<h3>Description</h3>
+<p>Renames files in the <code>srcDir</code> directory ending with the
+<code>fromExtension</code> string so that they end with the
+<code>toExtension</code> string. Files are only replaced if
+<code>replace</code> is true
+</p>
+<p>See the section on
+<a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.
+This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcDir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fromExtention</td>
+    <td valign="top">The string that files must end in to be renamed</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">Whether the file being renamed to should be
+      replaced if it already exists</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">The starting directory for files to search in</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">toExtension</td>
+    <td valign="top">The string that renamed files will end with on
+      completion</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;renameext srcDir=&quot;/source/project1&quot;
+              includes=&quot;**&quot;
+              excludes=&quot;**/samples/*&quot;
+              fromExtension=&quot;.java.keep&quot;
+              toExtension=&quot;.java&quot;
+              replace=&quot;true&quot;/&gt;
+</code>
+  </p>
+</blockquote>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/replaceregexp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/replaceregexp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/replaceregexp.html	(revision 14989)
@@ -0,0 +1,157 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ReplaceRegExp Task</title>
+</head>
+<body>
+
+<h2><a name="replaceregexp">ReplaceRegExp</a></h2>
+<h3>Description</h3>
+<p>ReplaceRegExp is a directory based task for replacing the
+occurrence of a given regular expression with a substitution pattern
+in a selected file or set of files.</p>
+
+<p>The output file is only written if it differs from the existing
+file.  This prevents spurious rebuilds based on unchanged files which
+have been regenerated by this task.</p> 
+
+<p>Similar to <a href="../CoreTypes/mapper.html#regexp-mapper">regexp
+type mappers</a> this task needs a supporting regular expression
+library and an implementation of
+<code>org.apache.tools.ant.util.regexp.Regexp</code>.
+See details in the documentation of the <a href="../CoreTypes/regexp.html#implementation">Regexp Type</a>. </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">file for which the regular expression should be replaced.</td>
+    <td align="center">Yes if no nested <code>&lt;fileset&gt;</code> is used</td>
+  </tr>
+  <tr>
+    <td valign="top">match</td>
+    <td valign="top">The regular expression pattern to match in the file(s)</td>
+    <td align="center">Yes, if no nested <code>&lt;regexp&gt;</code> is used</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">The substitution pattern to place in the file(s) in place
+                     of the regular expression.</td>
+    <td align="center">Yes, if no nested <code>&lt;substitution&gt;</code> is used</td>
+  </tr>
+  <tr>
+    <td valign="top">flags</td>
+    <td valign="top">The flags to use when matching the regular expression.  For more
+                     information, consult the Perl5 syntax<br>
+                     g : Global replacement.  Replace all occurrences found<br>
+                     i : Case Insensitive.  Do not consider case in the match<br>
+                     m : Multiline.  Treat the string as multiple lines of input, using "^" and "$" as the start or end of any line, respectively, rather than start or end of string.<br>
+                     s : Singleline.  Treat the string as a single line of input, using "." to match any character, including a newline, which normally, it would not match.<br>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">byline</td>
+    <td valign="top">Process the file(s) one line at a time, executing the replacement
+                     on one line at a time (<i>true/false</i>).  This is useful if you
+                     want to only replace the first occurrence of a regular expression on
+                     each line, which is not easy to do when processing the file as a whole.
+                     Defaults to <i>false</i>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the file. <em>since Ant 1.6</em></td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;replaceregexp file=&quot;${src}/build.properties&quot;
+                         match=&quot;OldProperty=(.*)&quot;
+                         replace=&quot;NewProperty=\1&quot;
+                         byline=&quot;true&quot;/&gt;
+</pre>
+<p>replaces occurrences of the property name &quot;OldProperty&quot;
+ with &quot;NewProperty&quot; in a properties file, preserving the existing
+value, in the file <code>${src}/build.properties</code></p>
+
+<h3>Parameters specified as nested elements</h3>
+<p>This task supports a nested <a href="../CoreTypes/fileset.html">FileSet</a>
+   element.</p>
+<p>This task supports a nested <i><a href="../CoreTypes/regexp.html">Regexp</a></i> element to specify
+   the regular expression.  You can use this element to refer to a previously
+   defined regular expression datatype instance.</p>
+<blockquote>
+     &lt;regexp id="id" pattern="alpha(.+)beta"/&gt;<br>
+     &lt;regexp refid="id"/&gt;
+</blockquote>
+<p>This task supports a nested <i>Substitution</i> element to specify
+   the substitution pattern.  You can use this element to refer to a previously
+   defined substitution pattern datatype instance.</p>
+<blockquote>
+     &lt;substitution id="id" expression="beta\1alpha"/&gt;<br>
+     &lt;substitution refid="id"/&gt;
+</blockquote>
+<h3>Examples</h3>
+<blockquote>
+  <pre>
+&lt;replaceregexp byline=&quot;true&quot;&gt;
+  &lt;regexp pattern=&quot;OldProperty=(.*)&quot;/&gt;
+  &lt;substitution expression=&quot;NewProperty=\1&quot;/&gt;
+  &lt;fileset dir=&quot;.&quot;&gt;
+   &lt;includes=&quot;*.properties&quot;/&gt;
+  &lt;/fileset&gt;
+ &lt;/replaceregexp&gt;
+</pre></blockquote>
+<p>replaces occurrences of the property name &quot;OldProperty&quot;
+ with &quot;NewProperty&quot; in a properties file, preserving the existing
+value, in all files ending in <code>.properties</code> in the current directory</p>
+
+<blockquote>
+<pre>&lt;replaceregexp match="\s+" replace=" " flags="g" byline="true"&gt;
+    &lt;fileset dir="${html.dir}" includes="**/*.html"/&gt;
+&lt;/replaceregexp&gt;
+</pre></blockquote>
+<p>replaces all whitespaces (blanks, tabs, etc) by one blank remaining the
+line separator. So with input
+
+<blockquote>
+<pre>
+&lt;html&gt;    &lt;body&gt;
+&lt;&lt;TAB&gt;&gt;&lt;h1&gt;    T E S T   &lt;/h1&gt;  &lt;&lt;TAB&gt;&gt;    
+&lt;&lt;TAB&gt;&gt; &lt;/body&gt;&lt;/html&gt;
+</pre></blockquote>
+would converted to
+<pre>
+&lt;html&gt; &lt;body&gt;
+ &lt;h1&gt; T E S T &lt;/h1&gt; &lt;/body&gt;&lt;/html&gt;
+</pre>
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/rexec.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/rexec.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/rexec.html	(revision 14989)
@@ -0,0 +1,116 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>RExec Task</title>
+</head>
+
+<body>
+
+<h2><a name="rexec">RExec</a></h2>
+<h3>Description</h3>
+Task to automate a remote rexec session. Just like the Telnet task,
+it uses nested <tt>&lt;read&gt;</tt> to indicate strings to wait for, and
+<tt>&lt;write&gt;</tt> tags to specify text to send to the remote process.
+
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+
+<p>You can specify the commands you want to execute as nested elements
+or via the command attribute, we recommend you use the command
+attribute.  If you use the command attribute, you must use the
+username and password attributes as well.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>userid</td>
+     <td>the login id to use on the remote server.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>password</td>
+     <td>the login password to use on the remote server.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>server</td>
+     <td>the address of the remote rexec server.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>command</td>
+     <td>the command to execute on the remote server.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>port</td>
+     <td>the port number of the remote rexec server. Defaults to port 512 in BSD Unix systems.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>timeout</td>
+     <td>set a default timeout to wait for a response. Specified in seconds. Default is no timeout.</td>
+     <td>No</td>
+  </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+The input to send to the server, and responses to wait for, are
+described as nested elements.  
+
+<h4>read</h4>
+
+<p>declare (as a text child of this element) a string to wait for.
+The element supports the timeout attribute, which overrides any
+timeout specified for the task as a whole. It also has a <tt>string</tt>
+attribute, which is an alternative to specifying the string as 
+a text element.
+</p>
+<i>It is not necessary to declare a closing <code>&lt;read&gt;</code> element like for the Telnet task. The connection is not broken until the command has completed and
+the input stream (output of the command) is terminated.
+</i>
+<h4>write</h4>
+
+<p>describes the text to send to the server. The <tt>echo</tt> boolean
+attribute controls whether the string is echoed to the local log; 
+this is "true" by default
+</p>
+<h3>Example</h3>
+A simple example of connecting to a server and running a command.
+
+<blockquote><pre>
+&lt;rexec userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; command=&quot;ls&quot;/&gt;
+</pre></blockquote>
+
+The task can be used with other ports as well:
+<blockquote><pre>
+&lt;rexec port=&quot;80&quot; userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; command=&quot;ls&quot;/&gt;
+</pre></blockquote>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/rpm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/rpm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/rpm.html	(revision 14989)
@@ -0,0 +1,109 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+
+<html>
+
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Rpm Task</title>
+</head>
+
+<body>
+
+<h2><a name="rpm">Rpm</a></h2>
+<h3>Description</h3>
+<p>
+  A basic task for invoking the rpm executable to build a Linux installation
+  file. The task currently only works on Linux or other Unix platforms
+  with rpm support.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">specFile</td>
+    <td valign="top">The name of the spec file to be used.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">topDir</td>
+    <td valign="top">
+      This is the directory which will have the expected
+      subdirectories, SPECS, SOURCES, BUILD, SRPMS.  If this isn't specified,
+      the baseDir value is used
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cleanBuildDir</td>
+    <td valign="top">This will remove the generated files in the BUILD
+directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">removeSpec</td>
+    <td valign="top">This will remove the spec file from SPECS</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">removeSource</td>
+    <td valign="top">Flag (optional, default=false) 
+        to remove the sources after the build.
+        See the the <tt>--rmsource</tt>  option of rpmbuild.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">rpmBuildCommand</td>
+    <td valign="top">The executable to use for building the RPM.
+      Defaults to <code>rpmbuild</code> if it can be found or
+      <code>rpm</code> otherwise.  Set this if you don't have either on
+      your PATH or want to use a different executable.  <em>Since Ant
+      1.6</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">Very similar idea to the cvs task.  the default is "-bb"</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">Suppress output. Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output/error</td>
+    <td valign="top">Where standard output and error go</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failOnError</td>
+    <td valign="top">Stop the buildprocess if the RPM build command exits with 
+       a non-zero retuncode. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/schemavalidate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/schemavalidate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/schemavalidate.html	(revision 14989)
@@ -0,0 +1,283 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SchemaValidate Task</title>
+</head>
+
+<body>
+
+<h2><a name="schemavalidate">SchemaValidate</a></h2>
+<h3>Description</h3>
+
+<p>This task validates XML files described by an XML Schema.
+The task extends the XmlValidate task with XSD-specific features.</p>
+<ol>
+<li>The parser is created validating and namespace aware
+</li>
+<li>Validation is turned on.</li>
+<li>Schema validation is turned on.</li>
+<li>Any no-namespace schema URL or file supplied is used as the no-namespace schema
+<li>All nested schema declarations are turned into the list of namespace-url
+bindings for schema lookup.
+</ol>
+
+Note that nested catalogs are still used for lookup of the URLs given as the
+sources of schema documents, so you can still delegate lookup to a catalog, you
+just need to list all schema URIs and their URL equivalents.
+
+<p>This task supports the use of nested
+  <li><a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a> elements</li>
+  <li> <tt>&lt;schema&gt;</tt> elements, that bind a namespace URI to a URL or a
+  local filename.
+  <li><tt>&lt;dtd&gt;</tt> elements which are used to resolve DTDs and entities.</li>
+  <li><tt>&lt;attribute&gt;</tt> elements which are used to set features on the parser.
+      These can be any number of
+      <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a>
+      or other features that your parser may support.</li>
+  <li><tt>&lt;property&gt;</tt> elements, containing string properties
+</p>
+
+<p>
+The task only supports SAX2 or later parsers: it is an error to specify a SAX1
+parser. 
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the parser to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">where to find the parser class. 
+    Optionally can use an embedded <tt>&lt;classpath&gt;</tt> element.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">disableDTD</td>
+    <td valign="top">
+      Flag to disable DTD support. DTD support is needed to 
+      validate XSD files themselves, amongst others.
+    </td>
+    <td valign="top" align="center">No - default false</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">fails on a error if set to true (defaults to true).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file(s) you want to check. (optionally can use an embedded fileset)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fullchecking</td>
+    <td valign="top">
+      enable full schema checking. Slow but strict.
+    </td>
+    <td valign="top" align="center">No - default true</td>
+  </tr>
+  
+  <tr>
+    <td valign="top">lenient</td>
+    <td valign="top">
+      if true, only check the XML document is well formed
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noNamespaceFile</td>
+    <td valign="top">
+      filename of a no-namespace XSD file to provide the 
+      schema for no-namespace XML content.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noNamespaceURL</td>
+    <td valign="top">
+      URL of a no-namespace XSD file to provide the 
+      schema for no-namespace XML content.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">warn</td>
+    <td valign="top">log parser warn events.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+
+
+<h4>schema</h4>
+<p>
+Identify the name and location of a schema that may be used in validating
+the document(s).
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">namespace</td>
+    <td valign="top">URI of the schema namespace</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">URL of the schema</td>
+    <td align="center" valign="top">One of url or file is required</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">file of the schema</td>
+    <td align="center" valign="top">One of url or file is required</td>
+  </tr>
+</table>
+
+<h4>dtd</h4>
+<p>
+<tt>&lt;dtd&gt;</tt> is used to specify different locations for DTD resolution.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">Public ID of the DTD to resolve</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">Location of the DTD to use, which can be a file,
+    a resource, or a URL</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a>
+element is used to perform entity resolution.</p>
+<h4>attribute</h4>
+<p>The <tt>&lt;attribute&gt;</tt> element is used to set parser features.<br>
+Features usable with the xerces parser are defined here :
+ <a href="http://xml.apache.org/xerces-j/features.html">Setting features</a><br>
+
+SAX features are defined here:
+ <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a><br>
+ </p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The boolean value of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+<h4>property</h4>
+<p>The <tt>&lt;property&gt;</tt> element is used to set properties.
+These properties are defined here for the xerces XML parser implementation :
+ <a href="http://xml.apache.org/xerces-j/properties.html">XML Parser properties</a>
+Properties can be used to set the schema used to validate the XML file.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The string value of the property</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+
+<h3>Examples</h3>
+<pre>
+    &lt;schemavalidate
+      noNamespaceFile="document.xsd"
+      file="xml/endpiece.xml"&gt;
+    &lt;/schemavalidate&gt;
+</pre>
+Validate a document against an XML schema. The document does not declare
+any schema itself, which is why the <tt>noNamespaceFile</tt> is needed. 
+<pre>
+    &lt;presetdef name="validate-soap"&gt;
+      &lt;schemavalidate &gt;
+        &lt;schema namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing"
+          file="${soap.dir}/ws-addressing.xsd" /&gt;
+        &lt;schema namespace="http://www.w3.org/2003/05/soap-envelope"
+          file="${soap.dir}/soap12.xsd" /&gt;
+        &lt;schema namespace="http://schemas.xmlsoap.org/wsdl/"
+          file="${soap.dir}/wsdl.xsd" /&gt;
+        &lt;schema namespace="http://www.w3.org/2001/XMLSchema"
+          file="${soap.dir}/XMLSchema.xsd" /&gt;
+        &lt;/schemavalidate&gt;
+    &lt;/presetdef&gt;
+</pre>
+Declare a new preset task, <tt>&lt;validate-soap&gt;</tt>, that validates
+XSD and WSDL documents against the relevant specifications. 
+To validate XSD documents, you also need XMLSchema.dtd and datatypes.dtd in 
+the same directory as XMLSchema.xsd, or pointed to via the catalog. All
+these files can be fetched from <a href="http://www.w3.org/2001/XMLSchema">
+the W3C</a>. 
+<pre>
+    &lt;validate-soap file="xml/test.xsd"/&gt;
+</pre>
+Use the preset task defined above to validate an XML Schema document.
+<br>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/scp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/scp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/scp.html	(revision 14989)
@@ -0,0 +1,267 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SCP Task</title>
+</head>
+
+<body>
+
+<h2><a name="scp">SCP</a></h2>
+<h3>Description</h3>
+
+<p><em>since Ant 1.6</em></p>
+
+<p>Copies a file or FileSet to or from a (remote) machine running an SSH daemon.
+FileSet <i>only</i> works for copying files from the local machine to a
+remote machine.</p>
+
+<p><b>Note:</b> This task depends on external libraries not included
+in the Ant distribution.  See <a
+href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.  This task has been tested with jsch-0.1.2 and later.</p>
+
+<p>See also the <a href="scp.html">scp task</a></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to copy.  This can be a local path or a
+    remote path of the form <i>user[:password]@host:/directory/path</i>.
+    <i>:password</i> can be omitted if you use key based
+    authentication or specify the password attribute.  The way remote
+    path is recognized is whether it contains @ character or not. This
+    will not work if your localPath contains @ character.</td>
+    <td valign="top" align="center">Yes, unless a nested
+    <code>&lt;fileset&gt;</code> element is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">localFile</td>
+    <td valign="top">This is an alternative to the file attribute. But
+    this must always point to a local file. The reason this was added
+    was that when you give file attribute it is treated as remote if
+    it contains @ character. This character can exist also in local
+    paths.  <em>since Ant 1.6.2</em></td>
+    <td valign="top" align="center">Alternative to file attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">remoteFile</td>
+    <td valign="top">This is an alternative to the file attribute. But
+    this must always point to a remote file.  <em>since Ant 1.6.2</em></td>
+    <td valign="top" align="center">Alternative to file attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory to copy to.  This can be a local path
+    or a remote path of the form <i>user[:password]@host:/directory/path</i>.
+    <i>:password</i> can be omitted if you use key based
+    authentication or specify the password attribute.  The way remote
+    path is recognized is whether it contains @ character or not. This
+    will not work if your localPath contains @ character.</td>
+    <td valian="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">localTodir</td>
+    <td valign="top">This is an alternative to the todir
+    attribute. But this must always point to a local directory. The
+    reason this was added was that when you give todir attribute it is
+    treated as remote if it contains @ character. This character can
+    exist also in local paths.  <em>since Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">localTofile</td>
+    <td valign="top">Changes the file name to the given name while
+    receiving it, only useful if receiving a single file.  <em>since
+    Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">remoteTodir</td>
+    <td valign="top">This is an alternative to the todir
+    attribute. But this must always point to a remote directory.
+    <em>since Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">remoteTofile</td>
+    <td valign="top">Changes the file name to the given name while
+    sending it, only useful if sending a single file.  <em>since
+    Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">The port to connect to on the remote host.</td>
+    <td valian="top" align="center">No, defaults to 22.</td>
+  </tr>
+  <tr>
+    <td valign="top">trust</td>
+    <td valign="top">This trusts all unknown hosts if set to yes/true.<br>
+      <strong>Note</strong> If you set this to false (the default), the
+      host you connect to must be listed in your knownhosts file, this
+      also implies that the file exists.</td>
+    <td valian="top" align="center">No, defaults to No.</td>
+  </tr>
+  <tr>
+    <td valign="top">knownhosts</td>
+    <td valign="top">This sets the known hosts file to use to validate
+    the identity of the remote host.  This must be a SSH2 format file.
+    SSH1 format is not supported.</td>
+    <td valian="top" align="center">No, defaults to
+    ${user.home}/.ssh/known_hosts.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Whether to halt the build if the transfer fails.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+     <td valign="top">The password.</td>
+     <td valign="top" align="center">Not if you are using key based
+     authentication or the password has been given in the file or
+     todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">keyfile</td>
+     <td valign="top">Location of the file holding the private key.</td>
+     <td valign="top" align="center">Yes, if you are using key based
+     authentication.</td>
+  </tr>
+  <tr>
+    <td valign="top">passphrase</td>
+     <td valign="top">Passphrase for your private key.</td>
+     <td valign="top" align="center">Yes, if you are using key based
+     authentication.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Determines whether SCP outputs verbosely to the
+    user. Currently this means outputting dots/stars showing the
+    progress of a file transfer.  <em>since Ant 1.6.2</em></td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">sftp</td>
+    <td valign="top">Determines whether SCP uses the sftp protocol.
+    The sftp protocol is the file transfer protocol of SSH2.  It is
+    recommended that this be set to true if you are copying to/from a
+    server that doesn't support scp1. <em>since Ant 1.7</em></td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select
+sets of files to copy.
+ To use a fileset, the <code>todir</code> attribute must be set.</p>
+
+<h3>Examples</h3>
+<p><b>Copy a single local file to a remote machine</b></p>
+<pre>
+  &lt;scp file=&quot;myfile.txt&quot; todir=&quot;user:password@somehost:/home/chuck&quot;/&gt;
+</pre>
+
+<p><b>Copy a single local file to a remote machine with separate
+password attribute</b></p>
+<pre>
+  &lt;scp file=&quot;myfile.txt&quot; todir=&quot;user@somehost:/home/chuck&quot; password=&quot;password&quot;/&gt;
+</pre>
+
+<p><b>Copy a single local file to a remote machine using key base
+authentication.</b></p>
+<pre>
+  &lt;scp file=&quot;myfile.txt&quot;
+       todir=&quot;user@somehost:/home/chuck&quot; 
+       keyfile=&quot;${user.home}/.ssh/id_dsa&quot;
+       passphrase=&quot;my extremely secret passphrase&quot;
+  /&gt;
+</pre>
+
+<p><b>Copy a single remote file to a local directory</b></p>
+<pre>
+  &lt;scp file=&quot;user:password@somehost:/home/chuck/myfile.txt&quot; todir=&quot;../some/other/dir&quot;/&gt;
+</pre>
+
+<p><b>Copy a remote directory to a local directory</b></p>
+<pre>
+  &lt;scp file=&quot;user:password@somehost:/home/chuck/*&quot; todir=&quot;/home/sara&quot;/&gt;
+</pre>
+
+<p><b>Copy a local directory to a remote directory</b></p>
+<pre>
+  &lt;scp todir=&quot;user:password@somehost:/home/chuck/&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+  &lt;/scp&gt;
+</pre>
+<p><b>Copy a set of files to a directory</b></p>
+<pre>
+  &lt;scp todir=&quot;user:password@somehost:/home/chuck&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;&gt;
+      &lt;include name=&quot;**/*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/scp&gt;
+
+  &lt;scp todir=&quot;user:password@somehost:/home/chuck&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot; excludes=&quot;**/*.java&quot;/&gt;
+  &lt;/scp&gt;
+</pre>
+
+<p><strong>Security Note:</strong>  Hard coding passwords and/or usernames
+in scp task can be a serious security hole.  Consider using variable
+substitution and include the password on the command line.  For example:
+<p>
+<pre>
+    &lt;scp todir=&quot;${username}:${password}@host:/dir&quot; ...&gt;
+</pre>
+Invoking ant with the following command line:
+<pre>
+    ant -Dusername=me -Dpassword=mypassword target1 target2
+</pre>
+
+Is slightly better, but the username/password is exposed to all users on an Unix
+system (via the ps command). The best approach is to use the
+<code>&lt;input&gt;</code> task and/or retrieve the password from a (secured)
+.properties file.
+
+<p>
+
+<p><strong>Unix Note:</strong> File permissions are not retained when files
+are copied; they end up with the default <code>UMASK</code> permissions
+instead. This is caused by the lack of any means to query or set file
+permissions in the current Java runtimes. If you need a permission-
+preserving copy function, use <code>&lt;exec executable="scp" ... &gt;</code>
+instead.
+</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/script.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/script.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/script.html	(revision 14989)
@@ -0,0 +1,335 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us"></meta>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Script Task</title>
+</head>
+
+<body>
+
+<h2><a name="script">Script</a></h2>
+<h3>Description</h3>
+  <p>Execute a script in a
+    <a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+    or
+    <a href="https://scripting.dev.java.net">JSR 223</a>  supported language.
+  </p>
+  <p><b>Note:</b>
+    This task depends on external libraries not included in the Ant distribution.
+    See <a href="../install.html#librarydependencies">Library Dependencies</a>
+    for more information.
+  </p>
+  <p>
+    The task may use the BSF scripting manager or the JSR 223 manager that
+    is included in JDK6 and higher. This is controlled by the <code>manager</code>
+    attribute. The JSR 223 scripting manager is indicated by "javax".
+  </p>
+  <p>All items (tasks, targets, etc) of the running project are
+    accessible from the script, using either their <code>name</code> or
+    <code>id</code> attributes (as long as their names are considered
+    valid Java identifiers, that is).
+    This is controlled by the "setbeans" attribute of the task.
+    The name "project" is a pre-defined reference to the Project, which can be
+    used instead of the project name. The name "self" is a pre-defined reference to the actual
+    <code>&lt;script&gt;</code>-Task instance.<br>From these objects you have access to the Ant Java API, see the
+<a href="../api/index.html">JavaDoc</a> (especially for
+<a href="../api/org/apache/tools/ant/Project.html">Project</a> and
+<a href="../api/org/apache/tools/ant/taskdefs/optional/Script.html">Script</a>) for more information.</p>
+<p>If you are using JavaScript a good resource is <a target="_blank" href="http://www.mozilla.org/rhino/doc.html">
+http://www.mozilla.org/rhino/doc.html</a> as we are using their JavaScript interpreter.</p>
+<p>Scripts can do almost anything a task written in Java could do.</p>
+<p>Rhino provides a special construct - the <i>JavaAdapter</i>. With that you can
+create an object which implements several interfaces, extends classes and for which you
+can overwrite methods. Because this is an undocumented feature (yet), here is the link
+to an explanation: <a href="http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&frame=right&th=610d2db45c0756bd&seekm=391EEC3C.5236D929%40yahoo.com#link2">
+Groups@Google: "Rhino, enum.js, JavaAdapter?"</a> by Norris Boyd in the newsgroup
+<i>netscape.public.mozilla.jseng</i>.</p>
+
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">language</td>
+    <td valign="top">The programming language the script is written in.
+      Must be a supported Apache BSF or JSR 223 language</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manager</td>
+    <td valign="top">
+      <em>Since: Ant 1.7. </em>
+      The script engine manager to use. This can have
+      one of three values ("auto", "bsf" or "javax").
+      The default value is "auto".
+      <dl>
+        <li>"bsf" use the BSF scripting manager to run
+          the language.</li>
+        <li>"javax" use the <em>javax.scripting</em> manager
+          to run the language. (This will only work for JDK6 and higher).</li>
+        <li>"auto" use the BSF engine if it exists,
+          otherwise use the <em>javax.scripting</em> manager.</li>
+      </dl>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The location of the script as a file, if not inline</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">setbeans</td>
+    <td valign="top">
+      This attribute controls whether to set variables for
+      all properties, references and targets in the running script.
+      If this attribute is false, only the the "project" and "self" variables are set.
+      If this attribute is true all the variables are set. The default value of this
+      attribute is "true".  <em>Since Ant 1.7</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">
+      The classpath to pass into the script. <em>Since Ant 1.7</em>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+       <a href="../using.html#references">reference</a> to a path defined elsewhere.
+    <em>Since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+  <p><em>Since Ant 1.7</em></p>
+<p>
+  <code>Script</code>'s <code>classpath</code> attribute is a 
+  <a href="../using.html#path">path-like structure</a> and can also be set via a nested
+  <code>&lt;classpath&gt;</code> element.
+  <p>
+    If a classpath is set, it will be used as the current thread
+    context classloader, and
+    as the classloader given to the BSF manager. 
+    This means that it can be used to specify
+    the classpath containing the language implementation for BSF
+    or for JSR 223 managers.
+    This can be usefull if one wants
+    to keep ${user.home}/.ant/lib free of lots of scripting language
+    specific jar files.
+  </p>
+  <p>
+    <b>NB:</b> This classpath cannot (currently) be used to
+    specify the location of
+    the BSF jar file. Also, due to classloading issues, languages
+    that have engines in the BSF jar file cannot have the
+    implementation in the classpath element. This includes the
+    javascript, jython, netrexx and jacl languages.
+  </p>
+</p>
+<h3>Examples</h3>
+The following snippet shows use of five different languages:
+  <blockquote><pre>
+    &lt;property name="message" value="Hello world"/&gt;
+
+    &lt;script language="groovy"&gt;
+      println("message is " + message)
+    &lt;/script&gt;
+
+    &lt;script language="beanshell"&gt;
+      System.out.println("message is " + message);
+    &lt;/script&gt;
+
+    &lt;script language="judoscript"&gt;
+        println 'message is ', message
+    &lt;/script&gt;
+
+    &lt;script language="ruby"&gt;
+        print 'message is ', $message, "\n"
+    &lt;/script&gt;
+
+    &lt;script language="jython"&gt;
+print "message is %s" % message
+    &lt;/script&gt;
+</pre>
+  </blockquote>
+  <p>
+  Note that for the <i>jython</i> example, the script contents <b>must</b>
+  start on the first column.
+  </p>
+  <p>
+    Note also that for the <i>ruby</i> example, the names of the set variables are prefixed
+    by a '$'.
+  <p>
+    The following script shows a little more complicated jruby example:
+  </p>
+  <blockquote><pre>
+&lt;script language="ruby"&gt;
+  xmlfiles = Dir.new(".").entries.delete_if { |i| ! (i =~ /\.xml$/) }
+  xmlfiles.sort.each { |i| $self.log(i) }
+&lt;/script&gt;
+</pre>
+  </blockquote>
+  <p>
+    The same example in groovy is:
+  </p>
+  <blockquote><pre>
+&lt;script language="groovy"&gt;
+  xmlfiles = new java.io.File(".").listFiles().findAll{ it =~ "\.xml$"}
+  xmlfiles.sort().each { self.log(it.toString())}
+&lt;/script&gt;
+</pre>
+  </blockquote>
+  <p>
+    The following example shows the use of classpath to specify the location
+    of the beanshell jar file.
+  </p>
+  <blockquote><pre>
+&lt;script language="beanshell" setbeans="true"&gt;
+  &lt;classpath&gt;
+    &lt;fileset dir="${user.home}/lang/beanshell" includes="*.jar" /&gt;
+  &lt;/classpath&gt;
+  System.out.println("Hello world");
+&lt;/script&gt;
+</pre>
+  </blockquote>
+  <p>
+    The following script uses javascript to create a number of
+    echo tasks and execute them.
+  </p>
+<blockquote><pre>
+&lt;project name=&quot;squares&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;main&quot;&gt;
+
+    &lt;script language=&quot;javascript&quot;&gt; &lt;![CDATA[
+
+      for (i=1; i&lt;=10; i++) {
+        echo = squares.createTask(&quot;echo&quot;);
+        echo.setMessage(i*i);
+        echo.perform();
+      }
+
+    ]]&gt; &lt;/script&gt;
+
+  &lt;/target&gt;
+
+&lt;/project&gt;
+</pre></blockquote>
+<p>generates</p>
+<blockquote><pre>
+main:
+1
+4
+9
+16
+25
+36
+49
+64
+81
+100
+
+BUILD SUCCESSFUL
+</pre></blockquote>
+
+<p>Now a more complex example using the Java API and the Ant API. The goal is to list the
+filesizes of all files a <code>&lt;fileset/&gt;</code> caught.</p>
+<blockquote><pre>
+
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="<font color=blue>MyProject</font>" basedir="." default="main"&gt;
+
+  &lt;property name="fs.dir" value="src"/&gt;
+  &lt;property name="fs.includes" value="**/*.txt"/&gt;
+  &lt;property name="fs.excludes" value="**/*.tmp"/&gt;
+
+  &lt;target name="main"&gt;
+    &lt;script language="javascript"&gt; &lt;![CDATA[
+
+      // import statements
+      <font color=blue>// importPackage(java.io)</font>;
+      <font color=blue>importClass(java.io.File)</font>;
+
+      // Access to Ant-Properties by their names
+      dir      = <font color=blue>project</font>.getProperty("fs.dir");
+      includes = <font color=blue>MyProject</font>.getProperty("fs.includes");
+      excludes = <font color=blue>self.getProject()</font>  .<font color=blue>getProperty("fs.excludes")</font>;
+
+      // Create a &lt;fileset dir="" includes=""/&gt;
+      fs = project.<font color=blue>createDataType("fileset")</font>;
+      fs.setDir( new File(dir) );
+      <font color=blue>fs.setIncludes(includes)</font>;
+      fs.setExcludes(excludes);
+
+      // Get the files (array) of that fileset
+      ds = fs.getDirectoryScanner(project);
+      srcFiles = ds.getIncludedFiles();
+
+      // iterate over that array
+      for (i=0; i&lt;srcFiles.length; i++) {
+
+        // get the values via Java API
+        var basedir  = fs.getDir(project);
+        var filename = srcFiles[i];
+        var file = <font color=blue>new File(basedir, filename)</font>;
+        var size = file.length();
+
+        // create and use a Task via Ant API
+        echo = MyProject.<font color=blue>createTask("echo")</font>;
+        echo.setMessage(filename + ": " + size + " byte");
+        echo.<font color=blue>perform()</font>;
+      }
+    ]]&gt;&lt;/script&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>We want to use the Java API. Because we don't want always typing the package signature
+we do an import. Rhino knows two different methods for import statements: one for packages
+and one for a single class. By default only the <i>java</i> packages are available, so
+<i>java.lang.System</i> can be directly imported with <code>importClass/importPackage</code>.
+For other packages you have to prefix the full classified name with <i>Packages</i>.
+For example Ant's <i>FileUtils</i> class can be imported with
+<code>importClass(<b>Packages</b>.org.apache.tools.ant.util.FileUtils)</code>
+<br>
+The <code>&lt;script&gt;</code> task populates the Project instance under
+the name <i>project</i>, so we can use that reference. Another way is to use its given name
+or getting its reference from the task itself.<br>
+The Project provides methods for accessing and setting properties, creating DataTypes and
+Tasks and much more.<br>
+After creating a FileSet object we initialize that by calling its set-methods. Then we can
+use that object like a normal Ant task (<code>&lt;copy&gt;</code> for example).<br>
+For getting the size of a file we instantiate a <code>java.io.File</code>. So we are using
+normal Java API here.<br>
+Finally we use the <code>&lt;echo&gt;</code> task for producing the output. The task is not executed by
+its execute() method, because the perform() method (implemented in Task itself) does the
+appropriate logging before and after invoking execute().
+</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/scriptdef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/scriptdef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/scriptdef.html	(revision 14989)
@@ -0,0 +1,324 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Scriptdef Task</title>
+</head>
+
+<body>
+
+<h2><a name="script">Scriptdef</a></h2>
+<h3>Description</h3>
+<p>Scriptdef can be used to define an Ant task using a scripting language. Ant
+scripting languages supported by
+<a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a> 
+or
+  <a href="https://scripting.dev.java.net">JSR 223</a>
+may be
+used to define the script. Scriptdef provides a mechanism to encapsulate
+control logic from a build within an Ant task minimizing the need for
+providing control style tasks in Ant itself. Complex logic can be made
+available while retaining the simple structure of an Ant build file. Scriptdef
+is also useful for prototyping new custom tasks. Certainly as the complexity
+of the script increases it would be better to migrate the task definition
+into a Java based custom task.
+</p>
+
+<p><b>Note:</b> This task depends on external libraries not included in the
+Ant distribution. See
+<a href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.</p>
+
+
+
+<p>The attributes and nested elements supported by the task may be defined
+using <code>&lt;attribute&gt;</code> and <code>&lt;element&gt;</code> nested elements. These are
+available to the script that implements the task as two collection style
+script variables <code>attributes</code> and <code>elements</code>. The
+elements in the <code>attributes</code> collection may be accessed by the
+attribute name. The <code>elements</code> collection is accessed by the nested
+element name. This will return a list of all instances of the nested element.
+The instances in this list may be accessed by an integer index.
+</p>
+
+<p><b>Note:</b> Ant will turn all attribute and element names into all
+lowercase names, so even if you use name="SomeAttribute", you'll have
+to use "someattribute" to retrieve the attribute's value from the
+<code>attributes</code> collection.</p>
+
+<p>The name "self" (<i>since Ant 1.6.3</i>) is a pre-defined reference to the
+    script def task instance.
+    It can be used for logging, or for integration with the rest of
+    ant. the <code>self.text attribute</code> contains
+    any nested text passed to the script</p>
+
+<p>If an attribute or element is not passed in, 
+then <code>attributes.get()</code> or <code>elements.get()</code> will 
+return null. It is up to the script to perform any checks and validation. 
+<code>self.fail(String message)</code>can be used to raise a 
+<code>BuildException</code>.
+</p>
+
+
+<p>The name "project" is a pre-defined reference to the Ant Project. For
+more information on writing scripts, please refer to the
+<a href="script.html"><code>&lt;script&gt;</code></a> task
+</p>
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the task to be created using the script</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">language</td>
+    <td valign="top">The programming language the script is written in.
+      Must be a supported Apache BSF or JSR 223 language</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manager</td>
+    <td valign="top">
+      The script engine manager to use.
+      See the <a href="../OptionalTasks/script.html">script</a> task
+      for using this attribute.
+    </td>
+    <td valign="top" align="center">No - default is "auto"</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The location of the script as a file, if not inline</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uri</td>
+    <td valign="top">
+      The XML namespace uri that this definition should live in.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">
+      The classpath to pass into the script.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">loaderRef</td>
+      <td valign="top">the name of the loader that is
+        used to load the script, constructed from the specified 
+        classpath. This allows multiple script defintions
+        to reuse the same class loader.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+  </table>
+
+<h3>Nested elements</h3>
+<h4>attribute</h4>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the attribute</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>element</h4>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the nested element to be supported by the
+                     task defined by the script</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the classname of the class to be used for the nested element.
+         This specifies the class directly and is an alternative to specifying
+         the Ant type name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">This is the name of an Ant task or type which is to
+        be used when this element is to be created. This is an alternative
+        to specifying the class name directly. If the type is in a namespace,
+        the URI and a : must be prefixed to the type. For example
+        <code>type="antlib:example.org:newtype"</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+  <h4>classpath</h4>
+  <p>
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    for using this nested element.
+  </p>
+
+<h3>Examples</h3>
+
+<p>
+The following definition creates a task which supports an attribute called
+attr and two nested elements, one being a fileset and the other a path. When
+executed, the resulting task logs the value of the attribute and the basedir
+of the first fileset.
+</p>
+
+<pre>
+  &lt;scriptdef name=&quot;scripttest&quot; language=&quot;javascript&quot;&gt;
+    &lt;attribute name=&quot;attr1&quot;/&gt;
+    &lt;element name=&quot;fileset&quot; type=&quot;fileset&quot;/&gt;
+    &lt;element name=&quot;path&quot; type=&quot;path&quot;/&gt;
+    &lt;![CDATA[
+
+      self.log(&quot;Hello from script&quot;);
+      self.log(&quot;Attribute attr1 = &quot; + attributes.get(&quot;attr1&quot;));
+      self.log(&quot;First fileset basedir = &quot;
+        + elements.get(&quot;fileset&quot;).get(0).getDir(project));
+
+    ]]&gt;
+  &lt;/scriptdef&gt;
+
+  &lt;scripttest attr1=&quot;test&quot;&gt;
+    &lt;path&gt;
+      &lt;pathelement location=&quot;src&quot;/&gt;
+    &lt;/path&gt;
+    &lt;fileset dir=&quot;src&quot;/&gt;
+    &lt;fileset dir=&quot;main&quot;/&gt;
+  &lt;/scripttest&gt;
+</pre>
+
+<p>
+The following variation on the above script lists the number of fileset elements
+and iterates through them
+</p>
+<pre>
+  &lt;scriptdef name=&quot;scripttest2&quot; language=&quot;javascript&quot;&gt;
+    &lt;element name=&quot;fileset&quot; type=&quot;fileset&quot;/&gt;
+    &lt;![CDATA[
+      filesets = elements.get(&quot;fileset&quot;);
+      self.log(&quot;Number of filesets = &quot; + filesets.size());
+      for (i = 0; i &lt; filesets.size(); ++i) {
+        self.log(&quot;fileset &quot; + i + &quot; basedir = &quot;
+          + filesets.get(i).getDir(project));
+      }
+    ]]&gt;
+  &lt;/scriptdef&gt
+
+  &lt;scripttest2&gt;
+    &lt;fileset dir=&quot;src&quot;/&gt;
+    &lt;fileset dir=&quot;main&quot;/&gt;
+  &lt;/scripttest2&gt;
+</pre>
+
+<p>
+When a script has a syntax error, the scriptdef name will be listed in the
+error. For example in the above script, removing the closing curly bracket
+would result in this error
+</p>
+
+<p><code>build.xml:15: SyntaxError: missing } in compound
+statement (scriptdef <code>&lt;scripttest2&gt;</code>; line 10)</code></p>
+
+<p>
+Script errors are only detected when a script task is actually executed.
+</p>
+<p>
+    The next example does uses nested text in Jython. It also declares 
+    the script in a new xml namespace, which must be used to refer to 
+    the task. Declaring scripts in a new namespace guarantees that Ant will 
+    not create a task of the same (namespace,localname) name pair. 
+</p>
+
+<pre>
+&lt;target name="echo-task-jython"&gt;
+  &lt;scriptdef language="jython"
+      name="echo"
+      uri="http://example.org/script"&gt;
+      &lt;![CDATA[
+self.log("text: " +self.text)
+    ]]&gt;
+    &lt;/scriptdef&gt;
+&lt;/target&gt;
+
+&lt;target name="testEcho" depends="echo-task-jython"
+    xmlns:s="http://example.org/script"&gt;
+  &lt;s:echo&gt;nested text&lt;/s:echo&gt;
+&lt;/target&gt;
+</pre>
+
+The next example shows the use of &lt;classpath&gt; and
+"loaderref" to get access to the beanshell jar.
+<pre>
+    &lt;scriptdef name="b1" language="beanshell"
+               loaderref="beanshell-ref"&gt;
+      &lt;attribute name="a"/&gt;
+      &lt;classpath
+        path="${user.home}/scripting/beanshell/bsh-1.3b1.jar"/&gt;
+      self.log("attribute a is " + attributes.get("a"));
+    &lt;/scriptdef&gt;
+
+    &lt;scriptdef name="b2" language="beanshell"
+               loaderref="beanshell-ref"&gt;
+      &lt;attribute name="a2"/&gt;
+      self.log("attribute a2 is " + attributes.get("a2"));
+    &lt;/scriptdef&gt;
+
+    &lt;b1 a="this is an 'a'"/&gt;
+    &lt;b2 a2="this is an 'a2' for b2"/&gt;
+</pre>
+<h3>Testing Scripts</h3>
+
+<p>
+The easiest way to test scripts is to use the 
+<a href="http://ant.apache.org/antlibs/antunit/">AntUnit</a> ant library.
+This will run all targets in a script that begin with "test" (and their dependencies). </p>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/serverdeploy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/serverdeploy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/serverdeploy.html	(revision 14989)
@@ -0,0 +1,335 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ServerDeploy Task</title>
+
+</head>
+
+<body>
+
+<h2><a name="serverdeploy">ANT ServerDeploy User Manual</a></h2>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+<li>Christopher A. Longo (<a href="mailto:cal@cloud9.net">cal@cloud9.net</a>)</li>
+<li>Cyrille Morvan (<a href="mailto:cmorvan@ingenosya.com">cmorvan@ingenosya.com</a>)</li>
+</ul>
+
+</p>
+<hr>
+<p> At present the tasks support:<br>
+
+<ul>
+<li><a href="http://www.bea.com" target="_top">Weblogic</a> servers</li>
+<li><a href="http://www.objectweb.org/jonas/" target="_top">JOnAS</a>
+2.4 Open Source EJB server</li>
+</ul>
+Over time we expect further optional tasks  to support additional J2EE Servers.
+</p>
+
+<hr>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr><td>Task</td><td colspan="2">Application Servers</td></tr>
+<tr><td rowspan="4"><a href="#serverdeploy_element">serverdeploy</a></td><td colspan="2" align="center"><b>Nested Elements</b></td></tr>
+<tr><td><a href="#serverdeploy_generic">generic</a></td><td>Generic task</td></tr>
+<tr><td><a href="#serverdeploy_jonas">jonas</a></td><td>JOnAS 2.4</td></tr>
+<tr><td><a href="#serverdeploy_weblogic">weblogic</a></td><td>Weblogic</td></tr>
+
+</table>
+
+<a name="serverdeploy_element"></a>
+<h2>ServerDeploy element</h2>
+
+<h3><b>Description:</b></h3>
+
+<p>The <code>serverdeploy</code> task is used to run a "hot" deployment tool for
+vendor-specific J2EE server. The task requires nested elements which define
+the attributes of the vendor-specific deployment tool being executed.
+Vendor-specific deployment tools elements may enforce rules for which
+attributes are required, depending on the tool.
+</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">This is the action to be performed.  For most cases this
+    will be "deploy".  Some tools support additional actions, such as "delete", "list",
+    "undeploy", "update"...</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+    <td valign="top">A fully qualified path/filename of the component to be deployed.
+    This may be an .ear, .jar, .war, or any other type that is supported by the server.
+    </td>
+    <td>Tool dependent</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<p>The serverdeploy task supports a nested <code>classpath</code> element to set the classpath.</p>
+
+<h3>Vendor-specific nested elements</h3>
+
+<h3>Parameters used for all tools:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be passed to the JVM running the tool.
+    The classpath may also be supplied as a nested element.</td>
+    <td>Tool dependent</td>
+  </tr>
+  <tr>
+    <td valign="top">server</td>
+    <td valign="top">The address or URL for the server where the component will be deployed.</td>
+    <td>Tool dependent</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The user with privileges to deploy applications to the server.</td>
+    <td>Tool dependent</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password of the user with privileges to deploy applications to the server.</td>
+    <td>Tool dependent</td>
+  </tr>
+</table>
+
+<p>Also supported are nested vendor-specific elements.</p>
+
+<a name="serverdeploy_generic"></a>
+<h3>Generic element</h3>
+This element is provided for generic Java-based deployment tools.
+The generic task accepts (but does not require) nested <code>arg</code>
+and <code>jvmarg</code> elements.
+A JVM will be spawned with the provided attributes.  It is recommended
+that a vendor-specific element be used over the generic one if at all
+possible.
+<p>The following attributes are supported by the generic element.</p>
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">This is the fully qualified classname of the Java based
+    deployment tool to execute.</td>
+    <td>Yes</td>
+  </tr>
+</table>
+</p>
+
+<h3>Nested Elements</h3>
+<p>The generic element supports nested <code>&lt;arg&gt;</code> and <code>&lt;jvmarg&gt;</code> elements.</p>
+
+<h3>Example</h3>
+
+<p>This example shows the use of generic deploy element to deploy a component
+using a Java based deploy tool:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;deploy&quot; source=&quot;${lib.dir}/ejb_myApp.ear&quot;&gt;
+        &lt;generic classname="com.yamato.j2ee.tools.deploy.DeployTool"
+            classpath=&quot;${classpath}&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;&gt;
+            &lt;arg value="-component=WildStar"/&gt;
+            &lt;arg value="-force"/&gt;
+            &lt;jvmarg value="-ms64m"/&gt;
+            &lt;jvmarg value="-mx128m"/&gt;
+        &lt;/generic&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<a name="serverdeploy_weblogic"></a>
+<h3>WebLogic element</h3>
+<p>
+The WebLogic element contains additional attributes to run the
+<code>weblogic.deploy</code> deployment tool.
+<p>Valid actions for the tool are <code>deploy</code>, <code>undeploy</code>,
+<code>list</code>, <code>update</code>, and <code>delete</code>.
+<p>If the action is <code>deploy</code> or <code>update</code>,
+the <code>application</code> and <code>source</code> attributes must be set.
+If the action is <code>undeploy</code> or <code>delete</code>,
+the <code>application</code> attribute must be set.  If the <code>username</code>
+attribute is omitted, it defaults to "system".  The <code>password</code> attribute is
+required for all actions.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">application</td>
+    <td valign="top">This is the name of the application being deployed</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">component</td>
+    <td valign="top">This is the component string for deployment targets.
+    It is in the form <code>&lt;component&gt;:&lt;target1&gt;,&lt;target2&gt;...</code>
+    Where component is the archive name (minus the .jar, .ear, .war
+    extension).  Targets are the servers where the components will be deployed</td>
+    <td>no</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">If set to true, additional information will be
+    printed during the deployment process.</td>
+    <td>No</td>
+  </tr>
+</table>
+
+
+<h3>Examples</h3>
+
+<p>This example shows the use of serverdeploy to deploy a component to a WebLogic server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;deploy&quot; source=&quot;${lib.dir}/ejb_myApp.ear&quot;&gt;
+        &lt;weblogic application=&quot;myapp&quot;
+            server=&quot;t3://myserver:7001&quot;
+            classpath=&quot;${weblogic.home}/lib/weblogic.jar&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;
+            component=&quot;ejb_foobar:myserver,productionserver&quot;
+            debug=&quot;true&quot;/&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<p>This example shows serverdeploy being used to delete a component from a
+WebLogic server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;delete&quot; source=&quot;${lib.dir}/ejb_myApp.jar&quot;/&gt
+        &lt;weblogic application=&quot;myapp&quot;
+            server=&quot;t3://myserver:7001&quot;
+            classpath=&quot;${weblogic.home}/lib/weblogic.jar&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;/&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<a name="serverdeploy_jonas"></a>
+<h3>JOnAS (Java Open Application Server) element</h3>
+<p>
+The JOnAS element contains additional attributes to run the
+<code>JonasAdmin</code> deployment tool.
+<p>Valid actions for the tool are <code>deploy</code>, <code>undeploy</code>,
+<code>list</code> and <code>update</code>.
+<p>You can't use <code>user</code> and <code>password</code> property with this 
+task.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">jonasroot</td>
+    <td valign="top">The root directory for JOnAS.</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">orb</td>
+    <td valign="top">Choose your ORB : RMI, JEREMIE, DAVID, ... If omitted, it defaults
+     to the one present in classpath. The corresponding JOnAS JAR is
+     automatically added to the classpath. If your orb is DAVID (RMI/IIOP) you must 
+     specify davidhost and davidport properties.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td valign="top">davidhost</td>
+    <td valign="top">The value for the system property : <code>david.CosNaming.default_host</code> .</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td valign="top">davidport</td>
+    <td valign="top">The value for the system property : <code>david.CosNaming.default_port</code> .</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">This is the fully qualified classname of the Java based
+    deployment tool to execute. Default to <code>org.objectweb.jonas.adm.JonasAdmin</code></td>
+    <td>No</td>
+  </tr>
+
+</table>
+
+<h3>Nested Elements</h3>
+<p>The jonas element supports nested <code>&lt;arg&gt;</code> and <code>&lt;jvmarg&gt;</code> elements.</p>
+
+
+<h3>Examples</h3>
+
+<p>This example shows the use of serverdeploy to deploy a component to a JOnAS server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;deploy&quot; source=&quot;${lib.dir}/ejb_myApp.jar&quot;&gt;
+        &lt;jonas server=&quot;MyJOnAS&quot; jonasroot="${jonas.root}"&gt;
+
+           &lt;classpath&gt;
+               &lt;pathelement path=&quot;${jonas.root}/lib/RMI_jonas.jar&quot;/&gt;
+               &lt;pathelement path=&quot;${jonas.root}/config/&quot;/&gt;
+           &lt;/classpath&gt;
+        &lt;/jonas&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<p>This example shows serverdeploy being used to list the components from a
+JOnAS server and a WebLogic server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;list&quot;/&gt
+        &lt;jonas jonasroot=&quot;${jonas.root}&quot; orb=&quot;JEREMIE&quot;/&gt;
+        &lt;weblogic application=&quot;myapp&quot
+            server=&quot;t3://myserver:7001&quot;
+            classpath=&quot;${weblogic.home}/lib/weblogic.jar&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;/&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/setproxy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/setproxy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/setproxy.html	(revision 14989)
@@ -0,0 +1,165 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Setproxy Task</title>
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+</head>
+
+<body>
+<h2><a name="setproxy">Setproxy Task</a></h2>
+ 
+<p>Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites, and remote ftp sites.<p>
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+
+          <a name="description">
+          <h3>Description</h3></a>
+
+        Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites, and remote ftp sites. You can nominate an http and ftp proxy, or a socks server, reset the server settings, or do nothing at all. <p> Examples <pre>&lt;setproxy/&gt;</pre> do nothing <pre>&lt;setproxy proxyhost="firewall"/&gt;</pre> set the proxy to firewall:80 <pre>&lt;setproxy proxyhost="firewall" proxyport="81"/&gt;</pre> set the proxy to firewall:81 <pre>&lt;setproxy proxyhost=""/&gt;</pre> stop using the http proxy; don't change the socks settings <pre>&lt;setproxy socksproxyhost="socksy"/&gt;</pre> use socks via socksy:1080 <pre>&lt;setproxy socksproxyhost=""/&gt;</pre> stop using the socks server. <p> You can set a username and password for http with the <tt>proxyHost</tt> and <tt>proxyPassword</tt> attributes. On Java1.4 and above these can also be used against SOCKS5 servers. </p>
+      
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+          <a name="attributes">
+          <h3>Parameters</h3></a>
+
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          nonproxyhosts
+        </td>
+        <td>
+          A list of hosts to bypass the proxy on. These should be separated with the vertical bar character '|'. Only in Java 1.4 does ftp use this list. e.g. fozbot.corp.sun.com|*.eng.sun.com
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Optional
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          proxyhost
+        </td>
+        <td>
+          the HTTP/ftp proxy host. Set this to "" for the http proxy option to be disabled
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          proxypassword
+        </td>
+        <td>
+          Set the password for the proxy. Used only if the proxyUser is set.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          proxyport
+        </td>
+        <td>
+          the HTTP/ftp proxy port number; default is 80
+        </td>
+        <td>
+          int
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          proxyuser
+        </td>
+        <td>
+          set the proxy user. Probably requires a password to accompany this setting. Default=""
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          socksproxyhost
+        </td>
+        <td>
+          The name of a Socks server. Set to "" to turn socks proxying off.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          socksproxyport
+        </td>
+        <td>
+          Set the ProxyPort for socks connections. The default value is 1080
+        </td>
+        <td>
+          int
+        </td>
+    </tr>
+
+
+        </table>
+
+    <!-- End Attributes -->
+
+          <h3>Parameters as nested elements</h3></a>
+
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/sos.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/sos.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/sos.html	(revision 14989)
@@ -0,0 +1,503 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+
+  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SOS Tasks</title>
+
+</head>
+<body>
+
+<div align="center">
+<h1>SourceOffSite Tasks User Manual</h1>
+
+<div align="left">by
+<ul>
+<li><a href="mailto:jesse@cryptocard.com">Jesse Stockall</a></li>
+</ul>
+Version 1.1 2002/01/23
+<br>
+<br>
+
+<hr width="100%" size="2">
+<h2>Contents</h2>
+
+<ul>
+    <li><a href="#intro">Introduction</a></li>
+    <li><a href="#tasks">The Tasks</a></li>
+
+</ul>
+<br>
+
+<h2><a name="intro">Introduction</a> </h2>
+
+<p>These tasks provide an interface to the <a href="http://msdn.microsoft.com/ssafe/default.asp" target="_top">
+Microsoft Visual SourceSafe</a> SCM via <a href="http://www.sourcegear.com">
+SourceGear's</a> <a href="http://sourcegear.com/sos/index.htm">SourceOffSite</a>
+product. SourceOffSite is an add-on to Microsoft's VSS, that allows remote
+development teams and tele-commuters that need fast and secure read/write
+access to a centralized SourceSafe database via any TCP/IP connection. SOS
+provides Linux ,Solaris &amp; Windows clients. The
+<code> org.apache.tools.ant.taskdefs.optional.sos</code>
+package consists  of a simple framework to support SOS functionality as well
+as some Ant tasks  encapsulating frequently used SOS commands.  Although it
+is possible to use  these commands on the desktop,  they were primarily intended
+to be used by  automated build systems. These tasks have been tested with
+SourceOffSite  version 3.5.1 connecting to VisualSourceSafe 6.0. The tasks
+have been tested with Linux, Solaris &amp; Windows2000.</p>
+
+<h2><a name="tasks">The Tasks</a> </h2>
+
+<table border="0" cellspacing="0" cellpadding="3">
+       <tbody>
+         <tr>
+           <td><a href="#SOSGet">sosget</a></td>
+           <td>Retrieves a read-only copy of the specified project or file.</td>
+         </tr>
+         <tr>
+           <td><a href="#SOSLabel">soslabel</a></td>
+           <td>Assigns a label to the specified project.</td>
+         </tr>
+         <tr>
+           <td><a href="#SOSCheckIn">soscheckin</a></td>
+           <td>Updates VSS with changes made to a checked out file or project,
+           and unlocks the VSS master copy.</td>
+         </tr>
+         <tr>
+           <td><a href="#SOSCheckOut">soscheckout</a></td>
+           <td>Retrieves a read-write copy of the specified project
+           or file, locking the&nbsp;VSS master copy</td>
+         </tr>
+
+  </tbody>
+</table>
+     <br>
+
+<hr width="100%" size="2">
+<h2>Task Descriptions</h2>
+
+<h2><a name="SOSGet"></a>SOSGet<br>
+     </h2>
+<h3>Description</h3>
+             Task to perform GET commands with SOS<br>
+<h3>Parameters</h3>
+     </div>
+     </div>
+
+<table border="1" cellpadding="2" cellspacing="0">
+     <tbody>
+       <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+        </tr>
+        <tr>
+          <td>soscmd</td>
+          <td>Directory which contains soscmd(.exe) <br>
+          soscmd(.exe) must be in the path if this is not specified</td>
+          <td>No</td>
+        </tr>
+        <tr>
+           <td>vssserverpath</td>
+           <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>sosserverpath</td>
+           <td>address &amp; port of the SOS server  - eg. 192.168.0.1:8888</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>projectpath</td>
+           <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>file</td>
+           <td>Filename to act upon<br>
+           If no file is specified then act upon the project</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>username</td>
+           <td>SourceSafe username</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>password</td>
+           <td>SourceSafe password</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>localpath</td>
+           <td>Override the working directory and get to the specified path</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>soshome</td>
+           <td>The path to the SourceOffSite home directory</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>nocompress</td>
+           <td>true or false - disable compression</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>recursive</td>
+           <td>true or false - Only works with the GetProject command</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>version</td>
+           <td>a version number to get - Only works with the GetFile command</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>label</td>
+           <td>a label version to get - Only works with the GetProject command</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>nocache</td>
+           <td>true or false - Only needed if SOSHOME is set as an environment variable</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>verbose</td>
+           <td>true or false - Status messages are displayed</td>
+           <td>No</td>
+        </tr>
+  </tbody>
+</table>
+
+<h3>Example</h3>
+
+<pre>
+&lt;sosget verbose=&quot;true&quot;
+        recursive=&quot;true&quot;
+        username=&quot;build&quot;
+        password=&quot;build&quot;
+        localpath=&quot;tmp&quot;
+        projectpath=&quot;$/SourceRoot/project1&quot;
+        sosserverpath=&quot;192.168.10.6:8888&quot;
+        vssserverpath=&quot;d:\vss\srcsafe.ini&quot;/&gt;
+</pre>
+<small>Connects to a SourceOffsite server on 192.168.10.6:8888 with
+build,build as the username &amp; password. The SourceSafe  database resides
+on the same box as the SOS server  &amp; the VSS database  is at
+&quot;d:\vss\srcsafe.ini&quot; Does a recursive GetProject on
+$/SourceRoot/project1, using tmp as the working
+directory. </small><br>
+<br>
+
+<hr width="100%" size="2">
+<h2><a name="SOSLabel"></a>SOSLabel</h2>
+
+<h3>Description</h3>
+             Task to perform Label commands with SOS<br>
+<h3>Parameters</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+    <tbody><tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+    </tr>
+    <tr>
+      <td>soscmd</td>
+      <td>Directory which contains soscmd(.exe) <br>
+      soscmd(.exe) must be in the path if this is not specified</td>
+      <td>No</td>
+    </tr>
+    <tr>
+       <td>vssserverpath</td>
+       <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>sosserverpath</td>
+       <td>address and port of the SOS server  - eg. 192.168.0.1:8888</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>projectpath</td>
+       <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>username</td>
+       <td>SourceSafe username</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>password</td>
+       <td>SourceSafe password</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>label</td>
+       <td>The label to apply to a project</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>comment</td>
+       <td>A comment to be applied to all files being labeled</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>verbose</td>
+       <td>true or false - Status messages are displayed</td>
+       <td>No</td>
+    </tr>
+  </tbody>
+</table>
+
+<h3>Example</h3>
+<pre>
+&lt;soslabel username=&quot;build&quot;
+          password=&quot;build&quot;
+          label=&quot;test label&quot;
+          projectpath=&quot;$/SourceRoot/project1&quot;
+          sosserverpath=&quot;192.168.10.6:8888&quot;
+          vssserverpath=&quot;d:\vss\srcsafe.ini&quot;/&gt;
+</pre>
+
+<small>Connects to a SourceOffsite server on 192.168.10.6:8888 with
+build,build as the username &amp; password. The SourceSafe database resides
+on the same box as  the  SOS server  &amp; the VSS database is at
+&quot;d:\vss\srcsafe.ini&quot;. Labels the $/SourceRoot/project1
+project with &quot;test label&quot;.</small><br>
+<br>
+
+<hr width="100%" size="2"><br>
+
+<h2><a name="SOSCheckIn"></a>SOSCheckIn</h2>
+
+<h3>Description</h3>
+        Task to perform CheckIn commands with SOS<br>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+       <tbody>
+    <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+    </tr>
+    <tr>
+      <td>soscmd</td>
+      <td>Directory which contains soscmd(.exe) <br>
+      soscmd(.exe) must be in the path if this is not specified</td>
+      <td>No</td>
+    </tr>
+    <tr>
+       <td>vssserverpath</td>
+       <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>sosserverpath</td>
+       <td>address and port of the SOS server  - eg. 192.168.0.1:8888</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>projectpath</td>
+       <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>file</td>
+       <td>Filename to act upon<br> If no file is specified then act upon the project</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>username</td>
+       <td>SourceSafe username</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>password</td>
+       <td>SourceSafe password</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>localpath</td>
+       <td>Override the working directory and get to the specified path</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>soshome</td>
+       <td>The path to the SourceOffSite home directory</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocompress</td>
+       <td>true or false - disable compression</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>recursive</td>
+       <td>true or false - Only works with the CheckOutProject command</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocache</td>
+       <td>true or false - Only needed if SOSHOME is set as an environment variable</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>verbose</td>
+       <td>true or false - Status messages are displayed</td>
+       <td>No</td>
+    </tr>
+    <tr><td>comment</td>
+       <td>A comment to be applied to all files being checked in</td>
+       <td>No</td>
+    </tr>
+ </tbody>
+</table>
+
+<h3>Example</h3>
+<pre>
+&lt;soscheckin username=&quot;build&quot;
+            password=&quot;build&quot;
+            file=&quot;foobar.txt&quot;
+            verbose=&quot;true&quot;
+            comment=&quot;comment abc&quot;
+            projectpath=&quot;$/SourceRoot/project1&quot;
+            sosserverpath=&quot;server1:8888&quot;
+            vssserverpath=&quot;\\server2\vss\srcsafe.ini&quot;/&gt;
+</pre>
+
+<small>Connects to a SourceOffsite server on server1:8888 with build,build as
+the username &amp; password. The SourceSafe database resides on a different
+box (server2) &amp; the VSS database is on a share called
+&quot;vss&quot;. Checks-in only the &quot;foobar.txt&quot; file adding
+a comment of &quot;comment abc&quot;. Extra status messages will be
+displayed on screen.</small><br>
+<br>
+
+<hr width="100%" size="2">
+<h2><a name="SOSCheckOut"></a>SOSCheckOut</h2>
+
+<h3>Description</h3>
+       Task to perform CheckOut commands with SOS<br>
+
+<h3>Parameters</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+       <tbody>
+    <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+    </tr>
+    <tr>
+      <td>soscmd</td>
+      <td>Directory which contains soscmd(.exe) <br>
+      soscmd(.exe) must be in the path if this is not specified</td>
+      <td>No</td>
+    </tr>
+    <tr>
+       <td>vssserverpath</td>
+       <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>sosserverpath</td>
+       <td>address and port of the SOS server  - eg. 192.168.0.1:8888</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>projectpath</td>
+       <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>file</td>
+       <td>Filename to act upon<br> If no file is specified then act upon the project</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>username</td>
+       <td>SourceSafe username</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>password</td>
+       <td>SourceSafe password</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>localpath</td>
+       <td>Override the working directory and get to the specified path</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>soshome</td>
+       <td>The path to the SourceOffSite home directory</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocompress</td>
+       <td>true or false - disable compression</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>recursive</td>
+       <td>true or false - Only works with the CheckOutProject command</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocache</td>
+       <td>true or false - Only needed if SOSHOME is set as an environment variable</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>verbose</td>
+       <td>true or false - Status messages are displayed</td>
+       <td>No</td>
+    </tr>
+  </tbody>
+</table>
+     <br>
+
+<h3>Example</h3>
+<pre>
+&lt;soscheckout soscmd=&quot;/usr/local/bin&quot;
+             verbose=&quot;true&quot;
+             username=&quot;build&quot;
+             password=&quot;build&quot;
+             projectpath=&quot;$/SourceRoot/project1&quot;
+             sosserverpath=&quot;192.168.10.6:8888&quot;
+             vssserverpath=&quot;\\server2\vss\srcsafe.ini&quot;/&gt;
+</pre>
+
+<small>Connects to a SourceOffsite server on server1:8888 with build,build as
+the username &amp; password. The SourceSafe database resides on a different
+box (server2) &amp; the VSS database is on a share called
+&quot;vss&quot;. Checks-out &quot;project1&quot;, Only the
+&quot;project1&quot; directory will be locked as the recursive option
+was not set. Extra status messages will be displayed on screen. The
+soscmd(.exe) file to be used resides in /usr/local/bin.</small><br>
+<br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/sound.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/sound.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/sound.html	(revision 14989)
@@ -0,0 +1,119 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Sound Task</title>
+</head>
+
+<body>
+
+<h2><a name="sound">Sound</a></h2>
+<h3>Description</h3>
+<p>Plays a sound-file at the end of the build, according to whether
+the build failed or succeeded. You can specify either a specific
+sound-file to play, or, if a directory is specified, the
+<code>&lt;sound&gt;</code> task will randomly select a file to play.
+Note: At this point, the random selection is based on all the files
+in the directory, not just those ending in appropriate suffixes
+for sound-files, so be sure you only have sound-files in the 
+directory you specify.</p>
+<p>
+Unless you are running on Java 1.3 or later, you need the Java Media Framework
+on the classpath (javax.sound). 
+</p>
+
+
+<h3>Nested Elements</h3>
+<h4>success</h4>
+<p>Specifies the sound to be played if the build succeeded.</p>
+<h4>fail</h4>
+<p>Specifies the sound to be played if the build failed.</p>
+
+<h3>Nested Element Parameters</h3>
+<p>
+The following attributes may be used on the <code>&lt;success&gt;</code> 
+and <code>&lt;fail&gt;</code> elements:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+    <td valign="top">the path to a sound-file directory, or the name of a
+specific sound-file, to be played.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">loops</td>
+    <td valign="top">the number of extra times to play the sound-file;
+      default is <code>0</code>.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duration</td>
+    <td valign="top">the amount of time (in milliseconds) to play
+      the sound-file.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;target name=&quot;fun&quot; if=&quot;fun&quot; unless=&quot;fun.done&quot;&gt;
+  &lt;sound&gt;
+    &lt;success source=&quot;${user.home}/sounds/bell.wav&quot;/&gt;
+    &lt;fail source=&quot;${user.home}/sounds/ohno.wav&quot; loops=&quot;2&quot;/&gt;
+  &lt;/sound&gt;
+  &lt;property name=&quot;fun.done&quot; value=&quot;true&quot;/&gt;
+&lt;/target&gt;
+</pre>
+</blockquote>
+plays the <code>bell.wav</code> sound-file if the build succeeded, or
+the <code>ohno.wav</code> sound-file if the build failed, three times,
+if the <code>fun</code> property is set to <code>true</code>.
+If the target
+is a dependency of an &quot;initialization&quot; target that other
+targets depend on, the
+<code>fun.done</code> property prevents the target from being executed
+more than once.
+<blockquote>
+<pre>
+&lt;target name=&quot;fun&quot; if=&quot;fun&quot; unless=&quot;fun.done&quot;&gt;
+  &lt;sound&gt;
+    &lt;success source=&quot;//intranet/sounds/success&quot;/&gt;
+    &lt;fail source=&quot;//intranet/sounds/failure&quot;/&gt;
+  &lt;/sound&gt;
+  &lt;property name=&quot;fun.done&quot; value=&quot;true&quot;/&gt;
+&lt;/target&gt;
+</pre>
+</blockquote>
+randomly selects a sound-file to play when the build succeeds or fails.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/splash.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/splash.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/splash.html	(revision 14989)
@@ -0,0 +1,119 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="Splash">Splash</a></h2>
+<p>by Les Hughes (leslie.hughes@rubus.com)
+<h3>Description</h3>
+<p>This task creates a splash screen. The splash screen is displayed
+for the duration of the build and includes a handy progress bar as
+well. Use in conjunction with the sound task to provide interest
+whilst waiting for your builds to complete...</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Default</b></td>
+  </tr>
+  <tr>
+    <td valign="top">imageurl</td>
+    <td valign="top">A URL pointing to an image to display.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">antlogo.gif from the classpath</td>
+  </tr>
+ 
+  <tr>
+    <td valign="top">showduration</td>
+    <td valign="top">Initial period to pause the build to show the
+    splash in milliseconds.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">5000 ms</td>
+  </tr>  
+</table>
+<h3>Deprecated properties</h3>
+  
+The following properties can be used to configure the proxy settings to retrieve
+an image from behind a firewall. However, the settings apply not just to this
+task, but to all following tasks. Therefore they are now mostly deprecated in 
+preference to the <code>&lt;setproxy&gt;</code> task, that makes it clear to readers of
+the build exactly what is going on. We say mostly as this task's support
+includes proxy authentication, so you may still need to use its
+proxy attributes.
+  
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top">useproxy</td>
+    <td valign="top">Use a proxy to access imgurl. Note: Only tested
+    on JDK 1.2.2 and above</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+  <tr>
+    <td valign="top">proxy</td>
+    <td valign="top">IP or hostname of the proxy server</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Proxy portnumber</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+  <tr>
+    <td valign="top">user</td>
+    <td valign="top">User to authenticate to the proxy as.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">Proxy password</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;splash/&gt;
+</pre></blockquote>
+<p>Splash <code>images/ant_logo_large.gif</code> from the classpath.</p>
+<blockquote><pre>
+&lt;splash imageurl=&quot;http://jakarta.apache.org/images/jakarta-logo.gif&quot;
+           useproxy=&quot;true&quot;
+           showduration=&quot;5000&quot;/&gt;
+
+</pre></blockquote>
+<p>Splashes the jakarta logo, for
+an initial period of 5 seconds.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/sshexec.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/sshexec.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/sshexec.html	(revision 14989)
@@ -0,0 +1,181 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SSHEXEC Task</title>
+</head>
+
+<body>
+
+<h2><a name="sshexec">SSHEXEC</a></h2>
+<h3>Description</h3>
+
+<p><em>since Ant 1.6</em></p>
+
+<p>Runs a command on a remote machine running SSH daemon.
+</p>
+
+<p><b>Note:</b> This task depends on external libraries not included
+in the Ant distribution.  See <a
+href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.  This task has been tested with jsch-0.1.29 and above
+and won't work with versions of jsch earlier than
+0.1.28.</p>
+
+<p>See also the <a href="scp.html">scp task</a></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">host</td>
+    <td valign="top">The hostname or IP address of the remote host to which you wish to connect.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username on the remote host to which you are connecting.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">The command to run on the remote host.</td>
+    <td valian="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">The port to connect to on the remote host.</td>
+    <td valian="top" align="center">No, defaults to 22.</td>
+  </tr>
+  <tr>
+    <td valign="top">trust</td>
+
+    <td valign="top">This trusts all unknown hosts if set to yes/true.<br>
+      <strong>Note</strong> If you set this to false (the default), the
+      host you connect to must be listed in your knownhosts file, this
+      also implies that the file exists.</td>
+    <td valian="top" align="center">No, defaults to No.</td>
+  </tr>
+  <tr>
+    <td valign="top">knownhosts</td>
+    <td valign="top">This sets the known hosts file to use to validate
+    the identity of the remote host.  This must be a SSH2 format file.
+    SSH1 format is not supported.</td>
+    <td valian="top" align="center">No, defaults to
+    ${user.home}/.ssh/known_hosts.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Whether to halt the build if the command does not complete successfully.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+     <td valign="top">The password.</td>
+     <td valign="top" align="center">Not if you are using key based
+     authentication or the password has been given in the file or
+     todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">keyfile</td>
+     <td valign="top">Location of the file holding the private key.</td>
+     <td valign="top" align="center">Yes, if you are using key based
+     authentication.</td>
+  </tr>
+  <tr>
+    <td valign="top">passphrase</td>
+     <td valign="top">Passphrase for your private key.</td>
+     <td valign="top" align="center">No, defaults to an empty string.</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output file should be appended to or overwritten. Defaults to false, meaning overwrite any existing file.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the 
+      command should be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+      specified time (given in milliseconds). Defaults to 0 which means &quot;wait forever&quot;.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p><b>Run a command on a remote machine using password authentication</b></p>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;dude&quot;
+	password=&quot;yo&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+
+<p><b>Run a command on a remote machine using key authentication</b></p>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;dude&quot;
+	keyfile=&quot;${user.home}/.ssh/id_dsa&quot;
+	passphrase=&quot;yo its a secret&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+
+<p><b>Run a command on a remote machine using key authentication with no passphrase</b></p>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;dude&quot;
+	keyfile=&quot;${user.home}/.ssh/id_dsa&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+
+<p><strong>Security Note:</strong>  Hard coding passwords and/or usernames
+in sshexec task can be a serious security hole.  Consider using variable
+substitution and include the password on the command line.  For example:<br>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;${username}&quot;
+	password=&quot;${password}&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+Invoke ant with the following command line:
+<pre>
+    ant -Dusername=me -Dpassword=mypassword target1 target2
+</pre>
+</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/starteam.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/starteam.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/starteam.html	(revision 14989)
@@ -0,0 +1,990 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>StarTeam Tasks</title>
+</head>
+<body>
+<h1>StarTeam Support</h1>
+<ul>
+  <li><a href="#stcheckout">STCheckout</a></li> 
+  <li><a href="#stcheckin">STCheckin</a></li>
+  <li><a href="#stlabel">STLabel</a></li>
+  <li><a href="#stlist">STList</a></li>
+  <li><a href="#starteam"><i>StarTeam (deprecated) </i></a></li>
+</ul>
+
+<p>
+The StarTeam revision control system was recently acquired by Borland.
+These tasks make use of functions from the StarTeam API to work with that system.  
+As a result they are only available to licensed users of StarTeam.  You must have
+<CODE>starteam-sdk.jar</CODE> in your classpath to run these tasks.
+For more information about the StarTeam API and how to license it, see
+the <a href="http://www.borland.com/starteam/">Borland</a> web site.</p>
+  <p>
+    <em>All the StarTeam task names are in lower case.</em>
+  </p>
+<h3>Important Note on Installation and Licensing:</h3>
+<p>
+<b>On Windows machines, the mere presence of <CODE>starteam-sdk.jar</CODE> on the classpath 
+is not sufficient for getting these tasks to work properly.</b>  These tasks also require a 
+fully-installed and fully-licensed version of the StarGate Runtime.  This is part 
+of a StarTeam client installation or may be installed separately.  The full client
+install is not required.  In particular, the Windows path must include the directory where 
+the StarGate Runtime <CODE>.dll</CODE> files are installed.
+</p><p>
+Earlier versions of Ant (prior to 1.5.2) did not have this restriction because they
+were not as dependent on the StarTeam runtime - which the newer versions use to access
+StarTeam file status information.  The older versions lacked this important capability.
+</p>
+<hr></hr>
+
+<a name="common-params">
+<h2>Common Parameters for All Starteam Tasks</h2></a>
+<p>
+The following parameters, having to do with making the connection to a StarTeam project, are common to all the following tasks except the deprecated <i>StarTeam</i> task.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+
+  <tr>
+    <td valign="top">URL</td>
+    <td valign="top">A string of the form <code>servername:portnum/project/view</code> 
+which enables user to set all of these elements in one string. </td>
+    <td align="center" valign="center"> Either this ...</td>
+  </tr>  
+  <tr>
+    <td valign="top">servername</td>
+    <td valign="top">The name of the StarTeam server.</td>
+    <td align="center" valign="center" rowspan = "4">... or <b>all four</b> of these must be defined.</td>  
+   </tr>
+  <tr>
+    <td valign="top">serverport</td>
+    <td valign="top">The port number of the StarTeam server.</td>
+  </tr>
+  <tr>
+    <td valign="top">projectname</td>
+    <td valign="top">The name of the StarTeam project on which to operate.</td>
+  </tr>
+  <tr>
+    <td valign="top">viewname</td>
+    <td valign="top">The name of the view in the StarTeam project on which to operate.</td>
+  </tr>
+
+
+</table>
+
+<hr></hr>
+
+<a name="stcheckout">
+<h2>STCheckout</h2></a>
+
+<h3>Description</h3>
+
+Checks out files from a StarTeam project.
+
+<p>
+The <i>includes</i> and <i>excludes</i> attributes function differently from
+other tasks in Ant. Inclusion/exclusion by folder is NOT supported.
+</p>
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+
+  <tr>
+    <td valign="top">rootstarteamfolder</td>
+    <td valign="top">The root of the subtree in the StarTeam repository from which to 
+    check out files.  Defaults to the root folder of the view ('/'). 
+      <b><i>If supplied, this should always be an "absolute" path, that is, it should begin with a '/'.  
+      Relative paths have little meaning in this context and confuse StarTeam.</i></b>
+      </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">rootlocalfolder</td>
+    <td valign="top">The local folder which will be the root of the tree to which files are checked out.  If this is not supplied, then the StarTeam "default folder" associated with <i>rootstarteamfolder</i> is used.
+   </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  
+  <tr>
+    <td valign="top">createworkingdirs</td>
+    <td valign="top">creates local folders even when the corresponding StarTeam folder is empty.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">deleteuncontrolled</td>
+    <td valign="top">if true, any files NOT in StarTeam will be deleted.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only check out files that match at least one of the patterns in this list.  Patterns must be separated by <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not check out files that match at least one of the patterns in this list.  Patterns must be separated by  <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">label</td>
+    <td valign="top">Check out files as of this label.  The label must exist in starteam or an exception will be thrown.</td>
+    <td align="center" valign="center" rowspan="2">Either or neither, but not both, may be specified.  Neither <code>locked</code> or <code>unlocked</code> may be true if either <code>label</code> or <code>asofdate</code> is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">asofdate</td>
+    <td valign="top">Check out files as of this date.  The date must
+    be formatted in ISO8601 datetime
+    (<code>yyyy-MM-dd'T'HH:mm:ss</code>), ISO8601
+    date(<code>yyyy-MM-dd</code>) or a user-defined SimpleDateFormat
+    defined in the <code>asofDateFormat</code> attribute.  If the date
+    is not parsable by the default or selected format, an exception
+    will be thrown.  <em>Since Ant 1.6.</em></td>
+  </tr>
+  <tr>
+    <td valign="top">asofdateformat</td>
+    <td valign="top">java.util.SimpleDateFormat compatible string used
+    to parse the <code>asofdate</code> attribute.  <em>Since Ant
+    1.6.</em></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">recursive</td>
+    <td valign="top">Indicates if subfolders should be searched for files to check out.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">forced</td>
+    <td valign="top">If true, checkouts will occur regardless of the status 
+that StarTeam is maintaining for the file.   If false, status will be used to determine which files to check out. Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr> 
+ <tr>
+    <td valign="top">locked</td>
+    <td valign="top">If true, file will be locked against changes by other 
+users.  If false (default) has no effect. 
+    <td align="center" valign="center" rowspan="2">Either or neither, but not both, may be true. Neither may be true if a <code>label</code> or an <code>asofdate</code> is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">unlocked</td>
+    <td valign="top">If true, file will be unlocked so that other users may
+change it.  This is a way to reverse changes that have not yet been checked in.
+If false (default) has no effect.</td> 
+  </tr>
+  <tr>
+    <td valign="top">userepositorytimestamp</td>
+    <td valign="top">true means checked out files will get the repository timestamp.
+false(default) means the checked out files will be timestamped at the time
+of checkout.</td>    <td align="center" valign="top">no</td>
+
+  </tr>
+  <tr>
+    <td valign="top">preloadfileinformation</td>
+    <td valign="top">The StarTeam server has the ability to preload file metadata for an
+    entire tree prior to beginning action on that tree.  Doing so can in some instances 
+    lead to substantially faster actions, particularly over large trees.  Setting this 
+    to "yes" (default) engages this functionality, setting it to "no" turns it off.</td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+    
+  <tr>
+    <td valign="top">convertEOL</td>
+    <td valign="top">If true, (default) all ascii files will have their end-of-line 
+    characters adjusted to that of the local machine on checkout.  This is normally
+    what you'd want but if for some reason you don't want that to happen, set it to false
+    and the files will be checked out with whatever end-of-line characters are used on
+    the server. </td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;stcheckout servername="STARTEAM" 
+              serverport="49201"
+              projectname="AProject" 
+              viewname="AView"
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              forced="true"
+  /&gt;
+</pre>
+
+The minimum necessary to check out files out from a StarTeam server.  This will
+check out all files in the <i>AView</i> view of the <i>AProject</i> project to
+<code>C:\dev\buildtest\co</code>.  Empty folders in StarTeam will have local folders 
+created for them and any non-StarTeam files found in the tree will be deleted.
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView" 
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              forced="true"
+  /&gt;
+</pre>
+And this is a simpler way of accomplishing the same thing as the previous example, using the URL attribute.
+<br></br>
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView" 
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              rootstarteamfolder="\Dev"
+              excludes="*.bak *.old"
+              label="v2.6.001"
+              forced="true"
+  /&gt;
+</pre>
+
+This will check out all files from the <i>Dev</i> folder and below that do not
+end in <i>.bak</i> or <i>.old</i> with the label <i>v2.6.001</i>.  
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              includes="*.htm,*.html"
+              excludes="index.*"
+              forced="true"
+  /&gt;
+</pre>
+
+     
+This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
+<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
+not be checked out by this command.
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              includes="*.htm,*.html"
+              excludes="index.*"
+              forced="true"
+              recursive="false"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check out files in 
+C:\dev\buildtest\co, because of the turning off of the recursive attribute.
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootstarteamfolder="src/java"
+              rootlocalfolder="C:\dev\buildtest\co"
+              forced="true"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootstarteamfolder="src/java"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+             rootlocalfolder="C:\dev\buildtest\co\src\java"
+             forced="true"
+  /&gt;
+</pre>
+
+In the preceding three examples, assuming that the AProject project has a default folder of
+"C:\work\AProject", the first example will check out the tree of files rooted in the src/java folder of the AView view of the AProject in the StarTeam repository to a local tree rooted at C:\dev\buildtest\co, 
+the second to a tree rooted at C:\work\AProject\src\java (since no <i>rootlocalfolder</i> is specified) and the third to a tree rooted at C:\dev\buildtest\co\src\java.  Note also, that since the second example does not set "forced" true, only those files which the repository considers out-of-date will be checked out.
+<hr></hr>
+
+<a name="stcheckin">
+<h2>STCheckin</h2></a>
+
+<h3>Description</h3>
+
+Checks files into a StarTeam project.  Optionally adds files and in the local tree that are not managed by the repository to its control.
+
+<p>
+The <i>includes</i> and <i>excludes</i> attributes function differently from
+other tasks in Ant. Inclusion/exclusion by folder is NOT supported.
+</p>
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">rootstarteamfolder</td>
+    <td valign="top">The root of the subtree in the StarTeam repository into which to 
+    files will be checked.  Defaults to the root folder of the view ('/').
+       <b><i>If supplied, this should always be an "absolute" path, that is, it should begin with a '/'.  
+      Relative paths have little meaning in this context and confuse StarTeam.</i></b></td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">rootlocalfolder</td>
+    <td valign="top">The local folder which will be the root of the tree to which files are checked out.  If this is not supplied, then the StarTeam "default folder" associated with <i>rootstarteamfolder</i> is used. </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  
+
+  <tr>
+    <td valign="top">comment</td>
+    <td valign="top">Checkin comment to be saved with the file.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+
+  <tr>
+    <td valign="top">adduncontrolled</td>
+    <td valign="top">if true, any files or folders NOT in StarTeam will be 
+added to the repository.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only check in files that match at least one of the patterns in this list.  Patterns must be separated by <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not check in files that match at least one of the patterns in this list.  Patterns must be separated by  <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">recursive</td>
+    <td valign="top">Indicates if subfolders should be searched for files to check in.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">forced</td>
+    <td valign="top">If true, checkins will occur regardless of the status 
+that StarTeam is maintaining for the file.  If false, checkins will use this status to decide which files to update.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <td valign="top">unlocked</td>
+    <td valign="top">If true, file will be unlocked so that other users may
+change it.  If false (default) lock status will not change.
+    <td align="center" valign="top">no</td> 
+  </tr>
+  <tr>
+    <td valign="top">preloadfileinformation</td>
+    <td valign="top">The StarTeam server has the ability to preload file metadata for an
+    entire tree prior to beginning action on that tree.  Doing so can in some instances 
+    lead to substantially faster actions, particularly over large trees.  Setting this 
+    to "yes" (default) engages this functionality, setting it to "no" turns it off.</td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+  </table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;stcheckin servername="STARTEAM" 
+             serverport="49201"
+             projectname="AProject" 
+             viewname="AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             forced="true"
+  /&gt;
+</pre>
+
+The minimum necessary to check files into a StarTeam server.  This will
+check all files on the local tree rooted at <code>C:\dev\buildtest\co</code>
+into the <i>AView</i> view of the <i>AProject</i> project in the repository.
+For files and folders in the local tree but not in starteam, nothing will be done.  Since the <i>forced</i> attribute is set, the files which are checked in will be checked in without regard to what the StarTeam repository considers their status to be.  This is a reasonable choice of attributes since StarTeam's status for a file is calculated based on the local file in the StarTeam default directory, not on the directory we are actually working with.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView" 
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             forced="true"
+  /&gt;
+</pre>
+And this is a simpler way of giving the same commands as the command above using the URL shortcut.
+<br></br>
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView" 
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="\Dev"
+             excludes="*.bak *.old"
+             forced="true"
+  /&gt;
+</pre>
+
+This will check all files in to the <i>Dev</i> folder and below that do not
+end in <i>.bak</i> or <i>.old</i> from the tree rooted at"C:\dev\buildtest\co" .  
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             includes="*.htm,*.html"
+             excludes="index.*"
+             forced="true"
+  /&gt;
+</pre>
+
+     
+This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
+<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
+not be checked in by this command.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="src/java"
+             includes="*.htm,*.html"
+             excludes="index.*"
+             forced="true"
+             recursive="false"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check in files from 
+C:\dev\buildtest\co, because of the turning off of the recursive attribute.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="src/java"
+             includes="version.txt"
+             forced="true"
+             recursive="false"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check only in one file, C:\dev\buildtest\co\version.txt to the StarTeam folder src/java.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="src/java"
+             includes="version.java"
+             forced="true"
+             recursive="false"
+             addUncontrolled="true"
+             comment="Fix Bug #667"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check only in one file, C:\dev\buildtest\co\version.java to the StarTeam folder src/java.  Because the <i>addUncontrolled</i> attribute has been set, if StarTeam does not already control this file in this location, it will be added to the repository.  Also, it will write a comment to the repository for this version of the file.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+             rootlocalfolder="C:\dev\buildtest\co"
+             forced="true"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+             rootlocalfolder="C:\dev\buildtest\co\src\java"
+             forced="true"
+  /&gt;
+</pre>
+
+In the preceding three examples, assuming that the AProject project has a default folder of C:\work\buildtest\co\AProject,  
+the first example will check in files from a tree rooted at C:\dev\buildtest\co, 
+the second from a tree rooted at C:\work\buildtest\co\AProject\src\java, 
+and the third from a tree rooted at C:\dev\buildtest\co\src\java all to a tree rooted at src/java
+
+<hr></hr>
+
+<a name="stlabel">
+<h2>STLabel</h2></a>
+
+<h3>Description</h3>
+
+Creates a view label in StarTeam at the specified view.  The label will be classified by StarTeam as a "build label".  This task will fail if there already exists in <i>viewname</i> a label with the same name as the <i>label</i> parameter. 
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+
+  <tr>
+    <td valign="top">label</td>
+    <td valign="top">The name to be given to the label</td>
+    <td align="center" valign="top">yes</td>
+  </tr> 
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">A description of the label to be stored in the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">revisionlabel</td>
+    <td valign="top">Yes means that the label attribute is to be saved as a &quot;revision label&quot;.  No (default) means that it will be saved as a &quot;view label&quot;</td>
+    <td align="center" valign="top">no</td>
+  </tr> 
+  <tr>
+    <td valign="top">buildlabel</td>
+    <td valign="top">Yes means that the label attribute is to be saved as a &quot;build label&quot;.  
+      This means that Change Requests which have an &quot;AddressedIn&quot; field value of &quot;next build&quot;
+       will have this label assigned to that field when the label is created.  
+       No (default) means that no CRs will have this label assigned to them.  This will have no effect if <b>revisionlabel</b> is also true.  </td>
+    <td align="center" valign="top">no</td>
+  </tr> 
+
+ <tr>
+    <td valign="top">lastbuild</td>
+    <td valign="top">The timestamp of the build that will be stored with the label.  Must be formatted <code>yyyyMMddHHmmss</code></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+This example shows the use of this tag.  It will create a View label that is a build label named <i>Version 6.2</i> with
+<i>&quot;Thorough description&quot;</i> as its description.
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property="nowstamp" pattern="yyyyMMddHHmmss" locale="en"/&gt;
+  &lt;/tstamp&gt;  
+  &lt;stlabel URL="STARTEAM:49201/Aproject/AView"
+           username="auser"
+           password="secret"
+           label="Version 6.2"
+           lastbuild="${nowstamp}"
+           description="Thorough description"
+  /&gt;
+</pre>
+This example creates a non-build View label named <i>Version 6.3</i> with
+<i>&quot;Thorough description&quot;</i> as its description.
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property="nowstamp" pattern="yyyyMMddHHmmss" locale="en"/&gt;
+  &lt;/tstamp&gt;  
+  &lt;stlabel URL="STARTEAM:49201/Aproject/AView"
+           username="auser"
+           password="secret"
+           label="Version 6.3"
+           lastbuild="${nowstamp}"
+           description="Thorough description"
+           buildlabel="false"
+  /&gt;
+</pre>
+This example will create a Revision label that is a build label named <i>Version 6.2.00.001</i> with
+<i>&quot;revision label&quot;</i> as its description.
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property="nowstamp" pattern="yyyyMMddHHmmss" locale="en"/&gt;
+  &lt;/tstamp&gt;  
+  &lt;stlabel URL="STARTEAM:49201/Aproject/AView"
+           username="auser"
+           password="secret"
+           label="Version 6.2.00.001"
+           description="revision label"
+           revisionlabel="true"
+  /&gt;
+</pre>
+
+<hr></hr>
+<a name="stlist">
+<h2>STList</h2></a>
+
+<h3>Description</h3>
+
+Produces a listing of the contents of the StarTeam repository at the specified view and StarTeamFolder.  The listing will contain the name of the user, if any, who has the file locked, the size of the file, its lastModifiedDate in the repository, the name of the file, and the status of the local file in the default local directory relative to the repository. 
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+
+  <tr>
+    <td valign="top">rootstarteamfolder</td>
+    <td valign="top">The root of the subtree in the StarTeam repository to be listed.  Defaults to the root folder of the view ('/'). <b><i>If supplied, this should always be an "absolute" path, that is, it should begin with a '/'.  
+      Relative paths have little meaning in this context and confuse StarTeam.</i></b></td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">rootlocalfolder</td>
+    <td valign="top">The local folder which will be the root of the tree to which files are compared.  If this is not supplied, then the StarTeam "default folder" associated with <i>rootstarteamfolder</i> is used and a status field will appear in the listing.  Otherwise, the status field will not appear.
+   </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+    <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only list files that match at least one of the patterns in this list.  Patterns must be separated by <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not list files that match at least one of the patterns in this list.  Patterns must be separated by  <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">label</td>
+    <td valign="top">List files, dates, and statuses as of this label.  The label must exist in starteam or an exception will be thrown.  If not specified, the most recent version of each file will be listed.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">asofdate</td>
+    <td valign="top">List files, dates, and statuses as of this date.
+    The date must be formatted in ISO8601 datetime
+    (<code>yyyy-MM-dd'T'HH:mm:ss</code>), ISO8601
+    date(<code>yyyy-MM-dd</code>) or a user-defined SimpleDateFormat
+    defined in the <code>asofDateFormat</code> attribute.  If the date
+    is not parsable by the default or selected format, an exception
+    will be thrown.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">asofdateformat</td>
+    <td valign="top">java.util.SimpleDateFormat compatible string used
+    to parse the <code>asofdate</code> attribute.  <em>Since Ant
+    1.6.</em></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+
+  <tr>
+    <td valign="top">recursive</td>
+    <td valign="top">Indicates if subfolders should be searched for files to list.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <tr>
+    <td valign="top">listuncontrolled</td>
+    <td valign="top">if true, any files or folders NOT in StarTeam will be included in the listing.
+    If false, they won't.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+    </tr>
+  
+  <tr>
+    <td valign="top">preloadfileinformation</td>
+    <td valign="top">The StarTeam server has the ability to preload file metadata for an
+    entire tree prior to beginning action on that tree.  Doing so can in some instances 
+    lead to substantially faster actions, particularly over large trees.  Setting this 
+    to "yes" (default) engages this functionality, setting it to "no" turns it off.</td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+
+<pre>
+
+  &lt;stlist url="WASHINGTON:49201/build"
+          username="auser"
+          password="secret"
+ /&gt;
+</pre>
+
+The above command might produce the following listing:
+
+<pre>
+   [stlist] Folder: Build (Default folder: C:/work/build)
+   [stlist] Folder: dev (Default folder: C:/work/build/dev)
+   [stlist] Out of date  Sue Developer        1/1/02 7:25:47 PM CST     4368 build.xml
+   [stlist] Missing      George Hacker        1/1/02 7:25:49 PM CST       36 Test01.properties
+   [stlist] Current                           1/1/02 7:25:49 PM CST     4368 build2.xml
+   [stlist] Folder: test (Default folder C:/work/build/dev/test)
+   [stlist] Missing                           1/1/02 7:25:50 PM CST     4368 build2.xml
+</pre>
+
+while adding a <i>rootlocalfolder</i> and an <i>excludes</i> param ...
+
+<pre>
+
+  &lt;stlist url="WASHINGTON:49201/build"
+          username="auser"
+          password="secret"
+          rootlocalfolder="srcdir2"
+          excludes="*.properties"
+ /&gt;
+</pre>
+
+might produce this listing. The status is missing because we are not going against the default folder.
+
+<pre>
+   [stlist] overriding local folder to srcdir2
+   [stlist] Folder: Build (Local folder: srcdir2)
+   [stlist] Folder: dev (Local folder: srcdir2/dev)
+   [stlist] Sue Developer        1/1/02 7:25:47 PM CST     4368 build.xml
+   [stlist]                      1/1/02 7:25:49 PM CST     4368 build2.xml
+   [stlist] Folder: test (Local folder: srcdir2/dev/test)
+   [stlist]                      1/1/02 7:25:50 PM CST     4368 build2.xml
+ 
+
+</pre>
+
+<hr></hr>
+
+<a name="starteam">
+<h2>Starteam</h2></a>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the <a href="#stcheckout">STCheckout</a> task instead.</i></p>
+<h3>Description</h3>
+
+Checks out files from a StarTeam project.
+
+<p>
+The <i>includes</i> and <i>excludes</i> attributes function differently from
+other tasks in Ant.  Multiple patterns must be separated by spaces, not
+commas.  See the examples for more information.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>  
+  <tr>
+    <td valign="top">servername</td>
+    <td valign="top">The name of the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">serverport</td>
+    <td valign="top">The port number of the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">projectname</td>
+    <td valign="top">The name of the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">viewname</td>
+    <td valign="top">The name of the view in the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+
+  <tr>
+    <td valign="top">targetfolder</td>
+    <td valign="top">The folder to which files are checked out.  What this precisely means is determined by the <i>targetFolderAbsolute</i> param.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>  
+  <tr>
+    <td valign="top">targetFolderAbsolute</td>
+    <td valign="top">Determines how <i>targetfolder</i> is interpreted, that is, whether the StarTeam "default folder" for the project is factored in (false) or whether <i>targetFolder</i> is a complete mapping to <i>foldername</i> (true).
+      If "true", the target tree will be rooted at <i>targetfolder+"default folder"</i>.  If false, the target tree will be rooted at <i>targetfolder</i>.  Defaults to "false".  </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">foldername</td>
+    <td valign="top">The subfolder in the project from which to check out files.</td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">Overwrite existing folders if this is set to "true".  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">recursion</td>
+    <td valign="top">Indicates if subfolders should be searched for files to check out.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Provides progress information.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only check out files that match at least one of the patterns in this list.  Patterns must be separated by spaces.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not check out files that match at least one of the patterns in this list.  Patterns must be separated by spaces.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+  /&gt;
+</pre>
+
+The minimum necessary to check out files out from a StarTeam server.  This will
+check out all files in the <i>AView</i> view of the <i>AProject</i> project to
+<code>C:\dev\buildtest\co</code>.
+
+<pre>
+  &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            foldername="\Dev"
+            excludes="*.bak *.old"
+            force="true"
+  /&gt;
+</pre>
+
+This will checkout all files from the <i>Dev</i> folder and below that do not
+end in <i>.bak</i> or <i>.old</i>.  The force flag will cause any existing files to be
+overwritten by the version in StarTeam.
+
+<pre>
+  &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            includes="*.htm *.html"
+            excludes="index.*"
+  /&gt;
+</pre>
+
+
+       
+This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
+<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
+not be checked out by this command.
+
+
+<pre>
+ &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            foldername="src/java"
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            targetfolderabsolute="true"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            foldername="src/java"
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            targetfolderabsolute ="false"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            foldername="src/java"
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co\src\java"
+            targetfolderabsolute="true"
+  /&gt;
+</pre>
+
+In the preceding three examples, assuming that the AProject project has a default folder of
+"AProject", the first example will check the files located in starteam under src/java out to a tree rooted at C:\dev\buildtest\co, 
+the second to a tree rooted at C:\dev\buildtest\co\AProject\src\java and the third to a tree rooted at C:\dev\buildtest\co\src\java.
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/stylebook.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/stylebook.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/stylebook.html	(revision 14989)
@@ -0,0 +1,89 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>StyleBook Task</title>
+</head>
+
+<body>
+
+<h2><a name="stylebook">Stylebook</a></h2>
+<h3>Description</h3>
+
+<strong>This task is deprecated as stylebook itself has been
+deprecated by the Apache XML community.</strong>
+
+<p>This executes the apache Stylebook documentation generator. 
+Unlike the commandline version of this tool, all three arguments
+are required to run stylebook.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+<p>
+ Being extended from <code>&lt;Java&gt;</code>, all the parent's attributes
+ and options are available. Do not set any apart from the <tt>classpath</tt>
+ as they are not guaranteed to be there in future.
+ </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">book</td>
+    <td valign="top">the book xml file that the documentation generation starts from
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">skindirectory</td>
+    <td valign="top">the directory that contains the stylebook skin
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">targetdirectory</td>
+    <td valign="top">the destination directory where the documentation is generated 
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<p>
+The user can also specify the nested <code>&lt;classpath&gt;</code> element which defines classpath 
+in which the task is executed.</p>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;stylebook targetdirectory=&quot;build/docs&quot; 
+           book=&quot;src/xdocs/book.xml&quot; 
+           skindirectory=&quot;src/skins/myskin&quot;/&gt;
+</pre>
+</blockquote>
+The above will generate documentation in build/docs starting from the book 
+src/xdocs/book.xml and using the skin located in directory src/skins/myskin.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/symlink.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/symlink.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/symlink.html	(revision 14989)
@@ -0,0 +1,140 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Symlink Task</title>
+</head>
+
+<body>
+
+<h2><a name="symlink">Symlink</a></h2>
+<h3>Description</h3>
+<p> Manages symbolic links on Unix based platforms. Can be used to
+make an individual link, delete a link, create multiple links from properties files, 
+or create properties files describing links in the specified directories.
+Existing links are not overwritten by default.
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select a
+set of links to record, or a set of property files to create links from. </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">The type of action to perform, may be "single", 
+    "record", "recreate" or "delete".</td>
+    <td valign="top" align="center">No, defaults to single.</td>
+  </tr>
+  <tr>
+    <td valign="top">link</td>
+    <td valign="top">The name of the link to be created or deleted.</td>
+    <td valign="center" align="center" >required for 
+    action="single" or "delete". Ignored in other actions.</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">The resource the link should point to.</td>
+    <td valign="top" align="center">required for action="single". Ignored in other actions.</td>
+  </tr>
+  <tr>
+    <td valign="top">linkfilename</td>
+    <td valign="top">The name of the properties file to create in 
+    each included directory.</td>
+    <td valign="top" align="center">required for action="record". 
+    Ignored in other actions.</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite existing links or not.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Stop build if true, log a warning message, but do not stop the build,
+       when the an error occurs if false.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+ 
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s
+ are used when action = "record" to select directories and linknames to be recorded. 
+ They are also used when action = "recreate" to specify both the name of the property 
+ files to be processed, and the directories in which they can be found. At least one 
+ fileset is required for each case.</p>
+ 
+<h3>Examples</h3>
+
+  <p> Make a link named "foo" to a resource named "bar.foo" in subdir:</p>
+  <pre>
+  &lt;symlink link="${dir.top}/foo" resource="${dir.top}/subdir/bar.foo"/&gt;
+  </pre>
+ 
+  <p> Record all links in subdir and it's descendants in files named
+  "dir.links"</p>
+  <pre>
+  &lt;symlink action="record" linkfilename="dir.links"&gt;
+     &lt;fileset dir="${dir.top}" includes="subdir&#47;**"/&gt;
+  &lt;/symlink&gt;
+  </pre>
+ 
+  <p> Recreate the links recorded in the previous example:</p>
+  <pre>
+  &lt;symlink action="recreate"&gt;
+     &lt;fileset dir="${dir.top}" includes="subdir&#47;**&#47;dir.links"/&gt;  
+  &lt;/symlink&gt;
+  </pre>
+ 
+ <p> Delete a link named "foo":
+ <pre>
+ &lt;symlink action="delete" link="${dir.top}/foo"/&gt;
+ </pre>
+
+  <p><strong>Java 1.2 and earlier:</strong> Due to limitations on executing system
+  level commands in Java versions earlier than 1.3 this task may have difficulty
+  operating with a relative path in ANT_HOME. The typical symptom is an 
+  IOException where ant can't find /some/working/directory${ANT_HOME}/bin/antRun
+  or something similar. The workaround is to change your ANT_HOME environment
+  variable to an absolute path, which will remove the /some/working/directory portion
+  of the above path and allow ant to find the correct commandline execution script.
+ 
+  <p><strong>LIMITATIONS:</strong> Because Java has no direct support for
+  handling symlinks this task divines them by comparing canonical and
+  absolute paths. On non-unix systems this may cause false positives.
+  Furthermore, any operating system on which the command
+  <code>ln -s &lt;linkname&gt; &lt;resourcename&gt;</code> is not a valid 
+  command on the command line will not be able to use action="single" or 
+  action="recreate". Action="record" and action=delete should still work. Finally, 
+  the lack of support for symlinks in Java means that all links are recorded as 
+  links to the <strong>canonical</strong> resource name. Therefore the link:
+  <code>link --> subdir/dir/../foo.bar</code> will be recorded as
+  <code>link=subdir/foo.bar</code> and restored as
+  <code>link --> subdir/foo.bar</code></p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/telnet.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/telnet.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/telnet.html	(revision 14989)
@@ -0,0 +1,155 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Telnet Task</title>
+</head>
+
+<body>
+
+<h2><a name="telnet">Telnet</a></h2>
+<h3>Description</h3>
+Task to automate a remote telnet session. The task uses 
+nested <tt>&lt;read&gt;</tt> to indicate strings to wait for, and
+<tt>&lt;write&gt;</tt> tags to specify text to send.  
+
+<p>If you do specify a userid and password, the system will 
+assume a common unix prompt to wait on. This behavior can be easily over-ridden.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>userid</td>
+     <td>the login id to use on the telnet server.</td>
+     <td>Only if password is specified</td>
+  </tr>
+  <tr>
+     <td>password</td>
+     <td>the login password to use on the telnet server.</td>
+     <td>Only if userid is specified</td>
+  </tr>
+  <tr>
+     <td>server</td>
+     <td>the address of the remote telnet server.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>port</td>
+     <td>the port number of the remote telnet server. Defaults to port 23.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>initialCR</td>
+     <td>send a cr after connecting (&quot;yes&quot;). Defaults to &quot;no&quot;.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>timeout</td>
+     <td>set a default timeout to wait for a response. Specified in seconds. Default is no timeout.</td>
+     <td>No</td>
+  </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+The commands to send to the server, and responses to wait for, are
+described as nested elements.  
+
+<h4>read</h4>
+
+<p>declare (as a text child of this element) a string to wait for.
+The element supports the timeout attribute, which overrides any
+timeout specified for the task as a whole. It also has a <tt>string</tt>
+attribute, which is an alternative to specifying the string as 
+a text element.
+</p>
+<i>Always declare an opening and closing
+<code>&lt;read&gt;</code> element to ensure that statements are not sent before
+the connection is ready, and that the connection is not broken before
+the final command has completed.
+</i>
+<h4>write</h4>
+
+<p>describes the text to send to the server. The <tt>echo</tt> boolean
+attribute controls whether the string is echoed to the local log; 
+this is "true" by default
+</p>
+<h3>Examples</h3>
+A simple example of connecting to a server and running a command.  This assumes
+ a prompt of &quot;ogin:&quot; for the userid, and a prompt of &quot;assword:&quot;
+ for the password.
+
+<blockquote><pre>
+&lt;telnet userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot;&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+   &lt;write&gt;ls&lt;/write&gt;
+   &lt;read string=&quot;/home/bob&quot;/&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+
+This task can be rewritten as:
+<blockquote><pre>
+&lt;telnet server=&quot;localhost&quot;&gt;
+   &lt;read&gt;ogin:&lt;/read&gt;
+   &lt;write&gt;bob&lt;/write&gt;
+   &lt;read&gt;assword:&lt;/read&gt;
+   &lt;write&gt;badpass&lt;/write&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+   &lt;write&gt;ls&lt;/write&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+
+A timeout can be specified at the <code>&lt;telnet&gt;</code> level or at the <code>&lt;read&gt;</code> level. 
+This will connect, issue a sleep command that is suppressed from displaying and wait 
+10 seconds before quitting.
+<blockquote><pre>
+&lt;telnet userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; timeout=&quot;20&quot;&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+   &lt;write echo=&quot;false&quot;&gt;sleep 15&lt;/write&gt;
+   &lt;read timeout=&quot;10&quot;&gt;/home/bob&lt;/read&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+
+The task can be used with other ports as well:
+<blockquote><pre>
+&lt;telnet port=&quot;80&quot; server=&quot;localhost&quot; timeout=&quot;20&quot;&gt;
+   &lt;read/&gt;
+   &lt;write&gt;GET / http/0.9&lt;/write&gt;
+   &lt;write/&gt;
+   &lt;read timeout=&quot;10&quot;&gt;&amp;lt;/HTML&amp;gt;&lt;/read&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+<p>
+To use this task against the WinNT telnet service, you need to configure the service to use 
+classic authentication rather than NTLM negotiated authentication. 
+This can be done in the Telnet Server Admin app: 
+select "display/change registry settings", then "NTLM", then set the value of NTLM to 1.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/translate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/translate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/translate.html	(revision 14989)
@@ -0,0 +1,182 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Translate Task</title>
+</head>
+
+<body>
+
+<h2><a name="translate">Translate</a></h2>
+<h3>Description</h3>
+<p>Identifies keys in files delimited by special tokens
+and translates them with values read from resource bundles.
+</p>
+<p>
+A resource bundle contains locale-specific key-value pairs.
+A resource bundle is a hierarchical set of property files.
+A bundle name makes up its base family name.  Each file that
+makes up this bundle has this name plus its locale.  For example,
+if the resource bundle name is MyResources, the file that contains
+German text will take the name MyResources_de.  In addition to
+language, country and variant are also used to form the files in
+the bundle.
+</p>
+<p>
+The resource bundle lookup searches for resource files with various
+suffixes on the basis of (1) the desired locale and (2) the default
+locale (basebundlename), in the following order from lower-level
+(more specific) to parent-level (less specific):
+</p>
+<pre>
+basebundlename + &quot;_&quot; + language1 + &quot;_&quot; + country1 + &quot;_&quot; + variant1
+basebundlename + &quot;_&quot; + language1 + &quot;_&quot; + country1
+basebundlename + &quot;_&quot; + language1
+basebundlename
+basebundlename + &quot;_&quot; + language2 + &quot;_&quot; + country2 + &quot;_&quot; + variant2
+basebundlename + &quot;_&quot; + language2 + &quot;_&quot; + country2
+basebundlename + &quot;_&quot; + language2
+</pre>
+<p>
+The file names generated thus are appended with the string &quot;.properties&quot;
+to make up the file names that are to be used.
+</p>
+<p>
+File encoding is supported.  The encoding scheme of the source files,
+destination files and the bundle files can be specified.
+
+Destination files can be explicitly overwritten using the
+<var>forceoverwrite</var> attribute.  If <var>forceoverwrite</var>
+is false, the destination file is overwritten only if either the
+source file or any of the files that make up the bundle have been
+modified after the destination file was last modified.
+</p>
+<p>
+<em>New in Ant 1.6:</em><br>
+Line endings of source files are preserved in the translated files.
+</p>
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select files to
+translate.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">Destination directory where destination files are
+      to be created.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">starttoken</td>
+    <td valign="top">The starting token to identify keys.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">endtoken</td>
+    <td valign="top">The ending token to identify keys.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">bundle</td>
+    <td valign="top">Family name of resource bundle.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">bundlelanguage</td>
+    <td valign="top">
+        Locale specific language of resource bundle.  Defaults to
+        default locale's language.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bundlecountry</td>
+    <td valign="top">
+        Locale specific country of resource bundle.  Defaults to
+        default locale's country.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bundlevariant</td>
+    <td valign="top">
+        Locale specific variant of resource bundle.  Defaults to
+        the default variant of the country and language being used.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcencoding</td>
+    <td valign="top">Source file encoding scheme.  Defaults to
+    system default file encoding.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">destencoding</td>
+    <td valign="top">Destination file encoding scheme.  Defaults to
+    source file encoding.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bundleencoding</td>
+    <td valign="top">Resource Bundle file encoding scheme.  Defaults to
+    source file encoding.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer. Defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSets</a> are used to select files that
+ contain keys for which value translated files are to be generated.
+</p>
+<h3>Examples</h3>
+<p><b>Translate source file encoded in english into its japanese
+equivalent using a resource bundle encoded in japanese.
+</b></p>
+<pre>
+  &lt;translate toDir=&quot;$(dest.dir}/ja&quot;
+        starttoken=&quot;#&quot;
+        endtoken=&quot;#&quot;
+        bundle=&quot;resource/BaseResource&quot;
+        bundlelanguage=&quot;ja&quot;
+        forceoverwrite=&quot;yes&quot;
+        srcencoding=&quot;ISO8859_1&quot;
+        destencoding=&quot;SJIS&quot;
+        bundleencoding=&quot;SJIS&quot;&gt;
+        &lt;fileset dir=&quot;${src.dir}&quot;&gt;
+            &lt;include name=&quot;**/*.jsp&quot;/&gt;
+        &lt;/fileset&gt;
+  &lt;/translate&gt;
+</pre>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/vbc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/vbc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/vbc.html	(revision 14989)
@@ -0,0 +1,470 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Vbc
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Vbc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">This task compiles Visual Basic.NET source into executables or modules.  <p>For historical reasons the pattern <code>**/*.vb</code> is preset as includes list and you can not override it with an explicit includes attribute.  Use nested <code>&lt;src&gt;</code> elements instead of the basedir attribute if you need more control.</p></font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        This task compiles Visual Basic.NET source into executables or modules. The task requires vbc.exe on the execute path, unless it or an equivalent program is specified in the <tt>executable</tt> parameter <p> All parameters are optional: <code>&lt;vbc/&gt;</code> should suffice to produce a debug build of all *.vb files. <p> The task is a directory based task, so attributes like <tt>includes=&quot;**\/*.vb&quot;</tt> and <tt>excludes=&quot;broken.vb&quot;</tt> can be used to control the files pulled in. By default, all *.vb files from the project folder down are included in the command. When this happens the destFile -if not specified- is taken as the first file in the list, which may be somewhat hard to control. Specifying the output file with <tt>destfile</tt> is prudent. </p> <p> Also, dependency checking only works if destfile is set. As with <code>&lt;csc&gt;</code> nested <tt>src</tt> filesets of source, reference filesets, definitions and resources can be provided. <p> Example </p> <pre>&lt;vbc optimize=&quot;true&quot; debug=&quot;false&quot; warnLevel=&quot;4&quot; targetType=&quot;exe&quot; definitions=&quot;RELEASE&quot; excludes=&quot;src/unicode_class.vb&quot; mainClass = &quot;MainApp&quot; destFile=&quot;NetApp.exe&quot; optionExplicit=&quot;true&quot; optionCompare=&quot;text&quot; references="System.Xml,System.Web.Xml" &gt; &lt;reference file="${testCSC.dll}"/&gt; &lt;define name="RELEASE"/&gt; &lt;define name="DEBUG" if="debug.property"/&gt; &lt;define name="def3" unless="def2.property"/&gt; &lt;/vbc&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="24">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">imports</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Declare global imports for namespaces in referenced metadata files.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optioncompare</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Specify binary- or text-style string comparisons. Defaults to "binary"</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optionexplicit</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether to require explicit declaration of variables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optionstrict</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Enforce strict language semantics.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">removeintchecks</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether to remove integer checks. Default false.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">rootnamespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Specifies the root namespace for all type declarations.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/vss.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/vss.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/vss.html	(revision 14989)
@@ -0,0 +1,823 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Microsoft Visual SourceSafe(VSS) Tasks</title>
+</head>
+<body>
+<h1>Microsoft Visual SourceSafe Tasks User Manual</h1>
+<p>by</p>
+<ul>
+    <li>Craig Cottingham</li>
+    <li>Andrew Everitt</li>
+    <li>Balazs Fejes 2</li>
+    <li><a href="mailto:Glenn_Twiggs@bmc.com">Glenn_Twiggs@bmc.com</a></li>
+    <li>Martin Poeschl (<a href="mailto:mpoeschl@marmot.at">mpoeschl@marmot.at</a>)</li>
+    <li>Phillip Wells</li>
+    <li>Jon Skeet (<a href="mailto:jon.skeet@peramon.com">jon.skeet@peramon.com</a>)</li>
+    <li>Nigel Magnay (<a href="mailto:nigel.magnay@parsec.co.uk">nigel.magnay@parsec.co.uk</a>)</li>
+    <li>Gary S. Weaver</li>
+    <li>Jesse Stockall</li>
+ </ul>
+<hr>
+<h2>Contents</h2>
+<ul>
+    <li><a href="#intro">Introduction</a></li>
+    <li><a href="#tasks">The Tasks</a></li>
+</ul>
+<br>
+<h2><a name="intro">Introduction</a></h2>
+<p>These tasks provide an interface to the
+<a href="http://msdn.microsoft.com/ssafe/default.asp" target="_top">Microsoft Visual SourceSafe</a> SCM.
+The <code>org.apache.tools.ant.taskdefs.optional.vss</code> package consists of a simple framework to support
+vss functionality as well as some Ant tasks encapsulating frequently used vss commands.
+Although it is possible to use these commands on the desktop,
+they were primarily intended to be used by automated build systems.</p>
+<p>
+If you get a CreateProcesss IOError=2 when running these, it means
+that ss.exe was not found. Check to see if you can run it from the
+command line -you may need to alter your path, or set the <tt>ssdir</tt>
+property.
+<h2><a name="tasks">The Tasks</a></h2>
+
+<table border="0" cellspacing="0" cellpadding="3">
+    <tr>
+        <td><a href="#vssget">vssget</a></td>
+        <td>Retrieves a copy of the specified VSS file(s).</td>
+    </tr>
+    <tr>
+        <td><a href="#vsslabel">vsslabel</a></td>
+        <td>Assigns a label to the specified version or current version of a file or project.</td>
+    </tr>
+    <tr>
+        <td><a href="#vsshistory">vsshistory</a></td>
+        <td>Shows the history of a file or project in VSS.</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscheckin">vsscheckin</a></td>
+        <td>Updates VSS with changes made to a checked out file, and unlocks the VSS master copy.</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscheckout">vsscheckout</a></td>
+        <td>Copies a file from the current project to the current folder, for the purpose of editing.</td>
+    </tr>
+    <tr>
+        <td><a href="#vssadd">vssadd</a></td>
+        <td>Adds a new file into the VSS Archive</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscp">vsscp</a></td>
+        <td>Change the current project being used in VSS</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscreate">vsscreate</a></td>
+        <td>Creates a project in VSS.</td>
+    </tr>
+</table>
+
+<hr>
+<h2>Task Descriptions</h2>
+
+<!-- VSSGET -->
+
+<h2><a name="vssget">VssGet</a></h2>
+<h3>Description</h3>
+Task to perform GET commands to Microsoft Visual SourceSafe.
+<p>If you specify two or more attributes from version, date and
+label only one will be used in the order version, date, label.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false; default false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false; default false. Note however that in the SourceSafe UI
+     , there is a setting accessed via Tools/Options/GeneralTab called
+     &quot;Act on projects recursively&quot;.  If this setting is checked,
+     then the recursive attribute is effectively ignored, and the get
+     will always be done recursively
+     </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>version</td>
+     <td>a version number to get</td>
+     <td rowspan="3">No, only one of these allowed</td>
+  </tr>
+  <tr>
+     <td>date</td>
+     <td>a date stamp to get at</td>
+  </tr>
+  <tr>
+     <td>label</td>
+     <td>a label to get for</td>
+  </tr>
+  <tr>
+     <td>quiet</td>
+     <td>suppress output (off by default)</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>What to respond with (sets the -I option). By default, -I- is
+     used; values of Y or N will be appended to this.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>writablefiles</td>
+    <td>Behavior when local files are writable. Valid options are: <code>replace</code>, 
+        <code>skip</code> and <code>fail</code>; Defaults to <code>fail</code>
+        <br><code>skip</code> implies <code>failonerror=false</code></td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>filetimestamp</td>
+    <td>Set the behavior for timestamps of local files. Valid options are <code>current</code>, 
+        <code>modified</code>, or <code>updated</code>. Defaults to <code>current</code>.</td> 
+    <td>No</td>
+  </tr>
+</table>
+<p>Note that only one of version, date or label should be specified</p>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vssget localPath=&quot;C:\mysrc\myproject&quot;
+        recursive=&quot;true&quot;
+        label=&quot;Release1&quot;
+        login=&quot;me,mypassword&quot;
+        vsspath=&quot;$/source/aProject&quot;
+        writable=&quot;true&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a get on the VSS-Project <i>$/source/myproject</i> using the username
+<i>me</i> and the password <i>mypassword</i>. It will recursively get the files
+which are labeled <i>Release1</i> and write them to the local directory
+<i>C:\mysrc\myproject</i>. The local files will be writable.</p>
+<hr>
+
+<!-- VSSLABEL -->
+
+<h2><a name="vsslabel">VssLabel</a></h2>
+<h3>Description</h3>
+Task to perform LABEL commands to Microsoft Visual SourceSafe.
+<p>Assigns a label to the specified version or current version of a file or
+project.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+   <tr>
+      <td>label</td>
+      <td>A label to apply to the hierarchy</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>version</td>
+      <td>An existing file or project version to label. By default the current
+      version is labeled.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>The comment to use for this label. Empty or '-' for no comment.</td>
+      <td>No</td>
+   </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>What to respond with (sets the -I option). By default, -I- is
+     used; values of Y or N will be appended to this.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsslabel vsspath=&quot;$/source/aProject&quot;
+          login=&quot;me,mypassword&quot;
+          label=&quot;Release1&quot;/&gt;
+</pre>
+</blockquote>
+<p>Labels the current version of the VSS project <i>$/source/aProject</i> with
+the label <i>Release1</i> using the username <i>me</i> and the password
+<i>mypassword</i>.
+</p>
+<blockquote>
+<pre>
+&lt;vsslabel vsspath=&quot;$/source/aProject/myfile.txt&quot;
+          version=&quot;4&quot;
+          label=&quot;1.03.004&quot;/&gt;
+</pre>
+</blockquote>
+<p>Labels version 4 of the VSS file <i>$/source/aProject/myfile.txt</i> with the
+label <i>1.03.004</i>. If this version already has a label, the operation (and
+the build) will fail.
+</p>
+<hr>
+
+<!-- VSSHISTORY -->
+
+<h2><a name="vsshistory">VssHistory</a></h2>
+<h3>Description</h3>
+Task to perform HISTORY commands to Microsoft Visual SourceSafe.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>fromDate</td>
+    <td>Start date for comparison</td>
+    <td>See below</td>
+  </tr>
+  <tr>
+    <td>toDate</td>
+    <td>End date for comparison</td>
+    <td>See below</td>
+  </tr>
+  <tr>
+    <td>dateFormat</td>
+    <td>Format of dates in fromDate and toDate. Used when calculating dates with
+      the numdays attribute. This string uses the formatting rules of SimpleDateFormat.
+      Defaults to DateFormat.SHORT.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>fromLabel</td>
+    <td>Start label for comparison</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>toLabel</td>
+    <td>Start label for comparison</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>numdays</td>
+    <td>The number of days for comparison.</td>
+    <td>See below</td>
+  </tr>
+  <tr>
+    <td>output</td>
+    <td>File to write the diff.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>recursive</td>
+    <td>true or false</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>style</td>
+    <td>brief, codediff, default or nofile. The default is default.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>user</td>
+    <td>Name the user whose changes we would like to see</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h4>Specifying the time-frame</h4>
+<p>There are different ways to specify what time-frame you wish to evaluate:</p>
+<ul>
+  <li>Changes between two dates: Specify both <code>fromDate</code> and <code>toDate</code> </li>
+  <li>Changes before a date: Specify <code>toDate</code></li>
+  <li>Changes after a date: Specify <code>fromDate</code></li>
+  <li>Changes X Days before a date: Specify <code>toDate</code> and (negative!) <code>numDays</code></li>
+  <li>Changes X Days after a date: Specify <code>fromDate</code> and <code>numDays</code></li>
+</ul>
+
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>
+&lt;vsshistory vsspath=&quot;$/myProject&quot; recursive=&quot;true&quot;
+            fromLabel=&quot;Release1&quot;
+            toLabel=&quot;Release2&quot;/&gt;
+</pre>
+</blockquote>
+<p>Shows all changes between &quot;Release1&quot; and &quot;Release2&quot;.</p>
+
+<blockquote>
+  <pre>
+&lt;vsshistory vsspath=&quot;$/myProject&quot; recursive=&quot;true&quot;
+            fromDate=&quot;01.01.2001&quot;
+            toDate=&quot;31.03.2001&quot;/&gt;
+</pre>
+</blockquote>
+<p>Shows all changes between January 1st 2001 and March 31st 2001 (in Germany, date must be specified according to your locale).</p>
+
+<blockquote>
+  <pre>
+&lt;tstamp&gt;
+  &lt;format property=&quot;to.tstamp&quot; pattern=&quot;M-d-yy;h:mma&quot;/&gt;
+&lt;/tstamp&gt;
+
+&lt;vsshistory vsspath=&quot;$/myProject&quot; recursive=&quot;true&quot;
+            numDays=&quot;-14&quot;
+            dateFormat=&quot;M-d-yy;h:mma&quot;
+            toDate=&quot;${to.tstamp}&quot;/&gt;
+</pre>
+</blockquote>
+<p>Shows all changes in the 14 days before today.</p>
+<hr>
+
+<!-- VSSCHECKIN -->
+
+<h2><a name="vsscheckin">VssCheckin</a></h2>
+<h3>Description</h3>
+Task to perform CHECKIN commands to Microsoft Visual SourceSafe.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>comment</td>
+     <td>Comment to use for the files that where checked in.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>'Y', 'N' or empty. Specify how to reply to questions from VSS.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscheckin vsspath=&quot;$/test/test*&quot;
+            localpath=&quot;D:\build\&quot;
+            comment=&quot;Modified by automatic build&quot;/&gt;
+</pre>
+</blockquote>
+<p>Checks in the file(s) named <i>test*</i> in the project <i>$/test</i> using
+the local directory <i>D:\build</i>.</p>
+<hr>
+
+<!-- VSSCHECKOUT -->
+
+<h2><a name="vsscheckout">VssCheckout</a></h2>
+<h3>Description</h3>
+Task to perform CHECKOUT commands to Microsoft Visual SourceSafe.
+<p>If you specify two or more attributes from version, date and
+label only one will be used in the order version, date, label.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>version</td>
+     <td>a version number to get</td>
+     <td rowspan="3">No, only one of these allowed</td>
+  </tr>
+  <tr>
+     <td>date</td>
+     <td>a date stamp to get at</td>
+  </tr>
+  <tr>
+     <td>label</td>
+     <td>a label to get for</td>
+  </tr>
+  <tr>
+    <td>writablefiles</td>
+    <td>Behavior when local files are writable. Valid options are: <code>replace</code>, 
+        <code>skip</code> and <code>fail</code>; Defaults to <code>fail</code>
+        <br><code>skip</code> implies <code>failonerror=false</code></td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>filetimestamp</td>
+    <td>Set the behavior for timestamps of local files. Valid options are <code>current</code>, 
+        <code>modified</code>, or <code>updated</code>. Defaults to <code>current</code>.</td> 
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>getlocalcopy</td>
+    <td>Set the behavior to retrieve local copies of the files. Defaults to true.</td> 
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscheckout vsspath=&quot;$/test&quot;
+             localpath=&quot;D:\build&quot;
+             recursive=&quot;true&quot;
+             login=&quot;me,mypass&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a recursive checkout of the project <i>$/test</i> to the directory D:\build.
+</p>
+<hr>
+
+<!-- VSSADD -->
+
+<h2><a name="vssadd">VssAdd</a></h2>
+<h3>Description</h3>
+Task to perform ADD commands to Microsoft Visual SourceSafe.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Specify the local file(s) to add to VSS</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>comment</td>
+     <td>Comment to use for the files that where checked in.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>'Y', 'N' or empty. Specify how to reply to questions from VSS.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vssadd localpath=&quot;D:\build\build.00012.zip&quot;
+            comment=&quot;Added by automatic build&quot;/&gt;
+</pre>
+</blockquote>
+<p>Add the file named build.00012.zip into the project current working
+directory (see vsscp).</p>
+<hr>
+
+<!-- VSSCP -->
+
+<h2><a name="vsscp">VssCp</a></h2>
+<h3>Description</h3>
+<p>Task to perform CP (Change Project) commands to Microsoft Visual SourceSafe.</p>
+<p>This task is typically used before a VssAdd in order to set the target project</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project you wish to
+         make the current project.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscp vsspath=&quot;$/Projects/ant&quot;/&gt;
+</pre>
+</blockquote>
+<p>Sets the current VSS project to <i>$/Projects/ant</i>.</p>
+<hr>
+
+<!-- VSSCREATE -->
+
+ <h2><a name="vsscreate">VssCreate</a></h2>
+ <h3>Description</h3>
+ Task to perform CREATE commands to Microsoft Visual Source Safe.
+ <p>Creates a new project in VSS.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>login</td>
+    <td>username,password</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>vsspath</td>
+    <td>SourceSafe path of project to be created</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>ssdir</td>
+    <td>directory where <code>ss.exe</code> resides. By default the task expects it to be in the PATH.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>quiet</td>
+    <td>suppress output (off by default)</td>
+    <td>No</td>
+   </tr>
+  <tr>
+    <td>failOnError</td>
+    <td>fail if there is an error creating the project (true by default)</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>autoresponse</td>
+    <td>What to respond with (sets the -I option). By default, -I- is used; values of Y or N will be appended to this.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>The comment to use for this label. Empty or '-' for no comment.</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscreate vsspath=&quot;$/existingProject/newProject&quot;/&gt;
+</pre>
+</blockquote>
+<p>Creates the VSS-Project <i>$/existingProject/newProject</i>.</p>
+<hr>
+
+<!-- Footer -->
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/wljspc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/wljspc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/wljspc.html	(revision 14989)
@@ -0,0 +1,99 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head><link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>WLJSPC Task</title></head>
+<body>
+<h1>wljspc</h1>
+<h3>Description</h3>
+<p>Class to precompile JSP's using weblogic's jsp compiler (weblogic.jspc)</p>
+Tested only on Weblogic 4.5.1 - NT4.0 and Solaris 5.7,5.8<br>
+<h3>Parameters</h3>
+<table border="1" cellPadding="2" cellSpacing="0">
+  <tbody>
+    <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+    </tr>
+    <tr>
+      <td>src</td>
+      <td>root of source tree for JSP, ie, the document root for your weblogic server</td>
+      <td>Yes</td>
+    </tr>
+    <tr>
+      <td>
+dest</td>
+      <td> root of destination directory, what you have set as WorkingDir in the weblogic properties</td>
+      <td>Yes</td>
+    </tr>
+    <tr>
+      <td>
+package</td>
+      <td> start package name under which your JSP's would be compiled</td>
+      <td>Yes</td>
+    </tr>
+    <tr>
+      <td>
+classpath</td>
+      <td>Class path to use when compiling jsp's</td>
+      <td>Yes</td>
+    </tr>
+  </tbody>
+</table>
+<p>
+<br>
+
+A classpath should be set which contains the weblogic classes as well as all application classes<br>
+referenced by the JSP. The system classpath is also appended when the jspc is called, so you may<br>
+choose to put everything in the classpath while calling Ant. However, since presumably the JSP's will reference<br>
+classes being build by Ant, it would be better to explicitly add the classpath in the task<br>
+<br>
+The task checks timestamps on the JSP's and the generated classes, and compiles<br>
+only those files that have changed.<br>
+<br>
+It follows the weblogic naming convention of putting classes in<br>
+<b> _dirName/_fileName.class for dirname/fileName.jsp   </b><br>
+<br>
+</p>
+<h3>
+Example<br>
+</h3>
+<p>
+<pre>
+&lt;target name="jspcompile" depends="compile"&gt;
+  &lt;wljspc src="c:\\weblogic\\myserver\\public_html" dest="c:\\weblogic\\myserver\\serverclasses" package="myapp.jsp"&gt
+    &lt;classpath&gt;
+      &lt;pathelement location="${weblogic.classpath}"/&gt;
+      &lt;pathelement path="${compile.dest}"/&gt;
+    &lt;/classpath&gt;
+  &lt;/wljspc&gt;
+&lt;/target&gt;
+</pre>
+
+</p>
+
+<h3>Limitations</h3>
+<ul>
+<li>This works only on weblogic 4.5.1</li>
+<li>It compiles the files thru the Classic compiler only.</li>
+<li>Since it is my experience that weblogic jspc throws out of memory error on being given too
+many files at one go, it is called multiple times with one jsp file each.</li>
+</ul>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/wsdltodotnet.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/wsdltodotnet.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/wsdltodotnet.html	(revision 14989)
@@ -0,0 +1,230 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Wsdltodotnet
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Wsdltodotnet
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Converts a WSDL file or URL resource into a .NET language.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Converts a WSDL file or URL resource into a .NET language. Why add a wrapper to the MS WSDL tool? So that you can verify that your web services, be they written with Axis or anyone else's SOAP toolkit, work with .NET clients. This task is dependency aware when using a file as a source and destination; so if you <code>&lt;get&gt;</code> the file (with <code>usetimestamp="true"</code>) then you only rebuild stuff when the WSDL file is changed. Of course, if the server generates a new timestamp every time you ask for the WSDL, this is not enough...use the <code>&lt;filesmatch&gt;</code> <code>&lt;condition&gt;</code> to to byte for byte comparison against a cached WSDL file then make the target conditional on that test failing. See "Creating an XML Web Service Proxy", "wsdl.exe" docs in the framework SDK documentation
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Name of the file to generate. Required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="8">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra WSDL.EXE options which aren't explicitly supported by the ant wrapper task; optional</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether or not a failure should halt the build. Optional - default is <code>true</code>.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">language</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the language; one of "CS", "JS", or "VB" optional, default is CS for C# source</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace to place the source in. optional; default ""</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">server</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">flag to enable server side code generation; optional, default=false</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">The local WSDL file to parse; either url or srcFile is required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">url</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the URL to fetch. Fetching is by wsdl.exe; Ant proxy settings are ignored; either url or srcFile is required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/xmlvalidate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/xmlvalidate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTasks/xmlvalidate.html	(revision 14989)
@@ -0,0 +1,263 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XMLValidate Task</title>
+</head>
+
+<body>
+
+<h2><a name="xmlvalidate">XMLValidate</a></h2>
+<h3>Description</h3>
+
+<p>This task checks that XML files are valid (or only well formed). The
+task uses the SAX2 parser implementation provided by JAXP by default
+(probably the one that is used by Ant itself), but one can specify any
+SAX1/2 parser if needed.</p>
+
+<p>This task supports the use of nested
+  <li><a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a> elements</li>
+  <li><tt>&lt;dtd&gt;</tt> elements which are used to resolve DTDs and entities</li>
+  <li><tt>&lt;attribute&gt;</tt> elements which are used to set features on the parser.
+      These can be any number of
+      <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a>
+      or other features that your parser may support.</li>
+  <li><tt>&lt;property&gt;</tt> elements, containing string properties
+</p>
+
+<p><b>Warning</b> : JAXP creates by default a non namespace aware parser.
+The <tt>"http://xml.org/sax/features/namespaces"</tt> feature is set
+by default to <tt>false</tt> by the JAXP implementation used by ant. To validate
+a document containing namespaces,
+set the namespaces feature to <tt>true</tt> explicitly by nesting the following element:
+<pre>
+  &lt;attribute name="http://xml.org/sax/features/namespaces" value="true"/&gt;
+</pre>
+If you are using for instance a <tt>xsi:noNamespaceSchemaLocation</tt> attribute in your XML files,
+you will need this namespace support feature.
+</p>
+<p>If you are using a parser not generated by JAXP, by using the <tt>classname</tt> attribute of xmlvalidate, this warning
+may not apply.</p>
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file(s) you want to check. (optionally can use an embedded fileset)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">lenient</td>
+    <td valign="top">
+      if true, only check the XML document is well formed
+        (ignored if the specified parser is a SAX1 parser)
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the parser to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">where to find the parser class. Optionally can use an embedded <tt>&lt;classpath&gt;</tt> element.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">fails on a error if set to true (defaults to true).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">warn</td>
+    <td valign="top">log parser warn events.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+<h4>dtd</h4>
+<p>
+<tt>&lt;dtd&gt;</tt> is used to specify different locations for DTD resolution.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">Public ID of the DTD to resolve</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">Location of the DTD to use, which can be a file,
+    a resource, or a URL</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a>
+element is used to perform entity resolution.</p>
+<h4>attribute</h4>
+<p>The <tt>&lt;attribute&gt;</tt> element is used to set parser features.<br>
+Features usable with the xerces parser are defined here :
+ <a href="http://xml.apache.org/xerces-j/features.html">Setting features</a><br>
+
+SAX features are defined here:
+ <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a><br>
+ </p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The boolean value of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+<h4>property</h4>
+<p>The <tt>&lt;property&gt;</tt> element is used to set properties.
+These properties are defined here for the xerces XML parser implementation :
+ <a href="http://xml.apache.org/xerces-j/properties.html">XML Parser properties</a>
+Properties can be used to set the schema used to validate the XML file.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The string value of the property</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+
+<h3>Examples</h3>
+<pre>
+&lt;xmlvalidate file="toto.xml"/&gt;
+</pre>
+Validate toto.xml
+<pre>
+&lt;xmlvalidate failonerror="no" lenient="yes" warn="yes"
+             classname="org.apache.xerces.parsers.SAXParser"&gt;
+             classpath="lib/xerces.jar"&gt;
+  &lt;fileset dir="src" includes="style/*.xsl"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+Validate all .xsl files in src/style, but only warn if there is an error, rather than
+halt the build.
+<pre>
+
+&lt;xmlvalidate file="struts-config.xml" warn="false"&gt;
+  &lt;dtd publicId="-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
+       location="struts-config_1_0.dtd"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+
+Validate a struts configuration, using a local copy of the DTD. 
+<pre> 
+&lt;xmlvalidate failonerror="no"&gt;
+  &lt;fileset dir="${project.dir}" includes="**/*.xml"/&gt;
+  &lt;xmlcatalog refid="mycatalog"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+
+Scan all XML files in the project, using a predefined catalog to map URIs to local files.
+<pre>
+&lt;xmlvalidate failonerror="no"&gt;
+  &lt;fileset dir="${project.dir}" includes="**/*.xml"/&gt;
+  &lt;xmlcatalog&gt;
+       &lt;dtd
+         publicId=&quot;-//ArielPartners//DTD XML Article V1.0//EN&quot;
+         location=&quot;com/arielpartners/knowledgebase/dtd/article.dtd&quot;/&gt;
+  &lt;/xmlcatalog&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+Scan all XML files in the project, using the catalog defined inline.
+
+<pre>
+&lt;xmlvalidate failonerror="yes" lenient="no" warn="yes"&gt;
+  &lt;fileset dir="xml" includes="**/*.xml"/&gt;
+  &lt;attribute name="http://xml.org/sax/features/validation" value="true"/&gt;
+  &lt;attribute name="http://apache.org/xml/features/validation/schema"  value="true"/&gt;
+  &lt;attribute name="http://xml.org/sax/features/namespaces" value="true"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+Validate all .xml files in xml directory with the parser configured to perform XSD validation.
+Note: The parser must support the feature
+<code>http://apache.org/xml/features/validation/schema</code>.
+The <a href="schemavalidate.html">schemavalidate</a> task is better for validating
+W3C XML Schemas, as it extends this task with the right options automatically enabled,
+and makes it easy to add a list of schema files/URLs to act as sources.
+
+<pre>
+<!-- Converts path to URL format -->
+&lt;pathconvert dirsep="/" property="xsd.file"&gt;
+&lt;path&gt;
+   &lt;pathelement location="xml/doc.xsd"/&gt;
+&lt;/path&gt;
+&lt;/pathconvert&gt;
+
+&lt;xmlvalidate file="xml/endpiece-noSchema.xml" lenient="false"
+  failonerror="true" warn="true"&gt;
+  &lt;attribute name="http://apache.org/xml/features/validation/schema"
+  value="true"/&gt;
+  &lt;attribute name="http://xml.org/sax/features/namespaces" value="true"/&gt;
+  &lt;property
+  name="http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
+  value="${xsd.file}"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+<br>
+Validate the file xml/endpiece-noSchema.xml against the schema xml/doc.xsd.
+<br>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTypes/classfileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTypes/classfileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTypes/classfileset.html	(revision 14989)
@@ -0,0 +1,119 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ClassFileSet Type</title>
+</head>
+
+<body>
+<h2><a name="fileset">ClassFileSet</a></h2>
+<p>A classfileset is a specialised type of fileset which, given a set of 
+&quot;root&quot; classes, will include all of the class files upon which the 
+root classes depend. This is typically used to create a jar with all of the
+required classes for a particular application.
+</p>
+<p>
+classfilesets are typically used by reference. They are declared with an
+&quot;id&quot; value and this is then used as a reference where a normal fileset
+is expected.
+</p>
+<p>
+This type requires the <code>jakarta-BCEL</code> library.
+</p>
+
+
+<h3>Attributes</h3>
+<p>The class fileset support the following attributes in addition
+to those supported by the 
+<a href="../CoreTypes/fileset.html">standard fileset</a>:
+</p>
+ 
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">rootclass</td>
+    <td valign="top">A single root class name</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<h4>Root</h4>
+<p>
+When more than one root class is required, multiple nested <code>&lt;root&gt;</code> elements
+may be used
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">The fully qualified name of the root class</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>RootFileSet</h4>
+<p>
+A root fileset is used to add a set of root classes from a fileset. In this case the entries in 
+the fileset are expected to be Java class files. The name of the Java class is determined by the 
+relative location of the classfile in the fileset. So, the file 
+<code>org/apache/tools/ant/Project.class</code> corresponds to the Java class
+<code>org.apache.tools.ant.Project</code>.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;classfileset id=&quot;reqdClasses" dir=&quot;${classes.dir}&quot;&gt;
+  &lt;root classname=&quot;org.apache.tools.ant.Project&quot;/&gt;
+&lt;/classfileset&gt;
+</pre></blockquote>
+
+<p>This example creates a fileset containing all the class files upon which the 
+<code>org.apache.tools.ant.Project</code> class depends. This fileset could 
+then be used to create a jar. 
+</p>
+
+<blockquote><pre>
+&lt;jar destfile=&quot;minimal.jar&quot;&gt;
+  &lt;fileset refid=&quot;reqdClasses&quot;/&gt;
+&lt;/jar&gt;
+</pre></blockquote>
+
+<blockquote><pre>
+&lt;classfileset id=&quot;reqdClasses&quot; dir=&quot;${classes.dir}&quot;&gt;
+  &lt;rootfileset dir=&quot;${classes.dir}&quot; includes=&quot;org/apache/tools/ant/Project*.class&quot;/&gt;
+&lt;/classfileset&gt;
+</pre></blockquote>
+
+<p>This example constructs the classfileset using all the class with names starting with Project 
+in the org.apache.tools.ant package</p> 
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTypes/extension.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTypes/extension.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTypes/extension.html	(revision 14989)
@@ -0,0 +1,114 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Extension Type</title>
+</head>
+
+<body>
+<h2><a name="fileset">Extension</a></h2>
+<p>Utility type that represents either an available "Optional Package"
+ (formerly known as "Standard Extension") as described in the manifest
+ of a JAR file, or the requirement for such an optional package.</p>
+<p>Note that this type
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+
+<h3>Attributes</h3>
+<p>The extension type supports the following attributes</a>:
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">extensionName</td>
+    <td valign="top">The name of extension</td>
+    <td valign="top" align="center">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">specificationVersion</td>
+    <td valign="top">The version of extension specification (Must be in
+    dewey decimal aka dotted decimal notation. 3.2.4)</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">specificationVendor</td>
+    <td valign="top">The specification vendor</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationVersion</td>
+    <td valign="top">The version of extension implementation (Must be in
+    dewey decimal aka dotted decimal notation. 3.2.4)</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationVendor</td>
+    <td valign="top">The implementation vendor</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationVendorId</td>
+    <td valign="top">The implementation vendor ID</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationURL</td>
+    <td valign="top">The url from which to retrieve extension.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com/myExt.jar&quot;/&gt;
+</pre></blockquote>
+
+<p>Fully specific extension object.</p>
+
+<blockquote><pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+</pre></blockquote>
+
+<p>Extension object that just species the specification details.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/OptionalTypes/extensionset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/OptionalTypes/extensionset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/OptionalTypes/extensionset.html	(revision 14989)
@@ -0,0 +1,83 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ExtensionSet Type</title>
+</head>
+
+<body>
+<h2><a>ExtensionSet</a></h2>
+<p>Utility type that represents a set of Extensions.</p>
+<p>Note that this type
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+
+<h3>Nested Elements</h3>
+
+<h4>extension</h4>
+<p><a href="extension.html">Extension</a> object to add to set.</p>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s all files contained
+ contained within set that are jars and implement an extension are added
+ to extension set.</p>
+
+<h4>LibFileSet</h4>
+ <p>All files contained contained within set that are jars and implement 
+ an extension are added to extension set. However the extension information 
+ may be modified by attributes of libfileset</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com/myExt.jar&quot;/&gt;
+
+&lt;libfileset id="lfs"
+               includeUrl="true"
+               includeImpl="false"
+               dir="tools/lib"&gt;
+  &lt;include name="*.jar"/&gt;
+&lt;/libfileset&gt;
+
+&lt;extensionSet id="exts"&gt;
+  &lt;libfileset dir="lib"&gt;
+    &lt;include name="*.jar"/&gt;
+  &lt;/libfileset&gt;
+  &lt;libfileset refid="lfs"/&gt;
+  &lt;extension refid="e1"/&gt;
+&lt;/extensionSet&gt;
+
+</pre></blockquote>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/antexternal.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/antexternal.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/antexternal.html	(revision 14989)
@@ -0,0 +1,160 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>InputHandler</title>
+</head>
+
+<body>
+<h1>Using Ant Tasks Outside of Ant</h1>
+
+<h2>Rationale</h2>
+
+<p>Ant provides a rich set of tasks for buildfile creators and
+administrators.  But what about programmers?  Can the functionality
+provided by Ant tasks be used in java programs?</p>
+
+<p>Yes, and its quite easy.  Before getting into the details, however, 
+we should mention the pros and cons of this approach:
+
+<h3>Pros</h3>
+
+<table cellpadding="0" margin="0" border="1">
+<tr>
+<td><b>Robust</b></td>
+<td>
+Ant tasks are very robust.  They have been banged on by many people.
+Ant tasks have been used in many different contexts, and have
+therefore been instrumented to take care of a great many boundary
+conditions and potentially obscure errors.
+</td>
+</tr>
+<tr>
+<td><b>Cross Platform</b></td>
+<td>
+Ant tasks are cross platform.  They have been tested on all of the
+volume platforms, and several rather unusual ones (Netware and OS/390, to
+name a few).
+</td>
+</tr>
+<tr>
+<td><b>Community Support</b></td>
+<td>
+Using Ant tasks means you have less of your own code to support.  Ant
+code is supported by the entire Apache Ant community.
+</td>
+</tr>
+</table>
+
+<h3>Cons</h3>
+
+<table cellpadding="0" margin="0" border="1">
+<tr>
+<td><b>Dependency on Ant Libraries</b></td>
+<td>
+Obviously, if you use an Ant task in your code, you will have to add
+"ant.jar" to your path.  Of course, you could use a code optimizer to
+remove the unnecessary classes, but you will still probably require a
+chunk of the Ant core.
+</td>
+</tr>
+<tr>
+<td><b>Loss of Flexibility</b></td>
+<td>
+At some point, if you find yourself having to modify the Ant code, it
+probably makes more sense to "roll your own."  Of course, you can
+still steal some code snippets and good ideas.  This is the beauty of
+open source!
+</td>
+</tr>
+</table>
+
+
+<h2>Example</h2>
+
+<p>Let's say you want to unzip a zip file programmatically from java
+into a certain directory.  Of course you could write your own routine
+to do this, but why not use the Ant task that has already been written?</p>
+
+<p>In my example, I wanted to be able to unzip a file from within an
+XSLT Transformation.  XSLT Transformers can be extended by plugging in
+static methods in java.  I therefore need a function something like
+this:</p>
+
+<pre>
+/**
+ * Unzip a zip file into a given directory.
+ *
+ * @param zipFilepath A pathname representing a local zip file
+ * @param destinationDir where to unzip the archive to
+ */
+ static public void unzip(String zipFilepath, String destinationDir)
+</pre>
+
+<p>
+The Ant task to perform this function is
+<code>org.apache.tools.ant.taskdefs.Expand</code>.  All we have to do
+is create a dummy Ant <code>Project</code> and <code>Target</code>,
+set the <code>Task</code> parameters that would normally be set in a
+buildfile, and call <code>execute()</code>.</p>
+
+<p>First, let's make sure we have the proper includes:</p>
+
+<pre>
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Target;
+import org.apache.tools.ant.taskdefs.Expand;
+import java.io.File;
+</pre>
+
+<p>The function call is actually quite simple:</p>
+
+<pre>
+static public void unzip(String zipFilepath, String destinationDir) {
+
+    final class Expander extends Expand {
+        public Expander() {
+ 	    project = new Project();
+	    project.init();
+	    taskType = "unzip";
+	    taskName = "unzip";
+	    target = new Target();
+	}	
+    }
+    Expander expander = new Expander();
+    expander.setSrc(new File(zipfile));
+    expander.setDest(new File(destdir));
+    expander.execute();
+</pre>
+
+<p>In actual practice, you will probably want to add your own error
+handling code and you may not want to use a local inner class.
+However, the point of the example is to show how an Ant task can be
+called programmatically in relatively few lines of code.</p>
+
+<p>The question you are probably asking yourself at this point is:
+<i>How would I know which classes and methods have to be called in
+order to set up a dummy Project and Target?</i> The answer is: you
+don't.  Ultimately, you have to be willing to get your feet wet and
+read the source code.  The above example is merely designed to whet
+your appetite and get you started.  Go for it!</p>
+
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/anttaskslist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/anttaskslist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/anttaskslist.html	(revision 14989)
@@ -0,0 +1,40 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Ant Tasks</h3>
+<a href="tasksoverview.html" target="mainFrame">Overview of Ant Tasks</a><br>
+<a href="coretasklist.html" target="navFrame"><b>Core Tasks</b></a><br>
+<a href="optionaltasklist.html" target="navFrame">Optional Tasks</a><br>
+&nbsp;&nbsp;<a href="install.html#librarydependencies" target="mainFrame">
+Library Dependencies</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/base_task_classes.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/base_task_classes.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/base_task_classes.html	(revision 14989)
@@ -0,0 +1,114 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Tasks Designed for Extension</title>
+</head>
+
+<body>
+<h1>Tasks Designed for Extension</h1>
+
+<p>These classes are designed to be extended.  Always start here when writing your own task.</p>
+
+<p><strong>The links will not work in the online version of this document.</strong></p>
+
+<table border="1">
+<thead>
+<tr>
+<th>
+Class
+</th>
+<th>
+Description
+</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/Task.html">Task</a>
+</td>
+<td>
+Base class for all tasks.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/AbstractCvsTask.html">AbstractCvsTask</a>
+</td>
+<td>
+Another task can extend this with some customized output processing
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/JDBCTask.html">JDBCTask</a>
+</td>
+<td>
+Handles JDBC configuration needed by SQL type tasks.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/MatchingTask.html">MatchingTask</a>
+</td>
+<td>
+This is an abstract task that should be used by all those tasks that require to include or exclude files based on pattern matching.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/Pack.html">Pack</a>
+</td>
+<td>
+Abstract Base class for pack tasks.
+</td>
+</tr>
+
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/Unpack.html">Unpack</a>
+</td>
+<td>
+Abstract Base class for unpack tasks.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/dispatch/DispatchTask.html">DispatchTask</a>
+</td>
+<td>
+Abstract Base class for tasks that may have multiple actions.
+</td>
+</tr>
+
+</tbody>
+</table>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/clonevm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/clonevm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/clonevm.html	(revision 14989)
@@ -0,0 +1,52 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>ant.build.clonevm</title>
+</head>
+
+<body>
+
+<h2><a name="clonevm">ant.build.clonevm</a></h2>
+
+<p><em>Since Ant 1.7</em></p>
+
+<p>The value of the ant.build.clonevm system property controls how Ant
+instruments forked Java Virtual Machines.  The <a
+href="CoreTasks/java.html">java</a> and <a
+href="OptionalTasks/junit.html">junit</a> tasks support clonevm
+attributes to control the VMs on a task-by-task basis while the system
+property applies to all forked Java VMs.</p>
+
+<p>If the value of the property is true, then all system properties of
+the forked Java Virtual Machine will be the same as those of the Java
+VM running Ant.  In addition, if you set ant.build.clonevm to true and <a
+href="sysclasspath.html">build.sysclasspath</a> has not been set, the
+bootclasspath of forked Java VMs gets constructed as if
+build.sysclasspath had the value "last".</p>
+
+<p>Note that this has to be a system property, so it cannot be
+specified on the Ant command line.  Use the ANT_OPTS environment
+variable instead.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/conceptstypeslist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/conceptstypeslist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/conceptstypeslist.html	(revision 14989)
@@ -0,0 +1,78 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Concepts</h3>
+<a href="clonevm.html">ant.build.clonevm</a><br>
+<a href="sysclasspath.html">build.sysclasspath</a><br>
+<a href="javacprops.html">Ant properties controlling javac</a><br>
+<a href="CoreTasks/common.html">Common Attributes</a><br>
+
+<h3>Core Types</h3>
+<a href="CoreTypes/description.html">Description Type</a><br>
+<a href="dirtasks.html">Directory-based Tasks</a><br>
+<a href="CoreTypes/dirset.html">DirSet</a><br>
+<a href="CoreTypes/filelist.html">FileList</a><br>
+<a href="CoreTypes/fileset.html">FileSet</a><br>
+<a href="CoreTypes/mapper.html">File Mappers</a><br>
+<a href="CoreTypes/filterchain.html">FilterChains and FilterReaders</a><br>
+<a href="CoreTypes/filterset.html">FilterSet</a><br>
+<a href="CoreTypes/patternset.html">PatternSet</a><br>
+<a href="using.html#path">Path-like Structures</a><br>
+<a href="CoreTypes/permissions.html">Permissions</a><br>
+<a href="CoreTypes/propertyset.html">PropertySet</a><br>
+<a href="CoreTypes/redirector.html">I/O Redirectors</a><br>
+<a href="CoreTypes/regexp.html">Regexp</a><br>
+<a href="CoreTypes/resources.html">Resources</a><br>
+<a href="CoreTypes/resources.html#collection">Resource Collections</a><br>
+<a href="CoreTypes/selectors.html">Selectors</a><br>
+<a href="CoreTypes/tarfileset.html">TarFileSet</a><br>
+<a href="CoreTypes/xmlcatalog.html">XMLCatalog</a><br>
+<a href="CoreTypes/zipfileset.html">ZipFileSet</a><br>
+
+<h3>Optional Types</h3>
+<a href="OptionalTypes/classfileset.html">Class Fileset</a><br>
+<a href="OptionalTypes/extension.html">Extension Package</a><br>
+<a href="OptionalTypes/extensionset.html">Set of Extension Packages</a><br>
+
+<h3>Namespace</h3>
+<a href="CoreTypes/namespace.html">Namespace Support</a><br>
+<h3>Antlib</h3>
+<a href="CoreTypes/antlib.html">Antlib</a><br>
+<a href="CoreTypes/antlib.html#antlibnamespace">Antlib namespace</a><br>
+<a href="CoreTypes/antlib.html#currentnamespace">Current namespace</a><br>
+                                            
+
+<h3>Custom Components</h3>
+<a href="CoreTypes/custom-programming.html">Custom Components</a><br>
+<a href="CoreTypes/custom-programming.html#customconditions">Conditions</a><br>
+<a href="CoreTypes/custom-programming.html#customselectors">Selectors</a><br>
+<a href="CoreTypes/custom-programming.html#filterreaders">FilterReaders</a><br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/coretasklist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/coretasklist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/coretasklist.html	(revision 14989)
@@ -0,0 +1,129 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<a href="optionaltasklist.html" target="navFrame">Optional Tasks</a><br>
+<a href="tasksoverview.html" target="mainFrame">Overview of Ant Tasks</a><br>
+<a href="conceptstypeslist.html" target="navFrame">Concepts and Types</a><br>
+
+<h3>Core Tasks</h3>
+<a href="CoreTasks/ant.html">Ant</a><br>
+<a href="CoreTasks/antcall.html">AntCall</a><br>
+<a href="CoreTasks/antstructure.html">AntStructure</a><br>
+<a href="CoreTasks/apply.html">Apply/<i>ExecOn</i></a><br>
+<a href="CoreTasks/apt.html">Apt</a><br>
+<a href="CoreTasks/available.html">Available</a><br>
+<a href="CoreTasks/basename.html">Basename</a><br>
+<a href="CoreTasks/buildnumber.html">BuildNumber</a><br>
+<a href="CoreTasks/unpack.html">BUnzip2</a><br>
+<a href="CoreTasks/pack.html">BZip2</a><br>
+<a href="CoreTasks/checksum.html">Checksum</a><br>
+<a href="CoreTasks/chmod.html">Chmod</a><br>
+<a href="CoreTasks/concat.html">Concat</a><br>
+<a href="CoreTasks/condition.html">Condition</a><br>
+&nbsp;&nbsp;<a href="CoreTasks/conditions.html">Supported conditions</a><br>
+<a href="CoreTasks/copy.html">Copy</a><br>
+<a href="CoreTasks/copydir.html"><i>Copydir</i></a><br>
+<a href="CoreTasks/copyfile.html"><i>Copyfile</i></a><br>
+<a href="CoreTasks/cvs.html">Cvs</a><br>
+<a href="CoreTasks/changelog.html">CvsChangeLog</a><br>
+<a href="CoreTasks/cvsversion.html">CvsVersion</a><br>
+<a href="CoreTasks/cvspass.html">CVSPass</a><br>
+<a href="CoreTasks/cvstagdiff.html">CvsTagDiff</a><br>
+<a href="CoreTasks/defaultexcludes.html">Defaultexcludes</a><br>
+<a href="CoreTasks/delete.html">Delete</a><br>
+<a href="CoreTasks/deltree.html"><i>Deltree</i></a><br>
+<a href="CoreTasks/dependset.html">Dependset</a><br>
+<a href="CoreTasks/diagnostics.html">Diagnostics</a><br>
+<a href="CoreTasks/dirname.html">Dirname</a><br>
+<a href="CoreTasks/ear.html">Ear</a><br>
+<a href="CoreTasks/echo.html">Echo</a><br>
+<a href="CoreTasks/echoxml.html">EchoXML</a><br>
+<a href="CoreTasks/exec.html">Exec</a><br>
+<a href="CoreTasks/fail.html">Fail</a><br>
+<a href="CoreTasks/filter.html">Filter</a><br>
+<a href="CoreTasks/fixcrlf.html">FixCRLF</a><br>
+<a href="CoreTasks/genkey.html">GenKey</a><br>
+<a href="CoreTasks/get.html">Get</a><br>
+<a href="CoreTasks/unpack.html">GUnzip</a><br>
+<a href="CoreTasks/pack.html">GZip</a><br>
+<a href="CoreTasks/import.html">Import</a><br>
+<a href="CoreTasks/input.html">Input</a><br>
+<a href="CoreTasks/jar.html">Jar</a><br>
+<a href="CoreTasks/java.html">Java</a><br>
+<a href="CoreTasks/javac.html">Javac</a><br>
+<a href="CoreTasks/javadoc.html">Javadoc/<i>Javadoc2</i></a><br>
+<a href="CoreTasks/length.html">Length</a><br>
+<a href="CoreTasks/loadfile.html">LoadFile</a><br>
+<a href="CoreTasks/loadproperties.html">LoadProperties</a><br>
+<a href="CoreTasks/loadresource.html">LoadResource</a><br>
+<a href="CoreTasks/makeurl.html">MakeURL</a><br>
+<a href="CoreTasks/mail.html">Mail</a><br>
+<a href="CoreTasks/macrodef.html">MacroDef</a><br>
+<a href="CoreTasks/manifest.html">Manifest</a><br>
+<a href="CoreTasks/manifestclasspath.html">ManifestClassPath</a><br>
+<a href="CoreTasks/mkdir.html">Mkdir</a><br>
+<a href="CoreTasks/move.html">Move</a><br>
+<a href="CoreTasks/nice.html">Nice</a><br>
+<a href="CoreTasks/parallel.html">Parallel</a><br>
+<a href="CoreTasks/patch.html">Patch</a><br>
+<a href="CoreTasks/pathconvert.html">PathConvert</a><br>
+<a href="CoreTasks/presetdef.html">PreSetDef</a><br>
+<a href="CoreTasks/property.html">Property</a><br>
+<a href="CoreTasks/recorder.html">Record</a><br>
+<a href="CoreTasks/rename.html"><i>Rename</i></a><br>
+<a href="CoreTasks/replace.html">Replace</a><br>
+<a href="CoreTasks/resourcecount.html">ResourceCount</a><br>
+<a href="CoreTasks/rmic.html">Rmic</a><br>
+<a href="CoreTasks/sequential.html">Sequential</a><br>
+<a href="CoreTasks/signjar.html">SignJar</a><br>
+<a href="CoreTasks/sleep.html">Sleep</a><br>
+<a href="CoreTasks/sql.html">Sql</a><br>
+<a href="CoreTasks/subant.html">Subant</a><br>
+<a href="CoreTasks/sync.html">Sync</a><br>
+<a href="CoreTasks/tar.html">Tar</a><br>
+<a href="CoreTasks/taskdef.html">Taskdef</a><br>
+<a href="CoreTasks/tempfile.html">Tempfile</a><br>
+<a href="CoreTasks/touch.html">Touch</a><br>
+<a href="CoreTasks/tstamp.html">TStamp</a><br>
+<a href="CoreTasks/typedef.html">Typedef</a><br>
+<a href="CoreTasks/unzip.html">Unjar</a><br>
+<a href="CoreTasks/unzip.html">Untar</a><br>
+<a href="CoreTasks/unzip.html">Unwar</a><br>
+<a href="CoreTasks/unzip.html">Unzip</a><br>
+<a href="CoreTasks/uptodate.html">Uptodate</a><br>
+<a href="CoreTasks/waitfor.html">Waitfor</a><br>
+<a href="CoreTasks/whichresource.html">WhichResource</a><br>
+<a href="CoreTasks/war.html">War</a><br>
+<a href="CoreTasks/xmlproperty.html">XmlProperty</a><br>
+<a href="CoreTasks/style.html">XSLT/<i>Style</i></a><br>
+<a href="CoreTasks/zip.html">Zip</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/cover.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/cover.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/cover.html	(revision 14989)
@@ -0,0 +1,58 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant 1.7.0 User Manual</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+  <h1>Apache Ant 1.7.0 Manual</h1>
+<img src="../images/ant_logo_large.gif" width="190" height="120">
+  <p align="left">This is the manual for version 1.7.0 of 
+  <a target="_top" href="http://ant.apache.org/index.html">Apache Ant</a>. 
+    If your version 
+    of Ant (as verified with <tt>ant -version</tt>) is older or newer than this 
+    version then this is not the correct manual set. Please use the documentation 
+    appropriate to your current version. Also, if you are using a version
+    older than the most recent release, we recommend an upgrade to fix bugs
+    as well as provide new functionality. </p>
+  <p>&nbsp;</p>
+
+<hr>
+<p>
+This set of documents is reposted from the Ant1.7.0 downloadable manual so users of AntInstaller have the exact documents
+that are relevant to the specific Ant version used in the current AntInstaller download. <br><br>
+
+This set of documents has been modified by AntInstaller for the following reasons. 
+<ul>
+<li>Stylesheet edited for AntInstaller's Colors and fonts.</li>
+<li>Very minor HTML fixes</li>
+
+<li>Stylesheets links added where missing.</li>
+<li>Added links back the AntInstaller home page.</li>
+<li>Commented out some links for items not relevant to AntInstaller (such as running and installing Ant)</li>
+</ul>
+There have been no changes to the content of the documents.<br><br>
+Current official Ant documents are available <a target="_top" alt="Official Ant Documents" href="http://ant.apache.org/manual/index.html">here</a>
+
+</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/credits.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/credits.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/credits.html	(revision 14989)
@@ -0,0 +1,67 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual - Credits</title>
+  <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+</head>
+
+<body>
+<h1>Apache Ant User Manual</h1>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
+  <li>Nicola Ken Barozzi (<a href="mailto:nicolaken@apache.org">nicolaken@apache.org</a>)</li>
+  <li>Jacques Bergeron (<a href="mailto:jacques.bergeron@dogico.com">jacques.bergeron@dogico.com</a>)</li>
+  <li>Stefan Bodewig (<a href="mailto:stefan.bodewig@freenet.de">stefan.bodewig@freenet.de</a>)</li>
+  <li>Patrick Chanezon (<a href="mailto:chanezon@netscape.com">chanezon@netscape.com</a>)</li>
+  <li>James Duncan Davidson (<a href="mailto:duncan@x180.com">duncan@x180.com</a>)</li>
+  <li>Tom Dimock (<a href="mailto:tad1@cornell.edu">tad1@cornell.edu</a>)</li>
+  <li>Peter Donald (<a href="mailto:donaldp@apache.org">donaldp@apache.org</a>)</li>
+  <li>dIon Gillard (<a href="mailto:dion@apache.org">dion@apache.org</a>)</li>
+  <li>Erik Hatcher (<a href="mailto:ehatcher@apache.org">ehatcher@apache.org</a>)</li>
+  <li>Diane Holt (<a href="mailto:holtdl@yahoo.com">holtdl@yahoo.com</a>)</li>
+  <li>Bill Kelly (<a href="mailto:bill.kelly@softwired-inc.com">bill.kelly@softwired-inc.com</a>)</li>
+  <li>Martijn Kruithof</li>
+  <li>Arnout J. Kuiper (<a href="mailto:ajkuiper@wxs.nl">ajkuiper@wxs.nl</a>)</li>
+  <li>Antoine Lï¿œy-Lambert</li>
+  <li>Conor MacNeill</li>
+  <li>Jan Matï¿œne</li>
+  <li>Stefano Mazzocchi (<a href="mailto:stefano@apache.org">stefano@apache.org</a>)</li>
+  <li>Erik Meade (<a href="mailto:emeade@geekfarm.org">emeade@geekfarm.org</a>)</li>
+  <li>Sam Ruby (<a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a>)</li>
+  <li>Nico Seessle (<a href="mailto:nico@seessle.de">nico@seessle.de</a>)</li>
+  <li>Jon S. Stevens (<a href="mailto:jon@latchkey.com">jon@latchkey.com</a>)</li>
+  <li>Wolf Siberski</li>
+  <li>Magesh Umasankar</li>
+  <li>Roger Vaughn (<a href="mailto:rvaughn@seaconinc.com">rvaughn@seaconinc.com</a>)</li>
+  <li>Dave Walend (<a href="mailto:dwalend@cs.tufts.edu">dwalend@cs.tufts.edu</a>)</li>
+  <li>Phillip Wells (<a href="mailto:philwells@rocketmail.com">philwells@rocketmail.com</a>)</li>
+  <li>Christoph Wilhelms</li>
+  <li>Craeg Strong (<a href="mailto:cstrong@arielpartners.com">cstrong@arielpartners.com</a>)</li>
+</ul>
+
+<center>
+<p>Version: 1.7.0</p>
+</center>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/develop.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/develop.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/develop.html	(revision 14989)
@@ -0,0 +1,514 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Writing Your Own Task</title>
+</head>
+
+<body>
+<h1>Developing with Ant</h1>
+
+<h2><a name="writingowntask">Writing Your Own Task</a></h2>
+<p>It is very easy to write your own task:</p>
+<ol>
+  <li>Create a Java class that extends <code>org.apache.tools.ant.Task</code>
+      or <a href="base_task_classes.html">another class</a> that was designed to be extended.</li>
+  <li>For each attribute, write a <i>setter</i> method. The setter method must be a
+    <code>public void</code> method that takes a single argument. The
+    name of the method must begin with <code>set</code>, followed by the
+    attribute name, with the first character of the name in uppercase, and the rest in
+
+    lowercase<a href="#footnote-1"><sup>*</sup></a>.  That is, to support an attribute named
+    <code>file</code> you create a method <code>setFile</code>.
+    Depending on the type of the argument, Ant will perform some
+    conversions for you, see <a href="#set-magic">below</a>.</li>
+
+  <li>If your task shall contain other tasks as nested elements (like
+  <a href="CoreTasks/parallel.html"><code>parallel</code></a>), your
+  class must implement the interface
+  <code>org.apache.tools.ant.TaskContainer</code>.  If you do so, your
+  task can not support any other nested elements.  See 
+  <a href="#taskcontainer">below</a>.</li>
+
+<li>If the task should support character data (text nested between the
+start end end tags), write a <code>public void addText(String)</code>
+method.  Note that Ant does <strong>not</strong> expand properties on
+the text it passes to the task.</li>
+
+<li>For each nested element, write a <i>create</i>, <i>add</i> or
+<i>addConfigured</i> method.  A create method must be a
+<code>public</code> method that takes no arguments and returns an
+<code>Object</code> type. The name of the create method must begin
+with <code>create</code>, followed by the element name. An add (or
+addConfigured) method must be a <code>public void</code> method that
+takes a single argument of an <code>Object</code> type with a
+no-argument constructor.  The name of the add (addConfigured) method
+must begin with <code>add</code> (<code>addConfigured</code>),
+followed by the element name.  For a more complete discussion see 
+<a href="#nested-elements">below</a>.</li>
+
+<li>Write a <code>public void execute</code> method, with no arguments, that
+throws a <code>BuildException</code>. This method implements the task
+itself.</li>
+</ol>
+
+<hr>
+<p><a name="footnote-1">*</a> Actually the case of the letters after
+the first one doesn't really matter to Ant, using all lower case is a
+good convention, though.</p>
+
+<h3>The Life-cycle of a Task</h3>
+<ol>
+  <li>The task gets instantiated using a no-argument constructor, at parser
+    time. This means even tasks that are never executed get
+    instantiated.</li>
+
+  <li>The task gets references to its project and location inside the
+    buildfile via its inherited <code>project</code> and
+    <code>location</code> variables.</li>
+
+  <li>If the user specified an <code>id</code> attribute to this task,
+    the project
+    registers a reference to this newly created task, at parser
+    time.</li>
+
+  <li>The task gets a reference to the target it belongs to via its
+    inherited <code>target</code> variable.</li>
+
+  <li><code>init()</code> is called at parser time.</li>
+
+  <li>All child elements of the XML element corresponding to this task
+    are created via this task's <code>createXXX()</code> methods or
+    instantiated and added to this task via its <code>addXXX()</code>
+    methods, at parser time.</li>
+
+  <li>All attributes of this task get set via their corresponding
+    <code>setXXX</code> methods, at runtime.</li>
+
+  <li>The content character data sections inside the XML element
+    corresponding to this task is added to the task via its
+    <code>addText</code> method, at runtime.</li>
+
+  <li>All attributes of all child elements get set via their corresponding
+    <code>setXXX</code> methods, at runtime.</li>
+
+  <li><a name="execute"><code>execute()</code></a> is called at runtime. While the above initialization
+    steps only occur once, the execute() method may be
+    called more than once, if the task is invoked more than once. For example,
+    if <code>target1</code> and <code>target2</code> both depend
+    on <code>target3</code>, then running
+    <code>'ant target1 target2'</code> will run all tasks in
+    <code>target3</code> twice.</li>
+</ol>
+
+<h3><a name="set-magic">Conversions Ant will perform for attributes</a></h3>
+
+<p>Ant will always expand properties before it passes the value of an
+attribute to the corresponding setter method.</p>
+
+<p>The most common way to write an attribute setter is to use a
+<code>java.lang.String</code> argument.  In this case Ant will pass
+the literal value (after property expansion) to your task.  But there
+is more!  If the argument of you setter method is</p>
+
+<ul>
+
+  <li><code>boolean</code>, your method will be passed the value
+  <i>true</i> if the value specified in the build file is one of
+  <code>true</code>, <code>yes</code>, or <code>on</code> and
+  <i>false</i> otherwise.</li>
+
+  <li><code>char</code> or <code>java.lang.Character</code>, your
+  method will be passed the first character of the value specified in
+  the build file.</li>
+
+  <li>any other primitive type (<code>int</code>, <code>short</code>
+  and so on), Ant will convert the value of the attribute into this
+  type, thus making sure that you'll never receive input that is not a
+  number for that attribute.</li>
+
+  <li><code>java.io.File</code>, Ant will first determine whether the
+  value given in the build file represents an absolute path name.  If
+  not, Ant will interpret the value as a path name relative to the
+  project's basedir.</li>
+
+  <li><code>org.apache.tools.ant.types.Path</code>, Ant will tokenize
+  the value specified in the build file, accepting <code>:</code> and
+  <code>;</code> as path separators.  Relative path names will be
+  interpreted as relative to the project's basedir.</li>
+
+  <li><code>java.lang.Class</code>, Ant will interpret the value
+  given in the build file as a Java class name and load the named
+  class from the system class loader.</li>
+
+  <li>any other type that has a constructor with a single
+  <code>String</code> argument, Ant will use this constructor to
+  create a new instance from the value given in the build file.</li>
+
+  <li>A subclass of
+  <code>org.apache.tools.ant.types.EnumeratedAttribute</code>, Ant
+  will invoke this classes <code>setValue</code> method.  Use this if
+  your task should support enumerated attributes (attributes with
+  values that must be part of a predefined set of values).  See
+  <code>org/apache/tools/ant/taskdefs/FixCRLF.java</code> and the
+  inner <code>AddAsisRemove</code> class used in <code>setCr</code>
+  for an example.</li>
+
+  <li>A (Java 5) enumeration. Ant will call the setter with the enum constant
+  matching the value given in the build file. This is easier than using
+  <code>EnumeratedAttribute</code> and can result in cleaner code, but of course
+  your task will not run on JDK 1.4 or earlier. Note that any override of
+  <code>toString()</code> in the enumeration is ignored; the build file must use
+  the declared name (see <code>Enum.getName()</code>). You may wish to use lowercase
+  enum constant names, in contrast to usual Java style, to look better in build files.
+  <em>As of Ant 1.7.0.</em></li>
+
+</ul>
+
+<p>What happens if more than one setter method is present for a given
+attribute?  A method taking a <code>String</code> argument will always
+lose against the more specific methods.  If there are still more
+setters Ant could chose from, only one of them will be called, but we
+don't know which, this depends on the implementation of your Java
+virtual machine.</p>
+
+<h3><a name="nested-elements">Supporting nested elements</a></h3>
+
+<p>Let's assume your task shall support nested elements with the name
+<code>inner</code>.  First of all, you need a class that represents
+this nested element.  Often you simply want to use one of Ant's
+classes like <code>org.apache.tools.ant.types.FileSet</code> to
+support nested <code>fileset</code> elements.</p>
+
+<p>Attributes of the nested elements or nested child elements of them
+will be handled using the same mechanism used for tasks (i.e. setter
+methods for attributes, addText for nested text and
+create/add/addConfigured methods for child elements).</p>
+
+<p>Now you have a class <code>NestedElement</code> that is supposed to
+be used for your nested <code>&lt;inner&gt;</code> elements, you have
+three options:</p>
+
+<ol>
+  <li><code>public NestedElement createInner()</code></li>
+  <li><code>public void addInner(NestedElement anInner)</code></li>
+  <li><code>public void addConfiguredInner(NestedElement anInner)</code></li>
+</ol>
+
+<p>What is the difference?</p>
+
+<p>Option 1 makes the task create the instance of
+<code>NestedElement</code>, there are no restrictions on the type.
+For the options 2 and 3, Ant has to create an instance of
+<code>NestedInner</code> before it can pass it to the task, this
+means, <code>NestedInner</code> must have a <code>public</code> no-arg
+  constructor or a <code>public</code> one-arg constructor
+  taking a Project class as a parameter.
+This is the only difference between options 1 and 2.</p>
+
+<p>The difference between 2 and 3 is what Ant has done to the object
+before it passes it to the method.  <code>addInner</code> will receive
+an object directly after the constructor has been called, while
+<code>addConfiguredInner</code> gets the object <em>after</em> the
+attributes and nested children for this new object have been
+handled.</p>
+
+<p>What happens if you use more than one of the options?  Only one of
+the methods will be called, but we don't know which, this depends on
+the implementation of your Java virtual machine.</p>
+
+  <h3><a name="nestedtype">Nested Types</a></h3>
+If your task needs to nest an arbitary type that has been defined
+  using <code>&lt;typedef&gt;</code> you have two options.
+  <ol>
+    <li><code>public void add(Type type)</code></li>
+    <li><code>public void addConfigured(Type type)</code></li>
+  </ol>
+  The difference between 1 and 2 is the same as between 2 and 3 in the
+  previous section.
+  <p>
+    For example suppose one wanted to handle objects object of type
+    org.apache.tools.ant.taskdefs.condition.Condition, one may
+    have a class:
+  </p>
+  <blockquote>
+  <pre>
+public class MyTask extends Task {
+    private List conditions = new ArrayList();
+    public void add(Condition c) {
+        conditions.add(c);
+    }
+    public void execute() {
+     // iterator over the conditions
+    }
+}
+  </pre>
+  </blockquote>
+  <p>
+    One may define and use this class like this:
+  </p>
+  <blockquote>
+    <pre>
+&lt;taskdef name="mytask" classname="MyTask" classpath="classes"/&gt;
+&lt;typedef name="condition.equals"
+         classname="org.apache.tools.ant.taskdefs.conditions.Equals"/&gt;
+&lt;mytask&gt;
+    &lt;condition.equals arg1="${debug}" arg2="true"/&gt;
+&lt;/mytask&gt;
+    </pre>
+  </blockquote>
+  <p>
+    A more complicated example follows:
+  </p>
+  <blockquote>
+    <pre>
+public class Sample {
+    public static class MyFileSelector implements FileSelector {
+         public void setAttrA(int a) {}
+         public void setAttrB(int b) {}
+         public void add(Path path) {}
+         public boolean isSelected(File basedir, String filename, File file) {
+             return true;
+         }
+     }
+
+    interface MyInterface {
+        void setVerbose(boolean val);
+    }        
+
+    public static class BuildPath extends Path {
+        public BuildPath(Project project) {
+            super(project);
+        }
+        
+        public void add(MyInterface inter) {}
+        public void setUrl(String url) {}
+    }
+
+    public static class XInterface implements MyInterface {
+        public void setVerbose(boolean x) {}
+        public void setCount(int c) {}
+    }
+}
+    </pre>
+  </blockquote>
+  <p>
+    This class defines a number of static classes that implement/extend
+    Path, MyFileSelector and MyInterface. These may be defined and used
+    as follows:
+  </p>
+  <pre>
+    <blockquote>
+&lt;typedef name="myfileselector" classname="Sample$MyFileSelector"
+         classpath="classes" loaderref="classes"/&gt;
+&lt;typedef name="buildpath" classname="Sample$BuildPath"
+         classpath="classes" loaderref="classes"/&gt;
+&lt;typedef name="xinterface" classname="Sample$XInterface"
+         classpath="classes" loaderref="classes"/&gt;
+
+&lt;copy todir="copy-classes"&gt;
+   &lt;fileset dir="classes"&gt;
+      &lt;myfileselector attra="10" attrB="-10"&gt;
+         &lt;buildpath path="." url="abc"&gt;
+            &lt;xinterface count="4"/&gt;
+         &lt;/buildpath&gt;
+      &lt;/myfileselector&gt;
+   &lt;/fileset&gt;
+&lt;/copy&gt;
+    </blockquote>
+  </pre>
+<h3><a name="taskcontainer">TaskContainer</a></h3>
+
+<p>The <code>TaskContainer</code> consists of a single method,
+<code>addTask</code> that basically is the same as an <a
+href="#nested-elements">add method</a> for nested elements.  The task
+instances will be configured (their attributes and nested elements
+have been handled) when your task's <code>execute</code> method gets
+invoked, but not before that.</p>
+
+<p>When we <a href="#execute">said</a> <code>execute</code> would be
+called, we lied ;-).  In fact, Ant will call the <code>perform</code>
+method in <code>org.apache.tools.ant.Task</code>, which in turn calls
+<code>execute</code>.  This method makes sure that <a
+href="#buildevents">Build Events</a> will be triggered.  If you
+execute the task instances nested into your task, you should also
+invoke <code>perform</code> on these instances instead of
+<code>execute</code>.</p>
+
+<h3>Example</h3>
+<p>Let's write our own task, which prints a message on the
+<code>System.out</code> stream.
+The
+task has one attribute, called <code>message</code>.</p>
+<blockquote>
+<pre>
+package com.mydomain;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+public class MyVeryOwnTask extends Task {
+    private String msg;
+
+    // The method executing the task
+    public void execute() throws BuildException {
+        System.out.println(msg);
+    }
+
+    // The setter for the &quot;message&quot; attribute
+    public void setMessage(String msg) {
+        this.msg = msg;
+    }
+}
+</pre>
+</blockquote>
+<p>It's really this simple ;-)</p>
+<p>Adding your task to the system is rather simple too:</p>
+<ol>
+  <li>Make sure the class that implements your task is in the classpath when
+    starting Ant.</li>
+  <li>Add a <code>&lt;taskdef&gt;</code> element to your project.
+    This actually adds your task to the system.</li>
+  <li>Use your task in the rest of the buildfile.</li>
+</ol>
+
+<h3>Example</h3>
+<blockquote>
+<pre>
+&lt;?xml version=&quot;1.0&quot;?&gt;
+
+&lt;project name=&quot;OwnTaskExample&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
+  &lt;taskdef name=&quot;mytask&quot; classname=&quot;com.mydomain.MyVeryOwnTask&quot;/&gt;
+
+  &lt;target name=&quot;main&quot;&gt;
+    &lt;mytask message=&quot;Hello World! MyVeryOwnTask works!&quot;/&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+</blockquote>
+<h3>Example 2</h3>
+To use a task directly from the buildfile which created it, place the
+<code>&lt;taskdef&gt;</code> declaration inside a target
+<i>after the compilation</i>. Use the <code>classpath</code> attribute of
+<code>&lt;taskdef&gt;</code> to point to where the code has just been
+compiled.
+<blockquote>
+<pre>
+&lt;?xml version=&quot;1.0&quot;?&gt;
+
+&lt;project name=&quot;OwnTaskExample2&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;build&quot; &gt;
+    &lt;mkdir dir=&quot;build&quot;/&gt;
+    &lt;javac srcdir=&quot;source&quot; destdir=&quot;build&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;declare&quot; depends=&quot;build&quot;&gt;
+    &lt;taskdef name=&quot;mytask&quot;
+        classname=&quot;com.mydomain.MyVeryOwnTask&quot;
+        classpath=&quot;build&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;main&quot; depends=&quot;declare&quot;&gt;
+    &lt;mytask message=&quot;Hello World! MyVeryOwnTask works!&quot;/&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+</blockquote>
+
+<p>Another way to add a task (more permanently), is to add the task name and
+implementing class name to the <code>default.properties</code> file in the
+<code>org.apache.tools.ant.taskdefs</code>
+package. Then you can use it as if it were a built-in task.</p>
+
+<hr>
+<h2><a name="buildevents">Build Events</a></h2>
+<P>Ant is capable of generating build events as it performs the tasks necessary to build a project.
+Listeners can be attached to Ant to receive these events. This capability could be used, for example,
+to connect Ant to a GUI or to integrate Ant with an IDE.
+</P>
+<p>To use build events you need to create an ant <code>Project</code> object. You can then call the
+<code>addBuildListener</code> method to add your listener to the project. Your listener must implement
+the <code>org.apache.tools.antBuildListener</code> interface. The listener will receive BuildEvents
+for the following events</P>
+<ul>
+<li>Build started</li>
+<li>Build finished</li>
+<li>Target started</li>
+<li>Target finished</li>
+<li>Task started</li>
+<li>Task finished</li>
+<li>Message logged</li>
+</ul>
+
+<p>If the build file invokes another build file via <a
+href="CoreTasks/ant.html"><code>&lt;ant&gt;</code></a> or <a
+href="CoreTasks/subant.html"><code>&lt;subant&gt;</code></a> or uses <a
+href="CoreTasks/antcall.html"><code>&lt;antcall&gt;</code></a>, you are creating a
+new Ant "project" that will send target and task level events of its
+own but never sends build started/finished events.  Ant 1.6.2
+introduces an extension of the BuildListener interface named
+SubBuildListener that will receive two new events for</p>
+<ul>
+<li>SubBuild started</li>
+<li>SubBuild finished</li>
+</ul>
+<p>If you are interested in those events, all you need to do is to
+implement the new interface instead of BuildListener (and register the
+listener, of course).</p>
+
+<p>
+If you wish to attach a listener from the command line you may use the
+<code>-listener</code> option. For example:</p>
+<blockquote>
+  <pre>ant -listener org.apache.tools.ant.XmlLogger</pre>
+</blockquote>
+<p>will run Ant with a listener that generates an XML representation of the build progress. This
+listener is included with Ant, as is the default listener, which generates the logging to standard output.</p>
+
+<p><b>Note: </b>A listener must not access System.out and System.err directly since ouput on 
+these streams is redirected by Ant's core to the build event system. Accessing these 
+streams can cause an infinite loop in Ant. Depending on the version of Ant, this will
+either cause the build to terminate or the Java VM to run out of Stack space. A logger, also, may 
+not access System.out and System.err directly. It must use the streams with which it has
+been configured.
+</p>
+
+<hr>
+<h2><a name="integration">Source code integration</a></h2>
+
+The other way to extend Ant through Java is to make changes to existing tasks, which is positively encouraged.
+Both changes to the existing source and new tasks can be incorporated back into the Ant codebase, which
+benefits all users and spreads the maintenance load around.
+<p>
+
+Please consult the
+<a href="http://jakarta.apache.org/site/getinvolved.html">Getting Involved</a> pages on the Jakarta web site
+for details on how to fetch the latest source and how to submit changes for reincorporation into the
+source tree.
+<p>
+Ant also has some
+<a href="http://ant.apache.org/ant_task_guidelines.html">task guidelines</a>
+which provides some advice to people developing and testing tasks. Even if you intend to
+keep your tasks to yourself, you should still read this as it should be informative.
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/developlist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/developlist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/developlist.html	(revision 14989)
@@ -0,0 +1,46 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Developing with Ant</h3>
+
+<a href="../ant_in_anger.html">Ant in Anger</a><br>
+<a href="../ant_task_guidelines.html">Ant Task Guidelines</a><br>
+<a href="develop.html#writingowntask">Writing Your Own Task</a><br>
+<a href="base_task_classes.html">Tasks Designed for Extension</a><br>
+<a href="develop.html#buildevents">Build Events</a><br>
+<a href="develop.html#integration">Source-code Integration</a><br>
+<a href="inputhandler.html">InputHandler</a><br>
+<a href="antexternal.html">Using Ant Tasks Outside of Ant</a><br>
+<br>Tutorials<br>
+<a href="tutorial-HelloWorldWithAnt.html">Hello World with Ant</a><br>
+<a href="tutorial-writing-tasks.html">Writing Tasks</a><br>
+<a href="tutorial-tasks-filesets-properties.html">Tasks using Properties, Filesets &amp; Paths</a><br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/dirtasks.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/dirtasks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/dirtasks.html	(revision 14989)
@@ -0,0 +1,300 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Directory-based Tasks</title>
+</head>
+
+<body>
+
+<h2><a name="directorybasedtasks">Directory-based Tasks</a></h2>
+<p>Some tasks use directory trees for the actions they perform.
+For example, the <a href="CoreTasks/javac.html">javac</a> task, which
+compiles a directory tree with <code>.java</code> files into
+<code>.class</code> files, is one of these directory-based tasks. Because
+some of these tasks do so much work with a directory tree, the task itself
+can act as an implicit <a href="CoreTypes/fileset.html">FileSet</a>.</p>
+<p>Whether the fileset is implicit or not, it can often be very useful to
+work on a subset of the directory tree. This section describes how you can
+select a subset of such a directory tree when using one of these
+directory-based tasks.</p>
+<p>Ant gives you two ways to create a subset of files in a fileset, both of
+which can be used at the same time:</p>
+<ul>
+  <li>Only include files and directories that match any
+    <code>include</code> patterns and do not match any
+    <code>exclude</code> patterns in a given
+    <a href="CoreTypes/patternset.html">PatternSet</a>.</li>
+  <li>Select files based on selection criteria defined by a collection of
+    <a href="CoreTypes/selectors.html">selector</a> nested elements.</li>
+</ul>
+<h3><a name="patternset">Patternset</a></h3>
+
+<p>We said that Directory-based tasks can sometimes act as an implicit
+<a href="CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>,
+but in addition to that, a FileSet acts as an implicit
+<a href="CoreTypes/patternset.html"><code>&lt;patternset&gt;</code></a>.</p>
+
+<p>The inclusion and exclusion elements of the implicit PatternSet can be
+specified inside the directory-based task (or explicit fileset) via
+either:</p>
+<ul>
+  <li>the attributes <code>includes</code> and
+    <code>excludes</code>.</li>
+  <li>nested elements <code>&lt;include&gt;</code> and
+    <code>&lt;exclude&gt;</code>.</li>
+  <li>external files specified with the attributes
+    <code>includesfile</code> and <code>excludesfile</code>.</li>
+  <li>external files specified with the nested elements
+    <code>&lt;includesfile&gt;</code> and <code>&lt;excludesfile&gt;</code>.
+  </li>
+</ul>
+<p>
+When dealing with an external file, each line of the file
+is taken as a pattern that is added to the list of include or exclude
+patterns.</p>
+
+<p>When both inclusion and exclusion are used, only files/directories that
+match at least one of the include patterns and don't match any of the
+exclude patterns are used. If no include pattern is given, all files
+are assumed to match the include pattern (with the possible exception of
+the default excludes).</p>
+
+<h4><a name="patterns">Patterns</a></h4>
+
+<p>As described earlier, patterns are used for the inclusion and exclusion
+of files. These patterns look very much like the patterns used in DOS and
+UNIX:</p>
+<p>'*' matches zero or more characters, '?' matches one character.</p>
+
+<p>In general, patterns are considered relative paths, relative to a
+task dependent base directory (the dir attribute in the case of
+<code>&lt;fileset&gt;</code>).  Only files found below that base
+directory are considered.  So while a pattern like
+<code>../foo.java</code> is possible, it will not match anything when
+applied since the base directory's parent is never scanned for
+files.</p>
+
+<p><b>Examples:</b></p>
+<p>
+<code>*.java</code>&nbsp;&nbsp;matches&nbsp;&nbsp;<code>.java</code>,
+<code>x.java</code> and <code>FooBar.java</code>, but
+not <code>FooBar.xml</code> (does not end with <code>.java</code>).</p>
+<p>
+<code>?.java</code>&nbsp;&nbsp;matches&nbsp;&nbsp;<code>x.java</code>,
+<code>A.java</code>, but not <code>.java</code> or <code>xyz.java</code>
+(both don't have one character before <code>.java</code>).</p>
+<p>
+Combinations of <code>*</code>'s and <code>?</code>'s are allowed.</p>
+<p>Matching is done per-directory. This means that first the first directory in
+the pattern is matched against the first directory in the path to match. Then
+the second directory is matched, and so on. For example, when we have the pattern
+<code>/?abc/*/*.java</code>
+and the path <code>/xabc/foobar/test.java</code>,
+the first <code>?abc</code> is matched with <code>xabc</code>,
+then <code>*</code> is matched with <code>foobar</code>,
+and finally <code>*.java</code> is matched with <code>test.java</code>.
+They all match, so the path matches the pattern.</p>
+<p>To make things a bit more flexible, we add one extra feature, which makes it
+possible to match multiple directory levels. This can be used to match a
+complete directory tree, or a file anywhere in the directory tree.
+To do this, <code>**</code>
+must be used as the name of a directory.
+When <code>**</code> is used as the name of a
+directory in the pattern, it matches zero or more directories.
+For example:
+<code>/test/**</code> matches all files/directories under <code>/test/</code>,
+such as <code>/test/x.java</code>,
+or <code>/test/foo/bar/xyz.html</code>, but not <code>/xyz.xml</code>.</p>
+<p>There is one &quot;shorthand&quot;: if a pattern ends
+with <code>/</code>
+or <code>\</code>, then <code>**</code>
+is appended.
+For example, <code>mypackage/test/</code> is interpreted as if it were
+<code>mypackage/test/**</code>.</p>
+<p><b>Example patterns:</b></p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><code>**/CVS/*</code></td>
+    <td valign="top">Matches all files in <code>CVS</code>
+      directories that can be located
+      anywhere in the directory tree.<br>
+      Matches:
+      <pre>
+      CVS/Repository
+      org/apache/CVS/Entries
+      org/apache/jakarta/tools/ant/CVS/Entries
+      </pre>
+      But not:
+      <pre>
+      org/apache/CVS/foo/bar/Entries (<code>foo/bar/</code>
+      part does not match)
+      </pre>
+    </td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/jakarta/**</code></td>
+    <td valign="top">Matches all files in the <code>org/apache/jakarta</code>
+      directory tree.<br>
+      Matches:
+      <pre>
+      org/apache/jakarta/tools/ant/docs/index.html
+      org/apache/jakarta/test.xml
+      </pre>
+      But not:
+      <pre>
+      org/apache/xyz.java
+      </pre>
+      (<code>jakarta/</code> part is missing).</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/**/CVS/*</code></td>
+    <td valign="top">Matches all files in <code>CVS</code> directories
+      that are located anywhere in the directory tree under
+      <code>org/apache</code>.<br>
+      Matches:
+      <pre>
+      org/apache/CVS/Entries
+      org/apache/jakarta/tools/ant/CVS/Entries
+      </pre>
+      But not:
+      <pre>
+      org/apache/CVS/foo/bar/Entries
+      </pre>
+      (<code>foo/bar/</code> part does not match)</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>**/test/**</code></td>
+    <td valign="top">Matches all files that have a <code>test</code>
+        element in their path, including <code>test</code> as a filename.</td>
+  </tr>
+</table>
+<p>When these patterns are used in inclusion and exclusion, you have a powerful
+way to select just the files you want.</p>
+
+<h3><a name="selectors">Selectors</a></h3>
+<p>The <a href="CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>,
+whether implicit or explicit in the
+directory-based task, also acts as an
+<a href="CoreTypes/selectors.html#andselect"><code>&lt;and&gt;</code></a>
+selector container. This can be used to create arbitrarily complicated
+selection criteria for the files the task should work with. See the
+<a href="CoreTypes/selectors.html">Selector</a> documentation for more
+information.</p>
+
+<h3><a name="tasklist">Standard Tasks/Filesets</a></h3>
+<p>Many of the standard tasks in ant take one or more filesets which follow
+the rules given here. This list, a subset of those, is a list of standard ant
+tasks that can act as an implicit fileset:</p>
+<ul>
+      <li><a href="CoreTasks/checksum.html"><code>&lt;checksum&gt;</code></a></li>
+  <li><a href="CoreTasks/copydir.html"><code>&lt;copydir&gt;</code></a> (deprecated)</li>
+  <li><a href="CoreTasks/delete.html"><code>&lt;delete&gt;</code></a></li>
+  <li><a href="CoreTasks/dependset.html"><code>&lt;dependset&gt;</code></a></li>
+  <li><a href="CoreTasks/fixcrlf.html"><code>&lt;fixcrlf&gt;</code></a></li>
+  <li><a href="CoreTasks/javac.html"><code>&lt;javac&gt;</code></a></li>
+  <li><a href="CoreTasks/replace.html"><code>&lt;replace&gt;</code></a></li>
+  <li><a href="CoreTasks/rmic.html"><code>&lt;rmic&gt;</code></a></li>
+  <li><a href="CoreTasks/style.html"><code>&lt;style&gt;</code> (aka <code>&lt;xslt&gt;</code>)</a></li>
+  <li><a href="CoreTasks/tar.html"><code>&lt;tar&gt;</code></a></li>
+  <li><a href="CoreTasks/zip.html"><code>&lt;zip&gt;</code></a></li>
+  <li><a href="OptionalTasks/ejb.html#ddcreator"><code>&lt;ddcreator&gt;</code></a></li>
+  <li><a href="OptionalTasks/ejb.html#ejbjar"><code>&lt;ejbjar&gt;</code></a></li>
+  <li><a href="OptionalTasks/ejb.html#ejbc"><code>&lt;ejbc&gt;</code></a></li>
+  <li><a href="OptionalTasks/cab.html"><code>&lt;cab&gt;</code></a></li>
+  <li><a href="OptionalTasks/native2ascii.html"><code>&lt;native2ascii&gt;</code></a></li>
+  <li><a href="OptionalTasks/netrexxc.html"><code>&lt;netrexxc&gt;</code></a></li>
+  <li>
+    <a href="OptionalTasks/renameextensions.html"><code>&lt;renameextensions&gt;</code></a>
+  </li>
+  <li><a href="OptionalTasks/depend.html"><code>&lt;depend&gt;</code></a></li>
+  <li><a href="OptionalTasks/dotnet.html"><code>&lt;ilasm&gt;</code></a></li>
+  <li><a href="OptionalTasks/dotnet.html"><code>&lt;csc&gt;</code></a></li>
+  <li><a href="OptionalTasks/dotnet.html"><code>&lt;vbc&gt;</code></a></li>
+  <li><a href="OptionalTasks/translate.html"><code>&lt;translate&gt;</code></a></li>
+  <li><a href="OptionalTasks/image.html"><code>&lt;image&gt;</code></a></li>
+  <li><a href="OptionalTasks/jlink.html"><code>&lt;jlink&gt;</code></a> (deprecated)</li>
+  <li><a href="OptionalTasks/jspc.html"><code>&lt;jspc&gt;</code></a></li>
+  <li><a href="OptionalTasks/wljspc.html"><code>&lt;wljspc&gt;</code></a></li>
+</ul>
+
+<h3><a name="examples">Examples</a></h3>
+<pre>
+&lt;copy todir=&quot;${dist}&quot;&gt;
+  &lt;fileset dir=&quot;${src}&quot;
+           includes=&quot;**/images/*&quot;
+           excludes=&quot;**/*.gif&quot;
+  /&gt;
+&lt;/copy&gt;</pre>
+<p>This copies all files in directories called <code>images</code> that are
+located in the directory tree defined by <code>${src}</code> to the
+destination directory defined by <code>${dist}</code>,
+but excludes all <code>*.gif</code> files from the copy.</p>
+<pre>
+&lt;copy todir=&quot;${dist}&quot;&gt;
+  &lt;fileset dir=&quot;${src}&quot;&gt;
+    &lt;include name=&quot;**/images/*&quot;/&gt;
+    &lt;exclude name=&quot;**/*.gif&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/copy&gt;
+</pre>
+<p> The same as the example above, but expressed using nested elements.</p>
+
+<pre>
+&lt;delete dir=&quot;${dist}&quot;&gt;
+    &lt;include name=&quot;**/images/*&quot;/&gt;
+    &lt;exclude name=&quot;**/*.gif&quot;/&gt;
+&lt;/delete&gt;
+</pre>
+<p>Deleting the original set of files, the <code>delete</code> task can act
+as an implicit fileset.</p>
+
+<h3><a name="defaultexcludes">Default Excludes</a></h3>
+<p>There are a set of definitions that are excluded by default from all
+directory-based tasks. They are:</p>
+<pre>
+     **/*~
+     **/#*#
+     **/.#*
+     **/%*%
+     **/._*
+     **/CVS
+     **/CVS/**
+     **/.cvsignore
+     **/SCCS
+     **/SCCS/**
+     **/vssver.scc
+     **/.svn
+     **/.svn/**
+     **/.DS_Store
+</pre>
+<p>If you do not want these default excludes applied, you may disable
+them with the <code>defaultexcludes=&quot;no&quot;</code>
+attribute.</p>
+
+<p>This is the default list; note that you can modify the list of
+default excludes by using the <a
+href="CoreTasks/defaultexcludes.html">defaultexcludes</a> task.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/feedback.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/feedback.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/feedback.html	(revision 14989)
@@ -0,0 +1,72 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual - Feedback</title>
+</head>
+
+<body>
+
+<h1><a name="feedback">Feedback</a> and Troubleshooting</h1>
+<p>If things do not work, especially simple things like <tt>ant -version</tt>, 
+  then something is wrong with your configuration. Before filing bug reports and 
+  emailing all the ant mailing lists</p>
+<ol>
+  <li>Check your environment variables. Are ANT_HOME and JAVA_HOME correct? If 
+    they have quotes or trailing slashes, remove them.</li>
+  <li>Unset CLASSPATH; if that is wrong things go horribly wrong. Ant does not 
+    need the CLASSPATH variable defined to anything to work.</li>
+  <li>Make sure there are no versions of crimson.jar or other XML parsers in JRE/ext</li>
+  <li>Is your path correct? is Ant on it? What about JDK/bin? have you tested 
+    this? If you are using Jikes, is it on the path? A createProcess error (especially 
+    with ID=2 on windows) usually means executable not found on the path.</li>
+  <li>Which version of ant are you running? Other applications distribute a copy 
+    -it may be being picked up by accident.</li>
+  <li>If a task is failing to run is optional.jar in ANT_HOME/lib? Are there any 
+    libraries which it depends on missing?</li>
+  <li>If a task doesn't do what you expect, run <tt>ant -verbose</tt> or <tt>ant 
+    -debug</tt> to see what is happening</li>
+</ol>
+<p>If you can't fix your problem, start with the <a href="http://ant.apache.org/mail.html" target="_top">Ant 
+  User Mailing List</a> . These are other ant users who will help you learn to 
+  use ant. If they cannot fix it then someone may suggest filing a bug report, 
+  which will escalate the issue. Remember of course, that support, like all open 
+  source development tasks, is voluntary. If you haven't invested time in helping 
+  yourself by following the steps above, it is unlikely that anyone will invest 
+  the time in helping you. </p>
+<p>Also, if you don't understand something, the <a href="http://ant.apache.org/mail.html" target="_top">Ant 
+  User Mailing List</a> is the place to ask questions. Not the developer list, 
+  nor the individuals whose names appears in the source and documentation. If 
+  they answered all such emails, nobody would have any time to improve ant. </p>
+<p>To provide feedback on this software, please subscribe to the <a href="http://ant.apache.org/mail.html" target="_top">Ant 
+  User Mailing List</a> </p>
+
+<p>If you want to contribute to Ant or stay current with the latest
+development, join the
+<a href="http://ant.apache.org/mail.html" target="_top">Ant Development Mailing List</a>
+</p>
+<p>A searchable archive can be found at <a
+href="http://marc.theaimsgroup.com" target="_top">http://marc.theaimsgroup.com</a>.
+Other archives will be documented online at  <a href="http://ant.apache.org/mail.html#Archives" target="_top">Mailing Lists Archives</a> </p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/ide.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/ide.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/ide.html	(revision 14989)
@@ -0,0 +1,105 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>IDE Integration</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>IDE Integration</h3>
+<p>
+All the modern Java IDEs support Ant almost out of the box.
+</p>
+
+<ul>
+  <li>
+    <a href="http://antrunner.sourceforge.net/">
+      AntRunner For JBuilder (unbundled)
+    </a>
+  </li>
+  <li>
+    <a href="Integration/jext-plugin.html">
+      AntWork Plugin for the Jext Java Text Editor (unbundled)
+    </a>
+  </li>
+  <li>
+    <a href="http://jdee.sunsite.dk/">
+      JDEE (Java Development Environment for Emacs)
+    </a> has built-in text ANT integration: selection of target through text
+    field, execution, hyperlink to compilation errors. Installation: built-in
+    JDEE 2.2.8 or later. Configuration: through customize menu
+    "Jde Build Function"
+  </li>
+  <li>
+    <a href="http://www.intellij.com/idea/">
+      IDEA
+    </a> has built-in GUI ANT integration: GUI selection of targets, execution,
+    hyperlink to compilation errors
+  </li>
+  <li>
+    <a href="http://ant.netbeans.org/">
+      NetBeans
+    </a>
+    NetBeans IDE uses Ant as the basis for its project system starting with the 4.0 release.
+  </li>
+  <li>
+    <a href="http://jedit.org/">
+      jEdit
+    </a>
+    jEdit is an open source java IDE with some great plugins for Java dev, a
+    good XML editor and the Antfarm plugin to execute targets in a build
+    file.
+  </li>
+  <li>
+    <a href="http://eclipse.org/">
+      Eclipse
+    </a>
+    Eclipse is IBM's counterpoint to NetBeans; an open source IDE with
+    Java and Ant support.
+  </li>
+  <li>
+    <a href="Integration/VAJAntTool.html">
+      VisualAge for Java</a>
+  </li>
+  <li>
+    <a href="http://www7b.software.ibm.com/wsdd/library/techarticles/0203_searle/searle1.html">
+      WebSphere Studio Application Developer
+    </a>
+  </li>
+  <li>
+    <a href="http://www.borland.com/jbuilder/pdf/jb9_feamatrix.pdf">
+      JBuilder 9 Personal
+    </a>
+    JBuilder supports Ant with the following features. Add Ant nodes to
+    projects and execute Ant targets from within JBuilder. Add custom Ant-based
+    build tasks with custom Ant libraries to run Ant from within JBuilder.
+    Rapid navigation from Ant build error messages to source files.
+    Customize build menu and toolbar with custom build targets.
+  </li>
+</ul>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/index.html	(revision 14989)
@@ -0,0 +1,34 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+</head>
+
+<frameset cols="26%,74%" bordercolor="Highlight" border="2" >
+<frame src="toc.html" name="navFrame" marginheight="0" marginwidth="0" frameborder="1">
+<frame src="cover.html" name="mainFrame" marginheight="0" marginwidth="0" frameborder="1">
+</frameset>
+<noframes>
+<H2>Apache Ant User Manual</H2>
+
+<a href="toc.html">Apache Ant User Manual</a></noframes>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/inputhandler.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/inputhandler.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/inputhandler.html	(revision 14989)
@@ -0,0 +1,110 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>InputHandler</title>
+</head>
+
+<body>
+<h1>InputHandler</h1>
+
+<h2>Overview</h2>
+
+<p>When a task wants to prompt a user for input, it doesn't simply
+read the input from the console as this would make it impossible to
+embed Ant in an IDE.  Instead it asks an implementation of the
+<code>org.apache.tools.ant.input.InputHandler</code> interface to
+prompt the user and hand the user input back to the task.</p>
+
+<p>To do this, the task creates an <code>InputRequest</code> object
+and passes it to the <code>InputHandler</code> Such an
+<code>InputRequest</code> may know whether a given user input is valid
+and the <code>InputHandler</code> is supposed to reject all invalid
+input.</p>
+
+<p>Exactly one <code>InputHandler</code> instance is associated with
+every Ant process, users can specify the implementation using the
+<code>-inputhandler</code> command line switch.</p>
+
+<h2>InputHandler</h2>
+
+<p>The <code>InputHandler</code> interface contains exactly one
+method</p>
+
+<pre>
+    void handleInput(InputRequest request) 
+        throws org.apache.tools.ant.BuildException;
+</pre>
+
+<p>with some pre- and postconditions.  The main postcondition is that
+this method must not return unless the <code>request</code> considers
+the user input valid, it is allowed to throw an exception in this
+situation.</p>
+
+<p>Ant comes with three built-in implementations of this interface:</p>
+
+<h3><a name="defaulthandler">DefaultInputHandler</a></h3>
+
+<p>This is the implementation you get, when you don't use the
+<code>-inputhandler</code> command line switch at all.  This
+implementation will print the prompt encapsulated in the
+<code>request</code> object to Ant's logging system and re-prompt for
+input until the user enters something that is considered valid input
+by the <code>request</code> object.  Input will be read from the
+console and the user will need to press the Return key.</p>
+
+<h3>PropertyFileInputHandler</h3>
+
+<p>This implementation is useful if you want to run unattended build
+processes.  It reads all input from a properties file and makes the
+build fail if it cannot find valid input in this file.  The name of
+the properties file must be specified in the Java system property
+<code>ant.input.properties</code>.</p>
+
+<p>The prompt encapsulated in a <code>request</code> will be used as
+the key when looking up the input inside the properties file.  If no
+input can be found, the input is considered invalid and an exception
+will be thrown.</p>
+
+<p><strong>Note</strong> that <code>ant.input.properties</code> must
+be a Java system property, not an Ant property.  I.e. you cannot
+define it as a simple parameter to <code>ant</code>, but you can
+define it inside the <code>ANT_OPTS</code> environment variable.</p>
+
+<h3>GreedyInputHandler</h3>
+
+<p>Like the default implementation, this InputHandler reads from standard
+input. However, it consumes <i>all</i> available input. This behavior is
+useful for sending Ant input via an OS pipe. <b>Since Ant 1.7</b>.</p>
+
+<h2>InputRequest</h2>
+
+<p>Instances of <code>org.apache.tools.ant.input.InputRequest</code>
+encapsulate the information necessary to ask a user for input and
+validate this input.</p>
+
+<p>The instances of <code>InputRequest</code> itself will accept any
+input, but subclasses may use stricter validations.
+<code>org.apache.tools.ant.input.MultipleChoiceInputRequest</code>
+should be used if the user input must be part of a predefined set of
+choices.</p>
+
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/install.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/install.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/install.html	(revision 14989)
@@ -0,0 +1,845 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Installing Ant</title>
+</head>
+
+<body>
+<h1>Installing Ant</h1>
+<h2><a name="getting">Getting Ant</a></h2>
+<h3>Binary Edition</h3>
+<p>The latest stable version of Ant is available from the Ant web page <a
+href="http://ant.apache.org/">http://ant.apache.org/</a>.
+
+<h3>As a binary in an RPM Package</h3>
+
+<p>Consult the <a href="#jpackage">jpackage</a> section below.</p>
+
+<h3>Bundled in IDEs</h3>
+<p>
+    All the main Java IDEs ship with Ant, products such as Eclipse, NetBeans
+    and IntelliJ IDEA. If you install Ant this way you usually get the most recent
+    release of Ant at the time the IDE was released. Some of the IDEs (Eclipse
+    and NetBeans in particular) ship with extra tasks that only work if 
+    IDE-specific tools are on Ant's path. To use these on command-line versions
+    of Ant, the relevant JARs need to be added to the command-line Ant as
+    extra libraries/tasks. Note that if it is an IDE task or extension that is
+    not behaving, the Ant team is unable to field bug reports. Try the IDE mailing
+    lists first, who will cross-file bugs if appropriate.
+</p>
+<p>
+    IDE's can invariably be pointed at different Ant installations. This lets
+    developers upgrade to a new release of Ant, and eliminate inconsistencies 
+    between command-line and IDE Ant. 
+</p>
+
+<h3>Bundled in Java applications</h3>
+
+<p>
+    Many Java applications, most particularly application servers, ship with 
+    a version of Ant. These are primarily for internal use by the application,
+    using the Java APIs to delegate tasks such as JSP page compilation to the Ant
+    runtime. Such distributions are usually unsupported by everyone. Particularly
+    troublesome are those products that non only ship with their own Ant release,
+    they add their own version of ANT.BAT or ant.sh to the PATH. If Ant starts 
+    behaving wierdly after installing something, try the 
+    <a href="#diagnostics">diagnostics</a> advice.
+</p>
+
+<h3>Source Edition</h3>
+
+<p>If you prefer the source edition, you can download the source for the latest 
+Ant release from 
+<a href="http://ant.apache.org/srcdownload.cgi">http://ant.apache.org/srcdownload.cgi</a>.
+
+If you prefer the leading-edge code, you can access
+the code as it is being developed via SVN. The Ant website has details on
+<a href="http://ant.apache.org/svn.html" target="_top">accessing SVN</a>. 
+All bug fixes will go in against the HEAD of the source tree, and the first
+response to many bugreps will be "have you tried the latest version". 
+Don't be afraid to download and build a prererelease edition, as everything
+other than new features are usually stable.
+    </p>
+<p>
+    
+    
+See the section <a href="#buildingant">Building Ant</a> on how to
+build Ant from the source code.
+You can also access the
+<a href="http://svn.apache.org/viewcvs.cgi/ant/" target="_top">
+Ant SVN repository</a> on-line. </p>
+
+<hr>
+<h2><a name="sysrequirements">System Requirements</a></h2>
+Ant has been used successfully on many platforms, including Linux,
+commercial flavours of Unix such as Solaris and HP-UX,
+Windows NT-platforms, OS/2 Warp, Novell Netware 6, OpenVMS and MacOS X.
+The platforms used most for development are, in no particular order,
+Linux, MacOS X, Windows XP and Unix; these are therefore that platforms
+that tend to work best. As of Ant1.7, Windows 9x is no longer supported.
+<p>
+To build and use Ant, you must have a JAXP-compliant XML parser installed and
+available on your classpath, such as Xerces.</p>
+<p>
+The binary distribution of Ant includes the latest version of the
+<a href="http://xml.apache.org/xerces2-j/index.html">Apache Xerces2</a> XML parser.
+Please see
+<a href="http://java.sun.com/xml/" target="_top">http://java.sun.com/xml/</a>
+for more information about JAXP.
+If you wish to use a different JAXP-compliant parser, you should remove
+<code>xercesImpl.jar</code> and <code>xml-apis.jar</code>
+from Ant's <code>lib</code> directory.
+<p>
+You can then either put the JARs of your preferred parser into Ant's
+<code>lib</code> directory or put the jars on the system classpath. 
+Some parts of Ant will fail if you use an old parser, especially one
+that is not namespace-aware. In particular, avoid the Crimson parser.</p>
+
+<p>Tip: "ant -diagnostics" will list the XML parser used and its location.</p>
+
+<p>
+For the current version of Ant, you will also need a JDK installed on
+your system, version 1.2 or later required, 1.5 or later strongly recommended. 
+The later the version of Java , the more Ant tasks you get.
+</p>
+<p>
+<strong>Note #2: </strong>If a JDK is not present, only the JRE runtime, then many tasks will not work.
+</p>
+
+<h3>Open Source Java Runtimes</h3>
+<p>
+    The Ant team strongly supports users running Ant on Kaffe and other
+    open source Java runtimes, and so strives to have a product that works
+    well on those platforms. What appears to work well is Kaffe with 
+    Gnu Classpath and the Xerces and Xalan libraries. 
+</p>
+
+<hr>
+<h2><a name="installing">Installing Ant</a></h2>
+<p>The binary distribution of Ant consists of the following directory layout:
+<pre>
+  ant
+   +--- README, LICENSE, fetch.xml, other text files. //basic information
+   +--- bin  // contains launcher scripts
+   |
+   +--- lib  // contains Ant jars plus necessary dependencies
+   |
+   +--- docs // contains documentation
+   |      |
+   |      +--- images  // various logos for html documentation
+   |      |
+   |      +--- manual  // Ant documentation (a must read ;-)
+   |
+   +--- etc // contains xsl goodies to:
+            //   - create an enhanced report from xml output of various tasks.
+            //   - migrate your build files and get rid of 'deprecated' warning
+            //   - ... and more ;-)
+</pre>
+
+Only the <code>bin</code> and <code>lib</code> directories are
+required to run Ant.
+
+To install Ant, choose a directory and copy the distribution
+files there. This directory will be known as ANT_HOME.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td colspan="2">
+    <b>Windows 95, Windows 98 &amp; Windows ME Note:</b>
+  </td>
+</tr>
+<tr>
+  <td width="5%">&nbsp;</td>
+  <td><i>
+On these systems, the script used to launch Ant will have
+problems if ANT_HOME is a long filename (i.e. a filename which is not
+of the format known as &quot;8.3&quot;). This is due to
+limitations in the OS's handling of the <code>&quot;for&quot;</code>
+batch-file statement. It is recommended, therefore, that Ant be
+installed in a <b>short</b>, 8.3 path, such as C:\Ant. </i>
+  </td>
+</tr>
+<tr>
+  <td width="5%">&nbsp;</td>
+  <td>
+    <p>On these systems you will also need to configure more environment
+       space to cater for the environment variables used in the Ant lauch script.
+       To do this, you will need to add or update the following line in
+       the <code>config.sys</code> file
+    </p>
+    <p><code>shell=c:\command.com c:\ /p /e:32768</code></p>
+  </td>
+</tr>
+</table>
+
+<h3>Setup</h3>
+<p>
+Before you can run Ant there is some additional set up you
+will need to do unless you are installing the <a href="#jpackage">RPM 
+version from jpackage.org</a>:</p>
+<ul>
+<li>Add the <code>bin</code> directory to your path.</li>
+<li>Set the <code>ANT_HOME</code> environment variable to the
+directory where you installed Ant.  On some operating systems, Ant's
+startup scripts can guess <code>ANT_HOME</code> (Unix dialects and
+Windows NT/2000), but it is better to not rely on this behavior.</li>
+<li>Optionally, set the <code>JAVA_HOME</code> environment variable
+(see the <a href="#advanced">Advanced</a> section below).
+This should be set to the directory where your JDK is installed.</li>
+</ul>
+<p><strong>Note:</strong> Do not install Ant's ant.jar file into the lib/ext
+directory of the JDK/JRE. Ant is an application, whilst the extension
+directory is intended for JDK extensions. In particular there are security
+restrictions on the classes which may be loaded by an extension.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td colspan="2">
+    <b>Windows Note:</b>
+  </td>
+</tr>
+<tr>
+  <td width="5%">&nbsp;</td>
+  <td>
+    The ant.bat script makes use of three environment variables -
+    ANT_HOME, CLASSPATH and JAVA_HOME. <b>Ensure</b> that if
+    these variables are set, they do <b><u>not</u></b> have quotes (either
+    ' or &quot;) and they do <b><u>not</u></b> end with \ or with /.
+  </td>
+</tr>
+</table>
+
+<h3><a name="optionalTasks">Optional Tasks</a></h3>
+<p>Ant supports a number of optional tasks. An optional task is a task which
+typically requires an external library to function. The optional tasks are
+packaged together with the core Ant tasks.</p>
+
+<p>The external libraries required by each of the optional tasks is detailed
+in the <a href="#librarydependencies">Library Dependencies</a> section. These external
+libraries must be added to Ant's classpath, in any of the following ways 
+</p>
+<ul>
+    <li>In ANT_HOME/lib. This makes the JAR files available to all
+    Ant users and builds</li>
+    
+    <li>
+        In ${user.home}/.ant/lib . This is a new feature since Ant1.6, 
+        and allows different users to add new libraries to Ant. All JAR files
+        added to this directory are available to command-line Ant.
+    </li>
+    
+    <li>
+        On the command line with a <code>-lib</code> parameter. This lets
+        you add new JAR files on a case-by-case basis.
+    </li>
+    
+    <li>In the CLASSPATH environment variable. Avoid this; it makes
+        the JAR files visible to <i>all</i> Java applications, and causes
+        no end of support calls.
+    </li>
+</ul>
+
+<p>
+    IDEs have different ways of adding external JAR files and third-party tasks
+    to Ant. Usually it is done by some configuration dialog. Sometimes JAR files
+    added to a project are automatically added to ant's classpath.
+</p>
+
+<h3><a name="classpath">The CLASSPATH environment variable</a></h3>
+<p>
+
+The CLASSPATH environment variable is a source of many Ant support queries. As
+the round trip time for diagnosis on the Ant user mailing list can be slow, and
+because filing bug reports complaining about 'ant.bat' not working will be
+rejected by the developers as WORKSFORME "this is a configuration problem, not a
+bug", you can save yourself a lot of time and frustration by following some
+simple steps.
+
+</p>
+<ol>
+
+<li>Do not ever set CLASSPATH. Ant does not need it, it only causes confusion
+and breaks things.
+
+</li>
+
+<li>If you ignore the previous rule, do not ever, ever, put quotes in the
+CLASSPATH, even if there is a space in a directory. This will break Ant, and it
+is not needed. </li>
+
+<li>If you ignore the first rule, do not ever, ever, have a trailing backslash
+in a CLASSPATH, as it breaks Ant's ability to quote the string. Again, this is
+not needed for the correct operation of the CLASSPATH environment variable, even
+if a DOS directory is to be added to the path. </li>
+
+<li>You can stop Ant using the CLASSPATH environment variable by setting the
+<code>-noclasspath</code> option on the command line. This is an easy way
+to test for classpath-related problems.</li>
+
+</ol>
+
+<p>
+
+The usual symptom of CLASSPATH problems is that ant will not run with some error
+about not being able to find <code>org.apache.tools.Ant.main</code>, or, if you have got the
+quotes/backslashes wrong, some very weird Java startup error. To see if this is
+the case, run <code>ant -noclasspath</code> or unset the CLASSPATH environment
+variable.
+
+</p>
+
+
+<h3><a name="proxy">Proxy Configuration</a></h3>
+
+<p> Many Ant built-in and third-party tasks use network connections to retrieve
+files from HTTP servers. If you are behind a firewall with a proxy server, then
+Ant needs to be configured with the proxy. Here are the different ways to do
+this. </p>
+
+<ul>
+
+<li><b>With Java1.5</b><br>. 
+
+When you run Ant on Java1.5, it tries to use the automatic proxy setup
+mechanism. If this works -and it is a big if, as we see little evidence of it
+doing so on Linux or WinXP-, then your proxy is set up without you doing
+anything. You can disable this feature with the <code>-noproxy</code> option.
+
+</li>
+
+<li><b>With explicit JVM properties.</b><br>.
+
+These are documented <a
+href="http://java.sun.com/j2se/1.5.0/docs/guide/net/properties.html">by Sun</a>,
+and control the proxy behaviour of the entire JVM. To set them in Ant, declare
+them in the <code>ANT_OPTS</code> environment variable. This is the best option
+for a non-mobile system. For a laptop, you have to change these settings as you
+roam.
+
+</li>
+
+<li><b>In the build file itself</b><br>
+
+If you are writing an build file that is always to be used behind the firewall,
+the &lt;setproxy&gt; task lets you configure the proxy (which it does by setting
+the JVM properties). If you do this, we strongly recommend using ant properties
+to define the proxy host, port, etc, so that individuals can override the
+defaults.</li>
+
+</ul>
+
+<p> The Ant team acknowledges that this is unsatisfactory. Until the JVM
+automatic proxy setup works properly everywhere, explicit JVM options via
+ANT_ARGS are probably the best solution. Setting properties on Ant's
+command line do not work, because those are <i>Ant properties</i> being set, not
+JVM options. This means the following does not set up the command line:
+
+</p>
+
+<pre>ant -Dhttp.proxyHost=proxy -Dhttp.proxyPort=81</pre>
+
+<p> All it does is set up two Ant properties.</p> 
+
+<p>One other troublespot with
+proxies is with authenticating proxies. Ant cannot go beyond what the JVM does
+here, and as it is very hard to remotely diagnose, test and fix proxy-related
+problems, users who work behind a secure proxy will have to spend much time
+configuring the JVM properties until they are happy. </p>
+
+
+<h3><a name="windows">Windows and OS/2</a></h3>
+<p>Assume Ant is installed in <code>c:\ant\</code>. The following sets up the
+environment:</p>
+<pre>set ANT_HOME=c:\ant
+set JAVA_HOME=c:\jdk-1.5.0.05
+set PATH=%PATH%;%ANT_HOME%\bin</pre>
+
+<h3>Linux/Unix (bash)</h3>
+<p>Assume Ant is installed in <code>/usr/local/ant</code>. The following sets up
+the environment:</p>
+<pre>export ANT_HOME=/usr/local/ant
+export JAVA_HOME=/usr/local/jdk-1.5.0.05
+export PATH=${PATH}:${ANT_HOME}/bin</pre>
+
+<h3>Linux/Unix (csh)</h3>
+<pre>setenv ANT_HOME /usr/local/ant
+setenv JAVA_HOME /usr/local/jdk/jdk-1.5.0.05
+set path=( $path $ANT_HOME/bin )</pre>
+
+<p>
+Having a symbolic link set up to point to the JVM/JSK version makes updates more seamless. </p>
+<a name="jpackage"></a>
+<h3>RPM version from jpackage.org</h3>
+<p>
+The <a href="http://www.jpackage.org">JPackage project</a> distributes an RPM version of Ant.  
+With this version, it is not necessary to set <code> JAVA_HOME </code>or 
+<code> ANT_HOME </code>environment variables and the RPM installer will correctly
+place the Ant executable on your path.
+</p>
+  <p>
+    <b>NOTE:</b> <em>Since Ant 1.7.0</em>, if the <code>ANT_HOME</code>
+    environment variable is set, the jpackage distribution will be
+    ignored.
+  </p>
+  <p>
+Optional jars for the JPackage version are handled in two ways.  The easiest, and
+best way is to get these external libraries from JPackage if JPackage has them 
+available.  (Note: for each such library, you will have to get both the external 
+package itself (e.g. <code>oro-2.0.8-2jpp.noarch.rpm</code>) and the small library that links 
+ant and the external package (e.g. <code>ant-apache-oro-1.6.2-3jpp.noarch.rpm</code>).
+</p><p>
+However, JPackage does not package proprietary software, and since some of the
+optional packages depend on proprietary jars, they must be handled as follows.  
+This may violate the spirit of JPackage, but it is necessary if you need these proprietary packages.
+For example, suppose you want to install support for starteam, which jpackage does not 
+support:
+<ol>
+<li>Decide where you want to deploy the extra jars.  One option is in <code>$ANT_HOME/lib</code>, 
+which, for JPackage is usually <code>/usr/share/ant/lib</code>.  Another, less messy option
+is to create an <code>.ant/lib</code> subdirectory of your home directory and place your 
+non-jpackage ant jars there, thereby avoiding mixing jpackage
+libraries with non-jpacakge stuff in the same folder.
+More information on where Ant finds its libraries is available 
+<a href="http://ant.apache.org/manual/running.html#libs">here</a></li>
+<li>Download a non-jpackage binary distribution from the regular 
+    <a href="http://ant.apache.org/bindownload.cgi">Apache Ant site</a></li>
+<li>Unzip or untar the distribution into a temporary directory</li>
+<li>Copy the linking jar, in this case <code>ant-starteam.jar</code>, into the library directory you 
+chose in step 1 above.</li>
+<li>Copy the proprietary jar itself into the same directory.</li>
+</ol>
+Finally, if for some reason you are running on a system with both the JPackage and Apache versions of Ant
+available, if you should want to run the Apache version (which will have to be specified with an absolute file name,
+not found on the path), you should use Ant's <code>--noconfig</code> command-line switch to avoid JPackage's classpath mechanism.
+
+
+<h3><a name="advanced">Advanced</a></h3>
+
+<p>There are lots of variants that can be used to run Ant. What you need is at
+least the following:</p>
+<ul>
+<li>The classpath for Ant must contain <code>ant.jar</code> and any jars/classes
+needed for your chosen JAXP-compliant XML parser.</li>
+<li>When you need JDK functionality
+(such as for the <a href="CoreTasks/javac.html">javac</a> task or the
+<a href="CoreTasks/rmic.html">rmic</a> task), then <code>tools.jar</code>
+must be added. The scripts supplied with Ant,
+in the <code>bin</code> directory, will add
+the required JDK classes automatically, if the <code>JAVA_HOME</code>
+environment variable is set.</li>
+
+<li>When you are executing platform-specific applications, such as the
+<a href="CoreTasks/exec.html">exec</a> task or the
+<a href="CoreTasks/cvs.html">cvs</a> task, the property <code>ant.home</code>
+must be set to the directory containing where you installed Ant. Again
+this is set by the Ant scripts to the value of the ANT_HOME environment
+variable.</li>
+</ul>
+The supplied ant shell scripts all support an <tt>ANT_OPTS</tt>
+environment variable which can be used to supply extra options
+to ant. Some of the scripts also read in an extra script stored
+in the users home directory, which can be used to set such options. Look
+at the source for your platform's invocation script for details.
+
+<hr>
+<h2><a name="buildingant">Building Ant</a></h2>
+<p>To build Ant from source, you can either install the Ant source distribution
+or checkout the ant module from SVN.</p>
+<p>Once you have installed the source, change into the installation
+directory.</p>
+
+<p>Set the <code>JAVA_HOME</code> environment variable
+to the directory where the JDK is installed.
+See <a href="#installing">Installing Ant</a>
+for examples on how to do this for your operating system. </p>
+
+<p><b>Note</b>: The bootstrap process of Ant requires a greedy
+compiler like Sun's javac or jikes.  It does not work with gcj or
+kjc.</p>
+
+<p>Make sure you have downloaded any auxiliary jars required to
+build tasks you are interested in. These should be
+added to the <code>lib/optional</code>
+directory of the source tree.
+See <a href="#librarydependencies">Library Dependencies</a>
+for a list of JAR requirements for various features.
+Note that this will make the auxiliary JAR
+available for the building of Ant only. For running Ant you will
+still need to
+make the JARs available as described under
+<a href="#installing">Installing Ant</a>.</p>
+
+<p>Your are now ready to build Ant:</p>
+<blockquote>
+  <p><code>build -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
+  <p><code>sh build.sh -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
+</blockquote>
+
+<p>This will create a binary distribution of Ant in the directory you specified.</p>
+
+<p>The above action does the following:</p>
+<ul>
+
+<li>If necessary it will bootstrap the Ant code. Bootstrapping involves the manual
+compilation of enough Ant code to be able to run Ant. The bootstrapped Ant is
+used for the remainder of the build steps. </li>
+
+<li>Invokes the bootstrapped Ant with the parameters passed to the build script. In
+this case, these parameters define an Ant property value and specify the &quot;dist&quot; target
+in Ant's own <code>build.xml</code> file.</li>
+    
+<li>Create the ant.jar and ant-launcher.jar JAR files</li>
+    
+<li>Create optional JARs for which the build had the relevant libraries. If 
+a particular library is missing from ANT_HOME/lib/optional, then the matching
+ant- JAR file will not be created. For example, ant-junit.jar is only built
+if there is a junit.jar in the optional directory.</li>    
+</ul>
+
+<p>On most occasions you will not need to explicitly bootstrap Ant since the build
+scripts do that for you. If however, the build file you are using makes use of features
+not yet compiled into the bootstrapped Ant, you will need to manually bootstrap.
+Run <code>bootstrap.bat</code> (Windows) or <code>bootstrap.sh</code> (UNIX)
+to build a new bootstrap version of Ant.</p>
+
+If you wish to install the build into the current <code>ANT_HOME</code>
+directory, you can use:
+<blockquote>
+  <p><code>build install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
+  <p><code>sh build.sh install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
+</blockquote>
+
+You can avoid the lengthy Javadoc step, if desired, with:
+<blockquote>
+  <p><code>build install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
+  <p><code>sh build.sh install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
+</blockquote>
+This will only install the <code>bin</code> and <code>lib</code> directories.
+<p>Both the <code>install</code> and
+<code>install-lite</code> targets will overwrite
+the current Ant version in <code>ANT_HOME</code>.</p>
+
+<hr>
+<h2><a name="librarydependencies">Library Dependencies</a></h2>
+<p>The following libraries are needed in Ant's classpath 
+if you are using the
+indicated feature. Note that only one of the regexp libraries is
+needed for use with the mappers
+(and Java 1.4 and higher includes a regexp implementation which
+Ant will find automatically).
+You will also need to install the particular
+Ant optional jar containing the task definitions to make these
+tasks available. Please refer to the <a href="#optionalTasks">
+Installing Ant / Optional Tasks</a> section above.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Jar Name</b></td>
+    <td><b>Needed For</b></td>
+    <td><b>Available At</b></td>
+  </tr>
+  <tr>
+    <td>An XSL transformer like Xalan</td>
+    <td>style task</td>
+    <td>
+    <b>If you use JDK 1.4+, an XSL transformer is already included, so you need not do anything special.</b><br>
+    <ul><li>XALAN : <a href="http://xml.apache.org/xalan-j/index.html"
+    target="_top">http://xml.apache.org/xalan-j/index.html</a></li>
+    </ul>
+    </td>
+  </tr>
+  <tr>
+    <td>jakarta-regexp-1.3.jar</td>
+    <td>regexp type with mappers</td>
+    <td><a href="http://jakarta.apache.org/regexp/" target="_top">http://jakarta.apache.org/regexp/</a></td>
+  </tr>
+  <tr>
+    <td>jakarta-oro-2.0.8.jar</td>
+    <td>regexp type with mappers and the perforce tasks<br>
+    To use the FTP task,
+you need jakarta-oro 2.0.8 or later, and <a href="#commons-net">commons-net</a></td>
+    <td><a href="http://jakarta.apache.org/oro/" target="_top">http://jakarta.apache.org/oro/</a></td>
+  </tr>
+  <tr>
+    <td>junit.jar</td>
+    <td><code>&lt;junit&gt;</code> task. May be in classpath passed to task rather than Ant's classpath.</td>
+    <td><a href="http://www.junit.org/" target="_top">http://www.junit.org/</a></td>
+  </tr>
+  <tr>
+    <td>xalan.jar</td>
+    <td>junitreport task</td>
+    <td><a href="http://xml.apache.org/xalan-j/" target="_top">http://xml.apache.org/xalan-j/</a></td>
+  </tr>
+  <tr>
+    <td>stylebook.jar</td>
+    <td>stylebook task</td>
+    <td>CVS repository of <a href="http://xml.apache.org/cvs.html" target="_top">http://xml.apache.org/cvs.html</a></td>
+  </tr>
+  <tr>
+    <td>antlr.jar</td>
+    <td>antlr task</td>
+    <td><a href="http://www.antlr.org/" target="_top">http://www.antlr.org/</a></td>
+  </tr>
+  <tr>
+    <td>bsf.jar</td>
+    <td>script task
+      <p>
+        <strong>Note</strong>: Ant 1.6 and later require Apache BSF, not
+        the IBM version.  I.e. you need BSF 2.3.0-rc1 or later.
+      </p>
+      <p>
+        <strong>Note</strong>: BSF 2.4.0 is needed to use a post 1.5R3 version
+        of rhino's javascript.
+      </p>
+      <p>
+        <strong>Note</strong>: BSF 2.4.0 uses jakarata-commons-logging
+        so it needs the commons-logging.jar.
+      </p>
+      </td>
+    <td><a href="http://jakarta.apache.org/bsf/" target="_top">http://jakarta.apache.org/bsf/</a></td>
+  </tr>
+  <tr>
+    <td>Groovy jars</td>
+    <td>Groovy with script and scriptdef tasks<br>
+      You need to get the groovy jar and two asm jars from a groovy
+      installation. The jars are groovy-[version].jar, asm-[vesion].jar and
+      asm-util-[version].jar and antlr-[version].jar.
+      As of groovy version 1.0-JSR-06, the jars are
+      groovy-1.0-JSR-06.jar, antlr-2.7.5.jar, asm-2.2.jar and asm-util-2.2.jar.
+      Alternatively one may use the embedded groovy jar file.
+      This is located in the embedded directory of the groovy distribution.
+      This bundles all the needed jar files into one jar file.
+      It is called groovy-all-[version].jar.
+    </td>
+    <td>
+      <a href="http://groovy.codehaus.org/">http://groovy.codehaus.org/</a>
+      <br>
+      The asm jars are also available from the creators of asm -
+      <a href="http://asm.objectweb.org/">http://asm.objectweb.org/</a>
+    </td>
+  </tr>
+  <tr>
+    <td>netrexx.jar</td>
+    <td>netrexx task, Rexx with the script task</td>
+    <td><a href="http://www.ibm.com/software/awdtools/netrexx/download.html" target="_top">
+        http://www.ibm.com/software/awdtools/netrexx/download.html</a></td>
+  </tr>
+  <tr>
+    <td>js.jar</td>
+    <td>Javascript with script task<br>
+    If you use Apache BSF 2.3.0-rc1, you must use rhino 1.5R3 (later
+    versions of BSF (e.g. version 2.4.0) work with 1.5R4 and higher).</td>
+    <td><a href="http://www.mozilla.org/rhino/" target="_top">http://www.mozilla.org/rhino/</a></td>
+  </tr>
+  <tr>
+    <td>jython.jar</td>
+    <td>Python with script task<br>
+    Warning : jython.jar also contains classes from jakarta-oro.
+    Remove these classes if you are also using jakarta-oro.</td>
+    <td><a href="http://jython.sourceforge.net/" target="_top">http://jython.sourceforge.net/</a></td>
+  </tr>
+  <tr>
+    <td>jpython.jar</td>
+    <td>Python with script task <b>deprecated, jython is the prefered engine</b></td>
+    <td><a href="http://www.jpython.org/" target="_top">http://www.jpython.org/</a></td>
+  </tr>
+  <tr>
+    <td>jacl.jar and tcljava.jar</td>
+    <td>TCL with script task</td>
+    <td><a href="http://www.scriptics.com/software/java/" target="_top">http://www.scriptics.com/software/java/</a></td>
+  </tr>
+  <tr>
+    <td>BeanShell JAR(s)</td>
+    <td>BeanShell with script task.
+      <br>
+    <strong>Note</strong>: Ant requires BeanShell version 1.3 or
+      later</td>
+    <td><a href="http://www.beanshell.org/" target="_top">http://www.beanshell.org/</a></td>
+  </tr>
+  <tr>
+    <td>jruby.jar</td>
+    <td>Ruby with script task</td>
+    <td><a href="http://jruby.sourceforge.net/" target="_top">http://jruby.sourceforge.net/</a></td>
+  </tr>
+  <tr>
+    <td>judo.jar</td>
+    <td>Judoscript with script task</td>
+    <td><a href="http://www.judoscript.com/index.html" target="_top">http://www.judoscript.com/index.html</a></td>
+  </tr>
+  <tr>
+    <td>commons-logging.jar</td>
+    <td>CommonsLoggingListener</td>
+    <td><a href="http://jakarta.apache.org/commons/logging/index.html"
+           target="_top">http://jakarta.apache.org/commons/logging/index.html</a></td>
+  </tr>
+  <tr>
+    <td>log4j.jar</td>
+    <td>Log4jListener</td>
+    <td><a href="http://jakarta.apache.org/log4j/docs/index.html"
+           target="_top">http://jakarta.apache.org/log4j/docs/index.html</a></td>
+  </tr>
+  <tr>
+    <td><a name="commons-net">commons-net.jar</a></td>
+    <td>ftp, rexec and telnet tasks<br>
+    jakarta-oro 2.0.8 or later is required together with commons-net 1.4.0.<br>
+    For all users, a minimum version of commons-net of 1.4.0 is recommended.  Earlier 
+    versions did not support the full range of configuration options, and 1.4.0 is needed
+    to compile Ant.
+    </td>
+    <td><a href="http://jakarta.apache.org/commons/net/index.html"
+           target="_top">http://jakarta.apache.org/commons/net/index.html</a></td>
+  </tr>
+  <tr>
+    <td>bcel.jar</td>
+    <td>classfileset data type,
+        JavaClassHelper used by the ClassConstants filter reader and
+        optionally used by ejbjar for dependency determination
+    </td>
+    <td><a href="http://jakarta.apache.org/bcel/" target="_top">http://jakarta.apache.org/bcel/</a></td>
+  </tr>
+  <tr>
+    <td>mail.jar</td>
+    <td>Mail task with Mime encoding, and the MimeMail task</td>
+    <td><a href="http://java.sun.com/products/javamail/"
+        target="_top">http://java.sun.com/products/javamail/</a></td>
+  </tr>
+  <tr>
+    <td>jsse.jar</td>
+    <td>
+Support for SMTP over TLS/SSL <br>
+in the Mail task<br>
+Already included Java 1.4+</td>
+    <td><a href="http://java.sun.com/products/jsse/"
+        target="_top">http://java.sun.com/products/jsse/</a></td>
+  </tr>
+  <tr>
+    <td>activation.jar</td>
+    <td>Mail task with Mime encoding, and the MimeMail task</td>
+    <td><a href="http://java.sun.com/products/javabeans/glasgow/jaf.html"
+        target="_top">http://java.sun.com/products/javabeans/glasgow/jaf.html</a></td>
+  </tr>
+  <tr>
+    <td>jdepend.jar</td>
+    <td>jdepend task</td>
+    <td><a href="http://www.clarkware.com/software/JDepend.html"
+        target="_top">http://www.clarkware.com/software/JDepend.html</a></td>
+  </tr>
+  <tr>
+    <td>resolver.jar <b>1.1beta or later</b></td>
+    <td>xmlcatalog datatype <em>only if support for external catalog files is desired</em></td>
+    <td><a href="http://xml.apache.org/commons/"
+    target="_top">http://xml.apache.org/commons/</a>.</td>
+  </tr>
+  <tr>
+    <td>jsch.jar <b>0.1.29 or later</b></td>
+    <td>sshexec and scp tasks</td>
+    <td><a href="http://www.jcraft.com/jsch/index.html"
+        target="_top">http://www.jcraft.com/jsch/index.html</a></td>
+  </tr>
+  <tr>
+    <td>JAI - Java Advanced Imaging</td>
+    <td>image task</td>
+    <td><a href="http://java.sun.com/products/java-media/jai/"
+        target="_top">http://java.sun.com/products/java-media/jai/</a></td>
+  </tr>
+  <tr>
+    <td>Starteam SDK</td>
+    <td>Starteam version management tasks</td>
+    <td><a href="http://www.borland.com/downloads/download_starteam.html"
+        target="_top">http://www.borland.com/downloads/download_starteam.html</a></td>
+  </tr>
+</table>
+<br>
+<h2><a name="Troubleshooting">Troubleshooting</a></h2>
+
+
+<h3><a name="diagnostics">Diagnostics</a></h3>
+
+<p> Ant has a built in diagnostics feature. If you run <code>ant
+-diagnostics</code> ant will look at its internal state and print it out. This
+code will check and print the following things. </p>
+
+<ul>
+
+<li>Where Ant is running from. Sometimes you can be surprised.</li>    
+    
+<li>The version of ant.jar and of the ant-*.jar containing the optional tasks -
+    and whether they match</li>
+
+<li>Which JAR files are int ANT_HOME/lib
+
+<li>Which optional tasks are available. If a task is not listed as being
+available, either it is not present, or libraries that it depends on are
+absent.</li>
+
+
+<li>XML Parser information</li>
+
+<li>JVM system properties
+</li>
+
+<li>The status of the temp directory. If this is not writeable, or its clock is
+horribly wrong (possible if it is on a network drive), a lot of tasks will fail
+with obscure error messages.</li>
+
+<li>The current time zone as Java sees it. If this is not what it should be for
+your location, then dependency logic may get confused.
+
+</ul>
+
+<p>
+    Running <code>ant -diagnostics</code> is a good way to check that ant is 
+    installed. It is also a first step towards self-diagnosis of any problem. 
+    Any configuration problem reported to the user mailing list will probably 
+    result ins someone asking you to run the command and show the results, so 
+    save time by using it yourself.
+</p>
+
+<p>
+    For under-IDE diagostics, use the &lt;diagnostics&gt; task to run the same 
+    tests as an ant task. This can be added to a diagnostics target in a build 
+    file to see what tasks are available under the IDE, what the XML parser and 
+    classpath is, etc. 
+</p>
+
+<h3><a name="ant-user">user mailing list</a></h3>
+
+<p> If you cannot get Ant installed or working, the Ant user mailing list is the
+best place to start with any problem. Please do your homework first, make sure
+that it is not a <a href="#classpath">CLASSPATH</a> problem, and run a <a
+href="#diagnostics">diagnostics check</a> to see what Ant thinks of its own
+state. Why the user list, and not the developer list? 
+Because there are more users than developers, so more people who can help you. </p>
+
+<p>
+
+Please only file a bug report against Ant for a configuration/startup problem if
+there really is a fixable bug in Ant related to configuration, such as it not
+working on a particular platform, with a certain JVM version, etc, or if you are
+advised to do it by the user mailing list.
+</p>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/installlist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/installlist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/installlist.html	(revision 14989)
@@ -0,0 +1,43 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Installing Ant</h3>
+<p><a href="install.html#getting">Getting Ant</a><br>
+  <a href="install.html#sysrequirements">System Requirements</a><br>
+  <a href="install.html#installing">Installing Ant</a><br>
+  <a href="install.html#buildingant">Building Ant</a><br>
+  <a href="install.html#librarydependencies">Library Dependencies</a><br>
+  <a href="platform.html">Platform Specific Issues</a><br>
+  <a href="proxy.html">Proxy configuration</a><br>
+</p>
+<p><br>
+</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/intro.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/intro.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/intro.html	(revision 14989)
@@ -0,0 +1,69 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual - Introduction</title>
+</head>
+
+<body>
+<h1><a name="introduction">Introduction</a></h1>
+<p>Apache Ant is a Java-based build tool. In theory, it is kind of like
+<i>make</i>, without <i>make</i>'s wrinkles.</p>
+<h3>Why?</h3>
+<p>Why another build tool when there is already
+<i>make</i>,
+<i>gnumake</i>,
+<i>nmake</i>,
+<i>jam</i>,
+and
+others? Because all those tools have limitations that Ant's original author
+couldn't live with when developing software across multiple platforms.
+Make-like
+tools are inherently shell-based: they evaluate a set of dependencies,
+then execute commands not unlike what you would issue on a shell.
+This means that you
+can easily extend these tools by using or writing any program for the OS that
+you are working on; however, this also means that you limit yourself to the OS,
+or at least the OS type, such as Unix, that you are working on.</p>
+<p>Makefiles are inherently evil as well. Anybody who has worked on them for any
+time has run into the dreaded tab problem. &quot;Is my command not executing
+because I have a space in front of my tab?!!&quot; said the original author of
+Ant way too many times. Tools like Jam took care of this to a great degree, but
+still have yet another format to use and remember.</p>
+<p>Ant is different. Instead of a model where it is extended with shell-based
+commands, Ant is extended using Java classes. Instead of writing shell commands,
+the configuration files are XML-based, calling out a target tree where various
+tasks get executed. Each task is run by an object that implements a particular
+Task interface.</p>
+<p>Granted, this removes some of the expressive power that is inherent in being
+able to construct a shell command such as
+<nobr><code>`find . -name foo -exec rm {}`</code></nobr>, but it
+gives you the ability to be cross-platform--to work anywhere and
+everywhere. And
+hey, if you really need to execute a shell command, Ant has an
+<code>&lt;exec&gt;</code> task that
+allows different commands to be executed based on the OS it is executing
+on.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/javacprops.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/javacprops.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/javacprops.html	(revision 14989)
@@ -0,0 +1,53 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Properties controlling javac</title>
+</head>
+
+<body>
+
+<p>The source and target attributes of <code>&lt;javac&gt;</code>
+don't have any default values for historical reasons.  Since the
+underlying javac compiler's default depends on the JDK you use, you
+may encounter build files that don't explicitly set those attributes
+and that will no longer compile using a newer JDK.  If you cannot
+change the build file, Ant provides two properties that help you
+setting default values for these attributes.  If the attributes have
+been set explicitly, the properties listed here will be ignored.</p>
+
+<h2><a name="source">ant.build.javac.source</a></h2>
+
+<p><em>Since Ant 1.7</em></p>
+
+<p>Provides a default value for <code>&lt;javac&gt;</code>'s and
+<code>&lt;javadoc&gt;</code>'s source attribute.</p>
+
+<h2><a name="target">ant.build.javac.target</a></h2>
+
+<p><em>Since Ant 1.7</em></p>
+
+<p>Provides a default value for <code>&lt;javac&gt;</code>'s target
+attribute.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/listeners.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/listeners.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/listeners.html	(revision 14989)
@@ -0,0 +1,412 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Listeners &amp; Loggers</title>
+</head>
+
+<body>
+<h1>Listeners &amp; Loggers</h1>
+
+<h2><a name="Overview">Overview</a></h2>
+
+<p>Ant has two related features to allow the build process to be monitored:
+listeners and loggers.</p>
+
+<h3><a name="Listeners">Listeners</a></h3>
+
+<p>A listener is alerted of the following events:</p>
+
+<ul>
+  <li>build started</li>
+  <li>build finished</li>
+  <li>target started</li>
+  <li>target finished</li>
+  <li>task started</li>
+  <li>task finished</li>
+  <li>message logged</li>
+</ul>
+
+<h3><a name="Loggers">Loggers</a></h3>
+
+<p>Loggers extend the capabilities of listeners and add the following features:</p>
+
+<ul>
+  <li>Receives a handle to the standard output and error print streams and
+  therefore can log information to the console or the -logfile specified file.</li>
+  <li>Logging level (-quiet, -verbose, -debug) aware</li>
+  <li>Emacs-mode aware</li>
+</ul>
+
+<h2><a name="builtin">Built-in Listeners/Loggers</a></h2>
+
+<table border="1" cellspacing="1" width="100%" id="AutoNumber1">
+  <tr>
+    <td width="33%">Classname</td>
+    <td width="33%">Description</td>
+    <td width="34%">Type</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#DefaultLogger">org.apache.tools.ant.DefaultLogger</a></code></td>
+    <td width="33%">The logger used implicitly unless overridden with the
+    <code>-logger</code> command-line switch.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#NoBannerLogger">
+    org.apache.tools.ant.NoBannerLogger</a></code></td>
+    <td width="33%">This logger omits output of empty target output.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#MailLogger">
+    org.apache.tools.ant.listener.MailLogger</a></code></td>
+    <td width="33%">Extends DefaultLogger such that output is still generated
+    the same, and when the build is finished an e-mail can be sent.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#AnsiColorLogger">
+    org.apache.tools.ant.listener.AnsiColorLogger</a></code></td>
+    <td width="33%">Colorifies the build output.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#Log4jListener">
+    org.apache.tools.ant.listener.Log4jListener</a></code></td>
+    <td width="33%">Passes events to Log4j for highly customizable logging.</td>
+    <td width="34%">BuildListener</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#XmlLogger">org.apache.tools.ant.XmlLogger</a></code></td>
+    <td width="33%">Writes the build information to an XML file.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#TimestampedLogger">org.apache.tools.ant.TimestampedLogger</a></code></td>
+    <td width="33%">Prints the time that a build finished</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+
+</table>
+<h3><a name="DefaultLogger">DefaultLogger</a></h3>
+
+<p>Simply run Ant normally, or:</p>
+
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.DefaultLogger</code></p>
+
+</blockquote>
+
+<h3><a name="NoBannerLogger">NoBannerLogger</a></h3>
+
+<p>Removes output of empty target output.</p>
+
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.NoBannerLogger</code></p>
+
+</blockquote>
+
+<h3><a name="MailLogger">MailLogger</a></h3>
+
+<p>The MailLogger captures all output logged through DefaultLogger (standard Ant
+output) and will send success and failure messages to unique e-mail lists, with
+control for turning off success or failure messages individually.</p>
+<p>Properties controlling the operation of MailLogger:</p>
+<table border="1" cellspacing="1" width="100%" id="AutoNumber2">
+  <tr>
+    <th width="337">Property</th>
+    <th width="63%">Description</th>
+    <th width="63%">Required</th>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.mailhost </td>
+    <td width="63%">Mail server to use</td>
+    <td width="63%">No, default &quot;localhost&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.port </td>
+    <td width="63%">SMTP Port for the Mail server</td>
+    <td width="63%">No, default &quot;25&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.user</td>
+    <td width="63%">user name for SMTP auth</td>
+    <td width="63%">Yes, if SMTP auth is required on your SMTP server<br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.password</td>
+    <td width="63%">password for SMTP auth</td>
+    <td width="63%">Yes, if SMTP auth is required on your SMTP server<br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.ssl</td>
+    <td width="63%">on or true if ssl is needed<br>
+    This feature requires JavaMail</td>
+    <td width="63%">
+    no</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.from</td>
+    <td width="63%">Mail &quot;from&quot; address</td>
+    <td width="63%">Yes, if mail needs to be sent</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.replyto</td>
+    <td width="63%">Mail &quot;replyto&quot; address(es), comma-separated</td>
+    <td width="63%">No</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.failure.notify </td>
+    <td width="63%">Send build failure e-mails?</td>
+    <td width="63%">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.success.notify </td>
+    <td width="63%">Send build success e-mails?</td>
+    <td width="63%">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.failure.to </td>
+    <td width="63%">Address(es) to send failure messages to, comma-separated</td>
+    <td width="63%">Yes, if failure mail is to be sent</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.success.to </td>
+    <td width="63%">Address(es) to send success messages to, comma-separated</td>
+    <td width="63%">Yes, if success mail is to be sent</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.failure.subject </td>
+    <td width="63%">Subject of failed build</td>
+    <td width="63%">No, default &quot;Build Failure&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.success.subject </td>
+    <td width="63%">Subject of successful build</td>
+    <td width="63%">No, default &quot;Build Success&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.properties.file </td>
+    <td width="63%">Filename of properties file that will override other values.</td>
+    <td width="63%">No</td>
+  </tr>
+</table>
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.listener.MailLogger</code></p>
+
+</blockquote>
+
+<h3><a name="AnsiColorLogger">AnsiColorLogger</a></h3>
+
+<p>The AnsiColorLogger adds color to the standard Ant output
+by prefixing and suffixing ANSI color code escape sequences to
+it.  It is just an extension of <a href="#DefaultLogger">DefaultLogger</a>
+and hence provides all features that DefaultLogger does.</p>
+<p>AnsiColorLogger differentiates the output by assigning
+different colors depending upon the type of the message.</p>
+<p>If used with the -logfile option, the output file
+will contain all the necessary escape codes to
+display the text in colorized mode when displayed
+in the console using applications like cat, more, etc.</p>
+<p>This is designed to work on terminals that support ANSI
+color codes.  It works on XTerm, ETerm, Win9x Console
+(with ANSI.SYS loaded.), etc.</p>
+<p><Strong>NOTE:</Strong>
+It doesn't work on WinNT even when a COMMAND.COM console loaded with
+ANSI.SYS is used.</p>
+<p>If the user wishes to override the default colors
+with custom ones, a file containing zero or more of the
+custom color key-value pairs must be created.  The recognized keys
+and their default values are shown below:</p><code><pre>
+AnsiColorLogger.ERROR_COLOR=2;31
+AnsiColorLogger.WARNING_COLOR=2;35
+AnsiColorLogger.INFO_COLOR=2;36
+AnsiColorLogger.VERBOSE_COLOR=2;32
+AnsiColorLogger.DEBUG_COLOR=2;34</pre></code>
+<p>Each key takes as value a color combination defined as
+<b>Attribute;Foreground;Background</b>.  In the above example, background
+value has not been used.</p>
+<p>This file must be specfied as the value of a system variable
+named ant.logger.defaults and passed as an argument using the -D
+option to the <b>java</b> command that invokes the Ant application.
+An easy way to achieve this is to add -Dant.logger.defaults=
+<i>/path/to/your/file</i> to the ANT_OPTS environment variable.
+Ant's launching script recognizes this flag and will pass it to
+the java command appropriately.</p>
+<p>Format:</p><pre>
+AnsiColorLogger.*=Attribute;Foreground;Background
+
+Attribute is one of the following:
+0 -&gt; Reset All Attributes (return to normal mode)
+1 -&gt; Bright (Usually turns on BOLD)
+2 -&gt; Dim
+3 -&gt; Underline
+5 -&gt; link
+7 -&gt; Reverse
+8 -&gt; Hidden
+
+Foreground is one of the following:
+30 -&gt; Black
+31 -&gt; Red
+32 -&gt; Green
+33 -&gt; Yellow
+34 -&gt; Blue
+35 -&gt; Magenta
+36 -&gt; Cyan
+37 -&gt; White
+
+Background is one of the following:
+40 -&gt; Black
+41 -&gt; Red
+42 -&gt; Green
+43 -&gt; Yellow
+44 -&gt; Blue
+45 -&gt; Magenta
+46 -&gt; Cyan
+47 -&gt; White</pre>
+
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.listener.AnsiColorLogger</code></p>
+
+</blockquote>
+
+<h3><a name="Log4jListener">Log4jListener</a></h3>
+
+<p>Passes build events to Log4j, using the full classname's of the generator of
+each build event as the category:</p>
+
+<ul>
+  <li>build started / build finished - org.apache.tools.ant.Project</li>
+  <li>target started / target finished - org.apache.tools.ant.Target</li>
+  <li>task started / task finished - the fully qualified classname of the task</li>
+  <li>message logged - the classname of one of the above, so if a task logs a
+  message, its classname is the category used, and so on.</li>
+</ul>
+
+<p>All start events are logged as INFO.&nbsp; Finish events are either logged as
+INFO or ERROR depending on whether the build failed during that stage. Message
+events are logged according to their Ant logging level, mapping directly to a
+corresponding Log4j level.</p>
+
+<blockquote>
+
+<p><code>ant -listener org.apache.tools.ant.listener.Log4jListener</code></p>
+
+</blockquote>
+
+<p>To use Log4j you will need the Log4j jar file and a 'log4j.properties'
+configuration file.  Both should be placed somewhere in your Ant
+classpath. If the log4j.properties is in your project root folder you can
+add this with <i>-lib</i> option:</p>
+
+<blockquote>
+<pre><code>ant -listener org.apache.tools.ant.listener.Log4jListener -lib .</code></pre>
+</blockquote>
+
+<p>If, for example, you wanted to capture the same information output to the
+console by the DefaultLogger and send it to a file named 'build.log', you
+could use the following configuration:</p>
+
+<blockquote>
+
+<pre><code>log4j.rootLogger=ERROR, LogFile
+log4j.logger.org.apache.tools.ant.Project=INFO
+log4j.logger.org.apache.tools.ant.Target=INFO
+log4j.logger.org.apache.tools.ant.taskdefs=INFO
+log4j.logger.org.apache.tools.ant.taskdefs.Echo=WARN
+
+log4j.appender.LogFile=org.apache.log4j.FileAppender
+log4j.appender.LogFile.layout=org.apache.log4j.PatternLayout
+log4j.appender.LogFile.layout.ConversionPattern=[%6r] %8c{1} : %m%n
+log4j.appender.LogFile.file=build.log
+</code></pre>
+
+</blockquote>
+
+<p>For more information about configuring Log4J see <a href="http://logging.apache.org/log4j/docs/documentation.html">its
+documentation page</a>.</p>
+
+<h3><a name="XmlLogger">XmlLogger</a></h3>
+
+<p>Writes all build information out to an XML file named log.xml, or the value
+of the <code>XmlLogger.file</code> property if present, when used as a
+listener. When used as a logger, it writes all output to either the
+console or to the value of <code>-logfile</code>. Whether used as a listener
+or logger, the output is not generated until the build is complete, as it
+buffers the information in order to provide timing information for task,
+targets, and the project.
+<p>
+By default the XML file creates
+a reference to an XSLT file "log.xsl" in the current directory; look in
+ANT_HOME/etc for one of these. You can set the property
+<code>ant.XmlLogger.stylesheet.uri</code> to provide a uri to a style sheet.
+this can be a relative or absolute file path, or an http URL.
+If you set the property to the empty string, "", no XSLT transform
+is declared at all.
+</p>
+
+<blockquote>
+
+<p><code>ant -listener org.apache.tools.ant.XmlLogger</code><br>
+<code>ant -logger org.apache.tools.ant.XmlLogger -verbose -logfile build_log.xml</code></p>
+
+</blockquote>
+
+
+<h3><a name="TimestampedLogger">TimestampedLogger</a></h3>
+
+<p>
+  Acts like the default logger, except that the final success/failure message also includes
+  the time that the build completed. For example:
+</p>
+<pre>
+  BUILD SUCCESSFUL - at 16/08/05 16:24
+</pre>
+
+<blockquote>
+
+<code>ant  -logger org.apache.tools.ant.listener.TimestampedLogger</code>
+
+</blockquote>
+
+
+<h2><a name="dev">Writing your own</a></h2>
+
+<p>See the <a href="develop.html#buildevents">Build Events</a> section for
+developers.</p>
+
+<p>Notes:</p>
+
+<ul>
+  <li>A listener or logger should not write to standard output or error; Ant
+  captures these internally and may cause an infinite loop.</li>
+</ul>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/optionaltasklist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/optionaltasklist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/optionaltasklist.html	(revision 14989)
@@ -0,0 +1,93 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<a href="coretasklist.html" target="navFrame">Core Tasks</a><br>
+<a href="tasksoverview.html" target="mainFrame">Overview of Ant Tasks</a><br>
+<a href="conceptstypeslist.html" target="navFrame">Concepts and Types</a><br>
+
+<h3>Optional Tasks</h3>
+<a href="OptionalTasks/dotnet.html"><i>.NET Tasks</i></a><br>
+<a href="OptionalTasks/antinstaller.html">AntInstaller</a><br>
+<a href="OptionalTasks/antlr.html">ANTLR</a><br>
+<a href="OptionalTasks/attrib.html">Attrib</a><br>
+<a href="OptionalTasks/cab.html">Cab</a><br>
+<a href="OptionalTasks/chgrp.html">Chgrp</a><br>
+<a href="OptionalTasks/chown.html">Chown</a><br>
+<a href="OptionalTasks/clearcase.html">Clearcase Tasks</a><br>
+<a href="OptionalTasks/ccm.html">Continuus/Synergy Tasks</a><br>
+<a href="OptionalTasks/depend.html">Depend</a><br>
+<a href="OptionalTasks/ejb.html">EJB Tasks</a><br>
+<a href="OptionalTasks/echoproperties.html">Echoproperties</a><br>
+<a href="OptionalTasks/ftp.html">FTP</a><br>
+<a href="OptionalTasks/image.html">Image</a><br>
+<a href="OptionalTasks/jarlib-available.html">Jarlib-available</a><br>
+<a href="OptionalTasks/jarlib-display.html">Jarlib-display</a><br>
+<a href="OptionalTasks/jarlib-manifest.html">Jarlib-manifest</a><br>
+<a href="OptionalTasks/jarlib-resolve.html">Jarlib-resolve</a><br>
+<a href="OptionalTasks/javacc.html">JavaCC</a><br>
+<a href="OptionalTasks/javah.html">Javah</a><br>
+<a href="OptionalTasks/jspc.html">JspC</a><br>
+<a href="OptionalTasks/jdepend.html">JDepend</a><br>
+<a href="OptionalTasks/jjdoc.html">JJDoc</a><br>
+<a href="OptionalTasks/jjtree.html">JJTree</a><br>
+<a href="OptionalTasks/jlink.html"><i>Jlink</i></a><br>
+<a href="OptionalTasks/junit.html">JUnit</a><br>
+<a href="OptionalTasks/junitreport.html">JUnitReport</a><br>
+<a href="OptionalTasks/mimemail.html"><i>MimeMail</i></a><br>
+<a href="OptionalTasks/native2ascii.html">Native2Ascii</a><br>
+<a href="OptionalTasks/netrexxc.html">NetRexxC</a><br>
+<a href="OptionalTasks/perforce.html">Perforce Tasks</a><br>
+<a href="OptionalTasks/propertyfile.html">PropertyFile</a><br>
+<a href="OptionalTasks/pvcstask.html">Pvcs</a><br>
+<a href="OptionalTasks/renameextensions.html"><i>RenameExtensions</i></a><br>
+<a href="OptionalTasks/replaceregexp.html">ReplaceRegExp</a><br>
+<a href="OptionalTasks/rexec.html">RExec</a><br>
+<a href="OptionalTasks/rpm.html">Rpm</a><br>
+<a href="OptionalTasks/schemavalidate.html">SchemaValidate</a><br>
+<a href="OptionalTasks/scp.html">Scp</a><br>
+<a href="OptionalTasks/script.html">Script</a><br>
+<a href="OptionalTasks/scriptdef.html">Scriptdef</a><br>
+<a href="OptionalTasks/serverdeploy.html">ServerDeploy</a><br>
+<a href="OptionalTasks/setproxy.html">Setproxy</a><br>
+<a href="OptionalTasks/sound.html">Sound</a><br>
+<a href="OptionalTasks/sos.html">SourceOffSite</a><br>
+<a href="OptionalTasks/splash.html">Splash</a><br>
+<a href="OptionalTasks/sshexec.html">Sshexec</a><br>
+<a href="OptionalTasks/starteam.html">Starteam Tasks</a><br>
+<a href="OptionalTasks/stylebook.html"><i>Stylebook</i></a><br>
+<a href="OptionalTasks/symlink.html">Symlink</a><br>
+<a href="OptionalTasks/telnet.html">Telnet</a><br>
+<a href="OptionalTasks/translate.html">Translate</a><br>
+<a href="OptionalTasks/vss.html#tasks">Microsoft Visual SourceSafe Tasks</a><br>
+<a href="OptionalTasks/wljspc.html">Weblogic JSP Compiler</a><br>
+<a href="OptionalTasks/xmlvalidate.html">XmlValidate</a><br>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/platform.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/platform.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/platform.html	(revision 14989)
@@ -0,0 +1,205 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Platform Issues</title>
+</head>
+
+<h1>Platform Issues</h1>
+
+<h2>Java versions</h2>
+<h3>Java 1.5</h3>
+
+You may need a bigger stack than default, especially if you are using the built in
+XSLT engine. We recommend you use Apache Xalan; indeed, some tasks (JUnit report in XML,
+for example) may not work against the shipping XSL engine.
+
+<h3>Java 1.2</h3>
+
+
+You may sometimes see messages like
+<pre>
+A nonfatal internal JIT (3.10.107(x)) error 'chgTarg: Conditional' has
+occurred in :
+  'org/apache/tools/ant/Project.addReference
+(Ljava/lang/String;Ljava/lang/Object;)V': Interpreting method.
+  Please report this error in detail to
+  http://java.sun.com/cgi-bin/bugreport.cgi
+</pre>
+These are caused by subtle incompatibilities between the Java1.4+ compiled
+release; bugs in the Java runtime that Sun won't fix. Possible solutions:-
+<ol>
+<li>Upgrade your JVM.
+<li>Recompile Ant on a Java1.2 machine
+<li>Add <tt>-Djava.compiler=NONE</tt> to
+the value of your ANT_OPTS environment variable. This turns the JIT off.
+<li>Ignore the messages.
+</ol>
+
+
+
+
+<h2>Unix and Linux</h2>
+
+<ul>
+<li> You should use a GNU version of <tt>tar</tt> to untar the Apache 
+Ant source tree, if you have downloaded this as a tar file. If you get
+wierd errors about missing files, this is the problem. 
+</li>
+<li> Ant does not preserve file permissions when a file is copied, moved or 
+archived, because Java does not let it read or write the permissions.
+ Use <tt>&lt;chmod&gt;</tt> to set permissions, and when creating a 
+tar archive, use the <tt>mode</tt> attribute of <tt>&lt;tarfileset&gt;</tt>
+to set the permissions in the tar file, or <code>&lt;apply&gt;</code> the real tar program.
+</li>
+<li> Ant is not symbolic link aware in moves, deletes and when recursing down a tree
+of directories to build up a list of files. Unexpected things can happen.
+</li>
+<li> Linux on IA-64: apparently you need a larger heap than the default
+one (64M) to compile big projects. If you get out of heap
+errors, either increase the heap or use a forking javac. Better yet,
+use jikes for extra compilation speed.   
+</li>
+
+</ul>
+
+
+<h2>Microsoft Windows</h2>
+<p>
+Windows 9x (win95, win98, win98SE and winME) are not supported in Ant1.7,
+</p>
+
+<p>
+The Ant team has retired support for these products because they are outdated and
+can expose customers to security risks. We recommend that customers who are
+still running Windows 98 or Windows Me upgrade to a newer, more secure 
+operating system, as soon as possible.
+</p>
+<p>
+Customers who upgrade to Linux report improved security, richer
+functionality, and increased productivity. 
+</p>
+<h2>Microsoft Windows 2K, XP and Server 2K03 </h2>
+
+<p>
+Windows 9x (win95, win98, win98SE and winME) has a batch file system which
+does not work fully with long file names, so we recommend that ant and the JDK
+are installed into directories without spaces, and with 8.3 filenames. 
+The Perl and Python launcher scripts do not suffer from this limitation.
+</p>
+<p>
+All versions of windows are usually case insensitive, although mounted 
+file systems (Unix drives, Clearcase views) can be case sensitive underneath,
+confusing patternsets.
+</p>
+<p>
+Ant can often not delete a directory which is open in an Explorer window. 
+There is nothing we can do about this short of spawning a program to kill
+the shell before deleting directories.
+Nor can files that are in use be overwritten.
+</p>
+<p>
+    Finally, if any Ant task fails with an IOError=2, it means that whatever
+    native program Ant is trying to run, it is not on the path.
+</p>
+
+<h2>Microsoft Windows Vista</h2>
+<p>
+    There are reports of problems with Windows Vista security bringing up
+    dialog boxes asking if the user wants to run an untrusted executable
+    during an ant run, such as when the &lt;signjar&gt task runs the jarsigner.exe
+    program. This is beyond Ant's control, and stems from the OS trying to provide
+    some illusion of security by being reluctant to run unsigned native executables.
+    The latest Java versions appear to resolve this problem by having signed
+    binaries. 
+</p>
+
+
+<h2>Cygwin</h2>
+
+Cygwin is not an operating system; rather it is an application suite 
+running under Windows and providing some UNIX like functionality. Sun has 
+not created any specific Java Development Kit or Java Runtime Environment for 
+cygwin. See this link : 
+<a href="http://www.inonit.com/cygwin/faq/">http://www.inonit.com/cygwin/faq/</a> . 
+Only Windows path 
+names are supported by JDK and JRE tools under Windows or cygwin. Relative path 
+names such as "src/org/apache/tools" are supported, but Java tools do not 
+understand /cygdrive/c to mean c:\.
+<p>
+The utility cygpath (used industrially in the ant script to support cygwin) can 
+convert cygwin path names to Windows.
+You can use the <code>&lt;exec&gt;</code> task in ant to convert cygwin paths to Windows path, for 
+instance like that :
+<pre>
+&lt;property name=&quot;some.cygwin.path&quot; value=&quot;/cygdrive/h/somepath&quot;/&gt;
+&lt;exec executable=&quot;cygpath&quot; outputproperty=&quot;windows.pathname&quot;&gt;
+   &lt;arg value=&quot;--windows&quot;/&gt;
+   &lt;arg value=&quot;${some.cygwin.path}&quot;/&gt;
+&lt;/exec&gt;
+&lt;echo message=&quot;${windows.pathname}&quot;/&gt;
+</pre>
+
+We get lots of support calls from Cygwin users. Either it is incredibly
+popular, or it is trouble. If you do use it, remember that Java is a
+Windows application, so Ant is running in a Windows process, not a
+Cygwin one. This will save us having to mark your bug reports as invalid. 
+
+<h2>Apple MacOS X</h2>
+
+MacOS X is the first of the Apple platforms that Ant supports completely;
+it is treated like any other Unix. 
+
+<h2>Novell Netware</h2>
+
+<p>To give the same level of sophisticated control as Ant's startup scripts on other platforms, it was decided to make the main ant startup on NetWare be via a Perl Script, "runant.pl".  This is found in the bin directory (for instance - bootstrap\bin or dist\bin).</p>
+
+<p>One important item of note is that you need to set up the following to run ant:</p>
+<ul><li><code>CLASSPATH</code> - put ant.jar, xercesImpl.jar, xml-apis.jar and any other needed jars on the system classpath.</li>
+   <li><code>ANT_OPTS</code> - On NetWare, <code>ANT_OPTS</code> needs to include a parameter of the form, <nobr>"-envCWD=<code>ANT_HOME</code>"</nobr>, with <code>ANT_HOME</code> being the fully expanded location of Ant, <b>not</b> an environment variable.  This is due to the fact that the NetWare System Console has no notion of a current working directory.</li>
+</ul>
+<p>It is suggested that you create up an ant.ncf that sets up these parameters, and calls <code>perl ANT_HOME/dist/bin/runant.pl</code></p>
+<p>The following is an example of such an NCF file(assuming ant is installed in <nobr>'sys:/apache-ant/'):</nobr></p>
+<code>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=SYS:/apache-ant/bootstrap/lib/ant.jar<br>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xercesImpl.jar <br>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xml-apis.jar <br>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/optional/junit.jar <br>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/bootstrap/lib/optional.jar <br>
+<br>
+   &nbsp;&nbsp;&nbsp;setenv ANT_OPTS=-envCWD=sys:/apache-ant <br>
+   &nbsp;&nbsp;&nbsp;envset ANT_OPTS=-envCWD=sys:/apache-ant <br>
+   &nbsp;&nbsp;&nbsp;setenv ANT_HOME=sys:/apache-ant/dist/lib <br>
+   &nbsp;&nbsp;&nbsp;envset ANT_HOME=sys:/apache-ant/dist/lib <br>
+<br>
+   &nbsp;&nbsp;&nbsp;perl sys:/apache-ant/dist/bin/runant.pl <br>
+</code>
+
+<p>Ant works on JVM version 1.3 or higher.  You may have some luck running it on JVM 1.2, but serious problems have been found running Ant on JVM 1.1.7B.  These problems are caused by JVM bugs that will not be fixed.</p>
+<p>JVM 1.3 is supported on Novell NetWare versions 5.1 and higher.</p>
+
+
+<h2>Other platforms</h2>
+Support for other platforms is not guaranteed to be complete, as certain 
+techniques to hide platform details from build files need to be written and
+tested on every particular platform. Contributions in this area are welcome.
+
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/proxy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/proxy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/proxy.html	(revision 14989)
@@ -0,0 +1,199 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Proxy Configuration</title>
+</head>
+
+<body>
+<h2>Proxy Configuration</h2>
+
+<p>
+This page discussing proxy issues on command-line ant.
+Consult your IDE documentation for IDE-specific information upon proxy setup.
+</p>
+
+<p>
+
+All tasks running in Ant's JVM share the same HTTP/FTP/Socks
+proxy configuration.
+</p>
+
+<p>
+    When any task tries to retrieve content from an HTTP page, including the
+    <code>&lt;get&gt;</code> task, any automated URL retrieval in
+    an XML/XSL task, or any third-party task that uses the <code>java.net.URL</code>
+    classes, the proxy settings may make the difference between success and failure.
+</p>
+<p>
+    Anyone authoring a build file behind a blocking firewall will immediately appreciate
+    the problems and may want to write a build file to deal with the problem, but
+    users of third party build build files may find that the build file itself
+    does not work behind the firewall.
+</p>
+<p>
+    This is a long standing problem with Java and Ant. The only way to fix
+    it is to explictly configure Ant with the proxy settings, either
+    by passing down the proxy details as JVM properties, or to
+    tell Ant on a Java1.5+ system to have the JVM work it out for itself.
+
+</p>
+
+
+
+<h3>Java1.5+ proxy support (new for Ant1.7)</h3>
+<p>
+    When Ant starts up, if the <code>-autoproxy</code>
+    command is supplied, Ant sets the
+    <code>java.net.useSystemProxies</code> system property. This tells 
+    a Java1.5+ JVM to use the current set of property settings of the host
+    environment. Other JVMs, such as the Kaffe and Apache Harmony runtimes,
+    may also use this property in future.
+    It is ignored on the Java1.4 and earlier runtimes.
+</p>
+<p>
+    This property maybe enough to give command-line Ant
+    builds network access, although in practise the results
+    are somewhat disappointing.
+</p>
+<p>
+    We are not entirely sure where it reads the property settings from. 
+    For windows, it probably reads the appropriate bits of the registry. For
+    Unix/Linux it may use the current Gnome2 settings. 
+    
+<p>
+    One limitation of this feature, other than requiring a 1.5+ JVM,
+    is that it is not dynamic. A long-lasting build hosted on a laptop will
+    not adapt to changes in proxy settings.
+</p>
+
+
+<p>
+    It is has also been reported a breaking the IBM Java 5 JRE on AIX,
+    and does not appear to work reliably on Linux.
+    Other odd things can go wrong, like Oracle JDBC drivers or pure Java SVN clients.
+</p>
+
+<p>
+    To make the <code>-autproxy</code> option the default, add it to the environment variable
+    <code>ANT_ARGS</code>, which contains a list of arguments to pass to Ant on every
+    command line run.
+</p>
+
+<h3>JVM options</h3>
+<p>
+    Any JVM can have its proxy options explicitly configured by passing
+    the appropriate <code>-D</code> system property options to the runtime.
+    Ant can be configured through all its shell scripts via the
+    <code>ANT_OPTS</code> environment variable, which is a list of options to
+    supply to Ant's JVM:
+</p>
+<p>
+  For bash:
+</p>  
+<pre>
+    export ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
+</pre>
+  For csh/tcsh:
+<pre>
+    setenv ANT_OPTS "-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
+</pre>
+<p>
+  For Windows, set the ANT_OPTS environment variable in the appropriate "MyComputer" 
+  properties dialog box.
+</p>
+<p>
+  This mechanism works across Java versions, is cross-platform and reliable. 
+  Once set, all build files run via the command line will automatically have
+  their proxy setup correctly, without needing any build file changes. It also
+  apparently overrides Ant's automatic proxy settings options.
+</p>
+<p>  
+  It is limited in the following ways:
+</p>  
+  <ol>
+  <li>Does not work under IDEs. These need their own proxy settings changed</li>
+  <li>Not dynamic enough to deal with laptop configuration changes.</li>
+  </ol>
+
+<h3>SetProxy Task</h3>
+<p>
+    The <a href="OptionalTasks/setproxy.html">setproxy task</a> can be used to
+    explicitly set a proxy in a build file. This manipulates the many proxy 
+    configuration properties of a JVM, and controls the proxy settings for all 
+    network operations in the same JVM from that moment. 
+</p>
+<p>
+    If you have a build file that is only to be used in-house, behind a firewall, on
+    an older JVM, <i>and you cannot change Ant's JVM proxy settings</i>, then
+    this is your best option. It is ugly and brittle, because the build file now contains
+    system configuration information. It is also hard to get this right across
+    the many possible proxy options of different users (none, HTTP, SOCKS).
+</p>
+
+
+<p>
+    Note that proxy configurations set with this task will probably override
+    any set by other mechanisms. It can also be used with fancy tricks to 
+    only set a proxy if the proxy is considered reachable:
+</p>
+
+<pre>
+  &lt;target name="probe-proxy" depends="init"&gt;
+    &lt;condition property="proxy.enabled"&gt;
+      &lt;and&gt;
+        &lt;isset property="proxy.host"/&gt;
+        &lt;isreachable host="${proxy.host}"/&gt;
+      &lt;/and&gt;
+    &lt;/condition&gt;
+  &lt;/target&gt;
+
+  &lt;target name="proxy" depends="probe-proxy" if="proxy.enabled"&gt;
+    &lt;property name="proxy.port" value="80"/&gt;
+    &lt;property name="proxy.user" value=""/&gt;
+    &lt;property name="proxy.pass" value=""/&gt;
+    &lt;setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
+      proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/&gt;
+  &lt;/target&gt;
+</pre>
+
+<h3>Summary and conclusions</h3>
+<p>
+There are three ways to set up proxies in Ant.
+</p>
+<ol>
+<li>With Ant1.7 using the <code>-autoproxy</code> parameter.</li>
+<li>Via JVM system properties -set these in the ANT_ARGS environment variable.</li>
+<li>Via the &lt;setproxy&gt; task.</li>
+</ol>
+
+
+<h4>Further reading</h4>
+
+<ul>
+<li><a href="http://java.sun.com/j2se/1.5.0/docs/guide/net/properties.html">
+Java Networking Properties</a>. Notice how not all proxy settings are documented
+there.
+<li><a href="http://blogs.sun.com/roller/resources/jcc/Proxies.pdf">Proxies</a>
+</li>
+</ul>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/running.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/running.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/running.html	(revision 14989)
@@ -0,0 +1,584 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Running Apache Ant</title>
+</head>
+
+<body>
+
+<h1>Running Ant</h1>
+<h2><a name="commandline">Command Line</a></h2>
+<p> If you've installed Ant as described in the
+<a href="install.html"> Installing Ant</a> section,
+running Ant from the command-line is simple: just type
+<code>ant</code>.</p>
+<p>When no arguments are specified, Ant looks for a <code>build.xml</code>
+file in the current directory and, if found, uses that file as the
+build file and runs the target specified in the <code>default</code>
+attribute of the <code>&lt;project&gt;</code> tag.
+To make Ant use
+a build file other than <code>build.xml</code>, use the command-line
+option <nobr><code>-buildfile <i>file</i></code></nobr>,
+where <i>file</i> is the name of the build file you want to use.</p>
+If you use the <nobr><code>-find [<i>file</i>]</code></nobr> option,
+Ant will search for a build file first in the current directory, then in
+the parent directory, and so on, until either a build file is found or the root
+of the filesystem has been reached. By default, it will look for a build file
+called <code>build.xml</code>. To have it search for a build file other
+than <code>build.xml</code>, specify a file argument.
+<strong>Note:</strong> If you include any other flags or arguments
+on the command line after
+the <nobr><code>-find</code></nobr> flag, you must include the file argument
+for the <nobr><code>-find</code></nobr> flag, even if the name of the
+build file you want to find is <code>build.xml</code>.
+
+<p>You can also set <a href="using.html#properties">properties</a> on the
+command line.  This can be done with
+the <nobr><code>-D<i>property</i>=<i>value</i></code></nobr> option,
+where <i>property</i> is the name of the property,
+and <i>value</i> is the value for that property. If you specify a
+property that is also set in the build file
+(see the <a href="CoreTasks/property.html">property</a> task),
+the value specified on the
+command line will override the value specified in the
+build file.
+Defining properties on the command line can also be used to pass in
+the value of environment variables; just pass
+<nobr><code>-DMYVAR=%MYVAR%</code></nobr> (Windows) or
+<nobr><code>-DMYVAR=$MYVAR</code></nobr> (Unix)
+to Ant. You can then access
+these variables inside your build file as <code>${MYVAR}</code>.
+You can also access environment variables using the
+<a href="CoreTasks/property.html"> property</a> task's
+<code>environment</code> attribute.
+</p>
+
+<p>Options that affect the amount of logging output by Ant are:
+<nobr><code>-quiet</code></nobr>,
+which instructs Ant to print less
+information to the console;
+<nobr><code>-verbose</code></nobr>, which causes Ant to print
+additional information to the console; and <nobr><code>-debug</code></nobr>,
+which causes Ant to print considerably more additional information.
+</p>
+
+<p>It is also possible to specify one or more targets that should be executed.
+When omitted, the target that is specified in the
+<code>default</code> attribute of the
+<a href="using.html#projects"><code>project</code></a> tag is
+used.</p>
+
+<p>The <nobr><code>-projecthelp</code></nobr> option prints out a list
+of the build file's targets. Targets that include a
+<code>description</code> attribute are listed as &quot;Main targets&quot;,
+those without a <code>description</code> are listed as
+&quot;Other targets&quot;, then the &quot;Default&quot; target is listed
+("Other targets" are only displayed if there are no main
+targets, or if Ant is invoked in -verbose or -debug mode).
+
+<h3><a name="options">Command-line Options Summary</a></h3>
+<pre>ant [options] [target [target2 [target3] ...]]
+Options:
+  -help, -h              print this message
+  -projecthelp, -p       print project help information
+  -version               print the version information and exit
+  -diagnostics           print information that might be helpful to
+                         diagnose or report problems.
+  -quiet, -q             be extra quiet
+  -verbose, -v           be extra verbose
+  -debug, -d             print debugging information
+  -emacs, -e             produce logging information without adornments
+  -lib &lt;path&gt;            specifies a path to search for jars and classes
+  -logfile &lt;file&gt;        use given file for log
+    -l     &lt;file&gt;                ''
+  -logger &lt;classname&gt;    the class which is to perform logging
+  -listener &lt;classname&gt;  add an instance of class as a project listener
+  -noinput               do not allow interactive input
+  -buildfile &lt;file&gt;      use given buildfile
+    -file    &lt;file&gt;              ''
+    -f       &lt;file&gt;              ''
+  -D&lt;property&gt;=&lt;value&gt;   use value for given property
+  -keep-going, -k        execute all targets that do not depend
+                         on failed target(s)
+  -propertyfile &lt;name&gt;   load all properties from file with -D
+                         properties taking precedence
+  -inputhandler &lt;class&gt;  the class which will handle input requests
+  -find &lt;file&gt;           (s)earch for buildfile towards the root of
+    -s  &lt;file&gt;           the filesystem and use it
+  -nice  number          A niceness value for the main thread:
+                         1 (lowest) to 10 (highest); 5 is the default
+  -nouserlib             Run ant without using the jar files from ${user.home}/.ant/lib
+  -noclasspath           Run ant without using CLASSPATH
+  -autoproxy             Java 1.5+ : use the OS proxies
+  -main &lt;class&gt;          override Ant's normal entry point
+</pre>
+<p>For more information about <code>-logger</code> and
+<code>-listener</code> see
+<a href="listeners.html">Loggers &amp; Listeners</a>.
+<p>For more information about <code>-inputhandler</code> see
+<a href="inputhandler.html">InputHandler</a>.
+<p>Easiest way of changing the exit-behaviour is subclassing the original main class:
+<pre>
+public class CustomExitCode extends org.apache.tools.ant.Main {
+    protected void exit(int exitCode) {
+        // implement your own behaviour, e.g. NOT exiting the JVM
+    }
+}
+</pre> and starting Ant with access (<tt>-lib path-to-class</tt>) to this class.
+</p>
+
+<h3><a name="libs">Library Directories</a></h3>
+<p>
+Prior to Ant 1.6, all jars in the ANT_HOME/lib would be added to the CLASSPATH
+used to run Ant. This was done in the scripts that started Ant. From Ant 1.6,
+two directories are scanned by default and more can be added as required. The
+default directories scanned are ANT_HOME/lib and a user specific directory,
+${user.home}/.ant/lib. This arrangement allows the Ant installation to be
+shared by many users while still allowing each user to deploy additional jars.
+Such additional jars could be support jars for Ant's optional tasks or jars
+containing third-party tasks to be used in the build. It also allows the main Ant installation to be locked down which will please system adminstrators.
+</p>
+
+<p>
+Additional directories to be searched may be added by using the -lib option.
+The -lib option specifies a search path. Any jars or classes in the directories
+of the path will be added to Ant's classloader. The order in which jars are
+added to the classpath is as follows:
+</p>
+
+<ul>
+  <li>-lib jars in the order specified by the -lib elements on the command line</li>
+  <li>jars from ${user.home}/.ant/lib (unless -nouserlib is set)</li>
+  <li>jars from ANT_HOME/lib</li>
+</ul>
+
+<p>
+Note that the CLASSPATH environment variable is passed to Ant using a -lib
+option. Ant itself is started with a very minimalistic classpath.
+Ant should work perfectly well with an empty CLASSPATH environment variable,
+something the the -noclasspath option actually enforces. We get many more support calls related to classpath problems (especially quoting problems) than
+we like.
+
+</p>
+
+<p>
+The location of ${user.home}/.ant/lib is somewhat dependent on the JVM. On Unix
+systems ${user.home} maps to the user's home directory whilst on recent
+versions of Windows it will be somewhere such as
+C:\Documents&nbsp;and&nbsp;Settings\username\.ant\lib. You should consult your
+JVM documentation for more details.
+</p>
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>ant</pre>
+</blockquote>
+<p>runs Ant using the <code>build.xml</code> file in the current directory, on
+the default target.</p>
+<blockquote>
+  <pre>ant -buildfile test.xml</pre>
+</blockquote>
+<p>runs Ant using the <code>test.xml</code> file in the current directory, on
+the default target.</p>
+<blockquote>
+  <pre>ant -buildfile test.xml dist</pre>
+</blockquote>
+<p>runs Ant using the <code>test.xml</code> file in the current directory, on
+the target called <code>dist</code>.</p>
+<blockquote>
+  <pre>ant -buildfile test.xml -Dbuild=build/classes dist</pre>
+</blockquote>
+<p>runs Ant using the <code>test.xml</code> file in the current directory, on
+the target called <code>dist</code>, setting the <code>build</code> property
+to the value <code>build/classes</code>.</p>
+
+<blockquote>
+  <pre>ant -lib /home/ant/extras</pre>
+</blockquote>
+<p>runs Ant picking up additional task and support jars from the
+/home/ant/extras location
+</p>
+
+<h3><a name="files">Files</a></h3>
+
+<p>The Ant wrapper script for Unix will source (read and evaluate) the
+file <code>~/.antrc</code> before it does anything. On Windows, the Ant
+wrapper batch-file invokes <code>%HOME%\antrc_pre.bat</code> at the start and
+<code>%HOME%\antrc_post.bat</code> at the end.  You can use these
+files, for example, to set/unset environment variables that should only be
+visible during the execution of Ant.  See the next section for examples.</p>
+
+<h3><a name="envvars">Environment Variables</a></h3>
+
+<p>The wrapper scripts use the following environment variables (if
+set):</p>
+
+<ul>
+  <li><code>JAVACMD</code> - full path of the Java executable.  Use this
+  to invoke a different JVM than <code>JAVA_HOME/bin/java(.exe)</code>.</li>
+
+  <li><code>ANT_OPTS</code> - command-line arguments that should be
+  passed to the JVM. For example, you can define system properties or set
+  the maximum Java heap size here.</li>
+
+  <li><code>ANT_ARGS</code> - Ant command-line arguments. For example,
+  set <code>ANT_ARGS</code> to point to a different logger, include a
+  listener, and to include the <code>-find</code> flag.</li>
+  <strong>Note:</strong> If you include <code>-find</code>
+  in <code>ANT_ARGS</code>, you should include the name of the build file
+  to find, even if the file is called <code>build.xml</code>.
+</ul>
+
+<h3><a name="sysprops">Java System Properties</a></h3>
+<p>Some of Ant's core classes can be configured via system properties.</p>
+<p>Here is the result of a search through the codebase. Because system properties are
+available via Project instance, I searched for them with a
+<pre>
+    grep -r -n "getPropert" * &gt; ..\grep.txt
+</pre>
+command. After that I filtered out the often-used but not-so-important values (most of them
+read-only values): <i>path.separator, ant.home, basedir, user.dir, os.name,
+line.separator, java.home, java.version, java.version, user.home, java.class.path</i><br>
+And I filtered out the <i>getPropertyHelper</i> access.</p>
+<table border="1">
+<tr>
+  <th>property name</th>
+  <th>valid values /default value</th>
+  <th>description</th>
+</tr>
+<tr>
+  <td><code>ant.build.javac.source</code></td>
+  <td>Source-level version number</td>
+  <td>Default <em>source</em> value for &lt;javac&gt;/&lt;javadoc&gt;</td>
+</tr>
+<tr>
+  <td><code>ant.build.javac.target</code></td>
+  <td>Class-compatibility version number</td>
+  <td>Default <em>target</em> value for &lt;javac&gt;</td>
+</tr>
+<tr>
+  <td><code>ant.executor.class</code></td>
+  <td>classname; default is org. apache. tools. ant. helper. DefaultExecutor</td>
+  <td><b>Since Ant 1.6.3</b> Ant will delegate Target invocation to the
+org.apache.tools.ant.Executor implementation specified here.
+  </td>
+</tr>
+
+<tr>
+  <td><code>ant.file</code></td>
+  <td>read only: full filename of the build file</td>
+  <td>This is set to the name of the build file. In
+  <a href="CoreTasks/import.html">
+  &lt;import&gt;-ed</a> files, this is set to the containing build file.
+  </td>
+</tr>
+
+<tr>
+  <td><code>ant.file.*</code></td>
+  <td>read only: full filename of the build file of Ant projects
+  </td>
+  <td>This is set to the name of a file by project;
+  this lets you determine the location of <a href="CoreTasks/import.html">
+  &lt;import&gt;-ed</a> files,
+  </td>
+</tr>
+
+<tr>
+  <td><code>ant.input.properties</code></td>
+  <td>filename (required)</td>
+  <td>Name of the file holding the values for the
+      <a href="inputhandler.html">PropertyFileInputHandler</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.logger.defaults</code></td>
+  <!-- add the blank after the slash, so the browser can do a line break -->
+  <td>filename (optional, default '/org/ apache/ tools/ ant/ listener/ defaults.properties')</td>
+  <td>Name of the file holding the color mappings for the
+      <a href="listeners.html#AnsiColorLogger">AnsiColorLogger</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.netrexxc.*</code></td>
+  <td>several formats</td>
+  <td>Use specified values as defaults for <a href="OptionalTasks/netrexxc.html">netrexxc</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.PropertyHelper</code></td>
+  <td>ant-reference-name (optional)</td>
+  <td>Specify the PropertyHelper to use. The object must be of the type
+      org.apache.tools.ant.PropertyHelper. If not defined an object of
+      org.apache.tools.ant.PropertyHelper will be used as PropertyHelper.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.regexp.regexpimpl</code></td>
+  <td>classname</td>
+  <td>classname for a RegExp implementation; if not set Ant tries to
+      find another (JDK14+, Apache Oro...);
+      <a href="CoreTypes/mapper.html#regexp-mapper">RegExp-Mapper</a>
+      "Choice of regular expression implementation"
+  </td>
+</tr>
+<tr>
+  <td><code>ant.reuse.loader</code></td>
+  <td>boolean</td>
+  <td>allow to reuse classloaders
+      used in org.apache.tools.ant.util.ClasspathUtil
+  </td>
+</tr>
+<tr>
+  <td><code>ant.XmlLogger.stylesheet.uri</code></td>
+  <td>filename (default 'log.xsl')</td>
+  <td>Name for the stylesheet to include in the logfile by
+      <a href="listeners.html#XmlLogger">XmlLogger</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler</code></td>
+  <td>name</td>
+  <td>Specify the default compiler to use.
+      see <a href="CoreTasks/javac.html">javac</a>,
+      <a href="OptionalTasks/ejb.html#ejbjar_weblogic">EJB Tasks</a>
+      (compiler attribute),
+      <a href="OptionalTasks/javah.html">javah</a>
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.emacs</code></td>
+  <td>boolean (default false)</td>
+  <td>Enable emacs-compatible error messages.
+      see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.fulldepend</code></td>
+  <td>boolean (default false)</td>
+  <td>Enable full dependency checking
+      see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.jvc.extensions</code></td>
+  <td>boolean (default true)</td>
+  <td>enable Microsoft extensions of their java compiler
+      see <a href="CoreTasks/javac.html">javac</a> "Jvc Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.pedantic</code></td>
+  <td>boolean (default false)</td>
+  <td>Enable pedantic warnings.
+      see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.warnings</code></td>
+  <td>Deprecated flag</td>
+  <td> see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes" </td>
+</tr>
+<tr>
+  <td><code>build.rmic</code></td>
+  <td>name</td>
+  <td>control the <a href="CoreTasks/rmic.html">rmic</a> compiler </td>
+</tr>
+<tr>
+  <td><code>build.sysclasspath</code></td>
+  <td>"only", something else</td>
+  <td>only: current threads get the actual class loader
+      (AntClassLoader.setThreadContextLoader()).
+      else: use core loader as default (ComponentHelper.initTasks()). Disable
+      changing the classloader (oata.taskdefs.Classloader.execute() experimental
+      task).
+      <!-- somewhere documented in the manual?? -->
+  </td>
+</tr>
+<tr>
+  <td><code>file.encoding</code></td>
+  <td>name of a supported character set (e.g. UTF-8, ISO-8859-1, US-ASCII)</td>
+  <td>use as default character set of email messages; use as default for source-, dest- and bundleencoding
+      in <a href="OptionalTasks/translate.html">translate</a> <br>
+      see JavaDoc of <a target="_blank" href="http://java.sun.com/j2se/1.4.2/docs/api/java/nio/charset/Charset.html">java.nio.charset.Charset</a>
+      for more information about character sets (not used in Ant, but has nice docs).
+  </td>
+</tr>
+<tr>
+  <td><code>jikes.class.path</code></td>
+  <td>path</td>
+  <td>The specified path is added to the classpath if jikes is used as compiler.</td>
+</tr>
+<tr>
+  <td><code>MailLogger.properties.file, MailLogger.*</code></td>
+  <td>filename (optional, defaults derived from Project instance)</td>
+  <td>Name of the file holding properties for sending emails by the
+      <a href="listeners.html#MailLogger">MailLogger</a>. Override properties set
+      inside the buildfile or via command line.
+  </td>
+</tr>
+<tr>
+  <td><code>org.apache.tools.ant.ProjectHelper</code></td>
+  <!-- add the blank after the slash, so the browser can do a line break -->
+  <td>classname (optional, default 'org.apache.tools.ant.ProjectHelper')</td>
+  <td>specifies the classname to use as ProjectHelper. The class must extend
+      org.apache.tools.ant.ProjectHelper.
+  </td>
+</tr>
+<tr>
+  <td><code>p4.port, p4.client, p4.user</code></td>
+  <td>several formats</td>
+  <td>Specify defaults for port-, client- and user-setting of the
+      <a href="OptionalTasks/perforce.html">perforce</a> tasks.
+  </td>
+</tr>
+<tr>
+  <td><code>websphere.home
+  <td>path</td>
+  <td>Points to home directory of websphere.
+      see <a href="OptionalTasks/ejb.html#ejbjar_websphere">EJB Tasks</a>
+  </td>
+</tr>
+<tr>
+  <td><code>XmlLogger.file
+  <td>filename (default 'log.xml')</td>
+  <td>Name for the logfile for <a href="listeners.html#MailLogger">MailLogger</a>.
+  </td>
+</tr>
+</table>
+
+<p>
+If new properties get added (it happens), expect them to appear under the
+"ant." and "org.apache.tools.ant" prefixes, unless the developers have a
+very good reason to use another prefix. Accordingly, please avoid using
+properties that begin with these prefixes. This protects you from future
+Ant releases breaking your build file.
+</p>
+<h3>return code</h3>
+<p>the ant start up scripts (in their Windows and Unix version) return
+the return code of the java program. So a successful build returns 0,
+failed builds return other values.
+</p>
+
+<h2><a name="cygwin">Cygwin Users</a></h2>
+<p>The Unix launch script that come with Ant works correctly with Cygwin. You
+should not have any problems launching Ant from the Cygwin shell. It is
+important to note, however, that once Ant is running it is part of the JDK
+which operates as a native Windows application. The JDK is not a Cygwin
+executable, and it therefore has no knowledge of Cygwin paths, etc. In
+particular when using the <code>&lt;exec&gt;</code> task, executable names such
+as &quot;/bin/sh&quot; will not work, even though these work from the Cygwin
+shell from which Ant was launched. You can use an executable name such as
+&quot;sh&quot; and rely on that command being available in the Windows path.
+</p>
+
+<h2><a name="os2">OS/2 Users</a></h2>
+<p>The OS/2 launch script was developed to perform complex tasks. It has two parts:
+<code>ant.cmd</code> which calls Ant and <code>antenv.cmd</code> which sets the environment for Ant.
+Most often you will just call <code>ant.cmd</code> using the same command line options as described
+above. The behaviour can be modified by a number of ways explained below.</p>
+
+<p>Script <code>ant.cmd</code> first verifies whether the Ant environment is set correctly. The
+requirements are:</p>
+<ol>
+<li>Environment variable <code>JAVA_HOME</code> is set.</li>
+<li>Environment variable <code>ANT_HOME</code> is set.</li>
+<li>Environment variable <code>CLASSPATH</code> is set and contains at least one element from
+<code>JAVA_HOME</code> and at least one element from <code>ANT_HOME</code>.</li>
+</ol>
+
+<p>If any of these conditions is violated, script <code>antenv.cmd</code> is called. This script
+first invokes configuration scripts if there exist: the system-wide configuration
+<code>antconf.cmd</code> from the <code>%ETC%</code> directory and then the user configuration
+<code>antrc.cmd</code> from the <code>%HOME%</code> directory. At this moment both
+<code>JAVA_HOME</code> and <code>ANT_HOME</code> must be defined because <code>antenv.cmd</code>
+now adds <code>classes.zip</code> or <code>tools.jar</code> (depending on version of JVM) and
+everything from <code>%ANT_HOME%\lib</code> except <code>ant-*.jar</code> to
+<code>CLASSPATH</code>. Finally <code>ant.cmd</code> calls per-directory configuration
+<code>antrc.cmd</code>. All settings made by <code>ant.cmd</code> are local and are undone when the
+script ends. The settings made by <code>antenv.cmd</code> are persistent during the lifetime of the
+shell (of course unless called automatically from <code>ant.cmd</code>). It is thus possible to call
+<code>antenv.cmd</code> manually and modify some settings before calling <code>ant.cmd</code>.</p>
+
+<p>Scripts <code>envset.cmd</code> and <code>runrc.cmd</code> perform auxiliary tasks. All scripts
+have some documentation inside.</p>
+
+<h2><a name="viajava">Running Ant via Java</a></h2>
+<p>If you have installed Ant in the do-it-yourself way, Ant can be started
+from one of two entry points:</p>
+<blockquote>
+  <pre>java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre>
+</blockquote>
+
+<blockquote>
+  <pre>java -Dant.home=c:\ant org.apache.tools.ant.launch.Launcher [options] [target]</pre>
+</blockquote>
+
+<p>
+The first method runs Ant's traditional entry point. The second method uses
+the Ant Launcher introduced in Ant 1.6. The former method does not support
+the -lib option and all required classes are loaded from the CLASSPATH. You must
+ensure that all required jars are available. At a minimum the CLASSPATH should
+include:
+</p>
+
+<ul>
+<li><code>ant.jar</code> and <code>ant-launcher.jar</code></li>
+<li>jars/classes for your XML parser</li>
+<li>the JDK's required jar/zip files</li>
+</ul>
+
+<p>
+The latter method supports the -lib, -nouserlib, -noclasspath options and will
+    load jars from the specified ANT_HOME. You should start the latter with the most minimal
+classpath possible, generally just the ant-launcher.jar.
+</p>
+
+<a name="viaant"/>
+
+Ant can be started in Ant via the <code>&lt;java&gt;</code> command.
+Here is an example:
+
+<pre>
+&lt;java
+        classname="org.apache.tools.ant.launch.Launcher"
+        fork="true"
+        failonerror="true"
+        dir="${sub.builddir}"
+        timeout="4000000"
+        taskname="startAnt"
+&gt;
+    &lt;classpath&gt;
+        &lt;pathelement location="${ant.home}/lib/ant-launcher.jar"/&gt;
+    &lt;/classpath&gt;
+    &lt;arg value="-buildfile"/&gt;
+    &lt;arg file="${sub.buildfile}"/&gt;
+    &lt;arg value="-Dthis=this"/&gt;
+    &lt;arg value="-Dthat=that"/&gt;
+    &lt;arg value="-Dbasedir=${sub.builddir}"/&gt;
+    &lt;arg value="-Dthe.other=the.other"/&gt;
+    &lt;arg value="${sub.target}"/&gt;
+&lt;/java&gt;
+</pre>
+<br>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/runninglist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/runninglist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/runninglist.html	(revision 14989)
@@ -0,0 +1,42 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Running Ant</h3>
+<a href="running.html#commandline">Command Line</a><br>
+&nbsp;&nbsp;<a href="running.html#options">Options</a><br>
+&nbsp;&nbsp;<a href="running.html#libs">Library Directories</a><br>
+&nbsp;&nbsp;<a href="running.html#files">Files</a><br>
+&nbsp;&nbsp;<a href="running.html#envvars">Environment Variables</a><br>
+&nbsp;&nbsp;<a href="running.html#sysprops">Java System Properties</a><br>
+&nbsp;&nbsp;<a href="running.html#cygwin">Cygwin Users</a><br>
+&nbsp;&nbsp;<a href="running.html#os2">OS/2 Users</a><br>
+<a href="running.html#viajava">Running Ant via Java</a><br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/stylesheets/antmanual.css
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/stylesheets/antmanual.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/stylesheets/antmanual.css	(revision 14989)
@@ -0,0 +1,147 @@
+/* 
+ * Copyright  2003-2004 Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ * 
+ */
+body {
+ font-family:Verdana,Helvetica,Arial;
+	font-size:12px;   
+	color:WindowText;
+	background-color:ButtonHighlight;
+}
+img{
+	border:0px;
+}
+p{
+	padding-left:5px;
+	padding-right:2px;
+	padding-top:1px;
+	padding-bottom:1px;
+}
+table{
+	border:1px;
+	border-color:ThreeDLightShadow;
+	border-style:solid;
+}
+td {
+	font-family:Verdana,Helvetica,Arial;
+	font-size:12px;   
+	border:1px;
+	border-color:ThreeDLightShadow;
+	border-style:solid;
+}
+th {
+	font-family:Verdana,Helvetica,Arial;
+	font-size:14px;   
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:5px;
+	padding-right:2px;
+	border:1px;
+	border-color:ThreeDLightShadow;
+	border-style:solid;
+	text-align:left;
+}
+a{
+	color:WindowText;
+	text-decoration: underline; 
+	padding-left:5px;
+	padding-right:4px;
+	font-family:Verdana,Helvetica,Arial;
+}
+
+a:hover { 
+	padding-left:4px;
+	padding-right:5px;
+	padding-top:1px;
+	padding-bottom:0px;
+	color:Highlight;
+	font-family:Verdana,Helvetica,Arial;
+	text-decoration: underline; 
+}
+h1 a{
+	color:HighlightText;
+}
+h2 a{
+	color:HighlightText;
+}
+h3 a{
+	color:HighlightText;
+}
+h1 a:hover{
+	color:HighlightText;
+}
+h2 a:hover{
+	color:HighlightText;
+}
+h3 a:hover{
+	color:HighlightText;
+}
+h1{
+	font-size: 18px;
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:8px; padding-right:2px; padding-top:1px; padding-bottom:1px;
+	border-top:0px; border-bottom:2px; border-left:0px; border-right:0px;
+	border-style:solid;
+	border-color:Highlight;
+}
+h2{
+	font-size: 16px;
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:8px; padding-right:2px; padding-top:1px; padding-bottom:1px;
+	border-top:0px; border-bottom:2px; border-left:0px; border-right:0px;
+	border-style:solid;
+	border-color:Highlight;
+}
+h3{
+	font-size: 14px;
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:8px; padding-right:2px; padding-top:1px; padding-bottom:1px;
+	border-top:0px; border-bottom:2px; border-left:0px; border-right:0px;
+	border-style:solid;
+	border-color:Highlight;
+}
+
+img.but{
+	border:0px;
+	border-style:solid;
+	padding-top:3px; padding-bottom:3px; padding-left:3px; padding-right:3px;
+	margin-top:3px; margin-bottom:3px; margin-left:8px; margin-right:3px;
+}
+a:hover img.but{
+	border-top:1px; border-bottom:1px; border-left:1px; border-right:1px;
+	border-style:solid;
+	border-top-color:ThreeDHighlight;
+	border-bottom-color:ButtonShadow;
+	border-left-color:ThreeDHighlight;
+	border-right-color:ButtonShadow;
+	padding-top:3px; padding-bottom:3px; padding-left:3px; padding-right:3px;
+	margin-top:1px; margin-bottom:3px; margin-left:6px; margin-right:3px;
+}
+a:active img.but{
+	border-top:1px; border-bottom:1px; border-left:1px; border-right:1px;
+	border-style:inset;
+	border-top-color:ThreeDHighlight;
+	border-bottom-color:ButtonShadow;
+	border-left-color:ThreeDHighlight;
+	border-right-color:ButtonShadow;
+	padding-top:3px; padding-bottom:3px; padding-left:3px; padding-right:3px;
+	margin-top:0px; margin-bottom:3px; margin-left:5px; margin-right:3px;
+}
+li {
+	list-style: url('../../../images/li.png') circle;
+}
Index: /release-kits/shared/ant-installer/web/manual/manual/stylesheets/style.css
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/stylesheets/style.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/stylesheets/style.css	(revision 14989)
@@ -0,0 +1,195 @@
+/* 
+ * Copyright  2003-2004 Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ * 
+ */
+body {
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 12px;   
+	color: WindowText;
+	background-color: ButtonHighlight;
+	margin: 0px;
+	padding-top: 0px;
+	padding-left: 4px;
+	padding-right: 0px;
+	padding-bottom: 40px;
+	border: 0px;
+	border-bottom: solid 2px Highlight;
+	margin-bottom: 40px;
+}
+img {
+	border: 0px;
+}
+p {
+	padding-left: 5px;
+	padding-right: 2px;
+	padding-top: 1px;
+	padding-bottom: 1px;
+}
+table {
+	border: 1px;
+	border-color: ThreeDLightShadow;
+	border-style: solid;
+	margin-right: 4px;
+	margin-left: 4px;
+}
+table.layout {
+	border: 0px;
+}
+table.layout tr {
+	border: 0px;
+}
+table.layout td {
+	border: 0px;
+}
+
+td {
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 12px;   
+	border: 1px;
+	border-color: ThreeDLightShadow;
+	border-style: solid;
+}
+th {
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 14px;   
+	color: HighlightText;
+	background-color:Highlight;
+	padding-left: 5px;
+	padding-right: 2px;
+	border: 1px;
+	border-color: ThreeDLightShadow;
+	border-style: solid;
+	text-align: left;
+}
+th a {
+	color:HighlightText;
+}
+th a:hover {
+	color:HighlightText;
+}
+a{
+	color: WindowText;
+	text-decoration: underline; 
+	padding-left: 5px;
+	padding-right: 4px;
+	font-family: Verdana,Helvetica,Arial;
+}
+
+a:hover { 
+	padding-left: 4px;
+	padding-right: 5px;
+	padding-top: 1px;
+	padding-bottom: 0px;
+	color: Highlight;
+	font-family: Verdana,Helvetica,Arial;
+	text-decoration: underline; 
+}
+h1 a {
+	color:HighlightText;
+}
+h2 a {
+	color:HighlightText;
+}
+h3 a {
+	color:HighlightText;
+	text-decoration: none;
+}
+h1 a:hover {
+	color:HighlightText;
+}
+h2 a:hover {
+	color:HighlightText;
+}
+h3 a:hover {
+	color:HighlightText;
+	text-decoration: none;
+}
+h1 a:visited {
+	color:HighlightText;
+}
+h2 a:visited {
+	color:HighlightText;
+}
+h3 a:visited {
+	color:HighlightText;
+	text-decoration: none;
+}
+h1 {
+	font-size: 18px;
+	color: HighlightText;
+	background-color: Highlight;
+	padding-left: 8px; padding-right: 2px; padding-top: 1px; padding-bottom: 1px;
+	border-top: 0px; border-bottom: 2px; border-left: 0px; border-right: 0px;
+	border-style: solid;
+	border-color: Highlight;
+	margin-left: -4px;
+}
+h2 {
+	font-size: 16px;
+	color: HighlightText;
+	background-color: Highlight;
+	padding-left: 8px; padding-right: 2px; padding-top: 1px; padding-bottom: 1px;
+	border-top: 0px; border-bottom: 2px; border-left: 0px; border-right: 0px;
+	border-style: solid;
+	border-color: Highlight;
+	margin-left: -4px;
+}
+h3 {
+	font-size: 14px;
+	color: HighlightText;
+	background-color: Highlight;
+	padding-left: 10px; padding-right: 2px; padding-top: 1px; padding-bottom: 1px;
+	border-top: 0px; border-bottom: 2px; border-left: 0px; border-right: 0px;
+	border-style: solid;
+	border-color: Highlight;
+	margin-left: -4px;
+}
+h4 {
+	margin-left: 6px;
+	font-size: 13px;
+}
+pre {
+	margin-left: 6px;
+}
+
+img.but {
+	border: 0px;
+	border-style: solid;
+	padding-top: 3px; padding-bottom: 3px; padding-left: 3px; padding-right: 3px;
+	margin-top: 3px; margin-bottom: 3px; margin-left: 8px; margin-right: 3px;
+}
+a:hover img.but {
+	border-top: 1px; border-bottom: 1px; border-left: 1px; border-right: 1px;
+	border-style: solid;
+	border-top-color: ThreeDHighlight;
+	border-bottom-color: ButtonShadow;
+	border-left-color: ThreeDHighlight;
+	border-right-color: ButtonShadow;
+	padding-top: 3px; padding-bottom: 3px; padding-left: 3px; padding-right: 3px;
+	margin-top: 1px; margin-bottom: 3px; margin-left: 6px; margin-right: 3px;
+}
+a:active img.but {
+	border-top: 1px; border-bottom: 1px; border-left: 1px; border-right: 1px;
+	border-style: inset;
+	border-top-color: ThreeDHighlight;
+	border-bottom-color: ButtonShadow;
+	border-left-color: ThreeDHighlight;
+	border-right-color: ButtonShadow;
+	padding-top: 3px; padding-bottom: 3px; padding-left: 3px; padding-right: 3px;
+	margin-top: 0px; margin-bottom: 3px; margin-left: 5px; margin-right: 3px;
+}
+li {
+	list-style: url('../../../images/li.png') circle;
+}
Index: /release-kits/shared/ant-installer/web/manual/manual/sysclasspath.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/sysclasspath.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/sysclasspath.html	(revision 14989)
@@ -0,0 +1,80 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>build.sysclasspath</title>
+</head>
+
+<body>
+
+<h2><a name="sysclasspath">build.sysclasspath</a></h2>
+<p>The value of the build.sysclasspath property
+control how the system classpath, ie. the classpath in effect when
+Ant is run, affects the behaviour of classpaths in Ant.
+The default behavior varies from Ant to Ant task.</p>
+
+The values and their meanings are:
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+<td align="left" valign="top">only</td>
+<td>Only the system classpath is used and classpaths specified in build files,
+etc are ignored. This situation could be considered as the person running
+the build file knows more about the environment than the person writing the
+build file
+</td>
+</tr>
+
+<tr>
+<td align="left" valign="top">ignore</td>
+<td>
+The system classpath is ignored. This situation is the reverse of the
+above. The person running the build trusts the build file writer to get the
+build file right
+</td>
+</tr>
+
+<tr>
+<td align="left" valign="top">last</td>
+<td>
+The classpath is concatenated to any specified classpaths at the end. This
+is a compromise, where the build file writer has priority.
+</td>
+</tr>
+
+<tr>
+<td align="left" valign="top">first</td>
+<td>
+Any specified classpaths are concatenated to the system classpath. This is
+the other form of compromise where the build runner has priority.
+</td>
+</tr>
+</table>
+
+<p><em>Since Ant 1.7</em> the value of this property also affects the
+bootclasspath settings--it combines the bootclasspath that has been
+specified for a task with the bootclasspath of the Java VM running
+Ant.  If the property has not been set, it defaults to "ignore" in
+this case.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/tasksoverview.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/tasksoverview.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/tasksoverview.html	(revision 14989)
@@ -0,0 +1,1230 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Overview of Ant Tasks</title>
+  <base target="mainFrame">
+</head>
+
+<body>
+<h2><a name="top">Overview of Ant Tasks</a></h2>
+<p>Given the large number of tasks available with Ant, it may be
+difficult to get an overall view of what each task can do.  The following
+tables provide a short description of each task and a link to the complete
+documentation.</p>
+
+<a href="#archive">Archive Tasks</a><br>
+<a href="#audit">Audit/Coverage Tasks</a><br>
+<a href="#compile">Compile Tasks</a><br>
+<a href="#deploy">Deployment Tasks</a><br>
+<a href="#doc">Documentation Tasks</a><br>
+<a href="#ejb">EJB Tasks</a><br>
+<a href="#exec">Execution Tasks</a><br>
+<a href="#file">File Tasks</a><br>
+<a href="#extensions">Java2 Extensions Tasks</a><br>
+<a href="#log">Logging Tasks</a><br>
+<a href="#mail">Mail Tasks</a><br>
+<a href="#misc">Miscellaneous Tasks</a><br>
+<a href="#net">.NET Tasks</a><br>
+<a href="#preproc">Pre-process Tasks</a><br>
+<a href="#prop">Property Tasks</a><br>
+<a href="#remote">Remote Tasks</a><br>
+<a href="#scm">SCM Tasks</a><br>
+<a href="#testing">Testing Tasks</a><br>
+<a href="#vaj">Visual Age for Java Tasks</a><br>
+
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="archive">Archive Tasks</a>
+</font>
+</b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td nowrap><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unpack.html">BUnzip2</a></td>
+    <td><p>Expands a file packed using GZip or BZip2.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/pack.html">BZip2</a></td>
+    <td><p>Packs a file using the GZip or BZip2 algorithm. This task
+     does not do any dependency checking; the output file is always
+     generated</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/cab.html">Cab</a></td>
+    <td><p>Creates Microsoft CAB archive files. It is invoked
+     similar to the <a href="CoreTasks/jar.html">Jar</a> or
+     <a href="CoreTasks/zip.html">Zip</a> tasks. This task will work on
+     Windows using the external <i>cabarc</i> tool (provided by Microsoft),
+     which must be located in your executable path.</p></td>
+   </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/ear.html">Ear</a></td>
+    <td><p>An extension of the <a href="CoreTasks/jar.html">Jar</a> task with
+     special treatment for files that should end up in an
+     Enterprise Application archive.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/gunzip.html">GUnzip</a></td>
+    <td><p>Expands a GZip file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/gzip.html">GZip</a></td>
+    <td><p>GZips a set of files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/jar.html">Jar</a></td>
+    <td><p>Jars a set of files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jlink.html">Jlink</a></td>
+    <td><p><i>Deprecated.</i> Use the <code>zipfileset</code>
+     and <code>zipgroupfileset</code> attributes of the
+     <a href="CoreTasks/jar.html">Jar</a> or
+     <a href="CoreTasks/zip.html">Zip</a> tasks instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/manifest.html">Manifest</a></td>
+    <td><p>Creates a manifest file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/rpm.html">Rpm</a></td>
+    <td><p>Invokes the <i>rpm</i> executable to build a Linux installation
+     file. This task currently only works on Linux or other Unix platforms
+     with RPM support.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/signjar.html">SignJar</a></td>
+    <td><p>Signs a jar or zip file with the <i>javasign</i>
+     command-line tool.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/tar.html">Tar</a></td>
+    <td><p>Creates a tar archive.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unzip.html">Unjar</a></td>
+    <td><p>Unzips a jarfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/untar.html">Untar</a></td>
+    <td><p>Untars a tarfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unzip.html">Unwar</a></td>
+    <td><p>Unzips a warfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unzip.html">Unzip</a></td>
+    <td><p>Unzips a zipfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/war.html">War</a></td>
+    <td><p>An extension of the <a href="CoreTasks/jar.html">Jar</a> task
+     with special treatment for files that should end up in the
+     <code>WEB-INF/lib</code>, <code>WEB-INF/classes</code>, or
+     <code>WEB-INF</code> directories of the Web Application Archive.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/zip.html">Zip</a></td>
+    <td><p>Creates a zipfile.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="audit">Audit/Coverage Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jdepend.html">JDepend</a></td>
+    <td><p>Invokes the <a href="http://www.clarkware.com/software/JDepend.html">
+     JDepend</a> parser. This parser &quot;traverses a set of Java source-file
+     directories and generates design-quality metrics for each Java
+     package&quot;.</p></td>
+   </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="compile">Compile Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/depend.html">Depend</a></td>
+    <td><p>Determines which classfiles are out-of-date with respect to their
+     source, removing the classfiles of any other classes that depend on the
+     out-of-date classes, forcing the re-compile of the removed classfiles.
+     Typically used in conjunction with the
+     <a href="CoreTasks/javac.html">Javac</a> task.</p></td>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/javac.html">Javac</a></td>
+    <td><p>Compiles the specified source file(s) within the running
+     (Ant) VM, or in another VM if the <code>fork</code> attribute is
+     specified.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/apt.html">Apt</a></td>
+    <td><p>Runs the annotation processor tool (apt), and then optionally compiles
+   the original code, and any generated source code.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jspc.html">JspC</a></td>
+    <td><p>Runs the JSP compiler. It can be used to precompile JSP pages
+     for fast initial invocation of JSP pages, deployment on a server without
+     the full JDK installed, or simply to syntax-check the pages without
+     deploying them. The <a href="CoreTasks/javac.html">Javac</a> task
+     can be used to compile the generated Java source.
+     (For Weblogic JSP compiles,
+     see the <a href="OptionalTasks/wljspc.html">Wljspc</a> task.)</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/netrexxc.html">NetRexxC</a></td>
+    <td><p>Compiles a
+     <a href="http://www2.hursley.ibm.com/netrexx" target="_top">NetRexx</a>
+     source tree within the running (Ant) VM.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/rmic.html">Rmic</a></td>
+    <td><p>Runs the <i>rmic</i> compiler on the specified file(s).</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/wljspc.html">Wljspc</a></td>
+    <td><p>Compiles JSP pages using Weblogic's JSP compiler,
+     <i>weblogic.jspc</i>. (For non-Weblogic JSP compiles, see the
+     <a href="OptionalTasks/jspc.html">JspC</a> task.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="deploy">Deployment Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/serverdeploy.html">ServerDeploy</a></td>
+    <td><p>Task to run a &quot;hot&quot; deployment tool for vendor-specific
+     J2EE server.
+    </p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="doc">Documentation Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/javadoc.html">Javadoc/<i>Javadoc2</i></a></td>
+    <td><p>Generates code documentation using the <i>javadoc</i> tool.
+     The Javadoc2 task is deprecated; use the Javadoc task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/stylebook.html">Stylebook</a></td>
+    <td><p>Executes the Apache Stylebook documentation generator.
+     Unlike the command-line version of this tool, all three arguments
+     are required to run the Stylebook task.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="ejb">EJB Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/ejb.html">EJB Tasks</a></td>
+    <td><p>(See the documentation describing the EJB tasks.)</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="exec">Execution Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/ant.html">Ant</a></td>
+    <td><p>Runs Ant on a supplied buildfile, optionally
+     passing properties (with possibly new values).
+     This task can be used to build sub-projects.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/antcall.html">AntCall</a></td>
+    <td><p>Runs another target within the same buildfile, optionally
+     passing properties (with possibly new values).</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/apply.html">Apply/<i>ExecOn</i></a></td>
+    <td><p>Executes a system command. When the <code>os</code> attribute is
+     specified, the command is only executed when Ant is run on one
+     of the specified operating systems.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/dependset.html">Dependset</a></td>
+    <td><p>This task compares a set of source files with a set of target
+     files.  If any of the source files is newer than any of
+     the target files, all the target files are removed. </p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/exec.html">Exec</a></td>
+    <td><p>Executes a system command. When the <code>os</code> attribute
+     is specified, the command is only executed when Ant is run on one of
+     the specified operating systems.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/java.html">Java</a></td>
+    <td><p>Executes a Java class within the running (Ant) VM, or in
+     another VM if the <code>fork</code> attribute is specified.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/parallel.html">Parallel</a></td>
+    <td><p>A container task that can contain other Ant tasks.
+     Each nested task specified within the <code>&lt;parallel&gt;</code>
+     tag will be executed in its own thread.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sequential.html">Sequential</a></td>
+    <td><p>A container task that can contain other Ant tasks.
+     The nested tasks are simply executed in sequence. Its primary use is
+     to support the sequential execution of a subset of tasks within
+     the <code>&lt;parallel&gt;</code> tag.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sleep.html">Sleep</a></td>
+    <td><p> A task for suspending execution for a specified period of time.
+     Useful when a build or deployment process requires an interval between
+     tasks.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/subant.html">Subant</a></td>
+    <td><p> Calls a given target for all defined sub-builds. This is an extension of ant for bulk project execution.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/waitfor.html">Waitfor</a></td>
+    <td><p>Blocks execution until a set of specified conditions become true.
+     This task is intended to be used with the
+     <a href="CoreTasks/parallel.html">Parallel</a> task to synchronize
+     a set of processes.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="file">File Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/attrib.html">Attrib</a></td>
+    <td><p>Changes the permissions and/or attributes of a file or all
+    files inside the specified directories. Currently, it has effect
+    only under Windows.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/checksum.html">Checksum</a></td>
+    <td><p>Generates a checksum for a file or set of files. This task can
+     also be used to perform checksum verifications.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/chgrp.html">Chgrp</a></td>
+    <td><p>Changes the group ownership of a file or all files inside
+    the specified directories. Currently, it has effect only under
+    Unix.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/chmod.html">Chmod</a></td>
+    <td><p>Changes the permissions of a file or all files inside the
+     specified directories. Currently, it has effect only under Unix.
+     The permissions are also UNIX style, like the arguments for the
+    <i>chmod</i> command.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/chown.html">Chown</a></td>
+    <td><p>Changes the owner of a file or all files inside the
+    specified directories. Currently, it has effect only under
+    Unix.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/concat.html">Concat</a></td>
+    <td><p>Concatenates multiple files into a single one or to Ant's
+     logging system.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/copy.html">Copy</a></td>
+    <td><p>Copies a file or Fileset to a new file or directory.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/copydir.html"><i>Copydir</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the
+     <a href="CoreTasks/copy.html">Copy</a> task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/copyfile.html"><i>Copyfile</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the
+     <a href="CoreTasks/copy.html">Copy</a> task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/delete.html">Delete</a></td>
+    <td><p>Deletes either a single file, all files and sub-directories
+     in a specified directory, or a set of files specified by one or more
+     <a href="CoreTypes/fileset.html">FileSet</a>s.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/deltree.html"><i>Deltree</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the
+     <a href="CoreTasks/delete.html">Delete</a> task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/filter.html">Filter</a></td>
+    <td><p>Sets a token filter for this project, or reads multiple token
+     filters from a specified file and sets these as filters. Token filters
+     are used by all tasks that perform file-copying operations.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/fixcrlf.html">FixCRLF</a></td>
+    <td><p>Modifies a file to add or remove tabs, carriage returns, linefeeds,
+     and EOF characters.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/get.html">Get</a></td>
+    <td><p>Gets a file from a URL.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/mkdir.html">Mkdir</a></td>
+    <td><p>Creates a directory. Non-existent parent directories are created,
+     when necessary.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/move.html">Move</a></td>
+    <td><p>Moves a file to a new file or directory, or a set(s) of file(s) to
+     a new directory.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/patch.html">Patch</a></td>
+    <td><p>Applies a &quot;diff&quot; file to originals.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/rename.html"><i>Rename</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the <a href="CoreTasks/move.html">Move</a>
+    task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/renameextensions.html">
+     <i>RenameExtensions</i></a></td>
+    <td><p><i>Deprecated</i>. Use the <a href="CoreTasks/move.html">Move</a>
+     task with a <a href="CoreTypes/mapper.html#glob-mapper">glob mapper</a>
+     instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/replace.html">Replace</a></td>
+    <td><p>Replace is a directory-based task for replacing the occurrence
+     of a given string with another string in selected file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/replaceregexp.html">
+     ReplaceRegExp</a></td>
+    <td><p>Directory-based task for replacing the occurrence of a given
+     regular expression with a substitution pattern in a file or set of
+     files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sync.html">Sync</a></td>
+    <td><p>Synchronize two directory trees.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/tempfile.html">Tempfile</a></td>
+    <td><p>Generates a name for a new temporary file and sets the specified
+     property to that name.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/touch.html">Touch</a></td>
+    <td><p>Changes the modification time of a file and possibly creates it at
+     the same time.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="extensions">Java2 Extensions Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-available.html">Jarlib-available</a></td>
+    <td><p>Check whether an extension is present in a FileSet or an
+      ExtensionSet. If the extension is present, the specified property is
+     set.</p>
+    </td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-display.html">Jarlib-display</a></td>
+    <td><p>Display the &quot;Optional Package&quot; and
+      &quot;Package Specification&quot; information contained within the
+      specified jars.</p>
+    </td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-manifest.html">Jarlib-manifest</a></td>
+    <td><p>Task to generate a manifest that declares all the dependencies
+      in manifest. The dependencies are determined by looking in the
+      specified path and searching for Extension/&quot;Optional Package&quot;
+      specifications in the manifests of the jars.</p>
+    </td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-resolve.html">Jarlib-resolve</a></td>
+    <td><p>Try to locate a jar to satisfy an extension, and place the
+      location of the jar into the specified property.</p>
+    </td>
+  </tr>
+</table>
+
+<p></p>
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="log">Logging Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/recorder.html">Record</a></td>
+    <td><p>Runs a listener that records the logging output of the
+     build-process events to a file. Several recorders can exist
+     at the same time. Each recorder is associated with a file.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="mail">Mail Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/mail.html">Mail</a></td>
+    <td><p>A task to send SMTP email.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/mimemail.html">MimeMail</a></td>
+    <td><p><i>Deprecated</i>. Use the <a href="CoreTasks/mail.html">Mail</a>
+     task instead.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="misc">Miscellaneous Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/defaultexcludes.html">Defaultexcludes</a></td>
+    <td><p>Modify the list of default exclude patterns from within
+    your build file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/echo.html">Echo</a></td>
+    <td><p>Echoes text to <code>System.out</code> or to a file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/fail.html">Fail</a></td>
+    <td><p>Exits the current build by throwing a BuildException,
+     optionally printing additional information.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/genkey.html">GenKey</a></td>
+    <td><p>Generates a key in keystore.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/input.html">Input</a></td>
+    <td><p>Allows user interaction during the build process by displaying a
+     message and reading a line of input from the console.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/script.html">Script</a></td>
+    <td><p>Executes a script in a
+     <a href="http://jakarta.apache.org/bsf/"
+      target="_top">Apache BSF</a>-supported language.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sound.html">Sound</a></td>
+    <td><p>Plays a sound file at the end of the build, according to whether
+     the build failed or succeeded.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/splash.html">Splash</a></td>
+    <td><p>Displays a splash screen.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sql.html">Sql</a></td>
+    <td><p>Executes a series of SQL statements via JDBC to a database.
+     Statements can either be read in from a text file using the
+     <code>src</code> attribute, or from between the enclosing SQL
+     tags.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/taskdef.html">Taskdef</a></td>
+    <td><p>Adds a task definition to the current project, such that this
+     new task can be used in the current project.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/tstamp.html">TStamp</a></td>
+    <td><p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and
+     <code>TODAY</code> properties in the current project, based on
+     the current date and time.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/typedef.html">Typedef</a></td>
+    <td><p>Adds a data-type definition to the current project, such that this
+     new type can be used in the current project.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/xmlvalidate.html">XmlValidate</a></td>
+    <td><p>Checks that XML files are valid (or only well-formed). This task
+     uses the XML parser that is currently used by Ant by default, but any SAX1/2
+     parser can be specified, if needed.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="net">.NET Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/dotnet.html">.NET Tasks</a></td>
+    <td><p>(See the documentation describing the .NET tasks.)</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="preproc">Pre-process Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/antlr.html">ANTLR</a></td>
+    <td><p>Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a>
+     Translator generator on a grammar file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/antstructure.html">AntStructure</a></td>
+    <td><p>Generates a DTD for Ant buildfiles that contains information
+     about all tasks currently known to Ant.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/import.html">Import</a></td>
+    <td><p>Import another build file and potentially override targets
+    in it with targets of your own.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/javacc.html">JavaCC</a></td>
+    <td><p>Invokes the
+     <a HREF="http://javacc.dev.java.net/" target="_top">
+     JavaCC</a> compiler-compiler on a grammar file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/javah.html">Javah</a></td>
+    <td><p>Generates JNI headers from a Java class.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jjdoc.html">JJDoc</a></td>
+    <td><p>Invokes the <a href="http://javacc.dev.java.net/">
+     JJDoc</a> documentation generator for the JavaCC compiler-compiler.
+     JJDoc takes a JavaCC parser specification and produces documentation
+     for the BNF grammar.  It can operate in three modes, determined by
+     command line options. This task only invokes JJDoc if the grammar file
+     is newer than the generated BNF grammar documentation.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jjtree.html">JJTree</a></td>
+    <td><p>Invokes the <a href="http://javacc.dev.java.net/">
+     JJTree</a> preprocessor for the JavaCC compiler-compiler. It inserts
+     parse-tree building actions at various places in the JavaCC source that
+     it generates. The output of JJTree is run through JavaCC to create the
+     parser. This task only invokes JJTree if the grammar file is newer than
+     the generated JavaCC file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/macrodef.html">Macrodef</a></td>
+    <td><p>Define a new task as a macro built-up upon other tasks.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/native2ascii.html">
+     Native2Ascii</a></td>
+    <td><p>Converts files from native encodings to ASCII with escaped Unicode.
+      A common usage is to convert source files maintained in a native
+      operating system encoding to ASCII, prior to compilation.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/presetdef.html">Presetdef</a></td>
+    <td><p>Define a new task by instrumenting an existing task with
+    default values for attributes or child elements.</p>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/translate.html">Translate</a></td>
+    <td><p>Identifies keys in files, delimited by special tokens, and
+     translates them with values read from resource bundles.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/style.html">XSLT</a></td>
+    <td><p>Processes a set of documents via XSLT.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="prop">Property Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/available.html">Available</a></td>
+    <td><p>Sets a property if a specified file, directory, class in the
+     classpath, or JVM system resource is available at runtime.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/basename.html">Basename</a></td>
+    <td><p>Sets a property to the last element of a specified path.
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/buildnumber.html">BuildNumber</a></td>
+    <td><p>Task that can be used to track build numbers.
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/condition.html">Condition</a></td>
+    <td><p>Sets a property if a certain condition holds true; this is a
+     generalization of <a href="CoreTasks/available.html">Available</a> and
+     <a href="CoreTasks/uptodate.html">Uptodate</a>.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/dirname.html">Dirname</a></td>
+    <td><p>Sets a property to the value of the specified file up to,
+     but not including, the last path element.
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/echoproperties.html">Echoproperties</a><br>
+
+    </td>
+    <td><p>Lists the current properties.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/loadfile.html">LoadFile</a></td>
+    <td><p>Loads a file into a property.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/loadproperties.html">LoadProperties</a></td>
+    <td><p>Load a file's contents as Ant properties. This task is
+     equivalent to using <code>&lt;property file=&quot;...&quot;/&gt;</code>
+     except that it supports nested <code>&lt;filterchain&gt;</code> elements,
+     and it cannot be specified outside a target.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/makeurl.html">MakeURL</a></td>
+    <td><p>Creates a URL (list) from a file/fileset or path</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/pathconvert.html">PathConvert</a></td>
+    <td><p>Converts a nested path, path reference, filelist reference, or
+     fileset reference to the form usable on a specified platform and/or
+     to a list of items separated by the specified separator and stores
+     the result in the specified property.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/property.html">Property</a></td>
+    <td><p>Sets a property (by name and value), or set of properties
+     (from a file or resource) in the project.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/propertyfile.html">
+     PropertyFile</a></td>
+    <td><p>Creates or modifies property files. Useful when wanting to make
+     unattended modifications to configuration files for application
+     servers and applications. Typically used for things such as
+     automatically generating a build number and saving it to a build
+     properties file, or doing date manipulation.<p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/uptodate.html">Uptodate</a></td>
+    <td><p>Sets a property if a given target file is newer than a set of
+     source files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/whichresource.html">Whichresource</a></td>
+    <td><p>Find a class or resource.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/xmlproperty.html">XmlProperty</a></td>
+    <td><p>Loads property values from a well-formed XML file.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="remote">Remote Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/ftp.html">FTP</a></td>
+    <td><p>Implements a basic FTP client that can send, receive,
+     list, and delete files, and create directories.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/rexec.html">Rexec</a></td>
+    <td><p>Task to automate a remote rexec session.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/scp.html">Scp</a></td>
+    <td><p>Copy files to or from a remote server using SSH.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/setproxy.html">setproxy</a></td>
+    <td><p>Sets Java's web proxy properties, so that tasks and code run
+ in the same JVM can have through-the-firewall access to remote web sites.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sshexec.html">Sshexec</a></td>
+    <td><p>Execute a command on a remote server using SSH.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/telnet.html">Telnet</a></td>
+    <td><p>Task to automate a remote <i>telnet</i> session. This task uses
+     nested <code>&lt;read&gt;</code> and <code>&lt;write&gt;</code> tags
+     to indicate strings to wait for and specify text to send.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="scm">SCM Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/cvs.html">Cvs</a></td>
+    <td><p>Handles packages/modules retrieved from a
+     <a href="http://www.nongnu.org/cvs/" target="_top">CVS</a>
+     repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/changelog.html">CvsChangeLog</a></td>
+    <td><p>Generates an XML report of the changes recorded in a
+     <a href="http://www.nongnu.org/cvs/" target="_top">CVS</a>
+     repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/cvspass.html">CVSPass</a></td>
+    <td><p>Adds entries to a .cvspass file. Adding entries to this file
+     has the same affect as a <i>cvs login</i> command.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/cvstagdiff.html">CvsTagDiff</a></td>
+    <td><p>Generates an XML-formatted report file of the changes between
+    two tags or dates recorded in a <a href="http://www.nongnu.org/cvs/"
+    target="_top">CVS</a> repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/clearcase.html">ClearCase</a></td>
+    <td><p>Tasks to perform the ClearCase cleartool <i>checkin</i>, <i>checkout</i>,
+     <i>uncheckout</i>, <i>update</i>, <i>lock</i>, <i>unlock</i>, <i>mklbtype</i>, <i>rmtype</i>, <i>mklabel</i>, <i>mkattr</i>, <i>mkdir</i>, <i>mkelem</i>, and <i>mkbl</i> commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/ccm.html">Continuus/Synergy</a></td>
+    <td><p>Tasks to perform the Continuus <i>ccmcheckin</i>,
+     <i>ccmcheckout</i>, <i>ccmcheckintask</i>, <i>ccmreconfigure</i>, and
+     <i>ccmcreateTask</i> commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/vss.html">
+     Microsoft Visual SourceSafe</a></td>
+    <td><p>Tasks to perform the Visual SourceSafe <i>vssget</i>,
+     <i>vsslabel</i>, <i>vsshistory</i>, <i>vsscheckin</i>,
+     <i>vsscheckout</i>, <i>vssadd</i>, <i>vsscp</i>, and <i>vsscreate</i>
+     commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/perforce.html">Perforce</a></td>
+    <td><p>Tasks to perform the Perforce <i>p4sync</i>, <i>p4change</i>,
+     <i>p4edit</i>, <i>p4submit</i>, <i>p4have</i>, <i>p4label</i>,
+     <i>p4counter</i>, <i>p4reopen</i>, <i>p4revert</i>, and <i>p4add</i>
+     commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/pvcstask.html">Pvcs</a></td>
+    <td><p>Allows the user extract the latest edition of the source code
+     from a PVCS repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sos.html">SourceOffSite</a></td>
+    <td><p>Tasks to perform the SourceOffSite <i>sosget</i>, <i>soslabel</i>,
+     <i>soscheckin</i>, and <i>soscheckout</i> commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/starteam.html">StarTeam</a></td>
+    <td><p>Tasks to perform the StarTeam <i>stcheckout</i>, <i>stcheckin</i>,
+     <i>stlabel</i>, and <i>stlist</i> commands. The
+     <a href="OptionalTasks/starteam.html#starteam">Starteam</a> task
+     is deprecated; use
+     <a href="OptionalTasks/starteam.html#stcheckout">STCheckout</a>
+     instead.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="testing">Testing Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/junit.html">Junit</a></td>
+    <td><p>Runs tests from the <a href="http://www.junit.org">Junit</a>
+     testing framework. This task has been tested with JUnit 3.0 up to
+     JUnit 3.7; it won't work with versions prior to JUnit 3.0.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/junitreport.html">JunitReport</a></td>
+    <td><p>Merges the individual XML files generated by the
+     <a href="OptionalTasks/junit.html">Junit</a> task and applies a
+     stylesheet on the resulting merged document to provide a browsable
+     report of the testcases results.</p></td>
+  </tr>
+
+</table>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/toc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/toc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/toc.html	(revision 14989)
@@ -0,0 +1,48 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2>Table of Contents</h2>
+<a href="intro.html">Introduction</a><br>
+<!--a href="installlist.html" target="navFrame">Installing Ant</a><br-->
+<a href="usinglist.html" target="navFrame">Using Ant</a><br>
+<!--a href="runninglist.html" target="navFrame">Running Ant</a><br-->
+<a href="anttaskslist.html" target="navFrame"><b>Ant Tasks</b></a><br>
+<a href="conceptstypeslist.html" target="navFrame">Concepts and Types</a><br>
+<a href="listeners.html" target="mainFrame">Loggers &amp; Listeners</a><br>
+<!--a href="ide.html" target="navFrame">Editor/IDE Integration</a><br-->
+<a href="developlist.html" target="navFrame">Developing with Ant</a><br>
+<a href="tutorials.html" target="navFrame">Tutorials</a><br>
+<a href="api/index.html" target="_top">Ant API</a><br>
+<a href="LICENSE">License</a><br>
+<a href="feedback.html">Feedback and Troubleshooting</a><br>
+<br>
+<a href="credits.html">Authors</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/manual/tutorial-HelloWorldWithAnt.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/tutorial-HelloWorldWithAnt.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/tutorial-HelloWorldWithAnt.html	(revision 14989)
@@ -0,0 +1,525 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+  <title>Tutorial: Hello World with Ant</title>
+  <meta name="author" content="Jan Matï¿œne">
+  <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+  <style type="text/css">
+  <!--
+  .code { background: #EFEFEF; margin-top: }
+  .output { color: #FFFFFF; background: #837A67; }
+  -->
+  </style>
+</head>
+<body>
+<h1>Tutorial: Hello World with Ant</h1>
+
+<p>This document provides a step by step tutorial for starting java programming with Ant.
+It does <b>not</b> contain deeper knowledge about Java or Ant. This tutorial has the goal
+to let you see, how to do the easiest steps in Ant.</p>
+
+
+
+<h2>Content</h2>
+<p><ul>
+<li><a href="#prepare">Preparing the project</a></li>
+<li><a href="#four-steps">Enhance the build file</a></li>
+<li><a href="#enhance">Enhance the build file</a></li>
+<li><a href="#ext-libs">Using external libraries</a></li>
+<li><a href="#resources">Resources</a></li>
+</ul></p>
+
+
+<a name="prepare"></a>
+<h2>Preparing the project</h2>
+<p>We want to separate the source from the generated files, so our java source files will
+be in <tt>src</tt> folder. All generated files should be under <tt>build</tt>, and there
+splitted into several subdirectories for the individual steps: <tt>classes</tt> for our compiled
+files and <tt>jar</tt> for our own JAR-file.</p>
+<p>We have to create only the <tt>src</tt> directory. (Because I am working on Windows, here is 
+the win-syntax - translate to your shell):</p>
+
+<pre class="code">
+md src
+</pre>
+
+<p>The following simple Java class just prints a fixed message out to STDOUT,
+so just write this code into <tt>src\oata\HelloWorld.java</tt>.</p>
+
+<pre class="code">
+package oata;
+
+public class HelloWorld {
+    public static void main(String[] args) {
+        System.out.println("Hello World");
+    }
+}
+</pre>
+
+<p>Now just try to compile and run that:
+<pre class="code">
+md build\classes
+javac -sourcepath src -d build\classes src\oata\HelloWorld.java
+java -cp build\classes oata.HelloWorld
+</pre>
+which will result in
+<pre class="output">
+Hello World
+</pre>
+</p>
+
+<p>Creating a jar-file is not very difficult. But creating a <i>startable</i> jar-file needs more steps: create a
+manifest-file containing the start class, creating the target directory and archiving the files.</p>
+<pre class="code">
+echo Main-Class: oata.HelloWorld&gt;myManifest
+md build\jar
+jar cfm build\jar\HelloWorld.jar myManifest -C build\classes .
+java -jar build\jar\HelloWorld.jar
+</pre>
+
+<p><b>Note:</b> Do not have blanks around the &gt;-sign in the <tt>echo Main-Class</tt> instruction because it would 
+falsify it!</p>
+
+
+<a name="four-steps"></a>
+<h2>Four steps to a running application</h2>
+<p>After finishing the java-only step we have to think about our build process. We <i>have</i> to compile our code, otherwise we couldn't
+start the program. Oh - "start" - yes, we could provide a target for that. We <i>should</i> package our application.
+Now it's only one class - but if you want to provide a download, no one would download several hundreds files ...
+(think about a complex Swing GUI - so let us create a jar file. A startable jar file would be nice ... And it's a
+good practise to have a "clean" target, which deletes all the generated stuff. Many failures could be solved just
+by a "clean build".</p>
+
+<p>By default Ant uses <tt>build.xml</tt> as the name for a buildfile, so our <tt>.\build.xml</tt> would be:</p>
+<pre class="code">
+&lt;project&gt;
+
+    &lt;target name="clean"&gt;
+        &lt;delete dir="build"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile"&gt;
+        &lt;mkdir dir="build/classes"/&gt;
+        &lt;javac srcdir="src" destdir="build/classes"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar"&gt;
+        &lt;mkdir dir="build/jar"/&gt;
+        &lt;jar destfile="build/jar/HelloWorld.jar" basedir="build/classes"&gt;
+            &lt;manifest&gt;
+                &lt;attribute name="Main-Class" value="oata.HelloWorld"/&gt;
+            &lt;/manifest&gt;
+        &lt;/jar&gt;
+    &lt;/target&gt;
+
+    &lt;target name="run"&gt;
+        &lt;java jar="build/jar/HelloWorld.jar" fork="true"/&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre>
+
+<p>Now you can compile, package and run the application via</p>
+<pre class="code">
+ant compile
+ant jar
+ant run
+</pre>
+<p>Or shorter with</p>
+<pre class="code">
+ant compile jar run
+</pre>
+
+<p>While having a look at the buildfile, we will see some similar steps between Ant and the java-only commands:
+<table>
+<tr>
+  <th>java-only</th>
+  <th>Ant</th>
+</tr>
+<tr>
+  <td valign="top"><pre class="code">
+md build\classes
+javac
+    -sourcepath src
+    -d build\classes
+    src\oata\HelloWorld.java
+echo Main-Class: oata.HelloWorld>mf
+md build\jar
+jar cfm
+    build\jar\HelloWorld.jar
+    mf
+    -C build\classes
+    .
+
+
+
+java -jar build\jar\HelloWorld.jar
+  </pre></td>
+  <td valign="top"><pre class="code">
+&lt;mkdir dir="build/classes"/&gt;
+&lt;javac
+    srcdir="src"
+    destdir="build/classes"/&gt;
+<i>&lt;!-- automatically detected --&gt;</i>
+<i>&lt;!-- obsolete; done via manifest tag --&gt;</i>
+&lt;mkdir dir="build/jar"/&gt;
+&lt;jar
+    destfile="build/jar/HelloWorld.jar"
+
+    basedir="build/classes"&gt;
+    &lt;manifest&gt;
+        &lt;attribute name="Main-Class" value="oata.HelloWorld"/&gt;
+    &lt;/manifest&gt;
+&lt;/jar&gt;
+&lt;java jar="build/jar/HelloWorld.jar" fork="true"/&gt;
+  </pre></td>
+</tr></table>
+</p>
+
+
+
+<a name="enhance"></a>
+<h2>Enhance the build file</h2>
+<p>Now we have a working buildfile we could do some enhancements: many time you are referencing the
+same directories, main-class and jar-name are hard coded, and while invocation you have to remember
+the right order of build steps.</p>
+<p>The first and second point would be addressed with <i>properties</i>, the third with a special property - an attribute
+of the &lt;project&gt;-tag and the fourth problem can be solved using dependencies.</p>
+
+
+<pre class="code">
+&lt;project name="HelloWorld" basedir="." default="main"&gt;
+
+    &lt;property name="src.dir"     value="src"/&gt;
+
+    &lt;property name="build.dir"   value="build"/&gt;
+    &lt;property name="classes.dir" value="${build.dir}/classes"/&gt;
+    &lt;property name="jar.dir"     value="${build.dir}/jar"/&gt;
+
+    &lt;property name="main-class"  value="oata.HelloWorld"/&gt;
+
+
+
+    &lt;target name="clean"&gt;
+        &lt;delete dir="${build.dir}"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar" depends="compile"&gt;
+        &lt;mkdir dir="${jar.dir}"/&gt;
+        &lt;jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"&gt;
+            &lt;manifest&gt;
+                &lt;attribute name="Main-Class" value="${main-class}"/&gt;
+            &lt;/manifest&gt;
+        &lt;/jar&gt;
+    &lt;/target&gt;
+
+    &lt;target name="run" depends="jar"&gt;
+        &lt;java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="clean-build" depends="clean,jar"/&gt;
+
+    &lt;target name="main" depends="clean,run"/&gt;
+
+&lt;/project&gt;
+</pre>
+
+
+<p>Now it's easier, just do a <tt class="code">ant</tt> and you will get</p>
+<pre class="output">
+Buildfile: build.xml
+
+clean:
+
+compile:
+    [mkdir] Created dir: C:\...\build\classes
+    [javac] Compiling 1 source file to C:\...\build\classes
+
+jar:
+    [mkdir] Created dir: C:\...\build\jar
+      [jar] Building jar: C:\...\build\jar\HelloWorld.jar
+
+run:
+     [java] Hello World
+
+main:
+
+BUILD SUCCESSFUL
+</pre>
+
+
+<a name="ext-libs"></a>
+<h2>Using external libraries</h2>
+<p>Somehow told us not to use syso-statements. For log-Statements we should use a Logging-API - customizable on a high
+degree (including switching off during usual life (= not development) execution). We use Log4J for that, because <ul>
+<li>it is not part of the JDK (1.4+) and we want to show how to use external libs</li>
+<li>it can run under JDK 1.2 (as Ant)</li>
+<li>it's highly configurable</li>
+<li>it's from Apache ;-)</li>
+</ul></p>
+<p>We store our external libraries in a new directory <tt>lib</tt>. Log4J can be
+<a href="http://www.apache.org/dist/logging/log4j/1.2.13/logging-log4j-1.2.13.zip">downloaded [1]</a> from Logging's Homepage.
+Create the <tt>lib</tt> directory and extract the log4j-1.2.9.jar into that lib-directory. After that we have to modify
+our java source to use that library and our buildfile so that this library could be accessed during compilation and run.
+</p>
+<p>Working with Log4J is documented inside its manual. Here we use the <i>MyApp</i>-example from the
+<a href="http://logging.apache.org/log4j/docs/manual.html">Short Manual [2]</a>. First we have to modify the java source to
+use the logging framework:</p>
+
+<pre class="code">
+package oata;
+
+<b>import org.apache.log4j.Logger;</b>
+<b>import org.apache.log4j.BasicConfigurator;</b>
+
+public class HelloWorld {
+    <b>static Logger logger = Logger.getLogger(HelloWorld.class);</b>
+
+    public static void main(String[] args) {
+        <b>BasicConfigurator.configure();</b>
+        <font color="blue"><b>logger.info("Hello World");</b></font>          // the old SysO-statement
+    }
+}
+</pre>
+
+<p>Most of the modifications are "framework overhead" which has to be done once. The blue line is our "old System-out"
+statement.</p>
+<p>Don't try to run <tt>ant</tt> - you will only get lot of compiler errors. Log4J is not inside the classpath so we have
+to do a little work here. But do not change the CLASSPATH environment variable! This is only for this project and maybe
+you would break other environments (this is one of the most famous mistakes when working with Ant). We introduce Log4J
+(or to be more precise: all libraries (jar-files) which are somewhere under <tt>.\lib</tt>) into our buildfile:</p>
+
+<pre class="code">
+&lt;project name="HelloWorld" basedir="." default="main"&gt;
+    ...
+    <b>&lt;property name="lib.dir"     value="lib"/&gt;</b>
+
+    <b>&lt;path id="classpath"&gt;</b>
+        <b>&lt;fileset dir="${lib.dir}" includes="**/*.jar"/&gt;</b>
+    <b>&lt;/path&gt;</b>
+
+    ...
+
+    &lt;target name="compile"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}" <b>classpathref="classpath"</b>/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="run" depends="jar"&gt;
+        &lt;java fork="true" <b>classname="${main-class}"</b>&gt;
+            <b>&lt;classpath&gt;</b>
+                <b>&lt;path refid="classpath"/&gt;</b>
+                <font color="red"><b>&lt;path location="${jar.dir}/${ant.project.name}.jar"/&gt;</b></font>
+            <b>&lt;/classpath&gt;</b>
+        &lt;/java&gt;
+    &lt;/target&gt;
+
+    ...
+
+&lt;/project&gt;
+</pre>
+
+<p>In this example we start our application not via its Main-Class manifest-attribute, because we could not provide
+a jarname <i>and</i> a classpath. So add our class in the red line to the already defined path and start as usual. Running
+<tt>ant</tt> would give (after the usual compile stuff):</p>
+
+<pre class="output">
+[java] 0 [main] INFO oata.HelloWorld  - Hello World
+</pre>
+
+<p>What's that? <ul>
+<li><i>[java]</i> Ant task running at the moment</li>
+<li><i>0</i> <font size="-1">sorry don't know - some Log4J stuff</font></li>
+<li><i>[main]</i> the running thread from our application </li>
+<li><i>INFO</i> log level of that statement</i>
+<li><i>oata.HelloWorld</i> source of that statement</i>
+<li><i>-</i> separator</li>
+<li><i>Hello World</i> the message</li>
+</ul>
+For another layout ... have a look inside Log4J's documentation about using other PatternLayout's.</p>
+
+
+<a name="config-files"></a>
+<h2>Configuration files</h2>
+<p>Why we have used Log4J? "It's highly configurable"? No - all is hard coded! But that is not the debt of Log4J - it's
+ours. We had coded <tt>BasicConfigurator.configure();</tt> which implies a simple, but hard coded configuration. More
+confortable would be using a property file. In the java source delete the BasicConfiguration-line from the main() method
+(and the related import-statement). Log4J will search then for a configuration as described in it's manual. Then create 
+a new file <tt>src/log4j.properties</tt>. That's the default name for Log4J's configuration and using that name would make 
+life easier - not only the framework knows what is inside, you too!</p>
+
+<pre class="code">
+log4j.rootLogger=DEBUG, <b>stdout</b>
+
+log4j.appender.<b>stdout</b>=org.apache.log4j.ConsoleAppender
+
+log4j.appender.<b>stdout</b>.layout=org.apache.log4j.PatternLayout
+log4j.appender.<b>stdout</b>.layout.ConversionPattern=<font color="blue"><b>%m%n</b></font>
+</pre>
+
+<p>This configuration creates an output channel ("Appender") to console named as <tt>stdout</tt> which prints the
+message (%m) followed by a line feed (%n) - same as the earlier System.out.println() :-) Oooh kay - but we haven't
+finished yet. We should deliver the configuration file, too. So we change the buildfile:</p>
+
+<pre class="code">
+    ...
+    &lt;target name="compile"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/&gt;
+        <b>&lt;copy todir="${classes.dir}"&gt;</b>
+            <b>&lt;fileset dir="${src.dir}" excludes="**/*.java"/&gt;</b>
+        <b>&lt;/copy&gt;</b>
+    &lt;/target&gt;
+    ...
+</pre>
+
+<p>This copies all resources (as long as they haven't the suffix ".java") to the build directory, so we could
+start the application from that directory and these files will included into the jar.</p>
+
+
+<a name="junit"></a>
+<h2>Testing the class</h2>
+<p>In this step we will introduce the usage of the JUnit [3] testframework in combination with Ant. Because Ant
+has a built-in JUnit 3.8.2 you could start directly using it. Write a test class in <tt>src\HelloWorldTest.java</tt>: </p>
+
+<pre class="code">
+public class HelloWorldTest extends junit.framework.TestCase {
+
+    public void testNothing() {
+    }
+    
+    public void testWillAlwaysFail() {
+        fail("An error message");
+    }
+    
+}</pre>
+
+<p>Because we dont have real business logic to test, this test class is very small: just show how to start. For 
+further information see the JUnit documentation [3] and the manual of <a href="OptionalTasks/junit.html">junit</a> task.
+Now we add a junit instruction to our buildfile:</p>
+
+<pre class="code">
+    ...
+
+    &lt;target name="run" depends="jar"&gt;
+        &lt;java fork="true" classname="${main-class}"&gt;
+            &lt;classpath&gt;
+                &lt;path refid="classpath"/&gt;
+                &lt;path <b>id="application"</b> location="${jar.dir}/${ant.project.name}.jar"/&gt;
+            &lt;/classpath&gt;
+        &lt;/java&gt;
+    &lt;/target&gt;
+    
+    <b>&lt;target name="junit" depends="jar"&gt;
+        &lt;junit printsummary="yes"&gt;
+            &lt;classpath&gt;
+                &lt;path refid="classpath"/&gt;
+                &lt;path refid="application"/&gt;
+            &lt;/classpath&gt;
+            
+            &lt;batchtest fork="yes"&gt;
+                &lt;fileset dir="${src.dir}" includes="*Test.java"/&gt;
+            &lt;/batchtest&gt;
+        &lt;/junit&gt;
+    &lt;/target&gt;</b>
+
+    ...
+
+</pre>
+
+<p>We reuse the path to our own jar file as defined in run-target by giving it an ID.
+The <tt>printsummary=yes</tt> lets us see more detailed information than just a "FAILED" or "PASSED" message.
+How much tests failed? Some errors? Printsummary lets us know. The classpath is set up to find our classes.
+To run tests the <tt>batchtest</tt> here is used, so you could easily add more test classes in the future just
+by naming them <tt>*Test.java</tt>. This is a common naming scheme.</p>
+
+<p>After a <tt class="code">ant junit</tt> you'll get:</p>
+
+<pre class="output">
+...
+junit:
+    [junit] Running HelloWorldTest
+    [junit] Tests run: 2, Failures: 1, Errors: 0, Time elapsed: 0,01 sec
+    [junit] Test HelloWorldTest FAILED
+
+BUILD SUCCESSFUL
+...
+</pre>
+
+<p>We can also produce a report. Something that you (and other) could read after closing the shell .... 
+There are two steps: 1. let &lt;junit&gt; log the information and 2. convert these to something readable (browsable).<p>
+
+<pre class="code">
+    ...
+    <b>&lt;property name="report.dir"  value="${build.dir}/junitreport"/&gt;</b>
+    ...
+    &lt;target name="junit" depends="jar"&gt;
+        <b>&lt;mkdir dir="${report.dir}"/&gt;</b>
+        &lt;junit printsummary="yes"&gt;
+            &lt;classpath&gt;
+                &lt;path refid="classpath"/&gt;
+                &lt;path refid="application"/&gt;
+            &lt;/classpath&gt;
+            
+            <b>&lt;formatter type="xml"/&gt;</b>
+            
+            &lt;batchtest fork="yes" <b>todir="${report.dir}"</b>&gt;
+                &lt;fileset dir="${src.dir}" includes="*Test.java"/&gt;
+            &lt;/batchtest&gt;
+        &lt;/junit&gt;
+    &lt;/target&gt;
+    
+    <b>&lt;target name="junitreport"&gt;
+        &lt;junitreport todir="${report.dir}"&gt;
+            &lt;fileset dir="${report.dir}" includes="TEST-*.xml"/&gt;
+            &lt;report todir="${report.dir}"/&gt;
+        &lt;/junitreport&gt;
+    &lt;/target&gt;</b>
+   
+</pre>
+
+<p>Because we would produce a lot of files and these files would be written to the current directory by default,
+we define a report directory, create it before running the <tt>junit</tt> and redirect the logging to it. The log format
+is XML so <tt>junitreport</tt> could parse it. In a second target <tt>junitreport</tt> should create a browsable 
+HTML-report for all generated xml-log files in the report directory. Now you can open the ${report.dir}\index.html and
+see the result (looks something like JavaDoc).<br>
+Personally I use two different targets for junit and junitreport. Generating the HTML report needs some time and you dont
+need the HTML report just for testing, e.g. if you are fixing an error or a integration server is doing a job.
+</p>
+
+
+
+
+<a name="resources"></a>
+<h2>Resources</h2>
+<pre>
+    [1] <a href="http://www.apache.org/dist/logging/log4j/1.2.13/logging-log4j-1.2.13.zip">http://www.apache.org/dist/logging/log4j/1.2.13/logging-log4j-1.2.13.zip</a>
+    [2] <a href="http://logging.apache.org/log4j/docs/manual.html">http://logging.apache.org/log4j/docs/manual.html</a>
+    [3] <a href="http://www.junit.org/index.htm">http://www.junit.org/index.htm</a>
+</pre>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/tutorial-tasks-filesets-properties.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/tutorial-tasks-filesets-properties.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/tutorial-tasks-filesets-properties.html	(revision 14989)
@@ -0,0 +1,987 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+
+<title>Tutorial: Tasks using Properties, Filesets &amp; Paths</title>
+  <meta name="author" content="Jan Mat&egrave;rne">
+  <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+  <style type="text/css">
+  <!--
+  .code { background: #EFEFEF; margin-top: }
+  .output { color: #FFFFFF; background: #837A67; }
+  -->
+  </style>
+</head>
+<body>
+<h1>Tutorial: Tasks using Properties, Filesets &amp; Paths</h1>
+
+<p>After reading the tutorial about <a href="tutorial-writing-tasks.html">writing
+tasks [1]</a> this tutorial explains how to get and set properties and how to use
+nested filesets and paths. Finally it explains how to contribute tasks to Ant.</p>
+
+<h2>Content</h2>
+<p><ul>
+<li><a href="#goal">The goal</a></li>
+<li><a href="#buildenvironment">Build environment</a></li>
+<li><a href="#propertyaccess">Property access</a></li>
+<li><a href="#filesets">Using filesets</a></li>
+<li><a href="#path">Using nested paths</a></li>
+<li><a href="#returning-list">Returning a list</a></li>
+<li><a href="#documentation">Documentation</a></li>
+<li><a href="#contribute">Contribute the new task</a></li>
+<li><a href="#resources">Resources</a></li>
+</ul></p>
+
+
+<h2><a name="goal">The goal</a></h2>
+<p>The goal is to write a task, which searchs in a path for a file and saves the
+location of that file in a property.</p>
+
+
+<h2><a name="buildenvironment">Build environment</a></h2>
+<p>We can use the buildfile from the other tutorial and modify it a little bit.
+That's the advantage of using properties - we can reuse nearly the whole script. :-)</p>
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="<b>FindTask</b>" basedir="." default="test"&gt;
+    ...
+    &lt;target name="use.init" description="Taskdef's the <b>Find</b>-Task" depends="jar"&gt;
+        &lt;taskdef name="<b>find</b>" classname="<b>Find</b>" classpath="${ant.project.name}.jar"/&gt;
+    &lt;/target&gt;
+
+    <b>&lt;!-- the other use.* targets are deleted --&gt;</b>
+    ...
+&lt;/project&gt;
+</pre>
+
+<p>The buildfile is in the archive <a href="tutorial-tasks-filesets-properties.zip">
+tutorial-tasks-filesets-properties.zip [2]</a> in <tt>/build.xml.01-propertyaccess</tt>
+(future version saved as *.02..., final version as build.xml; same for sources).</p>
+
+
+<h2><a name="propertyaccess">Property access</a></h2>
+<p>Our first step is to set a property to a value and print the value of that property.
+So our scenario would be
+<pre class="code">
+    &lt;find property="test" value="test-value"/&gt;
+    &lt;find print="test"/&gt;
+</pre>
+ok, can be rewritten with the core tasks
+<pre class="code">
+    &lt;property name="test" value="test-value"/&gt;
+    &lt;echo message="${test}"/&gt;
+</pre>
+but I have to start on known ground :-)</p>
+<p>So what to do? Handling three attributes (property, value, print) and an execute method.
+Because this is only an introduction example I don't do much checking:
+
+<pre class="code">
+import org.apache.tools.ant.BuildException;
+
+public class Find extends Task {
+
+    private String property;
+    private String value;
+    private String print;
+
+    public void setProperty(String property) {
+        this.property = property;
+    }
+
+    // setter for value and print
+
+    public void execute() {
+        if (print != null) {
+            String propValue = <b>getProject().getProperty(print)</b>;
+            log(propValue);
+        } else {
+            if (property == null) throw new BuildException("property not set");
+            if (value    == null) throw new BuildException("value not set");
+            <b>getProject().setNewProperty(property, value)</b>;
+        }
+    }
+}
+</pre>
+
+As said in the other tutorial, the property access is done via Project instance.
+We get this instance via the public <tt>getProject()</tt> method which we inherit from
+<tt>Task</tt> (more precise from ProjectComponent). Reading a property is done via
+<tt>getProperty(<i>propertyname</i>)</tt> (very simple, isn't it?). This property returns
+the value as String or <i>null</i> if not set.<br>
+Setting a property is ... not really difficult, but there is more than one setter. You can
+use the <tt>setProperty()</tt> method which will do the job like expected. But there is
+a golden rule in Ant: <i>properties are immutable</i>. And this method sets the property
+to the specified value - whether it has a value before that or not. So we use another
+way. <tt>setNewProperty()</tt> sets the property only if there is no property with that
+name. Otherwise a message is logged.</p>
+
+<p><i>(by the way: a short word to ants "namespaces" (don't
+be confused with xml namespaces:
+an <code>&lt;antcall&gt;</code> creates a new space for property names. All properties from the caller
+are passed to the callee, but the callee can set its own properties without notice by the
+caller.)</i></p>
+
+<p>There are some other setter, too (but I haven't used them, so I can't say something
+to them, sorry :-)</p>
+
+<p>After putting our two line example from above into a target names <tt>use.simple</tt>
+we can call that from our testcase:
+
+<pre class="code">
+import org.apache.tools.ant.BuildFileTest;
+
+public class FindTest extends BuildFileTest {
+
+    public FindTest(String name) {
+        super(name);
+    }
+
+    public void setUp() {
+        configureProject("build.xml");
+    }
+
+    public void testSimple() {
+        <b>expectLog("use.simple", "test-value");</b>
+    }
+}
+</pre>
+
+and all works fine.</p>
+
+
+
+<h2><a name="filesets">Using filesets</a></h2>
+<p>Ant provides a common way of bundling files: the fileset. Because you are reading
+this tutorial I think you know them and I don't have to spend more explanations about
+their usage in buildfiles. Our goal is to search a file in path. And on this step the
+path is simply a fileset (or more precise: a collection of filesets). So our usage
+would be
+<pre class="code">
+    &lt;find file="ant.jar" location="location.ant-jar"&gt;
+        &lt;fileset dir="${ant.home}" includes="**/*.jar"/&gt;
+    &lt;/find&gt;
+</pre>
+</p>
+
+<p>What do we need? A task with two attributes (file, location) and nested
+filesets. Because we had attribute handling already explained in the example above and the
+handling of nested elements is described in the other tutorial the code should be very easy:
+<pre class="code">
+public class Find extends Task {
+
+    private String file;
+    private String location;
+    private Vector filesets = new Vector();
+
+    public void setFile(String file) {
+        this.file = file;
+    }
+
+    public void setLocation(String location) {
+        this.location = location;
+    }
+
+    public void addFileset(FileSet fileset) {
+        filesets.add(fileset);
+    }
+
+    public void execute() {
+    }
+}
+</pre>
+Ok - that task wouldn't do very much, but we can use it in the described manner without
+failure. On next step we have to implement the execute method. And before that we will
+implement the appropriate testcases (TDD - test driven development).</p>
+
+<p>In the other tutorial we have reused the already written targets of our buildfile.
+Now we will configure most of the testcases via java code (sometimes it's much easier
+to write a target than doing it via java coding). What can be tested?<ul>
+<li>not valid configured task (missing file, missing location, missing fileset)</li>
+<li>don't find a present file</li>
+<li>behaviour if file can't be found</li>
+</ul>
+Maybe you find some more testcases. But this is enough for now.<br>
+For each of these points we create a <tt>testXX</tt> method.</p>
+
+<pre class="code">
+public class FindTest extends BuildFileTest {
+
+    ... // constructor, setUp as above
+
+    public void testMissingFile() {
+        <b>Find find = new Find();</b>
+        try {
+            <b>find.execute();</b>
+            fail("No 'no-file'-exception thrown.");
+        } catch (Exception e) {
+            // exception expected
+            String expected = "file not set";
+            assertEquals("Wrong exception message.", expected, e.getMessage());
+        }
+    }
+
+    public void testMissingLocation() {
+        Find find = new Find();
+        <b>find.setFile("ant.jar");</b>
+        try {
+            find.execute();
+            fail("No 'no-location'-exception thrown.");
+        } catch (Exception e) {
+            ... // similar to testMissingFile()
+        }
+    }
+
+    public void testMissingFileset() {
+        Find find = new Find();
+        find.setFile("ant.jar");
+        find.setLocation("location.ant-jar");
+        try {
+            find.execute();
+            fail("No 'no-fileset'-exception thrown.");
+        } catch (Exception e) {
+            ... // similar to testMissingFile()
+        }
+    }
+
+    public void testFileNotPresent() {
+        executeTarget("testFileNotPresent");
+        String result = getProject().getProperty("location.ant-jar");
+        assertNull("Property set to wrong value.", result);
+    }
+
+    public void testFilePresent() {
+        executeTarget("testFilePresent");
+        String result = getProject().getProperty("location.ant-jar");
+        assertNotNull("Property not set.", result);
+        assertTrue("Wrong file found.", result.endsWith("ant.jar"));
+    }
+}
+</pre>
+
+<p>If we run this test class all test cases (except <i>testFileNotPresent</i>) fail. Now we
+can implement our task, so that these test cases will pass.</p>
+
+<pre class="code">
+    protected void validate() {
+        if (file==null) throw new BuildException("file not set");
+        if (location==null) throw new BuildException("location not set");
+        if (filesets.size()&lt;1) throw new BuildException("fileset not set");
+    }
+
+    public void execute() {
+        validate();                                                             // 1
+        String foundLocation = null;
+        for(Iterator itFSets = filesets.iterator(); itFSets.hasNext(); ) {      // 2
+            FileSet fs = (FileSet)itFSets.next();
+            DirectoryScanner ds = fs.getDirectoryScanner(getProject());         // 3
+            String[] includedFiles = ds.getIncludedFiles();
+            for(int i=0; i&lt;includedFiles.length; i++) {
+                String filename = includedFiles[i].replace('\\','/');           // 4
+                filename = filename.substring(filename.lastIndexOf("/")+1);
+                if (foundLocation==null &amp;&amp; file.equals(filename)) {
+                    File base  = ds.getBasedir();                               // 5
+                    File found = new File(base, includedFiles[i]);
+                    foundLocation = found.getAbsolutePath();
+                }
+            }
+        }
+        if (foundLocation!=null)                                                // 6
+            getProject().setNewProperty(location, foundLocation);
+    }
+</pre>
+
+<p>On <b>//1</b> we check the prerequisites for our task. Doing that in a <tt>validate</tt>-method
+is a common way, because we separate the prerequisites from the real work. On <b>//2</b> we iterate
+over all nested filesets. If we don't want to handle multiple filesets, the <tt>addFileset()</tt>
+method has to reject the further calls. We can get the result of a fileset via its DirectoryScanner
+like done in <b>//3</b>. After that we create a plattform independend String representation of
+the file path (<b>//4</b>, can be done in other ways of course). We have to do the <tt>replace()</tt>,
+because we work with a simple string comparison. Ant itself is platform independant and can
+therefore run on filesystems with slash (/, e.g. Linux) or backslash (\, e.g. Windows) as
+path separator. Therefore we have to unify that. If we found our file we create an absolute
+path representation on <b>//5</b>, so that we can use that information without knowing the basedir.
+(This is very important on use with multiple filesets, because they can have different basedirs
+and the return value of the directory scanner is relative to its basedir.) Finally we store the
+location of the file as property, if we had found one (<b>//6</b>).</p>
+
+<p>Ok, much more easier in this simple case would be to add the <i>file</i> as additional
+<i>include</i> element to all filesets. But I wanted to show how to handle complex situations
+whithout being complex :-)</p>
+
+<p>The test case uses the ant property <i>ant.home</i> as reference. This property is set by the
+<tt>Launcher</tt> class which starts ant. We can use that property in our buildfiles as a
+<a href="using.html#built-in-props">build-in property [3]</a>. But if we create a new ant
+environment we have to set that value for our own. And we use the <code>&lt;junit&gt;</code> task in fork-mode.
+Therefore we have do modify our buildfile:
+<pre class="code">
+    &lt;target name="junit" description="Runs the unit tests" depends="jar"&gt;
+        &lt;delete dir="${junit.out.dir.xml}"/&gt;
+        &lt;mkdir  dir="${junit.out.dir.xml}"/&gt;
+        &lt;junit printsummary="yes" haltonfailure="no"&gt;
+            &lt;classpath refid="classpath.test"/&gt;
+            <b>&lt;sysproperty key="ant.home" value="${ant.home}"/&gt;</b>
+            &lt;formatter type="xml"/&gt;
+            &lt;batchtest fork="yes" todir="${junit.out.dir.xml}"&gt;
+                &lt;fileset dir="${src.dir}" includes="**/*Test.java"/&gt;
+            &lt;/batchtest&gt;
+        &lt;/junit&gt;
+    &lt;/target&gt;
+</pre>
+
+
+<h2><a name="path">Using nested paths</a></h2>
+<p>A task providing support for filesets is a very comfortable one. But there is another
+possibility of bundling files: the <code>&lt;path&gt;</code>. Fileset are easy if the files are all under
+a common base directory. But if this is not the case you have a problem. Another disadvantage
+is its speed: if you have only a few files in a huge directory structure, why not use a
+<code>&lt;filelist&gt;</code> instead? <code>&lt;path&gt;</code>s combines these datatypes in that way that a path contains
+other paths, filesets, dirsets and filelists. This is why <a href="http://ant-contrib.sourceforge.net/">
+Ant-Contribs [4]</a> <code>&lt;foreach&gt;</code> task is modified to support paths instead of filesets. So we want that,
+too.</p>
+
+<p>Changing from fileset to path support is very easy:</p>
+<pre class="code">
+<i><b>Change java code from:</b></i>
+    private Vector filesets = new Vector();
+    public void addFileset(FileSet fileset) {
+        filesets.add(fileset);
+    }
+<i><b>to:</b></i>
+    private Vector paths = new Vector();                      *1
+    public void add<b>Path</b>(<b>Path</b> path) {                          *2
+        paths.add(path);
+    }
+<i><b>and build file from:</b></i>
+    &lt;find file="ant.jar" location="location.ant-jar"&gt;
+        &lt;fileset dir="${ant.home}" includes="**/*.jar"/&gt;
+    &lt;/find&gt;
+<i><b>to:</b></i>
+    &lt;find file="ant.jar" location="location.ant-jar"&gt;
+        <b>&lt;path&gt;</b>                                                *3
+            &lt;fileset dir="${ant.home}" includes="**/*.jar"/&gt;
+        &lt;/path&gt;
+    &lt;/find&gt;
+</pre>
+<p>On <b>*1</b> we rename only the vector. Itï¿œs just for better reading the source. On <b>*2</b>
+we have to provide the right method: an add<i>Name</i>(<i>Type</i> t). Therefore replace the
+fileset with path here. Finally we have to modify our buildfile on <b>*3</b> because our task
+doesnï¿œt support nested filesets any longer. So we wrap the fileset inside a path.</p>
+
+<p>And now we modify the testcase. Oh, not very much to do :-) Renaming the <tt>testMissingFileset()</tt>
+(not really a <i>must-be</i> but better itï¿œs named like the think it does) and update the
+<i>expected</i>-String in that method (now a <tt>path not set</tt> message is expected). The more complex
+test cases base on the buildscript. So the targets <tt>testFileNotPresent</tt> and <tt>testFilePresent</tt> have to be
+modified in the manner described above.</p>
+
+<p>The test are finished. Now we have to adapt the task implementation. The easiest modification is
+in the <tt>validate()</tt> method where we change le last line to <tt>if (paths.size()&lt;1) throw new
+BuildException("path not set");</tt>. In the <tt>execute()</tt> method we have a little more work.
+... mmmh ... in reality it's lesser work, because the Path class does the whole DirectoryScanner-handling
+and creating-absolute-paths stuff for us. So the execute method is just:</p>
+
+<pre class="code">
+    public void execute() {
+        validate();
+        String foundLocation = null;
+        for(Iterator itPaths = paths.iterator(); itPaths.hasNext(); ) {
+            Path path = (<b>Path</b>)itPaths.next();                                // 1
+            String[] includedFiles = <b>path.list()</b>;                            // 2
+            for(int i=0; i&lt;includedFiles.length; i++) {
+                String filename = includedFiles[i].replace('\\','/');
+                filename = filename.substring(filename.lastIndexOf("/")+1);
+                if (foundLocation==null &amp;&amp; file.equals(filename)) {
+                    <b>foundLocation = includedFiles[i];</b>                        // 3
+                }
+            }
+        }
+        if (foundLocation!=null)
+            getProject().setNewProperty(location, foundLocation);
+    }
+</pre>
+
+<p>Of course we have to do the typecase to Path on <b>//1</b>. On <b>//2</b> and <b>//3</b>
+we see that the Path class does the work for us: no DirectoryScanner (was at 2) and no
+creating of the absolute path (was at 3).</p>
+
+
+
+<h2><a name="returning-list">Returning a list</a></h2>
+<p>So far so good. But could a file be on more than one place in the path? - Of course.<br>
+And would it be good to get all of them? - It depends on ...<p>
+
+<p>In this section we will extend that task to support returning a list of all files.
+Lists as property values are not supported by Ant natively. So we have to see how other
+tasks use lists. The most famous task using lists is Ant-Contribs <code>&lt;foreach&gt;</code>. All list
+elements are concatenated and separated with a customizable separator (default ',').</p>
+
+<p>So we do the following:</p>
+
+<pre class="code">
+    &lt;find ... <b>delimiter=""</b>/&gt; ... &lt;/find&gt;
+</pre>
+
+<p>If the delimiter is set we will return all found files as list with that delimiter.</p>
+
+<p>Therefore we have to<ul>
+<li>provide a new attribute</li>
+<li>collect more than the first file</li>
+<li>delete duplicates</li>
+<li>create the list if necessary</li>
+<li>return that list</li>
+</ul></p>
+
+<p>So we add as testcase:</p>
+<pre class="code">
+<b><i>in the buildfile:</i></b>
+    &lt;target name="test.init"&gt;
+        &lt;mkdir dir="test1/dir11/dir111"/&gt;                             *1
+        &lt;mkdir dir="test1/dir11/dir112"/&gt;
+        ...
+        &lt;touch file="test1/dir11/dir111/test"/&gt;
+        &lt;touch file="test1/dir11/dir111/not"/&gt;
+        ...
+        &lt;touch file="test1/dir13/dir131/not2"/&gt;
+        &lt;touch file="test1/dir13/dir132/test"/&gt;
+        &lt;touch file="test1/dir13/dir132/not"/&gt;
+        &lt;touch file="test1/dir13/dir132/not2"/&gt;
+        &lt;mkdir dir="test2"/&gt;
+        &lt;copy todir="test2"&gt;                                          *2
+            &lt;fileset dir="test1"/&gt;
+        &lt;/copy&gt;
+    &lt;/target&gt;
+
+    &lt;target name="testMultipleFiles" depends="use.init,<b>test.init</b>"&gt;    *3
+        &lt;find file="test" location="location.test" <b>delimiter=";"</b>&gt;
+            &lt;path&gt;
+                &lt;fileset dir="test1"/&gt;
+                &lt;fileset dir="test2"/&gt;
+            &lt;/path&gt;
+        &lt;/find&gt;
+        &lt;delete&gt;                                                      *4
+            &lt;fileset dir="test1"/&gt;
+            &lt;fileset dir="test2"/&gt;
+        &lt;/delete&gt;
+    &lt;/target&gt;
+
+<b><i>in the test class:</i></b>
+    public void testMultipleFiles() {
+        executeTarget("testMultipleFiles");
+        String result = getProject().getProperty("location.test");
+        assertNotNull("Property not set.", result);
+        assertTrue("Only one file found.", result.indexOf(";") &gt; -1);
+    }
+</pre>
+
+<p>Now we need a directory structure where we CAN find files with the same
+name in different directories. Because we can't sure to have one we create
+one on <b>*1</b> and <b>*2</b>. And of course we clean up that on <b>*4</b>. The creation
+can be done inside our test target or in a separate one, which will be better
+for reuse later (<b>*3</b>).
+
+<p>The task implementation is modified as followed:</p>
+
+<pre class="code">
+    private Vector foundFiles = new Vector();
+    ...
+    private String delimiter = null;
+    ...
+    public void setDelimiter(String delim) {
+        delimiter = delim;
+    }
+    ...
+    public void execute() {
+        validate();
+        // find all files
+        for(Iterator itPaths = paths.iterator(); itPaths.hasNext(); ) {
+            Path path = (Path)itPaths.next();
+            String[] includedFiles = path.list();
+            for(int i=0; i&lt;includedFiles.length; i++) {
+                String filename = includedFiles[i].replace('\\','/');
+                filename = filename.substring(filename.lastIndexOf("/")+1);
+                if (file.equals(filename) &amp;&amp; <b>!foundFiles.contains(includedFiles[i]</b>)) {   // 1
+                    foundFiles.add(includedFiles[i]);
+                }
+            }
+        }
+
+        // create the return value (list/single)
+        String rv = null;
+        if (foundFiles.size() &gt; 0) {                                        // 2
+            if (delimiter==null) {
+                // only the first
+                rv = (String)foundFiles.elementAt(0);
+            } else {
+                // create list
+                StringBuffer list = new StringBuffer();
+                for(Iterator it=foundFiles.iterator(); it.hasNext(); ) {    // 3
+                    list.append(it.next());
+                    if (<b>it.hasNext()</b>) list.append(delimiter);               // 4
+                }
+                rv = list.toString();
+            }
+        }
+
+        // create the property
+        if (rv!=null)
+            getProject().setNewProperty(location, rv);
+    }
+</pre>
+
+<p>The algorithm does: finding all files, creating the return value depending on the users
+wish, returning the value as property. On <b>//1</b> we eliminates the duplicates. <b>//2</b>
+ensures that we create the return value only if we have found one file. On <b>//3</b> we
+iterate over all found files and <b>//4</b> ensures that the last entry has no trailing
+delimiter.</p>
+
+<p>Ok, first searching for all files and then returning only the first one ... You can
+tune the performance of your own :-)</p>
+
+
+<h2><a name="documentation">Documentation</a></h2>
+<p>A task is useless if the only who is able to code the buildfile is the task developer
+(and he only the next few weeks :-). So documentation is also very important. In which
+form you do that depends on your favourite. But inside Ant there is a common format and
+it has advantages if you use that: all task users know that form, this form is requested if
+you decide to contribute your task. So we will doc our task in that form.</p>
+
+<p>If you have a look at the manual page of the <a href="CoreTasks/java.html">java [5]</a>
+   task you will see<ul>
+<li>it is plain html</li>
+<li>starts with the name</li>
+<li>has sections: description, parameters, nested elements, (maybe return codes) and (most
+important :-) examples</li>
+<li>parameters are listed in a table with columns for attribute name, its description and whether
+  it's required (if you add a feature after an Ant release, provide a <tt>since Ant xx</tt>
+  statement when it's introduced)</li>
+<li>describe the nested elements (since-statement if necessary)</li>
+<li>provide one or more useful examples; first code then description</li>
+</ul>
+As a template we have:
+
+<pre class="code">
+&lt;html&gt;
+
+&lt;head&gt;
+&lt;meta http-equiv="Content-Language" content="en-us"&gt;
+&lt;title&gt; <b>Taskname</b> Task&lt;/title&gt;
+&lt;/head&gt;
+
+&lt;body&gt;
+
+&lt;h2&gt;&lt;a name="<i>taskname</i>"&gt;<b>Taskname</b>&lt;/a&gt;&lt;/h2&gt;
+&lt;h3&gt;Description&lt;/h3&gt;
+&lt;p&gt; <b>Describe the task.</b>&lt;/p&gt;
+
+&lt;h3&gt;Parameters&lt;/h3&gt;
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;&lt;b&gt;Attribute&lt;/b&gt;&lt;/td&gt;
+    &lt;td valign="top"&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;&lt;b&gt;Required&lt;/b&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+
+  <b>do this html row for each attribute (including inherited attributes)</b>
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;classname&lt;/td&gt;
+    &lt;td valign="top"&gt;the Java class to execute.&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;Either jar or classname&lt;/td&gt;
+  &lt;/tr&gt;
+
+&lt;/table&gt;
+
+&lt;h3&gt;Parameters specified as nested elements&lt;/h3&gt;
+
+<b>Describe each nested element (including inherited)</b>
+&lt;h4&gt;your nested element</b>&lt;/h4&gt;
+&lt;p&gt; <b>description</b> &lt;/p&gt;
+&lt;p&gt;&lt;em&gt;since Ant 1.6&lt;/em&gt;.&lt;/p&gt;
+
+&lt;h3&gt;Examples&lt;/h3&gt;
+&lt;pre&gt;
+    <b>A code sample; don't forget to escape the &lt; of the tags with &amp;lt;</b>
+&lt;/pre&gt;
+<b>what should that example do?</b>
+
+&lt;/body&gt;
+&lt;/html&gt;
+</pre>
+
+<p>For our task we have <a href="CoreTasks/find.html">that [6]</a>:</p>
+<pre class="code">
+&lt;html&gt;
+
+&lt;head&gt;
+&lt;meta http-equiv="Content-Language" content="en-us"&gt;
+&lt;title&gt; Find Task&lt;/title&gt;
+&lt;/head&gt;
+
+&lt;body&gt;
+
+&lt;h2&gt;&lt;a name="find"&gt;Find&lt;/a&gt;&lt;/h2&gt;
+&lt;h3&gt;Description&lt;/h3&gt;
+&lt;p&gt;Searchs in a given path for a file and returns the absolute to it as property.
+If delimiter is set this task returns all found locations.&lt;/p&gt;
+
+&lt;h3&gt;Parameters&lt;/h3&gt;
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;&lt;b&gt;Attribute&lt;/b&gt;&lt;/td&gt;
+    &lt;td valign="top"&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;&lt;b&gt;Required&lt;/b&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;file&lt;/td&gt;
+    &lt;td valign="top"&gt;The name of the file to search.&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;yes&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;location&lt;/td&gt;
+    &lt;td valign="top"&gt;The name of the property where to store the location&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;yes&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;delimiter&lt;/td&gt;
+    &lt;td valign="top"&gt;A delimiter to use when returning the list&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;only if the list is required&lt;/td&gt;
+  &lt;/tr&gt;
+&lt;/table&gt;
+
+&lt;h3&gt;Parameters specified as nested elements&lt;/h3&gt;
+
+&lt;h4&gt;path&lt;/h4&gt;
+&lt;p&gt;The path where to search the file.&lt;/p&gt;
+
+&lt;h3&gt;Examples&lt;/h3&gt;
+&lt;pre&gt;
+    &lt;find file="ant.jar" location="loc"&gt;
+        &lt;path&gt;
+            &lt;fileset dir="${ant.home}"/&gt;
+        &lt;path&gt;
+    &lt;/find&gt;
+&lt;/pre&gt;
+Searches in Ants home directory for a file &lt;i&gt;ant.jar&lt;/i&gt; and stores its location in
+property &lt;i&gt;loc&lt;/i&gt; (should be ANT_HOME/bin/ant.jar).
+
+&lt;pre&gt;
+    &lt;find file="ant.jar" location="loc" delimiter=";"&gt;
+        &lt;path&gt;
+            &lt;fileset dir="C:/"/&gt;
+        &lt;path&gt;
+    &lt;/find&gt;
+    &lt;echo&gt;ant.jar found in: ${loc}&lt;/echo&gt;
+&lt;/pre&gt;
+Searches in Windows C: drive for all &lt;i&gt;ant.jar&lt;/i&gt; and stores their locations in
+property &lt;i&gt;loc&lt;/i&gt; delimited with &lt;i&gt;';'&lt;/i&gt;. (should need a long time :-)
+After that it prints out the result (e.g. C:/ant-1.5.4/bin/ant.jar;C:/ant-1.6/bin/ant.jar).
+
+&lt;/body&gt;
+&lt;/html&gt;
+</pre>
+
+
+<h2><a name="contribute">Contribute the new task</a></h2>
+If we decide to contribute our task, we should do some things:<ul>
+<li>is our task welcome? :-) Simply ask on the user list</li>
+<li>is the right package used? </li>
+<li>is the code conform to the styleguide?</li>
+<li>do all tests pass? </li>
+<li>does the code compile on JDK 1.2 (and passes all tests there)?</li>
+<li>code under Apache license</li>
+<li>create a patch file</li>
+<li>publishing that patch file</li>
+</ul>
+The <a href="../ant_task_guidelines.html">Ant Task Guidelines [7]</a> support additional
+information on that.</p>
+
+<p>Now we will check the "Checklist before submitting a new task" described in that guideline.
+<ul>
+<li>Java file begins with Apache license statement. <b><i>must do that</i></b></li>
+<li>Task does not depend on GPL or LGPL code. <b><i>ok</i></b></li>
+<li>Source code complies with style guidelines <b><i>have to check (checkstyle)</i></b></li>
+<li>Code compiles and runs on Java1.2 <b><i>have to try</i></b></li>
+<li>Member variables are private, and provide public accessor methods
+        if access is actually needed. <b><i>have to check (checkstyle)</i></b></li>
+<li><i>Maybe</i> Task has failonerror attribute to control failure behaviour <b><i>hasn't</i></b></li>
+<li>New test cases written and succeed <b><i>passed on JDK 1.4, have to try on JDK 1.2</i></b></li>
+<li>Documentation page written <b><i>ok</i></b></li>
+<li>Example task declarations in the documentation tested. <b><i>ok (used in tests)</i></b></li>
+<li>Patch files generated using cvs diff -u <b><i>to do</i></b></li>
+<li>patch files include a patch to defaults.properties to register the
+tasks <b><i>to do</i></b></li>
+<li>patch files include a patch to coretasklist.html or
+optionaltasklist.html to link to the new task page <b><i>to do</i></b></li>
+<li>Message to dev contains [SUBMIT] and task name in subject <b><i>to do</i></b></li>
+<li>Message body contains a rationale for the task <b><i>to do</i></b></li>
+<li>Message attachments contain the required files -source, documentation,
+test and patches zipped up to escape the HTML filter. <b><i>to do</i></b></li>
+</ul>
+
+
+<h3>Package / Directories</h3>
+<p>This task does not depend on any external library. Therefore we can use this as
+a core task. This task contains only one class. So we can use the standard package
+for core tasks: <tt>org.apache.tools.ant.taskdefs</tt>. Implementations are in the
+directory <tt>src/main</tt>, tests in <tt>src/testcases</tt> and buildfiles for
+tests in <tt>src/etc/testcases</tt>.</p>
+
+<p>Now we integrate our work into Ants distribution. So first we do an update of our
+cvs tree. If not done yet, you have to checkout the ant module from Apaches cvs server
+as described in <a href="http://ant.apache.org/cvs.html">Access the Source Tree (AnonCVS)
+[8]</a> (password is <i>anoncvs</i>):<pre class="output">
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login                 //1
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout ant          //2
+</pre>
+If you have a local copy of Ants sources just do an update
+<pre class="output">
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
+cd ant                                                                       //3
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic update                //4
+</pre></p>
+
+<p>We use the <i>-d</i> flag on <b>//1</b> to specifiy the cvs directory. You can
+specify the environment variable CVSROOT with that value and after that you havenï¿œt
+to use that flag any more. On <b>//2</b> we get the whole cvs tree of ant. (Sorry,
+but that uses a lot of time ... 10 up to 30 minutes are not unusual ... but this has
+to be done only once :-). A cvs update doesn't use a modulename but you have to be
+inside the directory. Therefore we go into that on <b>//3</b> and do the update
+on <b>//4</b>.</p>
+
+<p>Now we will build our Ant distribution and do a test. So we can see if there
+are any tests failing on our machine. (We can ignore these failing tests on later
+steps; windows syntax used here- translate to xNIX if needed):
+<pre class="output">
+ANTHOME&gt; build                                                    // 1
+ANTHOME&gt; set ANT_HOME=%CD%\dist                                   // 2
+ANTHOME&gt; ant test -Dtest.haltonfailure=false                      // 3
+</pre>
+
+First we have to build our Ant distribution (<b>//1</b>). On <b>//2</b> we set the ANT_HOME
+environment variable to the directory where the new created distribution is stored
+(%CD% is expanded to the current directory on Windows 2000 and XP, on 9x and NT
+write it out). On <b>//3</b> we let Ant do all the tests (which enforced a compile
+of all tests) without stopping on first failure.</p>
+
+<p>Next we apply our work onto Ants sources. Because we haven't modified any, this is
+a relative simple step. <i>(Because I have a local copy of Ant and usually contribute my
+work, I work on the local copy just from the beginning. The advantage: this step isn't
+necessary and saves a lot of work if you modify existing source :-)</i>.
+
+<ul>
+<li>move the Find.java to ANTHOME/src/main/org/apache/tools/ant/taskdefs/Find.java </li>
+<li>move the FindTest.java to ANTHOME/src/testcases/org/apache/tools/ant/taskdefs/FindTest.java </li>
+<li>move the build.xml to ANTHOME/src/etc/testcases/taskdefs/<b>find.xml</b> (!!! renamed !!!)</li>
+<li>add a <tt>package org.apache.tools.ant.taskdefs;</tt> at the beginning of the two java files </li>
+<li>delete all stuff from find.xml keeping the targets "testFileNotPresent", "testFilePresent",
+    "test.init" and "testMultipleFiles" </li>
+<li>delete the dependency to "use.init" in the find.xml </li>
+<li>in FindTest.java change the line <tt>configureProject("build.xml");</tt> to
+    <tt>configureProject("src/etc/testcases/taskdefs/find.xml");</tt> </li>
+<li>move the find.html to ANTHOME/docs/manual/CoreTasks/find.html </li>
+<li>add a <tt>&lt;a href="CoreTasks/find.html"&gt;Find&lt;/a&gt;&lt;br&gt;</tt>
+    in the ANTHOME/docs/manual/coretasklist.html </li>
+</ul>
+
+Now our modifications are done and we will retest it:
+<pre class="output">
+ANTHOME&gt; build
+ANTHOME&gt; ant run-single-test                                      // 1
+             -Dtestcase=org.apache.tools.ant.taskdefs.FindTest    // 2
+             -Dtest.haltonfailure=false
+</pre>
+Because we only want to test our new class, we use the target for single tests, specify
+the test to use and configure not to halt on the first failure - we want to see all
+failures of our own test (<b>//1 + 2</b>).</p>
+
+<p>And ... oh, all tests fail: <i>Ant could not find the task or a class this task relies upon.</i></p>
+
+<p>Ok: in the earlier steps we told Ant to use the Find class for the <code>&lt;find&gt;</code> task (remember the
+<code>&lt;taskdef&gt;</code> statement in the "use.init" target). But now we want to introduce that task as
+a core task. And nobody wants to taskdef the javac, echo, ... So what to do? The answer is the
+src/main/.../taskdefs/default.properties. Here is the mapping between taskname and implementing
+class done. So we add a <tt>find=org.apache.tools.ant.taskdefs.Find</tt> as the last core
+task (just before the <tt># optional tasks</tt> line). Now a second try:
+<pre class="output">
+ANTHOME&gt; build                                                    // 1
+ANTHOME&gt; ant run-single-test
+             -Dtestcase=org.apache.tools.ant.taskdefs.FindTest
+             -Dtest.haltonfailure=false
+</pre>
+We have to rebuild (<b>//1</b>) Ant because the test look in the %ANT_HOME%\lib\ant.jar
+(more precise: on the classpath) for the properties file. And we have only modified it in the
+source path. So we have to rebuild that jar. But now all tests pass and we check whether our class
+breaks some other tests.
+<pre class="output">
+ANTHOME&gt; ant test -Dtest.haltonfailure=false
+</pre>
+Because there are a lot of tests this step requires a little bit of time. So use the <i>run-single-test</i>
+during development and do the <i>test</i> only at the end (maybe sometimes during development too).
+We use the <i>-Dtest.haltonfailure=false</i> here because there could be other tests fail and we have
+to look into them.</p>
+
+<p>This test run should show us two things: our test will run and the number of failing tests
+is the same as directly after the cvs update (without our modifications).</p>
+
+
+
+<h3>Apache license statement</h3>
+<p>Simply copy the license text from one the other source from the Ant source tree.</p>
+
+
+<h3>Test on JDK 1.2</h3>
+<p>Until version 1.5 Ant must be able to run on a JDK 1.1. With version 1.6 this is not a
+requisite any more. But JDK 1.2 is a must-to-work-with. So we have to test that. You can download older
+JDKs from <a href="http://java.sun.com/products/archive/index.html">Sun [9]</a>.</p>
+
+<p>Clean the ANT_HOME variable, delete the <i>build, bootstrap</i> and <i>dist</i> directory
+and point JAVA_HOME to the JDK 1.2 home directory. Then do the <tt>build</tt>, set ANT_HOME
+and run <tt>ant test</tt> (like above).</p>
+
+<p>Our test should pass.</p>
+
+
+
+<h3>Checkstyle</h3>
+<p>There are many things we have to ensure. Indentation with 4 spaces, blanks here and there, ...
+(all described in the <a href="../ant_task_guidelines.html">Ant Task Guidelines [7]</a> which
+includes the <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">Sun code style
+[10]</a>). Because there are so many things we would be happy to have a tool for do the checks.
+There is one: checkstyle. Checkstyle is available at <a href="http://checkstyle.sourceforge.net/">
+Sourceforge [11]</a> and Ant provides with the <tt>check.xml</tt> a buildfile which will do the job
+for us.</p>
+
+<p>Download it and put the checkstyle-*-all.jar into your %USERPROFILE%\.ant\lib directory.
+All jar's stored there are available to Ant so you haven't to add it to you %ANT_HOME%\lib
+directory (this feature was added with Ant 1.6).</p>
+
+<p>So we will run the tests with
+<pre class="output">
+ANTHOME&gt; ant -f check.xml checkstyle htmlreport
+</pre>
+I prefer the HTML report because there are lots of messages and we can navigate faster.
+Open the ANTHOME/build/reports/checkstyle/html/index.html and navigate to the Find.java. Now we
+see that there are some errors: missing whitespaces, unused imports, missing javadocs. So we have
+to do that.</p>
+
+<p>Hint: start at the <b>buttom</b> of the file so the line numbers in the report will keep
+up to date and you will find the next error place much more easier without redoing the checkstyle.</p>
+
+<p>After cleaning up the code according to the messages we delete the reports directory and
+do a second checkstyle run. Now our task isn't listed. That's fine :-)</p>
+
+
+
+<!--
+  Couldnt create the diff that way for myself, but that should be documented.
+  But on the other hand this tutorial should not be forgotten any longer so I
+  comment that out.  JHM
+<h3>Creating the diff</h3>
+<p>Creating a diff for Ant is very easy: just start <tt>ant -f patch.xml</tt> and all is done
+automatically. This step requires a cvs executable in your path and internet access (more precise:
+cvs access). As a result we get a file <i> XXX </i>.</p>
+-->
+
+
+<h3>Publish the task</h3>
+<p>Finally we publish that archive. As described in the <a href="../ant_task_guidelines.html">
+Ant Task Guidelines [7]</a> we can post it on the developer mailinglist or we create a BugZilla
+entry. For both we need some information:</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <th>subject</th>
+  <td><i>short description</i></td>
+  <td>Task for finding files in a path</td>
+</tr>
+<tr>
+  <th>body</th>
+  <td><i>more details about the path</i></td>
+  <td>This new task looks inside a nested <code>&lt;path/&gt;</code> for occurrences of a file and stores
+      all locations as a property. See the included manual for details.</td>
+</tr>
+<tr>
+  <th>attachements</th>
+  <td><i>all files needed to apply the path</td>
+  <td>Archive containing a patch with the new and modified resources</td>
+</tr>
+</table>
+
+<p>Sending an email with these information is very easy and I think I haven't to show that.
+The other way - BugZilla - is slightly more difficult. But it has the advantage that entries
+will not be forgotten (once per week a report is generated). So I will show this way.</p>
+
+<p>You must have a BugZilla account for that. So open the <a href="http://issues.apache.org/bugzilla/">
+BugZilla Main Page [12]</a> and follow the link
+<a href="http://issues.apache.org/bugzilla/createaccount.cgi">Open a new Bugzilla account [13]</a>
+and the steps described there if you haven't one.</p>
+
+<ol>
+<li>From the BugZilla main page choose <a href="http://issues.apache.org/bugzilla/enter_bug.cgi">Enter
+    a new bug report [14]</a></li>
+<li>Choose "Ant" as product </li>
+<li>Version is the last "Alpha (nightly)" (at this time 1.7)</li>
+<li>Component is "Core tasks"</li>
+<li>Plattform and Severity are ok with "Other" and "Normal"</li>
+<li>Initial State is ok with "New"</li>
+<li>Same with the empy "Assigned to"</li>
+<li>It is not required to add yourself as CC, because you are the reporter and therefore will be
+    informed on changes</li>
+<li>URL: no url required</li>
+<li>Summary: add the <i>subject</i> from the table</li>
+<li>Description: add the <i>body</i> from the table</li>
+<li>Then press "Commit"</li>
+<li>After redirecting to the new created bug entry click "Create a New Attachment"</li>
+<li>Enter the path to your local path file into "File" or choose it via the "File"'s
+    button.</li>
+<li>Enter a short description into "Description", so that you could guess, what the
+    path file includes. Here we could add "Initial Patch".</li>
+<li>The "Content Type" is "auto-detect". You could use the "patch" type, if you only
+    provide a single path file, but we want do upload more that one, included in our
+    patch.zip.</li>
+<li>Then press "Commit"</li>
+</ol>
+Now the new task is uploaded into the bug database.
+
+
+<h2><a name="resources">Resources</a></h2>
+&nbsp;&nbsp;[1] <a href="tutorial-writing-tasks.html">tutorial-writing-tasks.html</a><br>
+&nbsp;&nbsp;[2] <a href="tutorial-tasks-filesets-properties.zip">tutorial-tasks-filesets-properties.zip</a><br>
+&nbsp;&nbsp;[3] <a href="using.html#built-in-props">using.html#built-in-props</a><br>
+&nbsp;&nbsp;[4] <a href="http://ant-contrib.sourceforge.net/">http://ant-contrib.sourceforge.net/</a><br>
+&nbsp;&nbsp;[5] <a href="CoreTasks/java.html">CoreTasks/java.html</a><br>
+&nbsp;&nbsp;[6] <a href="CoreTasks/find.html">CoreTasks/find.html</a><br>
+&nbsp;&nbsp;[7] <a href="../ant_task_guidelines.html">../ant_task_guidelines.html</a><br>
+&nbsp;&nbsp;[8] <a href="http://ant.apache.org/cvs.html">http://ant.apache.org/cvs.html</a><br>
+&nbsp;&nbsp;[9] <a href="http://java.sun.com/products/archive/index.html">http://java.sun.com/products/archive/index.html</a><br>
+&nbsp;&nbsp;[10] <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html</a><br>
+&nbsp;&nbsp;[11] <a href="http://checkstyle.sourceforge.net/">http://checkstyle.sourceforge.net/</a><br>
+&nbsp;&nbsp;[12] <a href="http://issues.apache.org/bugzilla/">http://issues.apache.org/bugzilla/</a><br>
+&nbsp;&nbsp;[13] <a href="http://issues.apache.org/bugzilla/createaccount.cgi">http://issues.apache.org/bugzilla/createaccount.cgi</a><br>
+&nbsp;&nbsp;[14] <a href="http://issues.apache.org/bugzilla/enter_bug.cgi">http://issues.apache.org/bugzilla/enter_bug.cgi</a><br>
+
+
+<!--
+  TODO:
+  - how to create a path (path.xml / command line)
+-->
+
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/tutorial-writing-tasks.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/tutorial-writing-tasks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/tutorial-writing-tasks.html	(revision 14989)
@@ -0,0 +1,774 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+  <title>Tutorial: Writing Tasks</title>
+  <meta name="author" content="Jan Matï¿œne">
+   <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+  <style type="text/css">
+  <!--
+  .code { background: #EFEFEF; margin-top: }
+  .output { color: #FFFFFF; background: #837A67; }
+  -->
+  </style>
+</head>
+<body>
+<h1>Tutorial: Writing Tasks</h1>
+
+<p>This document provides a step by step tutorial for writing
+tasks.</p>
+<h2>Content</h2>
+<p><ul>
+<li><a href="#buildenvironment">Set up the build environment</a></li>
+<li><a href="#write1">Write the Task</a></li>
+<li><a href="#use1">Use the Task</a></li>
+<li><a href="#TaskAdapter">Integration with TaskAdapter</a></li>
+<li><a href="#derivingFromTask">Deriving from Ant's Task</a></li>
+<li><a href="#attributes">Attributes</a></li>
+<li><a href="#NestedText">Nested Text</a></li>
+<li><a href="#NestedElements">Nested Elements</a></li>
+<li><a href="#complex">Our task in a little more complex version</a></li>
+<li><a href="#TestingTasks">Test the Task</a></li>
+<li><a href="#resources">Resources</a></li>
+</ul></p>
+
+<a name="buildenvironment"></a>
+<h2>Set up the build environment</h2>
+<p>Ant builds itself, we are using Ant too (why we would write
+a task if not? :-) therefore we should use Ant for our build.<p>
+<p>We choose a directory as root directory. All things will be done
+here if I say nothing different. I will reference this directory
+as <i>root-directory</i> of our project. In this root-directory we
+create a text file names <i>build.xml</i>. What should Ant do for us?
+<ul>
+<li>compiles my stuff</li>
+<li>make the jar, so that I can deploy it</li>
+<li>clean up everything</li>
+</ul>
+So the buildfile contains three targets.
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="MyTask" basedir="." default="jar"&gt;
+
+    &lt;target name="clean" description="Delete all generated files"&gt;
+        &lt;delete dir="classes"/&gt;
+        &lt;delete file="MyTasks.jar"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile" description="Compiles the Task"&gt;
+        &lt;javac srcdir="src" destdir="classes"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar" description="JARs the Task"&gt;
+        &lt;jar destfile="MyTask.jar" basedir="classes"/&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre>
+
+This buildfile uses often the same value (src, classes, MyTask.jar), so we should rewrite that
+using <code>&lt;property&gt;</code>s. On second there are some handicaps: <code>&lt;javac&gt;</code> requires that the destination
+directory exists; a call of "clean" with a non existing classes directory will fail; "jar" requires
+the execution of some steps bofore. So the refactored code is:
+
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="MyTask" basedir="." default="jar"&gt;
+
+    <b>&lt;property name="src.dir" value="src"/&gt;</b>
+    <b>&lt;property name="classes.dir" value="classes"/&gt;</b>
+
+    &lt;target name="clean" description="Delete all generated files"&gt;
+        &lt;delete dir="<b>${classes.dir}</b>" <b>failonerror="false"</b>/&gt;
+        &lt;delete file="<b>${ant.project.name}.jar</b>"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile" description="Compiles the Task"&gt;
+        <b>&lt;mkdir dir="${classes.dir}"/&gt;</b>
+        &lt;javac srcdir="<b>${src.dir}</b>" destdir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar" description="JARs the Task" <b>depends="compile"</b>&gt;
+        &lt;jar destfile="${ant.project.name}.jar" basedir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre>
+<i>ant.project.name</i> is one of the
+<a href="http://ant.apache.org/manual/using.html#built-in-props" target="_blank">
+build-in properties [1]</a> of Ant.
+
+
+<a name="write1"></a>
+<h2>Write the Task</h2>
+
+Now we write the simplest Task - a HelloWorld-Task (what else?). Create a text file
+<i>HelloWorld.java</i> in the src-directory with:
+<pre class="code">
+public class HelloWorld {
+    public void execute() {
+        System.out.println("Hello World");
+    }
+}
+</pre>
+and we can compile and jar it with <tt>ant</tt> (default target is "jar" and via
+its <i>depends</i>-clause the "compile" is executed before).
+
+
+
+<a name="use1"></a>
+<h2>Use the Task</h2>
+<p>But after creating the jar we want to use our new Task. Therefore we need a
+new target "use". Before we can use our new task we have to declare it with
+<a href="http://ant.apache.org/manual/CoreTasks/taskdef.html" target="_blank">
+<code>&lt;taskdef&gt;</code> [2]</a>. And for easier process we change the default clause:
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="MyTask" basedir="." default="<b>use</b>"&gt;
+
+    ...
+
+    <b>&lt;target name="use" description="Use the Task" depends="jar"&gt;
+        &lt;taskdef name="helloworld" classname="HelloWorld" classpath="${ant.project.name}.jar"/&gt;
+        &lt;helloworld/&gt;
+    &lt;/target&gt;</b>
+
+&lt;/project&gt;
+</pre>
+
+Important is the <i>classpath</i>-attribute. Ant searches in its /lib directory for
+tasks and our task isn't there. So we have to provide the right location. </p>
+
+<p>Now we can type in <tt>ant</tt> and all should work ...
+<pre class="output">
+Buildfile: build.xml
+
+compile:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes
+    [javac] Compiling 1 source file to C:\tmp\anttests\MyFirstTask\classes
+
+jar:
+      [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar
+
+use:
+[helloworld] Hello World
+
+BUILD SUCCESSFUL
+Total time: 3 seconds
+</pre>
+
+
+
+<a name="TaskAdapter"></a>
+<h2>Integration with TaskAdapter</h2>
+<p>Our class has nothing to do with Ant. It extends no superclass and implements
+no interface. How does Ant know to integrate? Via name convention: our class provides
+a method with signature <tt>public void execute()</tt>. This class is wrapped by Ant's
+<tt>org.apache.tools.ant.TaskAdapter</tt> which is a task and uses reflection for
+setting a reference to the project and calling the <i>execute()</i> method.</p>
+
+<p><i>Setting a reference to the project</i>? Could be interesting. The Project class
+gives us some nice abilities: access to Ant's logging facilities getting and setting
+properties and much more. So we try to use that class:
+<pre class="code">
+import org.apache.tools.ant.Project;
+
+public class HelloWorld {
+
+    private Project project;
+
+    public void setProject(Project proj) {
+        project = proj;
+    }
+
+    public void execute() {
+        String message = project.getProperty("ant.project.name");
+        project.log("Here is project '" + message + "'.", Project.MSG_INFO);
+    }
+}
+</pre>
+and the execution with <tt>ant</tt> will show us the expected
+<pre class="output">
+use:
+Here is project 'MyTask'.
+</pre></p>
+
+
+<a name="derivingFromTask"></a>
+<h2>Deriving from Ant's Task</h2>
+<p>Ok, that works ... But usually you will extend <tt>org.apache.tools.ant.Task</tt>.
+That class is integrated in Ant, get's the project-reference, provides documentation
+fiels, provides easier access to the logging facility and (very useful) gives you
+the exact location where <i>in the buildfile</i> this task instance is used.</p>
+
+<p>Oki-doki - let's us use some of these:
+<pre class="code">
+import org.apache.tools.ant.Task;
+
+public class HelloWorld extends Task {
+    public void execute() {
+        // use of the reference to Project-instance
+        String message = getProject().getProperty("ant.project.name");
+
+        // Task's log method
+        log("Here is project '" + message + "'.");
+
+        // where this task is used?
+        log("I am used in: " +  getLocation() );
+    }
+}
+</pre>
+which gives us when running
+<pre class="output">
+use:
+[helloworld] Here is project 'MyTask'.
+[helloworld] I am used in: C:\tmp\anttests\MyFirstTask\build.xml:23:
+</pre>
+
+
+<a name="attributes"></a>
+<h2>Attributes</h2>
+<p>Now we want to specify the text of our message (it seems that we are
+rewriting the <code>&lt;echo/&gt;</code> task :-). First we well do that with an attribute.
+It is very easy - for each attribute provide a <tt>public void set<code>&lt;attributename&gt;</code>(<code>&lt;type&gt;</code>
+newValue)</tt> method and Ant will do the rest via reflection.</p>
+<pre class="code">
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.BuildException;
+
+public class HelloWorld extends Task {
+
+    String message;
+    public void setMessage(String msg) {
+        message = msg;
+    }
+
+    public void execute() {
+        if (message==null) {
+            throw new BuildException("No message set.");
+        }
+        log(message);
+    }
+
+}
+</pre>
+<p>Oh, what's that in execute()? Throw a <i>BuildException</i>? Yes, that's the usual
+way to show Ant that something important is missed and complete build should fail. The
+string provided there is written as build-failes-message. Here it's necessary because
+the log() method can't handle a <i>null</i> value as parameter and throws a NullPointerException.
+(Of course you can initialize the <i>message</i> with a default string.)</p>
+
+<p>After that we have to modify our buildfile:
+<pre class="code">
+    &lt;target name="use" description="Use the Task" depends="jar"&gt;
+        &lt;taskdef name="helloworld"
+                 classname="HelloWorld"
+                 classpath="${ant.project.name}.jar"/&gt;
+        &lt;helloworld <b>message="Hello World"</b>/&gt;
+    &lt;/target&gt;
+</pre>
+That's all.</p>
+
+<p>Some background for working with attributes: Ant supports any of these datatypes as
+arguments of the set-method:<ul>
+<li>elementary data type like <i>int</i>, <i>long</i>, ...</li>
+<li>its wrapper classes like <i>java.lang.Integer</i>, <i>java.lang.Long</i>, ...</li>
+<li><i>java.lang.String</i></li>
+<li>some more classes (e.g. <i>java.io.File</i>; see
+    <a href="http://ant.apache.org/manual/develop.html#set-magic">Manual
+    'Writing Your Own Task' [3]</a>)</li>
+</ul>
+Before calling the set-method all properties are resolved. So a <tt>&lt;helloworld message="${msg}"/&gt;</tt>
+would not set the message string to "${msg}" if there is a property "msg" with a set value.
+
+
+<a name="NestedText"></a>
+<h2>Nested Text</h2>
+<p>Maybe you have used the <code>&lt;echo&gt;</code> task in a way like <tt>&lt;echo&gt;Hello World&lt;/echo&gt;</tt>.
+For that you have to provide a <tt>public void addText(String text)</tt> method.
+<pre class="code">
+...
+public class HelloWorld extends Task {
+    ...
+    public void addText(String text) {
+        message = text;
+    }
+    ...
+}
+</pre>
+But here properties are <b>not</b> resolved! For resolving properties we have to use
+Project's <tt>replaceProperties(String propname) : String</tt> method which takes the
+property name as argument and returns its value (or ${propname} if not set).</p>
+
+
+<a name="NestedElements"></a>
+<h2>Nested Elements</h2>
+<p>There are several ways for inserting the ability of handling nested elements. See
+the <a href="http://ant.apache.org/manual/develop.html#nested-elements">Manual [4]</a> for other.
+We use the first way of the three described ways. There are several steps for that:<ol>
+<li>We create a class for collecting all the infos the nested element should contain.
+  This class is created by the same rules for attributes and nested elements
+  as for the task (<code>set&lt;attributename&gt;</code>() methods). </li>
+<li>The task holds multiple instances of this class in a list.</li>
+<li>A factory method instantiates an object, saves the reference in the list
+  and returns it to Ant Core.</li>
+<li>The execute() method iterates over the list and evaluates its values.</li>
+</li></ol></p>
+<pre class="code">
+import java.util.Vector;
+import java.util.Iterator;
+...
+    public void execute() {
+        if (message!=null) log(message);
+        for (Iterator it=messages.iterator(); it.hasNext(); ) {      <b>// 4</b>
+            Message msg = (Message)it.next();
+            log(msg.getMsg());
+        }
+    }
+
+
+    Vector messages = new Vector();                                  <b>// 2</b>
+
+    public Message createMessage() {                                 <b>// 3</b>
+        Message msg = new Message();
+        messages.add(msg);
+        return msg;
+    }
+
+    public class Message {                                           <b>// 1</b>
+        public Message() {}
+
+        String msg;
+        public void setMsg(String msg) { this.msg = msg; }
+        public String getMsg() { return msg; }
+    }
+...
+</pre>
+<p>Then we can use the new nested element. But where is xml-name for that defined?
+The mapping XML-name : classname is defined in the factory method:
+<tt>public <i>classname</i> create<i>XML-name</i>()</tt>. Therefore we write in
+the buildfile
+<pre class="code">
+        &lt;helloworld&gt;
+            &lt;message msg="Nested Element 1"/&gt;
+            &lt;message msg="Nested Element 2"/&gt;
+        &lt;/helloworld&gt;
+</pre>
+
+
+<a name="complex"></a>
+<h2>Our task in a little more complex version</h2>
+<p>For recapitulation now a little refactored buildfile:
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="MyTask" basedir="." default="use"&gt;
+
+    &lt;property name="src.dir" value="src"/&gt;
+    &lt;property name="classes.dir" value="classes"/&gt;
+
+    &lt;target name="clean" description="Delete all generated files"&gt;
+        &lt;delete dir="${classes.dir}" failonerror="false"/&gt;
+        &lt;delete file="${ant.project.name}.jar"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile" description="Compiles the Task"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar" description="JARs the Task" depends="compile"&gt;
+        &lt;jar destfile="${ant.project.name}.jar" basedir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+
+    &lt;target name="use.init"
+            description="Taskdef the HelloWorld-Task"
+            depends="jar"&gt;
+        &lt;taskdef name="helloworld"
+                 classname="HelloWorld"
+                 classpath="${ant.project.name}.jar"/&gt;
+    &lt;/target&gt;
+
+
+    &lt;target name="use.without"
+            description="Use without any"
+            depends="use.init"&gt;
+        &lt;helloworld/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="use.message"
+            description="Use with attribute 'message'"
+            depends="use.init"&gt;
+        &lt;helloworld message="attribute-text"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="use.fail"
+            description="Use with attribute 'fail'"
+            depends="use.init"&gt;
+        &lt;helloworld fail="true"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="use.nestedText"
+            description="Use with nested text"
+            depends="use.init"&gt;
+        &lt;helloworld&gt;nested-text&lt;/helloworld&gt;
+    &lt;/target&gt;
+
+    &lt;target name="use.nestedElement"
+            description="Use with nested 'message'"
+            depends="use.init"&gt;
+        &lt;helloworld&gt;
+            &lt;message msg="Nested Element 1"/&gt;
+            &lt;message msg="Nested Element 2"/&gt;
+        &lt;/helloworld&gt;
+    &lt;/target&gt;
+
+
+    &lt;target name="use"
+            description="Try all (w/out use.fail)"
+            depends="use.without,use.message,use.nestedText,use.nestedElement"
+    /&gt;
+
+&lt;/project&gt;
+</pre>
+
+And the code of the task:
+<pre class="code">
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.BuildException;
+import java.util.Vector;
+import java.util.Iterator;
+
+/**
+ * The task of the tutorial.
+ * Print a message or let the build fail.
+ * @author Jan Matï¿œne
+ * @since 2003-08-19
+ */
+public class HelloWorld extends Task {
+
+
+    /** The message to print. As attribute. */
+    String message;
+    public void setMessage(String msg) {
+        message = msg;
+    }
+
+    /** Should the build fail? Defaults to <i>false</i>. As attribute. */
+    boolean fail = false;
+    public void setFail(boolean b) {
+        fail = b;
+    }
+
+    /** Support for nested text. */
+    public void addText(String text) {
+        message = text;
+    }
+
+
+    /** Do the work. */
+    public void execute() {
+        // handle attribute 'fail'
+        if (fail) throw new BuildException("Fail requested.");
+
+        // handle attribute 'message' and nested text
+        if (message!=null) log(message);
+
+        // handle nested elements
+        for (Iterator it=messages.iterator(); it.hasNext(); ) {
+            Message msg = (Message)it.next();
+            log(msg.getMsg());
+        }
+    }
+
+
+    /** Store nested 'message's. */
+    Vector messages = new Vector();
+
+    /** Factory method for creating nested 'message's. */
+    public Message createMessage() {
+        Message msg = new Message();
+        messages.add(msg);
+        return msg;
+    }
+
+    /** A nested 'message'. */
+    public class Message {
+        // Bean constructor
+        public Message() {}
+
+        /** Message to print. */
+        String msg;
+        public void setMsg(String msg) { this.msg = msg; }
+        public String getMsg() { return msg; }
+    }
+
+}
+</pre>
+
+And it works:
+<pre class="output">
+C:\tmp\anttests\MyFirstTask&gt;ant
+Buildfile: build.xml
+
+compile:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes
+    [javac] Compiling 1 source file to C:\tmp\anttests\MyFirstTask\classes
+
+jar:
+      [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar
+
+use.init:
+
+use.without:
+
+use.message:
+[helloworld] attribute-text
+
+use.nestedText:
+[helloworld] nested-text
+
+use.nestedElement:
+[helloworld]
+[helloworld]
+[helloworld]
+[helloworld]
+[helloworld] Nested Element 1
+[helloworld] Nested Element 2
+
+use:
+
+BUILD SUCCESSFUL
+Total time: 3 seconds
+C:\tmp\anttests\MyFirstTask&gt;ant use.fail
+Buildfile: build.xml
+
+compile:
+
+jar:
+
+use.init:
+
+use.fail:
+
+BUILD FAILED
+C:\tmp\anttests\MyFirstTask\build.xml:36: Fail requested.
+
+Total time: 1 second
+C:\tmp\anttests\MyFirstTask&gt;
+</pre>
+Next step: test ...
+
+
+
+<a name="TestingTasks"></a>
+<h2>Test the Task</h2>
+<p>We have written a test already: the use.* tasks in the buildfile. But its
+difficult to test that automatically. Common (and in Ant) used is JUnit for
+that. For testing tasks Ant provides a baseclass <tt>org.apache.tools.ant.BuildFileTest</tt>.
+This class extends <tt>junit.framework.TestCase</tt> and can therefore be integrated
+into the unit tests. But this class provides some for testing tasks useful methods:
+initialize Ant, load a buildfile, execute targets,
+expecting BuildExceptions with a specified text, expect a special text
+in the output log ... </p>
+
+<p>In Ant it is usual that the testcase has the same name as the task with a prepending
+<i>Test</i>, therefore we will create a file <i>HelloWorldTest.java</i>. Because we
+have a very small project we can put this file into <i>src</i> directory (Ant's own
+testclasses are in /src/testcases/...). Because we have already written our tests
+for "hand-test" we can use that for automatic tests, too. But there is one little
+problem we have to solve: all test supporting classes are not part of the binary
+distribution of Ant. So you can build the special jar file from source distro with
+target "test-jar" or you can download a nightly build from
+<a href="http://gump.covalent.net/jars/latest/ant/ant-testutil.jar">
+http://gump.covalent.net/jars/latest/ant/ant-testutil.jar [5]</a>.</p>
+
+<p>For executing the test and creating a report we need the optional tasks <code>&lt;junit&gt;</code>
+and <code>&lt;junitreport&gt;</code>. So we add to the buildfile:
+<pre class="code">
+...
+<font color="#9F9F9F">&lt;project name="MyTask" basedir="." </font>default="test"<font color="#9F9F9F">&gt;</font>
+...
+    &lt;property name="ant.test.lib" value="ant-testutil.jar"/&gt;
+    &lt;property name="report.dir"   value="report"/&gt;
+    &lt;property name="junit.out.dir.xml"  value="${report.dir}/junit/xml"/&gt;
+    &lt;property name="junit.out.dir.html" value="${report.dir}/junit/html"/&gt;
+
+    &lt;path id="classpath.run"&gt;
+        &lt;path path="${java.class.path}"/&gt;
+        &lt;path location="${ant.project.name}.jar"/&gt;
+    &lt;/path&gt;
+
+    &lt;path id="classpath.test"&gt;
+        &lt;path refid="classpath.run"/&gt;
+        &lt;path location="${ant.test.lib}"/&gt;
+    &lt;/path&gt;
+
+    &lt;target name="clean" description="Delete all generated files"&gt;
+        &lt;delete failonerror="false" includeEmptyDirs="true"&gt;
+            &lt;fileset dir="." includes="${ant.project.name}.jar"/&gt;
+            &lt;fileset dir="${classes.dir}"/&gt;
+            &lt;fileset dir="${report.dir}"/&gt;
+        &lt;/delete&gt;
+    &lt;/target&gt;
+
+    <font color="#9F9F9F">&lt;target name="compile" description="Compiles the Task"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}" </font>classpath="${ant.test.lib}"<font color="#9F9F9F">/&gt;
+    &lt;/target&gt;</font>
+...
+    &lt;target name="junit" description="Runs the unit tests" depends="jar"&gt;
+        &lt;delete dir="${junit.out.dir.xml}"/&gt;
+        &lt;mkdir  dir="${junit.out.dir.xml}"/&gt;
+        &lt;junit printsummary="yes" haltonfailure="no"&gt;
+            &lt;classpath refid="classpath.test"/&gt;
+            &lt;formatter type="xml"/&gt;
+            &lt;batchtest fork="yes" todir="${junit.out.dir.xml}"&gt;
+                &lt;fileset dir="${src.dir}" includes="**/*Test.java"/&gt;
+            &lt;/batchtest&gt;
+        &lt;/junit&gt;
+    &lt;/target&gt;
+
+    &lt;target name="junitreport" description="Create a report for the rest result"&gt;
+        &lt;mkdir dir="${junit.out.dir.html}"/&gt;
+        &lt;junitreport todir="${junit.out.dir.html}"&gt;
+            &lt;fileset dir="${junit.out.dir.xml}"&gt;
+                &lt;include name="*.xml"/&gt;
+            &lt;/fileset&gt;
+            &lt;report format="frames" todir="${junit.out.dir.html}"/&gt;
+        &lt;/junitreport&gt;
+    &lt;/target&gt;
+
+    &lt;target name="test"
+            depends="junit,junitreport"
+            description="Runs unit tests and creates a report"
+    /&gt;
+...
+</pre></p>
+
+<p>Back to the <i>src/HelloWorldTest.java</i>. We create a class extending
+<i>BuildFileTest</i> with String-constructor (JUnit-standard), a <i>setUp()</i>
+method initializing Ant and for each testcase (targets use.*) a <i>testXX()</i>
+method invoking that target.
+<pre class="code">
+import org.apache.tools.ant.BuildFileTest;
+
+public class HelloWorldTest extends BuildFileTest {
+
+    public HelloWorldTest(String s) {
+        super(s);
+    }
+
+    public void setUp() {
+        // initialize Ant
+        configureProject("build.xml");
+    }
+
+    public void testWithout() {
+        executeTarget("use.without");
+        assertEquals("Message was logged but should not.", getLog(), "");
+    }
+
+    public void testMessage() {
+        // execute target 'use.nestedText' and expect a message
+        // 'attribute-text' in the log
+        expectLog("use.message", "attribute-text");
+    }
+
+    public void testFail() {
+        // execute target 'use.fail' and expect a BuildException
+        // with text 'Fail requested.'
+        expectBuildException("use.fail", "Fail requested.");
+    }
+
+    public void testNestedText() {
+        expectLog("use.nestedText", "nested-text");
+    }
+
+    public void testNestedElement() {
+        executeTarget("use.nestedElement");
+        assertLogContaining("Nested Element 1");
+        assertLogContaining("Nested Element 2");
+    }
+}
+</pre></p>
+
+<p>When starting <tt>ant</tt> we'll get a short message to STDOUT and
+a nice HTML-report.
+<pre class="output">
+C:\tmp\anttests\MyFirstTask&gt;ant
+Buildfile: build.xml
+
+compile:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes
+    [javac] Compiling 2 source files to C:\tmp\anttests\MyFirstTask\classes
+
+jar:
+      [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar
+
+junit:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\report\junit\xml
+    [junit] Running HelloWorldTest
+    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 2,334 sec
+
+
+
+junitreport:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\report\junit\html
+[junitreport] Using Xalan version: Xalan Java 2.4.1
+[junitreport] Transform time: 661ms
+
+test:
+
+BUILD SUCCESSFUL
+Total time: 7 seconds
+C:\tmp\anttests\MyFirstTask&gt;
+</pre></p>
+
+
+<a name="resources"></a>
+<h2>Resources</h2>
+<p>This tutorial and its resources are available via
+<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22570">BugZilla [6]</a>.
+The ZIP provided there contains<ul>
+<li>this tutorial</li>
+<li>the buildfile (last version)</li>
+<li>the source of the task (last version)</li>
+<li>the source of the unit test (last version)</li>
+<li>the ant-testutil.jar (nightly build of 2003-08-18)</li>
+<li>generated classes</li>
+<li>generated jar</li>
+<li>generated reports</li>
+</ul>
+The last sources and the buildfile are also available
+<a href="tutorial-writing-tasks-src.zip">here [7]</a> inside the manual.
+</p>
+
+
+Used Links:<br>
+&nbsp;&nbsp;[1] <a href="http://ant.apache.org/manual/using.html#built-in-props">http://ant.apache.org/manual/using.html#built-in-props</a><br>
+&nbsp;&nbsp;[2] <a href="http://ant.apache.org/manual/CoreTasks/taskdef.html">http://ant.apache.org/manual/CoreTasks/taskdef.html</a><br>
+&nbsp;&nbsp;[3] <a href="http://ant.apache.org/manual/develop.html#set-magic">http://ant.apache.org/manual/develop.html#set-magic</a><br>
+&nbsp;&nbsp;[4] <a href="http://ant.apache.org/manual/develop.html#nested-elements">http://ant.apache.org/manual/develop.html#nested-elements</a><br>
+&nbsp;&nbsp;[5] <a href="http://gump.covalent.net/jars/latest/ant/ant-testutil.jar">http://gump.covalent.net/jars/latest/ant/ant-testutil.jar</a><br>
+&nbsp;&nbsp;[6] <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22570">http://issues.apache.org/bugzilla/show_bug.cgi?id=22570</a><br>
+&nbsp;&nbsp;[7] <a href="tutorial-writing-tasks-src.zip">tutorial-writing-tasks-src.zip</a><br>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/tutorials.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/tutorials.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/tutorials.html	(revision 14989)
@@ -0,0 +1,45 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Tutorials</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Tutorials</h3>
+
+<p><a href="tutorial-HelloWorldWithAnt.html">Hello World with Ant</a><br>
+A step by step tutorial for starting java programming with Ant.</p>
+
+<p><a href="tutorial-writing-tasks.html">Writing Tasks</a><br>
+A step by step tutorial for writing tasks.</p>
+
+<p><a href="tutorial-tasks-filesets-properties.html">Tasks using Properties, Filesets & Paths</a><br>
+How to get and set properties and how to use nested filesets and paths 
+while writing tasks. Finally it explains how to contribute tasks to Ant.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/using.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/using.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/using.html	(revision 14989)
@@ -0,0 +1,683 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Writing a Simple Buildfile</title>
+</head>
+
+<body>
+<h1>Using Ant</h1>
+<h2><a name="buildfile">Writing a Simple Buildfile</a></h2>
+<p>Ant's buildfiles are written in XML. Each buildfile contains one project
+and at least one (default) target. Targets contain task elements.
+Each task element of the buildfile can have an <code>id</code> attribute and
+can later be referred to by the value supplied to this. The value has
+to be unique. (For additional information, see the
+<a href="#tasks"> Tasks</a> section below.)</p>
+<h3><a name="projects">Projects</a></h3>
+<p>A <i>project</i> has three attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the project.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">default</td>
+    <td valign="top">the default target to use when no target is supplied.</td>
+    <td align="center" valign="top">No; however, <b>since Ant 1.6.0</b>,
+        every project includes an implicit target that contains any and
+        all top-level tasks and/or types. This target will always be
+        executed as part of the project's initialization, even when Ant is
+        run with the <a href="running.html#options">-projecthelp</a> option.
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the base directory from which all path calculations are
+      done. This attribute might be overridden by setting
+      the &quot;basedir&quot;
+      property beforehand. When this is done, it must be omitted in the
+      project tag. If neither the attribute nor the property have
+      been set, the parent directory of the buildfile will be used.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>Optionally, a description for the project can be provided as a
+top-level <code>&lt;description&gt;</code> element (see the <a
+href="CoreTypes/description.html">description</a> type).</p>
+
+<p>Each project defines one or more <i>targets</i>.
+A target is a set of <i>tasks</i> you want
+to be executed. When starting Ant, you can select which target(s) you
+want to have executed. When no target is given,
+the project's default is used.</p>
+
+<h3><a name="targets">Targets</a></h3>
+<p>A target can depend on other targets. You might have a target for compiling,
+for example, and a target for creating a distributable. You can only build a
+distributable when you have compiled first, so the distribute target
+<i>depends on</i> the compile target. Ant resolves these dependencies.</p>
+<p>It should be noted, however, that Ant's <code>depends</code> attribute
+only specifies the <i>order</i> in which targets should be executed - it
+does not affect whether the target that specifies the dependency(s) gets
+executed if the dependent target(s) did not (need to) run.
+</p>
+<p>Ant tries to execute the targets in the <code>depends</code>
+attribute in the order
+they appear (from left to right). Keep in mind that it is possible that a target
+can get executed earlier when an earlier target depends on it:</p>
+<blockquote>
+<pre>&lt;target name=&quot;A&quot;/&gt;
+&lt;target name=&quot;B&quot; depends=&quot;A&quot;/&gt;
+&lt;target name=&quot;C&quot; depends=&quot;B&quot;/&gt;
+&lt;target name=&quot;D&quot; depends=&quot;C,B,A&quot;/&gt;</pre>
+</blockquote>
+<p>Suppose we want to execute target D. From its
+<code>depends</code> attribute, you
+might think that first target C, then B and then A is executed.
+Wrong! C depends on B, and B depends on A, so first A is executed, then B, then C, and finally D.</p>
+<p>In a chain of dependencies stretching back from a given target such
+as D above, each target gets executed only once, even when more than
+one target depends on it. Thus, executing the D target will first
+result in C being called, which in turn will first call B, which in
+turn will first call A. After A, then B, then C have executed,
+execution returns to the dependency list of D, which will <u>not</u>
+call B and A, since they were already called in process of dependency
+resolution for C and B respectively as dependencies of D. Had no such
+dependencies been discovered in processing C and B, B and A would
+have been executed after C in processing D's dependency list.</p>
+<p>A target also has the ability to perform its execution if (or
+unless) a property has been set. This allows, for example, better
+control on the building process depending on the state of the system
+(java version, OS, command-line property defines, etc.).  To make a target
+<i>sense</i> this property, you should add the <code>if</code> (or
+<code>unless</code>) attribute with the name of the property that the target
+should react to. <strong>Note:</strong> Ant will only check whether
+the property has been set, the value doesn't matter.  A property set
+to the empty string is still an existing property.  For example:</p>
+<blockquote>
+  <pre>&lt;target name=&quot;build-module-A&quot; if=&quot;module-A-present&quot;/&gt;</pre>
+  <pre>&lt;target name=&quot;build-own-fake-module-A&quot; unless=&quot;module-A-present&quot;/&gt;</pre>
+</blockquote>
+<p>In the first example, if the <code>module-A-present</code>
+property is set (to any value, e.g. <i>false</i>), the target will be run. In the second
+example, if the <code>module-A-present</code> property is set
+(again, to any value), the target will not be run.
+</p>
+<p>Only one propertyname can be specified in the if/unless clause. If you want to check
+multiple conditions, you can use a dependend target for computing the result for the check:</p>
+<blockquote><pre>
+&lt;target name="myTarget" depends="myTarget.check" if="myTarget.run"&gt;
+    &lt;echo&gt;Files foo.txt and bar.txt are present.&lt;/echo&gt;
+&lt/target&gt;
+
+&lt;target name="myTarget.check"&gt;
+    &lt;condition property="myTarget.run"&gt;
+        &lt;and&gt;
+            &lt;available file="foo.txt"/&gt;
+            &lt;available file="bar.txt"/&gt;
+        &lt;/and&gt;
+    &lt;/condition&gt;
+&lt/target&gt;
+</pre></blockquote>
+<p>If no <code>if</code> and no <code>unless</code> attribute is present,
+the target will always be executed.</p>
+
+<p>
+<b>Important:</b> the <code>if</code> and <code>unless</code> attributes only
+enable or disable the target to which they are attached. They do not control
+whether or not targets that a conditional target depends upon get executed.
+In fact, they do not even get evaluated until the target is about to be executed,
+and all its predecessors have already run.
+
+<p>The optional <code>description</code> attribute can be used to provide a one-line description of this target, which is printed by the
+<nobr><code>-projecthelp</code></nobr> command-line option. Targets
+without such a description are deemed internal and will not be listed,
+unless either the <nobr><code>-verbose</code></nobr> or
+<nobr><code>-debug</code></nobr> option is used.
+</p>
+<p>It is a good practice to place your <a
+href="CoreTasks/tstamp.html">tstamp</a> tasks in a so-called
+<i>initialization</i> target, on which
+all other targets depend. Make sure that target is always the first one in
+the depends list of the other targets. In this manual, most initialization targets
+have the name <code>&quot;init&quot;</code>.</p>
+<p>If the depends attribute and the if/unless attribute are set, the depends attribute is
+executed first.</p>
+<p>A target has the following attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the target.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">depends</td>
+    <td valign="top">a comma-separated list of names of targets on which this
+      target depends.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">the name of the property that must be set in order for this
+      target to execute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">the name of the property that must not be set in order
+      for this target to execute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">a short description of this target's function.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+</p>
+
+<p>A target name can be any alphanumeric string valid in the encoding of the XML
+file. The empty string &quot;&quot; is in this set, as is
+comma &quot;,&quot; and space &quot; &quot;.
+Please avoid using these, as they will not be supported in future Ant versions
+because of all the confusion they cause. IDE support of unusual target names,
+or any target name containing spaces, varies with the IDE.</p>
+
+<p>Targets beginning with a hyphen such as <code>&quot;-restart&quot;</code>
+are valid, and can be used
+to name targets that should not be called directly from the command line.</p>
+
+<h3><a name="tasks">Tasks</a></h3>
+<p>A task is a piece of code that can be executed.</p>
+<p>A task can have multiple attributes (or arguments, if you prefer). The value
+of an attribute might contain references to a property. These references will be
+resolved before the task is executed.</p>
+<p>Tasks have a common structure:</p>
+<blockquote>
+  <pre>&lt;<i>name</i> <i>attribute1</i>=&quot;<i>value1</i>&quot; <i>attribute2</i>=&quot;<i>value2</i>&quot; ... /&gt;</pre>
+</blockquote>
+<p>where <i>name</i> is the name of the task,
+<i>attributeN</i> is the attribute name, and
+<i>valueN</i> is the value for this attribute.</p>
+<p>There is a set of <a href="coretasklist.html" target="navFrame">built-in tasks</a>, along with a
+number of
+<a href="optionaltasklist.html" target="navFrame"> optional tasks</a>, but it is also very
+easy to <a href="develop.html#writingowntask">write your own</a>.</p>
+<p>All tasks share a task name attribute. The value of
+this attribute will be used in the logging messages generated by
+Ant.</p>
+Tasks can be assigned an <code>id</code> attribute:
+<blockquote>
+<pre>&lt;<i>taskname</i> id="<i>taskID</i>" ... /&gt;</pre>
+</blockquote>
+where <i>taskname</i> is the name of the task, and <i>taskID</i> is
+a unique identifier for this task.
+You can refer to the
+corresponding task object in scripts or other tasks via this name.
+For example, in scripts you could do:
+<blockquote>
+<pre>
+&lt;script ... &gt;
+  task1.setFoo("bar");
+&lt;/script&gt;
+</pre>
+</blockquote>
+to set the <code>foo</code> attribute of this particular task instance.
+In another task (written in Java), you can access the instance via
+<code>project.getReference("task1")</code>.
+<p>
+Note<sup>1</sup>: If &quot;task1&quot; has not been run yet, then
+it has not been configured (ie., no attributes have been set), and if it is
+going to be configured later, anything you've done to the instance may
+be overwritten.
+</p>
+<p>
+Note<sup>2</sup>: Future versions of Ant will most likely <i>not</i>
+be backward-compatible with this behaviour, since there will likely be no
+task instances at all, only proxies.
+</p>
+
+<h3><a name="properties">Properties</a></h3>
+<p>A project can have a set of properties. These might be set in the buildfile
+by the <a href="CoreTasks/property.html">property</a> task, or might be set outside Ant. A
+property has a name and a value; the name is case-sensitive. Properties may be used in the value of
+task attributes. This is done by placing the property name between
+&quot;<code>${</code>&quot; and &quot;<code>}</code>&quot; in the
+attribute value. For example,
+if there is a &quot;builddir&quot; property with the value
+&quot;build&quot;, then this could be used in an attribute like this:
+<code>${builddir}/classes</code>.
+This is resolved at run-time as <code>build/classes</code>.</p>
+<p>In the event you should need to include this construct literally
+(i.e. without property substitutions), simply "escape" the '$' character
+by doubling it. To continue the previous example:
+<pre>  &lt;echo&gt;$${builddir}=${builddir}&lt;/echo&gt;</pre>
+will echo this message:
+<pre>  ${builddir}=build/classes</pre></p>
+<p>In order to maintain backward compatibility with older Ant releases,
+a single '$' character encountered apart from a property-like construct
+(including a matched pair of french braces) will be interpreted literally;
+that is, as '$'.  The "correct" way to specify this literal character,
+however, is by using the escaping mechanism unconditionally, so that "$$"
+is obtained by specifying "$$$$".  Mixing the two approaches yields
+unpredictable results, as "$$$" results in "$$".</p>
+
+<h3><a name="built-in-props">Built-in Properties</a></h3>
+<p>Ant provides access to all system properties as if they had been
+defined using a <code>&lt;property&gt;</code> task.
+For example, <code>${os.name}</code> expands to the
+name of the operating system.</p>
+<p>For a list of system properties see
+<a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/System.html#getProperties()">the Javadoc of System.getProperties</a>.
+</p>
+<p>In addition, Ant has some built-in properties:</p>
+<pre>
+basedir             the absolute path of the project's basedir (as set
+                    with the basedir attribute of <a href="#projects">&lt;project&gt;)</a>.
+ant.file            the absolute path of the buildfile.
+ant.version         the version of Ant
+ant.project.name    the name of the project that is currently executing;
+                    it is set in the name attribute of &lt;project&gt;.
+ant.java.version    the JVM version Ant detected; currently it can hold
+                    the values &quot;1.2&quot;, &quot;1.3&quot;, &quot;1.4&quot; and &quot;1.5&quot;.
+</pre>
+<p>There is also another property, but this is set by the launcher script and therefore
+maybe not set inside IDEs:</p>
+<pre>
+ant.home            home directory of Ant
+</pre>
+
+<a name="example"><h3>Example Buildfile</h3></a>
+<pre>
+&lt;project name=&quot;MyProject&quot; default=&quot;dist&quot; basedir=&quot;.&quot;&gt;
+    &lt;description&gt;
+        simple example build file
+    &lt;/description&gt;
+  &lt;!-- set global properties for this build --&gt;
+  &lt;property name=&quot;src&quot; location=&quot;src&quot;/&gt;
+  &lt;property name=&quot;build&quot; location=&quot;build&quot;/&gt;
+  &lt;property name=&quot;dist&quot;  location=&quot;dist&quot;/&gt;
+
+  &lt;target name=&quot;init&quot;&gt;
+    &lt;!-- Create the time stamp --&gt;
+    &lt;tstamp/&gt;
+    &lt;!-- Create the build directory structure used by compile --&gt;
+    &lt;mkdir dir=&quot;${build}&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;compile&quot; depends=&quot;init&quot;
+        description=&quot;compile the source &quot; &gt;
+    &lt;!-- Compile the java code from ${src} into ${build} --&gt;
+    &lt;javac srcdir=&quot;${src}&quot; destdir=&quot;${build}&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;dist&quot; depends=&quot;compile&quot;
+        description=&quot;generate the distribution&quot; &gt;
+    &lt;!-- Create the distribution directory --&gt;
+    &lt;mkdir dir=&quot;${dist}/lib&quot;/&gt;
+
+    &lt;!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file --&gt;
+    &lt;jar jarfile=&quot;${dist}/lib/MyProject-${DSTAMP}.jar&quot; basedir=&quot;${build}&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;clean&quot;
+        description=&quot;clean up&quot; &gt;
+    &lt;!-- Delete the ${build} and ${dist} directory trees --&gt;
+    &lt;delete dir=&quot;${build}&quot;/&gt;
+    &lt;delete dir=&quot;${dist}&quot;/&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+
+<p>Notice that we are declaring properties outside any target.  As of
+Ant 1.6 all tasks can be declared outside targets (earlier version
+only allowed <tt>&lt;property&gt;</tt>,<tt>&lt;typedef&gt;</tt> and
+<tt>&lt;taskdef&gt;</tt>).  When you do this they are evaluated before
+any targets are executed.  Some tasks will generate build failures if
+they are used outside of targets as they may cause infinite loops
+otherwise (<code>&lt;antcall&gt;</code> for example).</p>
+
+<p>
+We have given some targets descriptions; this causes the <tt>projecthelp</tt>
+invocation option to list them as public targets with the descriptions; the
+other target is internal and not listed.
+<p>
+Finally, for this target to work the source in the <tt>src</tt> subdirectory
+should be stored in a directory tree which matches the package names. Check the
+<tt>&lt;javac&gt;</tt> task for details.
+
+<a name="filters"><h3>Token Filters</h3></a>
+<p>A project can have a set of tokens that might be automatically expanded if
+found when a file is copied, when the filtering-copy behavior is selected in the
+tasks that support this. These might be set in the buildfile
+by the <a href="CoreTasks/filter.html">filter</a> task.</p>
+<p>Since this can potentially be a very harmful behavior,
+the tokens in the files <b>must</b>
+be of the form <code>@</code><i>token</i><code>@</code>, where
+<i>token</i> is the token name that is set
+in the <code>&lt;filter&gt;</code> task. This token syntax matches the syntax of other build systems
+that perform such filtering and remains sufficiently orthogonal to most
+programming and scripting languages, as well as with documentation systems.</p>
+<p>Note: If a token with the format <code>@</code><i>token</i><code>@</code>
+is found in a file, but no
+filter is associated with that token, no changes take place;
+therefore, no escaping
+method is available - but as long as you choose appropriate names for your
+tokens, this should not cause problems.</p>
+<p><b>Warning:</b> If you copy binary files with filtering turned on, you can corrupt the
+files. This feature should be used with text files <em>only</em>.</p>
+
+<h3><a name="path">Path-like Structures</a></h3>
+<p>You can specify <code>PATH</code>- and <code>CLASSPATH</code>-type
+references using both
+&quot;<code>:</code>&quot; and &quot;<code>;</code>&quot; as separator
+characters. Ant will
+convert the separator to the correct character of the current operating
+system.</p>
+<p>Wherever path-like values need to be specified, a nested element can
+be used. This takes the general form of:</p>
+<pre>
+    &lt;classpath&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+      &lt;pathelement location=&quot;lib/helper.jar&quot;/&gt;
+    &lt;/classpath&gt;
+</pre>
+<p>The <code>location</code> attribute specifies a single file or
+directory relative to the project's base directory (or an absolute
+filename), while the <code>path</code> attribute accepts colon-
+or semicolon-separated lists of locations. The <code>path</code>
+attribute is intended to be used with predefined paths - in any other
+case, multiple elements with <code>location</code> attributes should be
+preferred.</p>
+<p>As a shortcut, the <code>&lt;classpath&gt;</code> tag
+supports <code>path</code> and
+<code>location</code> attributes of its own, so:</p>
+<pre>
+    &lt;classpath&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+    &lt;/classpath&gt;
+</pre>
+<p>can be abbreviated to:</p>
+<pre>
+    &lt;classpath path=&quot;${classpath}&quot;/&gt;
+</pre>
+<p>In addition, one or more
+<a href="CoreTypes/resources.html#collection">Resource Collection</a>s
+can be specified as nested elements (these must consist of
+<a href="CoreTypes/resources.html#file">file</a>-type resources only).
+Additionally, it should be noted that although resource collections are
+processed in the order encountered, certain resource collection types
+such as <a href="CoreTypes/fileset.html">fileset</a>,
+<a href="CoreTypes/dirset.html">dirset</a> and
+<a href="CoreTypes/resources.html#files">files</a>
+are undefined in terms of order.</p>
+<pre>
+    &lt;classpath&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+      &lt;fileset dir=&quot;lib&quot;&gt;
+        &lt;include name=&quot;**/*.jar&quot;/&gt;
+      &lt;/fileset&gt;
+      &lt;pathelement location=&quot;classes&quot;/&gt;
+      &lt;dirset dir=&quot;${build.dir}&quot;&gt;
+        &lt;include name=&quot;apps/**/classes&quot;/&gt;
+        &lt;exclude name=&quot;apps/**/*Test*&quot;/&gt;
+      &lt;/dirset&gt;
+      &lt;filelist refid=&quot;third-party_jars&quot;/&gt;
+    &lt;/classpath&gt;
+</pre>
+<p>This builds a path that holds the value of <code>${classpath}</code>,
+followed by all jar files in the <code>lib</code> directory,
+the <code>classes</code> directory, all directories named
+<code>classes</code> under the <code>apps</code> subdirectory of
+<code>${build.dir}</code>, except those
+that have the text <code>Test</code> in their name, and
+the files specified in the referenced FileList.</p>
+<p>If you want to use the same path-like structure for several tasks,
+you can define them with a <code>&lt;path&gt;</code> element at the
+same level as <i>target</i>s, and reference them via their
+<i>id</i> attribute--see <a href="#references">References</a> for an
+example.</p>
+<p>A path-like structure can include a reference to another path-like
+structure (a path being itself a resource collection)
+via nested <code>&lt;path&gt;</code> elements:</p>
+<pre>
+    &lt;path id=&quot;base.path&quot;&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+      &lt;fileset dir=&quot;lib&quot;&gt;
+        &lt;include name=&quot;**/*.jar&quot;/&gt;
+      &lt;/fileset&gt;
+      &lt;pathelement location=&quot;classes&quot;/&gt;
+    &lt;/path&gt;
+
+    &lt;path id=&quot;tests.path&quot;&gt;
+      &lt;path refid=&quot;base.path&quot;/&gt;
+      &lt;pathelement location=&quot;testclasses&quot;/&gt;
+    &lt;/path&gt;
+</pre>
+ The shortcuts previously mentioned for <code>&lt;classpath&gt;</code> are also valid for <code>&lt;path&gt;</code>.For example:
+<pre>
+    &lt;path id=&quot;base.path&quot;&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+    &lt;/path&gt;
+</pre>
+can be written as:
+<pre>
+    &lt;path id=&quot;base.path&quot; path=&quot;${classpath}&quot;/&gt;
+</pre>
+
+<h3><a name="arg">Command-line Arguments</a></h3>
+<p>Several tasks take arguments that will be passed to another
+process on the command line. To make it easier to specify arguments
+that contain space characters, nested <code>arg</code> elements can be used.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">a single command-line argument; can contain space
+      characters.</td>
+    <td align="center" rowspan="5">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The name of a file as a single command-line
+      argument; will be replaced with the absolute filename of the file.</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">A string that will be treated as a path-like
+      string as a single command-line argument; you can use <code>;</code>
+      or <code>:</code> as
+      path separators and Ant will convert it to the platform's local
+      conventions.</td>
+  </tr>
+  <tr>
+    <td valign="top">pathref</td>
+    <td valign="top"><a href="#references">Reference</a> to a path
+      defined elsewhere.  Ant will convert it to the platform's local
+      conventions.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+    <td valign="top">a space-delimited list of command-line arguments.</td>
+  </tr>
+</table>
+
+<p>It is highly recommended to avoid the <code>line</code> version
+when possible.  Ant will try to split the command line in a way
+similar to what a (Unix) shell would do, but may create something that
+is very different from what you expect under some circumstances.</p>
+
+<h4>Examples</h4>
+<blockquote><pre>
+  &lt;arg value=&quot;-l -a&quot;/&gt;
+</pre></blockquote>
+<p>is a single command-line argument containing a space character,
+<i>not</i> separate commands "-l" and "-a".</p>
+<blockquote><pre>
+  &lt;arg line=&quot;-l -a&quot;/&gt;
+</pre></blockquote>
+<p>This is a command line with two separate arguments, "-l" and "-a".</p>
+<blockquote><pre>
+  &lt;arg path=&quot;/dir;/dir2:\dir3&quot;/&gt;
+</pre></blockquote>
+<p>is a single command-line argument with the value
+<code>\dir;\dir2;\dir3</code> on DOS-based systems and
+<code>/dir:/dir2:/dir3</code> on Unix-like systems.</p>
+
+<h3><a name="references">References</a></h3>
+
+<p>Any project element can be assigned an identifier using its
+<code>id</code> attribute. In most cases the element can subsequently
+be referenced by specifying the <code>refid</code> attribute on an
+element of the same type.  This can be useful if you are going to
+replicate the same snippet of XML over and over again--using a
+<code>&lt;classpath&gt;</code> structure more than once, for example.</p>
+<p>The following example:</p>
+<blockquote><pre>
+&lt;project ... &gt;
+  &lt;target ... &gt;
+    &lt;rmic ...&gt;
+      &lt;classpath&gt;
+        &lt;pathelement location=&quot;lib/&quot;/&gt;
+        &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
+        &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
+      &lt;/classpath&gt;
+    &lt;/rmic&gt;
+  &lt;/target&gt;
+
+  &lt;target ... &gt;
+    &lt;javac ...&gt;
+      &lt;classpath&gt;
+        &lt;pathelement location=&quot;lib/&quot;/&gt;
+        &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
+        &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
+      &lt;/classpath&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>could be rewritten as:</p>
+<blockquote><pre>
+&lt;project ... &gt;
+  &lt;path id=&quot;project.class.path&quot;&gt;
+    &lt;pathelement location=&quot;lib/&quot;/&gt;
+    &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
+    &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
+  &lt;/path&gt;
+
+  &lt;target ... &gt;
+    &lt;rmic ...&gt;
+      &lt;classpath refid=&quot;project.class.path&quot;/&gt;
+    &lt;/rmic&gt;
+  &lt;/target&gt;
+
+  &lt;target ... &gt;
+    &lt;javac ...&gt;
+      &lt;classpath refid=&quot;project.class.path&quot;/&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>All tasks that use nested elements for 
+<a href="CoreTypes/patternset.html">PatternSet</a>s, 
+<a href="CoreTypes/fileset.html">FileSet</a>s, 
+<a href="CoreTypes/zipfileset.html">ZipFileSet</a>s or 
+<a href="#path">path-like structures</a> accept references to these structures 
+as shown in the examples. Using <code>refid</code> on a task will ordinarily 
+have the same effect (referencing a task already declared), but the user 
+should be aware that the interpretation of this attribute is dependent on the 
+implementation of the element upon which it is specified. Some tasks (the 
+<a href="CoreTasks/property.html">property</a> task is a handy example) 
+deliberately assign a different meaning to <code>refid</code>.</p>
+
+
+<h3><a name="external-tasks">Use of external tasks</a></h3> 
+Ant supports a plugin mechanism for using third party tasks. For using them you 
+have to do two steps: 
+<ol>
+  <li>place their implementation somewhere where Ant can find them</li>
+  <li>declare them.</li>
+</ol> 
+Don't add anything to the CLASSPATH environment variable - this is often the  
+reason for very obscure errors. Use Ant's own <a href="install.html#optionalTasks">mechanisms</a> 
+for adding libraries: 
+<ul>
+  <li>via command line argument <code>-lib</code></li>
+  <li>adding to <code>${user.home}/.ant/lib</code></li>
+  <li>adding to <code>${ant.home}/lib</code></li>
+</ul>
+For the declaration there are several ways:
+<ul>
+  <li>declare a single task per using instruction using  
+      <code>&lt;<a href="CoreTasks/taskdef.html">taskdef</a> name=&quot;taskname&quot; 
+      classname=&quot;ImplementationClass&quot;/&gt;</code>
+      <br>
+      <code>&lt;taskdef name=&quot;for&quot; classname=&quot;net.sf.antcontrib.logic.For&quot; /&gt; 
+      &lt;for ... /&gt;</code>
+  </li>
+  <li>declare a bundle of tasks using a properties-file holding these 
+      taskname-ImplementationClass-pairs and <code>&lt;taskdef&gt;</code>
+      <br>
+      <code>&lt;taskdef resource=&quot;net/sf/antcontrib/antcontrib.properties&quot; /&gt; 
+      &lt;for ... /&gt;</code>
+  </li>
+  <li>declare a bundle of tasks using a <a href="CoreTypes/antlib.html">xml-file</a> holding these  
+      taskname-ImplementationClass-pairs and <code>&lt;taskdef&gt;</code>
+      <br>
+      <code>&lt;taskdef resource=&quot;net/sf/antcontrib/antlib.xml&quot; /&gt; 
+      &lt;for ... /&gt;</code>
+  </li>
+  <li>declare a bundle of tasks using a xml-file named antlib.xml, XML-namespace and 
+      <a href="CoreTypes/antlib.html#antlibnamespace"><code>antlib:</code> protocoll handler</a> 
+      <br>
+      <code>&lt;project xmlns:ac=&quot;antlib:net.sf.antconrib&quot;/&gt; 
+      &lt;ac:for ... /&gt;</code>
+  </li>
+</ul>
+
+If you need a special function, you should
+<ol>
+  <li>have a look at this manual, because Ant provides lot of tasks</li>
+  <li>have a look at the external task page in the <a href="../external.html">manual</a>
+      (or better <a href="http://ant.apache.org/external.html">online</a>)</li>
+  <li>have a look at the external task <a href="http://wiki.apache.org/ant/AntExternalTaskdefs">wiki 
+      page</a></li>
+  <li>ask on the <a href="http://ant.apache.org/mail.html#User%20List">Ant user</a> list</li>
+  <li><a href="tutorial-writing-tasks.html">implement </a>(and share) your own</li>
+</ol>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual/manual/usinglist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/manual/usinglist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/manual/usinglist.html	(revision 14989)
@@ -0,0 +1,46 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Using Ant</h3>
+<a href="using.html#buildfile">Writing a Simple Buildfile</a><br>
+&nbsp;&nbsp;<a href="using.html#projects">Projects</a><br>
+&nbsp;&nbsp;<a href="using.html#targets">Targets</a><br>
+&nbsp;&nbsp;<a href="using.html#tasks">Tasks</a><br>
+&nbsp;&nbsp;<a href="using.html#properties">Properties</a><br>
+&nbsp;&nbsp;<a href="using.html#built-in-props">Built-in Properties</a><br>
+&nbsp;&nbsp;<a href="using.html#example">Example Buildfile</a><br>
+&nbsp;&nbsp;<a href="using.html#filters">Token Filters</a><br>
+&nbsp;&nbsp;<a href="using.html#path">Path-like Structures</a><br>
+&nbsp;&nbsp;<a href="using.html#arg">Command-line Arguments</a><br>
+&nbsp;&nbsp;<a href="using.html#references">References</a><br>
+&nbsp;&nbsp;<a href="using.html#external-tasks">Use of external tasks</a><br>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual/mission.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/mission.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/mission.html	(revision 14989)
@@ -0,0 +1,264 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Apache Ant Mission</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                              <span class="sel">Apache Ant Mission</span>
+                              </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Apache Ant Mission</h1>
+            <h3 class="section">
+      <a name="Board Resolution"></a>
+      Board Resolution
+    </h3>
+                        <p>Apache Ant is a project of the <a href="http://www.apache.org/">Apache Software Foundation</a>.  It
+    started as a subproject of the <a href="http://jakarta.apache.org/">Apache Jakarta Project</a>.</p>
+                                <p>This is the board resolution (from the <a href="http://www.apache.org/foundation/records/minutes/2002/board_minutes_2002_11_18.txt">minutes</a>)
+    that created the Apache Ant project:</p>
+                                <pre class="code">
+7.D. Resolution [R3] to create the Ant PMC
+
+WHEREAS, the Board of Directors deems it to be in the best
+interests of the Foundation and consistent with the
+Foundation's purpose to establish a Project Management
+Committee charged with the creation and maintenance of
+open-source software related to the Apache Ant build tool, for
+distribution at no charge to the public.
+
+NOW, THEREFORE, BE IT RESOLVED, that a Project Management
+Committee (PMC), to be known as the &quot;Apache Ant PMC&quot;, be and
+hereby is established pursuant to Bylaws of the Foundation; and
+be it further
+
+RESOLVED, that the Apache Ant PMC be and hereby is responsible
+for the creation and maintenance of the Ant build system and
+related software components, based on software licensed to the
+Foundation; and be it further
+
+RESOLVED, that the office of &quot;Vice President, Apache Ant&quot; be
+and hereby is created, the person holding such office to serve
+at the direction of the Board of Directors as the chair of the
+Apache Ant PMC, and to have primary responsibility for
+management of the projects within the scope of responsibility
+of the Apache Ant PMC; and be it further
+
+RESOLVED, that the persons listed immediately below be and
+hereby are appointed to serve as the initial members of the
+Apache Ant PMC:
+
+   Bruce Atherton
+   Stephane Bailliez
+   Stefan Bodewig
+   Erik Hatcher
+   Diane Holt
+   Donald Leslie
+   Steve Loughran
+   Conor MacNeill
+   Costin Manolache
+   Sam Ruby
+   Jon Skeet
+   Magesh Umasankar
+   Christoph Wilhelms
+
+NOW, THEREFORE, BE IT FURTHER RESOLVED, that Conor MacNeill be
+and hereby is appointed to the office of Vice President, Apache
+Ant, to serve in accordance with and subject to the direction
+of the Board of Directors and the Bylaws of the Foundation
+until death, resignation, retirement, removal or
+disqualification, or until a successor is appointed; and be it
+further
+
+RESOLVED, that the initial Apache Ant PMC be and hereby is
+tasked with the creation of a set of bylaws intended to
+encourage open development and increased participation in the
+Apache Ant Project.
+
+By Unanimous Vote, Resolution R3 was approved. The Ant PMC is
+hereby created.
+    </pre>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/nightlies.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/nightlies.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/nightlies.html	(revision 14989)
@@ -0,0 +1,201 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Nightly Builds</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+        </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                              <span class="sel">Nightly Builds</span>
+                              </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Nightly Builds</h1>
+            <h3 class="section">
+      <a name="Nightly Builds"></a>
+      Nightly Builds
+    </h3>
+                        <p>If you wish to use the latest Ant features, you can try downloading a
+<a href="http://people.apache.org/builds/ant/nightly/">nightly build</a>.
+</p>
+                                <p>If you want to build Ant from sources, you can use a <a href="http://svn.apache.org/snapshots/ant/">Subversion snapshot</a>.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/page.css
===================================================================
--- /release-kits/shared/ant-installer/web/manual/page.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/page.css	(revision 14989)
@@ -0,0 +1,192 @@
+body {
+    background-color: #FFFFFF;
+    color: #000000;
+    margin: 0px 0px 0px 0px;
+    font-family: Verdana, Helvetica, sans-serif;
+    font-size : 90%;
+}
+
+a:link { color: #0F3660; }
+a:visited { color: #009999; }
+a:active { color: #000066; }
+a:hover { color: #000066; }
+
+.menucontainer {
+    float: left;
+    background-color: #4C6C8F;
+    margin: 0px 5px;
+    width: 250px;
+}
+
+.menu {
+    font-size : 90%;
+    padding: 3px 8px 5px 3px;
+    border-right: 1px solid #294563;
+    border-left: 1px solid #294563;
+}
+
+.menu a:link { color: #FFFFFF;  text-decoration : none;  }
+.menu a:visited { color: #FFFFFF; text-decoration : none; }
+.menu a:hover { color: #FFCC00; text-decoration : none; }
+.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
+.menu li  { list-style-image: url('images/label.gif'); font-weight : bold; }
+.menu ul ul li .sel { list-style-image: url('images/current.gif'); font-weight : normal; }
+.menu ul ul li  { list-style-image: url('images/page.gif'); font-weight : normal; }
+
+.menuheader {
+    color: #CFDCED;
+}
+
+.sel {
+    color: #ffcc00;
+}
+
+.tab { font-size : 85%; border: 0; background-color: #294563;}
+.tab a:link {   text-decoration : none;  }
+.tab a:visited { text-decoration : none; color: #2A4A6D }
+.tab a:hover { color: #000066; }
+
+table .title { background-color: #FFFFFF; width:100%; border: 0px; }
+.dida { font-size: 80%; }
+
+.pre { white-space: pre;}
+.nowrap { white-space: nowrap;}
+
+.main {
+    margin-left: 280px;
+    margin-right: 5px;
+}
+
+.content {
+    padding: 5px 5px 5px 10px;
+    font : small Verdana, Helvetica, sans-serif;
+    font-size : 90%;
+}
+
+.content .ForrestTable { width: 100%; background-color: #7099C5; color: #ffffff; font-size : 90%;}
+.content .ForrestTable caption { text-align: left; color: black; font-weight: bold; }
+.content .ForrestTable th { text-align: center; }
+.content .ForrestTable td { background-color: #f0f0ff; color: black; }
+
+.content .externals { width: 80%; background-color: #7099C5; color: #ffffff; font-size : 90%;}
+.content .externals caption { text-align: left; color: black; font-weight: bold; }
+.content .externals th { width: 120px; text-align: right; }
+.content .externals td { background-color: #f0f0ff; color: black; }
+
+
+
+.frame { margin: 5px 20px 5px 20px; font-size: 90%; }
+.frame .content { margin: 0px; }
+
+.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
+.note .label { background-color: #7099C5; color: #ffffff; }
+
+.warning { border: solid 1px #D00000; background-color: #fff0f0; }
+.warning .label { background-color: #D00000; color: #ffffff; }
+
+.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
+.fixme .label { background-color: #C6C600; color: #ffffff; }
+
+.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
+.codefrag {	font-family: "Courier New", Courier, monospace; }
+
+.highlight { background-color: yellow; }
+
+.minitoc {margin: 5px 5px 5px 40px;}
+
+.dtdElement { width: 100%;	font-size: 90%; background-color : #ffffff; }
+
+.dtdTag {    color: #990000; text-transform : uppercase;  font-style : normal;  font-size : 120%;  font-weight : bold; }
+
+.section {
+    font-family: Verdana, Helvetica, sans-serif;
+    background-color: #294563;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+    margin-top: 20px;
+    clear: right;
+}
+
+.subsection {
+    font-family: arial,helvetica,sanserif;
+    background-color: #4C6C8F;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+    clear: right;
+}
+
+.toc {
+    font-family: arial,helvetica,sanserif;
+    background-color: #4C6C8F;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+}
+
+.faq {
+    font-family: arial,helvetica,sanserif;
+    background-color: #4C6C8F;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+}
+
+.navpath {
+    font-family: arial,helvetica,sanserif;
+    background-color: #CFDCED;
+    padding: 2px 6px;
+    margin: 0px 0px 0px 0px;
+    font-size: 90%;
+    border-bottom: 2px solid #4C6C8F;
+}
+
+.title {
+    font-family: Verdana, Helvetica, sans-serif;
+}
+
+.copyright {
+    font-family: arial,helvetica,sanserif;
+    font-size: 90%;
+    background-color: #CFDCED;
+    clear: both;
+    text-align: center;
+    margin: 0px;
+    border-top: thin solid #4C6C8F;
+}
+
+.bluebar {
+    padding: 5px 5px 5px 10px;
+    background-color: #4C6C8F;
+    margin: 0px;
+}
+
+.lightbluebar {
+    padding: 5px 5px 5px 10px;
+    background-color: #CFDCED;
+    margin: 0px;
+    border-top: 1px solid #294563;
+    border-bottom: 1px solid #294563;
+}
+
+.logobar {
+    background-color: #294563;
+    padding-right: 10px;
+    margin: 0px;
+}
+
+.searchcaption {
+    color: #FFFFFF;
+    text-align: left;
+    font-family: arial,helvetica,sanserif;
+    font-size: 90%;
+    background-color: #4C6C8F;
+    margin: 0px;
+}
+
+@media print {
+   .menu {
+     display: none;
+   }
+}
Index: /release-kits/shared/ant-installer/web/manual/problems.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/problems.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/problems.html	(revision 14989)
@@ -0,0 +1,369 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Having Problems?</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Conor MacNeill">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                              <span class="sel">Having Problems?</span>
+                              </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Having Problems?</h1>
+            <h3 class="section">
+      <a name="Having Problems?"></a>
+      Having Problems?
+    </h3>
+                        <p>
+           This page details some steps you can take to try and resolve
+           any problems you may be having with Ant. If you find you can't
+           resolve the problem, then this page will help you collect some of
+           the relevant information to provide in a bug report. This information
+           will help the Ant developers understand and resolve the problem.
+           Of course, not all the steps here will make sense for every problem
+           you may encounter - these are just some suggestions to point
+           you in the right direction.
+        </p>
+                                      <h4 class="subsection">
+        <a name="Ensure that you are actually running the version of Ant that you think you do"></a>
+        Ensure that you are actually running the version of Ant that you think you do
+      </h4>
+                        <p>Many tools include a version of Ant and some Operating
+        Systems even install it by default now, so you may have a
+        version of Ant installed that you haven't been aware of.</p>
+                                <p>One of the first things to do is to run
+          <br /><br />
+          <font face="verdana" size="-1">ant -version</font>
+          <br /><br />
+          and
+          <br /><br />
+          <font face="verdana" size="-1">ant -diagnostics</font>
+          <br /><br />
+          to be sure.  Also, we highly recommend that you run Ant with
+          an empty CLASSPATH.  If any other version of Ant can be
+          loaded from the CLASSPATH, many types of errors may happen
+          because of incompatible classes being loaded.</p>
+                                <p>See <a href="faq.html">the FAQ</a> for <a href="faq.html#NoClassDefFoundError">some</a> <a href="faq.html#InstantiationException">examples</a>, but many
+        other problems are a result of an old version of Ant on your
+        system as well.</p>
+                                                          <h4 class="subsection">
+        <a name="Read the Manual"></a>
+        Read the Manual
+      </h4>
+                        <p>
+            The first step to take when you have a problem with Ant is to read
+            the <a href="manual/index.html">manual</a> entry for the task or
+            concept that is giving you trouble. In particular, check the
+            meaning of a task's attributes and nested elements. Perhaps an
+            attribute is available that would provide the behavior you require.
+            If you have problems with the manual itself, you can submit a
+            documentation bug report (see below) to help us improve the Ant
+            documentation.
+         </p>
+                                                          <h4 class="subsection">
+        <a name="Examine Debug Output"></a>
+        Examine Debug Output
+      </h4>
+                        <p>
+            If you're still having a problem, the next step is to try and
+            gather additional information about what Ant is doing.
+            Try running Ant with the <code>verbose</code> flag:
+            <br /><br />
+            <font face="verdana" size="-1">ant -verbose</font>
+            <br /><br />
+            or
+            <br /><br />
+            <font face="verdana" size="-1">ant -v</font>
+            <br /><br />
+
+            This will produce output that starts like the following:</p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+Ant version 1.4.1 compiled on October 11 2001<br />
+Buildfile: build.xml<br />
+Detected Java version: 1.3 in: D:\usr\local\java\jdk13\jre<br />
+Detected OS: Windows NT<br />
+parsing buildfile D:\ant\build.xml
+with URI = file:D:/ant/build.xml<br />
+Project base dir set to: D:\ant<br />
+  [property] Loading Environment env.<br />
+  [property] Loading D:\ant\conf.properties<br />
+Build sequence for target 'debug' is [debug]<br />
+Complete build sequence is [debug, gensrc, compile, jar, test]<br />
+. . .<br />
+
+      </td>
+      </tr>
+          </table>
+                                <p>
+              You should be able to see from the trace more about what Ant
+              is doing and why it's taking a particular course of action.
+              If you need even more information, you can use the
+              <code>-debug</code> flag rather than
+              <code>-verbose</code>.
+              This will generally produce so much
+              output that you may want to save the output to a file and
+              analyze it in an editor. You can save the output using the
+              <code>-logfile &lt;filename&gt;</code> flag, or
+              using redirection.
+           </p>
+                                <p>
+              Once you have all this debug information, how can you use it
+              to solve your problem?  That will depend on the task in question
+              and the nature of your problem. Each task logs different aspects
+              of its operation, but it should give you an idea of what is going
+              on. For example, the <code>&lt;javac&gt;</code> task logs the
+              reasons why it
+              chooses to compile particular class files and not others, along
+              with which compiler it is using and the arguments it will pass
+              to that compiler. The following partial trace shows why
+              <code>&lt;javac&gt;</code> is adding one class file but
+              skipping another.
+              This is followed by which compiler it will be using, the
+              arguments that will get passed to the compiler,
+              and a list of all the class files to be compiled.
+           </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+[javac] Test.java omitted as D:\classes\Test.class is up to date.<br />
+[javac] Unset.java added as D:\classes\Unset.class is outdated.<br />
+[javac] Compiling 1 source file to D:\classes<br />
+[javac] Using classic compiler<br />
+[javac] Compilation args: -d D:\classes -classpath D:\classes;<br />
+D:\jdk118\classes.zip; -sourcepath D:\src\java -g:none<br />
+[javac] File to be compiled:<br />
+D:\src\java\Unset.java<br />
+
+      </td>
+      </tr>
+          </table>
+                                <p>
+              In many cases, Ant tasks are wrappers around OS commands or
+              other Java classes. In debug mode, many of these tasks will
+              print out the equivalent command line, as the
+              <code>&lt;javac&gt;</code> task
+              output does. If you are having a problem, it is often useful to
+              run the command directly from the command line, in the same way
+              Ant is running it, and see if the problem occurs from there
+              as well. The problem may be in the command that is being run,
+              or it may be in the way the Ant task is running the command.
+              You can also see the effect of changing attribute values on the
+              generated command line. This can help you to understand whether
+              you are using the correct attributes and values.
+            </p>
+                                                          <h4 class="subsection">
+        <a name="Has It Been Fixed?"></a>
+        Has It Been Fixed?
+      </h4>
+                        <p>
+            After examining the debug output, if you still believe that the
+            problem you are having is caused by Ant, chances are that someone
+            else may have already encountered this problem, and perhaps it has
+            been fixed. The next step, therefore, would be to download the
+            sources of ant, see <a href="svn.html">svn</a>.
+        </p>
+                                <p>
+          <a href="http://vmgump.apache.org/gump/public/index.html">Gump</a>
+          is building ant every night and using the ant built from the
+          latest source to build a long list of open source projects. However,
+          the version of ant built by gump is not available for download. Even
+          if it were, it would not include most of the optional tasks.
+        </p>
+                                <p>
+            We currently do not have nightly builds including the optional tasks.
+        </p>
+                                            <h3 class="section">
+      <a name="bugs"></a>
+      bugs
+    </h3>
+                        <p>If you are convinced that you have identified an unfixed bug, please turn to
+      our document concerning the <a href="bugs.html">bug database</a>.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/projects.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/projects.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/projects.html	(revision 14989)
@@ -0,0 +1,1292 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Related Projects</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                              <span class="sel">Related Projects</span>
+                              </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Related Projects</h1>
+            <h3 class="section">
+      <a name="Related Projects"></a>
+      Related Projects
+    </h3>
+                        <p>Nothing listed here is directly supported by the Ant
+      developers, if you encounter any problems with them, please use
+      the contact information.</p>
+                                      <h4 class="subsection">
+        <a name="AndroMDA"></a>
+        AndroMDA
+      </h4>
+                        <p>AndroMDA is a code generator tool that follows the Model
+        Driven Architecture (MDA) paradigm. It takes a UML model from
+        a CASE-tool and generates classes and deployable components
+        (J2EE or other) specific for your application
+        architecture.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4.1 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.andromda.org/">http://www.AndroMDA.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=73047">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntContrib"></a>
+        AntContrib
+      </h4>
+                        <p>The Ant-Contrib project is a collection of user supplied
+        task (like an <code>&lt;if&gt;</code> task) and a development
+        playground for experimental tasks like a C/C++ compilation
+        task for different compilers.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4.1 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant-contrib.sourceforge.net/">http://ant-contrib.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=36177">project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antelope"></a>
+        Antelope
+      </h4>
+                        <p>A GUI for running Ant and editing build files, can run as
+        stand-alone or as a plugin to jEdit. In addition to running
+        targets, Antelope can generate performance statistics and can
+        trace/display a target's execution path without actually
+        executing the target.</p>
+                                <p>Includes several additional tasks: Assert, If/Else,
+        Try/Catch/Finally, Switch, Variable, Stopwatch, Limit, Math,
+        Post, SSH, SCP, AntFetch, AntCallBack.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and higher.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antelope.tigris.org/">http://antelope.tigris.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:daleanson@users.sourceforge.net">Dale Anson</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntHill"></a>
+        AntHill
+      </h4>
+                        <p>Anthill is a build tool that promotes a controlled build
+        process by ensuring that every build reflects the source
+        repository contents and tagging the repository with a unique
+        build number after every build. Anthill also encourages the
+        sharing of knowledge within an organization by automatically
+        updating a project intranet site with artifacts from the
+        latest build.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.3, is compatible with Ant 1.3 to 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.urbancode.com/projects/anthill/">http://www.urbancode.com/projects/anthill/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mbz@urbancode.com">Maciej Zawadzki</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Mozilla-like license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antigen"></a>
+        Antigen
+      </h4>
+                        <p>Antigen (Ant Installer Generator) is a tool to take an Ant build script, combine it with a GUI
+        and wrap it up as an executable jar file. Its main use is for creating graphical, ant-based installers.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.6.2
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antigen.sourceforge.net/">http://antigen.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:johndavidtaylor@users.sourceforge.net">Jon Tayler</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Academic Free License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntInstaller"></a>
+        AntInstaller
+      </h4>
+                        <p>Builds MSI style installers (with command line option)
+        using Ant as Back end. UI developed by writing an XML install
+        descriptor.  Runtime launched from scripts or an all inclusive
+        Jar.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1 others not tested
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antinstaller.sf.net/">http://antinstaller.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:teknopaul@users.sourceforge.net">teknopaul@users.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL but in the process of of moving to Apache2.0 on request
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antlion"></a>
+        Antlion
+      </h4>
+                        <p>The Antlion Project adds value to Ant build scripts by providing
+        tasks which centralizes the library dependencies, and enables
+        projects to define dependencies upon other projects.</p>
+                                <p>External dependencies may be loaded from a custom local
+        repository or Maven-like remote repositories. Antlion handles
+        the generation of properties, filesets, and paths.</p>
+                                <p>Inter-project dependencies allow for building the other
+        project's files if they aren't already built.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antlion.sourceforge.net/">http://antlion.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://sourceforge.net/mail/?group_id=93410">Project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache License, Version 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antworks"></a>
+        Antworks
+      </h4>
+                        <p>The antworks project is a set of tools and standardized targets that
+        greatly simplifies using ant in your project.</p>
+                                <p>
+            The driver behind antworks is Importer. Importer is an extension to the
+            ant import task that will download and
+            cache an ant build.xml file and it's associated resources called
+            antlets.  Antlets are available for Java compiling
+            and packaging,  JUnit, Forrest, J2EE and
+            <a href="http://antworks.sourceforge.net/antlets/">more</a>.
+            </p>
+                                <p>
+            See the <a href="http://antworks.sourceforge.net/start.html ">Getting Started</a>
+            guide for more information.
+            </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antworks.sourceforge.net/">http://antworks.sourceforge.net/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://lists.sourceforge.net/lists/listinfo/antworks-developers">Antworks Developers mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache License 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="BuildMonkey"></a>
+        BuildMonkey
+      </h4>
+                        <p>BuildMonkey is a Web-based automated build dashboard, with upload
+           capability and google web search. It schedules the running of Ant
+           build scripts - checking sources out of CM - and makes the results
+           available centrally.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.4 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.buildmonkey.com/">http://www.buildmonkey.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jb@buildmonkey.com">jb@buildmonkey.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware, commercial/support licences available
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="CruiseControl"></a>
+        CruiseControl
+      </h4>
+                        <p>CruiseControl is a tool for setting up a continuous build
+        process.  CruiseControl provides an Ant wrapper and a set of
+        tasks to automate the checkout/build/test cycle. CruiseControl
+        also comes bundled with a servlet for viewing the status of
+        the current build, as well as previous build results.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cruisecontrol.sourceforge.net/">http://cruisecontrol.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cruisecontrol.sourceforge.net/contact.html">Project Mailing Lists and Administrators</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Release 1.0 has been licensed under the GNU General Public
+            License.  Starting with release 1.1 the license has been
+            changed to a BSD-like license.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Invicta"></a>
+        Invicta
+      </h4>
+                        <p>Invicta is a build management tool. Using simple project definition files,
+        it generates powerful build scripts (such as ANT) while hiding their
+        complexity. Invicta is a modular framework that allows developing additional
+        components and output types.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://invicta.sf.net/">http://invicta.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://invicta.sf.net/contact.html">Project Mailing Lists and Administrators</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JAM - JavaGen Ant Modules"></a>
+        JAM - JavaGen Ant Modules
+      </h4>
+                        <p>JAM is a modular Ant toolkit for developing and testing Java/J2EE
+        applications. JAM supports EJB and Servlet/JSP development using XDoclet,
+        JUnit, Cactus, Maven, Castor and MDA/UML code generation on various J2EE
+        servers including JBoss.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.javagen.com/jam.jsp">http://www.javagen.com/jam.jsp</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.javagen.com/feedback.do">Feedback</a> <br />
+                <a href="http://www.javagen.com/bugs.do">Bug Reports</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Krysalis Centipede"></a>
+        Krysalis Centipede
+      </h4>
+                        <p>The Centipede admin told us, that that project
+           "is no more" and that "Antworks has taken it place."
+        </p>
+                                                          <h4 class="subsection">
+        <a name="Leafcutter"></a>
+        Leafcutter
+      </h4>
+                        <p>Leafcutter is an API which allows you to execute Ant tasks from Java code. <br />
+           Leafcutter is useful as: <ul>
+           <li>A way of integrating Ant tasks into existing Java programs. </li>
+           <li>A wholesale alternative to standard Ant for process automation. </li>
+           </ul>
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <i>unknown</i>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://leafcutter.dev.java.net/">https://leafcutter.dev.java.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://leafcutter.dev.java.net/servlets/ProjectForumView">Discussion Forum</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="luntbuild"></a>
+        luntbuild
+      </h4>
+                        <p>Luntbuild is an open source build automation and management
+        tool based on Apache Ant. Builds are setup through concepts of
+        projects, views, schedules, modules, etc. All configurations
+        and monitoring tasks is performed from a clean web
+        interface. It supports schedules builds, force builds,
+        rebuilds, clean build, increment build, etc.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.x
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sourceforge.net/projects/luntbuild/">http://www.sourceforge.net/projects/luntbuild/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/luntbuild/">luntbuild project page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Opensource
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="NAnt"></a>
+        NAnt
+      </h4>
+                        <p>NAnt is a .NET based build tool. In theory it is kind of
+        like make without make's wrinkles. In practice it's a lot like
+        Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          compatible in spirit.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://nant.sourceforge.net/">http://nant.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=31650">project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Parabuild"></a>
+        Parabuild
+      </h4>
+                        <p>Parabuild is an automated multiplatform build management server.
+        Parabuild helps software teams and organizations of all sizes reduce
+        risks of project failures and increase productivity by providing provides
+        automatic continuous integration builds and stable scheduled builds.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.viewtier.com/products/parabuild.htm">http://www.viewtier.com/products/parabuild.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.viewtier.com/about_us.htm">http://www.viewtier.com/about_us.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Rant"></a>
+        Rant
+      </h4>
+                        <p>Rant stands for Remote Ant. It is a distributed build
+        system that allows an Ant build file to launch builds on other
+        systems and receive exceptions should they occur.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/remoteant/">http://sourceforge.net/projects/remoteant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cnelson@einnovation.com">Chris Nelson</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Savant"></a>
+        Savant
+      </h4>
+                        <p>Savant helps simplify builds and codebases by handling the
+        resolution of project dependencies automatically. Savant supports
+        Maven style dependency downloads and various other methods of
+        retrieving dependencies, including fetching files from CVS modules.
+        Savant goes a step further than other dependency solutions and provides
+        the means for multiple internal projects to build each other in order
+        to resolve inter-project dependencies.</p>
+                                <p>Savant can be used via various Ant types and tasks as well as used
+        from any Java application including those that do not make use of Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.inversoft.com/">http://www.inversoft.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.inversoft.com/contact.html">http://www.inversoft.com/contact.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="WebTest"></a>
+        WebTest
+      </h4>
+                        <p>WebTest is a free open source tool for automated testing of web applications.
+        It is a set of powerful Ant tasks allowing to call web pages, mimic user actions
+        (clicking links, filling forms, ...) and verify the results.
+        The generated reports give comprehensive information on success and failure of the test steps.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://webtest.canoo.com/">http://webtest.canoo.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://lists.canoo.com/mailman/listinfo/webtest/">project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache like license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XML Publication"></a>
+        XML Publication
+      </h4>
+                        <p>XML Publication is a set of tools to generate Web pages
+        from desktop documents or other structured documents using
+        XSLT and Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://XMLpublication.org/">http://XMLpublication.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jmvanel@free.fr">Jean-Marc Vanel</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="yEd"></a>
+        yEd
+      </h4>
+                        <p>yEd is a freeware multi-purpose graph and diagram editor
+        that runs on the Java 2 platform. It provides an import filter
+        for Ant build scripts that makes it possible to conveniently
+        display and browse the dependencies between the different targets
+        of the build file. This is especially useful for debugging and
+        understanding large build files.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.x
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.yworks.com/products/yed/">http://www.yworks.com/products/yed/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.yworks.com/en/company_contact.htm">yWorks Support</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/resources.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/resources.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/resources.html	(revision 14989)
@@ -0,0 +1,1473 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Resources</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                              <span class="sel">Resources</span>
+                              </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Resources</h1>
+            <h3 class="section">
+      <a name="FAQs"></a>
+      FAQs
+    </h3>
+                              <h4 class="subsection">
+        <a name="At Ant's website"></a>
+        At Ant's website
+      </h4>
+                        <p>Starting with the release of Ant 1.4 the Ant's FAQ is
+        bundled with the distribution, the most recent version can
+        always be found at the website.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          FAQ:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="faq.html">http://ant.apache.org/faq.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="jGuru"></a>
+        jGuru
+      </h4>
+                        <p>jGuru hosts an interactive Ant discussion forum and FAQ system</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Forum:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.jguru.com/forums/home.jsp?topic=Ant">http://www.jguru.com/forums/home.jsp?topic=Ant</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          FAQ:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.jguru.com/faq/home.jsp?topic=Ant">http://www.jguru.com/faq/home.jsp?topic=Ant</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="FAQ about Borland Application Server tasks"></a>
+        FAQ about Borland Application Server tasks
+      </h4>
+                        <p>Benoit Moussaud, the original author of the Borland
+        Application Server specific <a href="manual/OptionalTasks/ejb.html#ejbtasks">EJB tasks</a> has put
+        together a FAQ for this specific subtask.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          FAQ:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.moussaud.org/ejbjar.html">http://www.moussaud.org/ejbjar.html</a>
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="WIKIs"></a>
+      WIKIs
+    </h3>
+                              <h4 class="subsection">
+        <a name="Apache"></a>
+        Apache
+      </h4>
+                        <p>The ASF provides a Wiki farm for Apache projects.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Main page:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://wiki.apache.org/general">Apache Wiki Farm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant Wiki:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://wiki.apache.org/ant/">Ant Wiki</a>
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="Books"></a>
+      Books
+    </h3>
+                        <p>The most recent books come first</p>
+                                      <h4 class="subsection">
+        <a name="Ant in Action"></a>
+        Ant in Action
+      </h4>
+                        <p>Published April/May 2007, and covering Ant 1.7.</p>
+                                <p>This is a major rewrite of the first edition; still 600 pages long.
+        </p>
+                                <p>
+          This book moves up from Ant1.5 to Java1.5 and 1.7, with a near-complete
+          rewrite of the applied-ant section, covering new topics such as
+          antlibs, repository management with Ivy, Xml Schema validation,
+          EJB3.0/Java EE development and advanced deployment using SmartFrog.
+          The ant coding section looks at AntUnit, antlib authoring and
+          scripting languages, while the beginners chapters, the first third
+          of the book, still shows developers how to build, test, package and
+          redistribute a Java application.
+        </p>
+                                <p>
+          If you are one of the 20,000+ owners of the first edition, it is now
+          obsolete. Sorry :)
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran and Erik Hatcher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Publisher URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.manning.com/loughran/">
+                http://www.manning.com/loughran/
+              </a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Book URL
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://antbook.org/">
+                http://antbook.org/
+              </a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Source code repository
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://sourceforge.net/projects/antbook">
+                http://sourceforge.net/projects/antbook
+              </a>
+            
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>1-932394-80-X</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/1-932394-80-X/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=1-932394-80-X" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=1-932394-80-X" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=1-932394-80-X&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Ant: The Definitive Guide, 2nd edition"></a>
+        Ant: The Definitive Guide, 2nd edition
+      </h4>
+                        <p>Published April 2005, and covers Ant release 1.6.1.</p>
+                                <p>This is a complete rewrite of the first edition; this book is
+        now 290 pages and so covers Ant in more depth than its predecessor.
+        </p>
+                                <p>It also mixes reference information (tables) with text explanation
+        on how to use the tasks. Contents includes JUnit, CVS, execution, basic
+        deployment, Web application development and XDoclet. There is also coverage
+        of XDoclet, and a chapter on how to extend Ant in Java.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Holzner
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.oreilly.com/catalog/anttdg2/">http://www.oreilly.com/catalog/anttdg2/</a>
+            
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>0596006098</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0596006098/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=0596006098" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=0596006098" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=0596006098&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Pragmatic Project Automation"></a>
+        Pragmatic Project Automation
+      </h4>
+                        <p>
+
+        How to Build, Deploy, and Monitor Java Applications.
+        Published: July 2004 ISBN:        0-9745140-3-9
+        </p>
+                                <p>
+          This is not a reference guide to Ant, but a book on how to automate the build process.
+          The core build, continuous integration, reporting and release management
+          are all covered. Ant is of course central to this. This is a fun read!
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Mike Clark
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.pragmaticprogrammer.com/sk/auto/">http://www.pragmaticprogrammer.com/sk/auto//</a>
+            
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>0974514039</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0974514039/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=0974514039" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=0974514039" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=0974514039&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Extreme Programming with Ant"></a>
+        Extreme Programming with Ant
+      </h4>
+                        <p> This book shows how to implement an XP project using Ant 1.5.3, and many other 3rd party tools.  Covers:</p>
+                                <ul>
+               <li>The fundamentals of Ant: concepts, core and optional tasks</li>
+               <li>How to write custom Ant components, including custom Tasks, Loggers, Listeners, Input Handlers, Selectors, Filters, Mappers and Data Types</li>
+               <li>Mitigating risks by creating spike tests with Ant buildfiles</li>
+               <li>Add CVS version control and testing with JUnit</li>
+               <li>Automate nightly builds and reporting</li>
+               <li>Deploy applications dynamically using XDoclet</li>
+               <li>Enforcing Code Standards with Jalopy, PMD, CheckStyle, iContract, JDepend</li>
+               <li>Using Remote Ant (Rant) and CruiseControl</li>
+               <li>Generating project documentation</li>
+               <li>Adapting an XP process for use by other teams or across an enterprise</li>
+               <li>Custom Task examples to generating UML diagrams, creating reports and metrics on-the-fly</li>
+               <li>Follows a case-study of a team that implements an XP Project</li>
+            </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Glenn Niemeyer and Jeremy Poteet
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sams.com/catalog/product.asp?product_id=%7BFB825A48-BC04-4C55-BD8C-DF93C6BBF920%7D">http://www.sams.com/catalog/product.asp?product_id=%7BFB825A48-BC04-4C55-BD8C-DF93C6BBF920%7D</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>0672325624</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0672325624/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=0672325624" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=0672325624" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=0672325624&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Ant. Das Java-Build-Tool in der Praxis"></a>
+        Ant. Das Java-Build-Tool in der Praxis
+      </h4>
+                        <p>A German language book on Ant that covers Ant 1.5.
+        This is the original description:</p>
+                                <pre class="code">
+        Das Build-Tool Ant ist das Open-Source-Werkzeug, das den Entwicklungsprozess einer Java-
+        oder J2EE-Anwendung wesentlich vereinfacht. Gesteuert durch XML-basierte Skripte fï¿œhrt es
+        nahezu alle Aufgaben aus, die nach dem Kodieren einer Anwendung anfallen.</pre>
+                                <p>Some topics:</p>
+                                <ul>
+                <li>creating archives (zip, jar)</li>
+                <li>call the java compiler</li>
+                <li>edit property files</li>
+                <li>file operation</li>
+                <li>source code control systems</li>
+            </ul>
+                                <p>The book is available in English as "Ant: The Java Build Tool in Practice"</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Bernd Matzke
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.addison-wesley.de/main/main.asp?page=home/bookdetails&amp;ProductID=13459">http://www.addison-wesley.de/main/main.asp?page=home/bookdetails&amp;ProductID=13459</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>3827320666</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/3827320666/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=3827320666" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=3827320666" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=3827320666&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Java Development with Ant"></a>
+        Java Development with Ant
+      </h4>
+                        <p>Published 2002. This book covers Ant 1.5, including:</p>
+                                <ul>
+                <li>The new Ant 1.5 features</li>
+                <li>Ant's datatypes and property handling</li>
+                <li>JUnit testing and reporting</li>
+                <li>Continuous integration techniques</li>
+                <li>XDoclet for attribute-oriented programming</li>
+                <li>EJB generation, building, and packaging</li>
+                <li>Writing and testing native code</li>
+                <li>Building Web Services with Apache Axis</li>
+                <li>Deploying your system to multiple remote servers</li>
+                <li>Using and writing
+                    <ul>
+                        <li>Loggers</li>
+                        <li>Listeners</li>
+                        <li>Selectors</li>
+                        <li>Custom tasks</li>
+                    </ul>
+                </li>
+            </ul>
+                                <p>Also available in Korean and German editions</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Erik Hatcher and Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.manning.com/antbook/">http://www.manning.com/antbook/</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>1930110588</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/1930110588/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=1930110588" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=1930110588" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=1930110588&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Ant: The Definitive Guide, 1st edition"></a>
+        Ant: The Definitive Guide, 1st edition
+      </h4>
+                        <p>Published 2002, Covers Ant release 1.4.1.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Jesse E. Tilly and Eric M. Burke
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.oreilly.com/catalog/anttdg/">http://www.oreilly.com/catalog/anttdg/</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>0596001843</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0596001843/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=0596001843" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=0596001843" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=0596001843&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Ant. Kurz und Gut."></a>
+        Ant. Kurz und Gut.
+      </h4>
+                        <p>A German language short reference for Ant that covers Ant
+        1.4.  This is the original description:</p>
+                                <pre class="code">
+  Ant kurz &amp; gut enthält eine vollständige Referenz der Built-in Tasks
+  und ihrer jeweiligen Attribute sowie kurze Beispiele für ihre Verwendung.
+  Daneben bietet das Buch eine knappe Einführung in die Arbeit mit Ant und
+  eine Erläuterung der Ant-Basiselemente (Projekte, Properties, Targets und Tasks).
+  Behandelt werden außerdem grundlegende Konzepte wie Filesets, Patternsets und
+  Pfadstrukturen, das Schreiben eigener Tasks, die Aufruf-Syntax und Optional Tasks. </pre>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Stefan Edlich
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.amazon.de/exec/obidos/ASIN/3897212412/">http://www.amazon.de/exec/obidos/ASIN/3897212412/</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>3897212412</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/3897212412/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=3897212412" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=3897212412" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=3897212412&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Java Tools for eXtreme Programming"></a>
+        Java Tools for eXtreme Programming
+      </h4>
+                        <p>This book covers the following XP subjects:</p>
+                                <ul>
+                <li>Automated unit and functional testing</li>
+                <li>Continuous integration through build and deployment automation</li>
+                <li>The value of refactoring and continuous integration</li>
+                <li>How Ant, JUnit, JUnitPerf, Cactus, HTTPUnit, and JMeter
+                can be used to achieve the goals of the XP methodology</li>
+            </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Richard Hightower and Nicholas Lesiecki
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.wiley.com/cda/product/0,,047120708X,00.html">http://www.wiley.com/cda/product/0,,047120708X,00.html</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>047120708X</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/047120708X/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=047120708X" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=047120708X" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=047120708X&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                              <h3 class="section">
+      <a name="Articles and Presentations"></a>
+      Articles and Presentations
+    </h3>
+                        <p>The following sections list articles and presentations
+      written about Apache Ant.  If you've written something that
+      should be included, please post it to one of the mailing
+      lists.</p>
+                        <h3 class="section">
+      <a name="Articles"></a>
+      Articles
+    </h3>
+                              <h4 class="subsection">
+        <a name="Extending Ant Input Abilities"></a>
+        Extending Ant Input Abilities
+      </h4>
+                        <p>The contents of this document is the following:<ul>
+           <li>Section 2 provides a simple example how InputHandlers are created,</li>
+           <li>Section 3 develops an inputhandler that masks the passwords typed on the command line,</li>
+           <li>Section 4 gives two handlers, whose input is typed in graphical components,</li>
+           <li>Section 5 extends Input task so that we can use dierent input handlers on different uses of &lt;input&gt;,</li>
+           <li>Section 6 describes a problem found while writing this document,</li>
+           <li>Section 7 summarizes some dark corners the author do not understand.</li>
+         </ul></p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ivan Ivanov
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://sourceforge.net/project/showfiles.php?group_id=103509">https://sourceforge.net/project/showfiles.php?group_id=103509 (Download ZIP+PDF from Sourceforge)</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Keep the Ant, Hold the XML"></a>
+        Keep the Ant, Hold the XML
+      </h4>
+                        <p>Key G. Gauthier talks about writing "buildfiles" in Java.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Key G. Gauthier
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ftponline.com/javapro/2004_06/magazine/features/kgauthier/">http://www.ftponline.com/javapro/2004_06/magazine/features/kgauthier/</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant 1.6 for Task Writers"></a>
+        Ant 1.6 for Task Writers
+      </h4>
+                        <p>This article talks about XML namespace handling, Ant
+        libraries and the newly introduced type polymorphism.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Stefan Bodewig
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://otn.oracle.com/pub/articles/bodewig_taskwriters.html">http://otn.oracle.com/pub/articles/bodewig_taskwriters.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Managing Build Complexity with Apache Ant 1.6"></a>
+        Managing Build Complexity with Apache Ant 1.6
+      </h4>
+                        <p>As Apache Ant is applied to increasingly difficult tasks,
+        its users are creating more complex and less legible build
+        files. This is due, in part, to the limited tools for
+        decomposition and code reuse within previous versions of
+        Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Geoffrey Wiseman
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sys-con.com/story/?storyid=45078&amp;DE=1">http://www.sys-con.com/story/?storyid=45078&amp;DE=1</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="New Ant 1.6 Features for Big Projects"></a>
+        New Ant 1.6 Features for Big Projects
+      </h4>
+                        <p>This article describes the &lt;macrodef&gt;, &lt;import&gt;
+          and &lt;subant&gt; tasks in detail and shows how they help in
+          building bigger systems.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Stefan Bodewig
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://otn.oracle.com/pub/articles/bodewig_ant1.6.html">http://otn.oracle.com/pub/articles/bodewig_ant1.6.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Programmieren für Ant"></a>
+        Programmieren für Ant
+      </h4>
+                        <p>This article describes the main topics of programming your own tasks.
+        Description is done on five examples.</p>
+                                <p>This article is written in German and published in
+        <a href="http://www.sigs-datacom.de/sd/publications/js/index.htm">Java-Spektrum</a>
+        5/2004.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Bernd Matzke
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sigs-datacom.de/sd/news/document?PID=216">http://www.sigs-datacom.de/sd/news/document?PID=216</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant in Anger: Using Ant in a Production Development System"></a>
+        Ant in Anger: Using Ant in a Production Development System
+      </h4>
+                        <p>This document describes strategies and some basic examples of how to
+        use Ant in larger team development projects.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="ant_in_anger.html">http://ant.apache.org/ant_in_anger.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant Task Guidelines"></a>
+        Ant Task Guidelines
+      </h4>
+                        <p>This document describes how to write custom Ant tasks, and how to submit
+        them to potentially be included in Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="ant_task_guidelines.html">http://ant.apache.org/ant_task_guidelines.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Build a Better Robot with Ant"></a>
+        Build a Better Robot with Ant
+      </h4>
+                        <p>This article describes the gory details of writing custom
+           Ant tasks.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Erik Hatcher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.fawcette.com/javapro/2003_02/magazine/features/ehatcher/">http://www.fawcette.com/javapro/2003_02/magazine/features/ehatcher/l</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Automating the build and test process"></a>
+        Automating the build and test process
+      </h4>
+                        <p>This article demonstrates an approach to the automated build and test process. Working with Ant 1.3 and the JUnit test framework, it shows how to automate a process that captures pertinent information about each test suite run, generates an attractive report, and e-mails the report.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:ehatcher@apache.org">Erik Hatcher</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ibm.com/developerworks/java/library/j-junitmail/">http://www.ibm.com/developerworks/java/library/j-junitmail/</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Incremental development with Ant and JUnit"></a>
+        Incremental development with Ant and JUnit
+      </h4>
+                        <p>This article explores the benefits of unit testing with Ant and
+        JUnit, detailing how to develop automated unit tests and integrate them
+        into your build process.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:malcolm@nuearth.com">Malcolm Davis</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java">http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Automate your build process using Java and Ant"></a>
+        Automate your build process using Java and Ant
+      </h4>
+                        <p>This article provides an introduction to using Ant with some basic
+        examples and by highlighting some of the important tasks.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:michael.cymerman@javaworld.com">Michael Cymerman</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html">http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Short tutorial in Cactus' (formerly J2EEUnit)       documentation"></a>
+        Short tutorial in Cactus' (formerly J2EEUnit)       documentation
+      </h4>
+                        <p>There is a short tutorial on how to use Ant in Cactus'
+        documentation.  It has a slant towards build files that will be used
+        with Cactus.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Cactus development team
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jakarta.apache.org/cactus/howto_ant_primer.html">http://jakarta.apache.org/cactus/howto_ant_primer.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Developing custom Ant tasks with VisualAge for Java"></a>
+        Developing custom Ant tasks with VisualAge for Java
+      </h4>
+                        <p>This article outlines how to integrate Ant into VisualAge for Java,
+        and how to write and debug custom tasks using the IDE and the
+        integrated debugger.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:glenn@somanetworks.com">Glenn McAllister</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Automated builds with VisualAge for Java and Ant"></a>
+        Automated builds with VisualAge for Java and Ant
+      </h4>
+                        <p>This article shows how you can perform command line builds with a
+        VisualAge for Java repository.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:glenn@somanetworks.com">Glenn McAllister</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant: A Build Tool from the Jakarta Project"></a>
+        Ant: A Build Tool from the Jakarta Project
+      </h4>
+                        <p>This article is from the "Best Practices" section of
+        Sun's Dot-Com Builder Site.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Laura Geele Wang
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Making a Mountain Out of an Anthill"></a>
+        Making a Mountain Out of an Anthill
+      </h4>
+                        <p>This article is from the June 2001 issue of the Java Developer'
+        Journal.  You need to be a registered JDJ subscriber to view this
+        article.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Neal Ford
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06">http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Using Ant and Weblogic EJBs"></a>
+        Using Ant and Weblogic EJBs
+      </h4>
+                        <p>This article describes how to use Ant to create Weblogic EJBs, and
+        some workarounds for issues you may encounter.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Jesse E. Tilly
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html">http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Using JavaScript with Ant"></a>
+        Using JavaScript with Ant
+      </h4>
+                        <p>A tutorial about using JavaScript and XSLT with Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Dylan Schiemann
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sitepen.com/ant/javascript.html">http://www.sitepen.com/ant/javascript.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Building with Ant"></a>
+        Building with Ant
+      </h4>
+                        <p>Series of articles that describe a framework for web
+        application development based on Ant and JUnit.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:alexc@purpletech.com">Alex Chaffee</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Introduction: <a href="http://softwaredev.earthweb.com/sdtech/article/0,,12065_989631,00.html">http://softwaredev.earthweb.com/sdtech/article/0,,12065_989631,00.html</a><br />
+                Directory Structure: <a href="http://softwaredev.earthweb.com/sdtech/article/0,,12082_994991,00.html">http://softwaredev.earthweb.com/sdtech/article/0,,12082_994991,00.html</a><br />
+                Deployment and Distribution: <a href="http://softwaredev.earthweb.com/sdtech/article/0,,12077_998241,00.html">http://softwaredev.earthweb.com/sdtech/article/0,,12077_998241,00.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Developing with JAXB and Ant"></a>
+        Developing with JAXB and Ant
+      </h4>
+                        <p>Series of articles that shows how to use Ant together with
+        the Java API for XML Binding (JAXB).</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Joseph Shelby
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.onjava.com/pub/a/onjava/2002/03/06/jaxant1.html">http://www.onjava.com/pub/a/onjava/2002/03/06/jaxant1.html</a><br />
+                <a href="http://www.onjava.com/pub/a/onjava/2002/03/13/jaxbant2.html">http://www.onjava.com/pub/a/onjava/2002/03/13/jaxbant2.html</a>
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="Presentations"></a>
+      Presentations
+    </h3>
+                              <h4 class="subsection">
+        <a name="Ant Build Tool"></a>
+        Ant Build Tool
+      </h4>
+                        <p>A PowerPoint presentation on Ant 1.2.  It provides a basic overview
+        of Ant's capabilities.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:chanezon@netscape.com">Patrick Chanezon</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt">http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant"></a>
+        Ant
+      </h4>
+                        <p>A detailed Ant 1.3 PowerPoint presentation, made at the St. Louis Java Users Group
+        meeting in March 2001.  Includes a detailed build file and basic
+        descriptions of all the built in and optional tasks.  Updated for Ant 1.4 in October 2001.
+        Available in PDF format now.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Mark Volkmann
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ociweb.com/jnb/files/Ant.pdf">http://www.ociweb.com/jnb/files/Ant.pdf</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Modern Development Crises"></a>
+        Modern Development Crises
+      </h4>
+                        <p>This presentation is an overview of the state of software
+        development in 2001.  There are a couple of slides that briefly cover
+        Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.iseran.com/Steve/modern_development_processes.html">http://www.iseran.com/Steve/modern_development_processes.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="When Web Services Go Bad"></a>
+        When Web Services Go Bad
+      </h4>
+                        <p>A presentation from the <a href="http://www.sellsbrothers.com/conference/">Web Services
+        DevCon</a> in March 2002.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.iseran.com/Steve/papers/when_web_services_go_bad.html">http://www.iseran.com/Steve/papers/when_web_services_go_bad.html</a>
+      </td>
+      </tr>
+          </table>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual/svn.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual/svn.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual/svn.html	(revision 14989)
@@ -0,0 +1,225 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - SVN Repositories</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Antoine Levy-Lambert">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">SVN Repositories</h1>
+            <h3 class="section">
+      <a name="Access the Source Tree (Subversion)"></a>
+      Access the Source Tree (Subversion)
+    </h3>
+                        <p>Anyone can checkout source code from our public Subversion repository. To do so,
+         simply use the following command (if you are using a GUI client, configure it
+         appropriately):</p>
+                                <pre class="code">
+svn co http://svn.apache.org/repos/asf/ant/[project]/trunk/ ant-[project]</pre>
+                                <p>Modules available for access are:</p>
+                                <ul>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/core/trunk/">ant</a> - The "main" Ant module.<br />
+         http://svn.apache.org/repos/asf/ant/core/trunk/
+        </li>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/antlibs/antunit/trunk/">antunit</a> Test framework for Ant.<br />
+            http://svn.apache.org/repos/asf/ant/antlibs/antunit/trunk/</li>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/antlibs/dotnet/trunk/">Dotnet antlib</a> Contains Nant, Nunit, ...<br />
+            http://svn.apache.org/repos/asf/ant/antlibs/dotnet/trunk/</li>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/antlibs/svn/trunk/">svn antlib</a> Contains tasks to interact with Subversion repositories.<br />
+            http://svn.apache.org/repos/asf/ant/antlibs/svn/trunk/</li>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/sandbox/">sandbox</a> - New developments. Contains currently gendoc.<br />
+            http://svn.apache.org/repos/asf/ant/sandbox/
+        </li>
+      </ul>
+                                <p>If you are not familiar with Subversion, <a href="http://jakarta.apache.org/site/cvsindex.html">Jakarta's
+      source repositories page</a> may hold many helpful hints.</p>
+                                <p>Nightly snapshots of the SVN tree are available at
+        <a href="http://svn.apache.org/snapshots/ant/">http://svn.apache.org/snapshots/ant/</a>.</p>
+                                <p>A nice view of the source history is available through
+      <a href="http://fisheye3.cenqua.com/browse/ant/">Cenqua's Fisheye instance</a>.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/LICENSE	(revision 14989)
@@ -0,0 +1,203 @@
+/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      "License" shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      "Licensor" shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      "Legal Entity" shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      "control" means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      "You" (or "Your") shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      "Source" form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      "Object" form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      "Work" shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      "Derivative Works" shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      "Contribution" shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, "submitted"
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *      "Contributor" shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a "NOTICE" text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an "AS IS" BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets "[]"
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same "printed page" as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] [name of copyright owner]
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   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.
+ */
Index: /release-kits/shared/ant-installer/web/manual1.6.2/ant_in_anger.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/ant_in_anger.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/ant_in_anger.html	(revision 14989)
@@ -0,0 +1,1175 @@
+<head>
+<title>
+    Ant in Anger
+</title>
+<link rel="stylesheet" type="text/css" href="manual/stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+<h1 align="center">Ant in Anger:
+</h1>
+<h2 align="center">
+        Using Apache Ant in a Production Development System
+</h2>
+
+<h4  align="center">
+Steve Loughran<br>
+Last updated 2002-11-09
+</h4>
+
+<a name="introduction">
+
+<h2>Introduction</h2>
+</a>
+
+<a href="http://ant.apache.org/">Apache Ant</a>
+ can be an invaluable tool in a team development process -or it can
+be yet another source of problems in that ongoing crises we call
+development . This
+document contains some strategies and tactics for making the most of
+Ant. It is moderately frivolous in places, and lacks almost any actual
+examples of Ant xml. The lack of examples is entirely deliberate -it
+keeps document maintenance costs down. Most of the concepts covered
+don't need the detail about XML representations, as it is processes we
+are concerned about, not syntax. Finally, please be aware that the
+comments here are only suggestions which need to be customised to meet
+your own needs, not strict rules about what should and should not be
+done.
+
+<p>
+Firstly, here are some assumptions about the projects which this
+document covers:
+<ul>
+<li> Pretty much pure Java, maybe with some legacy cruft on the edges.
+
+<li> Team efforts, usually with the petulant prima-donnas all us Java
+programmers become once we realise how much in demand we are.
+
+<li> A fairly distributed development team -spread across locations and
+maybe time zones.
+
+<li> Separate sub projects -from separate beans in a big
+enterprise application to separate enterprise applications which need to
+be vaguely aware of each other.
+
+<li> Significant mismatch between expectations and time available to
+deliver. 'Last Week' is the ideal delivery date handed down from above,
+late next century the date coming up from below.
+
+<li> Everyone is struggling to keep up with platform and tool evolution.
+
+<li> Extensive use of external libraries, both open and closed source.
+
+</ul>
+
+What that all means is that there is no time to spend getting things
+right, you don't have that tight control on how the rest of the team
+works and the development process is often more one of chaos minimisation
+than anything else. The role of Ant in such projects is to ensure that
+the build, test and deploy processes run smoothly, leaving you with all
+the other problems.
+
+<a name="core">
+<h2>Core Practices</h2>
+</a>
+<h3>
+Clarify what you want Ant to do</h3>
+
+
+Ant is not a silver bullet. It is just another rusty bullet in the armory of
+development tools available at your disposal. Its primary purpose is to
+accelerate the construction and deployment of Java projects. You could certainly
+extend Ant to do anything Java makes possible: it is easy to imagine writing an
+image processing task to help in web site deployment by shrinking and
+recompressing jpeg files, for example. But that would be pushing the boundary of
+what Ant is really intended to do -so should be considered with care.
+
+<P>
+
+Ant is also a great adjunct to an IDE; a way of doing all the housekeeping of
+deployment and for clean, automated builds. But a good modern IDE is a
+productivity tool in its own right -one you should consider keeping using. Ant
+just lets you give the teams somewhat more freedom in IDE choice -&quot;you can
+use whatever you want in development, but Ant for the deployment
+builds&quot; Now that many modern open source and commercial IDEs
+include Ant support (including jEdit, Forte, Eclipse and IDEA),
+developers can use a great IDE, with Ant providing a rigorous and portable 
+build process integrated into the tool. 
+
+<h3>
+Define standard targets
+</h3>
+
+
+When you have multiple sub projects, define a standard set of targets.
+Projects with a split between interface and implementation jar files
+could consider <b>impl</b> and <b>intf</b> targets -with separate
+<b>debug-impl</b>and <b>debug-intf</b> targets for the debug version.
+And of course, the ubiquitous <b>clean</b> target.
+
+<P>
+
+With standard target names, it is easy to build encompassing Ant build
+files which just hand off the work to the classes below using the
+<a href="manual/CoreTasks/ant.html">&lt;ant&gt;</a>
+task. For example. the clean target could be handed down to the <tt>intf</tt> and
+<tt>impl</tt> subdirectories from a parent directory
+
+<pre>&lt;target name=&quot;clean&quot;  depends=&quot;clean-intf, clean-impl&quot;&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;clean-intf&quot; &gt;
+    &lt;ant dir=&quot;intf&quot; target=&quot;clean&quot; /&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;clean-impl&quot;&gt;
+    &lt;ant dir=&quot;impl&quot; target=&quot;clean&quot; /&gt;
+&lt;/target&gt;  </pre>
+
+If you give targets a <tt>description</tt> tag, then calling <tt>ant
+-projecthelp</tt> will list all tasks with their description as 'main targets', and 
+all tasks without a description as subtargets. Describing all your
+entry points is therefore very useful, even before a project becomes big and complicated.
+  
+<h3>
+    Extend Ant through new tasks
+</h3>
+
+If Ant does not do what you want, you can use the
+<a href="manual/CoreTasks/exec.html">exec</a> and
+<a href="manual/CoreTasks/java.html">java</a> tasks or
+<a href="manual/OptionalTasks/script.html">inline scripting</a> to extend it. In a
+project with many build.xml files, you soon find that having a single
+central place for implementing the functionality keeps maintenance
+overhead down. Implementing task extensions through Java code seems
+extra effort at first, but gives extra benefits:-
+
+<ul>
+
+<li>Cross platform support can be added later without changing any
+build.xml files</li>
+
+<li>The code can be submitted to the Ant project itself, for other
+people to use and maintain</li>
+
+<li>It keeps the build files simpler</li>
+
+</ul>
+
+In a way, it is it this decoupling of functionality, "the tasks", from
+the declaration of use, "the build file", that has helped Ant succeed.
+If you have to get something complex done in Make or an IDE, you have a
+hairy makefile that everyone is scared of, or an IDE configuration that
+is invariably very brittle. But an Ant task is reusable and shareable
+among all Ant users. Many of the core and optional tasks in Ant today,
+tasks you do or will come to depend on, were written by people trying to
+solve their own pressing problems. 
+
+<h3>
+Embrace Automated Testing
+</h3>
+
+<b>(alternatively "recriminate early, recriminate often")</b>
+<p>
+
+Ant lets you call <a href="manual/OptionalTasks/junit.html">JUnit</a>
+tasks, which unit test the code your team has written. Automated testing
+may seem like extra work at first, but JUnit makes writing unit tests so
+easy that you have almost no reason not to. Invest the time in learning
+how to use JUnit, write the test cases, and integrate them in a 'test'
+target from Ant so that your daily or hourly team build can have the
+tests applied automatically. One of the free to download chapters of
+<a href="http://manning.com/antbook/">Java Development with Ant</a>
+shows you how to use JUnit from inside Ant.  
+
+<p>
+
+
+Once you add a way to fetch code from the SCM system, either as an Ant
+task, in some shell script or batch file or via some continuous
+integration tool. the integration test code can be a pure Ant task run
+on any box dedicated to the task. This is ideal for verifying that the
+build and unit tests work on different targets from the usual
+development machines. For example, a Win95/Java1.1 combination could be
+used even though no developer would willingly use that configuration
+given the choice.
+
+<p>
+
+System tests are harder to automate than unit tests, but if you can
+write java code to stress large portions of the system -even if the code
+can not run as JUnit tasks- then the <a href= "manual/CoreTasks/java.html">java</a>
+task can be used to invoke them. It is best to specify that you want a
+new JVM for these tests, so that a significant crash does not break the
+full build. The Junit extensions such as 
+<a href="http://httpunit.sourceforge.net/">HttpUnit</a> for web pages, and 
+<a href="http://jakarta.apache.org/cactus/">Cactus</a> for J2EE and servlet 
+testing help to expand the testing framework. To test properly you will still
+need to invest a lot of effort in getting these to work with your project, and 
+deriving great unit, system and regression tests -but your customers will love 
+you for shipping software that works.   
+
+
+<h3>Learn to Use and love the add-ons to Ant</h3>
+The Ant distribution is not the limit of the Ant universe, it is only
+the beginning. Look at the 
+<A href="http://ant.apache.org/external.html">
+External Tools and Tasks page
+</A> for an up to date list. Here are some of them that .
+
+<ul>
+<li>
+<a hef="http://checkstyle.sourceforge.net/">Checkstyle</a><br>
+This tool audits your code and generates HTML reports of wherever any
+style rule gets broken. Nobody can hide from the code police now! tip:
+start using this early, so the corrections are less.
+<li>
+<A href="http://ant-contrib.sf.net/">Ant-contrib</A><br>
+This sourceforge project contains helper tasks that are kept separate
+from core Ant for ideological purity; the foreach and trycatch tasks in
+particular. These give you iteration and extra error handling. Also on
+the site is the &lt;cc&gt; task suite, that compile and link native code
+on a variety of platforms.
+
+<li>
+<a href="http://xdoclet.sourceforge.net/">XDoclet</a>
+
+XDoclet adds attributed oriented programming to Java. By adding javadoc
+tags to your code you can have XDoclet automatically generate web.xml
+descriptors, taglib descriptors, EJB interfaces, JMX interface classes,
+Castor XML/SQL bindings, and many more. The key here is that all those
+fiddly little XML files you need to create, and those interfaces EJB and
+JMX requires to to implement, all can be autogenerated from your Java
+code with a few helper attributes. This reduces
+errors and means you can change your code and have the rest of the app
+take its cue from the source. Never do EJB, JMX or webapps without it!
+
+</ul>
+
+
+<a name="crossplatform">
+<h2>
+Cross Platform Ant
+</h2>
+</a>
+
+Ant is the best foundation for cross platform Java development and
+testing to date. But if you are not paying attention, it is possible to
+produce build files which only work on one platform -or indeed, one
+single workstation.
+
+<p>
+
+The common barriers to cross-platform Ant are the use of command line
+tools (exec tasks) which are not portable, path issues, and hard coding
+in the location of things.
+
+<h3>Command Line apps: <a href="manual/CoreTasks/exec.html">Exec</a>/
+ <a href= "manual/CoreTasks/apply.html">Apply</a></h3>
+
+The trouble with external invocation is that not all functions are found
+cross platform, and those that are often have different names -DOS
+descendants often expect .exe or .bat at the end of files. That can be
+bad if you explicitly include the extension in the naming of the command
+(don't!), good when it lets you keep the unix and DOS versions of an
+executable in the same bin directory of the project without name
+clashes arising.
+
+<p>
+
+Both the command line invocation tasks let you specify which platform
+you want the code to run on, so you could write different tasks for each
+platform you are targeting. Alternatively, the platform differences
+could be handled inside some external code which Ant calls. This can be
+some compiled down java in a new task, or an external script file.
+
+<h3>Cross platform paths</h3>
+
+Unix paths use forward slashes between directories and a colon to
+split entries. Thus
+<i>"/bin/java/lib/xerces.jar:/bin/java/lib/ant.jar"</i> is
+a path in unix. In Windows the path must use semicolon separators,
+colons being used to specify disk drives, and backslash separators
+<i>"c:\bin\java\lib\xerces.jar;c:\bin\java\lib\ant.jar"</i>.
+<p>
+This difference between platforms (indeed, the whole java classpath
+paradigm) can cause hours of fun.
+
+<p>
+
+Ant reduces path problems; but does not eliminate them entirely. You
+need to put in some effort too. The rules for handling path names are
+that 'DOS-like pathnames are handled', 'Unix like paths are handled'.
+Disk drives -'C:'- are handled on DOS-based boxes, but placing them in
+the build.xml file ruins all chances of portability. Relative file paths
+are much more portable. Semicolons work as path separators -a fact which
+is useful if your Ant invocation wrapper includes a list of jars as a
+defined property in the command line. In the build files you may find it
+better to build a classpath by listing individual files (using location=
+attributes), or by including a fileset of *.jar in the classpath
+definition.
+<p>
+There is also the <a
+href="manual/CoreTasks/pathconvert.html">PathConvert</a> task which
+can put a fully resolved path into a property. Why do that? Because then 
+you can use that path in other ways -such as pass it as a parameter to 
+some application you are calling, or use the replace task to patch it
+into a localised shell script or batch file.
+<p>
+Note that DOS descended file systems are case insensitive (apart from
+the obscure aberration of the WinNT posix subsystem run against NTFS),
+and that Windows pretends that all file extensions with four or more
+letters are also three letter extensions (try DELETE *.jav in your java
+directories to see a disastrous example of this).
+
+<p>
+
+Ant's policy on case sensitivity is whatever the underlying file system
+implements, and its handling of file extensions is that *.jav does not
+find any .java files. The Java compiler is of course case sensitive -you can
+not have a class 'ExampleThree' implemented in "examplethree.java".
+
+<p>
+
+Some tasks only work on one platform -<a href= "manual/CoreTasks/chmod.html">
+Chmod</a> being a classic example. These tasks usually result in just a
+warning message on an unsupported platform -the rest of the target's
+tasks will still be called. Other tasks degrade their functionality on
+platforms or Java versions. In particular, any task which adjusts the
+timestamp of files can not do so properly on Java 1.1. Tasks which can
+do that - <a href="manual/CoreTasks/get.html">Get</a>, <a
+href="manual/CoreTasks/touch.html">Touch</a> and <A href="manual/CoreTasks/unzip.html">
+Unjar/Unwar/Unzip</a> for example, degrade their functionality on
+Java1.1, usually resorting to the current timestamp instead.
+
+
+<p>
+
+Finally, Perl makes a good place to wrap up Java invocations cross
+platform, rather than batch files. It is included in most Unix
+distributions, and is a simple download for <a href=
+"http://www.activestate.com/Products/ActivePerl/"> Win32 platforms from
+ActiveState</a>. A Perl file with .pl extension, with the usual Unix
+path to perl on the line 1 comment and marked as executable can be run
+on Windows, OS/2 and Unix and hence called from Ant without issues. The
+perl code can be left to resolve its own platform issues. Dont forget to
+set the line endings of the file to the appropriate platform when you
+redistribute Perl code; <a
+href="manual/CoreTasks/fixcrlf.html">&lt;fixCRLF&gt;</a> 
+can do that for you.
+
+<a name="team">
+<h2>Team Development Processes</h2>
+</a>
+
+Even if each team member is allowed their choice of IDE/editor, or even
+OS, you need to set a baseline of functionality on each box. In
+particular, the JDKs and jars need to be in perfect sync. Ideally pick
+the latest stable Java/JDK version available on all developer/target
+systems and stick with it for a while. Consider assigning one person to
+be the contact point for all tools coming in -particularly open source
+tools when a new build is available on a nightly basis. Unless needed,
+these tools should only really be updated monthly, or when a formal
+release is made.
+
+<p>
+
+Another good tactic is to use a unified directory tree, and add on extra
+tools inside that tree. All references can be made relative to the tree.
+If team members are expected to add a directory in the project to their
+path, then command line tools can be included there -including those
+invoked by Ant exec tasks. Put everything under source code control and
+you have a one stop shop for getting a build/execute environment purely
+from CVS or your equivalent.
+
+
+<a name="deploying">
+<h2>Deploying with Ant</h2>
+</a>
+
+One big difference between Ant and older tools such as Make is that the
+processes for deploying Java to remote sites are reasonably well
+evolved in Ant. That is because we all have to do it these days, so
+many people have put in the effort to make the tasks easier.
+<p>
+
+Ant can <a href="manual/CoreTasks/jar.html">Jar</a>, <a href=
+"manual/CoreTasks/tar.html"> Tar</a> or <a
+href="manual/CoreTasks/zip.html">Zip</a> files for deployment, while the
+<a href="manual/CoreTasks/war.html">War</a> task extends the jar task
+for better servlet deployment. 
+<a href = "manual/OptionalTasks/jlink.html">Jlink</a> is a
+jar generation file which lets you merge multiple sub jars. This is
+ideal for a build process in which separate jars are generated by sub
+projects, yet the final output is a merged jar. <a href=
+"manual/OptionalTasks/cab.html">Cab</a> can be used on Win32 boxes to
+build a cab file which is useful if you still have to target IE deployment.
+
+<p>
+
+The <a href = "index.html#ftp">ftp</a> task lets you move stuff up to a
+server. Beware of putting the ftp password in the build file -a property
+file with tight access control is slightly better. The <a href=
+"manual/CoreTasks/fixcrlf.html">FixCRLF task</a> is often a useful interim step if
+you need to ensure that files have Unix file extensions before upload. A
+WebDav task has long been discussed, which would provide a more secure
+upload to web servers, but it is still in the todo list. Rumour has it
+that there is such a task in the jakarta-slide libraries. With MacOS X,
+Linux and Windows XP all supporting WebDAV file systems, you may even be able
+to use <a href="manual/CoreTasks/copy.html">&lt;copy&gt;</a> to deploy
+though a firewall. 
+
+<p>
+
+EJB deployment is aided by the <a href="manual/OptionalTasks/ejb.html">ejb tasks</a>,
+while the 
+<a
+href="manual/OptionalTasks/serverdeploy.html">&lt;serverdeploy&gt;</a>
+suite can deploy to multiple servers. The popularity of Ant has
+encouraged vendors to produce their own deployment tasks which they
+redistribute with their servers. For example, the Tomcat4.1 installation
+includes tasks to deploy, undeploy and reload web applications.
+
+<p>
+
+Finally, there are of course the fallbacks of just copying files to a
+destination using <a href="manual/CoreTasks/copy.html">Copy</a> and <a href =
+"index.html#copydir">Copydir</a> , or just sending them to a person or
+process using <a href= "manual/CoreTasks/mail.html">Mail</a> or the attachment
+aware <a href= "manual/OptionalTasks/mimemail.html">MimeMail</a>.
+In one project our team even used Ant to build CD images through a build followed
+by a long set of Copy tasks, which worked surprisingly well, certainly
+easier than when we mailed them to the free email service on
+myrealbox.com, then pulled them down from the far end's web browser, which we
+were running over WinNT remote desktop connection, that being tunneled
+through SSH.
+
+<a name="directories">
+<h2> Directory Structures</h2>
+</a>
+
+How you structure your directory tree is very dependent upon the
+project. Here are some directory layout patterns which can be used as
+starting points. All the jakarta projects follow a roughly similar
+style, which makes it easy to navigate around one form one project to
+another, and easy to clean up when desired. 
+
+<h3>Simple Project</h3>
+
+The project contains sub directories
+<table width="100%">
+<tr>
+    <td><b>bin</b>
+    </td>
+    <td>common binaries, scripts -put this on the path.
+    </td>
+</tr>
+
+<tr>
+    <td><b>build</b>
+    </td>
+    <td>This is the tree for building; Ant creates it and can empty it
+    in the 'clean' project.
+    </td>
+</tr>
+<tr>
+    <td><b>dist</b>
+    </td>
+    <td>Distribution outputs go in here; the directory is created in Ant
+    and clean empties it out
+    </td>
+</tr>
+<tr>
+    <td><b>doc</b>
+    </td>
+    <td>Hand crafted documentation
+    </td>
+</tr>
+<tr>
+    <td><b>lib</b>
+    </td>
+    <td>Imported Java libraries go in to this directory
+    </td>
+</tr>
+<tr>
+    <td><b>src</b>
+    </td>
+    <td>source goes in under this tree <i>in a heirarchy which matches
+    the package names<i>. The dependency rules of &lt;javac&gt; requires this.  
+    </td>
+</tr>
+</table>
+
+The bin, lib, doc and src directories should be under source code control.
+Slight variations include an extra tree of content to be included in the
+distribution jars -inf files, images, etc. These can go under source
+too, with a <tt>metadata</tt> directory for web.xml and similar
+manifests, and a <tt>web</tt> folder for web content -JSP, html, images
+and so on. Keeping the content in this folder (or sub heirarchy)
+together makes it easier to test links before deployment. The actual
+production of a deployment image -such as a war file- can be left to the
+appropriate Ant task: there is no need to completely model your source tree 
+upon the deployment heirarchy. 
+<p> 
+
+Javadoc output can be
+directed to a doc/ folder beneath build/, or to doc/javadoc.
+
+<h3>Interface and Implementation split</h3>
+
+If the interface is split from the implementation code then this can be
+supported with minor changes just by having a separate build path for
+the interface directory -or better still just in the jar construction:
+one jar for interface and one jar for implementation.
+
+
+<h3>Loosely Coupled Sub Projects</h3>
+
+In the loosely coupled approach multiple projects can have their own
+copy of the tree, with their own source code access rights.
+One difference to consider is only having one instance of the bin and
+lib directories across all projects. This is sometimes good -it helps
+keep copies of xerces.jar in sync, and sometimes bad -it can update
+foundational jar files before unit testing is complete.
+
+<p>
+
+To still have a single build across the sub projects, use parent
+build.xml files which call down into the sub projects.
+
+<p>
+
+This style works well if different teams have different code
+access/commitment rights. The risk is that by giving extra leeway to the
+sub projects, you can end up with incompatible source, libraries, build
+processes and just increase your workload and integration grief all round.
+<p>
+The only way to retain control over a fairly loosely integrated
+collection of projects is to have a fully automated  build 
+and test process which verifies that everything is still compatible. Sam
+Ruby runs one for all the apache java libraries and emails everyone when
+something breaks; your own project may be able to make use of 
+<A href="http://cruisecontrol.sourceforge.net/">Cruise Control</a> for
+an automated, continuous, background build process. 
+
+<h3>Integrated sub projects</h3>
+
+Tightly coupled projects have all the source in the same tree; different
+projects own different subdirectories. Build files can be moved down to
+those subdirectores (say src/com/iseran/core and src/com/iseran/extras),
+or kept at the top -with independent build files named core.xml and
+extras.xml
+
+<p>
+
+This project style works well if everyone trusts each other and the
+sub projects are not too huge or complex. The risk is that a split to a
+more loosely coupled design will become a requirement as the projects
+progress -but by the time this is realised schedule pressure and
+intertwined build files make executing the split well nigh impossible.
+If that happens then just keep with it until there is the time to
+refactor the project directory structures. 
+
+<a name="antupdate">
+<h2>
+    Ant Update Policies
+</h2>
+</a>
+
+Once you start using Ant, you should have a policy on when and how the
+team updates their copies. A simple policy is "every official release
+after whatever high stress milestone has pushed all unimportant tasks
+(like sleep and seeing daylight) on the back burner". This insulates you
+from the changes and occasional instabilities that Ant goes through
+during development. Its main disadvantage is that it isolates you from
+the new tasks and features that Ant is constantly adding.
+
+<p>
+
+Often an update will require changes to the build.xml files. Most
+changes are intended to be backwards compatible, but sometimes an
+incompatible change turns out to be
+necessary. That is why doing the update in the lull after a big
+milestone is important. It is also why including ant.jar and related
+files in the CVS tree helps ensure that old versions of your software
+can be still be built.
+
+<p>
+
+The most aggressive strategy is to get a weekly or daily snapshot of the
+ant source, build it up and use it. This forces you to tweak the
+build.xml files more regulary, as new tasks and attributes can take
+while to stabilise. You really have to want the new features, enjoy
+gratuitous extra work or take pleasure in upsetting your colleagues to
+take this approach.
+
+<p>
+
+Once you start extending Ant with new tasks, it suddenly becomes much
+more tempting to pull down regular builds. The most recent Ant builds
+are invariably the the best platform for writing your extensions, as you
+can take advantage of the regular enhancements to the foundational
+classes. It also prevents you from wasting time working on something
+which has already been done. A newly submitted task to do something
+complex such as talk to EJB engines, SOAP servers or just convert a text
+file to uppercase may be almost exactly what you need -so take it,
+enhance it and offer up the enhancements to the rest of the world. This
+is certainly better than starting work on your 'text case converter'
+task on Ant 0.8 in isolation, announcing its existence six months latter
+and discovering that instead of adulation all you get are helpful
+pointers to the existing implementation. The final benefit of being
+involved with the process is that it makes it easier for your tasks to 
+be added with the Ant CVS tree, bringing forward the date when Ant has
+taken on all the changes you needed to make to get your project to work.
+If that happens you can revert to an official Ant release, and get on
+with all the other crises. 
+
+<p>
+
+You should also get on the <a href =
+"mailto:dev-subscribe@ant.apache.org" > dev mailing list
+</a>, as it is where the other developers post their work, problems and
+experience. The volume can be quite high: 40+ messages a day, so
+consider routing it to an email address you don't use for much else. And
+don't make everyone on the team subscribe; it can be too much of a
+distraction.
+
+<a name="install">
+<h2>
+Installing with Ant.
+</h2>
+</a>
+
+Because Ant can read environment variables, copy, unzip and delete files
+and make java and OS calls, it can be used for simple installation
+tasks. For example, an installer for tomcat could extract the
+environment variable TOMCAT_HOME, stop tomcat running, and copy a war
+file to TOMCAT_HOME/webapps. It could even start tomcat again, but the
+build wouldn't complete until tomcat exited, which is probably not what
+was wanted. 
+
+<p>
+
+The advantage of using Ant is firstly that the same install targets
+can be used from your local build files (via an <tt>ant</tt> invocation
+of the install.xml file), and secondly that a basic install target is
+quite easy to write. The disadvantages of this approach are that the
+destination must have an up to date version of Ant correctly
+pre-installed, and Ant doesn't allow you to handle failures well -and a
+good installer is all about handling when things go wrong, from files
+being in use to jar versions being different. This means that Ant is not
+suited for shrink wrapped software, but it does work for deployment and
+installation to your local servers.
+
+<p>
+
+One major build project I was involved in had an Ant install build file
+for the bluestone application server, which would shutdown all four
+instances of the app server on a single machine, copy the new version of
+the war file (with datestamp and buildstamp) to an archive directory,
+clean up the current deployed version of the war and then install the
+new version. Because bluestone restarted JVMs on demand, this script was
+all you needed for web service deployment. On the systems behind the
+firewall, we upped the ante in the deployment process by using the ftp
+task to copy out the war and build files, then the telnet task to
+remotely invoke the build file. The result was we had automated
+recompile and redeploy to local servers from inside our IDE (Jedit) or
+the command line, which was simply invaluable. Imagine pressing a button
+on your IDE toolbar to build, unit test, deploy and then functional test
+your webapp. 
+
+<p>
+
+One extra trick I added later was a junit test case to run through the
+install check list. With tests to verify access permissions on network
+drives, approximate clock synchronisation between servers, DNS
+functionality, ability to spawn executables and all the other trouble
+spots, the install script could automatically do a system health test
+during install time and report problems. [The same tests could also be
+invoked from a JMX MBean, but that's another story]. 
+
+<p>
+
+So, Ant is not a substitute for a real installer tool, except in the
+special case of servers you control, but in that context it does let
+you integrate remote installation with your build. 
+
+
+<a name="tips">
+<h2>
+Tips and Tricks</h2>
+</a>
+<dl>
+<dt><b>
+    get
+</b><dd>
+
+The <a href="manual/CoreTasks/get.html">&lt;get&gt;</a> task can fetch any URL, so be used
+to trigger remote server side code during the build process, from remote
+server restarts to sending SMS/pager messages to the developer
+cellphones.
+
+<dt><b>
+i18n
+</b><dd>
+
+
+Internationalisation is always trouble. Ant helps here with the <A href=
+"manual/OptionalTasks/native2ascii.html">native2ascii</a> task which can escape out all non
+ascii characters into unicode. You can use this to write java files
+which include strings (and indeed comments) in your own non-ASCII
+language and then use native2ascii to convert to ascii prior to feeding
+through javac. The rest of i18n and l12n is left to you...
+
+<dt><b>
+Use Property Files
+</b><dd>
+
+Use external property files to keep per-user settings out the build
+files -especially passwords. Property files can also be used to
+dynamically set a number of properties based on the value of a single
+property, simply by dyamically generating the property filename from the
+source property. They can also be used as a source of constants across
+multiple build files.
+
+<dt><b>
+Faster compiles with Jikes
+</b><dd>
+
+The <a href="http://www.jikes.org/">jikes compiler</a> is usually much
+faster than javac, does dependency checking and has better error
+messages (usually). Get it. Then set
+build.compiler to "jikes" for it to be used in your build files.
+Doing this explicitly in your build files is a bit dubious as it requires the
+whole team (and sub projects) to be using jikes too -something you can only
+control in small, closed source projects. But if you set 
+<tt>ANT_OPTS&nbsp;=&nbsp;-Dbuild.compiler=jikes</tt>
+in your environment, then all your builds on your system will use 
+Jikes automatically, while others can choose their own compiler, or let
+ant choose whichever is appropriate for the current version of Java.   
+
+<dt><b>
+#include targets to simplify multi build.xml projects
+</b><dd>
+
+You can import XML files into a build file using the XML parser itself.
+This lets a multi-project development program share code through reference,
+rather than cut and paste re-use. It also lets one build up a file of
+standard tasks which can be reused over time. Because the import
+mechanism is at a level below which Ant is aware, treat it as
+equivalent to the #include mechanism of the 'legacy' languages C and
+C++.
+
+<p>
+
+There are two inclusion mechanisms, an ugly one for all parsers and a
+clean one. The ugly method is the only one that was available on Ant1.5 and
+earlier:-
+<pre>
+    &lt;!DOCTYPE project [
+      &lt;!ENTITY propertiesAndPaths SYSTEM &quot;propertiesAndPaths.xml&quot;&gt;
+      &lt;!ENTITY taskdefs SYSTEM &quot;taskdefs.xml&quot;&gt;
+    ]&gt;  
+    
+        &amp;propertiesAndPaths;
+        &amp;taskdefs;
+</pre>
+The cleaner method in Ant1.6 is the <tt>&lt;import&gt;</tt> task that imports
+whole build files into other projects. The entity inclusion example
+could <i>almost</i> be replaced by two import statements:-
+<pre>
+ &lt;import file="propertiesAndPaths.xml"&gt;
+ &lt;import file="taskdefs.xml"&gt;
+</pre>
+
+We say almost as top level declarations (properties and taskdefs) 
+do not get inserted into the XML file exactly where the import statement
+goes, but added to the end of the file. This is because the import process
+takes place after the main build file is parsed, during execution, whereas
+XML entity expansion is handled during the parsing process.
+
+<p>
+
+The <tt>&lt;import&gt;</tt> task does powerful things, such as let you override targets,
+and use ant properties to name the location of the file to import. Consult the
+<a href="manual/CoreTasks/import.html">documentation</a> for the specifics of
+these features.  
+
+<p>
+
+Before you go overboard with using XML inclusion, note that the
+<tt>&lt;ant&gt;</tt> task lets you call any target in any other build
+file -with all your property settings propagating down to that target.
+So you can actually have a suite of utility targets
+-"deploy-to-stack-a", "email-to-team", "cleanup-installation" which can
+be called from any of your main build files, perhaps with subtly changed
+parameters. Indeed, after a couple of projects you may be able to create
+a re-usable core build file which contains the core targets of a basic
+Java development project -compile, debug, deploy- which project specific
+build files call with their own settings. If you can achive this then
+you are definately making your way up the software maturity ladder. With
+a bit of work you may progress from being a SEI CMM Level 0 organisation
+"Individual Heroics are not enough" to SEI CMM Level 1, "Projects only
+succeed due to individual heroics"
+
+<p>
+
+NB, <tt>&lt;ant&gt;</tt> copies all your properties unless the
+<i>inheritall</i> attribute is set to false. Before that attribute
+existed you had to carefully name all property definitions in all build
+files to prevent unintentional overwriting of the invoked property by
+that of the caller, now you just have to remember to set
+<tt>inheritall="false"</tt> on all uses of the &lt;ant&gt; task.
+
+    
+<dt><b>
+Implement complex Ant builds through XSL
+</b><dd>
+
+XSLT can be used to dynamically generate build.xml files from a source
+xml file, with the <a href="manual/CoreTasks/style.html">&lt;xslt&gt;</a> task controlling
+the transform. This is the current recommended strategy for creating
+complex build files dynamically. However, its use is still apparently
+quite rare -which means you will be on the bleeding edge of technology.
+
+
+<dt><b>
+Change the invocation scripts
+</b><dd>
+
+By writing your own invocation script -using the DOS, Unix or Perl
+script as a starting point- you can modify Ant's settings and behavior for an
+individual project. For example, you can use an alternate variable to
+ANT_HOME as the base, extend the classpath differently, or dynamically
+create a new command line property 'project.interfaces' from all .jar
+files in an interfaces directory.
+
+<p>
+
+Having a custom invocation script which runs off a CVS controlled
+library tree under PROJECT_HOME also lets you control Ant versions
+across the team -developers can have other copies of Ant if they want,
+but the CVS tree always contains the jar set used to build your project.
+
+<p>
+
+You can also write wrapper scripts which invoke the existing Ant
+scripts. This is an easy way to extend them. The wrapper scripts can add
+extra definitions and name explicit targets, redefine ANT_HOME and
+generally make development easier. Note that "ant" in Windows is really
+"ant.bat", so should be invoked from another batch file with a "CALL
+ant" statement -otherwise it never returns to your wrapper.
+
+
+<dt><b>
+Write all code so that it can be called from Ant
+</b><dd>
+
+This seems a bit strange and idealistic, but what it means is that you should
+write all your java code as if it may be called as a library at some point in
+future. So do not place calls to <tt>System.exit()</tt> deep in the code -if you
+want to exit a few functions in, raise an exception instead and have
+<tt>main()</tt> deal with it.
+
+<p>
+
+Moving one step further, consider proving an Ant Task interface to the
+code as a secondary, primary or even sole interface to the
+functionality. Ant actually makes a great bootloader for Java apps as it
+handles classpath setup, and you can re-use all the built in tasks for
+preamble and postamble work. Some projects, such as 
+<a href="http://xdoclet.sf.net">XDoclet</a> only run under Ant, because
+that is the right place to be.
+
+
+
+<!-- <dt><b>
+Use Antidote as the invocation tool
+</b><dd>
+Even if you edit Ant files by hand, Antidote makes a good execution tool
+because it eliminates the startup time of the JVM, perhaps even some of
+the XML parsing delays. 
+ -->
+<dt><b>
+Use the replace task to programmatic modify text files in your project.  
+</b><dd>
+Imagine your project has some source files -BAT files, ASPX pages (!), anything
+which needs to be statically customised at compile time for particular
+installations, such driven from some properties of the project such as JVM options, or the URL
+to direct errors too. The replace task can be used to modify files, substituting text and creating
+versions customised for that build or destination. Of course, per-destination customisation
+should be delayed until installation, but if you are using Ant for the remote installation
+that suddenly becomes feasible.     
+
+
+
+<dt><b>
+Use the mailing lists
+</b><dd>
+There are two 
+<a href="http://ant.apache.org/mail.html">mailing lists</a> 
+related to Ant, user and developer. Ant user is where <i>all</i>
+questions related to using Ant should go. Installation, syntax, code
+samples, etc -post your questions there or search the archives for 
+whether the query has been posted and answered before. Ant-developer
+is where Ant development takes place -so it is <i>not</i> the place to
+post things like "I get a compilation error when I build my project" or
+"how do I make a zip file". If you are actually extending Ant, on the other
+hand, it is the ideal place to ask questions about how to add new tasks, make
+changes to existing ones -and to post the results of your work, if you want them
+incorporated into the Ant source tree.  
+   
+</dl>
+
+<a name="puttingtogether">
+    <h2>
+        Putting it all together
+    </h2>
+</a>
+
+What does an Ant build process look like in this world? Assuming a
+single directory structure for simplicity, the build file
+should contain a number of top level targets
+<ul>
+<li>build - do an (incremental) build
+<li>test - run the junit tests
+<li>clean - clean out the output directories
+<li>deploy - ship the jars, wars, whatever to the execution system
+<li>publish - output the source and binaries to any distribution site
+<li>fetch - get the latest source from the cvs tree
+<li>docs/javadocs - do the documenation
+<li>all - clean, fetch, build, test, docs, deploy
+<li>main - the default build process (usually build or build & test)
+</ul>
+Sub projects 'web', 'bean-1', 'bean-2' can be given their own build
+files -web.xml, bean-1.xml, bean-2.xml- with the same entry points.
+Extra toplevel tasks related to databases, web site images and the like
+should be considered if they are part of the process.
+
+<p>
+Debug/release switching can be handled with separate initialisation
+targets called before the compile tasks which define the appropriate
+properties. Antcall is the trick here, as it allows you to have two paths
+of property initialisation in a build file.   
+
+<p>
+Internal targets should be used to structure the process
+<ul>
+<li> init - initialise properties, extra-tasks, read in per-user
+property files.
+<li> init-release - initialise release properties
+<li> compile - do the actual compilation
+<li> link/jar - make the jars or equivalent
+<li> staging - any pre-deployment process in which the output is dropped
+    off then tested before being moved to the production site.
+</ul>
+
+The switching between debug and release can be done by making
+init-release conditional on a property, such as <tt>release.build</tt> 
+being set :-
+
+<pre>&lt;target name=&quot;init-release&quot; if=&quot;release.build&quot;&gt;
+    &lt;property name=&quot;build.debuglevel&quot; value=&quot;lines,source&quot;/&gt;    
+  &lt;/target&gt;
+</pre>
+
+You then have dependent targets, such as "compile", depend on this
+conditional target; there the 'default' properties are set, and then the
+property is actually used. Because Ant properties are <i>immutable</i>,
+if the release target was executed its settings will override the
+default values:
+
+<pre>&lt;target name=&quot;compile&quot; depends=&quot;init,init-release&quot;&gt;
+    &lt;property name=&quot;build.debuglevel&quot; value=&quot;lines,vars,source&quot;/&gt; 
+    &lt;echo&gt;debug level=${build.debuglevel}&lt;/echo&gt;
+    &lt;javac destdir=&quot;${build.classes.dir}&quot;
+       debug=&quot;true&quot;
+       debuglevel=&quot;${build.debuglevel}&quot;
+       includeAntRuntime=&quot;false&quot;
+       srcdir=&quot;src&quot;&gt;
+      &lt;classpath refid=&quot;compile.classpath&quot;/&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+</pre>
+
+As a result, we now have a build where the release mode only includes
+the filename and line debug information (useful for bug reports), while
+the development system included variables too. 
+<p>
+
+It is useful to define a project name property which can be echoed in
+the init task. This lets you work out which Ant file is breaking in a
+multi file build.
+
+<p>
+
+What goes in to the internal Ant tasks depends on your own projects. One
+very important tactic is 'keep path redefinition down through
+references' - you can reuse paths by giving them an ID and then
+referring to them via the 'refid' attribute you should only need to
+define a shared classpath once in the file; filesets can be reused
+similarly.
+
+<p>
+
+Once you have set up the directory structures, and defined the Ant tasks
+it is time to start coding. An early priority must be to set up the
+automated test process, as that not only helps ensures that the code
+works, it verifies that the build process is working.
+
+<p>
+
+And that's it. The build file shouldn't need changing as new source
+files get added, only when you want to change the deliverables or part
+of the build process. At some point you may want to massively
+restructure the entire build process, restructuring projects and the
+like, but even then the build file you have should act as a foundation
+for a split build file process -just pull out the common properties into
+a properties file all build files read in, keep the target names unified
+and keep going with the project. Restructuring the source code control
+system is often much harder work.
+
+<h2>The Limits of Ant</h2>
+
+Before you start adopting Ant as the sole mechanism for the build
+process, you need to be aware of what it doesn't do.
+<p>
+
+<h3>It's not a scripting language</h3>
+
+Ant lets you declare what you want done, with a bit of testing of the
+platform and class libraries first to enable some platform specific
+builds to take place. It does not let you specify how to handle things
+going wrong (a listener class can do that), or support complex
+conditional statements.
+
+<p>
+
+If your build needs to handle exceptions then look at the sound listener
+as a simple example of how to write your own listener class. Complex
+conditional statements can be handled by having something else do the
+tests and then build the appropriate Ant task. XSLT can be used for
+this.
+
+<h3>It's not Make</h3>
+
+Some of the features of make, specifically inference rules and
+dependency checking are not included in Ant. That's because they are
+'different' ways of doing a build. Make requires you to state
+dependencies and the build steps, Ant wants you to state tasks and the
+order between them, the tasks themselves can do depedency checking or
+not. A full java build using Jikes is so fast that dependency checking
+is relatively moot, while many of the other tasks (but not all), compare
+the timestamp of the source file with that of the destination file
+before acting.
+
+<h3>It's not meant to be a nice language for humans</h3>
+
+XML isn't a nice representation of information for humans. It's a
+reasonable representation for programs, and text editors and source code
+management systems can all handle it nicely. But a complex Ant file can
+get ugly because XML is a bit ugly, and a complex build is, well,
+complicated. Use XML comments so that the file you wrote last month
+still makes sense when you get back to it, and use Antidote to edit the
+files if you prefer it. 
+
+<h3>Big projects still get complicated fast</h3>
+
+Large software projects create their own complexity, with inter-dependent
+libraries, long test cycles, hard deployment processes and a multitude of
+people each working on their own bit of the solution. That's even before
+the deadlines loom close, the integration problems become insurmountable,
+weekends become indistinguishable from weekdays in terms of workload and 
+half the team stops talking to the other half. Ant may simplify the
+build and test process, and can eliminate the full time 'makefile engineer'
+role, but that doesn't mean that someone can stop 'owning the build'. 
+Being in charge of the build has to mean more than they type 'ant all' on
+their system, it means they need to set the standards of what build tools to
+use, what the common targets, what property names and files should be
+and generally oversee the sub projects build processes. On a small project,
+you don't need to do that -but remember: small projects become big projects
+when you aren't looking. If you start off with a little bit of process, then
+you can scale it if needed. If you start with none, by the time you need 
+it it will be too late.   
+
+<h3>You still need all the other foundational bits of a software
+project</h3>
+
+If you don't have an source code management system, you are going to end
+up hosed. If you don't have everything under SCM, including web pages,
+dependent jars, installation files, you are still going to end up hosed,
+it's just a question of when it's going to happen.
+CVS is effectively free and works well with Ant, but Sourcesafe, Perforce,
+Clearcase and StarTeam also have Ant tasks. These tasks
+let you have auto-incrementing build counters, and automated file
+update processes. 
+
+<p>
+
+You also need some kind of change control process, to resist
+uncontrolled feature creep. Bugzilla is a simple and low cost tool for
+this, using Ant and a continuous test process enables a rapid evolution of code
+to adapt to those changes which are inevitable.  
+
+<h2>Endpiece</h2>
+
+Software development is meant to be fun. Being in the maelstrom of a
+tight project with the stress of integration and trying to code
+everything up for an insane deadline can be fun -it is certainly
+exhilirating. Adding a bit of automation to the process may make things
+less chaotic, and bit less entertaining, but it is a start to putting
+you in control of your development process. You can still have fun, you
+should just have less to worry about, a shorter build/test/deploy cycle
+and more time to spend on feature creep or important things like skiing.
+So get out there and have fun!
+
+<a name="reading">
+<h2>Further Reading</h2>
+</a>
+<ul>
+<li>
+<a
+href="http://www.martinfowler.com/articles/continuousIntegration.html">
+<i>Continuous Integration</i></a>; Martin Fowler. <br>
+A paper on using Ant within a software project
+running a continuous integration/testing proces.
+<li><i> Refactoring</i>; Martin Fowler, ISBN: 0201485672 <br>
+    Covers JUnit as well as tactics for making some headway with the mess of
+    code you will soon have.
+
+<li><a href="http://manning.com/antbook/"><i>Java Development with
+Ant</i></a>;
+    Erik Hatcher and Steve Loughran. 
+
+    
+<li>
+<a href="http://www.iseran.com/Steve/papers/when_web_services_go_bad.html">
+    <i>When Web Services Go Bad</i></a>; Steve Loughran.<br>
+    One of the projects this paper is based on.    
+    
+    
+</ul>
+
+<a name="author">
+<h3>About the Author</h3>
+</a>
+
+Steve Loughran is a research scientist at a corporate R&amp;D lab,
+currently on a sabbatical building production web services against
+implausible deadlines for the fun of it. He is also a committer on
+Apache Ant and Apache Axis, and co-author of 
+<a href="http://manning.com/antbook/"><i>Java Development with Ant</i></a>. 
+He thinks that if you liked this document you'll love that book because
+it doesn't just explain Ant, it goes into processes, deployment and best practices
+and other corners of stuff that really make Ant useful. (It would 
+have been easier to just rehash the manual, but that wouldn't have been
+so useful or as much fun).  
+
+<p>
+
+For questions related to this document, use the Ant mailing list.
+
+<hr>
+<p align="center">Copyright &copy; 2000-2003 Apache Software Foundation. All rights
+Reserved.</p>
+</body>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/ant_task_guidelines.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/ant_task_guidelines.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/ant_task_guidelines.html	(revision 14989)
@@ -0,0 +1,481 @@
+<html><head>
+<title>
+Apache Ant Task Design Guidelines
+</title>
+<link rel="stylesheet" type="text/css" href="manual/stylesheets/antmanual.css">
+</head><body>
+
+<h1>Apache Ant Task Design Guidelines</h1>
+
+This document covers how to write ant tasks to a standard required to be
+incorporated into the Ant distribution. You may find it useful when
+writing tasks for personal use as the issues it addresses are still
+there in such a case.
+
+
+<h2>Don't break existing builds</h2>
+
+Even if you find some really hideous problem with ant, one that is easy
+to fix, if your fix breaks an existing build file then we have problems.
+Making sure that every build file out there still works, is one of the
+goals of all changes. As an example of this, Ant1.5 passes the single
+dollar sign "$" through in strings; Ant1.4 and before would strip it. To
+get this fix in we first had to write the test suite to expose current
+behaviour, then change something so that singe $ was passed through, but
+double "$$" got mapped to "$" for backwards compatibility.
+
+
+<h2>Use built in helper classes</h2>
+
+Ant includes helper tasks to simplify much of your work. Be warned that
+these helper classes will look very different in ant2.0 from these 1.x
+versions. However it is still better to use them than roll your own, for
+development, maintenance and code size reasons.
+
+<h4>Execute</h4>
+
+Execute will spawn off separate programs under all the platforms which
+ant supports, dealing with Java version issues as well as platform
+issues. Always use this task to invoke other programs.
+
+<h4>Java, ExecuteJava</h4>
+
+These classes can be used to spawn Java programs in a separate VM (they
+use execute) or in the same VM -with or without a different classloader.
+When deriving tasks from this, it often benefits users to permit the
+classpath to be specified, and for forking to be an optional attribute.
+
+
+<h4>Project and related classes</h4>
+
+Project, FileUtils, JavaEnvUtils all have helper functions
+to do things like touch a file, to
+copy a file and the like. Use these instead of trying to code them
+yourself -or trying to use tasks which may be less stable and fiddlier
+to use.
+
+
+<h2>Obey the Sun/Java style guidelines</h2>
+
+The Ant codebase aims to have a single unified coding standard, and that
+standard is the
+<a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">
+Sun Java coding guidelines
+</a>
+<p>
+
+It's not that they are better than any alternatives, but they are a
+standard and they are what is consistently used in the rest of the
+tasks. Code will not be incorporated into the database until it complies
+with these.
+
+<p>
+
+If you are writing a task for your personal or organisational use, you
+are free to use whatever style you like. But using the Sun Java style
+will help you to become comfortable with the rest of the Ant source,
+which may be important.
+
+<p>
+
+One important rule is 'no tabs'. Use four spaces instead. Not two,
+not eight, four. Even if your editor is configured to have a tab of four
+spaces, lots of others aren't -spaces have more consistency across
+editors and platforms. Some IDEs (JEdit) can highlight tabs, to stop you
+accidentally inserting them
+<p>
+There is an ant build file check.xml in the main ant directory with runs 
+  <a href="http://checkstyle.sourceforge.net">checkstyle</a> over
+  ant's source code.
+
+<h2>Attributes and elements</h2>
+Use the Ant introspection based mapping of attributes into Java datatypes,
+rather than implementing all your attributes as setFoo(String) and doing
+the mapping to Int, bool or file yourself. This saves work on your part,
+lets Java callers use you in a typesafe manner, and will let the Xdocs
+documentation generator work out what the parameters are.
+
+<p>
+The ant1.x tasks are very inconsistent regarding naming of attributes
+-some tasks use <tt>source</tt>, others <tt>src</tt>.
+Here is a list of preferred attribute names.
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+<td>
+    failonerror
+</td>
+<td>
+    boolean to control whether failure to execute should throw a
+    <tt>BuildException</tt> or just print an error.
+    Parameter validation failures should always throw an error, regardless
+    of this flag
+</td>
+</tr>
+<tr>
+<td>
+    destdir
+</td>
+<td>
+    destination directory for output
+</td>
+</tr>
+<td>
+    destfile
+</td>
+<td>
+    destination file for output
+</td>
+</tr>
+<tr>
+<td>
+    srcdir
+</td>
+<td>
+    source directory
+</td>
+</tr>
+<tr>
+<td>
+    srcfile
+</td>
+<td>
+    source file
+</td>
+</tr>
+</table>
+Yes, this is a very short list. Try and be vaguely consistent with the core
+tasks, at the very least.
+
+<h2>Support classpaths</h2>
+
+Try and make it possible for people to supply a classpath to your task,
+if you need external libraries, rather than make them add everything to
+the ANT_HOME\lib directory. This lets people keep the external libraries
+in their ant-based project, rather than force all users to make changes
+to their ant system configuration.
+
+<h2>Design for controlled re-use</h2>
+
+Keep member variables private. If read access by subclasses is required.
+add accessor methods rather than change the accessiblity of the member.
+This enables subclasses to access the contents, yet
+still be decoupled from the actual implementation.
+<p>
+
+The other common re-use mechanism in ant is for one task to create and
+configure another. This is fairly simple.
+
+<h2>Do your own Dependency Checking</h2>
+
+Make has the edge over Ant in its integrated dependency checking: the
+command line apps make invokes dont need to do their own work. Ant tasks
+do have to do their own dependency work, but if this can be done then
+it can be done well. A good dependency aware task can work out the dependencies
+without explicit dependency information in the build file, and be smart
+enough to work out the real dependencies, perhaps through a bit of file parsing.
+The <tt>depends</tt> task is the best example of this. Some of the zip/jar
+tasks are pretty good too, as they can update the archive when needed.
+Most tasks just compare source and destination timestamps and work from there.
+Tasks which don't do any dependency checking do not help users as much as
+they can, because their needless work can trickle through the entire build, test
+and deploy process.
+
+<h2>Support Java 1.2 through Java 1.4</h2>
+
+Ant1.5 and lower was designed to support Java1.1. Ant1.6 and higher
+is designed to support Java1.2: to build on it, to run on it. Sometimes
+functionality of tasks have to degrade in that environment
+- this is usually due to library limitations;
+such behaviour change must always be noted in the documentation.
+<p>
+What is problematic is code which is dependent on Java1.3 features
+-java.lang.reflect.Proxy, or Java1.4 features - java.io.nio for example.
+Be also aware of extra
+methods in older classes - like StringBuffer#append(StringBuffer).
+These can not be used directly by any code and still be able to compile
+and run on a Java 1.2 system.
+If a new method in an existing class
+is to be used, it must be used via reflection and the
+<tt>NoSuchMethodException</tt> handled somehow.
+<p>
+What if code simply does not work on Java1.2? It can happen. It will
+probably be OK to have the task as an optional task, with compilation
+restricted to Java1.3 or later through build.xml modifications.
+Better still, use reflection to link to the classes at run time.
+<p>
+Java 1.4 adds a new optional change to the language itself, the
+<tt>assert</tt> keyword, which is only enabled if the compiler is told
+to compile 1.4 version source. Clearly with the 1.2 compatibility requirement,
+Ant tasks can not use this keyword. They also need to move away from
+using the JUnit <tt>assert()</tt> method and call <tt>assertTrue()</tt>
+instead.
+<p>
+Java 1.5 will (perhaps) add a new keyword - enum, one should avoid
+this for future compatibility.
+
+
+<h2>Refactor</h2>
+
+If the changes made to a task are making it too unwieldy, split it up
+into a cleaner design, refactor the code and submit not just feature
+creep but cleaner tasks. A common design pattern which tends to occur in
+the ant process is the adoption of the adapter pattern, in which a base
+class (say Javac or Rmi) starts off simple, then gets convoluted with
+support for multiple back ends -javac, jikes, jvc. A refactoring to
+split the programmable front end from the classes which provide the back
+end cleans up the design and makes it much easier to add new back ends.
+But to carry this off one needs to keep the interface and behaviour of
+the front end identical, and to be sure that no subclasses have been
+accessing data members directly -because these data members may not
+exist in the refactored design. Which is why having private data members
+is so important.
+
+
+<h2>Test</h2>
+
+Look in <tt>ant/src/testcases</tt> and you will find JUnit tests for the
+shipping ant tasks, to see how it is done and what is expected of a new
+task. Most of them are rudimentary, and no doubt you could do better for
+your task -feel free to do so!
+
+<p>
+
+A well written set of test cases will break the Ant task while it is in
+development, until the code is actually complete. And every bug which
+surfaces later should have a test case added to demonstrate the problem,
+and to fix it.
+
+<p>
+
+The test cases are a great way of testing your task during development.
+A simple call to 'build run-test' in the ant source tree will run all ant
+tests, to verify that your changes don't break anything.
+To test a single task, use the one shot <code>ant run-single-test
+-Dtestcase=${testname}</code> where <code>${testname}</code> is the name of your test class.
+
+
+<p>
+
+The test cases are also used by the committers to verify that changes
+and patches do what they say. If you've got test cases it increases your
+credibility significantly. To be precise, we hate submissions without
+test cases, as it means we have to write them ourselves. This is
+something that only gets done if we need the task or it is perceived as
+utterly essential to many users.
+
+<p>
+
+Remember also that Ant 1.x is designed to compile and run on Java1.2, so
+you should test on Java 1.2 as well as any later version which you use.
+You can download an old SDK from Sun for this purpose.
+<p>
+Finally, run a full <code>build test</code> before and after you start
+developing your project, to make sure you havent broken anything else by
+accident.
+
+<h2>Document</h2>
+
+Without documentation, the task can't be used. So remember to provide a
+succint and clear html (soon, xml) page describing the task in a similar
+style to that of existing tasks. It should include a list of attributes
+and elements, and at least one working example of the task. Many users
+cut and paste the examples into their build files as a starting point,
+so make the examples practical and test them too.
+<p>
+You can use the xdocs stuff in proposal/xdocs to autogenerate your
+documentation page from the javadocs of the source; this makes life
+easier and will make the transition to a full xdoclet generated
+documentation build process trivial.
+
+<h2>Licensing and Copyright</h2>
+
+Any code submitted to the Apache project must be compatible with the
+Apache Software License, and the act of submission must be viewed as an
+implicit transfer of ownership of the submitted code to the Apache
+Software Foundation.
+
+<p>
+This is important.
+
+<p>
+
+The fairly laissez-faire license of Apache is not compabitible with
+either the GPL or the Lesser GPL of the Free Software Foundation -the
+Gnu project. These licenses have stricter terms, "copyleft", which are
+not in the Apache Software Foundation license.
+This permits people and organisations to build
+commercial and closed source applications atop the Apache libraries and
+source -but not use the Apache, Ant or Jakarta Project names without
+permission.
+
+<p>
+
+Because the Gnu GPL license immediately extends to cover any larger
+application (or library, in the case of GLPL) into which it is
+incorporated, the Ant team can not incorporate any task based upon GPL
+or LGPL source into the Ant codebase. You are free to submit it, but it
+will be politely and firmly rejected.
+
+<p>
+
+Once ant-2 adds better dynamic task incorporation, it may be possible to
+provide a framework for indirectly supporting [L]GPL code, but still no tasks
+directly subject to the Gnu licenses can be included in the Ant
+CVS tree.
+
+<p>
+If you link to a GPL or LGPL library, by <code>import</code> or
+reflection, your task must be licensed under the same terms. So tasks
+linking to (L)GPL code can't go into the Apache managed codebase.
+Tasks calling such code can use the 'exec' or 'java' tasks to run the
+programs, as you are just executing them at this point, not linking to
+them.
+<p>
+Even if we cannot include your task into the Apache codebase, we can
+still point to where you host it -just submit a diff to
+xdocs/external.html pointing to your task.
+
+If your task links directly to proprietary code, we have a differnt
+problem: it is really hard to build the tasks. Please use reflection.
+
+<h3>Dont re-invent the wheel</h3>
+
+We've all done it: written and submitted a task only to discover it
+was already implemented in a small corner of another task, or it has
+been submitted by someone else and not committed. You can avoid this
+by being aware of what is in the latest CVS tree -keep getting the daily
+source updates, look at manual changes and subscribe to the dev
+mailing list.
+
+<p>
+
+If you are thinking of writing a task, posting a note on your thoughts
+to the list can be informative -you well get other peoples insight and
+maybe some half written task to do the basics, all without writing a
+line of code.
+
+
+<h2>Submitting to Ant</h2>
+
+The process for submitting an Ant task is documented on the
+<a href="http://jakarta.apache.org/site/guidelines.html">
+jakarta web site</a>.
+The basic mechanism is to mail it to the dev mailing list.
+It helps to be on this list, as you will see other submissions, and
+any debate about your own submission.
+<p>
+You may create your patch file using either of the following approaches.
+The committers recommend you to take the first approach.
+<p>
+<ul>
+<li> <h3>Approach 1 - The Ant Way</h3>
+<p>
+Use Ant to generate a patch file to Ant:
+<pre class="code">
+ant -f patch.xml
+</pre>
+This will create a file named patch.tar.gz that will contain a unified
+diff of files that have been modified and also include files that have
+been added.  Review the file for completeness and correctness.  This approach
+is recommended because it standardizes the way in which patch files are
+constructed.  It also eliminates the chance of you missing to submit new files
+that constitute part of the patch.
+<p>
+<li><h3>Approach 2 - The Manual Way</h3>
+<p>
+Patches to existing files should be generated with
+<code>cvs diff -u filename</code>
+ and save the output to a file. If you want to get
+the changes made to multiple files in a directory , just use <code>cvs
+diff -u</code>.  Then, Tar and GZip the patch file as well as any new files
+that you have added.
+</ul>
+<p>
+The patches should be sent as an attachment to a message titled [PATCH]
+and distinctive one-line summary in the subject of the patch. The
+filename/task and the change usually suffices. It's important to include
+the changes as an attachment, as too many mailers reformat the text
+pasted in, which breaks the patch.
+<p>
+Then you wait for one of the committers to commit the patch, if it is
+felt appropriate to do so. Bug fixes go in quickly, other changes
+often spark a bit of discussion before a (perhaps revised) commit is
+made.
+<p>
+
+New submissions should be proceeded with [SUBMIT]. The mailer-daemon
+will reject any messages over 100KB, so any large update should be
+zipped up. If your submission is bigger than that, why not break it up
+into separate tasks.
+<p>
+
+We also like submissions to be added to
+<a href="http://nagoya.apache.org/bugzilla/">bugzilla</a>, so that they
+dont get lost. Please submit them by first filing the report with a
+meaningful name, then adding files as attachments. Use CVS diff files
+please!
+<p>
+
+If you hear nothing after a couple of weeks, remind the mailing list.
+Sometimes really good submissions get lost in the noise of other issues.
+This is particularly the case just prior to a new point release of
+the product. At that time anything other than bug fixes will tend
+to be neglected.
+
+<h2>Checklists</h2>
+
+These are the things you should verify before submitting patches and new
+tasks. Things don't have to be perfect, it may take a couple of
+iterations before a patch or submission is committed, and these items
+can be addressed in the process. But by the time the code is committed,
+everything including the documentation and some test cases will have
+been done, so by getting them out the way up front can save time.
+The committers look more favourably on patches and submissions with test
+cases, while documentation helps sell the reason for a task.
+
+<h3>Checklist before submitting a patch</h3>
+<ul>
+<li>Added code complies with style guidelines
+<li>Code compiles and runs on Java1.2
+<li>New member variables are private, and provide public accessor methods
+	if access is actually needed.
+<li>Existing test cases succeed.
+<li>New test cases written and succeed.
+<li>Documentation page extended as appropriate.
+<li>Example task declarations in the documentation tested.
+<li>Diff files generated using cvs diff -u
+<li>Message to dev contains [PATCH], task name and patch reason in
+subject.
+<li>Message body contains a rationale for the patch.
+<li>Message attachment contains the patch file(s).
+</ul>
+
+<h3>Checklist before submitting a new task</h3>
+<ul>
+<li>Java file begins with Apache copyright and license statement.
+<li>Task does not depend on GPL or LGPL code.
+<li>Source code complies with style guidelines
+<li>Code compiles and runs on Java1.2
+<li>Member variables are private, and provide public accessor methods
+	if access is actually needed.
+<li><i>Maybe</i> Task has failonerror attribute to control failure behaviour
+<li>New test cases written and succeed
+<li>Documentation page written
+<li>Example task declarations in the documentation tested.
+<li>Patch files generated using cvs diff -u
+<li>patch files include a patch to defaults.properties to register the
+tasks
+<li>patch files include a patch to coretasklist.html or
+optionaltasklist.html to link to the new task page
+<li>Message to dev contains [SUBMIT] and task name in subject
+<li>Message body contains a rationale for the task
+<li>Message attachments contain the required files -source, documentation,
+test and patches zipped up to escape the HTML filter.
+</ul>
+<hr>
+<p align="center">Copyright &copy; 2001-2003 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body></html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/antnews.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/antnews.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/antnews.html	(revision 14989)
@@ -0,0 +1,434 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - News</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Conor MacNeill">
+  <meta name="email" content="">
+        <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="stefan.bodewig@freenet.de">
+        <meta name="author" content="Magesh Umasankar">
+  <meta name="email" content="">
+        <meta name="author" content="Antoine Levy-Lambert">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                              <span class="sel">News</span>
+                              </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">News</h1>
+            <h3 class="section">
+      <a name="Ant 1.6.2"></a>
+      Ant 1.6.2
+    </h3>
+                        <h3>July 16, 2004 - Ant 1.6.2 Available</h3>
+                                <p>Apache Ant 1.6.2 is now available for <a href="http://ant.apache.org/bindownload.cgi">download</a>.</p>
+                                <p>Nested elements for namespaced tasks and types may belong to the
+Ant default namespace as well as the task's or type's namespace.</p>
+                                <p>All exceptions thrown by tasks are now wrapped in a
+buildexception giving the location in the buildfile of the task.</p>
+                                <p>Ant 1.6.2 fixes a large number of bugs and adds a number of
+features which were asked for by users on Bugzilla.</p>
+                        <h3 class="section">
+      <a name="Wiki Migration"></a>
+      Wiki Migration
+    </h3>
+                        <h3>February 29, 2004</h3>
+                                <p>The Ant Wiki pages have been migrated to their 
+      <a href="http://wiki.apache.org/ant/">new home</a> on the Apache
+      Wiki farm.
+    </p>
+                        <h3 class="section">
+      <a name="Ant 1.6.1"></a>
+      Ant 1.6.1
+    </h3>
+                        <h3>February 12, 2004 - Ant 1.6.1 Available</h3>
+                                <p>Apache Ant 1.6.1 is still available for
+      <a href="http://archive.apache.org/dist/ant">download</a>.
+     </p>
+                                <p>The ASF Board has approved the new Apache License 2.0.
+    For a copy of that license, please see
+    <a href="http://www.apache.org/licenses/">
+    http://www.apache.org/licenses/</a>.</p>
+                                <p>The Ant 1.6.1 release is delivered with the
+    Apache License 2.0.</p>
+                                <p>Ant 1.6.1 fixes several bugs, most notably the handling
+    of the default namespace for nested elements.</p>
+                                <p>Ant 1.6.1 also introduces initial support for compiling with
+    Java 1.5.</p>
+                        <h3 class="section">
+      <a name="Ant 1.6.0"></a>
+      Ant 1.6.0
+    </h3>
+                        <h3>December 18, 2003 - Ant 1.6.0 Available</h3>
+                                <p>Apache Ant 1.6.0 is still available for
+      <a href="http://archive.apache.org/dist/ant">download</a>.
+     </p>
+                                <p>As
+    we've already said in the announcements of Ant 1.5.4, this release
+    requires JDK 1.2 or later to run.</p>
+                                <p>Ant 1.6.0 adds a lot of new features, most prominently support
+    for XML namespaces as well as a new concept of Ant libraries that
+    makes use of namespaces to avoid name clashes of custom tasks.
+    For a longer list of fixed bugs and new features see the release
+    notes.</p>
+                                <p>If you find anything that hasn't been covered in the manual (I bet you
+did) or could be explained better, feel free to help us out in the
+<a href="http://wiki.apache.org/ant/NewAntFeaturesInDetail">Wiki</a>.</p>
+                        <h3 class="section">
+      <a name="Ant 1.5.4"></a>
+      Ant 1.5.4
+    </h3>
+                        <h3>August 12, 2003 - Ant 1.5.4 Available</h3>
+                                <p>Apache Ant 1.5.4 is still available for
+     <a href="http://archive.apache.org/dist/ant">download</a>.
+    </p>
+                                <p>This is a minor bugfix release that fixes a problem with the
+    <code>javah</code> task on JDK 1.4.2 and a couple of bugs in the
+    Visual Age for Java intergration tasks.  If you don't use javah or
+    VAJ, there is no reason to upgrade.</p>
+                                <div class="warning">
+    <div class="label">Note</div>
+    <div class="content">Ant 1.5.4 is the last release that supports
+      JDK 1.1. Ant 1.6.0 requires JDK 1.2 or
+      later.
+    </div>
+    </div>
+                        <h3 class="section">
+      <a name="Java Pro 2003 Readers Choice Award"></a>
+      Java Pro 2003 Readers Choice Award
+    </h3>
+                        <a href="http://www.ftponline.com/javapro/">
+      <img style="padding: 5px" src="images/jp_rcwinner_2003.gif" alt="" border="0" height="80" width="139" align="right" /></a>
+                                <h3>June 11th, 2003: Ant wins a Java Pro readers' choice award</h3>
+                                <p>
+      Ant has won the Java Pro 2003 Readers' Choice Award for 
+    </p>
+                                <p>
+      <strong>Most Valuable Java Deployment Technology</strong>.
+    </p>
+                                <p>
+      Thanks to Java Pro and all its readers. You can read about
+      these 
+      <a href="http://www.ftponline.com/reports/javaone/2003/awards/">awards</a>
+      at the Java Pro website.
+    </p>
+                        <h3 class="section">
+      <a name="JDJ Editors Choice Award"></a>
+      JDJ Editors Choice Award
+    </h3>
+                        <a href="http://sys-con.com/java/article2a.cfm?id=2059&amp;count=1734&amp;tot=6&amp;page=2"><img src="images/JDJEditorsChoiceAward.jpg" alt="" border="0" align="right" /></a>
+                                <h3>June 2003: Ant wins JDJ Editors' Choice Award</h3>
+                                <p>
+"Ant is the hammer of the Java world: without it, civilization might have progressed, but much more slowly than it has. Ant is one of the most useful build tools I have ever had the pleasure to use." - Joe Ottinger
+    </p>
+                        <h3 class="section">
+      <a name="Ant keeps on winning!"></a>
+      Ant keeps on winning!
+    </h3>
+                        <a href="http://www.javaworld.com"><img src="images/jw_ec_logo_winner2003.gif" alt="" border="0" height="108" width="252" align="right" /></a>
+                                <h3>June 9th, 2003: Ant wins the JavaWorld Editors' Choice Award</h3>
+                                <p>
+    Ant has won the JavaWorld Editors' Choice Award for
+    </p>
+                                <p>
+    <strong>Most Useful Java Community-Developed Technology</strong>
+    </p>
+                                <p>
+    for the second time in a row! Read the
+    <a href="http://www.javaworld.com/javaworld/jw-06-2003/jw-0609-eca.html"> full article</a> -- or jump directly to the bit about
+    <a href="http://www.javaworld.com/javaworld/jw-06-2003/jw-0609-eca-p4.html"> our award</a> <code>:)</code></p>
+                        <h3 class="section">
+      <a name="Ant 1.5.3"></a>
+      Ant 1.5.3
+    </h3>
+                        <h3>April 9, 2003 - Ant 1.5.3 Available</h3>
+                                <p>Apache Ant 1.5.3 is still available for
+     <a href="http://archive.apache.org/dist/ant">download</a>.
+    </p>
+                        <h3 class="section">
+      <a name="Ant 1.5.2"></a>
+      Ant 1.5.2
+    </h3>
+                        <h3>March 3, 2003 - Ant 1.5.2 Available!</h3>
+                                <p>The final version of Ant 1.5.2 is available for
+     <a href="http://archive.apache.org/dist/ant">download</a>.
+     If you have any feedback on this release, feel free to join the 
+     discussion on the dev and user mailing lists.
+     </p>
+                        <h3 class="section">
+      <a name="Ant Top Level Project"></a>
+      Ant Top Level Project
+    </h3>
+                        <h3>November 18, 2002</h3>
+                                <p>The Apache board <a href="mission.html">created</a>
+       the Apache Ant top level project. Ant has now migrated from the Jakarta
+       project into an Apache project of its own. This is primarily an
+       organizational change and will not affect the technical aspects of
+       the project. Ant retains a strong association with the Apache
+       Jakarta project. One effect of this change is that the Ant webpage
+       is now located at <a href="http://ant.apache.org">http://ant.apache.org</a>
+     </p>
+                        <h3 class="section">
+      <a name="Ant 1.5.1"></a>
+      Ant 1.5.1
+    </h3>
+                        <h3>October 3, 2002 - Ant 1.5.1 Available !</h3>
+                                <p>The final version of Ant 1.5.1 is still available for
+     <a href="http://archive.apache.org/dist/ant">
+     download</a>. If you have any feedback on this release, feel free to join the 
+     discussion on the ant-dev and ant-user mailing lists.
+     </p>
+                        <h3 class="section">
+      <a name="Ant 1.5"></a>
+      Ant 1.5
+    </h3>
+                        <h3>July 15, 2002 - Fix for Cygwin problem in wrapper script available</h3>
+                                <p>The wrapper script of Ant 1.5 needs to be replaced with a new
+      version for Cygwin users.  See the <a href="faq.html#1.5-cygwin-sh">FAQ</a> for details.</p>
+                                <h3>July 10, 2002 - Ant 1.5 Released!</h3>
+                                <p>The final version of Ant 1.5 is now available for 
+     <a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.5/">
+     download</a>. If you have any feedback on this release, feel free to join the 
+     discussion on the ant-dev and ant-user mailing lists.
+     </p>
+                        <h3 class="section">
+      <a name="Ant wins again!"></a>
+      Ant wins again!
+    </h3>
+                        <a href="http://www.sdmagazine.com"><img src="images/sdm_productivity_award.gif" alt="" border="0" height="108" width="181" align="right" /></a>
+                                <h3>Apr 29, 2002: Ant wins <em>Software Development</em> magazine's
+    2002 Productivity Award.</h3>
+                                <p>
+    Ant has been awarded a <strong>2002 Productivity Award</strong> by
+    <a href="http://www.sdmagazine.com/"><em>Software Development</em></a>
+    magazine.  Read the
+    <a href="http://www.sdmagazine.com/jolts/press_release_4-26-02.htm">
+    press release</a> for more information and the full list of winners.
+    </p>
+                        <h3 class="section">
+      <a name="Ant has won!"></a>
+      Ant has won!
+    </h3>
+                        <a href="http://www.javaworld.com"><img src="images/jw_ec_logo_winner2002.gif" alt="" border="0" height="108" width="252" align="right" /></a>
+                                <h3>Mar 26, 2002: Ant wins the JavaWorld Editors' Choice
+    Award</h3>
+                                <p>
+    Ant has won the JavaWorld Editors' Choice Award for
+    <strong>Most Useful Java Community-Developed Technology</strong>.
+    Read the
+    <a href="http://www.javaworld.com/javaworld/jw-03-2002/jw-0326-awards.html "> full article</a> -- or jump directly to the bit about
+    <a href="http://www.javaworld.com/javaworld/jw-03-2002/jw-0326-awards-p3.html"> our award</a> <code>:)</code></p>
+                        <h3 class="section">
+      <a name="Java 1.4 Support"></a>
+      Java 1.4 Support
+    </h3>
+                        <h3>Feb 15, 2002: Java 1.4 Support</h3>
+                                <p>
+      Java 1.4 has now been released by Sun. The latest Ant source supports 
+      the new <tt>assert</tt> statement in the compiler task via the <tt>source</tt> 
+      attribute. It also contains a compatibility fix needed for some ant tasks
+      on Java 1.4 over Windows XP. If you have problems running Ant 1.4.1 on WinXP/Java 1.4,
+      please use a recent build or compile your own version from the source tree. 
+    </p>
+                        <h3 class="section">
+      <a name="See our new logo!"></a>
+      See our new logo!
+    </h3>
+                        <h3>Have a look at our new cool logo!</h3>
+                        <h3 class="section">
+      <a name="Ant 1.4.1"></a>
+      Ant 1.4.1
+    </h3>
+                        <h3>11 October 2001 Ant 1.4.1 released !</h3>
+                                <p>Please visit the 
+     <a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.4.1/">
+     download area</a>. 
+     </p>
+                        <h3 class="section">
+      <a name="Best-Practices Profile of Ant at Sun's Dot-Com Builder"></a>
+      Best-Practices Profile of Ant at Sun's Dot-Com Builder
+    </h3>
+                        <p>Sun has released an introductory article on Ant on their
+      Dot-Com Builder site on May 30 2001. See <a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a></p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/breadcrumbs.js
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/breadcrumbs.js	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/breadcrumbs.js	(revision 14989)
@@ -0,0 +1,234 @@
+/* 
+ * Copyright  2002-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ * 
+ */
+
+/**
+ * This script, when included in a html file, builds a neat breadcrumb trail
+ * based on its url. That is, if it doesn't contains bugs (I'm relatively
+ * sure it does).
+ *
+ * Typical usage:
+ * <script type="text/javascript" language="JavaScript" src="breadcrumbs.js"></script>
+ *
+ *@author     <a href="mailto:leosimons@apache.org">Leo Simons</a> (main author)
+ *@author     <a href="mailto:nicolaken@apache.org">Nicola Ken Barozzi</a> (integration in skin)
+ *@created    July 12, 2002
+ *@version    1.0
+ */
+
+/**
+ * IE 5 on Mac doesn't know Array.push.
+ *
+ * Implement it - courtesy to fritz.
+ */
+var abc	= new Array();
+if (!abc.push) {
+  Array.prototype.push	= function(what){this[this.length]=what}
+}
+
+/* ========================================================================
+	CONSTANTS
+   ======================================================================== */
+
+/**
+ * Two-dimensional array containing extra crumbs to place at the front of
+ * the trail. Specify first the name of the crumb, then the URI that belongs
+ * to it. You'll need to modify this for every domain or subdomain where
+ * you use this script (you can leave it as an empty array if you wish)
+ */
+var PREPREND_CRUMBS = new Array();
+   if(!("apache"=="")){
+     PREPREND_CRUMBS.push( new Array( "apache", "http://www.apache.org/" ) );
+   }
+   if(!("xml.apache"=="")){
+     PREPREND_CRUMBS.push( new Array( "ant.apache", "http://ant.apache.org/" ) );
+   }
+   if(!(""=="")){
+     PREPREND_CRUMBS.push( new Array( "", "" ) );
+   }
+
+/**
+ * String to include between crumbs:
+ */
+var DISPLAY_SEPARATOR = " &gt; ";
+/**
+ * String to include at the beginning of the trail
+ */
+var DISPLAY_PREPREND = "";
+/**
+ * String to include at the end of the trail
+ */
+var DISPLAY_POSTPREND = "";
+
+/**
+ * CSS Class to use for a single crumb:
+ */
+var CSS_CLASS_CRUMB = "breadcrumb";
+
+/**
+ * CSS Class to use for the complete trail:
+ */
+var CSS_CLASS_TRAIL = "breadcrumbTrail";
+
+/**
+ * CSS Class to use for crumb separator:
+ */
+var CSS_CLASS_SEPARATOR = "crumbSeparator";
+
+/**
+ * Array of strings containing common file extensions. We use this to
+ * determine what part of the url to ignore (if it contains one of the
+ * string specified here, we ignore it).
+ */
+var FILE_EXTENSIONS = new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" );
+
+/**
+ * String that separates parts of the breadcrumb trail from each other.
+ * When this is no longer a slash, I'm sure I'll be old and grey.
+ */
+var PATH_SEPARATOR = "/";
+
+/* ========================================================================
+	UTILITY FUNCTIONS
+   ======================================================================== */
+/**
+ * Capitalize first letter of the provided string and return the modified
+ * string.
+ */
+function sentenceCase( string )
+{
+	var lower = string.toLowerCase();
+	return lower.substr(0,1).toUpperCase() + lower.substr(1);
+}
+
+/**
+ * Returns an array containing the names of all the directories in the
+ * current document URL
+ */
+function getDirectoriesInURL()
+{
+	var trail = document.location.pathname.split( PATH_SEPARATOR );
+
+	// check whether last section is a file or a directory
+	var lastcrumb = trail[trail.length-1];
+	for( var i = 0; i < FILE_EXTENSIONS.length; i++ )
+	{
+		if( lastcrumb.indexOf( FILE_EXTENSIONS[i] ) )
+		{
+			// it is, remove it and send results
+			return trail.slice( 1, trail.length-1 );
+		}
+	}
+
+	// it's not; send the trail unmodified
+	return trail.slice( 1, trail.length );
+}
+
+/* ========================================================================
+	BREADCRUMB FUNCTIONALITY
+   ======================================================================== */
+/**
+ * Return a two-dimensional array describing the breadcrumbs based on the
+ * array of directories passed in.
+ */
+function getBreadcrumbs( dirs )
+{
+	var prefix = "/";
+	var postfix = "/";
+
+	// the array we will return
+	var crumbs = new Array();
+
+	if( dirs != null )
+	{
+		for( var i = 0; i < dirs.length; i++ )
+		{
+			prefix += dirs[i] + postfix;
+			crumbs.push( new Array( dirs[i], prefix ) );
+		}
+	}
+
+	// preprend the PREPREND_CRUMBS
+	if(PREPREND_CRUMBS.length > 0 )
+	{
+		return PREPREND_CRUMBS.concat( crumbs );
+	}
+
+	return crumbs;
+}
+
+/**
+ * Return a string containing a simple text breadcrumb trail based on the
+ * two-dimensional array passed in.
+ */
+function getCrumbTrail( crumbs )
+{
+	var xhtml = DISPLAY_PREPREND;
+
+	for( var i = 0; i < crumbs.length; i++ )
+	{
+		xhtml += '<a href="' + crumbs[i][1] + '" >';
+		xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
+		if( i != (crumbs.length-1) )
+		{
+			xhtml += DISPLAY_SEPARATOR;
+		}
+	}
+
+	xhtml += DISPLAY_POSTPREND;
+
+	return xhtml;
+}
+
+/**
+ * Return a string containing an XHTML breadcrumb trail based on the
+ * two-dimensional array passed in.
+ */
+function getCrumbTrailXHTML( crumbs )
+{
+	var xhtml = '<span class="' + CSS_CLASS_TRAIL  + '">';
+	xhtml += DISPLAY_PREPREND;
+
+	for( var i = 0; i < crumbs.length; i++ )
+	{
+		xhtml += '<a href="' + crumbs[i][1] + '" class="' + CSS_CLASS_CRUMB + '">';
+		xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
+		if( i != (crumbs.length-1) )
+		{
+			xhtml += '<span class="' + CSS_CLASS_SEPARATOR + '">' + DISPLAY_SEPARATOR + '</span>';
+		}
+	}
+
+	xhtml += DISPLAY_POSTPREND;
+	xhtml += '</span>';
+
+	return xhtml;
+}
+
+/* ========================================================================
+	PRINT BREADCRUMB TRAIL
+   ======================================================================== */
+
+// check if we're local; if so, only print the PREPREND_CRUMBS
+if( document.location.href.toLowerCase().indexOf( "http://" ) == -1 )
+{
+	document.write( getCrumbTrail( getBreadcrumbs() ) );
+}
+else
+{
+	document.write( getCrumbTrail( getBreadcrumbs( getDirectoriesInURL() ) ) );
+}
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/bylaws.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/bylaws.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/bylaws.html	(revision 14989)
@@ -0,0 +1,794 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Project Bylaws</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                              <span class="sel">Project Bylaws</span>
+                              </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Project Bylaws</h1>
+            <h3 class="section">
+      <a name="Apache Ant Project Bylaws"></a>
+      Apache Ant Project Bylaws
+    </h3>
+                        <p>
+      This document defines the bylaws under which the Apache Ant project
+      operates. It defines the roles and responsibilities of the
+      project, who may vote, how voting works, how conflicts are resolved,
+      etc.
+    </p>
+                                <p>
+      Ant is a project of the
+      <a href="http://www.apache.org/foundation/">Apache Software
+      Foundation</a>.  The foundation holds the copyright on Apache
+      code including the code in the  Ant codebase. The
+      <a href="http://www.apache.org/foundation/faq.html">foundation FAQ</a>
+      explains the operation and background of the foundation.
+    </p>
+                                <p>
+      Ant is typical of Apache projects in that it operates under a set of
+      principles, known collectively as the "Apache Way". If you are
+      new to Apache development, please refer to the
+      <a href="http://incubator.apache.org">Incubator project</a>
+      for more information on how Apache projects operate. <b>Note:</b> the
+      incubator project has only been recently set up and does not yet explain
+      the Apache Way in great detail.
+    </p>
+                                <ul>
+        <li><a href="#Roles and Responsibilities">Roles and Responsibilities</a></li>
+        <li><a href="#Decision Making">How decisions are made</a></li>
+    </ul>
+                        <h3 class="section">
+      <a name="Roles and Responsibilities"></a>
+      Roles and Responsibilities
+    </h3>
+                        <p>
+      Apache projects define a set of roles with associated rights and
+      responsibilities. These roles govern what tasks an individual may perform
+      within the project. The roles are defined in the following sections
+    </p>
+                                <ul>
+      <li><a href="#Users">Users</a></li>
+      <li><a href="#Developers">Developers</a></li>
+      <li><a href="#Committers">Committers</a></li>
+      <li><a href="#Project Management Committee">
+        Project Management Committee (PMC)</a>
+      </li>
+    </ul>
+                                      <h4 class="subsection">
+        <a name="Users"></a>
+        Users
+      </h4>
+                        <p>
+        The most important participants in the project are people who use our
+        software. The majority of our developers start out as users and guide
+        their development efforts from the user's perspective.
+      </p>
+                                <p>
+        Users contribute to the Apache projects by providing feedback to
+        developers in the form of bug reports and feature suggestions. As
+        well, users participate in the Apache community by helping other users
+        on mailing lists and user support forums.
+      </p>
+                                                    <h4 class="subsection">
+        <a name="Developers"></a>
+        Developers
+      </h4>
+                        <p>
+        All of the volunteers who are contributing time, code, documentation,
+        or resources to the Ant Project. A developer that makes sustained,
+        welcome contributions to the project may be invited to become a
+        Committer, though the exact timing of such invitations depends on many
+        factors.
+      </p>
+                                                    <h4 class="subsection">
+        <a name="Committers"></a>
+        Committers
+      </h4>
+                        <p>
+        The project's Committers are responsible for the project's technical
+        management. All committers have write access to the project's source
+        repositories. Committers may cast binding votes on any technical
+        discussion regarding the project.
+      </p>
+                                <p>
+        Committer access is by invitation only and must be approved by lazy
+        consensus of the active PMC members. A Committer is considered emeritus
+        by their own declaration or by not contributing in any form to the
+        project for over six months. An emeritus committer may request
+        reinstatement of commit access from the PMC. Such reinstatement is
+        subject to lazy consensus of active PMC members.
+      </p>
+                                <p>
+        Commit access can be revoked by a unanimous vote of all the active
+        PMC members (except the committer in question if they are also a PMC member).
+      </p>
+                                <p>
+        All Apache committers are required to have a signed Contributor License
+        Agreement (CLA) on file with the Apache Software Foundation. There is a
+        <a href="http://www.apache.org/dev/committers.html">Committer FAQ</a>
+        which provides more details on the requirements for Committers
+      </p>
+                                <p>
+        A committer who makes a sustained contribution to the project may be
+        invited to become a member of the PMC. The form of contribution is
+        not limited to code. It can also include code review, helping out
+        users on the mailing lists, documentation, etc.
+      </p>
+                                                    <h4 class="subsection">
+        <a name="Project Management Committee"></a>
+        Project Management Committee
+      </h4>
+                        <p>
+        The Project Management Committee (PMC) for Apache Ant was created by a
+        <a href="mission.html">resolution</a> of the board of the Apache
+        Software Foundation on 18<sup>th</sup> November 2002. The PMC is
+        responsible to the board and the ASF for the management and oversight
+        of the Apache Ant codebase. The responsibilities of the PMC include
+      </p>
+                                <ul>
+        <li>Deciding what is distributed as products of the Apache Ant project.
+            In particular all releases must be approved by the PMC
+        </li>
+        <li>Maintaining the project's shared resources, including the codebase
+            repository, mailing lists, websites.
+        </li>
+        <li>Speaking on behalf of the project.
+        </li>
+        <li>Resolving license disputes regarding products of the project
+        </li>
+        <li>Nominating new PMC members and committers
+        </li>
+        <li>Maintaining these bylaws and other guidelines of the project
+        </li>
+      </ul>
+                                <p>
+        Membership of the PMC is by invitation only and must be approved by a
+        lazy consensus of active PMC members. A PMC member is considered
+        "emeritus" by their own declaration or by not contributing in
+        any form to the project for over six months. An emeritus member may
+        request reinstatement to the PMC. Such reinstatement is subject to lazy
+        consensus of the active PMC members. Membership of the PMC can be
+        revoked by an unanimous vote of all the active PMC members other than
+        the member in question.
+      </p>
+                                <p>
+        The chair of the PMC is appointed by the ASF board. The chair is an
+        office holder of the Apache Software Foundation (Vice President,
+        Apache Ant) and has primary responsibility to the board for the
+        management of the projects within the scope of the Ant PMC. The chair
+        reports to the board quarterly on developments within the Ant project.
+        The PMC may consider the position of PMC chair annually and if
+        supported by 2/3 Majority may recommend a new chair to the board.
+        Ultimately, however, it is the board's responsibility who it chooses
+        to appoint as the PMC chair.
+      </p>
+                                      <h3 class="section">
+      <a name="Decision Making"></a>
+      Decision Making
+    </h3>
+                        <p>
+      Within the Ant project, different types of decisions require different
+      forms of approval. For example, the
+      <a href="#Roles and Responsibilities">previous section</a> describes
+      several decisions which require "lazy consensus" approval. This
+      section defines how voting is performed, the types of approvals, and which
+      types of decision require which type of approval.
+    </p>
+                                      <h4 class="subsection">
+        <a name="Voting"></a>
+        Voting
+      </h4>
+                        <p>
+        Decisions regarding the project are made by votes on the primary project
+        development mailing list (dev@ant.apache.org). Where necessary,
+        PMC voting may take place on the private Ant PMC mailing list.
+        Votes are clearly indicated by subject line starting with [VOTE] or
+        [PMC-VOTE]. Votes may contain multiple items for approval and these
+        should be clearly separated. Voting is carried out by replying to the
+        vote mail. Voting may take four flavours
+      </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>+1</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            "Yes," "Agree," or "the action should be
+            performed." In general, this vote also indicates a willingness
+            on the behalf of the voter in "making it happen"
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>+0</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            This vote indicates a willingness for the action under
+            consideration to go ahead. The voter, however will not be able
+            to help.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>-0</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            This vote indicates that the voter does not, in general, agree with
+            the proposed action but is not concerned enough to prevent the
+            action going ahead.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>-1</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            This is a negative vote. On issues where consensus is required,
+            this vote counts as a <strong>veto</strong>. All vetoes must
+            contain an explanation of why the veto is appropriate. Vetoes with
+            no explanation are void. It may also be appropriate for a -1 vote
+            to include an alternative course of action.
+          
+      </td>
+      </tr>
+        </table>
+                                <p>
+        All participants in the Ant project are encouraged to show their
+        agreement with or against a particular action by voting. For technical
+        decisions, only the votes of active committers are binding. Non binding
+        votes are still useful for those with binding votes to understand the
+        perception of an action in the wider Ant community. For PMC decisions,
+        only the votes of PMC members are binding.
+      </p>
+                                <p>
+        Voting can also be applied to changes made to the Ant codebase. These
+        typically take the form of a veto (-1) in reply to the commit message
+        sent when the commit is made.
+      </p>
+                                                    <h4 class="subsection">
+        <a name="Approvals"></a>
+        Approvals
+      </h4>
+                        <p>
+        These are the types of approvals that can be sought. Different actions
+        require different types of approvals
+      </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Consensus</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            For this to pass, all voters with binding votes must vote and there
+            can be no binding vetoes (-1). Consensus votes are rarely required
+            due to the impracticality of getting all eligible voters to cast a
+            vote.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Lazy Consensus</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy consensus requires 3 binding +1 votes and no binding vetoes.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Lazy Majority</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            A lazy majority vote requires 3 binding +1 votes and more binding +1
+            votes that -1 votes.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Lazy Approval</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            An action with lazy approval is implicitly allowed unless a -1 vote
+            is received, at which time, depending on the type of action, either
+            lazy majority or lazy consensus approval must be obtained.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>2/3 Majority</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Some actions require a 2/3 majority of active committers or PMC
+            members to pass. Such actions typically affect the foundation
+            of the project (e.g. adopting a new codebase to replace an existing
+            product). The higher threshold is designed to ensure such changes
+            are strongly supported. To pass this vote requires at least 2/3 of
+            binding vote holders to vote +1
+          
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Vetoes"></a>
+        Vetoes
+      </h4>
+                        <p>
+        A valid, binding veto cannot be overruled. If a veto is cast, it must be
+        accompanied by a valid reason explaining the reasons for the veto. The
+        validity of a veto, if challenged, can be confirmed by anyone who has
+        a binding vote. This does not necessarily  signify agreement with the
+        veto - merely that the veto is valid.
+      </p>
+                                <p>
+        If you disagree with a valid veto, you must lobby the person casting
+        the veto to withdraw their veto. If a veto is not withdrawn, the action
+        that has been vetoed must be reversed in a timely manner.
+      </p>
+                                                    <h4 class="subsection">
+        <a name="Actions"></a>
+        Actions
+      </h4>
+                        <p>
+        This section describes the various actions which are undertaken within
+        the project, the corresponding approval required for that action and
+        those who have binding votes over the action.
+      </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Action
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Description
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Approval
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Binding Votes
+      </th>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Code Change</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            A change made to a codebase of the project and committed
+            by a committer. This includes source code, documentation, website
+            content, etc.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy approval and then lazy consensus.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active committers.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Release Plan</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Defines the timetable and actions for a release. The plan also
+            nominates a Release Manager.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy majority
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active committers
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Product Release</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            When a release of one of the project's products is ready, a vote is
+            required to accept the release as an official release of the
+            project.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy Majority
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Adoption of New Codebase</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <p>
+            When the codebase for an existing, released product is to be
+            replaced with an alternative codebase. If such a vote fails to
+            gain approval, the existing code base will continue.
+            </p>
+
+            <p>
+            This also covers the creation of new sub-projects
+            within the project
+            </p>
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            2/3 majority
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active committers
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>New Committer</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            When a new committer is proposed for the project
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>New PMC Member</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            When a committer is proposed for the PMC
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Committer Removal</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <p>When removal of commit privileges is sought.</p>
+            <p><b>Note: </b> Such actions will also be referred to the ASF
+            board by the PMC chair</p>
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members (excluding the committer in question if a
+            member of the PMC).
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>PMC Member Removal</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <p>When removal of a PMC member is sought.</p>
+            <p><b>Note: </b> Such actions will also be referred to the
+            ASF board by the PMC chair</p>
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members (excluding the member in question).
+          
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Voting Timeframes"></a>
+        Voting Timeframes
+      </h4>
+                        <p>
+        Votes are open for a period of 1 week to allow all active voters
+        time to consider the vote. Votes relating to code changes are not
+        subject to a strict timetable but should be made as timely as possible.
+      </p>
+                              
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/contributors.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/contributors.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/contributors.html	(revision 14989)
@@ -0,0 +1,487 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Contributors</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                              <span class="sel">Contributors</span>
+                              </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Contributors</h1>
+            <h3 class="section">
+      <a name="Project Management Committee"></a>
+      Project Management Committee
+    </h3>
+                              <h4 class="subsection">
+        <a name="Active Members"></a>
+        Active Members
+      </h4>
+                        <p>
+                <b>Bruce Atherton</b> (bruce at callenish.com - <a href="http://www.callenish.com/~bruce">http://www.callenish.com/~bruce</a>)
+<br />
+Currently a Systems Architect with Avue Technologies, Bruce has been
+working with Java since version 1.0a2. He also claims to be one of the first
+people to mark up a FAQ with HTML, for a web browser of the distant past
+called Cello.
+            </p>
+                                <p>
+                <b>Stephane Bailliez</b><br />
+            </p>
+                                <p>
+                <b>Stefan Bodewig</b> (stefan.bodewig at freenet.de)
+<br />
+Stefan is a senior developer at BoST interactive, where he is mainly
+responsible for a rule based configurator system. He spends some time
+working on Open Source projects with Ant and Gump currently taking the
+biggest share of it.  He is also serving as the Chairman of the Apache
+Gump PMC.
+</p>
+                                <p>
+                <b>Erik Hatcher</b> (ehatcher at apache.org)
+<br />
+Erik is the co-author of <a href="http://www.manning.com/antbook">
+Java Development with Ant</a> and speaks on Ant and other topics at
+<a href="http://www.nofluffjuststuff.com">No Fluff, Just Stuff
+symposiums</a> as well as other venues.  Erik is the President of
+<a href="http://www.ehatchersolutions.com">eHatcher Solutions, Inc</a>.
+</p>
+                                <p>
+                <b>Antoine Levy-Lambert</b> (antoine at apache.org)
+<br />
+Antoine is an IT consultant specialized in financial IT and
+in application management/configuration management. He has experience with
+conceiving, building and managing distributed applications. His consultancy
+is called <a href="http://www.antbuild.com">antbuild</a>.
+
+            </p>
+                                <p>
+                <b>Steve Loughran</b><br />
+            </p>
+                                <p>
+                <b>Conor MacNeill</b> (conor at cortexebusiness.com.au)
+<br />
+Conor is a senior developer at Cortex eBusiness, where he develops
+J2EE based systems. In his spare time he helps with the development of
+the Ant build tool.  He is also serving as the Chairman of this PMC.
+</p>
+                                <p>
+                <b>Jan Matèrne</b> (jhm at apache.org)
+<br />
+Jan is consultant for OOA/D in the computer centre of the government
+of Northrhine Westfalia / Germany. He is the co-author of
+<a href="http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-341?">
+Rational Rose und UML im Praxiseinsatz</a> the first German book about
+that OOAD-tool.
+            </p>
+                                <p>
+                <b>Costin Monolache</b><br />
+            </p>
+                                <p>
+                <b>
+                    <a href="http://www.intertwingly.net/">Sam Ruby</a>
+                </b>
+                (rubys at us.ibm.com)
+<br />
+Sam takes a perverse pleasure in integrating disparate things.  He is
+a member of the <a href="http://www.php.net/credits.php">PHP group</a>, Apache
+<a href="http://xml.apache.org/whoweare.html">XML PMC</a>, Apache
+sponsor for the <a href="http://xml.apache.org/soap">xml-soap</a> subproject
+and convener of <a href="http://www.ecma.ch">ECMA</a> TC39 TG3.
+</p>
+                                <p>
+                <b>Peter Reilly</b><br />
+            </p>
+                                <p>
+                <b>Magesh Umasankar</b> (umagesh at apache.org)
+<br />
+Magesh is a lead software developer at
+<a href="http://www.manugistics.com">Manugistics</a>, where
+he is responsible for some of the Revenue Optimization
+solutions.
+</p>
+                                <p>
+                <b>Christoph Wilhelms</b> (christoph.wilhelms at t-online.de)
+<br />
+Christoph works as software engineer at the world's biggest travel company
+<a href="http://www.tui.com">TUI</a>. His passion are all UI related things so
+at the Ant-Project he takes care of Antidote - the Ant GUI.
+            </p>
+                                                    <h4 class="subsection">
+        <a name="Emeritus Members"></a>
+        Emeritus Members
+      </h4>
+                        <p>
+                <b>James Duncan Davidson</b> (duncan at x180.net - <a href="http://x180.net/">http://x180.net/</a>)
+<br />
+
+By day, Duncan works in the Open Source Program Office at Sun
+Microsystems where he helps various Open Source efforts within Sun
+"do the right thing". Previously at Sun he was responsible
+for the Servlet API Specifications 2.1 and 2.2 as well as the Java API
+for XML Parsing 1.0 and was the original author of Tomcat and Ant. He
+was one of the rabble-rousers within Sun that helped make the Jakarta
+Project a reality and served as the first Chairman of the Jakarta PMC.
+</p>
+                                <p>
+                <b>Diane Holt</b><br />
+            </p>
+                                <p>
+                <b>Donald Leslie</b><br />
+            </p>
+                                <p>
+                <b>Jon Skeet</b><br />
+            </p>
+                                      <h3 class="section">
+      <a name="Committers"></a>
+      Committers
+    </h3>
+                              <h4 class="subsection">
+        <a name="Active Committers"></a>
+        Active Committers
+      </h4>
+                        <p>
+                <b>Preston Bannister</b><br />
+            </p>
+                                <p>
+                <b>Matt Benson</b><br />
+            </p>
+                                <p>
+                <b>Nick Davis</b><br />
+            </p>
+                                <p>
+                <b>Darrell DeBoer</b><br />
+            </p>
+                                <p>
+                <b>Peter Donald</b> (peter at apache.org)
+<br />
+
+Peter is an avid java developer who is active in the
+<a href="http://jakarta.apache.org/avalon/">Avalon</a> and
+<a href="http://ant.apache.org/">Ant</a> projects.
+In his spare time he develops a distributed virtual environment
+(ie military simulator or 3D game) using java technologies.
+</p>
+                                <p>
+                <b>Danno Ferrin</b> (shemnon at yahoo.com)
+<br />
+Danno has been programming in Java since Summer 96. Danno wrote a JSP
+engine on his own and released it the very same day Jakarta was
+announced at JavaOne. Since then, he decided to join the Jakarta
+project in a spirit of co-operation over competition.
+</p>
+                                <p>
+
+                <b>Jason Hunter</b> (jh at servlets.com)
+<br />
+Jason is author of "Java Servlet Programming" (O'Reilly) and publisher
+of <a href="http://www.servlets.com/">http://www.servlets.com/</a>.
+He works at <a href="http://www.collab.net">CollabNet</a>.
+</p>
+                                <p>
+                <b>Arun Jamwal</b>
+<br />
+</p>
+                                <p>
+                <b>Arnout J. Kuiper</b> (ajkuiper at planet.nl)
+<br />
+
+Arnout J. Kuiper is a Java Architect with the Sun Java Center at Sun
+Microsystems. His main focus is web-related technologies on the Java
+platform (J2EE, XML, ...).
+</p>
+                                <p>
+                <b>Adam Murdoch</b>
+<br />
+</p>
+                                <p>
+                <b>Harish Prabhandham</b> (harishp at onebox.com)
+<br />
+Harish is an engineer with the J2EE team at Sun, primarily responsible
+for implementing security in the J2EE Reference Implementation
+(RI). He integrated various technologies including servlet/JSP
+implementations from Tomcat into the J2EE RI. These days, he hacks PHP
+code during the day.
+</p>
+                                <p>
+                <b>Nico Seessle</b><br />
+            </p>
+                                <p>
+                <b>Gal Shachor</b> (shachor at il.ibm.com)
+<br />
+Gal Shachor is a research staff member at IBM. He wrote his first
+Servlet container (ServletExpress) at the beginning of 1997. Later on
+ServletExpress (and Gal) merged into WebSphere, and Gal participated
+in the development of WebSphere 1, 2 and 3.
+</p>
+                                <p>
+                <b>Jon S. Stevens</b> (jon at collab.net)
+<br />
+
+Jon is a Co-Founder of <a href="http://www.clearink.com/">Clear Ink
+Corp</a> and recently left to work on <a href="http://scarab.tigris.org/">Scarab</a> a next generation Open
+Source Java Servlet based Issue/Bug tracking system for <a href="http://www.collab.net/">CollabNet</a>. He is an active developer
+of the <a href="http://java.apache.org/jserv/">Apache JServ Servlet
+Engine</a> for the Apache Web Server and Co-Author of the <a href="http://java.apache.org/ecs/">Element Construction Set</a> as
+well as the web application framework, <a href="http://java.apache.org/turbine/">Turbine</a>.
+</p>
+                                <p>
+                <b>Jesse Stockall</b><br />
+            </p>
+                                <p>
+                <b>James Todd</b> (jwtodd at pacbell.net)
+<br />
+James has developed real time customer oriented apps for roughly 10
+years the last 5 of which have predominately been fully integrated,
+front and back, extraNet implementations which have been based on
+Apache, Java and Tcl.
+</p>
+                                                    <h4 class="subsection">
+        <a name="Emeritus Committers"></a>
+        Emeritus Committers
+      </h4>
+                        <p>
+                <b>Simeon H.K. Fitch</b> (simeon.fitch at mseedsoft.com)
+<br />
+Simeon is owner of Mustard Seed Software, which specializes in developing
+distributed applications and user interfaces for the science, engineering,
+and research oriented clients. He is the lead architect and developer for
+Antidote, the GUI for Ant.
+</p>
+                                <p>
+                <b>Thomas Haas</b> (tha at whitestein.com)
+<br />
+Tom is interested in distributed systems, Java middleware and worked on an
+implementation of the JMS specification. At Whitestein Technologies he is
+working on bringing software agent technology and J2EE together.
+</p>
+                                <p>
+                <b>Justyna Horwat</b> (horwat at apache.org)
+<br />
+</p>
+                                <p>
+                <b>Stefano Mazzocchi</b> (stefano at apache.org)
+<br />
+Stefano is addicted to software design, Java programming and
+open development. In the last 4 years, he has contributed way too much
+time to Apache, expecially on JServ, JMeter, Avalon, JAMES, Ant, Cocoon
+and helping to bring more projects into Apache-land, such as FOP, Batik,
+POI and Xindice. The problem is that he's too picky to be satisfied :-)
+</p>
+                                <p>
+                <b>Glenn McAllister</b> (glenn at somanetworks.com)
+<br />
+Glenn McAllister is a software developer at SOMA Networks, was formerly
+the same at IBM (plus tech writer plus build guy), and does some writing
+on the side for the VADD Technical Journal.
+</p>
+                                <p>
+                <b>Craig McClanahan</b> (Craig.McClanahan at eng.sun.com)
+<br />
+Craig was involved in the Apache JServ project, focused on implementing
+a next generation architecture and feature set for the core servlet
+engine.  He has recently joined Sun as technical lead for the servlet
+and JSP reference implementation.
+          </p>
+                                <p>
+                <b>Anil Vijendran</b> (akv at eng.sun.com)
+<br />
+Anil Vijendran is the principal developer of the JSP engine in
+Tomcat. He's done some pretty scary things in his past life --
+implementing the CORBA IDL to C++ 2.0 mapping, skydiving, IDL to Java
+compilers, Object Databases (SIGSEV, you da man!) for C++, Java ORB
+and EJB runtime environments -- in that order.
+</p>
+                                      <h3 class="section">
+      <a name="Logo"></a>
+      Logo
+    </h3>
+                        <p>Ant's logo is the result of a logo contest, it has been
+        designed by</p>
+                                <p>
+                <b>Nick King</b>
+<br />
+</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/cvs.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/cvs.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/cvs.html	(revision 14989)
@@ -0,0 +1,221 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - CVS Repositories</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                              <span class="sel">CVS Repositories</span>
+                              </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">CVS Repositories</h1>
+            <h3 class="section">
+      <a name="Access the Source Tree (AnonCVS)"></a>
+      Access the Source Tree (AnonCVS)
+    </h3>
+                        <p>Anyone can checkout source code from our anonymous CVS
+      server. To do so, simply use the following commands (if you are
+      using a GUI CVS client, configure it appropriatly):</p>
+                                <pre class="code">
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
+password: anoncvs</pre>
+                                <pre class="code">
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout [module-name]</pre>
+                                <p>Modules available for access are (click the links to view the
+      CVS tree via ViewCVS):</p>
+                                <ul>
+        <li><a href="http://cvs.apache.org/viewcvs/ant/">ant</a> - The
+        "main" Ant module.</li>
+
+        <li><a href="http://cvs.apache.org/viewcvs/ant-antidote/">ant-antidote</a>
+        - Antidote, a GUI frontend to Ant.</li>
+      </ul>
+                                <p>If you are not familiar with CVS, <a href="http://jakarta.apache.org/site/cvsindex.html">Jakarta's
+      CVS page</a> may hold many helpful hints.</p>
+                                <p>Nightly snapshots of the CVS tree are available at 
+        <a href="http://cvs.apache.org/snapshots/ant/">http://cvs.apache.org/snapshots/ant/</a> 
+        and 
+        <a href="http://cvs.apache.org/snapshots/ant-antidote/">http://cvs.apache.org/snapshots/ant-antidote/</a>.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/external.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/external.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/external.html	(revision 14989)
@@ -0,0 +1,5669 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - External Tools and Tasks</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                              <span class="sel">External Tools and Tasks</span>
+                              </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">External Tools and Tasks</h1>
+            <h3 class="section">
+      <a name="External Tools and Tasks"></a>
+      External Tools and Tasks
+    </h3>
+                        <p>This page lists external resources for Apache Ant: <a href="#Tasks">Tasks</a>, <a href="#Compiler%20Implementations">Compiler Implementations</a>,
+      <a href="#IDE%20and%20Editor%20Integration">IDE integration
+      tools</a>, <a href="#Source%20Control%20ystems">Source Control
+      Systems</a>, loggers, you name it. If you've written
+      something that should be included, please post all relevant
+      information to one of the mailing lists.  For details, see the
+      <a href="faq.html#adding-external-tasks">FAQ</a>.</p>
+                                <p>Nothing listed here is directly supported by the Ant
+      developers, if you encounter any problems with them, please use
+      the contact information.</p>
+                        <h3 class="section">
+      <a name="Tasks"></a>
+      Tasks
+    </h3>
+                              <h4 class="subsection">
+        <a name="AJC"></a>
+        AJC
+      </h4>
+                        <p><a href="http://www.eclipse.org/aspectj/">AspectJ</a> is an
+          aspect-oriented extension to Java.  This task compiles a
+          source tree using the AspectJ compiler -- AJC.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/aspectj/">http://www.eclipse.org/aspectj/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/aspectj/">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Anakia"></a>
+        Anakia
+      </h4>
+                        <p>Actually, Anakia is more than just an Ant task, it is a an
+        XML transformation tool based on JDOM, Velocity and Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jakarta.apache.org/velocity/anakia.html">http://jakarta.apache.org/velocity/anakia.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jakarta.apache.org/site/mail2.html">Velocity mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Andariel"></a>
+        Andariel
+      </h4>
+                        <p>Andariel is a set of tasks designed to help the generation of HTML
+        (and other markup languages) pages from Ant. Includes a XPath processor,
+        an image information retriever, and others.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.4 and newer
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://andariel.uworks.net/">http://andariel.uworks.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          josep DOT rio AT uworks DOT net
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 1.1
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Ant2Svg"></a>
+        Ant2Svg
+      </h4>
+                        <p>Ant2Svg creates a graphical representation of an Ant build file.
+        The graphical representation is in the form of a Scalable Vector
+        Graphics (SVG) file that can be displayed in a web browser. This
+        simplified SVG depiction helps the developer understand build file
+        structure and identify extraneous or missing dependencies.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.spiritedsw.com/ant2svg/">http://www.spiritedsw.com/ant2svg/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          loney &lt;at&gt; spiritedsw &lt;dot&gt; com
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache Software License 2.0
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="AntDoc"></a>
+        AntDoc
+      </h4>
+                        <p>AntDoc is a tool that generates HTML documentation from Ant
+        buildfiles; the generated HTML is inspired from what javadoc
+        yields.  AntDocGUI offers a simple Ant target launcher named
+        AntDoc GUI. Ant targets may be launched from the generated
+        AntDoc HTML pages. Integration to various IDEs is in
+        progress.</p>
+                                <p>AntDoc can be run via an Ant task, AntDoc GUI can be run
+        via an Ant task, or via a JVM launch.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antdoc.free.fr/">http://antdoc.free.fr/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Edouard Mercier
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Anteater"></a>
+        Anteater
+      </h4>
+                        <p>Anteater is a set of Ant tasks for the functional testing of websites
+          and web services (functional testing being; hit a URL and ensure the
+          response meets certain criteria). Can test HTTP params, response
+          codes, XPath, regexp and Relax NG expressions. Includes HTML reporting
+          (based on junitreport) and a hierarchical grouping system for quickly
+          configuring large test scripts.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://aft.sourceforge.net/">http://aft.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://lists.sourceforge.net/lists/listinfo/aft-devel">developer
+                mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Antmerge"></a>
+        Antmerge
+      </h4>
+                        <p>Provides simple inheritance between ant files</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5. Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.russet.org.uk/antmerge.html">http://www.russet.org.uk/antmerge.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:antmerge@russet.org.uk">Phillip Lord</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Ant Pretty Build"></a>
+        Ant Pretty Build
+      </h4>
+                        <p>Ant Pretty Build is a tool to show and run Ant buildfiles
+        directly from within a browser window.  It consists of a
+        single XSL file that will generate, on the fly, from
+        buildfile, a pretty interface showing project name,
+        description, properties and targets, etc. allowing to run the
+        whole project, or run selected targets in a specific
+        order.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          All Ant versions
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antprettybuild.free.fr/">http://antprettybuild.free.fr/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:antprettybuild@free.fr">Charbel BITAR</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="AntTimerTask"></a>
+        AntTimerTask
+      </h4>
+                        <p><a href="http://www.jeckle.de/freeStuff/AntTimerTask/index.html">Timer</a>
+        is task for measuring the time elapsed to complete other
+        tasks</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.jeckle.de/freeStuff/AntTimerTask/index.html">http://www.jeckle.de/freeStuff/AntTimerTask/index.html</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mario@jeckle.de">mario@jeckle.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Lesser GNU Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Checkstyle"></a>
+        Checkstyle
+      </h4>
+                        <p>Checkstyle is a development tool to help programmers write
+        Java code that adheres to a coding standard. Its purpose is to
+        automate the process of checking Java code, and to spare
+        humans of this boring (but important) task.</p>
+                                <p>Checkstyle can be run via an Ant task or a command line
+        utility.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://checkstyle.sourceforge.net/">http://checkstyle.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:checkstyle@puppycrawl.com">Oliver Burn</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Starting with release 2.0 the license is the GNU
+            Lesser General Public License.  Prior releases were under
+            the GNU General Public License.
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="ChownTask"></a>
+        ChownTask
+      </h4>
+                        <p>ChownTask is an Ant task to change ownership of files on
+        Unix.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and up
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://sourceforge.net/projects/chowntask/">http://sourceforge.net/projects/chowntask/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:chowntask-users@lists.sourceforge.net">Wilfred Springer</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="CleanImports"></a>
+        CleanImports
+      </h4>
+                        <p>Removes unneeded imports. Formats your import
+        sections. Flags ambiguous imports.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.euronet.nl/users/tomb/cleanImports/index.html">http://www.euronet.nl/users/tomb/cleanImports/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:tomb@euronet.nl">Tom Brus</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Clover"></a>
+        Clover
+      </h4>
+                        <p>Clover is an Ant-based Code Coverage tool. It can be used
+        seamlessly with Ant-based projects. It provides method,
+        statement, and branch coverage analysis, and has rich
+        reporting in XML, HTML or via a Swing GUI.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 or greater
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.thecortex.net/clover/">http://www.thecortex.net/clover/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:clover-support@cortexebusiness.com.au">clover-support@cortexebusiness.com.au</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial, free licenses available for open source
+            projects.
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="CMSDeploy"></a>
+        CMSDeploy
+      </h4>
+                        <p><a href="http://cmsdeploy.sourceforge.net">CMSDeploy</a> is
+        an Apache Ant Task to submit files and templates to Vignette
+        CMS.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cmsdeploy.sourceforge.net">http://cmsdeploy.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:masogato@users.sourceforge.net">masogato@users.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Cocoon Task"></a>
+        Cocoon Task
+      </h4>
+                        <p>This task allows the generation of static web pages and
+        sites using Apache Cocoon in off-line mode.</p>
+                                <p>It allows the configuration information for Cocoon to be
+        included within the Ant build file, and is thus
+        able to take advantage of Ant properties.</p>
+                                <p>The task shares its code with the Cocoon Command Line, which
+        means that this task will instantly take
+        advantage of any new functionality added there.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.3 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cocoon.apache.org/2.1/">http://cocoon.apache.org/2.1/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Documentation:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cocoon.apache.org/2.1/userdocs/offiline/ant.html">http://cocoon.apache.org/2.1/userdocs/offline/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:users.at.cocoon.apache.org">users at cocoon.apache.org</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Configure"></a>
+        Configure
+      </h4>
+                        <p>Recursive build support (call ant on every package level,
+        and only build files in that package or in that package and
+        everything below) with seperation of source and output.</p>
+                                <p>The task generates build files in any subdirectory (except
+        for CVS-directories) for you. Only place one build.xml file in
+        the top and call target 'setup' or
+        'rescan'.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.dsdelft.nl/~lemval/ant/">http://www.dsdelft.nl/~lemval/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:lemval@dsdelft.nl">M.J.P. van Leeuwen</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          License derived from Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="CVSGrab"></a>
+        CVSGrab
+      </h4>
+                        <p>A little CVS client that can be useful when people are
+        behind corporate firewall that blocks any cvs
+        communications. It uses the ViewCVS web interface to access
+        the CVS repository via standard http, and downloads all the
+        files present in it.</p>
+                                <p>It works from the command line or as an Ant task.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cvsgrab.sourceforge.net/">http://cvsgrab.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cvsgrab-users@lists.sourceforge.net">CVSGrab
+            user mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Dependency Finder"></a>
+        Dependency Finder
+      </h4>
+                        <p>Dependency Finder extracts dependencies and OO metrics from
+        Java class files produced by most Java compilers. It can compute
+        API differences between versions;  no sources needed. It includes
+        Ant tasks, web, Swing, and command-line interfaces, with XSL
+        stylesheets for formatting output.</p>
+                                <p>You can use it to extract dependencies between packages, classes,
+        or even methods, or any combination thereof.  You can use Perl
+        regular expressions to filter the information and pinpoint only
+        what you need.  There is even a Web Application version (WAR file)
+        so a whole group of developers can share a common view.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5.3, should work with 1.4+.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://depfind.sourceforge.net/">http://depfind.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jeantessier@users.sourceforge.net">Jean Tessier</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Doxygen task"></a>
+        Doxygen task
+      </h4>
+                        <p>There are two Ant tasks for running the Doxygen
+        documentation system.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.bgw.org/projects/java/ant/">http://www.bgw.org/projects/java/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mortis@voicenet.com">Kyle R. Burton</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+        </table>
+                                <p>and</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant-doxygen.sourceforge.net/">http://ant-doxygen.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:akkumar@users.sourceforge.net">Karthik A Kumar</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="DTDDoc"></a>
+        DTDDoc
+      </h4>
+                        <p>DTDDoc is here to help you to document your DTD's efficiently. It is a
+        straightforward extension of the javadoc concept to the DTD file format.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dtddoc.sourceforge.net/">http://dtddoc.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=53704">Project Mailing List</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          X11 (Open Source)
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="EMMA"></a>
+        EMMA
+      </h4>
+                        <p>EMMA is an open-source toolkit for measuring and reporting
+        Java code coverage. EMMA distinguishes itself from other tools
+        by going after a unique feature combination: support large-scale
+        enterprise software development while keeping individual developers
+        work fast and iterative at the same time.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://emma.sourceforge.net/">http://emma.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:emma-users@lists.sourceforge.net">Mailinglist</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Common Public License 1.0
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="FMPP"></a>
+        FMPP
+      </h4>
+                        <p>FMPP is a general-purpose text file preprocessor tool that
+        uses FreeMarker templates. It is particularly designed for
+        HTML preprocessor, for the generation of complete (static)
+        homepages: directory structure that contains HTML-s, image
+        files, etc. But of course it can be used to generate source
+        code or whatever text files. FMPP is extendable with Java
+        classes to pull data from any data sources (XML file,
+        database, etc.) and embed the data into the generated
+        files.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://fmpp.sourceforge.net/">http://fmpp.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="GenJar"></a>
+        GenJar
+      </h4>
+                        <p>Builds a JAR file based on class dependencies rather than simply the contents of a directory</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 alpha (built after 2001/08/04) and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://genjar.sourceforge.net/">http://genjar.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jesse_dev@yahoo.com">Jesse Stockall</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Grand"></a>
+        Grand
+      </h4>
+                        <p>Grand is a set of tools to create a visual representation of Ant target
+          dependencies. It works by taking an Ant build file and creating a "dot" file. It
+          differs from the existing tools by relying on the Ant API rather than XML parsing to
+          get the dependencies. It includes many advanced features such as filtering or
+          rendering depending on the target's nature. Also features a SWT based GUI.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ggtools.net/grand/">http://www.ggtools.net/grand/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Christophe Labouisse
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Greebo"></a>
+        Greebo
+      </h4>
+                        <p>Greebo is an Ant-task for downloading dependency files
+        (currently only jars) from a network to a specified directory,
+        much like Maven. It supports multiple local and remote
+        repositories with either flat or maven-like structures. It can
+        read the dependency list from a Maven project file, a
+        maven-like dependency file, or directly from the build.xml
+        file.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://greebo.sourceforge.net/">http://greebo.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=73733">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="GroboUtils CodeCoverage"></a>
+        GroboUtils CodeCoverage
+      </h4>
+                        <p>The CodeCoverage sub-project of GroboUtils provides a 100%
+        pure Java code coverage tool.  It uses pre-execution class file
+        recompilation, and generates XML files containing the coverage
+        statistics.  It does not require any advanced VM setup to generate
+        coverage numbers.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://groboutils.sourceforge.net/codecoverage/">http://groboutils.sourceforge.net/codecoverage/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=22594">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Hammurapi"></a>
+        Hammurapi
+      </h4>
+                        <p>Java code review tool. Performs automated code
+        review. Contains 111 inspectors which check different aspects
+        of code quality including coding standards, EJB, threading,
+        ...</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5 and 1.5.2
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.org">http://www.hammurapi.org</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.org/content/menu.show@id=Hammurapi.4.html">Project's Contact Page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="IDLDepend"></a>
+        IDLDepend
+      </h4>
+                        <p>idldepend is a task that (re)generates Java sources to be
+        created from CORBA/IDL files.</p>
+                                <p>It parses the IDL file and determines the Java files that
+        must be generated, taking in account the modifications that
+        can happen due to command line parameters.  If any of the Java
+        files are missing or older than the source IDL specification,
+        it launches the specified compiler.  The compilers of Orbacus,
+        Jacorb, OpenORB, Orbix2k and Sun'JDK distributions are
+        supported.</p>
+                                <p>To speed up the process and avoid unnecesary re-parsing, it
+        keeps the dependencies in intermediate files.  This task does
+        not launch the javac compiler as well, that is, its output are
+        Java files and not the final bytecode.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://grasia.fdi.ucm.es/~luismi/idldepend/">http://grasia.fdi.ucm.es/~luismi/idldepend/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:luismpena@gmx.net">luismpena@gmx.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          free source, no license restrictions
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Image"></a>
+        Image
+      </h4>
+                        <p>Image task generates and transforms images. It exposes the
+        imaging capability available in Java2D, Java Advanced Imaging,
+        ImageIO, etc., as set of nested elements.</p>
+                                <p>Image transformations such as "resize"
+        (scale),"overlay" (one image on another),
+        "border" (add a border), "text" (text on
+        image), "crop" (a sub-image of a bigger image),
+        "rotate", "grayscale" (change a color
+        image to shades of gray).<br />
+        Now it supports transparency (making images translucent), a
+        bestfit option for Resize, simple support for images within
+        a security-constraint, a preliminary support (if pjatools.jar
+        is available) for saving files as GIF and some other fixes.</p>
+                                <p>IMPORTANT: You will need the PMIW (Poor Man's Imaging Wrapper) jar
+        for all the operations and the pjatools jar for GIF encoding/ saving
+        support.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.mullassery.com/software/ANT/">http://www.mullassery.com/software/ANT/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          pmiw jar
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.mullassery.com/software/PMIW/">http://www.mullassery.com/software/PMIW/</a>
+                (Poor Man's Imaging Wrapper)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          pjatools jar
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eteks.com/pja/en/">http://www.eteks.com/pja/en/</a>
+                (pjatools for GIF encoding support)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.mullassery.com">Abey Mullassery</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Importscrubber"></a>
+        Importscrubber
+      </h4>
+                        <p>Removes unnecessary import statements from a Java source code file.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://importscrubber.sourceforge.net/">http://importscrubber.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:tomcopeland@users.sourceforge.net">Tom Copeland</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="ImTask"></a>
+        ImTask
+      </h4>
+                        <p>ImTask is a task to allow one to send an Instant
+        Message. Currently supports yahoo!, AIM, and Jabber</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://imtask.sourceforge.net/">http://imtask.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:djallstar@users.sourceforge.net">Jon Madison</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU LGPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Interactive"></a>
+        Interactive
+      </h4>
+                        <p>Task allowing to run a dialog within a build used to setup
+        some properties.  This way you can fill a property with the
+        input of a user.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.kasisoft.de/build/ant/interactive/">http://www.kasisoft.de/build/ant/interactive/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@kasisoft.de">Daniel Kasmeroglu</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="IsDirValidator"></a>
+        IsDirValidator
+      </h4>
+                        <p>Checks whether a given directory structure conforms to
+        certain rules that are defined via nested elements of the
+        task.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://isvalidator.sourceforge.net/en/isDirValidator.htm">http://isvalidator.sourceforge.net/en/isDirValidator.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:news@inigoserrano.com">Iñigo Serrano</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="J2ME Ant Tasks"></a>
+        J2ME Ant Tasks
+      </h4>
+                        <p>There are different sets of tasks to help build <a href="http://java.sun.com/j2me/">Java 2 Platform, Micro
+        Edition</a> (J2ME) applications.</p>
+                                      <h5 class="subsection">
+        <a name="Antenna"></a>
+        *** Antenna ***
+      </h5>
+                        <p>Antenna provides a set of Ant tasks suitable for developing
+          wireless Java applications targeted at the Mobile Information
+          Device Profile (MIDP). With Antenna, you can compile,
+          preverify, package, obfuscate, and run your MIDP applications
+          (aka MIDlets), manipulate Java Application Descriptor (JAD)
+          files, as well as convert JAR files to PRC files designed to
+          run on MIDP for Palm OS. Deployment is supported via a
+          deployment task and a corresponding HTTP servlet for
+          Over-the-Air (OTA) provisioning. A small preprocessor allows
+          to generate different variants of a MIDlet from a single
+          source.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antenna.sourceforge.net/">http://antenna.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:joerg@pleumann.de">Jörg Pleumann</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h5 class="subsection">
+        <a name="Antic"></a>
+        *** Antic ***
+      </h5>
+                        <p>Antic is a freely available task for packaging J2ME
+          applications. It produces both the Jar and Jad files in a
+          single step. This allows *all* entries to be correclty set in
+          the jad file, including the size of the jar file that is
+          produced. This task has been used and tested extensively with
+          Sun's Wireless Toolkit and also the Nokia SDK and
+          emulators.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.smartkey.co.uk/tools/antic/antic.html">http://www.smartkey.co.uk/tools/antic/antic.html</a>
+              
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@smartkey.co.uk">smartkey.co.uk</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h5 class="subsection">
+        <a name="Dave's J2ME Tasks"></a>
+        *** Dave's J2ME Tasks ***
+      </h5>
+                        <p>This set supports CLDC and the K Virtual Machine (KVM):</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.dribin.org/dave/j2me_ant/">http://www.dribin.org/dave/j2me_ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:drib@enteract.com">Dave Dribin</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h5 class="subsection">
+        <a name="J2ME Polish"></a>
+        *** J2ME Polish ***
+      </h5>
+                        <p>J2ME Polish is an Ant-based tool for the creation of
+          MIDP applications. It covers the whole circle of preprocessing, compiling,
+          obfuscation, preverifying, packaging and JAD-creation. J2ME Polish is
+          ideal for creating device optimized applications with its powerful
+          preprocessing capabilities and the integrated device database.
+          With J2ME Polish no hardcoded values are needed and the portability of an
+          application is not sacrificed, even though highly opimized applications are
+          created from a single source.
+          <br />
+          It contains a logging framework and an optional MIDP-compatible GUI
+          which can be designed using the web-standard CSS. With the J2ME Polish GUI
+          you can even use MIDP/2.0 features on MIDP/1.0 phones.
+          </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.j2mepolish.org/">http://www.j2mepolish.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:j2mepolish@enough.de">Enough Software</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License; commercial licenses available
+      </td>
+      </tr>
+        </table>
+                                                    <h5 class="subsection">
+        <a name="Stampysoft's J2ME Tasks"></a>
+        *** Stampysoft's J2ME Tasks ***
+      </h5>
+                        <p>And this set works with the J2ME Wireless Toolkit and MIDP
+          for PalmOS:</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.stampysoft.com/ant/">http://www.stampysoft.com/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jeckels@stampysoft.com">Josh Eckels</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+        </table>
+                                                                  <h4 class="subsection">
+        <a name="Jacson"></a>
+        Jacson
+      </h4>
+                        <p>Jacson is a configurable and plugable tool (much like Ant
+        itself) to create filters for text (line based) files without
+        programming.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Jacson has been used and tested with 1.5.1, should
+            work with 1.4+
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jacson.sourceforge.net/">http://jacson.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jacson-user@lists.sourceforge.de">jacson-user@lists.sourceforge.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Library or Lesser General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Jalopy"></a>
+        Jalopy
+      </h4>
+                        <p>An Ant Plug-in for the Java Source Code Formatter
+        Jalopy.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 (or higher)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jalopy.sourceforge.net/">http://jalopy.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jalopy.sf.net/contact.html">http://jalopy.sf.net/contact.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Starting with release 1.0 Beta 6 the license is the
+            BSD License.  Prior releases were under the GNU General
+            Public License.
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Java+ Precompile Task"></a>
+        Java+ Precompile Task
+      </h4>
+                        <p>Java+ is an open source Java preprocessor that adds these
+        features to any Java compiler:</p>
+                                <ul>
+          <li>Multi-line strings with executable inclusions like Perl
+          and Ruby. It eliminates the need for JSP or ASP and their
+          need for Java compilers on deployment servers (a security
+          concern) while adding no overhead in either space or
+          time. </li>
+
+          <li>Optionally supports localization by segregating Java+
+          strings into ResourceBundle files with invarient keys based
+          on the hash code of the strings's value. This is handled
+          automatically and transparently; no intervention is
+          required.</li>
+
+          <li>Fast. Negligible impact on build times. By default,
+          skips inputs whose outputs are up to date to avoid
+          triggering recompilations.</li>
+
+          <li>Pure Java code, portable to any platform, with
+          graphical, shell and ant interfaces.</li>
+
+          <li>Simple, general, recursive, digraph-driven string
+          syntax. Digraph characters are user-selectable.</li>
+        </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://virtualschool.edu/java+/">http://virtualschool.edu/java+/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:bcox@virtualschool.edu">Brad Cox</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Java2Html"></a>
+        Java2Html
+      </h4>
+                        <p>There are two different tools both named Java2HTML that
+        process Java source code and generate syntax higlighted
+        documentation from it.  Both include Ant tasks to run
+        them.</p>
+                                <p>Java2Html library for converting java source files
+        or snipplets to syntax highlighted html, rtf, tex and
+        others.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.java2html.de/">http://www.java2html.de/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:java2html@jave.de">java2html@jave.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                <p>Java2HTML is a simple-to-use tool which converts a bunch of
+        Java Source Code into a colourized and browsable HTML
+        representation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1 onwards
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.java2html.com/java2html_ant_task.html">http://www.java2html.com/java2html_ant_task.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@java2html.com">support@java2html.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          FreeWare
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Javamake"></a>
+        Javamake
+      </h4>
+                        <p>A task to compile Java sources and manage class file
+        dependencies. Functionality is equivalent to that of standard
+        Javac and Depend tasks combined, with improved dependency
+        checking.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.experimentalstuff.com/Technologies/JavaMake/index.html">http://www.experimentalstuff.com/Technologies/JavaMake/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:Mikhail.Dmitriev@eng.sun.com">Mikhail Dmitriev</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="javarec"></a>
+        javarec
+      </h4>
+                        <p>Ant tasks that generate record classes for VisualAge for
+        Java from Cobol copy books.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://glezen.org/javarec/">http://glezen.org/javarec/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:pglezen@us.ibm.com">Paul Glezen</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JCSC"></a>
+        JCSC
+      </h4>
+                        <p>JCSC is a Java Coding Standard Checker which also features
+        the generation of some code metrics. It is a command line tool
+        with an Ant task to scan whole package trees. The result can
+        viewed in an JavaDoc style web page.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant &gt;= 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jcsc.sourceforge.net/">http://jcsc.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:rjocham72@netscape.net">Ralph Jocham</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JFlex"></a>
+        JFlex
+      </h4>
+                        <p>JFlex is a lexical analyzer generator (also known as
+        scanner generator) for Java, written in Java.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jflex.de/">http://jflex.de/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.jflex.de/mailing.html">jflex-users mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JindentTask"></a>
+        JindentTask
+      </h4>
+                        <p>JindentTask is a very straightforward wrapping of the
+        Jindent tool, a vendor code beautifier. It enables to use
+        Jindent natively from Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://the.edouard.mercier.free.fr/Jindent_content.php">http://the.edouard.mercier.free.fr/Jindent_content.php</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Edouard Mercier
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Jing Task"></a>
+        Jing Task
+      </h4>
+                        <p> Validates XML files against the RELAX NG alternative to XML Schema.
+        The Jing task for Ant allows you to efficiently validate
+        multiple files against multiple RELAX NG patterns and integrate
+        RELAX NG validation with other XML processing.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.thaiopensource.com/relaxng/jing-ant.html">
+            http://www.thaiopensource.com/relaxng/jing-ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="jMetra"></a>
+        jMetra
+      </h4>
+                        <p>jMetra is a tool for collecting code metrics across a
+        project lifecycle and compiling the results into
+        JavaDoc-styled documentation to analyze project metrics over
+        time.  jMetra is best utilized by integrating it with your
+        project's scheduled build process.</p>
+                                <p>It works from the command line or using several provided
+        Ant tasks.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.jmetra.com/">http://www.jmetra.com/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:tnewton@hypercisioninc.com">R Todd Newton
+              </a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial, free licenses for open source projects and
+            evaluations.
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JMX4Ant"></a>
+        JMX4Ant
+      </h4>
+                        <p>JMX4Ant provides tasks for integration with JMX (Java Management
+        Extensions). It provides tasks for getting and setting attributes
+        of MBeans, invoking their methods and much more.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://jmx4ant.sourceforge.net/">http://jmx4ant.sourceforge.net/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:bdueck@yahoo.com">Brian Dueck</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 1.1
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JNI"></a>
+        JNI
+      </h4>
+                        <p>
+
+          JNI is a free toolkit that makes easy work of
+          integrating Java and C through the Java Native
+          Interface (JNI). It includes a code generator that
+          generates both Java "proxy" classes to access C
+          "peer" classes, and C "proxy" classes to access
+          Java "peer" classes or interfaces. It also
+          includes a core library with a simplified JVM
+          interface as well as "helper" classes to ease
+          working with the JNI data types. The code
+          generation is driven by an XML project file that
+          can be created with the assistance of the GUI
+          Project Manager. The code generation can be
+          invoked either from Ant or from the
+          GUI. Includes a comprehensive printable PDF User
+          Guide and plenty of examples.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jnipp.sf.net/">http://jnipp.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:ptrewhella@users.sf.net">Phillip E. Trewhella</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU LGPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JReleaseInfo"></a>
+        JReleaseInfo
+      </h4>
+                        <p>Sometimes you are interested at runtime to have information
+        from build time. This may be the build date, a build number or
+        the version.  The JReleaseInfo Ant Task generates a java
+        source file with getter methods for any desired and provided
+        properties.  Furthermore, it can automatically generate a
+        viewer (which can e.g.  be used as main-class in a library jar
+        file) that shows the included release information.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jreleaseinfo.sourceforge.net/">HomePage on SourceForge</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/jreleaseinfo/">Forums/Tracker on SourceForge</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JRun Ant Tasks"></a>
+        JRun Ant Tasks
+      </h4>
+                        <p>JRun 4 SP1 ships with lib/jrun-ant-tasks.jar, which defines
+        three Ant tasks: jrun, jrunapp, and jrunjmx.  Documentation
+        for the tasks can be found in JRun under
+        docs/ant/jrun.html.</p>
+                                <p>Note that the service pack must be installed on top of an
+        existing JRun 4 installation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dynamic.macromedia.com/bin/MM/software/trial/hwswrec.jsp?product=jrun_sp">http://dynamic.macromedia.com/bin/MM/software/trial/hwswrec.jsp?product=jrun_sp</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:bdeitte@macromedia.com">Brian Deitte</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Just4log Ant Task"></a>
+        Just4log Ant Task
+      </h4>
+                        <p>Just4log is a ant task to optimize JVM bytecode with regards
+        for Logs ( be it, Log4j, Apache Commons or JDK 1.4 )
+        It depends on apache BCEL for Bytecode engineering.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.2 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://just4log.sourceforge.net">http://just4log.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:lbruand@wanadoo.fr">Lucas Bruand</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache License 1.1.
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JWare/AntXtras Foundation"></a>
+        JWare/AntXtras Foundation
+      </h4>
+                        <p>A collection of general Ant extension tasks divided into
+        four main categories:</p>
+                                <ul>
+          <li>Build-Rules(asserts,prefers,etc.),</li>
+          <li>Feedback(log4j,jlog,etc.),</li>
+          <li>Flowcontrol(templates),</li>
+          <li>and Helpers.</li>
+        </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.antxtras.info/">http://www.antxtras.info/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:contact@jware.info">contact@jware.info</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License (LGPL)
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Kanaputs"></a>
+        Kanaputs
+      </h4>
+                        <p>Kanaputs is a parser for java based scripting. It is an
+        interpreter for Java. With Kanaputs you can use Java as an
+        interpreted language: no more compilation, each instruction is
+        executed when you write it.  It is a small programmation
+        language to make script files above Java.</p>
+                                <p>Kanaputs Ant Task provides a way to add any kind of
+        programmatic features in your Ant script. The code you insert
+        stays OS independent (because Kanaputs uses Java) and is
+        completely integrated with Ant as you can give Ant properties
+        to the Kanaputs code and get back the results in other
+        properties.</p>
+                                <p>Moreover, as you can invoke any kind of Java code with
+        Kanaputs, you can popup windows from your Ant file to ask the
+        user to do a choice.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.kanaputs.org/">http://www.kanaputs.org/</a> <br />
+              <a href="http://www.kanaputs.org/ant.html">http://www.kanaputs.org/ant.html</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:kfra@kanaputs.org">kfra@kanaputs.org</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Macker"></a>
+        Macker
+      </h4>
+                        <p>A build-time architectural testing tool, designed
+        to maintain clean layering / tiering / modularity.
+        Macker works against compiled class files, checking
+        dependencies between classes against a set of
+        pattern-based access rules you specify for your
+        project in an XML rules file.  Macker doesn't presume
+        anything about your architecture -- you write the
+        rules, and Macker keeps you honest about them.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and higher (1.4 untested but may work)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://innig.net/macker/">http://innig.net/macker/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://innig.net/macker/contact.html">Paul Cantrell</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU GPL 2.0
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="mtxslt"></a>
+        mtxslt
+      </h4>
+                        <p>The mtxslt (Multi-XSLT) extends the standard Ant "xslt/style" task
+        to make it easy to use multiple XSLT engines during the same build.
+        This is useful for regression testing of XSLT scripts against several
+        engines.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://mtxslt.sourceforge.net/">http://mtxslt.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:abcoates@theOffice.net">Anthony B. Coates</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="pack"></a>
+        pack
+      </h4>
+                        <p>pack is a task to build the smallest possible JAR to link
+        and run one or more classes.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sadun-util.sourceforge.net/pack.html">http://sadun-util.sourceforge.net/pack.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cristiano@xtractor.com">Cristiano Sadun</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="PCT"></a>
+        PCT
+      </h4>
+                        <p>PCT is a task to compile Progress code, and in a more general
+        way, to deal with Progress procedures and databases.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://pct.sourceforge.net">http://pct.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:justus_phenix@users.sourceforge.net">Gilles QUERRET</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Licence:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="PMD"></a>
+        PMD
+      </h4>
+                        <p>PMD checks Java source code for unused variables,
+        unnecessary object creation, etc</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://pmd.sf.net/">http://pmd.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:tcopeland@apache.org">Tom Copeland</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="PRes"></a>
+        PRes
+      </h4>
+                        <p>PRes is short for Property Resources and will generate a Java source
+           file from name=value pair .property files which can be compiled like any
+           other class.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later (may work with earlier)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://mseries.sourceforge.net">http://mseries.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://web.ukonline.co.uk/mseries/contact.html">MSeries</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="ProGuard"></a>
+        ProGuard
+      </h4>
+                        <p><a href="http://proguard.sourceforge.net/">ProGuard</a> is
+        a free Java class file shrinker and obfuscator.  It can detect
+        and remove unused classes, fields, methods, and attributes. It
+        can then rename the remaining classes, fields, and methods
+        using short meaningless names.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5. Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://proguard.sourceforge.net/">http://proguard.sourceforge.net/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://proguard.sourceforge.net/feedback.html">Feedback Page</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Purge"></a>
+        Purge
+      </h4>
+                        <p>Purge deletes all but the most recent few files from a fileset.
+        For example: if you have generated files (logs, .ear, .war, .jar
+        etc) accumulating in a directory, the purge task will allow you
+        to delete the older files, keeping just the most recent ones.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.dallaway.com/ant/">http://www.dallaway.com/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:purge@dallaway.com">Richard Dallaway</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="RefactorIT"></a>
+        RefactorIT
+      </h4>
+                        <p>RefactorIT includes an Ant task for metrics and audits.
+        RefactorIT is a Java refactoring, audit and metrics tool.
+        It plugs into major Java IDEs, also runs stand-alone with
+        a GUI and a command line interface.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.refactorit.com/">http://www.refactorit.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@refactorit.com">support@refactorit.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial. (Free for accredited open source products, see
+            <a href="http://www.refactorit.com/osc">http://www.refactorit.com/osc</a>.)
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Reflectant Task"></a>
+        Reflectant Task
+      </h4>
+                        <p>This is a task for reflection invocation from within ant build file.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/reflectant/">http://sourceforge.net/projects/reflectant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:sv_ant@mail.bg">sv_ant@mail.bg</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Roxes Ant Tasks"></a>
+        Roxes Ant Tasks
+      </h4>
+                        <p>The collections contain 3 Tasks for simplifying application
+        deployment: <i>sfx</i> creates native self extracting executables
+        out of ZIP archives; <i>jstub</i> creates native executables;
+        <i>jnlp</i> simplifies the creation of JNLP files for Java Web Start.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.roxes.com/produkte/rat.html">http://www.roxes.com/produkte/rat.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:info@roxes.com">info@roxes.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="rundoc"></a>
+        rundoc
+      </h4>
+                        <p>A task designed to help with the single-sourcing of program
+        documentation. Rundoc replaces special commands
+        (in the format <i>@@rundoc:command param1 param2...@@</i>) embedded
+        within text files with their output in a
+        specified format. Currently, only Docbook format is supported.</p>
+                                <p>Rundoc was written to keep sample code output in program
+        documentation synchronized with the actual output
+        of the current code, by running the referenced code when the
+        documentation is built.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.6  Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/lab/index.html#rundoc">http://www.martiansoftware.com/lab/index.html#rundoc</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/contact.html">Marty Lamb</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Revised BSD
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="SerialVer"></a>
+        SerialVer
+      </h4>
+                        <p>SerialVer adds the Java serialver functionality to Apache
+        Ant.  This project adds Tasks and FilterReaders to get, to
+        insert and to modify the serialVersionUID in the source code
+        of a serializable class.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://serialver.sourceforge.net/">http://serialver.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://lists.sourceforge.net/lists/listinfo/serialver-development">developer mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Simian"></a>
+        Simian
+      </h4>
+                        <p>Simian (Similarity Analyser) identifies duplication in Java,
+        C#, C, CPP, COBOL, JSP, HTML source code and even plain text files.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.redhillconsulting.com.au/products/simian/">
+            http://www.redhillconsulting.com.au/products/simian/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:simian-user-subscribe@redhillconsulting.com.au">
+            simian-user-subscribe@redhillconsulting.com.au (User Mailinglist)
+            </a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial, Free Licenses available for Non-Commercial Projects
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="SmartAnalyzer"></a>
+        SmartAnalyzer
+      </h4>
+                        <p>Powerful analysis of dependencies between Java classes.
+        Only affected classes will be recompiled and it can be used
+        with any bytecode compiler.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Ant version 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://smartanalyzer.sourceforge.net/">http://smartanalyzer.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/smartanalyzer">support at sourceforge project page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public Licence (GPL)
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="snip"></a>
+        snip
+      </h4>
+                        <p>A task designed to help with the single-sourcing of program documentation.
+        Snip extracts snippets of text from files, placing them into properties in the Ant project.
+        These properties can then be used by any other Ant task, and are particularly useful when
+        referenced by &lt;filter&gt;s within the &lt;copy&gt; task.</p>
+                                <p>Snip was originally written to keep snippets of sample code in API documentation synchronized
+        with the actual sample classes.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5.1.  Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/lab/index.html#snip">http://www.martiansoftware.com/lab/index.html#snip</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/contact.html">Marty Lamb</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Revised BSD
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Speech4J"></a>
+        Speech4J
+      </h4>
+                        <p>A text-to-speech task and build listener, which produce
+        voice output either to speakers or .wav file (the task
+        only).</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5.2. Works only on Windows platform
+            because the task uses Microsoft Speech API through
+            JNI.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.pavelvlasov.com/pv/content/Products/Speech4j/index.html">http://www.pavelvlasov.com/pv/content/Products/Speech4j/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.pavelvlasov.com/pv/content/contact.html">Pavel Vlasov</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Lite edition of Speech4j which includes both the task
+            and the listener is free.
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Styler"></a>
+        Styler
+      </h4>
+                        <p>The styler task makes useful combinations of XSLT transformations
+        easy to specify in an Ant build file. Like the built-in Ant task
+        style, styler can apply a single transformation to a set of XML files.
+        But it can also:</p>
+                                <ul>
+          <li>handle multiple transformations, in parallel or pipelined.</li>
+          <li>enable transformations that split or merge files</li>
+          <li>process non-XML files, especially HTML (based on JTidy)</li>
+          <li>apply non-XSLT transformation, especially "regular
+          fragmentations"</li>
+          <li>use any custom XMLReader or XMLFilter class to handle new file
+          formats and transformation techniques.</li>
+        </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.langdale.com.au/styler/">http://www.langdale.com.au/styler/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:adv@langdale.com.au">Arnold deVos</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Syntax"></a>
+        Syntax
+      </h4>
+                        <p>Transforms source files into HTML documents with syntax
+        highlighting. It can handle a variety of source files
+        including Java, HTML, C/C++, SQL, and Java properties.  Colors
+        for elements are specified using cascading style sheets.  The
+        output can be templated for easy integration with a site's
+        look and feel.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ostermiller.org/syntax/ant.html">http://ostermiller.org/syntax/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ostermiller.org/contact.pl?regarding=Syntax+Highlighting">Stephen Ostermiller</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="TestSetGenerator"></a>
+        TestSetGenerator
+      </h4>
+                        <p>The TestSetGenerator is an ant task for generating property files with
+        testsets based on the results of SQL queries and validation plug-ins. Very
+        usefull when building unit tests that make use of changing datasets. This
+        task is an extension of the Ant SQL task. Hsqldb is used for both the
+        examples and the unittests.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          ANT 1.4 (or later)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://anttestsetgen.sourceforge.net/">http://anttestsetgen.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:m.c.jansen@planet.nl">m.c.jansen@planet.nl</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Tidy Imports (Tim)"></a>
+        Tidy Imports (Tim)
+      </h4>
+                        <p>Tim is a handy utility that can be executed on the command
+        line or via Ant that automatically formats your import
+        declarations. Tim is capable of removing unused imports,
+        expanding or collapsing imports and even organising them into
+        pre-determined groups.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.chive.com/tim.htm">http://www.chive.com/tim.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@chive.com">support@chive.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="TiniAnt"></a>
+        TiniAnt
+      </h4>
+                        <p>TiniAnt is an Ant task to support building applications for
+        the <a href="http://www.ibutton.com/TINI/">TINI</a>.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 to 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://tiniant.sourceforge.net/">http://tiniant.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:kelly@ad1440.net">Sean Kelly</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like license
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Transformica"></a>
+        Transformica
+      </h4>
+                        <p>Code generator. Generates code from UML models, Java
+        metamodel or custom models.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5 and 1.5.2
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.pavelvlasov.com/pv/content/menu.show@id=products.transformica.html">http://www.pavelvlasov.com/pv/content/menu.show@id=products.transformica.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.pavelvlasov.com/pv/content/contact.html">Pavel Vlasov</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Venus Application Publisher's (Vamp) Ant Task Suite"></a>
+        Venus Application Publisher's (Vamp) Ant Task Suite
+      </h4>
+                        <p>Venus Application Publisher's (Vamp) Ant Task Suite allows
+        you to sign and package your applications into relocatable Web
+        Archives that you can drop into your web server for
+        single-click launching using Java Web Start or into single
+        Java Archive installers that serve up their content through a
+        built-in, multi-threaded, ultra light-weight web server.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.geocities.com/vamp201/ant.html">http://www.geocities.com/vamp201/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:vamp201@yahoo.com">Gerald Bauer</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Version_Tool"></a>
+        Version_Tool
+      </h4>
+                        <p>A versioning tool for Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant.ryangrier.com/">http://ant.ryangrier.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:version_tool@ryangrier.com">version_tool@ryangrier.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="VPP"></a>
+        VPP
+      </h4>
+                        <p>VPP provides general file preprocessing support based on
+        the Velocity Template Engine.  The core funtionality is
+        provided as a filter for use with tasks that supports filter
+        chains.  Also included are replacement tasks for &lt;copy&gt; and
+        &lt;javac&gt; that integrate support for preprocessing.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://vpp.sourceforge.net/">http://vpp.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:vpp-user@lists.sourceforge.net">vpp-user@lists.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="WOProject"></a>
+        WOProject
+      </h4>
+                        <p>WOProject provides a set of tools to work with
+        <a href="http://webobjects.com/">WebObjects 5.1</a>
+        independent from platform and IDE. It significantly
+        improves developer productivity
+        and makes complex project structures more flexible compared to
+        traditional Makefile-based approach.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://objectstyle.org/woproject/">http://objectstyle.org/woproject/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:andrus@objectstyle.org">Andrus Adamchik</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache license
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="WSDLValidate"></a>
+        WSDLValidate
+      </h4>
+                        <p>WSDLValidate is, as it sounds, a tool to validate WSDL files.
+        <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/wsvt-home/docs/articles/wsdl20Validator/wsdlvalidateant.html">WSDLValidate</a>
+        is similar in configuration to the optional Ant task <a href="http://ant.apache.org/manual/OptionalTasks/xmlvalidate.html">XMLValidate</a>.
+        WSDLValidate can optionally validate a WSDL document against the <a href="http://www.ws-i.org">WS-I Basic Profile</a>.
+        </p>
+                                <p>WSDLValidate is available as an Ant task, an Eclipse plug-in and a
+        command line utility.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/wsvt">http://www.eclipse.org/wsvt</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/wsvt">Project newsgroup and
+            mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www-124.ibm.com/developerworks/oss/CPLv1.0.htm">Common Public
+            License (CPL)</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="XDoclet"></a>
+        XDoclet
+      </h4>
+                        <p>XDoclet is an extended Javadoc Doclet engine for use in Ant.
+           It lets you create custom Javadoc @tags and based on those tags
+           generates source code or other files (such as xml-ish deployment
+           descriptors). Templates and matching tasks are provided to generate
+           EJB and web application deployment descriptors.
+           </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/xdoclet/">http://sourceforge.net/projects/xdoclet/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="XInclude"></a>
+        XInclude
+      </h4>
+                        <p><a href="http://www.jeckle.de/freeStuff/xia/index.html">XInclude</a> is
+          a W3C standardized vocabulary for including arbitrary text or XML
+          documents in other XML documents. This task perfomes the inclusion
+          using an existing XInclude implementation</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.2
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.jeckle.de/freeStuff/xia/index.html">http://www.jeckle.de/freeStuff/xia/index.html</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mario@jeckle.de">mario@jeckle.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Lesser GNU Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="XmlTask"></a>
+        XmlTask
+      </h4>
+                        <p>XmlTask provides a simple means to modify XML documents
+        without having to learn XSLT. A simple path reference to an
+        XML node specifies the node you want to change, and how you
+        want to allow XML insertion and removal, or attribute
+        changes. The emphasis is on providing the simplest means to
+        perform common XML replacements</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.oopsconsultancy.com/software/xmltask.html">http://www.oopsconsultancy.com/software/xmltask.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:xmltask@oopsconsultancy.com">xmltask@oopsconsultancy.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="yGuard"></a>
+        yGuard
+      </h4>
+                        <p>yGuard is a free Java(TM) Bytecode Obfuscator Task that
+        needs no external script or project files. It can completely
+        be configured and run through the Ant build script. The task
+        supports multiple Jar files at once and makes use of
+        patternsets and regular expressions to specify elements, which
+        should be left unobfuscated.  Additionally it can be used to
+        produce patches for obfuscated applications that have already
+        been deployed.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.yworks.com/en/products_yguard_about.htm">http://www.yworks.com/en/products_yguard_about.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:yguard@yworks.com">yGuard@yWorks.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Library: LGPL, Task: Commercial
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Zelix KlassMaster"></a>
+        Zelix KlassMaster
+      </h4>
+                        <p>The task ZKMTask allows the Zelix KlassMaster Java obfuscator to be integrated into an Ant build.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.zelix.com/klassmaster/docs/buildToolApi.html">http://www.zelix.com/klassmaster/docs/buildToolApi.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+        </table>
+                                      <h3 class="section">
+      <a name="Compiler Implementations"></a>
+      Compiler Implementations
+    </h3>
+                              <h4 class="subsection">
+        <a name="Generics (JSR14) Early-Access Compiler Adapter"></a>
+        Generics (JSR14) Early-Access Compiler Adapter
+      </h4>
+                        <p>This is an Ant compiler-adapter that allows you to use the
+        normal <code>&lt;javac&gt;</code> task plus Sun's early-access
+        compiler to compile Generics-enabled Java code.  (This is only
+        necessary until JDK1.5 is released.)</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.madbean.com/blog/3/">http://www.madbean.com/blog/3/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Matt Quail &lt;spud[at]madbean[dot]com&gt;
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Public Domain
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="miniRMI &lt;code&gt;&amp;lt;rmic&amp;gt;&lt;/code&gt; implementation"></a>
+        miniRMI <code>&lt;rmic&gt;</code> implementation
+      </h4>
+                        <p>miniRMI is a freeware opensource library that serves as a
+        lightweight replacement for the original java.rmi packages and
+        is suitable especially for applets. Ant 1.4+
+        <code>&lt;rmic&gt;</code> adapter included.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dione.zcu.cz/~toman40/miniRMI/">http://dione.zcu.cz/~toman40/miniRMI/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:Petr.Toman@pinknet.cz">Petr Toman</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Gnu Lesser Public License
+      </td>
+      </tr>
+        </table>
+                                      <h3 class="section">
+      <a name="IDE and Editor Integration"></a>
+      IDE and Editor Integration
+    </h3>
+                              <h4 class="subsection">
+        <a name="AntFarm"></a>
+        AntFarm
+      </h4>
+                        <p>A plugin that integrates Ant into the jEdit editor.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://plugins.jedit.org/plugins/?AntFarm">http://plugins.jedit.org/plugins/?AntFarm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jedit-devel@lists.sourceforge.net">jEdit developers mailinglist</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="AntMan"></a>
+        AntMan
+      </h4>
+                        <p>An AddIn that integrates Ant with the JDeveloper IDE</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.erudra.com/antman/index.html">http://www.erudra.com/antman/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:ashok@erudra.com">Ashok Sridhar</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="AntRunner"></a>
+        AntRunner
+      </h4>
+                        <p>An OpenTool that integrates Ant into the JBuilder IDE
+        (version 5 and later).</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antrunner.sourceforge.net/">http://antrunner.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:dirk.schnelle@web.de">Dirk Schnelle</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="AntWork"></a>
+        AntWork
+      </h4>
+                        <p>A plugin that integrates Ant into the Jext editor.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:KHartlage@t-online.de">Klaus Hartlage</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Eclipse"></a>
+        Eclipse
+      </h4>
+                        <p>Eclipse is a universal tool platform with Ant integration.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 - 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/">http://www.eclipse.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="news://news.eclipse.org/eclipse.tools">news://news.eclipse.org/eclipse.tools</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Common Public License Version 1.0
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Gel"></a>
+        Gel
+      </h4>
+                        <p>Java IDE with support for Ant.  Gel is a native Microsoft
+        Windows software.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.gexperts.com/gel.html">http://www.gexperts.com/gel.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://groups.yahoo.com/group/gelide/">Project Mailing List</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="HP RadPak"></a>
+        HP RadPak
+      </h4>
+                        <p>
+        RadPak comes with the (free) HP Bluestone HPAS J2EE server, and is primarily
+        a GUI tool for packaging and deploying java web and EJB applications
+        as WAR and EAR files. The tool is ant based, and can be used with
+        as a GUI for general ant development, providing form based entry
+        of task attributes, and an animated display of task
+        execution.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.3 and docs; adds a jar of extra tasks
+            to any existing ant installation under ANT_HOME
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.bluestone.com/products/hp-as/">http://www.bluestone.com/products/hp-as/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Proprietary but free to download
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="IntelliJ IDEA 2.0"></a>
+        IntelliJ IDEA 2.0
+      </h4>
+                        <p>Java IDE with refactoring support and Ant integration.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.intellij.com/idea/">http://www.intellij.com/idea/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@intellij.com">support@intellij.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JBuilder 8 Enterprise"></a>
+        JBuilder 8 Enterprise
+      </h4>
+                        <p>JBuilder 8 Enterprise and "Performance Bundle"
+        come with built-in Ant support.  JBuilder 8 Personal and SE
+        don't support Ant directly, but <a href="#AntRunner">an
+        OpenTool</a> is available for them.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Bundles Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.borland.com/jbuilder/index.html">http://www.borland.com/jbuilder/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:customer_service@borland.com">customer_service@borland.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JDE(E) 2.2.8"></a>
+        JDE(E) 2.2.8
+      </h4>
+                        <p>The Java Development Environment for Emacs (JDEE) supports
+        Apache Ant as one of three built-in ways to build your
+        applications.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jde.sunsite.dk/">http://jde.sunsite.dk/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jde-subscribe@sunsite.auc.dk">JDEE Mailing list.</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="NetBeans / Sun ONE Studio"></a>
+        NetBeans / Sun ONE Studio
+      </h4>
+                        <p>A module that integrates Ant into the NetBeans or Sun Java Studio (formerly
+        Forte for Java and Sun ONE Studio) IDEs.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.6.1 as of NetBeans 3.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant.netbeans.org/">http://ant.netbeans.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:nbdev@netbeans.org">nbdev@netbeans.org</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Sun Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Oracle9i JDeveloper"></a>
+        Oracle9i JDeveloper
+      </h4>
+                        <p>Java IDE with support for Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://otn.oracle.com/products/jdev/">http://otn.oracle.com/products/jdev/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jdeveloperbeta_us@oracle.com">jdeveloperbeta_us@oracle.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="WebSphere Studio Application Developer"></a>
+        WebSphere Studio Application Developer
+      </h4>
+                        <p>WSAD features Ant integrate by virtue of being built on the Eclipse tools platform.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Article:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www7b.software.ibm.com/wsdd/library/techarticles/0203_searle/searle1.html">Ant Integration Part1</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+        </table>
+                                      <h3 class="section">
+      <a name="Source Control Systems"></a>
+      Source Control Systems
+    </h3>
+                        <p>There are several integration with SCM systems. Some are
+      <a href="manual/tasksoverview.html#scm">build in</a>. But some are available as
+      external libraries. Here a list of task libraries we are aware of:</p>
+                                      <h4 class="subsection">
+        <a name="Surround SCM"></a>
+        Surround SCM
+      </h4>
+                        <p>These are tasks that allow users to access Surround SCM
+         functionality from within Ant build scripts.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.seapine.com/scmresources.php#integration">
+            Surround SCM Resource Center</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@seapine.com">Seapine Support</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+        </table>
+                              
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/faq.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/faq.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/faq.html	(revision 14989)
@@ -0,0 +1,1729 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Frequently Asked Questions</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                              <span class="sel">Frequently Asked Questions</span>
+                              </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Frequently Asked Questions</h1>
+    
+        <h3 class="section">Questions</h3>
+                <h4 class="toc">About this FAQ</h4>
+        <ul>
+                <li><a href="#latest-version">
+  Where do I find the latest version of this
+        document?
+      </a></li>
+                <li><a href="#adding-faqs">
+  How can I contribute to this FAQ?
+      </a></li>
+                <li><a href="#creating-faq">
+  How do you create the HTML version of this
+        FAQ?
+      </a></li>
+            </ul>
+                <h4 class="toc">General</h4>
+        <ul>
+                <li><a href="#what-is-ant">
+  What is Apache Ant?
+      </a></li>
+                <li><a href="#ant-name">
+  Why do you call it Ant?
+      </a></li>
+                <li><a href="#history">
+  Tell us a little bit about Ant's history.
+      </a></li>
+            </ul>
+                <h4 class="toc">Installation</h4>
+        <ul>
+                <li><a href="#no-gnu-tar">
+  I get checksum errors when I try to extract the
+      <code>tar.gz</code> distribution file. Why?
+      </a></li>
+            </ul>
+                <h4 class="toc">How do I ...</h4>
+        <ul>
+                <li><a href="#implement-os-specific-configuration">
+  How do I realize os--specific configurations?
+      </a></li>
+                <li><a href="#adding-external-tasks">
+  How do I add an external task that I've written to the
+      page "External Tools and Task"?
+      </a></li>
+                <li><a href="#passing-cli-args">
+  How do I pass parameters from the command line to my
+        build file?
+      </a></li>
+                <li><a href="#jikes-switches">
+  How can I use Jikes-specific command-line
+        switches?
+      </a></li>
+                <li><a href="#shell-redirect-1">
+  How do I include a &lt; character in my command-line arguments?
+      </a></li>
+                <li><a href="#shell-redirect-2">
+  How do I redirect standard input or standard output
+        in the <code>&lt;exec&gt;</code> task?
+      </a></li>
+                <li><a href="#batch-shell-execute">
+  How do I execute a batch file or shell script from Ant?
+      </a></li>
+                <li><a href="#multi-conditions">
+  I want to execute a particular target only if
+        multiple conditions are true.
+      </a></li>
+                <li><a href="#encoding">
+  How can I include national characters like German
+        umlauts in my build file?
+      </a></li>
+                <li><a href="#use-zip-instead-of-jar">
+  How do I use <code>jar</code>'s <code>M</code> switch?
+      I don't want a MANIFEST.
+      </a></li>
+                <li><a href="#propertyvalue-as-name-for-property">
+  How can I do something like <code>&lt;property name="prop"
+      value="${${anotherprop}}"/&gt;</code> (double expanding the property)?
+      </a></li>
+            </ul>
+                <h4 class="toc">It doesn't work (as expected)</h4>
+        <ul>
+                <li><a href="#always-recompiles">
+  Why does Ant always recompile all my Java files?
+      </a></li>
+                <li><a href="#defaultexcludes">
+  I've used a <code>&lt;delete&gt;</code> task to
+      delete unwanted SourceSafe control files (CVS files, editor
+      backup files, etc.), but it doesn't seem to work; the files
+      never get deleted. What's wrong?
+      </a></li>
+                <li><a href="#stop-dependency">
+  I have a target I want to skip if a property is set,
+      so I have <code>unless="property"</code> as an attribute
+      of the target, but all the targets this target
+      depends on are still executed. Why?
+      </a></li>
+                <li><a href="#include-order">
+  In my <code>&lt;fileset&gt;</code>, I've put in an
+      <code>&lt;exclude&gt;</code> of all files followed by an
+      <code>&lt;include&gt;</code> of just the files I want, but it
+      isn't giving me any files at all. What's wrong?
+      
+      </a></li>
+                <li><a href="#properties-not-trimmed">
+  <code>ant</code> failed to build my program via javac
+      even when I put the needed jars in an external
+      <code>build.properties</code> file and reference them by
+      <code>pathelement</code> or <code>classpath refid</code>.
+      </a></li>
+                <li><a href="#winzip-lies">
+  Ant creates WAR files with a lower-case
+        <code>web-inf</code> or JAR files with a lower-case
+        <code>meta-inf</code> directory.
+      </a></li>
+            </ul>
+                <h4 class="toc">Ant and IDEs/Editors</h4>
+        <ul>
+                <li><a href="#integration">
+  Is Ant supported by my IDE/Editor?
+      </a></li>
+                <li><a href="#emacs-mode">
+  Why doesn't (X)Emacs/vi/MacOS X's project builder
+      correctly parse the error messages generated by Ant?
+      </a></li>
+            </ul>
+                <h4 class="toc">Advanced Issues</h4>
+        <ul>
+                <li><a href="#dtd">
+  Is there a DTD that I can use to validate my build
+      files?
+      </a></li>
+                <li><a href="#xml-entity-include">
+  How do I include an XML snippet in my build file?
+      </a></li>
+                <li><a href="#mail-logger">
+  How do I send an email with the result of my build
+        process?
+      </a></li>
+                <li><a href="#listener-properties">
+  How do I get at the properties that Ant was running
+      with from inside BuildListener?
+      </a></li>
+            </ul>
+                <h4 class="toc">Known Problems</h4>
+        <ul>
+                <li><a href="#remove-cr">
+  &lt;chmod&gt; or &lt;exec&gt; doesn't work in Ant
+        1.3 on Unix
+      </a></li>
+                <li><a href="#javadoc-cannot-execute">
+  JavaDoc failed: java.io.IOException: javadoc: cannot execute
+      </a></li>
+                <li><a href="#delegating-classloader">
+  &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt;
+      </a></li>
+                <li><a href="#winxp-jdk14-ant14">
+  When running Ant 1.4 on Windows XP and JDK 1.4, I get
+      various errors when trying to <code>&lt;exec&gt;</code>, fork
+      <code>&lt;java&gt;</code> or access environment
+      variables.
+      </a></li>
+                <li><a href="#1.5-cygwin-sh">
+  The <code>ant</code> wrapper script of Ant 1.5 fails
+      for Cygwin if <code>ANT_HOME</code> is set to a Windows style
+      path.
+      </a></li>
+                <li><a href="#1.5.2-zip-broken">
+  <code>&lt;zip&gt;</code> is broken in Ant 1.5.2.
+      </a></li>
+                <li><a href="#unknownelement.taskcontainer">
+  
+        Why do my custom task containers see Unknown Elements in Ant 1.6
+        - they worked in Ant 1.5?
+      
+      </a></li>
+                <li><a href="#java.exception.stacktrace">
+  
+        The program I run via &lt;java&gt; throws an exception but I
+        can't seem to get the full stack trace.
+      
+      </a></li>
+                <li><a href="#junit-no-runtime-xml">
+  
+        Using format="xml", &lt;junit&gt; fails with a
+        <code>NoClassDefFoundError</code> if forked.
+      
+      </a></li>
+                <li><a href="#xalan-jdk1.5">
+  
+        <code>&lt;junitreport&gt;</code> doesn't work with JDK 1.5 but
+        worked fine with JDK 1.4.
+      
+      </a></li>
+            </ul>
+    
+      <h3 class="section">Answers</h3>
+                    <p class="faq">
+      <a name="latest-version"></a>
+      Where do I find the latest version of this
+        document?
+    </p>
+                  <p>The latest version can always be found at Ant's homepage
+          <a href="http://ant.apache.org/faq.html">http://ant.apache.org/faq.html</a>.</p>
+                    <p class="faq">
+      <a name="adding-faqs"></a>
+      How can I contribute to this FAQ?
+    </p>
+                  <p>The page you are looking it is generated from
+          <a href="http://cvs.apache.org/viewcvs.cgi/~checkout~/ant/xdocs/faq.xml">this</a>
+          document.  If you want to add a new question, please submit
+          a patch against this document to one of Ant's mailing lists;
+          hopefully, the structure is self-explanatory.</p>
+                        <p>If you don't know how to create a patch, see the patches
+          section of <a href="http://jakarta.apache.org/site/source.html">this
+          page</a>.</p>
+                    <p class="faq">
+      <a name="creating-faq"></a>
+      How do you create the HTML version of this
+        FAQ?
+    </p>
+                  <p>We use
+        <a href="http://jakarta.apache.org/velocity/anakia.html">Anakia</a>
+        to render the HTML version from the original XML file.</p>
+                        <p>The Velocity stylesheets used to process the XML files can
+        be found in the <code>xdocs/stylesheets</code> subdirectory of
+        Ant's CVS repository - the build file
+        <code>docs.xml</code> at the top level of the ant CVS
+        module is used to drive Anakia.</p>
+                        <p>This file assumes that you have the
+        <code>jakarta-site2</code> CVS module checked out as well, but
+        if you follow the instruction from Anakia's homepage, you
+        should get it to work without that.  Just make sure all
+        required jars are in the task's classpath.</p>
+                                <p class="faq">
+      <a name="what-is-ant"></a>
+      What is Apache Ant?
+    </p>
+                  <p> Ant is a Java-based build tool. In theory, it is kind of
+        like Make, without Make's wrinkles and with the full
+        portability of pure Java code.</p>
+                    <p class="faq">
+      <a name="ant-name"></a>
+      Why do you call it Ant?
+    </p>
+                  <p>According to Ant's original author, James Duncan
+        Davidson, the name is an acronym for "Another Neat
+        Tool".</p>
+                        <p>Later explanations go along the lines of "ants
+        do an extremely good job at building things", or
+        "ants are very small and can carry a weight dozens of times
+        their own" - describing what Ant is intended to
+        be.</p>
+                    <p class="faq">
+      <a name="history"></a>
+      Tell us a little bit about Ant's history.
+    </p>
+                  <p>Initially, Ant was part of the Tomcat code base, when it was
+        donated to the Apache Software Foundation. It was
+        created by James Duncan Davidson, who is also the original
+        author of Tomcat. Ant was there to build Tomcat, nothing
+        else.</p>
+                        <p>Soon thereafter, several open source Java projects realized
+        that Ant could solve the problems they had with Makefiles.
+        Starting with the projects hosted at Jakarta and the old Java
+        Apache project, Ant spread like a virus and is now the build
+        tool of choice for a lot of projects.</p>
+                        <p>In January 2000, Ant was moved to a separate CVS module and
+        was promoted to a project of its own, independent of
+        Tomcat, and became Apache Ant.</p>
+                        <p>The first version of Ant that was exposed to a larger audience
+        was the one that shipped with Tomcat's 3.1 release on 19 April
+        2000.  This version has later been referred to as Ant
+        0.3.1.</p>
+                        <p>The first official release of Ant as a stand-alone product was
+        Ant 1.1, released on 19 July 2000.  The complete release
+        history:</p>
+                              <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant Version
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Release Date
+      </th>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          19 July 2000
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.2
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          24 October 2000
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.3
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 March 2001
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 September 2001
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          11 October 2001
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          10 July 2002
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 October 2002
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.2
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 March 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.3
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          9 April 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.4
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          12 August 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.0
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          18 December 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          12 February 2004
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.2
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          16 July 2004
+      </td>
+      </tr>
+        </table>
+                                <p class="faq">
+      <a name="no-gnu-tar"></a>
+      I get checksum errors when I try to extract the
+      <code>tar.gz</code> distribution file. Why?
+    </p>
+                  <p>Ant's distribution contains file names that are longer
+        than 100 characters, which is not supported by the standard
+        tar file format. Several different implementations of tar use
+        different and incompatible ways to work around this
+        restriction.</p>
+                        <p>Ant's &lt;tar&gt; task can create tar archives that use
+        the GNU tar extension, and this has been used when putting
+        together the distribution. If you are using a different
+        version of tar (for example, the one shipping with Solaris),
+        you cannot use it to extract the archive.</p>
+                        <p>The solution is to either install GNU tar, which can be
+        found <a href="http://www.gnu.org/software/tar/tar.html">here</a>,
+        or use the zip archive instead (you can extract it using
+        <code>jar xf</code>).</p>
+                                <p class="faq">
+      <a name="implement-os-specific-configuration"></a>
+      How do I realize os--specific configurations?
+    </p>
+                  <p>The core idea is using property files which name accords to the
+        os-name. Then simply use the build-in property <tt>os.name</tt>.</p>
+                        <p>For better use you should also provide a file with defaul values.
+        But be careful with the correct os-names. For test simply &lt;echo&gt;
+        the ${os.name} on all machines and you can be sure to use the right
+        file names.</p>
+                        <pre class="code">
+          &lt;property file=&quot;${os.name}.properties&quot;/&gt;
+          &lt;property file=&quot;default.properties&quot;/&gt;
+</pre>
+                    <p class="faq">
+      <a name="adding-external-tasks"></a>
+      How do I add an external task that I've written to the
+      page "External Tools and Task"?
+    </p>
+                  <p>Join and post a message to the dev or user mailing
+        list (one list is enough), including the following
+        information:</p>
+                        <ul>
+          <li>the name of the task/tool</li>
+          <li>a short description of the task/tool</li>
+          <li>a Compatibility: entry stating with which version(s) of
+          Ant the tool/task is compatible to</li>
+          <li>a URL: entry linking to the main page of the tool/task</li>
+          <li>a Contact: entry containing the email address or the URL
+          of a webpage for the person or list to contact for issues
+          related to the tool/task.  <strong>Note that we'll add a
+          link on the page, so any email address added there is not
+          obfuscated and can (and probably will) be abused by robots
+          harvesting websites for addresses to spam.</strong></li>
+          <li>a License: entry containing the type of license for the
+          tool/task</li>
+        </ul>
+                        <p>The preferred format for this information is a patch to <a href="http://cvs.apache.org/viewcvs.cgi/~checkout~/ant/xdocs/external.xml">this</a>
+        document.</p>
+                        <p>If you have written something bigger than a 'simple plugin' to Ant it
+        may be better to add the link to <a href="projects.html">projects.html</a>.
+        The procedure to add it is the same. The file to patch is <a href="http://cvs.apache.org/viewcvs.cgi/~checkout~/ant/xdocs/projects.xml">this</a>
+        document. The syntax of that file is the same.</p>
+                    <p class="faq">
+      <a name="passing-cli-args"></a>
+      How do I pass parameters from the command line to my
+        build file?
+    </p>
+                  <p>Use properties. Using <code>ant
+        -D<em>name</em>=<em>value</em></code> lets you define values for
+        properties on the Ant command line. These properties can then be
+        used within your build file as
+        any normal property: <code>${<em>name</em>}</code> will put in
+        <code><em>value</em></code>.</p>
+                    <p class="faq">
+      <a name="jikes-switches"></a>
+      How can I use Jikes-specific command-line
+        switches?
+    </p>
+                  <p>A couple of switches are supported via "magic"
+          properties:</p>
+                              <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          switch
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          property
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          default
+      </th>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          +E
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.emacs
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          false == not set
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          +P
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.pedantic
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          false == not set
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          +F
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.fulldepend
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          false == not set
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>(Only for Ant &lt; 1.4; replaced by the
+                <code><strong>nowarn</strong></code>
+                attribute of the <code><strong>&lt;javac&gt;</strong></code>
+                task after that.)</strong><br />-nowarn
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.warnings
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          true == not set
+      </td>
+      </tr>
+        </table>
+                        <p>With Ant &gt;= 1.5, you can also use nested
+          <code>&lt;compilerarg&gt;</code> elements with the
+          <code>&lt;javac&gt;</code> task.</p>
+                    <p class="faq">
+      <a name="shell-redirect-1"></a>
+      How do I include a &lt; character in my command-line arguments?
+    </p>
+                  <p>The short answer is "Use: <code>&amp;lt;</code>".</p>
+                        <p>The long answer is that this probably won't do what you
+        want anyway (see <a href="#shell-redirect-2">the next
+        section</a>).</p>
+                    <p class="faq">
+      <a name="shell-redirect-2"></a>
+      How do I redirect standard input or standard output
+        in the <code>&lt;exec&gt;</code> task?
+    </p>
+                  <p>Say you want to redirect the standard output stream of the
+        <code>m4</code> command to write to a file, something
+        like:</p>
+                        <pre class="code">
+shell-prompt&gt; m4 foo.m4 &gt; foo
+</pre>
+                        <p>and try to translate it into</p>
+                        <pre class="code">
+&lt;exec executable=&quot;m4&quot;&gt;
+  &lt;arg value=&quot;foo.m4&quot;/&gt;
+  &lt;arg value=&quot;&amp;gt;&quot;/&gt;
+  &lt;arg value=&quot;foo&quot;/&gt;
+&lt;/exec&gt;
+</pre>
+                        <p>This will not do what you expect.  The output redirection is
+        performed by your shell, not the command itself, so this
+        should read:</p>
+                        <pre class="code">
+&lt;exec executable=&quot;/bin/sh&quot;&gt;
+  &lt;arg value=&quot;-c&quot; /&gt;
+  &lt;arg value=&quot;m4 foo.m4 &amp;gt; foo&quot; /&gt;
+&lt;/exec&gt;
+</pre>
+                        <p>Note that you must use the <code>value</code> attribute of
+        <code>&lt;arg&gt;</code> in the last element, in order to have
+        the command passed as a single, quoted argument. Alternatively,
+        you can use:</p>
+                        <pre class="code">
+&lt;exec executable=&quot;/bin/sh&quot;&gt;
+  &lt;arg line='-c &quot;m4 foo.m4 &amp;gt; foo&quot;'/&gt;
+&lt;/exec&gt;
+</pre>
+                        <p>Note the double-quotes nested inside the single-quotes.</p>
+                    <p class="faq">
+      <a name="batch-shell-execute"></a>
+      How do I execute a batch file or shell script from Ant?
+    </p>
+                  <p>On native Unix systems, you should be able to run shell scripts
+           directly. On systems running a Unix-type shell (for example, Cygwin
+           on Windows) execute the (command) shell instead - <code>cmd</code>
+           for batch files, <code>sh</code> for shell scripts - then pass the
+           batch file or shell script (plus any arguments to the script)
+           as a single command, using the <code>/c</code> or
+           <code>-c</code> switch, respectively. See
+           <a href="#shell-redirect-2">the above section</a>
+           for example <code>&lt;exec&gt;</code> tasks
+           executing <code>sh</code>. For batch files, use something like:</p>
+                        <pre class="code">
+&lt;exec dir=&quot;.&quot; executable=&quot;cmd&quot; os=&quot;Windows NT&quot;&gt;
+  &lt;arg line=&quot;/c test.bat&quot;/&gt;
+&lt;/exec&gt;
+</pre>
+                    <p class="faq">
+      <a name="multi-conditions"></a>
+      I want to execute a particular target only if
+        multiple conditions are true.
+    </p>
+                  <p>There are actually several answers to this question.</p>
+                        <p>If you have only one set and one unset property to test,
+        you can specify both an <code>if</code> and an <code>unless</code>
+        attribute for the target, and they will act as if they
+        are "anded" together.</p>
+                        <p>If you are using a version of Ant 1.3 or earlier, the
+        way to work with all other cases is to chain targets together
+        to determine the specific state you want to test for.</p>
+                        <p>To see how this works, assume you have three properties:
+        <code>prop1</code>, <code>prop2</code>, and <code>prop3</code>.
+        You want to test that <code>prop1</code> and <code>prop2</code>
+        are set, and that <code>prop3</code> is not. If the condition
+        holds true you want to echo "yes".</p>
+                        <p>Here is the implementation in Ant 1.3 and earlier:</p>
+                        <pre class="code">
+&lt;target name=&quot;cond&quot; depends=&quot;cond-if&quot;/&gt;
+
+&lt;target name=&quot;cond-if&quot; if=&quot;prop1&quot;&gt;
+  &lt;antcall target=&quot;cond-if-2&quot;/&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-if-2&quot; if=&quot;prop2&quot;&gt;
+  &lt;antcall target=&quot;cond-if-3&quot;/&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-if-3&quot; unless=&quot;prop3&quot;&gt;
+  &lt;echo message=&quot;yes&quot;/&gt;
+&lt;/target&gt;
+</pre>
+                        <p>Note: <code>&lt;antcall&gt;</code> tasks do <em>not</em> pass
+        property changes back up to the environment they were called
+        from, so you would'nt be able to, for example, set a
+        <code>result</code> property in the <code>cond-if-3</code> target,
+        then do
+        <code>&lt;echo message="result is ${result}"/&gt;</code>
+        in the <code>cond</code> target.</p>
+                        <p>Starting with Ant 1.4, you can use the
+        <code>&lt;condition&gt;</code> task.</p>
+                        <pre class="code">
+&lt;target name=&quot;cond&quot; depends=&quot;cond-if,cond-else&quot;/&gt;
+
+&lt;target name=&quot;check-cond&quot;&gt;
+  &lt;condition property=&quot;cond-is-true&quot;&gt;
+    &lt;and&gt;
+      &lt;not&gt;
+        &lt;equals arg1=&quot;${prop1}&quot; arg2=&quot;$${prop1}&quot; /&gt;
+      &lt;/not&gt;
+      &lt;not&gt;
+        &lt;equals arg1=&quot;${prop2}&quot; arg2=&quot;$${prop2}&quot; /&gt;
+      &lt;/not&gt;
+      &lt;equals arg1=&quot;${prop3}&quot; arg2=&quot;$${prop3}&quot; /&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-if&quot; depends=&quot;check-cond&quot; if=&quot;cond-is-true&quot;&gt;
+  &lt;echo message=&quot;yes&quot;/&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-else&quot; depends=&quot;check-cond&quot; unless=&quot;cond-is-true&quot;&gt;
+  &lt;echo message=&quot;no&quot;/&gt;
+&lt;/target&gt;
+</pre>
+                        <p>This version takes advantage of two things:</p>
+                        <ul>
+          <li>If a property <code>a</code> has not been set,
+          <code>${a}</code> will evaluate to <code>${a}</code>.</li>
+
+          <li>To get a literal <code>$</code> in Ant, you have to
+          escape it with another <code>$</code> - this will also break
+          the special treatment of the <code>${</code> sequence.</li>
+        </ul>
+                        <p>Because testing for a literal <code>${property}</code> string
+        isn't all that readable or easy to understand,
+        post-1.4.1 Ant introduces the <code>&lt;isset&gt;</code> element
+        to the <code>&lt;condition&gt;</code> task.</p>
+                        <p>Here is the previous example done using
+        <code>&lt;isset&gt;</code>:</p>
+                        <pre class="code">
+&lt;target name=&quot;check-cond&quot;&gt;
+  &lt;condition property=&quot;cond-is-true&quot;&gt;
+    &lt;and&gt;
+      &lt;isset property=&quot;prop1&quot;/&gt;
+      &lt;isset property=&quot;prop2&quot;/&gt;
+      &lt;not&gt;
+        &lt;isset property=&quot;prop3&quot;/&gt;
+      &lt;/not&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+&lt;/target&gt;
+</pre>
+                        <p>The last option is to use a scripting language to set the
+        properties. This can be particularly handy when you need much
+        finer control than the simple conditions shown here but, of
+        course, comes with the overhead of adding JAR files to support
+        the language, to say nothing of the added maintenance in requiring
+        two languages to implement a single system. See the
+        <a href="manual/OptionalTasks/script.html">
+        <code>&lt;script&gt;</code> task documentation</a> for more
+        details.</p>
+                    <p class="faq">
+      <a name="encoding"></a>
+      How can I include national characters like German
+        umlauts in my build file?
+    </p>
+                  <p>You need to tell the XML parser which character encoding
+        your build file uses, this is done inside the <a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-prolog-dtd">XML
+        declaration</a>.</p>
+                        <p>By default the parser assumes you are using the UTF-8
+        encoding instead of your platform's default.  For most Western
+        European countries you should set the encoding to
+        <code>ISO-8859-1</code>.  To do so, make the very first line
+        of you build file read like</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
+</pre>
+                    <p class="faq">
+      <a name="use-zip-instead-of-jar"></a>
+      How do I use <code>jar</code>'s <code>M</code> switch?
+      I don't want a MANIFEST.
+    </p>
+                  <p>A JAR archive is a ZIP file, so if you don't want a
+        MANIFEST you can simply use <code>&lt;zip&gt;</code>.</p>
+                        <p>If your file names contain national characters you should
+        know that Sun's <code>jar</code> utility like Ant's
+        <code>&lt;jar&gt;</code> uses UFT8 to encode their names while
+        <code>&lt;zip&gt;</code> uses your platforms default encoding.
+        Use the encoding attribute of <code>&lt;zip&gt;</code> if
+        necessary.</p>
+                    <p class="faq">
+      <a name="propertyvalue-as-name-for-property"></a>
+      How can I do something like <code>&lt;property name="prop"
+      value="${${anotherprop}}"/&gt;</code> (double expanding the property)?
+    </p>
+                  <p>Without any external help you can not.</p>
+                        <p>With &lt;script/&gt;, which needs external libraries, you can do</p>
+                        <pre class="code">
+&lt;script language=&quot;javascript&quot;&gt;
+    propname = project.getProperty(&quot;anotherprop&quot;);
+    project.setNewProperty(&quot;prop&quot;, propname);
+&lt;/script&gt;
+</pre>
+                        <p>With AntContrib (external task library) you can do <code>
+         &lt;propertycopy name="prop" from="${anotherprop}"/&gt;</code>.</p>
+                        <p>With Ant 1.6 you can simulate the AntContribs &lt;propertycopy&gt;
+         and avoid the need of an external library:</p>
+                        <pre class="code">
+&lt;macrodef name=&quot;propertycopy&quot;&gt;
+  &lt;attribute name=&quot;name&quot;/&gt;
+  &lt;attribute name=&quot;from&quot;/&gt;
+  &lt;sequential&gt;
+    &lt;property name=&quot;@{name}&quot; value=&quot;${@{from}}&quot;/&gt;
+  &lt;/sequential&gt;
+&lt;/macrodef&gt;
+</pre>
+                                <p class="faq">
+      <a name="always-recompiles"></a>
+      Why does Ant always recompile all my Java files?
+    </p>
+                  <p>In order to find out which files should be compiled, Ant
+        compares the timestamps of the source files to those of the
+        resulting <code>.class</code> files.  Opening all source files
+        to find out which package they belong to would be very
+        inefficient. Instead, Ant expects you to place your
+        source files in a directory hierarchy that mirrors your
+        package hierarchy and to point Ant to the root of this
+        directory tree with the <code>srcdir</code> attribute.</p>
+                        <p>Say you have <code>&lt;javac srcdir="src"
+        destdir="dest"/&gt;</code>.  If Ant finds a file
+        <code>src/a/b/C.java</code>, it expects it to be in package
+        <code>a.b</code> so that the resulting <code>.class</code>
+        file is going to be <code>dest/a/b/C.class</code>.</p>
+                        <p>If your source-tree directory structure does not match your
+        package structure, Ant's heuristic won't work, and
+        it will recompile classes that are up-to-date.  Ant is not the
+        only tool that expects a source-tree layout like this.</p>
+                        <p>If you have Java source files that aren't declared to
+        be part of any package, you can still use the <code>&lt;javac&gt;</code>
+        task to compile these files correctly - just set the
+        <code>srcdir</code> and <code>destdir</code> attributes to
+        the actual directory the source
+        files live in and the directory the class files should go into,
+        respectively.</p>
+                    <p class="faq">
+      <a name="defaultexcludes"></a>
+      I've used a <code>&lt;delete&gt;</code> task to
+      delete unwanted SourceSafe control files (CVS files, editor
+      backup files, etc.), but it doesn't seem to work; the files
+      never get deleted. What's wrong?
+    </p>
+                  <p>This is probably happening because, by default, Ant excludes
+        SourceSafe control files (<code>vssver.scc</code>) and certain other
+        files from FileSets.</p>
+                        <p>Here's what you probably did:</p>
+                        <pre class="code">
+&lt;delete&gt;
+  &lt;fileset dir=&quot;${build.src}&quot; includes=&quot;**/vssver.scc&quot;/&gt;
+&lt;/delete&gt;
+</pre>
+                        <p>You need to switch off the default exclusions,
+           and it will work:</p>
+                        <pre class="code">
+&lt;delete&gt;
+  &lt;fileset dir=&quot;${build.src}&quot; includes=&quot;**/vssver.scc&quot;
+           defaultexcludes=&quot;no&quot;/&gt;
+&lt;/delete&gt;
+</pre>
+                        <p>For a complete listing of the patterns that are excluded
+        by default, see <a href="manual/dirtasks.html#defaultexcludes">the user
+        manual</a>.</p>
+                    <p class="faq">
+      <a name="stop-dependency"></a>
+      I have a target I want to skip if a property is set,
+      so I have <code>unless="property"</code> as an attribute
+      of the target, but all the targets this target
+      depends on are still executed. Why?
+    </p>
+                  <p>The list of dependencies is generated by Ant before any of the
+        targets are run. This allows dependent targets, such as an
+        <code>init</code> target, to set properties that can control the
+               execution of the targets higher in the dependency graph. This
+              is a good thing.</p>
+                        <p>However, when your dependencies break down the
+        higher-level task
+        into several smaller steps, this behaviour becomes
+        counter-intuitive. There are a couple of solutions available:
+        </p>
+                        <ol>
+          <li>Put the same condition on each of the dependent targets.</li>
+
+          <li>Execute the steps using <code>&lt;antcall&gt;</code>,
+          instead of specifying them inside the <code>depends</code>
+          attribute.</li>
+        </ol>
+                    <p class="faq">
+      <a name="include-order"></a>
+      In my <code>&lt;fileset&gt;</code>, I've put in an
+      <code>&lt;exclude&gt;</code> of all files followed by an
+      <code>&lt;include&gt;</code> of just the files I want, but it
+      isn't giving me any files at all. What's wrong?
+      
+    </p>
+                  <p>The order of the <code>&lt;include&gt;</code> and
+        <code>&lt;exclude&gt;</code> tags within a <code>&lt;fileset&gt;</code>
+        is ignored when the FileSet is created. Instead, all of the
+        <code>&lt;include&gt;</code> elements are processed together,
+        followed by all of the <code>&lt;exclude&gt;</code>
+        elements. This means that the <code>&lt;exclude&gt;</code>
+        elements only apply to the file list produced by the
+        <code>&lt;include&gt;</code> elements.</p>
+                        <p>To get the files you want, focus on just the
+        <code>&lt;include&gt;</code> patterns that would be necessary
+        to get them. If you find you need to trim the list that the
+        <code>&lt;include&gt;</code> elements produce, then use
+        <code>&lt;exclude&gt;</code> elements.</p>
+                    <p class="faq">
+      <a name="properties-not-trimmed"></a>
+      <code>ant</code> failed to build my program via javac
+      even when I put the needed jars in an external
+      <code>build.properties</code> file and reference them by
+      <code>pathelement</code> or <code>classpath refid</code>.
+    </p>
+                  <p>When <code>ant</code> loads properties from an external
+        file it dosn't touch the value of properties, trailing blanks
+        will not be trimmed for example.</p>
+                        <p>If the value represents a file path, like a jar needed to
+        compile, the task which requires the value, javac for example
+        would fail to compile since it can't find the file due to
+        trailing spaces.</p>
+                    <p class="faq">
+      <a name="winzip-lies"></a>
+      Ant creates WAR files with a lower-case
+        <code>web-inf</code> or JAR files with a lower-case
+        <code>meta-inf</code> directory.
+    </p>
+                  <p>No it doesn't.</p>
+                        <p>You may have seen these lower-case directory names in
+        WinZIP, but WinZIP is trying to be helpful (and fails).  If
+        WinZIP encounters a filename that is all upper-case, it
+        assumes it has come from an old DOS box and changes the case to
+        all lower-case for you.</p>
+                        <p>If you extract (or just check) the archive with jar, you
+        will see that the names have the correct case.</p>
+                        <p>With WinZIP (version 8.1 at least), this can be corrected in the
+        configuration.  In the Options/Configuration menu, in the View tab, General
+        section, check the "Allow all upper case files names" box.  The META-INF and
+        WEB-INF will look correct.</p>
+                                <p class="faq">
+      <a name="integration"></a>
+      Is Ant supported by my IDE/Editor?
+    </p>
+                  <p>See the <a href="external.html#IDE and Editor Integration">section
+        on IDE integration</a> on our External Tools and Tasks page.</p>
+                    <p class="faq">
+      <a name="emacs-mode"></a>
+      Why doesn't (X)Emacs/vi/MacOS X's project builder
+      correctly parse the error messages generated by Ant?
+    </p>
+                  <p>Ant adds a "banner" with the name of the current
+        task in front of all logging messages - and there are no built-in
+        regular expressions in your editor that would account for
+        this.</p>
+                        <p>You can disable this banner by invoking Ant with the
+        <code>-emacs</code> switch.  To make Ant autodetect
+        Emacs' compile mode, put this into your
+        <code>.antrc</code> (contributed by Ville Skyttä).</p>
+                        <pre class="code">
+# Detect (X)Emacs compile mode
+if [ &quot;$EMACS&quot; = &quot;t&quot; ] ; then
+  ANT_ARGS=&quot;$ANT_ARGS -emacs&quot;
+  ANT_OPTS=&quot;$ANT_OPTS -Dbuild.compiler.emacs=true&quot;
+fi
+</pre>
+                        <p>Alternatively, you can add the following snippet to your
+        <code>.emacs</code> to make Emacs understand Ant's
+        output.</p>
+                        <pre class="code">
+(require 'compile)
+(setq compilation-error-regexp-alist
+  (append (list
+     ;; works for jikes
+     '(&quot;^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):\\([0-9]+\\):[0-9]+:[0-9]+:&quot; 1 2 3)
+     ;; works for javac
+     '(&quot;^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):&quot; 1 2))
+  compilation-error-regexp-alist))
+</pre>
+                        <p>Yet another alternative that preserves most of Ant's
+        formatting is to pipe Ant's output through the following Perl
+        script by Dirk-Willem van Gulik:</p>
+                        <pre class="code">
+#!/usr/bin/perl
+#
+# May 2001 dirkx@apache.org - remove any
+# [foo] lines from the output; keeping
+# spacing more or less there.
+#
+$|=1;
+while(&lt;STDIN&gt;) {
+        if (s/^(\s+)\[(\w+)\]//) {
+                if ($2 ne $last) {
+                        print &quot;$1\[$2\]&quot;;
+                        $s = ' ' x length($2);
+                } else {
+                        print &quot;$1 $s &quot;;
+                };
+                $last = $2;
+        };
+        print;
+};
+</pre>
+                                <p class="faq">
+      <a name="dtd"></a>
+      Is there a DTD that I can use to validate my build
+      files?
+    </p>
+                  <p>An incomplete DTD can be created by the
+          <code>&lt;antstructure&gt;</code> task - but this one
+          has a few problems:</p>
+                        <ul>
+            <li>It doesn't know about required attributes.  Only
+            manual tweaking of this file can help here.</li>
+
+            <li>It is not complete - if you add new tasks via
+            <code>&lt;taskdef&gt;</code> it won't know about it.  See
+            <a href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html">this
+            page</a> by Michel Casabianca for a solution to this
+            problem.  Note that the DTD you can download at this page
+            is based on Ant 0.3.1.</li>
+
+            <li>It may even be an invalid DTD.  As Ant allows tasks
+            writers to define arbitrary elements, name collisions will
+            happen quite frequently - if your version of Ant contains
+            the optional <code>&lt;test&gt;</code> and
+            <code>&lt;junit&gt;</code> tasks, there are two XML
+            elements named <code>test</code> (the task and the nested child
+            element of <code>&lt;junit&gt;</code>) with different attribute
+            lists.  This problem cannot be solved; DTDs don't give a
+            syntax rich enough to support this.</li>
+          </ul>
+                    <p class="faq">
+      <a name="xml-entity-include"></a>
+      How do I include an XML snippet in my build file?
+    </p>
+                  <p>You can use XML's way of including external files and let
+        the parser do the job for Ant:</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot;?&gt;
+
+&lt;!DOCTYPE project [
+    &lt;!ENTITY common SYSTEM &quot;file:./common.xml&quot;&gt;
+]&gt;
+
+&lt;project name=&quot;test&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;setup&quot;&gt;
+    ...
+  &lt;/target&gt;
+
+  &amp;common;
+
+  ...
+
+&lt;/project&gt;
+</pre>
+                        <p>will literally include the contents of <code>common.xml</code> where
+        you've placed the <code>&amp;common;</code> entity.</p>
+                        <p>In combination with a DTD, this would look like this:</p>
+                        <pre class="code">
+&lt;!DOCTYPE project PUBLIC &quot;-//ANT//DTD project//EN&quot; &quot;file:./ant.dtd&quot; [
+   &lt;!ENTITY include SYSTEM &quot;file:./header.xml&quot;&gt;
+]&gt;
+</pre>
+                        <p>Starting with Ant 1.6, there is a new
+        <code>&lt;import&gt;</code> task that can (also) be used to
+        include build file fragments.  Unlike the snippets used with
+        entity includes, the referenced files have to be complete Ant
+        build files, though.</p>
+                        <p>The example above would become:</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot;?&gt;
+&lt;project name=&quot;test&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;setup&quot;&gt;
+    ...
+  &lt;/target&gt;
+
+  &lt;import file=&quot;./common.xml&quot;/&gt;
+
+  ...
+
+&lt;/project&gt;
+</pre>
+                        <p>Unlike entity includes, <code>&lt;import&gt;</code> will
+        let you use Ant properties in the file name.</p>
+                    <p class="faq">
+      <a name="mail-logger"></a>
+      How do I send an email with the result of my build
+        process?
+    </p>
+                  <p>If you are using a nightly build of Ant 1.5 after
+        2001-12-14, you can use the built-in MailLogger:</p>
+                        <pre class="code">
+         ant -logger org.apache.tools.ant.listener.MailLogger
+</pre>
+                        <p>See the <a href="http://cvs.apache.org/viewcvs/~checkout~/ant/docs/manual/listeners.html?content-type=text/html">Listeners
+        &amp; Loggers</a> documentation for details on the properties
+        required.</p>
+                        <p>For older versions of Ant, you can use a custom
+        BuildListener that sends out an email
+        in the buildFinished() method.  Will Glozer
+        &lt;will.glozer@jda.com&gt; has written such a listener based
+        on <a href="http://java.sun.com/products/javamail/">JavaMail</a>.
+        The source is:</p>
+                        <pre class="code">
+import java.io.*;
+import java.util.*;
+import javax.mail.*;
+import javax.mail.internet.*;
+import org.apache.tools.ant.*;
+
+/**
+ * A simple listener that waits for a build to finish and sends an email
+ * of the results.  The settings are stored in &quot;monitor.properties&quot; and
+ * are fairly self explanatory.
+ *
+ * @author      Will Glozer
+ * @version     1.05a 09/06/2000
+ */
+public class BuildMonitor implements BuildListener {
+    protected Properties props;
+
+    /**
+     * Create a new BuildMonitor.
+     */
+    public BuildMonitor() throws Exception {
+        props = new Properties();
+        InputStream is = getClass().getResourceAsStream(&quot;monitor.properties&quot;);
+        props.load(is);
+        is.close();
+    }
+
+    public void buildStarted(BuildEvent e) {
+    }
+
+    /**
+     * Determine the status of the build and the actions to follow, now that
+     * the build has completed.
+     *
+     * @param       e       Event describing the build status.
+     */
+    public void buildFinished(BuildEvent e) {
+        Throwable th = e.getException();
+        String status = (th != null) ? &quot;failed&quot; : &quot;succeeded&quot;;
+
+        try {
+            String key = &quot;build.&quot; + status;
+            if (props.getProperty(key + &quot;.notify&quot;).equalsIgnoreCase(&quot;false&quot;)) {
+                    return;
+            }
+
+            Session session = Session.getDefaultInstance(props, null);
+
+            MimeMessage message = new MimeMessage(session);
+            message.addRecipients(Message.RecipientType.TO, parseAddresses(
+                props.getProperty(key + &quot;.email.to&quot;)));
+            message.setSubject(props.getProperty(key + &quot;.email.subject&quot;));
+
+            BufferedReader br = new BufferedReader(new FileReader(
+                props.getProperty(&quot;build.log&quot;)));
+            StringWriter sw = new StringWriter();
+
+            String line = br.readLine();
+            while (line != null) {
+                sw.write(line);
+                sw.write(&quot;\n&quot;);
+                line = br.readLine();
+            }
+            br.close();
+
+            message.setText(sw.toString(), &quot;UTF-8&quot;);
+            sw.close();
+
+            Transport transport = session.getTransport();
+            transport.connect();
+            transport.send(message);
+            transport.close();
+        } catch (Exception ex) {
+            System.out.println(&quot;BuildMonitor failed to send email!&quot;);
+            ex.printStackTrace();
+        }
+    }
+
+    /**
+     * Parse a comma separated list of internet email addresses.
+     *
+     * @param       s       The list of addresses.
+     * @return      Array of Addresses.
+     */
+    protected Address[] parseAddresses(String s) throws Exception {
+        StringTokenizer st = new StringTokenizer(s, &quot;,&quot;);
+        Address[] addrs = new Address[st.countTokens()];
+
+        for (int i = 0; i &lt; addrs.length; i++) {
+            addrs[i] = new InternetAddress(st.nextToken());
+        }
+        return addrs;
+    }
+
+    public void messageLogged(BuildEvent e) {
+    }
+
+    public void targetStarted(BuildEvent e) {
+    }
+
+    public void targetFinished(BuildEvent e) {
+    }
+
+    public void taskStarted(BuildEvent e) {
+    }
+
+    public void taskFinished(BuildEvent e) {
+    }
+}
+</pre>
+                        <p>With a <code>monitor.properties</code> like this:</p>
+                        <pre class="code">
+# configuration for build monitor
+
+mail.transport.protocol=smtp
+mail.smtp.host=&lt;host&gt;
+mail.from=Will Glozer &lt;will.glozer@jda.com&gt;
+
+build.log=build.log
+
+build.failed.notify=true
+build.failed.email.to=will.glozer@jda.com
+build.failed.email.subject=Nightly build failed!
+
+build.succeeded.notify=true
+build.succeeded.email.to=will.glozer@jda.com
+build.succeeded.email.subject=Nightly build succeeded!
+</pre>
+                        <p><code>monitor.properties</code> should be placed right next
+        to your compiled <code>BuildMonitor.class</code>.  To use it,
+        invoke Ant like:</p>
+                        <pre class="code">
+ant -listener BuildMonitor -logfile build.log
+</pre>
+                        <p>Make sure that <code>mail.jar</code> from JavaMail and
+        <code>activation.jar</code> from the
+        <a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">Java
+        Beans Activation Framework</a> are in your <code>CLASSPATH</code>.</p>
+                    <p class="faq">
+      <a name="listener-properties"></a>
+      How do I get at the properties that Ant was running
+      with from inside BuildListener?
+    </p>
+                  <p>You can get at a hashtable with all the properties that Ant
+        has been using through the BuildEvent parameter. For
+        example:</p>
+                        <pre class="code">
+public void buildFinished(BuildEvent e) {
+    Hashtable table = e.getProject().getProperties();
+    String buildpath = (String)table.get(&quot;build.path&quot;);
+    ...
+}
+</pre>
+                        <p>This is more accurate than just reading the same property
+        files that your project does, since it will give the correct
+        results for properties that were specified on the Ant command line.</p>
+                                <p class="faq">
+      <a name="remove-cr"></a>
+      &lt;chmod&gt; or &lt;exec&gt; doesn't work in Ant
+        1.3 on Unix
+    </p>
+                  <p>The <code>antRun</code> script in <code>ANT_HOME/bin</code>
+        has DOS instead of Unix line endings; you must remove the
+        carriage-return characters from this file.  This can be done by
+        using Ant's <code>&lt;fixcrlf&gt;</code> task
+        or something like:</p>
+                        <pre class="code">
+tr -d '\r' &lt; $ANT_HOME/bin/antRun &gt; /tmp/foo
+mv /tmp/foo $ANT_HOME/bin/antRun
+</pre>
+                    <p class="faq">
+      <a name="javadoc-cannot-execute"></a>
+      JavaDoc failed: java.io.IOException: javadoc: cannot execute
+    </p>
+                  <p>There is a bug in the Solaris reference implementation of
+        the JDK (see <a href="http://developer.java.sun.com/developer/bugParade/bugs/4230399.html">http://developer.java.sun.com/developer/bugParade/bugs/4230399.html</a>).
+        This also appears to be true under Linux. Moving the JDK to
+        the front of the PATH fixes the problem.</p>
+                    <p class="faq">
+      <a name="delegating-classloader"></a>
+      &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt;
+    </p>
+                  <p>These tasks don't ignore your classpath setting, you
+        are facing a common problem with delegating classloaders.</p>
+                        <p>First of all let's state that Ant adds all
+        <code>.jar</code> files from <code>ANT_HOME/lib</code> to
+        <code>CLASSPATH</code>, therefore "in
+        <code>CLASSPATH</code>" shall mean "either in your
+        <code>CLASSPATH</code> environment variable or
+        <code>ANT_HOME/lib</code>" for the rest of this
+        answer.</p>
+                        <p>Technically the sentence above isn't true for Ant 1.6
+        and later anymore, but the result is the same.  For the sake
+        of this discussion, <code>CLASSPATH</code> and
+        <code>ANT_HOME/lib</code> are identical.</p>
+                        <p>This question collects a common type of problem: A task
+        needs an external library and it has a nested classpath
+        element so that you can point it to this external library, but
+        that doesn't work unless you put the external library into the
+        <code>CLASSPATH</code>.</p>
+                        <p>The root of the problem is that the class that needs the
+        external library is on the <code>CLASSPATH</code>.</p>
+                        <p>When you specify a nested <code>&lt;classpath&gt;</code> in
+        Ant, Ant creates a new class loader that uses the path you
+        have specified.  It then tries to load additional classes from
+        this classloader.</p>
+                        <p>In most cases - for example the two cases above - Ant
+        doesn't load the external library directly, it is the loaded
+        class that does so.</p>
+                        <p>In the case of <code>&lt;junit&gt;</code> it is the task
+        implementation itself and in the case of
+        <code>&lt;style&gt;</code> it is the implementation of the
+        <code>org.apache.tools.ant.taskdefs.XSLTLiaison</code>
+        class.</p>
+                        <p>Ant's class loader implementation uses Java's
+        delegation model, see <a href="http://java.sun.com/products/jdk/1.2/docs/api/java/lang/ClassLoader.html">http://java.sun.com/products/jdk/1.2/docs/api/java/lang/ClassLoader.html</a>
+        the paragraph</p>
+                        <blockquote>The <code>ClassLoader</code> class uses a
+        delegation model to search for classes and resources. Each
+        instance of <code>ClassLoader</code> has an associated parent
+        class loader.  When called upon to find a class or resource, a
+        <code>ClassLoader</code> instance will delegate the search for
+        the class or resource to its parent class loader before
+        attempting to find the class or resource itself. The virtual
+        machine's built-in class loader, called the bootstrap
+        class loader, does not itself have a parent but may serve as
+        the parent of a <code>ClassLoader</code>
+        instance.</blockquote>
+                        <p>This means, Ant's class loader will consult the
+        bootstrap class loader first, which tries to load classes from
+        <code>CLASSPATH</code>.  The bootstrap class loader
+        doesn't know anything about Ant's class loader or
+        even the path you have specified.</p>
+                        <p>If the bootstrap class loader can load the class Ant has
+        asked it to load, this class will try to load the external
+        library from <code>CLASSPATH</code> as well - it doesn't
+        know anything else - and will not find it unless the library
+        is in <code>CLASSPATH</code> as well.</p>
+                        <p>To solve this, you have two major options:</p>
+                        <ol>
+          <li>put all external libraries you need in
+          <code>CLASSPATH</code> as well this is not what you want,
+          otherwise you wouldn't have found this FAQ entry.</li>
+
+          <li>remove the class that loads the external library from
+          the <code>CLASSPATH</code>.</li>
+        </ol>
+                        <p><strong>Using The Second Option with Ant 1.5.4 and
+        Earlier:</strong></p>
+                        <p>The easiest way to do this is to remove
+        <code>optional.jar</code> from <code>ANT_HOME/lib</code>.  If
+        you do so, you will have to <code>&lt;taskdef&gt;</code> all
+        optional tasks and use nested <code>&lt;classpath&gt;</code>
+        elements in the <code>&lt;taskdef&gt;</code> tasks that point
+        to the new location of <code>optional.jar</code>.  Also,
+        don't forget to add the new location of
+        <code>optional.jar</code> to the
+        <code>&lt;classpath&gt;</code> of your
+        <code>&lt;style&gt;</code> or <code>&lt;junit&gt;</code>
+        task.</p>
+                        <p>If you want to avoid to <code>&lt;taskdef&gt;</code> all
+        optional tasks you need, the only other option is to remove
+        the classes that should not be loaded via the bootstrap class
+        loader from <code>optional.jar</code> and put them into a
+        separate archive. Add this separate archive to the
+        <code>&lt;classpath&gt;</code> of your
+        <code>&lt;style&gt;</code> or <code>&lt;junit&gt;</code> task
+        - and make sure the separate archive is not in
+        <code>CLASSPATH</code>.</p>
+                        <p>In the case of <code>&lt;junit&gt;</code> you'd have
+        to remove all classes that are in the
+        <code>org/apache/tools/ant/taskdefs/optional/junit</code>
+        directory, in the <code>&lt;style&gt;</code> case it is one of
+        the <code>*Liaison</code> classes in
+        <code>org/apache/tools/ant/taskdefs/optional</code>.</p>
+                        <p><strong>Using The Second Option with Ant 1.6 and
+        later:</strong></p>
+                        <p>In Ant 1.6 <code>optional.jar</code> has been split into
+        multiple jars, each one containing classes with the same
+        dependencies on external libraries.  You can move the
+        "offending" jar out of ANT_HOME/lib.  For the
+        <code>&lt;junit&gt;</code> task it would be
+        <code>ant-junit.jar</code> and for <code>&lt;style&gt;</code>
+        it would be <code>ant-trax.jar</code>,
+        <code>ant-xalan1.jar</code> or <code>ant-xslp.jar</code> -
+        depending on the processor you use.</p>
+                        <p>If you use the option to break up <code>optional.jar</code>
+        for <code>&lt;junit&gt;</code> or remove
+        <code>ant-junit.jar</code>, you still have to use a
+        <code>&lt;taskdef&gt;</code> with a nested
+        <code>&lt;classpath&gt;</code> to define the junit task.</p>
+                    <p class="faq">
+      <a name="winxp-jdk14-ant14"></a>
+      When running Ant 1.4 on Windows XP and JDK 1.4, I get
+      various errors when trying to <code>&lt;exec&gt;</code>, fork
+      <code>&lt;java&gt;</code> or access environment
+      variables.
+    </p>
+                  <p>Ant &lt; 1.5 doesn't recognize Windows XP as a flavor
+        of Windows that runs <code>CMD.EXE</code> instead of
+        <code>COMMAND.COM</code>.  JDK 1.3 will tell Ant that Windows
+        XP is Windows 2000 so the problem doesn't show up
+        there.</p>
+                        <p>Apart from upgrading to Ant 1.5 or better, setting the
+        environment variable <code>ANT_OPTS</code> to
+        <code>-Dos.name=Windows_NT</code> prior to invoking Ant has
+        been confirmed as a workaround.</p>
+                    <p class="faq">
+      <a name="1.5-cygwin-sh"></a>
+      The <code>ant</code> wrapper script of Ant 1.5 fails
+      for Cygwin if <code>ANT_HOME</code> is set to a Windows style
+      path.
+    </p>
+                  <p>This problem has been reported only hours after Ant 1.5 has
+        been released, see <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10664">Bug
+        10664</a> and all its duplicates.</p>
+                        <p>A fixed version of the wrapper script can be found <a href="http://ant.apache.org/old-releases/v1.5/errata/">here</a>.
+        Simply replace your script with this version.</p>
+                    <p class="faq">
+      <a name="1.5.2-zip-broken"></a>
+      <code>&lt;zip&gt;</code> is broken in Ant 1.5.2.
+    </p>
+                  <p>Yes, it is.</p>
+                        <p>The problem reported by most people - see <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17648">Bug
+        17648</a> and all its duplicates - is that Ant creates
+        archives that a partially unreadable by WinZIP.  Luckily
+        <code>jar</code> deals with the archives and so the generated
+        jars/wars/ears will most likely work for you anyway.</p>
+                        <p>There are additional problems, see bugs <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17780">Bug
+        17780</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17871">Bug
+        17871</a> and <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18403">Bug
+        18403</a>.  All of them are supposed to be fixed with Ant
+        1.5.3 (and only 18403 should exist in 1.5.3beta1).</p>
+                    <p class="faq">
+      <a name="unknownelement.taskcontainer"></a>
+      
+        Why do my custom task containers see Unknown Elements in Ant 1.6
+        - they worked in Ant 1.5?
+      
+    </p>
+                  <p>
+          The objects added in TaskContainer.addTask(Task task)
+          have changed from  Tasks to UnknownElements.
+        </p>
+                        <p>
+          There was a number of valid reasons for this change. But the backward
+          compatibility problems were not noticed until after Ant 1.6.0 was
+          released.
+        </p>
+                        <p>
+          Your container class will need to be modified to check if the Task
+          is an UnknownElement and call perform on it to
+          convert it to a Task and to execute it.
+          (see apache.tools.ant.taskdefs.Sequential)
+        </p>
+                        <p>
+          If you want to do more processing on the task,
+          you need to use the techniques in apache.tools.ant.taskdefs.Antlib#execute()
+          This does make use of one 1.6 method call (UE#getRealObject()),
+          you need to use UE#getTask() instead - this will
+          return null for non tasks (types like fileset id=x).
+        </p>
+                        <p>
+          So.. iterate over the tasks, if they are UEs, convert them to
+          tasks, using UE#maybeConfigure and UE#getTask()
+        </p>
+                        <pre class="code">
+        for (Iterator i = tasks.iterator(); i.hasNext();) {
+           Task t = (Task) i.next();
+           if (t instanceof UnknownElement) {
+              ((UnknownElement) t).maybeConfigure();
+              t = ((UnknownElement) t).getTask();
+              if (t == null) {
+                  continue;
+              }
+           }
+           // .... original Custom code
+        }
+        </pre>
+                        <p>
+          This approach should work for ant1.5 and ant1.6.
+        </p>
+                    <p class="faq">
+      <a name="java.exception.stacktrace"></a>
+      
+        The program I run via &lt;java&gt; throws an exception but I
+        can't seem to get the full stack trace.
+      
+    </p>
+                  <p>This is a know bug that has been fixed after the release of
+        Ant 1.6.1.</p>
+                        <p>As a workaround, run your &lt;java&gt; task with
+        <code>fork="true"</code> and Ant will display the full
+        trace.</p>
+                    <p class="faq">
+      <a name="junit-no-runtime-xml"></a>
+      
+        Using format="xml", &lt;junit&gt; fails with a
+        <code>NoClassDefFoundError</code> if forked.
+      
+    </p>
+                  <p>The XML formatter needs the <a href="http://www.w3.org/DOM/">DOM classes</a> to work.  If you
+        are using JDK 1.4 or later they are included with your Java
+        Runtime and this problem won't occur.  If you are running JDK
+        1.3 or earlier, the DOM classes have to be on your
+        &lt;junit&gt; task's &lt;classpath&gt;.</p>
+                        <p>Prior to Ant 1.6.0 Ant would include the DOM classes from
+        the XML parser that is used by Ant itself if you set the
+        includeAntRuntime attribute to true (the default).  With Ant
+        1.6.0 this has been changed as this behavior made it
+        impossible to use a different XML parser in your tests.</p>
+                        <p>This means that you have to take care of the DOM classes
+        explicitly starting with Ant 1.6.0.  If you don't need to set
+        up a different XML parser for your tests, the easiest solution
+        is to add</p>
+                        <pre class="code">
+&lt;pathelement path=&quot;${ant.home}/lib/xml-apis.jar:${ant.home}/lib/xercesImpl.jar&quot;/&gt;
+</pre>
+                        <p>to your task's &lt;classpath&gt;.</p>
+                    <p class="faq">
+      <a name="xalan-jdk1.5"></a>
+      
+        <code>&lt;junitreport&gt;</code> doesn't work with JDK 1.5 but
+        worked fine with JDK 1.4.
+      
+    </p>
+                  <p>While JDK 1.4.x contains a version of Xalan-J 2, JDK 1.5
+        (and later?) have <a href="http://java.sun.com/j2se/1.5.0/compatibility.html#4959783">moved
+        to XSLTC</a>.  Since this task uses Xalan's redirect
+        extensions for its internal stylesheet, Ant doesn't support
+        XSLTC yet.  This means that you have to install <a href="http://xml.apache.org/xalan-j/">Xalan-J 2</a> in order
+        to use this task with JDK 1.5.</p>
+                        <p>Starting with Ant 1.6.2 <code>&lt;junitreport&gt;</code>
+        will support JDK 1.5.</p>
+                    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/index.html	(revision 14989)
@@ -0,0 +1,282 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Welcome</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Conor MacNeill">
+  <meta name="email" content="">
+        <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="stefan.bodewig@freenet.de">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                              <span class="sel">Welcome</span>
+                              </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Welcome</h1>
+            <h3 class="section">
+      <a name="Ant 1.6.2"></a>
+      Ant 1.6.2
+    </h3>
+                        <h3>July 16, 2004 - Ant 1.6.2 Available</h3>
+                                <p>Apache Ant 1.6.2 is now available for <a href="http://ant.apache.org/bindownload.cgi">download</a>.</p>
+                                <p>Nested elements for namespaced tasks and types may belong to the
+Ant default namespace as well as the task's or type's namespace.</p>
+                                <p>All exceptions thrown by tasks are now wrapped in a
+buildexception giving the location in the buildfile of the task.</p>
+                                <p>Ant 1.6.2 fixes a large number of bugs and adds a number of
+features which were asked for by users on Bugzilla.</p>
+                        <h3 class="section">
+      <a name="Apache Ant"></a>
+      Apache Ant
+    </h3>
+                        <p>
+Apache Ant is a Java-based build tool. In theory, it is kind of like
+Make, but without Make's wrinkles.
+</p>
+                                <p>
+Why another build tool when there is already <em>make</em>, <em>gnumake</em>,
+<em>nmake</em>, <em>jam</em>, and
+others? Because all those tools have limitations that Ant's original author
+couldn't live with when developing software across multiple platforms. Make-like
+tools are inherently shell-based -- they evaluate a set of dependencies, then
+execute commands not unlike what you would issue in a shell. This means that you
+can easily extend these tools by using or writing any program for the OS that
+you are working on. However, this also means that you limit yourself to the OS,
+or at least the OS type such as Unix, that you are working on.
+</p>
+                                <p>
+Makefiles are inherently evil as well. Anybody who has worked on them for any
+time has run into the dreaded tab problem. "Is my command not executing
+because I have a space in front of my tab!!!" said the original author of
+Ant way too many times. Tools like Jam took care of this to a great degree, but
+still have yet another format to use and remember.
+</p>
+                                <p>
+Ant is different. Instead of a model where it is extended with shell-based
+commands, Ant is extended using Java classes. Instead of writing shell commands,
+the configuration files are XML-based, calling out a target tree where various
+tasks get executed. Each task is run by an object that implements a particular
+Task interface.
+</p>
+                                <p>
+Granted, this removes some of the expressive power that is inherent by being
+able to construct a shell command such as
+<code>`find . -name foo -exec rm {}`</code>, but it
+gives you the ability to be cross platform -- to work anywhere and everywhere.
+And hey, if you really need to execute a shell command, Ant has an
+<code>&lt;exec&gt;</code> task that
+allows different commands to be executed based on the OS that it is executing
+on.
+</p>
+                        <h3 class="section">
+      <a name="Documentation"></a>
+      Documentation
+    </h3>
+                        <p>
+You can view the documentation for the current release (Apache Ant 1.6.2)
+<a href="manual/index.html">online</a>
+</p>
+                                <p>
+Comprehensive documentation is included in the source and binary distributions.
+</p>
+                        <h3 class="section">
+      <a name="Nightly Builds"></a>
+      Nightly Builds
+    </h3>
+                        <p>
+    If you wish to use the latest Ant features, you can try downloading a nightly
+    build from <a href="http://cvs.apache.org/builds/ant/nightly/">here</a>
+    </p>
+                        <h3 class="section">
+      <a name="Get Involved"></a>
+      Get Involved
+    </h3>
+                        <ul>
+<li><a href="http://jakarta.apache.org/getinvolved/getinvolvedindex.html">Get Involved</a></li>
+<li><a href="mail.html">Join Mailing Lists</a></li>
+<li><a href="http://marc.theaimsgroup.com/?l=ant-dev&amp;r=1&amp;w=2">Search the Dev Mailing List</a>
+</li>
+<li><a href="http://marc.theaimsgroup.com/?l=ant-user&amp;r=1&amp;w=2">Search the User Mailing List</a>
+</li>
+</ul>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/legal.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/legal.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/legal.html	(revision 14989)
@@ -0,0 +1,209 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Legal</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Jon S. Stevens">
+  <meta name="email" content="jon@latchkey.com">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                              <span class="sel">Legal</span>
+                              </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Legal</h1>
+            <h3 class="section">
+      <a name="Legal Stuff They Make Us Say"></a>
+      Legal Stuff They Make Us Say
+    </h3>
+                        <p>All material on this website is Copyright © 1999-2004,
+      The Apache Software Foundation.</p>
+                                <p>Sun, Sun Microsystems, Solaris, Java, JavaServer Web
+      Development Kit, and JavaServer Pages are trademarks or
+      registered trademarks of Sun Microsystems, Inc. UNIX is a
+      registered trademark in the United States and other countries,
+      exclusively licensed through X/Open Company, Ltd.  Windows,
+      WindowsNT, and Win32 are registered trademarks of Microsoft
+      Corp. All other product names mentioned herein and throughout
+      the entire web site are trademarks of their respective
+      owners.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/license.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/license.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/license.html	(revision 14989)
@@ -0,0 +1,483 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - License</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="The Apache Software Foundation">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                              <span class="sel">License</span>
+                              </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">License</h1>
+            <h3 class="section">
+      <a name="The Apache Software License Version 2.0"></a>
+      The Apache Software License Version 2.0
+    </h3>
+                        <p>The Apache Software License Version 2.0 applies 
+    to all releases of Ant starting with ant 1.6.1</p>
+                                <pre class="code">/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      &quot;control&quot; means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      &quot;Source&quot; form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      &quot;Object&quot; form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      &quot;Work&quot; shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      &quot;Contribution&quot; shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
+ *
+ *      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same &quot;printed page&quot; as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+ *   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.
+ */
+    </pre>
+                                <p>You can download the original license file <a href="./LICENSE" target="_new">here.</a></p>
+                                <p>The License is accompanied by a NOTICE</p>
+                                <pre class="code">
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache Ant distribution.                      ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   This product includes also software developed by :
+     - the W3C consortium (http://www.w3c.org) ,
+     - the SAX project (http://www.saxproject.org)
+
+   Please read the different LICENSE files present in the root directory of
+   this distribution.
+
+   The names &quot;Ant&quot; and  &quot;Apache Software Foundation&quot;  must not be used to
+   endorse  or promote  products derived  from this  software without prior
+   written permission. For written permission, please contact
+   apache@apache.org.
+</pre>
+                        <h3 class="section">
+      <a name="The Apache Software License, Version 1.1"></a>
+      The Apache Software License, Version 1.1
+    </h3>
+                        <p> The Apache Software License, Version 1.1, applies to all versions of up to ant 1.6.0 included.</p>
+                                <pre class="code">/*
+ * ============================================================================
+ *                   The Apache Software License, Version 1.1
+ * ============================================================================
+ * 
+ *    Copyright (C) 2000-2003 The Apache Software Foundation. All
+ *    rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 
+ * 1. Redistributions of  source code must  retain the above copyright  notice,
+ *    this list of conditions and the following disclaimer.
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution, if any, must
+ *    include  the following  acknowledgment:  &quot;This product includes  software
+ *    developed  by the  Apache Software Foundation  (http://www.apache.org/).&quot;
+ *    Alternately, this  acknowledgment may  appear in the software itself,  if
+ *    and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names &quot;Ant&quot; and  &quot;Apache Software Foundation&quot;  must not be used to
+ *    endorse  or promote  products derived  from this  software without  prior
+ *    written permission. For written permission, please contact
+ *    apache@apache.org.
+ * 
+ * 5. Products  derived from this software may not  be called &quot;Apache&quot;, nor may
+ *    &quot;Apache&quot; appear  in their name,  without prior written permission  of the
+ *    Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ * APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ * ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ * (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ * This software  consists of voluntary contributions made  by many individuals
+ * on behalf of the  Apache Software Foundation.  For more  information  on the 
+ * Apache Software Foundation, please see &lt;http://www.apache.org/&gt;.
+ *
+ */
+</pre>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/mail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/mail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/mail.html	(revision 14989)
@@ -0,0 +1,245 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Mailing Lists</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                              <span class="sel">Mailing Lists</span>
+                              </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Mailing Lists</h1>
+            <h3 class="section">
+      <a name="Mailing Lists"></a>
+      Mailing Lists
+    </h3>
+                        <p>Please read the <a href="http://jakarta.apache.org/site/mail.html">guidelines of
+      the Jakarta Project</a> before subscribing and posting to any of
+      the lists below.  They apply to Ant's lists as well.</p>
+                                <p>The user and dev list are subscriber only lists, this means
+      you have to subscribe before you can post to the list.  Please
+      note that any HTML parts sent to the lists will be removed by our
+      mailing list software - you shouldn't be sending HTML mails
+      anyway.</p>
+                                <p>These lists are archived at</p>
+                                <ul>
+          <li><a href="http://mail-archives.apache.org/eyebrowse/ViewLists">List Index on mail-archives.apache.org</a></li>
+          <li><a href="http://ant.apache.org/mail/">Full mbox archives of all lists</a></li>
+          <li><a href="http://marc.theaimsgroup.com/">Mailing list Archives</a></li>
+        </ul>
+                                      <h4 class="subsection">
+        <a name="User List"></a>
+        User List
+      </h4>
+                        <p>
+          <b>High Traffic</b>
+          <a href="mailto:user-subscribe@ant.apache.org">Subscribe</a>
+          <a href="mailto:user-unsubscribe@ant.apache.org">Unsubscribe</a>
+<!--
+          <a href="http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=user@ant.apache.org">Archive</a>
+-->
+          <a href="http://marc.theaimsgroup.com/?l=ant-user&amp;r=1&amp;w=2">Archive</a>
+        </p>
+                                <p>This list is for developers that are using Ant in their own
+        projects to ask questions, share knowledge, and discuss issues
+        related to using Ant as a build tool.</p>
+                                                    <h4 class="subsection">
+        <a name="Developer List"></a>
+        Developer List
+      </h4>
+                        <p>
+          <b>High Traffic</b>
+          <a href="mailto:dev-subscribe@ant.apache.org">Subscribe</a>
+          <a href="mailto:dev-unsubscribe@ant.apache.org">Unsubscribe</a>
+<!--
+          <a href="http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=dev@ant.apache.org">Archive</a>
+-->
+          <a href="http://marc.theaimsgroup.com/?l=ant-dev&amp;r=1&amp;w=2">Archive</a>
+        </p>
+                                <p>This is the list where participating developers of the Ant
+        build tool meet and discuss issues, code changes/additions,
+        etc. Subscribers to this list get notices of each and every
+        code change, build results, testing notices, etc.</p>
+                              
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/ant.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/ant.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/ant.html	(revision 14989)
@@ -0,0 +1,251 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="ant">Ant</a></h2>
+<h3>Description</h3>
+
+<p>Runs Ant on a supplied buildfile. This can be used to build
+subprojects.  <strong>This task must not be used outside of a
+<code>target</code> if it invoces the same build file it is part
+of.</strong></p>
+
+<p>When the <i>antfile</i> attribute is omitted, the file &quot;build.xml&quot;
+in the supplied directory (<i>dir</i> attribute) is used.</p>
+<p>If no target attribute is supplied, the default target of the new project is
+used.</p>
+<p>By default, all of the properties of the current project will be
+available in the new project.  Alternatively, you can set the
+<i>inheritAll</i> attribute to <code>false</code> and only
+&quot;user&quot; properties (i.e., those passed on the command-line)
+will be passed to the new project.  In either case, the set of
+properties passed to the new project will override the properties that
+are set in the new project (See also the <a
+href="property.html">property task</a>).</p>
+
+<p>You can also set properties in the new project from the old project
+by using nested property tags. These properties are always passed
+to the new project and any project created in that project
+regardless of the setting of <i>inheritAll</i>.  This allows you to
+parameterize your subprojects.  Properties defined on the command line
+can not be overridden by nested &lt;property&gt; elements.</p>
+
+<p>References to data types can also be passed to the new project, but
+by default they are not.  If you set the inheritrefs attribute to
+true, all references will be copied, but they will not override
+references defined in the new project.</p>
+
+<p>Nested <a href="#reference"><i>&lt;reference&gt;</i></a> elements
+can also be used to copy references from the calling project to the
+new project, optionally under a different id.  References taken from
+nested elements will override existing references that have been
+defined outside of targets in the new project - but not those defined
+inside of targets.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">antfile</td>
+    <td valign="top">the buildfile to use. Defaults to
+      &quot;build.xml&quot;.  This file is expected to be a filename
+      relative to the dir attribute given.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+         <td valign="top">the directory to use as a basedir for the new Ant project.
+      Defaults to the current project's basedir, unless
+      inheritall has been set to false, in which case it doesn't
+      have a default value.  This will override the basedir
+      setting of the called project.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">the target of the new Ant project that should be executed.
+      Defaults to the new project's default target.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Filename to write the ant output to.  This is
+    relative to the value of the dir attribute if it has been set or
+    to the base directory of the current project otherwise.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritAll</td>
+    <td valign="top">If <code>true</code>, pass all properties to the
+      new Ant project.  Defaults to <code>true</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritRefs</td>
+    <td valign="top">If <code>true</code>, pass all references to the
+      new Ant project.  Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>property</h4>
+<p>See the description of the <a href="property.html">property
+task</a>.  Note that the <code>refid</code> attribute points to a
+reference in the calling project, not in the new one.</p>
+
+<a name="reference"></a><h4>reference</h4>
+<p>Used to choose references that shall be copied into the new project,
+optionally changing their id.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">The id of the reference in the calling project.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">torefid</td>
+    <td valign="top">The id of the reference in the new project.</td>
+    <td valign="top" align="center">No, defaults to the value of refid.</td>
+  </tr>
+</table>
+
+<h4>propertyset</h4>
+
+<p>You can specify a set of properties to be copied into the new
+project with <a
+href="../CoreTypes/propertyset.html">propertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h3>Basedir of the new project</h3>
+
+<p>The basedir value of the new project is affected by the two
+attributes dir and inheritall, see the following table for
+details:</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>dir attribute</b></td>
+    <td valign="top"><b>inheritAll attribute</b></td>
+    <td valign="top"><b>new project's basedir</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value provided</td>
+    <td valign="top">true</td>
+    <td valign="top">value of dir attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">value provided</td>
+    <td valign="top">false</td>
+    <td valign="top">value of dir attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">omitted</td>
+    <td valign="top">true</td>
+    <td valign="top">basedir of calling project (the one whose build
+        file contains the &lt;ant&gt; task).</td>
+  </tr>
+  <tr>
+    <td valign="top">omitted</td>
+    <td valign="top">false</td>
+    <td valign="top">basedir attribute of the &lt;project&gt; element
+        of the new project</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>
+  &lt;ant antfile=&quot;subproject/subbuild.xml&quot; dir=&quot;subproject&quot; target=&quot;compile&quot;/&gt;
+
+  &lt;ant dir=&quot;subproject&quot;/&gt;
+
+  &lt;ant antfile=&quot;subproject/property_based_subbuild.xml&quot;&gt;
+    &lt;property name=&quot;param1&quot; value=&quot;version 1.x&quot;/&gt;
+    &lt;property file=&quot;config/subproject/default.properties&quot;/&gt;
+  &lt;/ant&gt;
+
+  &lt;ant inheritAll=&quot;false&quot; antfile=&quot;subproject/subbuild.xml&quot;&gt;
+    &lt;property name=&quot;output.type&quot; value=&quot;html&quot;/&gt;
+  &lt;/ant&gt;
+</pre>
+
+<p>The build file of the calling project defines some
+<code>&lt;path&gt;</code> elements like this:</p>
+
+<pre>
+  &lt;path id="path1"&gt;
+    ...
+  &lt;/path&gt;
+  &lt;path id="path2"&gt;
+    ...
+  &lt;/path&gt;
+</pre>
+
+<p>and the called build file (<code>subbuild.xml</code>) also defines
+a <code>&lt;path&gt;</code> with the id <code>path1</code>, but
+<code>path2</code> is not defined:</p>
+
+<pre>
+  &lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;true&quot;/&gt;
+</pre>
+
+<p>will not override <code>subbuild</code>'s definition of
+<code>path1</code>, but make the parent's definition of
+<code>path2</code> available in the subbuild.</p>
+
+<pre>
+  &lt;ant antfile=&quot;subbuild.xml&quot;/&gt;
+</pre>
+
+<p>as well as</p>
+
+<pre>
+  &lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;/&gt;
+</pre>
+
+<p>will neither override <code>path1</code> nor copy
+<code>path2</code>.</p>
+
+<pre>
+  &lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;&gt;
+    &lt;reference refid=&quot;path1&quot;/&gt;
+  &lt;/ant&gt;
+</pre>
+
+<p>will override <code>subbuild</code>'s definition of
+<code>path1</code>.</p>
+
+<pre>
+  &lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;&gt;
+    &lt;reference refid=&quot;path1&quot; torefid=&quot;path2&quot;/&gt;
+  &lt;/ant&gt;
+</pre>
+
+<p>will copy the parent's definition of <code>path1</code> into the
+new project using the id <code>path2</code>.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/antcall.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/antcall.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/antcall.html	(revision 14989)
@@ -0,0 +1,151 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>AntCall Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="antcall">AntCall</a></h2>
+<h3>Description</h3>
+
+<p>Call another target within the same build-file optionally
+specifying some properties (param's in this context).  <strong>This
+task must no be used outside of a <code>target</code>.</strong></p>
+
+<p>By default, all of the properties of the current project will be
+available in the new project.   Alternatively, you can
+set the <i>inheritAll</i> attribute to <code>false</code> and only
+&quot;user&quot; properties (i.e., those passed on the command-line)
+will be passed to the new project.  In either case, the set of
+properties passed to the new project will override the properties that
+are set in the new project (See also the <a href="property.html">property task</a>).</p>
+<p>You can also set properties in the new project from the old project
+by using nested param tags. These properties are always passed
+to the new project and any project created in that project
+regardless of the setting of <i>inheritAll</i>.  This allows you to
+parameterize your subprojects.  Properties defined on the command line
+can not be overridden by nested &lt;param&gt; elements.</p>
+
+<p>Nested <a href="#reference"><i>&lt;reference&gt;</i></a> elements can
+be used to copy references from the calling project to the new
+project, optionally under a different id.  References taken from
+nested elements will override existing references that have been
+defined outside of targets in the new project - but not those defined
+inside of targets.</p>
+
+<p>
+When a target is invoked by antcall, all of its dependent targets will
+also be called within the context of any new parameters. For example. if
+the target &quot;doSomethingElse&quot; depended on the target &quot;init&quot;, then the
+<i>antcall</i> of &quot;doSomethingElse&quot; will call &quot;init&quot; during the call.
+Of course, any properties defined in the antcall task or inherited from the calling target
+will be fixed and not overridable in the init task -or indeed in the &quot;doSomethingElse&quot; task.
+</p>
+
+<p>If the build file changes after you've started the build, the
+behavior of this task is undefined.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The target to execute.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritAll</td>
+    <td valign="top">If <code>true</code>, pass all properties to the new Ant
+    project.  Defaults to <code>true</code>.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritRefs</td>
+    <td valign="top">If <code>true</code>, pass all references to the
+      new Ant project.  Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Note on <code>inheritRefs</code></h3>
+
+<p><code>&lt;antcall&gt;</code> will not override existing references,
+even if you set <code>inheritRefs</code> to true.  As the called build
+files is the same build file as the calling one, this means it will
+not override any reference set via an <code>id</code> attribute at
+all.  The only references that can be inherited by the child project
+are those defined by nested <code>&lt;reference&gt;</code> elements or
+references defined by tasks directly (not using the <code>id</code>
+attribute).</p>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>param</h4>
+<p>Specifies the properties to set before running the specified target. See <a
+href="property.html">property</a> for usage guidelines.</p>
+
+<a name="reference"></a><h4>reference</h4>
+<p>Used to choose references that shall be copied into the new project,
+optionally changing their id.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">The id of the reference in the calling project.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">torefid</td>
+    <td valign="top">The id of the reference in the new project.</td>
+    <td valign="top" align="center">No, defaults to the value of refid.</td>
+  </tr>
+</table>
+
+<h4>propertyset</h4>
+
+<p>You can specify a set of properties to be copied into the new
+project with <a
+href="../CoreTypes/propertyset.html">propertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h3>Examples</h3>
+<pre>
+  &lt;target name=&quot;default&quot;&gt;
+    &lt;antcall target=&quot;doSomethingElse&quot;&gt;
+      &lt;param name=&quot;param1&quot; value=&quot;value&quot;/&gt;
+    &lt;/antcall&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;doSomethingElse&quot;&gt;
+    &lt;echo message=&quot;param1=${param1}&quot;/&gt;
+  &lt;/target&gt;
+</pre>
+<p>Will run the target 'doSomethingElse' and echo 'param1=value'.</p>
+
+<pre>
+  &lt;antcall ... &gt;
+    &lt;reference refid=&quot;path1&quot; torefid=&quot;path2&quot;/&gt;
+  &lt;/antcall&gt;
+</pre>
+
+<p>will copy the parent's definition of <code>path1</code> into the
+new project using the id <code>path2</code>.</p>
+
+<hr><p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/antstructure.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/antstructure.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/antstructure.html	(revision 14989)
@@ -0,0 +1,55 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>AntStructure Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="antstructure">AntStructure</a></h2>
+<h3>Description</h3> 
+
+<p>Generates an DTD for Ant buildfiles which contains information
+about all tasks currently known to Ant.</p>
+
+<p>Actually the DTD will not be a real DTD for buildfiles since Ant's
+usage of XML cannot be captured with a DTD.  Several elements in Ant
+can have different attribute lists depending on the element that
+contains them.  &quot;fail&quot; for example can be <a
+href="fail.html">the task</a> or the nested child element of the <a
+href="../OptionalTasks/sound.html">sound</a> task.  Don't consider the
+generated DTD something to rely upon.</p>
+
+<p>Also note that the DTD generated by this task is incomplete, you can
+always add XML entities using <a
+href="taskdef.html"><code>&lt;taskdef&gt;</code></a> or <a
+href="typedef.html"><code>&lt;typedef&gt;</code></a>. See <a
+href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html"
+target="_top">here</a> for a way to get around this problem.</p>
+<p>This task doesn't know about required attributes, all will be
+listed as <code>#IMPLIED</code>.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">file to write the DTD to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;antstructure output=&quot;project.dtd&quot;/&gt;
+</pre></blockquote>
+<hr><p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/apply.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/apply.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/apply.html	(revision 14989)
@@ -0,0 +1,381 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apply Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="apply">Apply/<i>ExecOn</i></a></h2>
+<p><i>The name <code>execon</code> is deprecated and only kept for backwards
+compatibility.</i></p>
+<h3>Description</h3>
+<p>Executes a system command. When the <i>os</i> attribute is specified, then
+the command is only executed when Ant is run on one of the specified operating
+systems.</p>
+<p>The files and/or directories of a number of <a
+href="../CoreTypes/fileset.html">FileSet</a>s, <a
+href="../CoreTypes/dirset.html">DirSet</a>s (<em>since Ant 1.6</em>)
+or <a href="../CoreTypes/filelist.html">FileList</a>s (<em>since Ant
+1.6</em>) are passed as arguments to the system command.</p>
+<p>If you specify a nested <a
+href="../CoreTypes/mapper.html">mapper</a> and the <i>dest</i> attribute,
+the timestamp of each source file is compared to the timestamp of a
+target file which is defined by the nested mapper element and searched
+for in the given dest.</p>
+<p>At least one fileset or filelist is required, and you must not specify more than
+one mapper.</p>
+
+<p>Note that you cannot interact with the forked program, the only way
+to send input to it is via the input and inputstring attributes.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">the command to execute without any command line
+      arguments.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the directory where the &lt;apply&gt; expects the target files will be placed by the 
+                     command, when it is executed. 
+    </td>
+    <td align="center" valign="top">Yes, if you specify a nested mapper</td>
+  </tr>
+  <tr>
+    <td valign="top">spawn</td>
+    <td valign="top">whether or not you want the commands to be spawned<br/>
+    Default is false.<br>
+    If you spawn a command, its output will not be logged by ant.<br/>
+    The input, output, error, and result property settings are not active when spawning a process.<br>
+    <em>since Ant 1.6</em>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory in which the command should be executed.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">relative</td>
+    <td valign="top">whether the filenames should be passed on the
+      command line as absolute or relative pathnames (relative to the
+      base directory of the corresponding fileset/list for source files or
+      the <i>dest</i> attribute for target files).</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">forwardslash</td>
+    <td valign="top">whether the file names should be passed
+      with forward slashes even if the operating system requires other
+      file separator. The option is ignored if the system file separator
+      is a forward slash.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">os</td>
+    <td valign="top">list of Operating Systems on which the command may be
+      executed.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">the file to which the output of the command
+    should be redirected.  If the error stream is not also redirected
+    to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the
+    command should be redirected.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error
+    output in Ant's log and you are redirecting output to a
+    file/property. The error output will not be included in the output
+    file/property. If you redirect error with the &quot;error&quot; or
+    &quot;errorProperty&quot; attributes, this will have no effect.
+    <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">whether output should be appended to or overwrite
+      an existing file.  Defaults to false.  If you set parallel to
+      false, you will probably want to set this one to true.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">the name of a property in which the output of the
+    command should be stored.  Unless the error stream is redirected
+    to a separate file or stream, this property will include the error
+    output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the 
+      command should be stored.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard
+    input is taken. This attribute is mutually exclusive with the
+    inputstring attribute.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+    executed command. This attribute is mutually exclusive with the
+    input attribute.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resultproperty</td>
+    <td valign="top">the name of a property in which the return code
+      of the command should be stored. Only of interest if
+      failonerror=false. If you set parallel to false, only the result
+      of the first execution will be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+      specified time (given in milliseconds).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failifexecutionfails</td>
+    <td valign="top">Stop the build if we can't start the program.
+      Defaults to true. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">skipemptyfilesets</td>
+    <td valign="top">Don't run the command, if no source files have
+      been found or are newer than their corresponding target
+      files.  Despite its name, this attribute applies to filelists as
+      well.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">Run the command only once, appending all files as
+      arguments. If false, command will be executed once for every file. 
+      Defaults to false. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the names of plain
+      files will be sent to the command. If set to <i>dir</i>, only
+      the names of directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate old environment when new environment
+      variables are specified.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">vmlauncher</td>
+    <td valign="top">Run command using the Java VM's execution facilities
+        where available. If set to false the underlying OS's shell,
+        either directly or through the antRun scripts, will be used.
+        Under some operating systems, this gives access to facilities
+        not normally available through the VM including, under Windows,
+        being able to execute scripts, rather than their associated
+        interpreter.  If you want to specify the name of the
+        executable as a relative path to the directory given by the
+        dir attribute, it may become necessary to set vmlauncher to
+        false as well.</td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">resolveExecutable</td>
+    <td valign="top">When this attribute is true, the name of the
+    executable if resolved firstly against the project basedir and if
+    that does not exist, against the execution directory if
+    specified. On Unix systems, if you only want to allow execution of
+    commands in the user's path, set this to false.  <em>since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>                     
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">addsourcefile</td>
+    <td valign="top">Whether source file names should be added to the
+      command automatically.  Defaults to <code>true</code>.  
+      <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoremissing</td>
+    <td valign="top">Whether to ignore nonexistent files specified
+      via filelists.  <em>Since Ant 1.6.2.</em></td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+<p>You can use any number of nested <code>&lt;fileset&gt;</code>
+elements to define the files for this task and refer to
+<code>&lt;fileset&gt;</code>s defined elsewhere.</p>
+<h4>filelist</h4>
+<p><em>Since Ant 1.6</em></p>
+<p>You can use any number of nested <code>&lt;filelist&gt;</code>
+elements to define the files for this task and refer to
+<code>&lt;filelist&gt;</code>s defined elsewhere.</p>
+<h4>dirset</h4>
+<p><em>Since Ant 1.6</em></p>
+<p>You can use any number of nested <code>&lt;dirset&gt;</code>
+elements to define the directories for this task and refer to
+<code>&lt;dirset&gt;</code>s defined elsewhere.</p>
+<h4>mapper</h4>
+<p>A single <code>&lt;mapper&gt;</code> specifies the target files
+relative to the <CODE>dest</CODE> attribute for dependency checking.
+At least one <code>&lt;fileset&gt;</code> or
+<code>&lt;filelist&gt;</code> is required.</p>
+<h4>arg</h4>
+<p>Command line arguments should be specified as nested
+<code>&lt;arg&gt;</code> elements. See <a
+href="../using.html#arg">Command line arguments</a>.</p>
+<h4>srcfile</h4>
+<p>By default the file names of the source files will be added to the
+end of the command line (unless you set addsourcefile to
+<code>false</code>). If you need to place it somewhere different,
+use a nested <code>&lt;srcfile&gt;</code> element between your
+<code>&lt;arg&gt;</code> elements to mark the insertion point.</p>
+<h4>targetfile</h4>
+<p><code>&lt;targetfile&gt;</code> is similar to
+<code>&lt;srcfile&gt;</code> and marks the position of the target
+filename on the command line. If omitted, the target filenames will
+not be added to the command line at all. This element can only be
+specified, if you also define a nested mapper and the <i>dest</i>
+attribute.</p>
+<h4>env</h4>
+<p>It is possible to specify environment variables to pass to the
+system command via nested <code>&lt;env&gt;</code> elements. See the
+description in the section about <a href="exec.html#env">exec</a></p>
+<h4>redirector</h4>
+<i><b>Since Ant 1.6.2</b></i>
+<p>A nested <a href="../CoreTypes/redirector.html">I/O Redirector</a>
+can be specified.  &lt;apply&gt;'s behavior is like that of
+<a href="exec.html#redirector">exec</a> with regard to
+redirectors, with the exception that, in non-<i>parallel</i> mode,
+file mapping will take place with each iteration.  This grants the
+user the capacity to receive input from, and send output to, different
+files for each sourcefile.
+</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;apply executable=&quot;ls&quot;&gt;
+  &lt;arg value=&quot;-l&quot;/&gt;
+  &lt;fileset dir=&quot;/tmp&quot;&gt;
+    &lt;patternset&gt;
+      &lt;exclude name=&quot;**/*.txt&quot;/&gt;
+    &lt;/patternset&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.files&quot;/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+<p>invokes <code>ls -l</code>, adding the absolute filenames of all
+files below <code>/tmp</code> not ending in <code>.txt</code> and all
+files of the FileSet with <code>id</code> <code>other.files</code> to
+the command line.</p>
+<blockquote><pre>
+&lt;apply executable=&quot;somecommand&quot; parallel=&quot;false&quot;&gt;
+  &lt;arg value=&quot;arg1&quot;/&gt;
+  &lt;srcfile/&gt;
+  &lt;arg value=&quot;arg2&quot;/&gt;
+  &lt;fileset dir=&quot;/tmp&quot;/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+<p>invokes <code>somecommand arg1 SOURCEFILENAME arg2</code> for each
+file in <code>/tmp</code> replacing SOURCEFILENAME with the absolute
+filename of each file in turn. If <code>parallel</code> had been set
+to true, SOURCEFILENAME would be replaced with the absolute filenames
+of all files separated by spaces.</p>
+<blockquote><pre>
+&lt;apply executable=&quot;cc&quot; dest=&quot;src/C&quot; parallel=&quot;false&quot;&gt;
+  &lt;arg value=&quot;-c&quot;/&gt;
+  &lt;arg value=&quot;-o&quot;/&gt;
+  &lt;targetfile/&gt;
+  &lt;srcfile/&gt;
+  &lt;fileset dir=&quot;src/C&quot; includes=&quot;*.c&quot;/&gt;
+  &lt;mapper type=&quot;glob&quot; from=&quot;*.c&quot; to=&quot;*.o&quot;/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+<p>invokes <code>cc -c -o TARGETFILE SOURCEFILE</code> for each
+<code>.c</code> file that is newer than the corresponding
+<code>.o</code>, replacing TARGETFILE with the absolute filename of
+the <code>.o</code> and SOURCEFILE with the absolute name of the
+<code>.c</code> file.</p>
+<blockquote><pre>
+&lt;mapper id=&quot;out&quot; type=&quot;glob&quot;
+           from=&quot;src${file.separator}*.file&quot;
+           to=&quot;dest${file.separator}*.out&quot; /&gt;
+
+&lt;apply executable=&quot;processfile&quot; dest=&quot;dest&quot;&gt;
+  &lt;fileset dir=&quot;src&quot; includes=&quot;*.file&quot;/&gt;
+  &lt;mapper refid=&quot;out&quot; /&gt;
+  &lt;redirector&gt;
+    &lt;outputmapper refid=&quot;out&quot; /&gt;
+  &lt;/redirector&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+Applies the fictitious &quot;processfile&quot; executable to all
+files matching <code>*.file</code> in the <CODE>src</CODE> directory.
+The <CODE>out</CODE> &lt;mapper&gt; has been set up to map
+<CODE>*.file</CODE> to <CODE>*.out</CODE>, then this &lt;mapper&gt;
+is used to specify <CODE>targetfile</CODE>s for this &lt;apply&gt;
+task.  A reference to <CODE>out</CODE> is then used as an
+&lt;outputmapper&gt; nested in a &lt;redirector&gt;, which in turn is
+nested beneath this &lt;apply&gt; instance.  This allows us to perform
+dependency checking against output files--the target files in this case.
+
+<hr><p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/available.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/available.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/available.html	(revision 14989)
@@ -0,0 +1,129 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Available Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="available">Available</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a resource is available at runtime. This resource can be a
+file, a directory, a class in the classpath, or a JVM system resource.</p>
+<p>If the resource is present, the property value is set to true by
+default; otherwise, the property is not set. You can set the value to
+something other than the default by specifying the <code>value</code> attribute.</p>
+<p>Normally, this task is used to set properties that are useful to avoid target
+execution depending on system parameters.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to set the property to. Defaults to &quot;true&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">The class to look for in the classpath.</td>
+    <td valign="middle" align="center" rowspan="3">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to look for.</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">The resource to look for in the JVM.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use when looking up <code>classname</code> or <code>resource</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filepath</td>
+    <td valign="top">The path to use when looking up <code>file</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">The type of <code>file</code> to look for, either a directory (<code>type=&quot;dir&quot;</code>) or a file
+      (<code>type=&quot;file&quot;</code>). If not set, the property will be set if the name specified in the <code>file</code>
+      attribute exists as either a file or a directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoresystemclasses</td>
+    <td valign="top">Ignore Ant's runtime classes, using only the specified
+      classpath.  Only affects the "classname" attribute.  Defaults to &quot;false&quot;</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p><code>Available</code>'s <code>classpath</code> attribute is a <a
+href="../using.html#path">path-like structure</a> and can also be set via a nested
+<code>&lt;classpath&gt;</code> element.</p>
+<h4>filepath</h4>
+<p><code>Available</code>'s <code>filepath</code> attribute is a <a
+href="../using.html#path">path-like structure</a> and can also be set via a nested
+<code>&lt;filepath&gt;</code> element.</p>
+<h3>Examples</h3>
+<pre>  &lt;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;</pre>
+<p>sets the <code>Myclass.present</code> property to the value &quot;true&quot;
+if the class <code>org.whatever.Myclass</code> is found in Ant's classpath.</p>
+<pre>
+&lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
+&lt;available file=&quot;${jaxp.jar}&quot; property=&quot;jaxp.jar.present&quot;/&gt;
+</pre>
+<p>sets the <code>jaxp.jar.present</code> property to the value &quot;true&quot;
+if the file <code>./lib/jaxp11/jaxp.jar</code> is found.</p>
+<pre>
+&lt;available file=&quot;/usr/local/lib&quot; type=&quot;dir&quot; property=&quot;local.lib.present&quot;/&gt;
+</pre>
+<p>sets the <code>local.lib.present</code> property to the value &quot;true&quot;
+if the directory <code>/usr/local/lib</code> is found.</p>
+<pre>
+...in project ...
+&lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
+&lt;path id=&quot;jaxp&quot; location=&quot;${jaxp.jar}&quot;/&gt;
+...in target ...
+&lt;available classname=&quot;javax.xml.transform.Transformer&quot; classpathref=&quot;jaxp&quot; property=&quot;jaxp11.present&quot;/&gt;
+</pre>
+<p>sets the <code>jaxp11.present</code> property to the value &quot;true&quot;
+if the class <code>javax.xml.transform.Transformer</code> is found in the classpath referenced by <code>jaxp</code> (in this case, <code>./lib/jaxp11/jaxp.jar</code>).
+</p>
+<pre>
+&lt;available property=&quot;have.extras&quot; resource=&quot;extratasks.properties&quot;&gt;
+  &lt;classpath&gt;
+    &lt;pathelement location=&quot;/usr/local/ant/extra.jar/&gt;
+&nbsp;&nbsp;&lt;/classpath&gt;
+&lt;/available&gt;
+</pre>
+<p>sets the <code>have.extras</code> property to the value &quot;true&quot;
+if the resource-file <code>extratasks.properties</code> is found.
+</p>
+<hr><p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/basename.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/basename.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/basename.html	(revision 14989)
@@ -0,0 +1,71 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Basename Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="echo">Basename</a></h2>
+<h3>Description</h3>
+<p>
+Task to determine the basename of a specified file, optionally minus a
+specified suffix.
+</p>
+<p>
+When this task executes, it will set the specified property to the
+value of the last path element of the specified file. If <code>file</code> is a
+directory, the basename will be the last directory element. If
+<code>file</code> is a full-path, relative-path, or simple filename,
+the basename will be the simple file name, without any directory elements.
+</p>
+<p> 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The path to take the basename of.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">The suffix to remove from the resulting basename
+      (specified either with or without the &quot;<code>.</code>&quot;).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;basename property=&quot;jar.filename&quot; file=&quot;${lib.jarfile}&quot;/&gt;</pre>
+will set <code>jar.filename</code> to
+<code>myjar.jar</code>, if <code>lib.jarfile</code> is defined as either a
+full-path filename (eg., <code>/usr/local/lib/myjar.jar</code>),
+a relative-path filename (eg., <code>lib/myjar.jar</code>),
+or a simple filename (eg., <code>myjar.jar</code>).
+<pre>  &lt;basename property=&quot;cmdname&quot; file=&quot;D:/usr/local/foo.exe&quot; suffix=&quot;.exe&quot;/&gt;</pre>
+will set <code>cmdname</code> to <code>foo</code>.
+<pre>  &lt;property environment=&quot;env&quot;/&gt;
+  &lt;basename property=&quot;temp.dirname&quot; file=&quot;${env.TEMP}&quot;/&gt;</pre>
+
+will set <code>temp.dirname</code> to the last directory element of
+the path defined for the <code>TEMP</code> environment variable.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/buildnumber.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/buildnumber.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/buildnumber.html	(revision 14989)
@@ -0,0 +1,55 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>BuildNumber Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="buildnumber">BuildNumber</a></h2>
+<h3>Description</h3>
+<p>This is a basic task that can be used to track build numbers.</p>
+<p>It will first attempt to read a build number from a file (by default,
+<code>build.number</code> in the current directory), then
+set the property <code>build.number</code> to the value that was read in
+(or to <code>0</code>, if no such value). It will then increment the
+number by one and write it back out to the file.
+(See the
+<a href="../OptionalTasks/propertyfile.html">PropertyFile</a> task
+if you need finer control over things such as the property name or
+the number format.)
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to read and write the build number from/to.</td>
+    <td align="center" valign="top">No; defaults to &quot;build.number&quot;</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;buildnumber/&gt;</pre>
+
+<p>Read, increment, and write a build number to the default file,
+<code>build.number</code>.</p>
+
+<pre>  &lt;buildnumber file=&quot;mybuild.number&quot;/&gt;</pre>
+
+<p>Read, increment, and write a build number to the file
+<code>mybuild.number</code>.</p>
+
+<hr><p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/changelog.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/changelog.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/changelog.html	(revision 14989)
@@ -0,0 +1,229 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>ChangeLog Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="changelog">CvsChangeLog</a></h2>
+<h3>Description</h3>
+<p>Generates an XML-formatted report file of the change logs recorded in a
+<a href="http://www.cvshome.org/" target="_top">CVS</a> repository. </p>
+<p><b>Important:</b> This task needs "cvs" on the path. If it isn't, you will get
+an error (such as error 2 on windows). If &lt;cvs&gt; doesn't work, try to execute cvs.exe
+from the command line in the target directory in which you are working.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td colspan="3">Attributes from parent Cvs task which are meaningful here<br/>
+    Since ant 1.6.1</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the <code>CVSROOT</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the <code>CVS_RSH</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port 2401.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file ~/.cvspass.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if the command exits with a
+      return code other than <code>0</code>. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tag</td>
+    <td valign="top">query the changelog for a specific branch.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td colspan="3">Specific attributes</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory from which to run the CVS <em>log</em>
+     command.</td>
+    <td align="center" valign="top">No; defaults to ${basedir}.</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file in which to write the change log report.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">usersfile</td>
+    <td valign="top">Property file that contains name-value pairs mapping
+     user IDs and names that should be used in the report in place of
+     the user ID.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">daysinpast</td>
+    <td valign="top">Sets the number of days into the past for which the
+     change log information should be retrieved.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">start</td>
+    <td valign="top">The earliest date from which change logs are to be
+     included in the report.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">end</td>
+    <td valign="top">The latest date to which change logs are to be
+     included in the report.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<a name="user"></a><h4>user</h4>
+<p>The nested <code>&lt;user&gt;</code> element allows you to specify a
+mapping between a user ID as it appears on the CVS server and a name to
+include in the formatted report.
+Anytime the specified user ID has made a change in the repository, the
+<code>&lt;author&gt;</code> tag in the report file will include
+the name specified in <code>displayname</code> rather than the user ID.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">displayname</td>
+    <td valign="top">The name to be used in the CVS change log report.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">userid</td>
+    <td valign="top">The userid of the person as it exists on the CVS server.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+
+<h3>Examples</h3>
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for all the changes that have been made
+under the <code>dve/network</code> directory.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+                daysinpast=&quot;10&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for any changes that were made
+under the <code>dve/network</code> directory in the past 10 days.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+                start=&quot;20 Feb 2002&quot;
+                end=&quot;20 Mar 2002&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for any changes that were made
+between February 20, 2002 and March 20, 2002
+under the <code>dve/network</code> directory.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+                start=&quot;20 Feb 2002&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for any changes that were made
+after February 20, 2002 under the <code>dve/network</code> directory.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;&gt;
+       &lt;user displayname=&quot;Peter Donald&quot; userid=&quot;donaldp&quot;/&gt;
+  &lt;/cvschangelog&gt;</pre>
+
+<p>Generates a change log report for all the changes that were made
+under the <code>dve/network</code> directory, substituting the name
+&quot;Peter Donald&quot; in the <code>&lt;author&gt;</code> tags
+anytime it encounters a change made by the user ID &quot;donaldp&quot;.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<p>Generates a change log report on the <code>ANT_16_BRANCH</code>.</p>
+<pre>
+ &lt;cvschangelog dir=&quot;c:/dev/asf/ant.head&quot; passfile=&quot;c:/home/myself/.cvspass&quot;
+                destfile=&quot;changelogant.xml&quot; tag=&quot;ANT_16_BRANCH&quot; /&gt;
+</pre>
+<h4>Generate Report</h4>
+<p>Ant includes a basic XSLT stylesheet that you can use to generate 
+a HTML report based on the xml output. The following example illustrates
+how to generate a HTML report from the XML report.</p>
+
+<pre>
+        &lt;style in="changelog.xml" 
+               out="changelog.html" 
+               style="${ant.home}/etc/changelog.xsl"&gt;
+          &lt;param name="title" expression="Ant ChangeLog"/&gt;
+          &lt;param name="module" expression="ant"/&gt;
+          &lt;param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/&gt;
+        &lt;/style&gt;
+</pre>
+
+<h4>Sample Output</h4>
+<pre>
+&lt;changelog&gt;
+  &lt;entry&gt;
+    &lt;date&gt;2002-03-06&lt;/date&gt;
+    &lt;time&gt;12:00&lt;/time&gt;
+    &lt;author&gt;Peter Donald&lt;/author&gt;
+    &lt;file&gt;
+      &lt;name&gt;org/apache/myrmidon/build/AntlibDescriptorTask.java&lt;/name&gt;
+      &lt;revision&gt;1.3&lt;/revision&gt;
+      &lt;prevrevision&gt;1.2&lt;/prevrevision&gt;
+    &lt;/file&gt;
+    &lt;msg&gt;&lt;![CDATA[Use URLs directly rather than go via a FIle.
+
+This allows temp[lates to be stored inside jar]]&gt;&lt;/msg&gt;
+  &lt;/entry&gt;
+&lt;/changelog&gt;
+</pre>
+
+<hr><p align="center">Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/checksum.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/checksum.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/checksum.html	(revision 14989)
@@ -0,0 +1,187 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Checksum Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="checksum">Checksum</a></h2>
+<h3>Description</h3>
+<p>
+Generates checksum for files.  This task can also be used to
+perform checksum verifications.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to generate checksum for.</td>
+    <td valign="top" align="center">One of either <var>file</var> or
+    at least one nested fileset element.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The root directory where checksums should be written.</td>
+    <td valign="top" align="center">No. If not specified, checksum files
+      will be written to the same directory as the files themselves.
+      <em>since Ant 1.6</em>
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">algorithm</td>
+    <td valign="top">Specifies the algorithm to be used to
+      compute the checksum. Defaults to &quot;MD5&quot;.
+      Other popular algorithms like &quot;SHA&quot; may be used
+      as well.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">provider</td>
+    <td valign="top">Specifies the provider of the algorithm.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fileext</td>
+    <td valign="top">The generated checksum file's name will be the
+    original filename with &quot;.&quot; and fileext added to it.
+    Defaults to the algorithm name being used.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">This attribute can mean two different things, it
+    depends on the presence of the verifyproperty attribute.<br/>
+    <b>If you don't set the verifyproperty attribute</b>, property
+    specifies the name of the property to be set with the generated
+    checksum value.<br/>
+    <b>If you set the verifyproperty attribute</b>, property specifies
+    the checksum you expect to be generated (the checksum itself, not
+    a name of a property containing the checksum).<br/>
+    This cannot be specified when fileext is being used or when the
+    number of files for which checksums is to be generated is greater
+    than 1.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">totalproperty</td>
+    <td valign="top">If specified, this attribute specifies the name of
+      the property that will hold a checksum of all the checksums and
+      file paths. The individual checksums and the relative paths to
+      the files within the filesets they are defined in will be used to
+      compute this checksum. (The file separators in the paths will be
+      converted to '/' before computation to ensure platform portability).
+      <em>since Ant 1.6</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer. Defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verifyproperty</td>
+    <td valign="top">Specifies the name of the property to be set
+    with &quot;true&quot; or &quot;false&quot; depending upon whether
+    the generated checksum matches the existing checksum.  When
+    this is set, the generated checksum is not written to a file or
+    property, but rather, the content of the file or property is used to
+    check against the generated checksum.
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">readbuffersize</td>
+    <td valign="top">The size of the buffer (in bytes) to use when
+    reading a file. Defaults to &quot;8192&quot; - you may get a
+    better performance on big files if you increase this value.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p>
+ <a href="../CoreTypes/fileset.html">FileSets</a> are used to select files to
+ generate checksums for.
+ </p>
+
+<h3>Examples</h3>
+<p><b>Example 1</b></p>
+<pre>&lt;checksum file=&quot;foo.bar&quot;/&gt;</pre>
+Generates a MD5 checksum for foo.bar and stores the checksum in the destination file
+foo.bar.MD5.  foo.bar.MD5 is overwritten only if foo.bar is newer than itself.
+
+<p><b>Example 2</b></p>
+<pre>&lt;checksum file=&quot;foo.bar&quot; forceOverwrite=&quot;yes&quot;/&gt;</pre>
+Generates a MD5 checksum for foo.bar and stores the checksum in foo.bar.MD5.
+If foo.bar.MD5 already exists, it is overwritten.
+
+<p><b>Example 3</b></p>
+<pre>&lt;checksum file=&quot;foo.bar&quot; property=&quot;foobarMD5&quot;/&gt;</pre>
+Generates a MD5 checksum for foo.bar and stores it in the Project Property foobarMD5.
+
+<p><b>Example 4</b></p>
+<pre>&lt;checksum file=&quot;foo.bar&quot; verifyProperty=&quot;isMD5ok&quot;/&gt;</pre>
+Generates a MD5 checksum for foo.bar, compares it against foo.bar.MD5 and sets
+isMD5ok to either true or false, depending upon the result.
+
+<p><b>Example 5</b></p>
+<pre>&lt;checksum file=&quot;foo.bar&quot; algorithm=&quot;SHA&quot; fileext=&quot;asc&quot;/&gt;</pre>
+Generates a SHA checksum for foo.bar and stores the checksum in the destination file
+foo.bar.asc.  foo.bar.asc is overwritten only if foo.bar is newer than itself.
+
+<p><b>Example 6</b></p>
+<pre>
+&lt;checksum file=&quot;foo.bar&quot; property=&quot;${md5}&quot; verifyProperty=&quot;isEqual&quot;/&gt;
+</pre>
+Generates a MD5 checksum for foo.bar, compares it against the value of the property
+md5, and sets isEqual to either true or false, depending upon the result.
+
+<p><b>Example 7</b></p>
+<pre>
+&lt;checksum&gt;
+  &lt;fileset dir=&quot;.&quot;&gt;
+    &lt;include name=&quot;foo*&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/checksum&gt;
+</pre>
+Works just like Example 1, but generates a .MD5 file for every file that begins with the name foo.
+
+<p><b>Example 8</b></p>
+<pre>
+&lt;condition property=&quot;isChecksumEqual&quot;&gt;
+  &lt;checksum&gt;
+    &lt;fileset dir=&quot;.&quot;&gt;
+      &lt;include name=&quot;foo.bar&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/checksum&gt;
+&lt;/condition&gt;
+</pre>
+Works like Example 4, but only sets isChecksumEqual to true, if the
+checksum matches - it will never be set to false.  This example
+demonstrates use with the Condition task.
+
+
+<h3>Note:</h3>
+When working with more than one file, if condition and/or verifyproperty is used,
+the result will be true only if the checksums matched correctly for all files being
+considered.
+
+<hr><p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/chmod.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/chmod.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/chmod.html	(revision 14989)
@@ -0,0 +1,161 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Chmod Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="chmod">Chmod</a></h2>
+<h3>Description</h3>
+<p>Changes the permissions of a file or all files inside specified
+directories. Right now it has effect only under Unix or NonStop Kernel (Tandem).
+The permissions are also UNIX style, like the argument for the chmod command.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
+tasks</a>, on how the inclusion/exclusion of files works, and how to
+write patterns.</p>
+
+<p>This task holds an implicit <a
+href="../CoreTypes/fileset.html">FileSet</a> and supports all of
+FileSet's attributes and nested elements directly. More sets can be
+specified using nested <code>&lt;fileset&gt;</code> or
+<code>&lt;dirset&gt;</code> (<em>since Ant 1.6</em>) elements. </p>
+
+<p>Starting with Ant 1.6, this task also supports nested <a
+href="../CoreTypes/filelist.html">filelist</a>s.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or single directory of which the permissions 
+      must be changed.</td>
+    <td valign="top" valign="middle" rowspan="2">exactly one of the two or nested <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory which holds the files whose permissions 
+      must be changed.</td>
+  </tr>
+  <tr>
+    <td valign="top">perm</td>
+    <td valign="top">the new permissions.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chmod</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the permissions of
+      plain files are going to be changed. If set to <i>dir</i>, only
+      the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;ugo+rx&quot;/&gt;</code></p>
+</blockquote>
+<p>makes the &quot;start.sh&quot; file readable and executable for anyone on a
+UNIX system.</p>
+<blockquote>
+  <p><code>&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;700&quot;/&gt;</code></p>
+</blockquote>
+<p>makes the &quot;start.sh&quot; file readable, writable and executable only for the owner on a
+UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chmod dir=&quot;${dist}/bin&quot; perm=&quot;ugo+rx&quot; 
+       includes=&quot;**/*.sh&quot;/&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
+readable and executable for anyone on a UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chmod perm=&quot;g+w&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those
+below any directory named trial) writable for members of the same
+group on a UNIX system. In addition all files belonging to a FileSet
+with <code>id</code> <code>other.shared.sources</code> get the same
+permissions.</p>
+
+<blockquote>
+<pre>
+&lt;chmod perm=&quot;go-rwx&quot; type=&quot;file&quot;&gt;
+  &lt;fileset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/*.cgi&quot;/&gt;
+    &lt;include name=&quot;**/*.old&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;dirset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/private_*&quot;/&gt;
+  &lt;/dirset&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+
+<p>keeps non-owners from touching cgi scripts, files with a <code>.old</code>
+extension or directories begining with <code>private_</code>. A directory 
+ending in <code>.old</code> or a file begining with private_ would remain
+unaffected.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. 
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/common.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/common.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/common.html	(revision 14989)
@@ -0,0 +1,45 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Common</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="javac">Common Attributes of all Tasks</a></h2>
+<p>All tasks share the following attributes:</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">id</td>
+    <td valign="top">Unique identifier for this task instance, can be
+       used to reference this task in scripts.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">taskname</td>
+    <td valign="top">A different name for this task instance - will
+      show up in the logging output.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">Room for your comments</td>
+    <td valign="top">No</td>
+  </tr>
+</table>
+
+<hr>
+<p align="center">Copyright &copy; 2001,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/concat.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/concat.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/concat.html	(revision 14989)
@@ -0,0 +1,301 @@
+<html>
+
+    <head>
+      <meta http-equiv="Content-Language" content="en-us">
+      <title>Concat</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+    </head>
+
+    <body>
+
+      <h2><a name="Concat">Concat</a></h2>
+
+      <h3>Description</h3>
+
+      <p>
+	Concatenates a file, or a series of files, to a single file or
+	the console. The destination file will be created if it does
+	not exist.
+      </p>
+
+      <p>
+          <a href="../using.html#path">Path</a>s and/or
+	<a href="../CoreTypes/fileset.html">FileSet</a>s and/or <a
+	href="../CoreTypes/filelist.html">FileList</a>s are used to
+	select which files are to be concatenated. There is no
+	singular 'file' attribute to specify a single file to cat.
+      </p>
+
+      <h3>Parameters</h3>
+
+      <table border="1" cellpadding="2" cellspacing="0">
+
+	<tr>
+	  <td valign="top"><b>Attribute</b></td>
+	  <td valign="top"><b>Description</b></td>
+	  <td align="center" valign="top"><b>Required</b></td>
+	</tr>
+
+	<tr>
+	  <td valign="top">destfile</td>
+	  <td valign="top">
+	    The destination file for the concatenated stream.
+        If not specified the console will be used instead.
+	  </td>
+	  <td valign="top" align="center">
+	    No
+	  </td>
+	</tr>
+
+	<tr>
+	  <td valign="top">append</td>
+	  <td valign="top">
+	    Specifies whether or not the file specified by 'destfile'
+	    should be appended. Defaults to &quot;no&quot;.
+	  </td>
+	  <td valign="top" align="center">No</td>
+	</tr>
+	<tr>
+	  <td valign="top">force</td>
+          <td valign="top">
+	    Specifies whether or not the file specified by 'destfile'
+	    should be written to even if it is newer than all source files.
+            <em>since Ant 1.6</em>.
+            Defaults to &quot;yes&quot;.
+	  </td>
+	  <td valign="top" align="center">No</td>
+	</tr>
+
+        <tr>
+          <td valign="top">encoding</td>
+          <td valign="top">
+            Specifies the encoding for the input files. Please see <a
+            href="http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html">
+            http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html</a>
+            for a list of possible values. Defaults to the platform's
+            default character encoding.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">outputencoding</td>
+          <td valign="top">
+            The encoding to use when writing the output file
+            <em>since Ant 1.6</em>.
+            Defaults to the value of the encoding attribute
+            if given or the default JVM encoding otherwise.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">fixlastline</td>
+          <td valign="top">
+ 	        Specifies whether or not to check if
+            each file concatenated is terminated by
+            a new line. If this attribute is &quot;yes&quot;
+            a new line will be appended to the stream if
+            the file did not end in a new line.
+            <em>since Ant 1.6</em>.
+            Defaults to &quot;no&quot;.
+            This attribute does not apply to embedded text.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">eol</td>
+          <td valign="top">
+            Specifies what the end of line character are
+            for use by the fixlastline attribute.
+            <em>since Ant 1.6</em>
+            Valid values for this property are:
+            <ul>
+	      <li>cr: a single CR</li>
+	      <li>lf: a single LF</li>
+	      <li>crlf: the pair CRLF</li>
+	      <li>mac: a single CR</li>
+	      <li>unix: a single LF</li>
+	      <li>dos: the pair CRLF</li>
+	    </ul>
+            The default is platform dependent.
+            For Unix platforms, the default is &quot;lf&quot;.
+	    For DOS based systems (including Windows),
+            the default is &quot;crlf&quot;. 
+            For Mac OS, the default is &quot;cr&quot;.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">binary</td>
+          <td valign="top">
+            <em>since ant 1.6.2</em>
+            If this attribute is set to true, the task concatenates the files
+            in a byte by byte fashion. If this attribute is false, concat will
+            not normally work for binary files due to character encoding
+            issues.
+            If this option is set to true, the destfile attribute must be
+            set, and the task cannot used nested text.
+            Also the attributes encoding, outputencoding, filelastline
+            cannot be used.
+            The default is false.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+
+      </table>
+
+      <h3>Parameters specified as nested elements</h3>
+        <h4>path</h4>
+        <p><em>since Ant 1.6</em>.</p>
+
+      <p>
+        This is a <a href="../CoreTypes/path.html">Path</a>. This is
+        used to select file files to be concatenated. Note that
+        a file can only appear once in a path. If this is
+        an issue consider using multiple paths.
+      </p>
+
+      <h4>fileset</h4>
+
+      <p>
+	<a href="../CoreTypes/fileset.html">FileSet</a>s are used to
+	select files to be concatenated. Note that the order in which
+	the files selected from a fileset are concatenated is
+	<i>not</i> guaranteed. If this is an issue, use multiple
+	filesets or consider using filelists.
+      </p>
+      <h4>filelist</h4>
+
+      <p>
+        <a href="../CoreTypes/filelist.html">FileList</a>s are used to
+        select files to be concatenated. The file ordering in the
+        <var>files</var> attribute will be the same order in which the
+        files are concatenated.
+      </p>
+      <h4>filterchain</h4>
+        <p><em>since Ant 1.6</em>.</p>
+      <p>The concat task supports nested 
+        <a href="../CoreTypes/filterchain.html"> FilterChain</a>s.</p>
+
+      <h4>header,footer</h4>
+        <p><em>since Ant 1.6</em>.</p>
+      <p>Used to prepend or postpend text into the concatenated stream.</p>
+      <p>The text may be in-line or be in a file.</p>
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+        <tr>
+          <td valign="top">filtering</td>
+          <td valign="top">
+            Whether to filter the text provided by this sub element,
+            default is "yes".
+          <td valign="top" align = "center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">file</td>
+          <td valign="top">A file to place at the head or tail of the
+                           concatenated text.
+          <td valign="top" align = "center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">trim</td>
+          <td valign="top">Whether to trim the value, default is "no"</td>
+          <td valign="top" align = "center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">trimleading</td>
+          <td valign="top">
+            Whether to trim leading white space on each line, default is "no"
+          </td>
+          <td valign="top" align = "center">No</td>
+        </tr>
+      </table>
+
+      <h3>Examples</h3>
+
+      <p><b>Concatenate a string to a file:</b></p>
+
+      <pre>
+  &lt;concat destfile=&quot;README&quot;&gt;Hello, World!&lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a series of files to the console:</b></p>
+
+      <pre>
+  &lt;concat&gt;
+    &lt;fileset dir=&quot;messages&quot; includes=&quot;*important*&quot;/&gt;
+  &lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a single file, appending if the destination file exists:</b></p>
+
+      <pre>
+  &lt;concat destfile=&quot;NOTES&quot; append=&quot;true&quot;&gt;
+    &lt;filelist dir=&quot;notes&quot; files=&quot;note.txt&quot;/&gt;
+  &lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a series of files, update the destination
+      file only if is older that all the source files:</b></p>
+
+      <pre>
+  &lt;concat destfile=&quot;${docbook.dir}/all-sections.xml&quot;
+          force=&quot;no&quot;&gt;
+    &lt;filelist dir=&quot;${docbook.dir}/sections&quot; 
+         files=&quot;introduction.xml,overview.xml&quot;/&gt;
+    &lt;fileset dir=&quot;${docbook.dir}&quot; 
+         includes=&quot;sections/*.xml&quot; 
+         excludes=&quot;introduction.xml,overview.xml&quot;/&gt;
+  &lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a series of files, expanding ant properties</b></p>
+        <pre>
+   &lt;concat destfile="${build.dir}/subs"&gt;
+      &lt;path&gt;
+        &lt;fileset dir="${src.dir}" includes="*.xml"/&gt;
+        &lt;pathelement location="build.xml"/&gt;
+      &lt;/path&gt;
+      &lt;filterchain&gt;
+        &lt;expandproperties/&gt;
+      &lt;/filterchain&gt;
+   &lt;/concat&gt;
+        </pre>
+
+      <p><b>Filter the lines containing project from build.xml and output
+           them to report.output, prepending with a header</b></p>
+        <pre>
+   &lt;concat destfile="${build.dir}/report.output"&gt;
+      &lt;header filtering="no" trimleading="yes"&gt;
+          Lines that contain project
+          ==========================
+      &lt;/header&gt;
+      &lt;path path="build.xml"/&gt;
+      &lt;filterchain&gt;
+         &lt;linecontains&gt;
+           &lt;contains value="project"/&gt;
+         &lt;/linecontains&gt;
+      &lt;/filterchain&gt;
+   &lt;/concat&gt;
+        </pre>
+
+      <p><b>Concatenate a number of binary files.</b></p>
+        <pre>
+   &lt;concat destfile="${build.dir}/dist.bin" binary="yes"&gt;
+     &lt;fileset file="${src.dir}/scripts/dist.sh"&gt;
+     &lt;fileset file="${build.dir}/dist.tar.bz2"&gt;
+   &lt;/concat&gt;
+        </pre>
+
+      <hr>
+
+      <p align="center">
+	Copyright &copy; 2002-2004 The Apache Software Foundation. All
+	Rights Reserved.
+      </p>
+
+    </body>
+
+  </html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/condition.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/condition.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/condition.html	(revision 14989)
@@ -0,0 +1,88 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Condition Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="Condition">Condition</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a certain condition holds true - this is a
+generalization of <a href="available.html">Available</a> and <a
+href="uptodate.html">Uptodate</a>.</p>
+<p>If the condition holds true, the property value is set to true by
+default; otherwise, the property is not set. You can set the value to
+something other than the default by specifying the <code>value</code>
+attribute.</p>
+<p>Conditions are specified as <a href="#nested">nested elements</a>,
+you must specify exactly one condition.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to set the property to. Defaults to
+      &quot;true&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<a name="nested"></a><h3>Parameters specified as nested elements</h3>
+<p>All conditions to test are specified as nested elements, for a
+complete list see <a href="conditions.html">here</a>.</p>
+
+<h3>Examples</h3>
+<pre>
+  &lt;condition property=&quot;javamail.complete&quot;&gt;
+    &lt;and&gt;
+      &lt;available classname=&quot;javax.activation.DataHandler&quot;/&gt;
+      &lt;available classname=&quot;javax.mail.Transport&quot;/&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+</pre>
+<p>sets the property <code>javamail.complete</code> if both the
+JavaBeans Activation Framework and JavaMail are available in the
+classpath.</p>
+
+<pre>
+  &lt;condition property=&quot;isMacOsButNotMacOsX&quot;&gt;
+    &lt;and&gt;
+      &lt;os family=&quot;mac&quot;/&gt;
+
+      &lt;not&gt;
+        &lt;os family=&quot;unix&quot;/&gt;
+
+      &lt;/not&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+</pre>
+<p>sets the property <code>isMacOsButNotMacOsX</code> if the current
+operating system is MacOS, but not MacOS X - which Ant considers to be
+in the Unix family as well.</p>
+
+<pre>
+  &lt;condition property=&quot;isSunOSonSparc&quot;&gt;
+    &lt;os name=&quot;SunOS&quot; arch=&quot;sparc&quot;/&gt;
+
+  &lt;/condition&gt;
+</pre>
+<p>sets the property <code>isSunOSonSparc</code> if the current
+operating system is SunOS and if it is running on a sparc architecture.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/conditions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/conditions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/conditions.html	(revision 14989)
@@ -0,0 +1,335 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Conditions Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="Conditions">Conditions</a></h2>
+  <p>Conditions are nested elements of the 
+<a href="condition.html"><code>&lt;condition&gt;</code></a> and
+<a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.
+    There are core conditions and custom conditions. Custom
+    conditions are described in
+    <a href="../CoreTypes/custom-programming.html#customconditions">
+      Custom Conditions</a>.
+    Core Conditions are described below.
+  </p>
+  <a name="coreconditions"></a><h3>Core Conditions</h3>
+
+<p>These are the nested elements that can be used as conditions in the
+<a href="condition.html"><code>&lt;condition&gt;</code></a> and
+<a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.</p>
+
+<h4>not</h4>
+<p>The <code>&lt;not&gt;</code> element expects exactly one other
+condition to be nested into this element, negating the result of the
+condition.  It doesn't have any attributes and accepts all nested
+elements of the condition task as nested elements as well.</p>
+
+<h4>and</h4> <p>
+The <code>&lt;and&gt;</code> element doesn't have any attributes and
+accepts an arbitrary number of conditions as nested elements - all
+nested elements of the condition task are supported.  This condition
+is true if all of its contained conditions are, conditions will be
+evaluated in the order they have been specified in the build file.</p>
+<p>The <code>&lt;and&gt;</code> condition has the same shortcut
+semantics as the Java &amp;&amp; operator, as soon as one of the
+nested conditions is false, no other condition will be evaluated.</p>
+
+<h4>or</h4> <p>
+The <code>&lt;or&gt;</code> element doesn't have any attributes and
+accepts an arbitrary number of conditions as nested elements - all
+nested elements of the condition task are supported.  This condition
+is true if at least one of its contained conditions is, conditions
+will be evaluated in the order they have been specified in the build
+file.</p> <p>The <code>&lt;or&gt;</code> condition has the same
+shortcut semantics as the Java || operator, as soon as one of the
+nested conditions is true, no other condition will be evaluated.</p>
+
+<h4>available</h4>
+<p>This condition is identical to the <a
+href="available.html">Available</a> task, all attributes and nested
+elements of that task are supported, the property and value attributes
+are redundant and will be ignored.</p>
+
+<h4>uptodate</h4>
+<p>This condition is identical to the <a
+href="uptodate.html">Uptodate</a> task, all attributes and nested
+elements of that task are supported, the property and value attributes
+are redundant and will be ignored.</p>
+
+<h4>os</h4>
+<p>Test whether the current operating system is of a given type.  Each
+defined attribute is tested and the result is true only if <i>all</i>
+the tests succeed.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">family</td>
+    <td valign="top">The name of the operating system family to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the operating system to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">arch</td>
+    <td valign="top">The architecture of the operating system to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">version</td>
+    <td valign="top">The version of the operating system to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>Supported values for the family attribute are:
+<ul>
+  <li>windows (for all versions of Microsoft Windows)</li>
+  <li>dos (for all Microsoft DOS based operating systems including
+    Microsoft Windows and OS/2)</li>
+  <li>mac (for all Apple Macintosh systems)</li>
+  <li>unix (for all Unix and Unix-like operating systems)</li>
+  <li>netware (for Novell NetWare)</li>
+  <li>os/2 (for OS/2)</li>
+  <li>tandem (for HP's NonStop Kernel - formerly Tandem)</li>
+  <li>win9x for Microsoft Windows 95 and 98</li>
+  <li>z/os for z/OS and OS/390</li>
+  <li>os/400 for OS/400</li>
+  <li>openvms for OpenVMS</li>
+</ul>
+
+<h4>equals</h4>
+<p>Tests whether the two given Strings are identical</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">arg1</td>
+    <td valign="top">First string to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">arg2</td>
+    <td valign="top">Second string to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Perform a case sensitive comparision.  Default is
+        true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">trim</td>
+    <td valign="top">Trim whitespace from arguments before comparing
+        them.  Default is false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>isset</h4>
+<p>Test whether a given property has been set in this project.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>checksum</h4>
+<p>This condition is identical to the <a href="checksum.html">Checksum</a>
+task, all attributes and nested elements of that task are supported,
+the property and overwrite attributes are redundant and will be
+ignored.</p>
+
+<h4>http</h4>
+<p>The <code>http</code> condition checks for a valid response from a
+web server of the specified url. By default, HTTP responses errors
+of 400 or greater are viewed as invalid.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The full URL of the page to request. The web server must
+      return a status code below the value of <tt>errorsBeginAt</tt></td>
+    <td align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">errorsBeginAt</td>
+    <td valign="top">The lowest HTTP response code that signals an error;
+    by default '400'; server errors, not-authorized, not-found and the like
+    are detected</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h4>socket</h4>
+<p>The <code>socket</code> condition checks for the existence of a
+TCP/IP listener at the specified host and port.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">server</td>
+    <td valign="top">The DNS name or IP address of the server.</td>
+    <td align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">The port number to connect to.</td>
+    <td align="center">Yes.</td>
+  </tr>
+</table>
+
+<h4>filesmatch</h4>
+<p>Test two files for matching. Nonexistence of either file results in "false".
+This test does a byte for byte comparision, so test time scales with
+byte size. NB: if the files are different sizes , one of them is missing
+or the filenames match the answer is so obvious the detailed test is omitted.
+
+
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file1</td>
+    <td valign="top">First file to test</td>
+    <td align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">file2</td>
+    <td valign="top">Second file to test</td>
+    <td align="center">Yes.</td>
+  </tr>
+</table>
+
+<h4>contains</h4>
+<p>Tests whether a string contains another one.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">string</td>
+    <td valign="top">The string to search in.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">substring</td>
+    <td valign="top">The string to search for.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Perform a case sensitive comparision.  Default is
+        true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>istrue</h4>
+<p>Tests whether a string equals any of the ant definitions of true,
+that is "true","yes", or "on"</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value to test</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<pre>
+    &lt;istrue value=&quot;${someproperty}&quot;/&gt;
+    &lt;istrue value=&quot;false&quot;/&gt;
+</pre>
+
+<h4>isfalse</h4>
+<p>Tests whether a string is not true, the negation of &lt;istrue&gt;
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value to test</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<pre>
+    &lt;isfalse value=&quot;${someproperty}&quot;/&gt;
+    &lt;isfalse value=&quot;false&quot;/&gt;
+</pre>
+
+<h4>isreference</h4>
+
+<p>Test whether a given reference has been defined in this project and
+- optionally - is of an expected type.</p>
+
+<p>This condition has been added in Apache Ant 1.6.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">The id of the reference to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">Name of the data type or task this reference is
+       expected to be.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/copy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/copy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/copy.html	(revision 14989)
@@ -0,0 +1,239 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Copy Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="copy">Copy</a></h2>
+<h3>Description</h3>
+<p>Copies a file or FileSet to a new file or directory.  By default, files are
+only copied if the source file is newer than the destination file,
+or when the destination file does not exist.  However, you can explicitly
+overwrite files with the <code>overwrite</code> attribute.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select a
+set of files to copy.
+To use a <code>&lt;fileset&gt;</code>, the <code>todir</code> attribute
+must be set.</p>
+
+<p>
+<strong>Note: </strong>If you employ filters in your copy operation, you should 
+limit the copy to text files. Binary files will be corrupted by the copy operation.
+This applies whether the filters are implicitly defined by the 
+<a href="filter.html">filter</a> task or explicitly provided to the copy
+operation as <a href="../CoreTypes/filterset.html">filtersets</a>
+</p>
+ 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to copy.</td>
+    <td valign="top" align="center">Yes, unless a nested
+    <code>&lt;fileset&gt;</code> element is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the copied files the same last modified
+      time as the original source files.
+      (<em>Note</em>: Ignored on Java 1.1)</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">The file to copy to.</td>
+    <td valign="top" align="center" rowspan="2">With the <code>file</code>
+      attribute, either <code>tofile</code> or <code>todir</code> can be used.
+      With nested <code>&lt;fileset&gt;</code> elements, if the set of files
+      is greater than 1, or if only the <code>dir</code> attribute is
+      specified in the <code>&lt;fileset&gt;</code>, or if the
+      <code>file</code> attribute is also specified, then only
+      <code>todir</code> is allowed.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory to copy to.</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">Indicates whether token filtering using the global
+      build-file filters should take place during the copy.
+      <em>Note</em>: Nested <code>&lt;filterset&gt;</code> elements will
+      always be used, even if this attribute is not specified, or its value is
+      <code>false</code> (<code>no</code>, or <code>off</code>).</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">flatten</td>
+    <td valign="top">Ignore the directory structure of the source files,
+      and copy all files into the directory specified by the <code>todir</code>
+      attribute.  Note that you can achieve the same effect by using a
+      <a href="../CoreTypes/mapper.html#flatten-mapper">flatten mapper</a>.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+     <td valign="top">Copy any empty directories included in the FileSet(s).
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Log a warning message, but do not stop the
+       build, when the file to copy does not exist or one of the nested
+       filesets points to a directory that doesn't exist or an error occurs
+       while copying.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+     <td valign="top">Log the files that are being copied.</td>
+     <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding to assume when filter-copying the
+    files. <em>since Ant 1.5</em>.</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The encoding to use when writing the files.
+    <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to the value of the encoding
+    attribute if given or the default JVM encoding otherwise.</td>
+  </tr>
+  <tr>
+    <td valign="top">enablemultiplemappings</td>
+    <td valign="top">
+      If true the task will process to all the mappings for a
+      given source path. If false the task will only process
+      the first file or directory. This attribute is only relevant
+      if there is a mapper subelement.
+      <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">granularity</td>
+    <td valign="top">The number of milliseconds leeway to give before
+    deciding a file is out of date. This is needed because not every
+    file system supports tracking the last modified time to the
+    millisecond level. Default is 0 milliseconds, or 2 seconds on DOS
+    systems.  This can also be useful if source and target files live
+    on separate machines with clocks being out of sync.  <em>since Ant
+    1.6.2</em>.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select
+sets of files to copy.
+ To use a fileset, the <code>todir</code> attribute must be set.</p>
+
+<h4>mapper</h4>
+ <p>You can define filename transformations by using a nested <a
+ href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
+ <code>&lt;copy&gt;</code> is the <a
+ href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a>.</p>
+
+<h4>filterset</h4>
+ <p><a href="../CoreTypes/filterset.html">FilterSet</a>s are used to replace
+tokens in files that are copied.
+ To use a FilterSet, use the nested <code>&lt;filterset&gt;</code> element.</p>
+
+<h4>filterchain</h4>
+<p>The Copy task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.</p>
+
+<p>
+If &lt;filterset&gt; and &lt;filterchain&gt; elements are used inside the
+same &lt;copy&gt; task, all &lt;filterchain&gt; elements are processed first
+followed by &lt;filterset&gt; elements.
+</p>
+
+<h3>Examples</h3>
+<p><b>Copy a single file</b></p>
+<pre>
+  &lt;copy file=&quot;myfile.txt&quot; tofile=&quot;mycopy.txt&quot;/&gt;
+</pre>
+<p><b>Copy a single file to a directory</b></p>
+<pre>
+  &lt;copy file=&quot;myfile.txt&quot; todir=&quot;../some/other/dir&quot;/&gt;
+</pre>
+<p><b>Copy a directory to another directory</b></p>
+<pre>
+  &lt;copy todir=&quot;../new/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+  &lt;/copy&gt;
+</pre>
+<p><b>Copy a set of files to a directory</b></p>
+<pre>
+  &lt;copy todir=&quot;../dest/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;&gt;
+      &lt;exclude name=&quot;**/*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/copy&gt;
+
+  &lt;copy todir=&quot;../dest/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot; excludes=&quot;**/*.java&quot;/&gt;
+  &lt;/copy&gt;
+</pre>
+<p><b>Copy a set of files to a directory, appending
+<code>.bak</code> to the file name on the fly</b></p>
+<pre>
+  &lt;copy todir=&quot;../backup/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+    &lt;mapper type=&quot;glob&quot; from=&quot;*&quot; to=&quot;*.bak&quot;/&gt;
+  &lt;/copy&gt;
+</pre>
+
+
+<p><b>Copy a set of files to a directory, replacing @TITLE@ with Foo Bar
+in all files.</b></p>
+<pre>
+  &lt;copy todir=&quot;../backup/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+    &lt;filterset&gt;
+      &lt;filter token=&quot;TITLE&quot; value=&quot;Foo Bar&quot;/&gt;
+    &lt;/filterset&gt;
+  &lt;/copy&gt;
+</pre>
+
+<p><strong>Unix Note:</strong> File permissions are not retained when files
+are copied; they end up with the default <code>UMASK</code> permissions
+instead. This
+is caused by the lack of any means to query or set file permissions in the
+current Java runtimes. If you need a permission-preserving copy function,
+use <code>&lt;exec executable="cp" ... &gt;</code> instead.
+</p>
+
+<p><strong>Windows Note:</strong> If you copy a file to a directory
+where that file already exists, but with different casing,
+the copied file takes on the case of the original. The workaround is to
+<a href="delete.html">delete</a>
+the file in the destination directory before you copy it.
+</p>
+
+<hr><p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/copydir.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/copydir.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/copydir.html	(revision 14989)
@@ -0,0 +1,121 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Copydir Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="copydir">Copydir</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Copy task instead.</i></p>
+<h3>Description</h3>
+<p>Copies a directory tree from the source to the destination.</p>
+<p>It is possible to refine the set of files that are being copied. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>src</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the directory to copy.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the directory to copy to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place during
+      the copy</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">flatten</td>
+    <td valign="top">ignore directory structure of source directory,
+      copy all files into a single directory, specified by the <code>dest</code>
+      attribute (default is <code>false</code>).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">overwrite existing files even if the destination
+      files are newer (default is false).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;copydir src=&quot;${src}/resources&quot;
+           dest=&quot;${dist}&quot;
+  /&gt;</pre>
+<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>.</p>
+<pre>  &lt;copydir src=&quot;${src}/resources&quot;
+           dest=&quot;${dist}&quot;
+           includes=&quot;**/*.java&quot;
+           excludes=&quot;**/Test.java&quot;
+  /&gt;</pre>
+<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
+recursively. All java files are copied, except for files with the name <code>Test.java</code>.</p>
+<pre>  &lt;copydir src=&quot;${src}/resources&quot;
+           dest=&quot;${dist}&quot;
+           includes=&quot;**/*.java&quot;
+           excludes=&quot;mypackage/test/**&quot;/&gt;</pre>
+<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
+recursively. All java files are copied, except for the files under the <code>mypackage/test</code>
+directory.</p>
+<hr><p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/copyfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/copyfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/copyfile.html	(revision 14989)
@@ -0,0 +1,58 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Copyfile Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="copyfile">Copyfile</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Copy task instead.</i></p>
+<h3>Description</h3>
+<p>Copies a file from the source to the destination. The file is only copied if
+the source file is newer than the destination file, or when the destination file
+does not exist.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the filename of the file to copy.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the filename of the file where to copy to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place during
+      the copy</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">overwrite existing files even if the destination
+      files are newer (default is false).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;copyfile src=&quot;test.java&quot; dest=&quot;subdir/test.java&quot;/&gt;</code></p>
+  <p><code>&lt;copyfile src=&quot;${src}/index.html&quot; dest=&quot;${dist}/help/index.html&quot;/&gt;</code></p>
+</blockquote>
+<hr><p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvs.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvs.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvs.html	(revision 14989)
@@ -0,0 +1,178 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>CVS Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="cvs">Cvs</a></h2>
+<h3>Description</h3>
+<p>Handles packages/modules retrieved from a
+<a href="http://www.cvshome.org/" target="_top">CVS</a> repository.</p>
+<p><b>Important:</b> This task needs &quot;<code>cvs</code>&quot; on the path. If it isn't, you will get
+an error (such as error <code>2</code> on windows). If <code>&lt;cvs&gt;</code> doesn't work, try to execute <code>cvs.exe</code>
+from the command line in the target directory in which you are working.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">the CVS command to execute.</td>
+    <td align="center" valign="top">No, default &quot;checkout&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top"><code>true</code> or <code>false</code> - if set
+    to true, this is the same as <code>compressionlevel=&quot;3&quot;</code></td>
+    <td align="center" valign="top">No. Defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">compressionlevel</td>
+    <td valign="top">A number between 1 and 9 (corresponding to
+    possible values for CVS' <code>-z#</code> argument). Any
+    other value is treated as <code>compression=&quot;false&quot;</code></td>
+    <td align="center" valign="top">No. Defaults to no compression.</td>
+  </tr>
+
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the <code>CVSROOT</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the <code>CVS_RSH</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the directory where the checked out files should
+    be placed.  Note that this is different from CVS's <code>-d</code> command line
+    switch as Ant will never shorten pathnames to avoid empty
+    directories.</td>
+    <td align="center" valign="top">No, default is project's basedir.</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tag</td>
+    <td valign="top">the tag of the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">date</td>
+    <td valign="top">Use the most recent revision no later than the given date</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">suppress informational messages. This is the same as <code>-q</code> on the command line.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">reallyquiet</td>
+    <td valign="top">suppress all messages. This is the same as
+      <code>-Q</code> on the command line.  <em>since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">noexec</td>
+    <td valign="top">report only, don't change any files.</td>
+    <td align="center" valign="top">No, default to &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">the file to direct standard output from the command.</td>
+    <td align="center" valign="top">No, default output to ANT Log as <code>MSG_INFO</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">the file to direct standard error from the command.</td>
+    <td align="center" valign="top">No, default error to ANT Log as <code>MSG_WARN</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">whether to append output/error when redirecting to a file.</td>
+    <td align="center" valign="top">No, default to &quot;false&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port <code>2401</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file <code>~/.cvspass</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if the command exits with a
+      return code other than <code>0</code>. Defaults to &quot;false&quot;</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvs cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+       package=&quot;ant&quot;
+       dest=&quot;${ws.dir}&quot;
+  /&gt;</pre>
+<p>checks out the package/module &quot;ant&quot; from the CVS
+repository pointed to by the <code>cvsRoot</code> attribute, and stores the files in &quot;<code>${ws.dir}</code>&quot;.</p>
+<pre>  &lt;cvs dest=&quot;${ws.dir}&quot; command=&quot;update&quot;/&gt;</pre>
+<p>updates the package/module that has previously been checked out into
+&quot;<code>${ws.dir}</code>&quot;.</p>
+
+<pre>  &lt;cvs command=&quot;-q diff -u -N&quot; output=&quot;patch.txt&quot;/&gt;</pre>
+
+<p>silently (<code>-q</code>) creates a file called <code>patch.txt</code> which contains a unified (<code>-u</code>) diff which includes new files added via &quot;cvs add&quot; (<code>-N</code>) and can be used as input to patch.
+The equivalent, using  <code>&lt;commandline&gt;</code> elements, is:
+</p>
+<pre>
+&lt;cvs output=&quot;patch&quot;&gt;
+    &lt;commandline&gt;
+        &lt;argument value=&quot;-q&quot;/&gt;
+        &lt;argument value=&quot;diff&quot;/&gt;
+        &lt;argument value=&quot;-u&quot;/&gt;
+        &lt;argument value=&quot;-N&quot;/&gt;
+    &lt;/commandline&gt;
+&lt;/cvs&gt;
+</pre>
+or:
+<pre>
+&lt;cvs output=&quot;patch&quot;&gt;
+    &lt;commandline&gt;
+        &lt;argument line=&quot;-q diff -u -N&quot;/&gt;
+    &lt;/commandline&gt;
+&lt;/cvs&gt;
+</pre>
+<p>
+You may include as many <code>&lt;commandline&gt;</code> elements as you like. 
+Each will inherit the <code>failonerror</code>, <code>compression</code>, and other &quot;global&quot; parameters
+from the <code>&lt;cvs&gt;</code> element.
+</p>
+
+
+<pre>  &lt;cvs command=&quot;update -A -d&quot;/&gt;</pre>
+<p>Updates from the head of repository ignoring sticky bits (<code>-A</code>) and creating any new directories as necessary (<code>-d</code>).</p>
+<p>Note: the text of the command is passed to cvs &quot;as-is&quot; so any cvs options should appear
+before the command, and any command options should appear after the command as in the diff example
+above. See <a href="http://www.cvshome.org/docs/manual/cvs-1.11.13/cvs.html" target="_top">the cvs manual</a> for details,
+specifically the <a href="http://www.cvshome.org/docs/manual/cvs-1.11.13/cvs_16.html" target="_top">Guide to CVS commands</a></p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software
+Foundation.  All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvspass.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvspass.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvspass.html	(revision 14989)
@@ -0,0 +1,48 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>CVSPass Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="cvs">cvspass</a></h2>
+<h3>Description</h3>
+<p>Adds entries to a .cvspass file. Adding entries to this file has the same affect as a cvs login command.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">cvsroot</td>
+    <td valign="top">the CVS repository to add an entry for.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">Password to be added to the password file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to add the entry to.</td>
+    <td align="center" valign="top">No, default is ~/.cvspass.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvspass cvsroot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+       password=&quot;anoncvs&quot;
+  /&gt;</pre>
+<p>Adds an entry into the ~/.cvspass password file.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001,2003 Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvstagdiff.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvstagdiff.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvstagdiff.html	(revision 14989)
@@ -0,0 +1,191 @@
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>CvsTagDiff Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+<h2><a name="cvstagdiff">CvsTagDiff</a></h2>
+<h3>Description</h3>
+<p>Generates an XML-formatted report file of the changes between two tags or dates recorded in a
+<a href="http://www.cvshome.org/" target="_top">CVS</a> repository. </p>
+<p><b>Important:</b> This task needs "cvs" on the path. If it isn't, you will get
+an error (such as error 2 on windows). If &lt;cvs&gt; doesn't work, try to execute cvs.exe
+from the command line in the target directory in which you are working.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">startTag</td>
+    <td valign="top">The earliest tag from which diffs are to be
+     included in the report.</td>
+    <td align="center" valign="top" rowspan="2">exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">startDate</td>
+    <td valign="top">The earliest date from which diffs are to be
+     included in the report.<br/>
+     accepts all formats accepted by the cvs command for -D date_spec arguments</td>
+  </tr>
+  <tr>
+    <td valign="top">endTag</td>
+    <td valign="top">The latest tag from which diffs are to be
+     included in the report.</td>
+    <td align="center" valign="top" rowspan="2">exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">endDate</td>
+    <td valign="top">The latest date from which diffs are to be
+     included in the report.<br/>
+     accepts all formats accepted by the cvs command for -D date_spec arguments</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file in which to write the diff report.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h3>Parameters inherited from the <code>cvs</code> task</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top"><code>true</code>, <code>false</code>, or the number 1-9 (corresponding to possible values for CVS <code>-z#</code> argument). Any other value is treated as false</td>
+    <td align="center" valign="top">No. Defaults to no compression. if passed <code>true</code>, level 3 compression is assumed.</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the CVSROOT variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the CVS_RSH variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to analyze.<br>
+    Since ant 1.6
+    multiple packages separated by spaces are possible.
+    aliases corresponding to different modules are also possible</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">suppress informational messages.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port 2401.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file ~/.cvspass.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;cvstagdiff cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+                destfile=&quot;tagdiff.xml&quot;
+                package=&quot;ant&quot;
+                startTag=&quot;ANT_14&quot;
+                endTag=&quot;ANT_141&quot;
+  /&gt;</pre>
+
+<p>Generates a tagdiff report for all the changes that have been made
+in the <code>ant</code> module between the tags <code>ANT_14</code> and <code>ANT_141</code>.
+It writes these changes into the file <code>tagdiff.xml</code>.</p>
+
+<pre>  &lt;cvstagdiff
+                destfile=&quot;tagdiff.xml&quot;
+                package=&quot;ant&quot;
+                startDate=&quot;2002-01-01&quot;
+                endDate=&quot;2002-31-01&quot;
+  /&gt;</pre>
+
+<p>Generates a tagdiff report for all the changes that have been made
+in the <code>ant</code> module in january 2002. In this example <code>cvsRoot</code>
+has not been set. The current <code>cvsRoot</code> will be used (assuming the build is started
+from a folder stored in <code>cvs</code>.
+It writes these changes into the file <code>tagdiff.xml</code>.</p>
+
+<pre>  &lt;cvstagdiff
+                destfile=&quot;tagdiff.xml&quot;
+                package=&quot;ant jakarta-gump&quot;
+                startDate=&quot;2003-01-01&quot;
+                endDate=&quot;2003-31-01&quot;
+  /&gt;</pre>
+
+<p>Generates a tagdiff report for all the changes that have been made
+in the <code>ant</code> and <code>jakarta-gump</code> modules in january 2003.
+In this example <code>cvsRoot</code>
+has not been set. The current <code>cvsRoot</code> will be used (assuming the build is started
+from a folder stored in <code>cvs</code>.
+It writes these changes into the file <code>tagdiff.xml</code>.</p>
+
+<h4>Generate Report</h4>
+<p>Ant includes a basic XSLT stylesheet that you can use to generate 
+a HTML report based on the xml output. The following example illustrates
+how to generate a HTML report from the XML report.</p>
+
+<pre>
+        &lt;style in="tagdiff.xml" 
+               out="tagdiff.html" 
+               style="${ant.home}/etc/tagdiff.xsl"&gt;
+          &lt;param name="title" expression="Ant Diff"/&gt;
+          &lt;param name="module" expression="ant"/&gt;
+          &lt;param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/&gt;
+        &lt;/style&gt;
+</pre>
+
+<h4>Output</h4>
+<p>
+The cvsroot and package attributes of the tagdiff element are new in ant 1.6.<br>
+Notes on entry attributes :
+<table border="1">
+<tr><th>Attribute</th><th>Comment</th></tr>
+<tr><td>name</td><td>when reporting on one package, the package name is removed from the output</td></tr>
+<tr><td>revision</td><td>supplied for files which exist at the end of the reporting period</td></tr>
+<tr><td>prevrevision</td><td>supplied for files which exist at the beginning of the reporting period.<br>
+Old CVS servers do not supply it for deleted files. CVS 1.12.2 supplies it.</td></tr>
+</table>
+</p>
+<pre>
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;tagdiff startTag=&quot;ANT_14&quot; endTag=&quot;ANT_141&quot; 
+cvsroot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot; package=&quot;ant&quot;&gt;
+  &lt;entry&gt;
+    &lt;file&gt;
+      &lt;name&gt;src/main/org/apache/tools/ant/DirectoryScanner.java&lt;/name&gt;
+      &lt;revision&gt;1.15.2.1&lt;/revision&gt;
+      &lt;prevrevision&gt;1.15&lt;/prevrevision&gt;
+    &lt;/file&gt;
+  &lt;/entry&gt;
+&lt;/tagdiff&gt;
+</pre>
+
+<hr><p align="center">Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvsversion.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvsversion.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/cvsversion.html	(revision 14989)
@@ -0,0 +1,93 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>CVSVersion Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="cvs">CvsVersion</a></h2>
+<h3>Description</h3>
+<p>
+This task allows to retrieve a CVS client and server version
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td colspan="3">Attributes from parent Cvs task which are meaningful here</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the <code>CVSROOT</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the <code>CVS_RSH</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">directory containing the checked out version of the project</td>
+    <td align="center" valign="top">No, default is project's basedir.</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port 2401.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file ~/.cvspass.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if the command exits with a
+      return code other than <code>0</code>. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td colspan="3">Specific attributes</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsclientproperty</td>
+    <td valign="top">Name of a property where the cvsclient version
+      should be stored</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsserverproperty</td>
+    <td valign="top">Name of a property where the cvs server version
+      should be stored</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvsversion cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+       passfile=&quot;/home/myself/.cvspass&quot;
+       cvsserverproperty=&quot;apachecvsversion&quot;
+       cvsclientproperty=&quot;localcvsversion&quot;
+  /&gt;</pre>
+<p>finds out the cvs client and server versions and stores the versions in the
+properties called apachecvsversion and localcvsversion</p>
+
+<hr>
+<p align="center">Copyright &copy; 2004 Apache Software
+Foundation.  All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/defaultexcludes.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/defaultexcludes.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/defaultexcludes.html	(revision 14989)
@@ -0,0 +1,80 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>DefaultExcludes Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="echo">DefaultExcludes</a></h2>
+
+<p><em>since Ant 1.6</em></p>
+
+<h3>Description</h3>
+<p>Alters the default excludes for all subsequent processing in the
+build, and prints out the current default excludes if desired.
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">echo</td>
+    <td valign="top">whether or not to print out the default excludes.(defaults to false)</td>
+    <td valign="top" align="center">attribute "true" required if no
+                                    other attribute specified</td>
+  </tr>
+  <tr>
+    <td valign="top">default</td>
+    <td valign="top">go back to hard wired default excludes</td>
+    <td valign="top" align="center">attribute "true" required if no
+    if no other attribute is specified</td>
+  </tr>
+  <tr>
+    <td valign="top">add</td>
+    <td valign="top">the pattern to add to the default excludes</td>
+    <td valign="top" align="center">if no other attribute is specified</td>
+  </tr>
+  <tr>
+    <td valign="top">remove</td>
+    <td valign="top">remove the specified pattern from the default excludes</td>
+    <td valign="top" align="center">if no other attribute is specified</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<p>Print out the default excludes</p>
+
+<pre>  &lt;defaultexcludes echo=&quot;true&quot;/&gt;</pre>
+
+<p>Print out the default excludes and exclude all *.bak files in
+<strong>all</strong> further processing</p>
+
+<pre>  &lt;defaultexcludes echo=&quot;true&quot; add=&quot;**/*.bak&quot;/&gt;</pre>
+
+<p>Silently allow several fileset based tasks to operate on emacs
+backup files and then restore normal behavior</p>
+
+<pre>
+  &lt;defaultexcludes remove=&quot;**/*~&quot;/&gt;
+
+  (do several fileset based tasks here)
+
+  &lt;defaultexcludes default=&quot;true&quot;/&gt;
+</pre>
+
+
+<hr>
+
+<p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/delete.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/delete.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/delete.html	(revision 14989)
@@ -0,0 +1,174 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Delete Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="delete">Delete</a></h2>
+<h3>Description</h3>
+<p>Deletes a single file, a specified directory and all its files and
+subdirectories, or a set of files specified by one or more
+<a href="../CoreTypes/fileset.html">FileSet</a>s.
+When specifying a set of files, empty directories are <i>not</i> removed by
+default.
+To remove empty directories, use the <code>includeEmptyDirs</code> attribute.
+</p>
+<p>
+If you use this task to delete temporary files created by editors
+and it doesn't seem to work, read up on the 
+<a href="../dirtasks.html#defaultexcludes">default exclusion set</a>
+in <strong>Directory-based Tasks</strong>, and see the
+<code>defaultexcludes</code> attribute below.
+ 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to delete, specified as either the simple
+     filename (if the file exists in the current base directory), a
+     relative-path filename, or a full-path filename.</td>
+    <td align="center" valign="middle" rowspan="2">At least one of the two,
+     unless a <code>&lt;fileset&gt;</code> is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to delete, including all its files and
+     subdirectories.<br>
+     <b>Note:</b> <code>dir</code> is <em>not</em> used
+     to specify a directory name for <code>file</code>; <code>file</code>
+     and <code>dir</code> are independent of each other.<br>
+     <b>WARNING:</b> Do <b>not</b> set <code>dir</code> to
+     <code>&quot;.&quot;</code>, <code>&quot;${basedir}&quot;</code>,
+     or the full-pathname equivalent unless you truly <em>intend</em> to
+     recursively remove the entire contents of the current base directory
+     (and the base directory itself, if different from the current working
+     directory).</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Show the name of each deleted file
+     (&quot;true&quot;/&quot;false&quot;).
+     Default is &quot;false&quot; when omitted.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">If the specified file or directory does not exist,
+     do not display a diagnostic message (unless Ant
+     has been invoked with the <code>&#x2011;verbose</code> or
+     <code>&#x2011;debug</code> switches) or modify the exit status to
+     reflect an error.
+     When set to &quot;true&quot;, if a file or directory cannot be deleted,
+     no error is reported. This setting emulates the 
+     <code>-f</code> option to the Unix <em>rm</em> command.
+     Default is &quot;false&quot;.
+     Setting this to &quot;true&quot; implies setting
+     <code>failonerror</code> to &quot;false&quot;.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">
+    Controls whether an error (such as a failure to delete a file)
+    stops the build or is merely reported to the screen.
+    Only relevant if <code>quiet</code> is &quot;false&quot;.
+    Default is &quot;true&quot;.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>  
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+    <td valign="top">Set to &quot;true&quot; to delete empty directories when
+    using filesets.  Default is &quot;false&quot;.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top"><em>Deprecated.</em>  Use <code>&lt;fileset&gt;</code>.
+      Comma- or space-separated list of patterns of
+      files that must be deleted. All files are relative to the directory
+      specified in <code>dir</code>.
+      </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top"><em>Deprecated.</em>  Use <code>&lt;fileset&gt;</code>.
+      The name of a file. Each line of
+      this file is taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top"><em>Deprecated.</em>  Use <code>&lt;fileset&gt;</code>.
+      Comma- or space-separated list of patterns of
+      files that must be excluded from the deletion list.
+      All files are relative to the directory specified in <code>dir</code>.
+      No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top"><em>Deprecated.</em>  Use <code>&lt;fileset&gt;</code>.
+      The name of a file. Each line of
+      this file is taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top"> Indicates whether default excludes
+      should be used or not (&quot;yes&quot;/&quot;no&quot;).
+      Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">deleteonexit</td>
+    <td valign="top">
+      Indicates whether to use File#deleteOnExit() if there is a
+      failure to delete a file, this causes the jvm to attempt
+      to delete the file when the jvm process is terminating.
+      The default is false.
+      <em>Since Ant 1.6.2</em>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;delete file=&quot;/lib/ant.jar&quot;/&gt;</pre>
+<p>deletes the file <code>/lib/ant.jar</code>.</p>
+<pre>  &lt;delete dir=&quot;lib&quot;/&gt;</pre>
+<p>deletes the <code>lib</code> directory, including all files 
+and subdirectories of <code>lib</code>.</p>
+<pre>  &lt;delete&gt;
+    &lt;fileset dir=&quot;.&quot; includes=&quot;**/*.bak&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes all files with the extension <code>.bak</code> from the current directory 
+and any subdirectories.</p>
+<pre>  &lt;delete includeEmptyDirs=&quot;true&quot;&gt;
+    &lt;fileset dir=&quot;build&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes all files and subdirectories of <code>build</code>, including
+<code>build</code> itself.</p>
+<pre>  &lt;delete includeemptydirs=&quot;true&quot;&gt;
+    &lt;fileset dir=&quot;build&quot; includes=&quot;**/*&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes all files and subdirectories of <code>build</code>, without
+<code>build</code> itself.</p>
+<hr><p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/deltree.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/deltree.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/deltree.html	(revision 14989)
@@ -0,0 +1,41 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Deltree Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="deltree">Deltree</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Delete task instead.</i></p>
+<h3>Description</h3>
+<p>Deletes a directory with all its files and subdirectories.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory to delete.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;deltree dir=&quot;dist&quot;/&gt;</pre>
+<p>deletes the directory <code>dist</code>, including its files and
+subdirectories.</p>
+<pre>  &lt;deltree dir=&quot;${dist}&quot;/&gt;</pre>
+<p>deletes the directory <code>${dist}</code>, including its files and
+subdirectories.</p>
+<hr><p align="center">Copyright &copy; 2000-2001,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/dependset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/dependset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/dependset.html	(revision 14989)
@@ -0,0 +1,133 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>DependSet Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2>DependSet</h2>
+
+A task to manage arbitrary dependencies between files.
+
+<h3>Description</h3>
+
+<p>
+The dependset task compares a set of source files with a set of target
+files.  If any of the source files is more recent than any of
+the target files, all of the target files are removed.  
+</p>
+<p>
+Source files and target files are specified via nested <a
+href="../CoreTypes/fileset.html">FileSets</a> and/or nested <a
+href="../CoreTypes/filelist.html">FileLists</a>.  Arbitrarily many
+source and target filesets/filelists may be specified, but at 
+least one filelist/fileset is required for both sources and targets.
+</p>
+<p>
+Use a FileSet when you want to use wildcard include or exclude
+patterns and don't care about missing files.  Use a FileList when you
+want to consider the non-existence of a file as if it were out of
+date.  If there are any non-existing files in any source or target
+FileList, all target files will be removed.
+</p>
+<p>
+DependSet is useful to capture dependencies that are not or cannot be
+determined algorithmically.  For example, the &lt;style&gt; task only
+compares the source XML file and XSLT stylesheet against the target
+file to determined whether to restyle the source.  Using dependset you
+can extend this dependency checking to include a DTD or XSD file as
+well as other stylesheets imported by the main stylesheet.
+</p>
+
+<h3>Parameters</h3>
+
+<p>
+(none)
+</p>
+
+<h3>Parameters Specified as Nested Elements</h3>
+
+<h4>srcfileset</h4>
+
+<p>
+The nested <code>srcfileset</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in
+this fileset will be compared against all files included in all of the
+<code>targetfileset</code> filesets and <code>targetfilelist</code>
+filelists.  Multiple <code>srcfileset</code> filesets may be specified.
+</p>
+
+<h4>srcfilelist</h4>
+
+<p>
+The nested <code>srcfilelist</code> element specifies a <a
+href="../CoreTypes/filelist.html">FileList</a>. All files included in
+this filelist will be compared against all files included in all of the 
+<code>targetfileset</code> filesets and <code>targetfilelist</code>
+filelists.  Multiple <code>srcfilelist</code> filelists may be specified.
+</p>
+
+<h4>targetfileset</h4>
+
+<p>
+The nested <code>targetfileset</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>.  All files included in
+this fileset will be compared against all files included in all of the
+<code>srcfileset</code> filesets and <code>sourcefilelist</code>
+filelists, and if any are older, they are all deleted.
+</p>
+
+<h4>targetfilelist</h4>
+
+<p>
+The nested <code>targetfilelist</code> element specifies a <a
+href="../CoreTypes/filelist.html">FileList</a>.  All files included in
+this filelist will be compared against all files included in all of the
+<code>srcfileset</code> filesets and <code>sourcefilelist</code>
+filelists, and if any are older, they are all deleted.
+</p>
+
+<h3>Examples</h3>
+<blockquote> <pre>    
+    &lt;dependset&gt;
+       &lt;srcfilelist
+           dir   = &quot;${dtd.dir}&quot;
+           files = &quot;paper.dtd,common.dtd&quot;/&gt;
+       &lt;srcfilelist
+           dir   = &quot;${xsl.dir}&quot;
+           files = &quot;common.xsl&quot;/&gt;
+       &lt;srcfilelist
+           dir   = &quot;${basedir}&quot;
+           files = &quot;build.xml&quot;/&gt;
+       &lt;targetfileset
+           dir      = &quot;${output.dir}&quot;
+           includes = &quot;**/*.html&quot;/&gt;
+    &lt;/dependset&gt;  </pre>
+</blockquote>
+
+<p> 
+In this example derived HTML files in the ${output.dir} directory 
+will be removed if any are out-of-date with respect to:</p>
+<ol>
+<li>the DTD of their source XML files</li>
+<li>a common DTD (imported by the main DTD)</li>
+<li>a subordinate XSLT stylesheet (imported by the main stylesheet), or</li>
+<li>the buildfile</li>
+</ol>
+
+<p>
+If any of the source files in the above example does not exist, all
+target files will also be removed.  To ignore missing source files instead,
+use filesets instead of filelists for the source files.
+</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001,2004 The Apache Software Foundation.
+All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/dirname.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/dirname.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/dirname.html	(revision 14989)
@@ -0,0 +1,55 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Dirname Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="echo">Dirname</a></h2>
+<h3>Description</h3>
+<p>
+Task to determine the directory path of a specified file.
+</p>
+<p> 
+When this task executes, it will set the specified property to the
+value of the specified file up to, but not including, the last path
+element. If the specified file is a path that ends in a filename,
+the filename will be dropped. If the specified file is just a filename,
+the directory will be the current directory.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The path to take the dirname of.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;dirname property=&quot;antfile.dir&quot; file=&quot;${ant.file}&quot;/&gt;</pre>
+will set <code>antfile.dir</code> to the directory path for
+<code>${ant.file}</code>.
+<pre>  &lt;dirname property=&quot;foo.dirname&quot; file=&quot;foo.txt&quot;/&gt;</pre>
+will set <code>foo.dirname</code> to the project's basedir.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/ear.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/ear.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/ear.html	(revision 14989)
@@ -0,0 +1,153 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>EAR Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="ear">Ear</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="jar.html">Jar</a> task with special
+treatment for files that should end up in an Enterprise Application archive.</p>
+<p>(The Ear task is a shortcut for specifying the particular layout of a EAR file. 
+The same thing can be accomplished by using the <i>prefix</i> and <i>fullpath</i>
+attributes of zipfilesets in a Zip or Jar task.)</p>
+<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the Ear task.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the EAR file to create.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">appxml</td>
+    <td valign="top">The deployment descriptor to use (META-INF/application.xml).</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">the manifest file to use.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Nested elements</h3>
+<h4>metainf</h4>
+<p>The nested <code>metainf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>META-INF</code> directory of the ear file. If this
+fileset includes a file named <code>MANIFEST.MF</code>, the file is
+ignored and you will get a warning.</p>
+<h2>Example</h2>
+<pre>
+    &lt;ear destfile=&quot;${build.dir}/myapp.ear&quot; appxml=&quot;${src.dir}/metadata/application.xml&quot;&gt;
+      &lt;fileset dir=&quot;${build.dir}&quot; includes=&quot;*.jar,*.war&quot;/&gt;
+    &lt;/ear&gt;
+</pre>
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/echo.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/echo.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/echo.html	(revision 14989)
@@ -0,0 +1,100 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Echo Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="echo">Echo</a></h2>
+<h3>Description</h3>
+<p>Echoes a message to the current loggers and listeners which
+means <tt>System.out</tt> unless overridden. A <tt>level</tt>
+can be specified, which controls at what logging level the message is
+filtered at. 
+<p> 
+The task can also echo to a file, in which case the option to append rather
+than overwrite the file is available, and the <tt>level</tt> option is 
+ignored</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">the message to echo.</td>
+    <td valign="top" align="center">Yes, unless data is included in a
+      character section within this element.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file to write the message to.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Append to an existing file?</td>
+    <td valign="top" align="center">No - default is false.</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Control the level at which this message is reported.
+            One of "error", "warning", "info", "verbose", "debug"</td>
+    <td valign="top" align="center">No - default is "warning".</td>
+  </tr>
+  
+  
+  
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;echo message=&quot;Hello, world&quot;/&gt;
+</pre>
+<pre>
+&lt;echo message=&quot;Embed a line break:${line.separator}&quot;/&gt;
+</pre>
+<pre>
+&lt;echo&gt;Embed another:${line.separator}&lt;/echo&gt;
+</pre>
+<pre>
+&lt;echo&gt;This is a longer message stretching over
+two lines.
+&lt;/echo&gt;
+</pre>
+<pre>
+&lt;echo&gt;
+This is a longer message stretching over
+three lines; the first line is a blank
+&lt;/echo&gt;
+</pre>
+As XML parsers are wont to do, the first newline in the text element
+has been included in the text. 
+
+<pre>&lt;echo message=&quot;Deleting drive C:&quot; level=&quot;debug&quot;/&gt;</pre>
+A message which only appears in <tt>-debug</tt> mode.
+<pre>&lt;echo level=&quot;error&quot;&gt;
+Imminent failure in the antimatter containment facility.
+Please withdraw to safe location at least 50km away.  
+&lt;/echo&gt;
+</pre>
+A message which appears even in <tt>-quiet</tt> mode.
+
+<pre>&lt;echo file="runner.csh" append="false"&gt;#\!/bin/tcsh
+java-1.3.1 -mx1024m ${project.entrypoint} $$*
+</echo></pre>
+Generate a shell script by echoing to a file.
+Note the use of a double $ symbol to stop Ant
+filtering out the single $ during variable expansion   
+<hr>
+
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/exec.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/exec.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/exec.html	(revision 14989)
@@ -0,0 +1,369 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Exec Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="exec">Exec</a></h2>
+<h3>Description</h3>
+<p>Executes a system command. When the <i>os</i> attribute is specified, then
+the command is only executed when Ant is run on one of the specified operating
+systems.</p>
+
+<p>Note that you cannot interact with the forked program, the only way
+to send input to it is via the input and inputstring attributes. Also note that
+in Ant 1.6, any attempt to read input in the forked program will receive an
+EOF (-1). This is a change from Ant 1.5, where such an attempt would block.</p>
+
+<h4>Cygwin Users</h4>
+<p>In general the &lt;exec&gt; task will not understand paths such as /bin/sh for
+the executable parameter. This is because the Java VM in which Ant is running is a
+Windows executable and is not aware of Cygwin conventions.
+</p>
+
+<h4>OpenVMS Users</h4>
+<p>The command specified using <code>executable</code> and
+<code>&lt;arg&gt;</code> elements is executed exactly as specified
+inside a temporary DCL script.  This has some implications:
+<ul>
+<li>paths have to be written in VMS style</li>
+<li>if your <code>executable</code> points to a DCL script remember to
+prefix it with an <code>@</code>-sign
+(e.g. <code>executable="@[FOO]BAR.COM"</code>), just as you would in a
+DCL script</li>
+</ul>
+For <code>&lt;exec&gt;</code> to work in an environment with a Java VM
+older than version 1.4.1-2 it is also <i>required</i> that the logical
+<code>JAVA$FORK_SUPPORT_CHDIR</code> is set to <code>TRUE</code> in
+the job table (see the <i>JDK Release Notes</i>).</p>
+
+<p>Please note that the Java VM provided by HP doesn't follow OpenVMS'
+conventions of exit codes.  If you run a Java VM with this task, the
+task may falsely claim that an error occured (or silently ignore an
+error).  Don't use this task to run <code>JAVA.EXE</code>, use a
+<code>&lt;java&gt;</code> task with the <code>fork</code> attribute
+set to <code>true</code> instead as this task will follow the VM's
+interpretation of exit codes.</p>
+
+<h4>RedHat S/390 Users</h4>
+
+<p>It has been <a
+href="http://listserv.uark.edu/scripts/wa.exe?A1=ind0404&L=vmesa-l#33">reported
+on the VMESA-LISTSERV</a> that shell scripts invoked via the Ant Exec
+task must have their interpreter specified, i.e., the scripts must
+start with something like:
+
+<blockquote>
+<pre>
+#!/bin/bash
+</pre>
+</blockquote>
+
+or the task will fail as follows:
+
+<blockquote>
+<pre>
+[exec] Warning: UNIXProcess.forkAndExec native error: Exec format error
+[exec] Result: 255
+</pre>
+</blockquote>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">the command to execute with all command line
+      arguments. <b>deprecated, use executable and nested
+      <code>&lt;arg&gt;</code> elements instead</b>.</td>
+    <td align="center" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">the command to execute without any command line
+      arguments.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory in which the command should be executed.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">os</td>
+    <td valign="top">list of Operating Systems on which the command may be
+      executed. If the current OS's name is contained in this list, the command will
+      be executed. The OS's name is determined by the Java Virtual machine and is set
+      in the &quot;os.name&quot; system property.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">spawn</td>
+    <td valign="top">whether or not you want the command to be spawned<br/>
+    Default is false.<br>
+    If you spawn a command, its output will not be logged by ant.<br/>
+    The input, output, error, and result property settings are not active when spawning a process.<br>
+    <em>since Ant 1.6</em>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output. If the error stream
+      is not also redirected to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the
+    command should be redirected.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error output in Ant's
+                     log and you are redirecting output to a file/property. The error
+                     output will not be included in the output file/property. If you
+                     redirect error with the &quot;error&quot; or &quot;errorProperty&quot;
+                     attributes, this will have no effect.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output and error files should be appended to or overwritten.
+    Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the
+      command should be stored. Unless the error stream is redirected to a separate
+      file or stream, this property will include the error output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the
+      command should be stored.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard input
+                     is taken. This attribute is mutually exclusive with the
+                     inputstring attribute.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+                     executed command. This attribute is mutually exclusive with the
+                     input attribute.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resultproperty</td>
+    <td valign="top">the name of a property in which the return code of the
+      command should be stored. Only of interest if failonerror=false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+      specified time (given in milliseconds).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      return code signaling failure. Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failifexecutionfails</td>
+    <td valign="top">Stop the build if we can't start the program.
+      Defaults to true. </td>
+    <td align="center" valign="top">No</td>
+  </tr>  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate old environment when new environment
+      variables are specified.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">vmlauncher</td>
+    <td valign="top">Run command using the Java VM's execution facilities
+        where available. If set to false the underlying OS's shell,
+        either directly or through the antRun scripts, will be used.
+        Under some operating systems, this gives access to facilities
+        not normally available through the VM including, under Windows,
+        being able to execute scripts, rather than their associated
+        interpreter.  If you want to specify the name of the
+        executable as a relative path to the directory given by the
+        dir attribute, it may become necessary to set vmlauncher to
+        false as well.</td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">resolveExecutable</td>
+    <td valign="top">When this attribute is true, the name of the executable
+                     if resolved firstly against the project basedir and
+                     if that does not exist, against the execution
+                     directory if specified. On Unix systems, if you only
+                     want to allow execution of commands in the user's path,
+                     set this to false.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;exec dir=&quot;${src}&quot; executable=&quot;cmd.exe&quot; os=&quot;Windows 2000&quot; output=&quot;dir.txt&quot;&gt;
+  &lt;arg line=&quot;/c dir&quot;/&gt;
+&lt;/exec&gt;</pre>
+</blockquote>
+<h3>Parameters specified as nested elements</h3>
+<h4>arg</h4>
+<p>Command line arguments should be specified as nested
+<code>&lt;arg&gt;</code> elements. See <a
+href="../using.html#arg">Command line arguments</a>.</p>
+<a name="env"></a><h4>env</h4>
+<p>It is possible to specify environment variables to pass to the
+system command via nested <code>&lt;env&gt;</code> elements.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">key</td>
+    <td valign="top">The name of the environment variable.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The literal value for the environment variable.</td>
+    <td align="center" rowspan="3">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">The value for a PATH like environment
+      variable. You can use ; or : as path separators and Ant will
+      convert it to the platform's local conventions.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The value for the environment variable. Will be
+      replaced by the absolute filename of the file by Ant.</td>
+  </tr>
+</table>
+<a name="redirector"></a><h4>redirector</h4>
+<i><b>Since Ant 1.6.2</b></i>
+<p>A nested <a href="../CoreTypes/redirector.html">I/O Redirector</a>
+can be specified.  In general, the attributes of the redirector behave
+as the corresponding attributes available at the task level.  The most
+notable peculiarity stems from the retention of the &lt;exec&gt;
+attributes for backwards compatibility.  Any file mapping is done
+using a <CODE>null</CODE> sourcefile; therefore not all
+<a href="../CoreTypes/mapper.html">Mapper</a> types will return
+results.  When no results are returned, redirection specifications
+will fall back to the task level attributes.  In practice this means that
+defaults can be specified for input, output, and error output files.
+</p>
+<h3>Errors and return codes</h3>
+By default the return code of a &lt;exec&gt; is ignored; when you set
+<code>failonerror="true"</code> then any return code signaling failure
+(OS specific) causes the build to fail. Alternatively, you can set
+<code>resultproperty</code> to the name of a property and have it assigned to
+the result code (barring immutability, of course).
+<p>
+If the attempt to start the program fails with an OS dependent error code,
+then &lt;exec&gt; halts the build unless <code>failifexecutionfails</code>
+is set to <code>false</code>. You can use that to run a program if it exists, but
+otherwise do nothing.
+<p>
+What do those error codes mean? Well, they are OS dependent. On Windows
+boxes you have to look in include\error.h in your windows compiler or wine files;
+error code 2 means 'no such program', which usually means it is not on the path.
+Any time you see such an error from any ant task, it is usually not an ant bug,
+but some configuration problem on your machine.
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;exec executable=&quot;emacs&quot;&gt;
+  &lt;env key=&quot;DISPLAY&quot; value=&quot;:1.0&quot;/&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+<p>starts <code>emacs</code> on display 1 of the X Window System.</p>
+
+<blockquote><pre>
+&lt;exec ... &gt;
+  &lt;env key=&quot;PATH&quot; path=&quot;${java.library.path}:${basedir}/bin&quot;/&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+<p>adds <code>${basedir}/bin</code> to the <code>PATH</code> of the
+system command.</p>
+
+<blockquote><pre>
+&lt;property name="browser" location="C:/Programme/Internet Explorer/iexplore.exe"/&gt;
+&lt;property name="file" location="ant/docs/manual/index.html"/&gt;
+
+&lt;exec executable="${browser}" spawn="true"&gt;
+    &lt;arg value="${file}"/&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+<p>Starts the <i>${browser}</i> with the specified <i>${file}</i> and end the
+ant process. The browser will let be open.</p>
+
+<blockquote><pre>
+&lt;exec executable=&quot;cat&quot;&gt;
+    &lt;redirector outputproperty=&quot;redirector.out&quot;
+                errorproperty=&quot;redirector.err&quot;
+                inputstring=&quot;blah before blah&quot;&gt;
+        &lt;inputfilterchain&gt;
+            &lt;replacestring from=&quot;before&quot; to=&quot;after&quot; /&gt;
+        &lt;/inputfilterchain&gt;
+        &lt;outputmapper type=&quot;merge&quot; to=&quot;redirector.out&quot; /&gt;
+        &lt;errormapper type=&quot;merge&quot; to=&quot;redirector.err&quot; /&gt;
+    &lt;/redirector&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+
+Sends the string &quot;blah before blah&quot; to the &quot;cat&quot; executable,
+using an <a href="../CoreTypes/filterchain.html">&lt;inputfilterchain&gt;</a>
+to replace &quot;before&quot; with &quot;after&quot; on the way in.
+Output is sent to the file &quot;redirector.out&quot; and stored
+in a property of the same name.  Similarly, error output is sent to
+a file and a property, both named &quot;redirector.err&quot;.
+
+
+<p><b>Note:</b> Although it may work for you to specify arguments using
+a simple arg-element and separate them by spaces it may fail if you switch to
+a newer version of the JDK. JDK &lt; 1.2 will pass these as separate arguments
+to the program you are calling, JDK &gt;= 1.2 will pass them as a single
+argument and cause most calls to fail.</p>
+<p><b>Note2:</b> If you are using Ant on Windows and a new DOS-Window pops up
+for every command which is executed this may be a problem of the JDK you are using.
+This problem may occur with all JDK's &lt; 1.2.</p>
+<p>
+<b>Timeouts: </b> If a timeout is specified, when it is reached the
+sub process is killed and a message printed to the log. The return
+value of the execution will be "-1", which will halt the build if
+<tt>failonerror=true</tt>, but be ignored otherwise.
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/fail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/fail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/fail.html	(revision 14989)
@@ -0,0 +1,115 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Fail Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="fail">Fail</a></h2>
+<h3>Description</h3>
+<p>Exits the current build (just throwing a BuildException), optionally printing additional information.</p>
+<p>The message of the Exception can be set via the message attribute
+or character data nested into the element.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">A message giving further information on why the build exited</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only fail if a property of the given name exists
+      in the current project</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only fail if a property of the given name doesn't
+      exist in the current project</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">status</td>
+    <td valign="top">Exit using the specified status code;
+      assuming the generated Exception is not caught, the
+      JVM will exit with this status. <em>Since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<p>As an alternative to the <i>if</i>/<i>unless</i> attributes,
+  conditional failure can be achieved using a single nested
+  &lt;condition&gt; element, which should contain exactly one
+  core or custom condition.  For information about conditions, see
+  <a href="conditions.html">here</a>.<br /><b>Since Ant 1.6.2</b>
+</p>
+
+<h3>Examples</h3>
+<pre>  &lt;fail/&gt;</pre>
+<p>will exit the current build with no further information given.</p>
+<pre>
+BUILD FAILED
+
+build.xml:4: No message
+</pre>
+
+<pre>  &lt;fail message=&quot;Something wrong here.&quot;/&gt;</pre>
+<p>will exit the current build and print something
+  like the following to wherever your output goes:
+</p>
+<pre>
+BUILD FAILED
+
+build.xml:4: Something wrong here.
+</pre>
+
+<pre>  &lt;fail&gt;Something wrong here.&lt;/fail&gt;</pre>
+<p>will give the same result as above.</p>
+
+<pre>  &lt;fail unless=&quot;thisdoesnotexist&quot;/&gt;</pre>
+<p>will exit the current build and print something
+  like the following to wherever your output goes:
+</p>
+<pre>
+BUILD FAILED
+
+build.xml:2: unless=thisdoesnotexist
+</pre>
+
+Using a condition to achieve the same effect:
+
+<pre>
+  &lt;fail&gt;
+     &lt;condition&gt;
+       &lt;not&gt;
+         &lt;isset property=&quot;thisdoesnotexist&quot;/&gt;
+       &lt;/not&gt;
+     &lt;/condition&gt;
+   &lt;/fail&gt;
+</pre>
+
+<p>Output:</p>
+<pre>
+BUILD FAILED
+
+build.xml:2: condition satisfied
+</pre>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2001,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/filter.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/filter.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/filter.html	(revision 14989)
@@ -0,0 +1,64 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Filter Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="filter">Filter</a></h2>
+<h3>Description</h3>
+<p>Sets a token filter for this project or read multiple token filter from
+an input file and sets these as filters.
+Token filters are used by all tasks that perform file copying operations
+through the Project commodity methods.</p>
+<p>Note 1: the token string must not contain the separators chars (@).<br>
+Note 2: Either token and value attributes must be provided, or only the
+filtersfile attribute.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">token</td>
+    <td valign="top">the token string without @</td>
+    <td align="center" valign="top">Yes*</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the string that should be put to replace the token when the 
+      file is copied</td>
+    <td align="center" valign="top">Yes*</td>
+  </tr>
+  <tr>
+    <td valign="top">filtersfile</td>
+    <td valign="top">The file from which the filters must be read. This file must be a formatted as a property file. </td>
+    <td align="center" valign="top">Yes*</td>
+  </tr>
+</table>
+<p>* see notes 1 and 2 above parameters table.</p>
+<h3>Examples</h3>
+<pre>  &lt;filter token=&quot;year&quot; value=&quot;2000&quot;/&gt;
+  &lt;copy todir=&quot;${dest.dir}&quot; filtering=&quot;true&quot;&gt;
+    &lt;fileset dir=&quot;${src.dir}&quot;/&gt;
+  &lt;/copy&gt;</pre> 
+<p>will copy recursively all the files from the <i>src.dir</i> directory into
+the <i>dest.dir</i> directory replacing all the occurrences of the string <i>@year@</i>
+with <i>2000.</i></p>
+<pre>  &lt;filter filtersfile=&quot;deploy_env.properties&quot;/&gt;</pre>
+will read all property entries from the <i>deploy_env.properties</i> file
+and set these as filters.
+
+<hr>
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/fixcrlf.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/fixcrlf.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/fixcrlf.html	(revision 14989)
@@ -0,0 +1,285 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>FixCRLF Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="fixcrlf">FixCRLF</a></h2>
+<h3>Description</h3>
+      <p>
+	Adjusts a text file to local conventions.
+      </p>
+
+      <p>
+	The set of files to be adjusted can be refined with the
+	<i>includes</i>, <i>includesfile</i>, <i>excludes</i>,
+	<i>excludesfile</i> and <i>defaultexcludes</i>
+	attributes. Patterns provided through the <i>includes</i> or
+	<i>includesfile</i> attributes specify files to be
+	included. Patterns provided through the <i>exclude</i> or
+	<i>excludesfile</i> attribute specify files to be
+	excluded. Additionally, default exclusions can be specified with
+	the <i>defaultexcludes</i> attribute. See the section on <a
+	href="../dirtasks.html#directorybasedtasks">directory based
+	tasks</a>, for details of file inclusion/exclusion patterns
+	and their usage.
+      </p>
+
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+
+      <p>
+	The output file is only written if it is a new file, or if it
+	differs from the existing file.  This prevents spurious
+	rebuilds based on unchanged files which have been regenerated
+	by this task.
+      </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">Where to find the files to be fixed up.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destDir</td>
+    <td valign="top">Where to place the corrected files.  Defaults to
+      srcDir (replacing the original file)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+	<tr>
+	  <td valign="top">eol</td>
+	  <td valign="top">
+	    Specifies how end-of-line (EOL) characters are to be
+	    handled.  The EOL characters are CR, LF and the pair CRLF.
+	    Valid values for this property are:
+	    <ul>
+	      <li>asis: leave EOL characters alone</li>
+	      <li>cr: convert all EOLs to a single CR</li>
+	      <li>lf: convert all EOLs to a single LF</li>
+	      <li>crlf: convert all EOLs to the pair CRLF</li>
+	      <li>mac: convert all EOLs to a single CR</li>
+	      <li>unix: convert all EOLs to a single LF</li>
+	      <li>dos: convert all EOLs to the pair CRLF</li>
+	    </ul>
+	    Default is based on the platform on which you are running
+	    this task.  For Unix platforms, the default is &quot;lf&quot;.
+	    For DOS based systems (including Windows), the default is
+	    &quot;crlf&quot;.  For Mac OS, the default is &quot;cr&quot;.
+	    <p>
+	      This is the preferred method for specifying EOL.  The
+	      &quot;<i><b>cr</b></i>&quot; attribute (see below) is
+	      now deprecated.
+	    </p>
+	    <p>
+	      <i>N.B.</i>: One special case is recognized. The three
+	      characters CR-CR-LF are regarded as a single EOL.
+	      Unless this property is specified as &quot;asis&quot;,
+	      this sequence will be converted into the specified EOL
+	      type.
+	    </p>
+	  </td>
+	  <td valign="top" align="center">No</td>
+	</tr>
+	<tr>
+	  <td valign="top">cr</td>
+	  <td valign="top">
+	    <i><b>Deprecated.</b></i> Specifies how CR characters are
+	    to be handled at end-of-line (EOL).  Valid values for this
+	    property are:
+	    <ul>
+	      <li>asis: leave EOL characters alone.</li>
+	      <li>
+		add: add a CR before any single LF characters. The
+		intent is to convert all EOLs to the pair CRLF.
+	      </li>
+	      <li>
+		remove: remove all CRs from the file.  The intent is
+		to convert all EOLs to a single LF.
+	      </li>
+	    </ul>
+	    Default is based on the platform on which you are running
+	    this task.  For Unix platforms, the default is &quot;remove&quot;.
+	    For DOS based systems (including Windows), the default is
+	    &quot;add&quot;.
+	    <p>
+	      <i>N.B.</i>: One special case is recognized. The three
+	      characters CR-CR-LF are regarded as a single EOL.
+	      Unless this property is specified as &quot;asis&quot;,
+	      this sequence will be converted into the specified EOL
+	      type.
+	    </p>
+	  </td>
+	  <td valign="top" align="center">No</td>
+	</tr>
+	<tr>
+	  <td valign="top">javafiles</td>
+	  <td valign="top">
+	    Used only in association with the
+	    &quot;<i><b>tab</b></i>&quot; attribute (see below), this
+	    boolean attribute indicates whether the fileset is a set
+	    of java source files
+	    (&quot;yes&quot;/&quot;no&quot;). Defaults to
+	    &quot;no&quot;.  See notes in section on &quot;tab&quot;.
+	  </td>
+	  <td valign="top" align="center">No</td>
+	</tr>
+	<tr>
+    <td valign="top">tab</td>
+    <td valign="top">Specifies how tab characters are to be handled.  Valid
+      values for this property are:
+      <ul>
+      <li>add: convert sequences of spaces which span a tab stop to tabs</li>
+      <li>asis: leave tab and space characters alone</li>
+      <li>remove: convert tabs to spaces</li>
+      </ul>
+      Default for this parameter is &quot;asis&quot;.
+	    <p>
+	      <i>N.B.</i>: When the attribute
+	      &quot;<i><b>javafiles</b></i>&quot; (see above) is
+	      &quot;true&quot;, literal TAB characters occurring
+	      within Java string or character constants are never
+	      modified.  This functionality also requires the
+	      recognition of Java-style comments.
+	    </p>
+      <p>
+		<i>N.B.</i>: There is an incompatibility between this
+		and the previous version in the handling of white
+		space at the end of lines.  This version does
+		<i><b>not</b></i> remove trailing whitespace on lines.
+</p>
+      </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tablength</td>
+    <td valign="top">TAB character interval. Valid values are between
+	      2 and 80 inclusive.  The default for this parameter is 8.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">eof</td>
+    <td valign="top">Specifies how DOS end of file (control-Z) characters are
+      to be handled.  Valid values for this property are:
+      <ul>
+      <li>add: ensure that there is an EOF character at the end of the file</li>
+      <li>asis: leave EOF characters alone</li>
+      <li>remove: remove any EOF character found at the end</li>
+      </ul>
+      Default is based on the platform on which you are running this task.
+      For Unix platforms, the default is remove.  For DOS based systems
+      (including Windows), the default is asis.
+      </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the files</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">fixlast</td>
+    <td valign="top">Whether to add a missing EOL to the last line
+                     of a processed file. (Since ant 1.6.1)</td>
+    <td align="center">No - default is <i>true</i></td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
+       eol=&quot;lf&quot; 
+       eof=&quot;remove&quot;
+       includes=&quot;**/*.sh&quot;
+  /&gt;</pre>
+<p>Replaces EOLs with LF characters and removes eof characters from
+	the shell scripts.  Tabs and spaces are left as is.</p>
+<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
+       eol=&quot;crlf&quot;
+       includes=&quot;**/*.bat&quot;
+  /&gt;</pre>
+<p>Replaces all EOLs with cr-lf pairs in the batch files.
+Tabs and spaces are left as is.
+EOF characters are left alone if run on
+DOS systems, and are removed if run on Unix systems.</p>
+<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
+       tab=&quot;add&quot;
+       includes=&quot;**/Makefile&quot;
+  /&gt;</pre>
+<p>Sets EOLs according to local OS conventions, and
+converts sequences of spaces and tabs to the minimal set of spaces and
+	tabs which will maintain spacing within the line.  Tabs are
+	set at 8 character intervals.  EOF characters are left alone if
+run on DOS systems, and are removed if run on Unix systems.
+Many versions of make require tabs prior to commands.</p>
+      <pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
+       tab=&quot;remove&quot;
+       tablength=&quot;3&quot;
+       eol=&quot;lf&quot;
+       javafiles=&quot;yes&quot;
+       includes=&quot;**/*.java&quot;
+  /&gt;</pre>
+      <p>
+	Converts all EOLs in the included java source files to a
+	single LF.  Replace all TAB characters except those in string
+	or character constants with spaces, assuming a tab width of 3.
+	If run on a unix system, any CTRL-Z EOF characters at the end
+	of the file are removed.  On DOS/Windows, any such EOF
+	characters will be left untouched.
+      </p>
+<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
+       tab=&quot;remove&quot;
+       includes=&quot;**/README*&quot;
+  /&gt;</pre>
+<p>Sets EOLs according to local OS conventions, and
+converts all tabs to spaces, assuming a tab width of 8.
+EOF characters are left alone if run on
+DOS systems, and are removed if run on Unix systems.
+You never know what editor a user will use to browse README's.</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/genkey.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/genkey.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/genkey.html	(revision 14989)
@@ -0,0 +1,110 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>GenKey Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="genkey">GenKey</a></h2>
+<h3>Description</h3>
+<p>Generates a key in keystore. This task needs Java1.2 or later</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">alias</td>
+    <td valign="top">the alias to add under</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">storepass</td>
+    <td valign="top">password for keystore integrity. Must
+	be at least 6 characters long</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">keystore</td>
+    <td valign="top">keystore location</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">storetype</td>
+    <td valign="top">keystore type</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keypass</td>
+    <td valign="top">password for private key (if different)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sigalg</td>
+    <td valign="top">the algorithm to use in signing</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keyalg</td>
+    <td valign="top">the method to use when generating name-value pair</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">(true | false) verbose output when signing</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dname</td>
+    <td valign="top">The distinguished name for entity</td>
+    <td valign="top" align="center">Yes if dname element unspecified</td>
+  </tr>
+  <tr>
+    <td valign="top">validity</td>
+    <td valign="top">(integer) indicates how many days certificate is valid</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keysize</td>
+    <td valign="top">(integer) indicates the size of key generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p>Alternatively you can specify the distinguished name by creating a
+sub-element named dname and populating it with param elements that
+have a name and a value. When using the subelement it is automatically
+encoded properly and commas (&quot;<code>,</code>&quot;) are replaced
+with &quot;<code>\,</code>&quot;.</p>
+
+<p>The following two examples are identical: </p>
+
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;genkey alias=&quot;apache-group&quot; storepass=&quot;secret&quot; 
+  dname=&quot;CN=Ant Group, OU=Jakarta Division, O=Apache.org, C=US&quot;/&gt;</code></p>
+</blockquote>
+
+<blockquote>
+  <pre><code>&lt;genkey alias=&quot;apache-group&quot; storepass=&quot;secret&quot; &gt;
+  &lt;dname&gt;
+    &lt;param name=&quot;CN&quot; value=&quot;Ant Group&quot;/&gt;
+    &lt;param name=&quot;OU&quot; value=&quot;Jakarta Division&quot;/&gt;
+    &lt;param name=&quot;O&quot;  value=&quot;Apache.Org&quot;/&gt;
+    &lt;param name=&quot;C&quot;  value=&quot;US&quot;/&gt;
+  &lt;/dname&gt;
+&lt;/genkey&gt;</code></pre>
+</blockquote>
+<hr>
+<p align="center">Copyright &copy; 2000-2001,2003 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/get.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/get.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/get.html	(revision 14989)
@@ -0,0 +1,111 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Get Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="get">Get</a></h2>
+<h3>Description</h3>
+<p>Gets a file from a URL. When the verbose option is &quot;on&quot;, this task
+displays a '.' for every 100 Kb retrieved. Any URL schema supported by
+the runtime is valid here, including http:, ftp: and jar:; 
+https: is only valid if the appropriate support is added to the pre-1.4 Java
+runtimes. 
+ 
+</p>
+<p>This task should be preferred above the <a href="cvs.html">CVS task</a> when
+fetching remote content. CVS is significantly slower than loading a compressed
+archive compared to http/ftp.</p>
+
+The <i>usetimestamp</i> option enables you to control downloads so that the remote file is
+only fetched if newer than the local copy. If there is no local copy, the download always takes 
+place. When a file is downloaded, the timestamp of the downloaded file is set to the remote timestamp,
+if  the JVM is Java1.2 or later. 
+NB: This timestamp facility only works on downloads using the HTTP protocol. 
+<p>
+A username and password can be specified, in which case basic 'slightly encoded
+plain text' authentication is used. This is only a secure authentication
+mechanism over an HTTPS link.
+<p>
+If you need to go through a firewall, use
+<a href="../OptionalTasks/setproxy.html">&lt;setproxy&gt;</a>
+to set up the proxy first. 
+</p>
+ 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the URL from which to retrieve a file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the file where to store the retrieved file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">show verbose progress information (&quot;on&quot;/&quot;off&quot;).</td>
+    <td align="center" valign="top">No; default "false"</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoreerrors</td>
+    <td valign="top">Log errors but don't treat as fatal.</td>
+    <td align="center" valign="top">No; default "false"</td>
+  </tr>
+  <tr>
+    <td valign="top">usetimestamp</td>
+    <td valign="top">conditionally download a file based on the timestamp of the
+    local copy. HTTP only</td>
+    <td align="center" valign="top">No; default "false"</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">username for 'BASIC' http authentication</td>
+    <td align="center" valign="top">if password is set</td>
+  </tr>  
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">password: required </td>
+    <td align="center" valign="top">if username is set</td>
+  </tr>  
+
+</table>
+<h3>Examples</h3>
+<pre>  &lt;get src=&quot;http://ant.apache.org/&quot; dest=&quot;help/index.html&quot;/&gt;</pre>
+<p>Gets the index page of http://ant.apache.org/, and stores it in the file <code>help/index.html</code>.</p>
+
+<pre>  &lt;get src=&quot;http://www.apache.org/dist/ant/KEYS&quot; 
+    dest=&quot;KEYS&quot; 
+    verbose=&quot;true&quot;
+    usetimestamp=&quot;true&quot;/&gt;</pre>
+<p>
+Gets the PGP keys of Ant's (current and past) release managers, if the local copy
+is missing or out of date. Uses the verbose option 
+for progress information.
+</p>
+
+<pre>  &lt;get src=&quot;https://insecure-bank.org/statement/user=1214&quot; 
+    dest=&quot;statement.html&quot; 
+    username="1214";
+    password="secret"/&gt;</pre>
+<p>
+Fetches some file from a server with access control. Because https is being used the
+fact that basic auth sends passwords in plaintext is moot.
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/gunzip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/gunzip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/gunzip.html	(revision 14989)
@@ -0,0 +1,13 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>GUnZip Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+This document's new home is <A HREF="unpack.html">here</A>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/gzip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/gzip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/gzip.html	(revision 14989)
@@ -0,0 +1,13 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>GZip Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+This document's new home is <A HREF="pack.html">here</A>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/import.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/import.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/import.html	(revision 14989)
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Import Task</title>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+  <h2><a name="import">Import</a></h2>
+  <h3>Description</h3>
+  <p>
+    Imports another build file into the current project.
+  </p>
+  <p>
+    On execution it will read another Ant file into
+    the same Project. This means that it basically works like the 
+    <a href="http://ant.apache.org/faq.html#xml-entity-include">Entity
+      Includes as explained in the Ant FAQ</a>, as if the imported file was
+    contained in the importing file, minus the top <code>&lt;project&gt;</code>
+    tag.
+  </p>
+  <p>
+    The import task may only be used as a top-level task. This means that
+    it may not be used in a target.
+  </p>
+  <p>
+There are two further functional aspects that pertain to this task and
+that are not possible with entity includes:
+<ul>
+  <li>target overriding</li>
+  <li>special properties</li>
+</ul>
+  </p>
+<h4>Target overriding</h4>
+
+<p>If a target in the main file is also present in at least one of the
+imported files, it takes precedence.</p>
+
+<p>So if I import for example a <i>docsbuild.xml</i> file named <b>builddocs</b>,
+that contains a &quot;<b>docs</b>&quot; target, I can redefine it in my main
+buildfile and that is the one that will be called. This makes it easy to
+keep the same target name, so that the overriding target is still called
+by any other targets--in either the main or imported buildfile(s)--for which
+it is a dependency, with a different implementation. The original target is
+made available by the name &quot;<b>builddocs</b><b>.docs</b>&quot;.
+This enables the new implementation to call the old target, thus
+<i>enhancing</i> it with tasks called before or after it.</p>
+
+<h4>Special Properties</h4>
+
+<p>Imported files are treated as they are present in the main
+buildfile. This makes it easy to understand, but it makes it impossible
+for them to reference files and resources relative to their path.
+Because of this, for every imported file, Ant adds a property that
+contains the path to the imported buildfile. With this path, the
+imported buildfile can keep resources and be able to reference them
+relative to its position.</p>
+
+<p>So if I import for example a <i>docsbuild.xml</i> file named <b>builddocs</b>,
+I can get its path as <b>ant.file.builddocs</b>, similarly to the <b>ant.file</b>
+property of the main buildfile.</p>
+
+<p>Note that &quot;builddocs&quot; is not the filename, but the name attribute
+present in the imported project tag.</p>
+
+<h4>Resolving files against the imported file</h4>
+
+<p>Suppose your main build file called <code>importing.xml</code>
+imports a build file <code>imported.xml</code>, located anywhere on
+the file system, and <code>imported.xml</code> reads a set of
+properties from <code>imported.properties</code>:</p>
+
+<pre>&lt;!-- importing.xml --&gt;
+&lt;project name="importing" basedir="." default="..."&gt;
+&nbsp; &lt;import file="${path_to_imported}/imported.xml"/&gt;
+&lt;/project&gt;
+
+&lt;!-- imported.xml --&gt;
+&lt;project name="imported" basedir="." default="..."&gt;
+&nbsp; &lt;property file="imported.properties"/&gt;
+&lt;/project&gt;
+</pre>
+
+<p>This snippet however will resolve <code>imported.properties</code>
+against the basedir of <code>importing.xml</code>, because the basedir
+of <code>imported.xml</code> is ignored by Ant. The right way to use
+<code>imported.properties</code> is:</p>
+
+<pre>
+&lt;!-- imported.xml --&gt;
+&lt;project name="imported" basedir="." default="..."&gt;
+&nbsp; &lt;dirname property="imported.basedir" file="${ant.file.imported}"/&gt;
+&nbsp; &lt;property file="${imported.basedir}/imported.properties"/&gt;
+&lt;/project&gt;
+</pre>
+
+<p>As explained above <code>${ant.file.imported}</code> stores the
+path of the build script, that defines the project called
+<code>imported</code>, (in short it stores the path to
+<code>imported.xml</code>) and <a
+href="dirname.html"><code>&lt;dirname&gt;</code></a> takes its
+directory. This technique also allows <code>imported.xml</code> to be
+used as a standalone file (without being imported in other
+project).</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody>
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">
+        file
+      </td>
+      <td valign="top">
+        The file to import. If this is a relative file name, the file name will be resolved
+        relative to the <i>importing</i> file. <b>Note</b>, this is unlike most other
+        ant file attributes, where relative files are resolved relative to ${basedir}.
+      </td>
+      <td valign="top" align="center">Yes</td>
+    </tr>
+    <tr>
+      <td valign="top">
+        optional
+      </td>
+      <td valign="top">
+        If true, do not stop the build if the file does not exist,
+        default is false.
+      </td>
+      <td valign="top" align="center">No</td>
+    </tr>
+  </tbody>
+</table>
+
+<h3>Examples</h3>
+<pre>&nbsp; &lt;import file=&quot;../common-targets.xml&quot; /&gt;
+</pre>
+
+<p>Imports targets from the common-targets.xml file that is in a parent
+directory.</p>
+
+<pre>&nbsp; &lt;import file=&quot;${deploy-platform}.xml&quot; /&gt;
+</pre>
+
+<p>Imports the project defined by the property deploy-platform</p>
+
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software
+Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/input.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/input.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/input.html	(revision 14989)
@@ -0,0 +1,122 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Input Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="input">Input</a></h2>
+<h3>Description</h3>
+
+<p>Allows user interaction during the build process by prompting for
+input.  To do so, it uses the configured 
+<a href="../inputhandler.html">InputHandler</a>.</p>
+
+<p>The prompt can be set via the message attribute or as character
+data nested into the element.</p>
+
+<p>Optinonally a set of valid imput arguments can be defined via the
+validargs attribute. Input task will no accept value that don't match
+one of the predefined.</p>
+
+<p>Optionally a property can be created from the value entered by the
+user. This property can then be used during the following build
+run. Input behaves according to <a href="property.html">property
+task</a> which means that existing properties cannot be overriden.
+Since Ant 1.6, <code>&lt;input&gt;</code> will not prompt for input if
+a property should be set by the task that has already been set in the
+project (and the task wouldn't have any effect).</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">the Message which gets displayed to the user
+    during the build run.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">validargs</td>
+    <td valign="top">comma separated String containing valid input
+    arguments. If set, input task will reject any input not defined
+    here.  Validargs are compared case sensitive. If you want 'a' and
+    'A' to be accepted you will need to define both arguments within
+    validargs.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">addproperty</td>
+    <td valign="top">the name of a property to be created from
+    input. Behaviour is equal to <a href="property.html">property
+    task</a> which means that existing properties cannot be
+    overriden.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultvalue</td>
+    <td valign="top">Defines the default value of the property to be
+    created from input.  Property value will be set to default if no
+    input is received.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;input/&gt;</pre>
+<p>Will pause the build run until return key is pressed when using the
+<a href="../inputhandler.html#defaulthandler">default
+InputHandler</a>, the concrete behavior is defined by the InputHandler
+implementation you use.</p>
+<pre>  &lt;input&gt;Press Return key to continue...&lt;/input&gt;</pre>
+<p>Will display the message &quot;Press Return key to
+continue...&quot; and pause the build run until return key is pressed
+(again, the concrete behavior is implementation dependent).</p>
+<pre>  &lt;input
+    message=&quot;Press Return key to continue...&quot;
+  /&gt;</pre>
+<p>Will display the message &quot;Press Return key to
+continue...&quot; and pause the build run until return key is pressed
+(see above).</p>
+<pre>
+  &lt;input
+    message=&quot;All data is going to be deleted from DB continue (y/n)?&quot;
+    validargs=&quot;y,n&quot;
+    addproperty=&quot;do.delete&quot;
+  /&gt;
+  &lt;condition property=&quot;do.abort&quot;&gt;
+    &lt;equals arg1=&quot;n&quot; arg2=&quot;${do.delete}&quot;/&gt;
+  &lt;/condition&gt;
+  &lt;fail if=&quot;do.abort&quot;&gt;Build aborted by user.&lt;/fail&gt;
+</pre>
+<p>Will display the message &quot;All data is going to be deleted from
+DB continue (y/n)?&quot; and require 'y' to continue build or 'n' to
+exit build with following message &quot;Build aborted by
+user.&quot;.</p>
+<pre>  &lt;input
+    message=&quot;Please enter db-username:&quot;
+    addproperty=&quot;db.user&quot;
+  /&gt;</pre>
+<p>Will display the message &quot;Please enter db-username:&quot; and set the
+property <code>db.user</code> to the value entered by the user.</p>
+
+<pre>  &lt;input
+    message=&quot;Please enter db-username:&quot;
+    addproperty=&quot;db.user&quot;
+    defaultvalue=&quot;Scott-Tiger&quot;
+  /&gt;</pre>
+<p>Same as above, but will set <code>db.user</code> to the value
+<i>Scott- Tiger</i> if the user enters no value (simply types
+&lt;return&gt;).</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/jar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/jar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/jar.html	(revision 14989)
@@ -0,0 +1,308 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Jar Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="jar">Jar</a></h2>
+<h3>Description</h3>
+<p>Jars a set of files.</p>
+<p>The <i>basedir</i> attribute is the reference directory from where to jar.</p>
+<p>Note that file permissions will not be stored in the resulting jarfile.</p>
+<p>It is possible to refine the set of files that are being jarred. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>basedir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>You can also use nested file sets for more flexibility, and specify
+multiple ones to merge together different trees of files into one JAR.
+The extended fileset and groupfileset child elements from the zip task are
+also available in the jar task.
+See the <a href="zip.html">Zip</a> task for more details and examples.</p>
+<p>If the manifest is omitted, a simple one will be supplied by Ant.</p>
+
+<p>The <code>update</code> parameter controls what happens if the JAR
+file already exists. When set to <code>yes</code>, the JAR file is
+updated with the files specified. When set to <code>no</code> (the
+default) the JAR file is overwritten. An example use of this is
+provided in the <a href="zip.html">Zip task documentation</a>.  Please
+note that ZIP files store file modification times with a granularity
+of two seconds.  If a file is less than two seconds newer than the
+entry in the archive, Ant will not consider it newer.</p>
+
+<p>(The Jar task is a shortcut for specifying the manifest file of a JAR file.
+The same thing can be accomplished by using the <i>fullpath</i>
+attribute of a zipfileset in a Zip task. The one difference is that if the
+<i>manifest</i> attribute is not specified, the Jar task will
+include an empty one for you.)</p>
+
+<p>Manifests are processed by the Jar task according to the
+<a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html">Jar file specification.</a>
+Note in particular that this may result in manifest lines greater than 72 bytes
+being wrapped and continued on the next line.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the JAR file to create.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">the manifest file to use.  This can be either the location of a manifest, or the name of a jar added through a fileset.  If its the name of an added jar, the task expects the manifest to be in the jar at META-INF/MANIFEST.MF</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesetmanifest</td>
+    <td valign="top">behavior when a Manifest is found in a zipfileset or zipgroupfileset file is found.  Valid values are &quot;skip&quot;, &quot;merge&quot;, and &quot;mergewithoutmain&quot;.  &quot;merge&quot; will merge all of the manifests together, and merge this into any other specified manifests.  &quot;mergewithoutmain&quot; merges everything but the Main section of the manifests.  Default value is &quot;skip&quot;.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">whenempty</td>
+    <td valign="top">behavior when no files match.  Valid values are &quot;fail&quot;, &quot;skip&quot;, and &quot;create&quot;.  Default is &quot;skip&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">index</td>
+    <td valign="top">whether to create an <A
+    HREF="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#JAR%20Index">index
+    list</A> to speed up classloading.  This is a JDK 1.3+ specific
+    feature.  Unless you specify additional jars with nested <a
+    href="#indexjars"><code>indexjars</code></a> elements, only the
+    contents of this jar will be included in the index.  Defaults to
+    false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifestencoding</td>
+    <td valign="top">The encoding used to read the JAR manifest, when a manifest file is specified.</td>
+    <td valign="top" align="center">No, defaults to the platform encoding.</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Nested elements</h3>
+<h4>metainf</h4>
+<p>The nested <code>metainf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>META-INF</code> directory of the jar file. If this
+fileset includes a file named <code>MANIFEST.MF</code>, the file is
+ignored and you will get a warning.</p>
+
+<h4>manifest</h4>
+<p>The manifest nested element allows the manifest for the Jar file to
+be provided inline in the build file rather than in an external
+file. This element is identical to the
+<a href="manifest.html">manifest</a> task, but the file and mode
+attributes must be omitted.</p>
+<p>
+If both an inline manifest and an external file are both specified, the
+manifests are merged.
+</p>
+
+<p>When using inline manifests, the Jar task will check whether the manifest 
+contents have changed (i.e. the manifest as specified is different in any way 
+from the manifest that exists in the Jar, if it exists. 
+If the manifest values have changed the jar will be updated or rebuilt, as
+appropriate.
+</p>
+
+<a name="indexjars"></a><h4>indexjars</h4>
+
+<p><em>since ant 1.6.2</em></p>
+
+<p>The nested <code>indexjars</code> element specifies a <a
+href="../using.html#path">PATH like structure</a>.  Its content is
+completely ignored unless you set the index attribute of the task to
+true.</p>
+
+<p>The index created by this task will contain indices for the
+archives contained in this path, the names used for the archioves
+depend on your manifest:</p>
+<ul>
+  <li>If the generated jar's manifest contains no Class-Path
+  attribute, the file name without any leading directory path will be
+  used and all parts of the path will get indexed.</li>
+  <li>If the manifest contains a Class-Path attribute, this task will
+  try to guess which part of the Class-Path belongs to a given
+  archive.  If it cannot guess a name, the archive will be skipped,
+  otherwise tha name listed inside the Class-PAth attribute will be
+  used.</li>
+</ul>
+
+<p>This task will not create any index entries for archives that are
+empty or only contain files inside the META-INF directory.</p>
+
+<h3>Examples</h3>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot; basedir=&quot;${build}/classes&quot;/&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory.</p>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot;
+       basedir=&quot;${build}/classes&quot;
+       excludes=&quot;**/Test.class&quot;
+  /&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Files
+with the name <code>Test.class</code> are excluded.</p>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot;
+       basedir=&quot;${build}/classes&quot;
+       includes=&quot;mypackage/test/**&quot;
+       excludes=&quot;**/Test.class&quot;
+  /&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Only
+files under the directory <code>mypackage/test</code> are used, and files with
+the name <code>Test.class</code> are excluded.</p>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot;&gt;
+    &lt;fileset dir=&quot;${build}/classes&quot;
+             excludes=&quot;**/Test.class&quot;
+    /&gt;
+    &lt;fileset dir=&quot;${src}/resources&quot;/&gt;
+  &lt;/jar&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory and also
+in the <code>${src}/resources</code> directory together into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory.
+Files with the name <code>Test.class</code> are excluded.
+If there are files such as <code>${build}/classes/mypackage/MyClass.class</code>
+and <code>${src}/resources/mypackage/image.gif</code>, they will appear
+in the same directory in the JAR (and thus be considered in the same package
+by Java).</p>
+
+<pre>  &lt;jar destfile=&quot;test.jar&quot; basedir=&quot;.&quot;&gt;
+    &lt;include name=&quot;build&quot;/&gt;
+    &lt;manifest&gt;
+      &lt;attribute name=&quot;Built-By&quot; value=&quot;${user.name}&quot;/&gt;
+      &lt;section name=&quot;common/class1.class&quot;&gt;
+        &lt;attribute name=&quot;Sealed&quot; value=&quot;false&quot;/&gt;
+      &lt;/section&gt;
+    &lt;/manifest&gt;
+  &lt;/jar&gt;</pre>
+<p>
+This is an example of an inline manifest specification. Note that the Built-By
+attribute will take the value of the Ant property ${user.name}. The manifest
+produced by the above would look like this:
+</p>
+<pre><code>Manifest-Version: 1.0
+Built-By: conor
+Created-By: Apache Ant 1.5alpha
+
+Name: common/class1.class
+Sealed: false</code></pre>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/java.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/java.html	(revision 14989)
@@ -0,0 +1,315 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Java Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="java">Java</a></h2>
+<h3>Description</h3>
+<p>Executes a Java class within the running (Ant) VM or forks another VM if
+specified.</p>
+<p>
+If odd things go wrong when you run this task, set fork="true" to use a new
+JVM.
+
+<p>Note that you cannot interact with a forked VM, the only way to
+send input to it is via the input and inputstring attributes. Also note that
+in Ant 1.6, any attempt to read input in the forked VM will receive an
+EOF (-1). This is a change from Ant 1.5, where such an attempt would block.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the Java class to execute.</td>
+    <td align="center" valign="top">Either jar or classname</td>
+  </tr>
+  <tr>
+    <td valign="top">jar</td>
+    <td valign="top">the location of the jar file to execute (must have a
+    Main-Class entry in the manifest). Fork must be set to true if this option is selected.</td>
+    <td align="center" valign="top">Either jar or classname</td>
+  </tr>
+  <tr>
+    <td valign="top">args</td>
+    <td valign="top">the arguments for the class that is
+      executed. <b>deprecated, use nested <code>&lt;arg&gt;</code>
+      elements instead.</b></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use, given as <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">if enabled triggers the class execution in another VM
+      (disabled by default)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">spawn</td>
+    <td valign="top">if enabled allows to start a process which will outlive ant.<br/>
+    Requires fork=true, and not compatible
+    with timeout, input, output, error, result attributes.<br/>
+      (disabled by default)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvm</td>
+    <td valign="top">the command used to invoke the Java Virtual Machine,
+      default is 'java'.  The command is resolved by java.lang.Runtime.exec().
+      Ignored if fork is disabled.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmargs</td>
+    <td valign="top">the arguments to pass to the forked VM (ignored
+      if fork is disabled). <b>deprecated, use nested
+      <code>&lt;jvmarg&gt;</code> elements instead.</b></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Max amount of memory to allocate to the forked VM
+      (ignored if fork is disabled)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0. Default is "false" (see <a href="#failonerror">note</a>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resultproperty</td>
+    <td valign="top">The name of a property in which the return code of the
+      command should be stored. Only of interest if failonerror=false
+      and if fork=true.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to invoke the VM in.  (ignored if
+      fork is disabled)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output. If the error stream
+      is not also redirected to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the command should be
+      redirected. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error output in Ant's
+                     log and you are redirecting output to a file/property. The error
+                     output will not be included in the output file/property. If you
+                     redirect error with the &quot;error&quot; or &quot;errorProperty&quot;
+                     attributes, this will have no effect.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output and error files should be appended to or overwritten.
+    Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the
+      command should be stored. Unless the error stream is redirected to a separate
+      file or stream, this property will include the error output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the
+      command should be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard input
+                     is taken. This attribute is mutually exclusive with the
+                     inputstring attribute</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+                     executed command. This attribute is mutually exclusive with the
+                     input attribute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate old environment when new
+      environment variables are specified. Default is &quot;false&quot;
+      (ignored if fork is disabled).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+    specified time (given in milliseconds).  <strong>It is highly
+    recommended to use this feature only if fork is enabled.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>arg and jvmarg</h4>
+<p>Use nested <code>&lt;arg&gt;</code> and <code>&lt;jvmarg&gt;</code>
+elements to specify arguments for the Java class and the forked VM respectively.
+See <a href="../using.html#arg">Command line arguments</a>.</p>
+<h4>sysproperty</h4>
+<p>Use nested <code>&lt;sysproperty&gt;</code>
+elements to specify system properties required by the class.
+These properties will be made available to the VM during the execution
+of the class (either ANT's VM or the forked VM). The attributes
+for this element are the same as for <a href="exec.html#env">environment
+variables</a>.</p>
+
+<h4>syspropertyset</h4>
+
+<p>You can specify a set of properties to be used as system properties
+with <a href="../CoreTypes/propertyset.html">syspropertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>classpath</h4>
+<p><code>Java</code>'s <i>classpath</i> attribute is a <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<i>classpath</i> element.</p>
+
+<h4>bootclasspath</h4>
+
+<p>The location of bootstrap class files can be specified using this
+<a href="../using.html#path">PATH like structure</a> - will be ignored
+if <i>fork</i> is not <code>true</code> or the target VM doesn't
+support it (i.e. Java 1.1).</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>env</h4>
+<p>It is possible to specify environment variables to pass to the
+forked VM via nested <i>env</i> elements. See the description in the
+section about <a href="exec.html#env">exec</a></p>
+<p>Settings will be ignored if fork is disabled.</p>
+
+<h4>permissions</h4>
+<p>Security permissions can be revoked and granted during the execution of the
+class via a nested <i>permissions</i> element. For more information please
+see <a href="../CoreTypes/permissions.html">permissions</a></p>
+<p>When the permission RuntimePermission exitVM has not been granted (or has
+been revoked) the System.exit() call will be intercepted
+and treated like indicated in <i>failonerror</i>.</p>
+<p><a name="failonerror">Note:</a>
+if you specify <code>failonerror=&quot;true&quot;</code> and you do not specify permissions,
+a set of default permissions will be added to your Java invocation to make sure that
+a non-zero return code will lead to a <code>BuildException</code>.
+</p>
+<p>Settings will be ignored if fork is enabled.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>assertions</h4>
+
+<p>You can control enablement of Java 1.4 assertions with an
+<a href="../CoreTypes/assertions.html"><tt>&lt;assertions&gt;</tt></a>
+subelement.</p>
+ 
+<p>Assertion statements are currently ignored in non-forked mode.</p>
+
+<p><em>since Ant 1.6.</em></p>
+
+<a name="redirector"></a><h4>redirector</h4>
+<i><b>Since Ant 1.6.2</b></i>
+<p>A nested <a href="../CoreTypes/redirector.html">I/O Redirector</a>
+can be specified.  In general, the attributes of the redirector behave
+as the corresponding attributes available at the task level.  The most
+notable peculiarity stems from the retention of the &lt;java&gt;
+attributes for backwards compatibility.  Any file mapping is done
+using a <CODE>null</CODE> sourcefile; therefore not all
+<a href="../CoreTypes/mapper.html">Mapper</a> types will return
+results.  When no results are returned, redirection specifications
+will fall back to the task level attributes.  In practice this means that
+defaults can be specified for input, output, and error output files.
+</p>
+<h3>Errors and return codes</h3>
+By default the return code of a &lt;java&gt; is ignored. Alternatively, you can set <code>resultproperty</code> to the name
+of a property and have it assigned to the result code (barring immutability,
+of course).
+When you set <code>failonerror="true"</code>, the only possible value for <code>resultproperty</code> is 0. Any non zero response is treated as an
+error and would mean the build exits.
+<p> Similarly, if <code>failonerror="false"</code> and <code>fork="false"</code>
+, then <code>&lt;java&gt;</code> <b>must</b> return 0 otherwise the build will exit, as the class was run by the build jvm.</p>
+
+<h3>Examples</h3>
+<pre>
+       &lt;java classname=&quot;test.Main&quot;&gt;
+         &lt;arg value=&quot;-h&quot;/&gt;
+         &lt;classpath&gt;
+           &lt;pathelement location=&quot;dist/test.jar&quot;/&gt;
+           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/java&gt;
+</pre>
+Run a class in this JVM with a new jar on the classpath
+
+<pre>        &lt;java jar=&quot;dist/test.jar&quot;
+           fork="true"
+           failonerror="true"
+           maxmemory="128m"
+           &gt;
+         &lt;arg value=&quot;-h&quot;/&gt;
+         &lt;classpath&gt;
+           &lt;pathelement location=&quot;dist/test.jar&quot;/&gt;
+           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/java&gt;
+</pre>
+Run the jar using the manifest supplied entry point, forking (as required),
+and with a maximum memory of 128MB. Any non zero return code breaks the build.
+
+<pre>  &lt;java classname=&quot;test.Main&quot;/&gt;</pre>
+<pre>  &lt;java classname=&quot;test.Main&quot;
+        fork=&quot;yes&quot; &gt;
+    &lt;sysproperty key=&quot;DEBUG&quot; value=&quot;true&quot;/&gt;
+    &lt;arg value=&quot;-h&quot;/&gt;
+    &lt;jvmarg value=&quot;-Xrunhprof:cpu=samples,file=log.txt,depth=3&quot;/&gt;
+  &lt;/java&gt;
+</pre>
+<strong>Note</strong>: you can not specify the (highly deprecated) MSJVM, "jview.exe" as the
+JVM, as it takes different parameters for other JVMs,
+That JVM can be started from &lt;exec&gt; if required.
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/javac.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/javac.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/javac.html	(revision 14989)
@@ -0,0 +1,606 @@
+<html lang="en-us">
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Javac Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="javac">Javac</a></h2>
+<h3>Description</h3>
+<p>Compiles a Java source tree.</p>
+<p>The source and destination directory will be recursively scanned for Java
+source files to compile. Only Java files that have no corresponding
+<code>.class</code> file
+or where the class file is older than the
+<code>.java</code> file will be compiled.</p>
+<p>Note: Ant uses only the names of the source and class files to find
+the classes that need a rebuild. It will not scan the source and therefore
+will have no knowledge about nested classes, classes that are named different
+from the source file, and so on. See the
+<a href="../OptionalTasks/depend.html"><code>&lt;depend&gt;</code></a> task
+for dependency checking based on other than just
+existence/modification times.</p>
+<p>When the source files are part of a package, the directory structure of
+the source tree should follow the package
+hierarchy.</p>
+<p>It is possible to refine the set of files that are being compiled.
+This can be done with the <code>includes</code>, <code>includesfile</code>,
+<code>excludes</code>, and <code>excludesfile</code>
+attributes. With the <code>includes</code> or
+<code>includesfile</code> attribute, you specify the files you want to
+have included.
+The <code>exclude</code> or <code>excludesfile</code> attribute is used
+to specify
+the files you want to have excluded. In both cases, the list of files 
+can be specified by either the filename, relative to the directory(s) specified
+in the <code>srcdir</code> attribute or nested <code>&lt;src&gt;</code>
+element(s), or by using wildcard patterns. See the section on
+<a href="../dirtasks.html#directorybasedtasks">directory-based tasks</a>,
+for information on how the
+inclusion/exclusion of files works, and how to write wildcard patterns.</p>
+<p>It is possible to use different compilers. This can be specified by
+either setting the global <code>build.compiler</code> property, which will
+affect all <code>&lt;javac&gt;</code> tasks throughout the build, or by
+setting the <code>compiler</code> attribute, specific to the current
+<code>&lt;javac&gt;</code> task.
+<a name="compilervalues">Valid values for either the
+<code>build.compiler</code> property or the <code>compiler</code>
+attribute are:</a></p>
+<ul>
+  <li><code>classic</code> (the standard compiler of JDK 1.1/1.2) &ndash;
+      <code>javac1.1</code> and
+      <code>javac1.2</code> can be used as aliases.</li>
+  <li><code>modern</code> (the standard compiler of JDK 1.3/1.4/1.5) &ndash;
+      <code>javac1.3</code> and
+      <code>javac1.4</code> and
+      <code>javac1.5</code> can be used as aliases.</li>
+  <li><code>jikes</code> (the <a
+    href="http://oss.software.ibm.com/developerworks/opensource/jikes/" target="_top">Jikes</a>
+    compiler).</li>
+  <li><code>jvc</code> (the Command-Line Compiler from Microsoft's SDK
+      for Java / Visual J++) &ndash; <code>microsoft</code> can be used
+      as an alias.</li>
+  <li><code>kjc</code> (the <a href="http://www.dms.at/kopi/" target="_top">kopi</a>
+    compiler).</li>
+  <li><code>gcj</code> (the gcj compiler from gcc).</li>
+  <li><code>sj</code> (Symantec java compiler) &ndash;
+      <code>symantec</code> can be used as an alias.</li>
+  <li><code>extJavac</code> (run either modern or classic in a JVM of
+      its own).</li>
+</ul>
+<p>The default is <code>javac1.x</code> with <code>x</code> depending
+on the JDK version you use while you are running Ant.
+If you wish to use a different compiler interface than those
+supplied, you can write a class that implements the CompilerAdapter interface
+(<code>package org.apache.tools.ant.taskdefs.compilers</code>). Supply the full
+classname in the <code>build.compiler</code> property or the
+<code>compiler</code> attribute.
+</p>
+<p>The fork attribute overrides the <code>build.compiler</code> property
+or <code>compiler</code> attribute setting and
+expects a JDK1.1 or higher to be set in <code>JAVA_HOME</code>.
+</p>
+<p>You can also use the <code>compiler</code> attribute to tell Ant
+which JDK version it shall assume when it puts together the command
+line switches - even if you set <code>fork=&quot;true&quot;</code>.
+This is useful if you want to run the compiler of JDK 1.1 while you
+current JDK is 1.2+.  If you use
+<code>compiler=&quot;javac1.1&quot;</code> and (for example)
+<code>depend=&quot;true&quot;</code> Ant will use the command line
+switch <code>-depend</code> instead of <code>-Xdepend</code>.</p>
+<p>This task will drop all entries that point to non-existent
+files/directories from the classpath it passes to the compiler.</p>
+<p><strong>Windows Note:</strong>When the modern compiler is used
+in unforked mode on Windows, it locks up the files present in the
+classpath of the <code>&lt;javac&gt;</code> task, and does not release them.
+The side effect of this is that you will not be able to delete or move
+those files later on in the build.  The workaround is to fork when
+invoking the compiler.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcdir</td>
+    <td valign="top">Location of the java files. (See the
+     <a href="#srcdirnote">note</a> below.)</td>
+    <td align="center" valign="top">Yes, unless nested <code>&lt;src&gt;</code> elements are present.</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">Location to store the class files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Comma- or space-separated list of files (may be specified using
+      wildcard patterns) that must be
+      included; all <code>.java</code> files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">The name of a file that contains a list of files to
+      include (may be specified using wildcard patterns).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Comma- or space-separated list of files (may be specified using
+      wildcard patterns) that must be excluded; no files (except default
+      excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">The name of a file that contains a list of files to
+      exclude (may be specified using wildcard patterns).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepath</td>
+    <td valign="top">The sourcepath to use; defaults to the value of the srcdir attribute (or nested <code>&lt;src&gt;</code> elements).
+        To suppress the sourcepath switch, use <code>sourcepath=&quot;&quot;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspath</td>
+    <td valign="top">Location of bootstrap class files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepathref</td>
+    <td valign="top">The sourcepath to use, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspathref</td>
+    <td valign="top">Location of bootstrap class files, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">extdirs</td>
+    <td valign="top">Location of installed extensions.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">Encoding of source files. (Note: gcj doesn't support
+      this option yet.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nowarn</td>
+    <td valign="top">Indicates whether the <code>-nowarn</code> switch
+      should be passed to the compiler; defaults to <code>off</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">Indicates whether source should be compiled with
+    debug information; defaults to <code>off</code>.  If set to
+    <code>off</code>, <code>-g:none</code> will be passed on the
+    command line for compilers that support it (for other compilers, no
+    command line argument will be used).  If set to <code>true</code>,
+    the value of the <code>debuglevel</code> attribute determines the
+    command line argument.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debuglevel</td>
+    <td valign="top">Keyword list to be appended to the <code>-g</code>
+      command-line switch.  This will be ignored by all implementations except
+      <code>modern</code> and <code>classic(ver &gt;= 1.2)</code>.
+      Legal values are <code>none</code> or a comma-separated list of the
+      following keywords:
+      <code>lines</code>, <code>vars</code>, and <code>source</code>.
+      If <code>debuglevel</code> is not specified, by default,
+      nothing will be
+      appended to <code>-g</code>.  If <code>debug</code> is not turned on,
+      this attribute will be ignored.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">optimize</td>
+    <td valign="top">Indicates whether source should be compiled with
+      optimization; defaults to <code>off</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">deprecation</td>
+    <td valign="top">Indicates whether source should be compiled with
+      deprecation information; defaults to <code>off</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">Generate class files for specific VM version
+    (e.g., <code>1.1</code> or <code>1.2</code>). <b>Note that the
+    default value depends on the JVM that is running Ant.  In
+    particular, if you use JDK 1.4+ the generated classes will not be
+    usable for a 1.1 Java VM unless you explicitly set this attribute
+    to the value 1.1 (which is the default value for JDK 1.1 to
+    1.3).</b></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Asks the compiler for verbose output; defaults to
+      <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">depend</td> <td valign="top">Enables dependency-tracking
+      for compilers that support this (<code>jikes</code> and
+      <code>classic</code>).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeAntRuntime</td>
+    <td valign="top">Whether to include the Ant run-time libraries in the
+      classpath; defaults to <code>yes</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeJavaRuntime</td>
+    <td valign="top">Whether to include the default run-time
+      libraries from the executing VM in the classpath;
+      defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Whether to execute <code>javac</code> using the
+      JDK compiler externally; defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">Complete path to the <code>javac</code>
+      executable to use in case of <code>fork=&quot;yes&quot;</code>.
+      Defaults to the compiler of the Java version that is currently
+      running Ant.  Ignored if <code>fork=&quot;no&quot;</code>.<br>
+      Since Ant 1.6 this attribute can also be used to specify the
+      path to the executable when using jikes, jvc, gcj or sj.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">memoryInitialSize</td>
+    <td valign="top">The initial size of the memory for the underlying VM,
+      if <code>javac</code> is run externally; ignored otherwise. Defaults
+      to the standard VM memory setting.
+      (Examples: <code>83886080</code>, <code>81920k</code>, or
+      <code>80m</code>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">memoryMaximumSize</td>
+    <td valign="top">The maximum size of the memory for the underlying VM,
+      if <code>javac</code> is run externally; ignored otherwise. Defaults
+      to the standard VM memory setting.
+      (Examples: <code>83886080</code>, <code>81920k</code>, or
+      <code>80m</code>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td> <td valign="top">
+        Indicates whether the build will continue even if there are compilation errors; defaults to <code>true</code>.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+
+    <td valign="top">Value of the <code>-source</code> command-line
+    switch; will be ignored by all implementations prior to
+    <code>javac1.4</code> (or <code>modern</code> when Ant is not
+    running in a 1.3 VM) and <code>jikes</code>.<br> If you use this
+    attribute together with <code>jikes</code>, you must make sure
+    that your version of jikes supports the <code>-source</code>
+    switch.<br> Legal values are <code>1.3</code>, <code>1.4</code> and <code>1.5</code>
+    &ndash; by default, no <code>-source</code> argument will be used
+    at all.</td>
+
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">The compiler implementation to use.
+      If this attribute is not set, the value of the
+      <code>build.compiler</code> property, if set, will be used.
+      Otherwise, the default compiler for the current VM will be used.
+      (See the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">listfiles</td>
+    <td valign="top">Indicates whether the source files to be compiled will
+      be listed; defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tempdir</td>
+    <td valign="top">Where Ant should place temporary files.
+      This is only used if the task is forked and the
+      command line args length exceeds 4k.
+      <em>Since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No; default is the current working
+       directory.</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h4><code>src</code>, <code>classpath</code>, <code>sourcepath</code>, 
+<code>bootclasspath</code> and <code>extdirs</code></h4>
+<p><code>&lt;javac&gt;</code>'s <code>srcdir</code>, <code>classpath</code>,
+<code>sourcepath</code>, <code>bootclasspath</code>, and
+<code>extdirs</code> attributes are
+<a href="../using.html#path">path-like structures</a>
+and can also be set via nested
+<code>&lt;src&gt;</code>,
+<code>&lt;classpath&gt;</code>,
+<code>&lt;sourcepath&gt;</code>,
+<code>&lt;bootclasspath&gt;</code> and
+<code>&lt;extdirs&gt;</code> elements, respectively.</p>
+
+<h4>compilerarg</h4>
+
+<p>You can specify additional command line arguments for the compiler
+with nested <code>&lt;compilerarg&gt;</code> elements.  These elements
+are specified like <a href="../using.html#arg">Command-line
+Arguments</a> but have an additional attribute that can be used to
+enable arguments only if a given compiler implementation will be
+used.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td>Only pass the specified argument if the chosen
+      compiler implementation matches the value of this attribute.
+      Legal values are the
+      same as those in the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;
+  /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores
+the <code>.class</code> files in the <code>${build}</code> directory.
+The classpath used includes <code>xyz.jar</code>, and compiling with
+debug information is on.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         fork=&quot;true&quot;
+  /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores the <code>.class</code> files in the
+<code>${build}</code> directory.  This will fork off the javac
+compiler using the default <code>javac</code> executable.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         fork=&quot;java$$javac.exe&quot;
+  /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores the <code>.class</code> files in the
+<code>${build}</code> directory.  This will fork off the javac
+compiler, using the executable named <code>java$javac.exe</code>.  Note
+that the <code>$</code> sign needs to be escaped by a second one.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
+         excludes=&quot;mypackage/p1/testpackage/**&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;
+  /&gt;</pre>
+<p>compiles <code>.java</code> files under the <code>${src}</code>
+directory, and stores the
+<code>.class</code> files in the <code>${build}</code> directory.
+The classpath used includes <code>xyz.jar</code>, and debug information is on.
+Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are
+used. All files in and below the <code>mypackage/p1/testpackage</code>
+directory are excluded from compilation.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}:${src2}&quot;
+         destdir=&quot;${build}&quot;
+         includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
+         excludes=&quot;mypackage/p1/testpackage/**&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;
+  /&gt;</pre>
+
+<p>is the same as the previous example, with the addition of a second
+source path, defined by
+the property <code>src2</code>. This can also be represented using nested
+<code>&lt;src&gt;</code> elements as follows:</p>
+
+<pre>  &lt;javac destdir=&quot;${build}&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;&gt;
+    &lt;src path=&quot;${src}&quot;/&gt;
+    &lt;src path=&quot;${src2}&quot;/&gt;
+    &lt;include name=&quot;mypackage/p1/**&quot;/&gt;
+    &lt;include name=&quot;mypackage/p2/**&quot;/&gt;
+    &lt;exclude name=&quot;mypackage/p1/testpackage/**&quot;/&gt;
+  &lt;/javac&gt;</pre>
+
+<p>If you want to run the javac compiler of a different JDK, you
+should tell Ant, where to find the compiler and which version of JDK
+you will be using so it can choose the correct command line switches.
+The following example executes a JDK 1.1 javac in a new process and
+uses the correct command line switches even when Ant is running in a
+Java VM of a different version:</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         fork=&quot;yes&quot;
+         executable=&quot;/opt/java/jdk1.1/bin/javac&quot;
+         compiler=&quot;javac1.1&quot;
+  /&gt;</pre>
+
+<p><a name="srcdirnote"><b>Note:</b></a>
+If you wish to compile only source files located in certain packages below a
+common root, use the <code>include</code>/<code>exclude</code> attributes
+or <code>&lt;include&gt;</code>/<code>&lt;exclude&gt;</code> nested elements
+to filter for these packages. Do not include part of your package structure
+in the <code>srcdir</code> attribute
+(or nested <code>&lt;src&gt;</code> elements), or Ant will recompile your
+source files every time you run your compile target. See the
+<a href="http://ant.apache.org/faq.html#always-recompiles">Ant FAQ</a>
+for additional information.</p>
+
+<p>
+If you wish to compile only files explicitly specified and disable
+javac's default searching mechanism then you can unset the sourcepath
+attribute:
+<pre>  &lt;javac sourcepath=&quot;&quot; srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot; &gt;
+    &lt;include name="**/*.java" /&gt;
+    &lt;exclude name="**/Example.java" /&gt;
+  &lt;/javac&gt;</pre>
+That way the javac will compile all java source files under &quot;${src}&quot;
+directory but skip the examples. The compiler will even produce errors if some of
+the non-example files refers to them.
+</p>
+
+<p><b>Note:</b> If you are using Ant on Windows and a new DOS window pops up
+for every use of an external compiler, this may be a problem of the JDK you are
+using.  This problem may occur with all JDKs &lt; 1.2.</p>
+
+<h3>Jikes Notes</h3>
+
+<p>Jikes supports some extra options, which can be set be defining
+the properties shown below prior to invoking the task. The setting
+for each property will be in affect for all <code>&lt;javac&gt;</code>
+tasks throughout the build.
+The Ant developers are aware that
+this is ugly and inflexible &ndash; expect a better solution in the future.
+All the options are boolean, and must be set to <code>true</code> or
+<code>yes</code> to be
+interpreted as anything other than false. By default,
+<code>build.compiler.warnings</code> is <code>true</code>,
+while all others are <code>false</code>.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Property</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Default</b></td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.emacs
+	</td>
+	<td valign="top">
+	Enable emacs-compatible error messages.
+    </td>
+    <td valign="top">
+	<code>false</code>
+	</td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.fulldepend
+	</td>
+	<td valign="top">
+	Enable full dependency checking; see<br>
+	the <code>+F</code> switch in the Jikes manual.
+    </td>
+    <td valign="top">
+	<code>false</code>
+	</td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.pedantic
+	</td>
+	<td valign="top">
+	Enable pedantic warnings.
+    </td>
+    <td valign="top">
+	<code>false</code>
+	</td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.warnings<br>
+        <strong>Deprecated</strong>. Use
+  <code>&lt;javac&gt;</code>'s <code>nowarn</code>
+  attribute instead.
+	</td>
+	<td valign="top">
+	Don't disable warning messages.
+    </td>
+    <td valign="top">
+	<code>true</code>
+	</td>
+  </tr>
+</table>
+
+<h3>Jvc Notes</h3>
+
+<p>Jvc will enable Microsoft extensions unless you set the property
+<code>build.compiler.jvc.extensions</code> to false before invoking
+<code>&lt;javac&gt;</code>.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/javadoc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/javadoc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/javadoc.html	(revision 14989)
@@ -0,0 +1,787 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Javadoc Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="javadoc">Javadoc/<i>Javadoc2</i></a></h2>
+<h3>Description</h3>
+<p>Generates code documentation using the javadoc tool.</p>
+<p>The source directory will be recursively scanned for Java source files to process
+but only those matching the inclusion rules, and not matching the exclusions rules
+will be passed to the javadoc tool. This
+allows wildcards to be used to choose between package names, reducing verbosity
+and management costs over time. This task, however, has no notion of
+&quot;changed&quot; files, unlike the <a href="javac.html">javac</a> task. This means
+all packages will be processed each time this task is run. In general, however,
+this task is used much less frequently.</p>
+<p>This task works seamlessly between different javadoc versions (1.1,
+1.2 and 1.4), with the obvious restriction that the 1.2 attributes
+will be ignored if run in a 1.1 VM.</p>
+<p>NOTE: since javadoc calls System.exit(), javadoc cannot be run inside the
+same VM as ant without breaking functionality. For this reason, this task
+always forks the VM. This overhead is not significant since javadoc is normally a heavy
+application and will be called infrequently.</p>
+<p>NOTE: the packagelist attribute allows you to specify the list of packages to
+document outside of the Ant file. It's a much better practice to include everything
+inside the build.xml file. This option was added in order to make it easier to
+migrate from regular makefiles, where you would use this option of javadoc.
+The packages listed in packagelist are not checked, so the task performs even
+if some packages are missing or broken. Use this option if you wish to convert from
+an existing makefile. Once things are running you should then switch to the regular
+notation. </p>
+
+<p><i><b>DEPRECATION:</b> the javadoc2 task simply points to the javadoc task and it's
+there for back compatibility reasons. Since this task will be removed in future
+versions, you are strongly encouraged to use <a href="javadoc.html">javadoc</a>
+instead.</i></p>
+
+<p>In the table below, 1.1 means available if your current Java VM is
+a 1.1 VM, 1.2 for either 1.2 or 1.3 and 1.4+ for any VM of at least version 1.4.  1.2+
+means any VM of at least version 1.2.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Availability</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepath</td>
+    <td valign="top">Specify where to find source files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" rowspan="3">At least one of the three or nested
+    <code>&lt;sourcepath&gt;</code>, <code>&lt;fileset&gt;</code> or
+    <code>&lt;packageset&gt;</code></td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepathref</td>
+    <td valign="top">Specify where to find source files by <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcefiles</td>
+    <td valign="top">Comma separated list of source files -- see also
+    the nested <code>source</code> element.</td>
+    <td align="center" valign="top">all</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">Destination directory for output files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">Yes, unless a doclet has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Max amount of memory to allocate to the javadoc VM</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">packagenames</td>
+    <td valign="top">Comma separated list of package files (with terminating
+      wildcard) -- see also the nested <code>package</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">packageList</td>
+    <td valign="top">The name of a file containing the packages to process</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">Specify where to find user class files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Bootclasspath</td>
+    <td valign="top">Override location of class files loaded by the bootstrap
+      class loader</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">Specify where to find user class files by <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspathref</td>
+    <td valign="top">Override location of class files loaded by the
+      bootstrap class loader by <a href="../using.html#references">reference</a> to a
+      PATH defined elsewhere.</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Extdirs</td>
+    <td valign="top">Override location of installed extensions</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Overview</td>
+    <td valign="top">Read overview documentation from HTML file</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">access</td>
+    <td valign="top">Access mode: one of <code>public</code>, <code>protected</code>,
+                     <code>package</code>, or <code>private</code></td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No (default <code>protected</code>)</td>
+  </tr>
+  <tr>
+    <td valign="top">Public</td>
+    <td valign="top">Show only public classes and members</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Protected</td>
+    <td valign="top">Show protected/public classes and members (default)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Package</td>
+    <td valign="top">Show package/protected/public classes and members</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Private</td>
+    <td valign="top">Show all classes and members</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Old</td>
+    <td valign="top">Generate output using JDK 1.1 emulating doclet</td>
+    <td align="center" valign="top">1.2</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Verbose</td>
+    <td valign="top">Output messages about what Javadoc is doing</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Locale</td>
+    <td valign="top">Locale to be used, e.g. en_US or en_US_WIN</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Encoding</td>
+    <td valign="top">Source file encoding name</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Version</td>
+    <td valign="top">Include @version paragraphs</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Use</td>
+    <td valign="top">Create class and package usage pages</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Author</td>
+    <td valign="top">Include @author paragraphs</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Splitindex</td>
+    <td valign="top">Split index into one file per letter</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Windowtitle</td>
+    <td valign="top">Browser window title for the documentation (text)</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Doctitle</td>
+    <td valign="top">Include title for the package index(first) page (html-code)</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Header</td>
+    <td valign="top">Include header text for each page (html-code)</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Footer</td>
+    <td valign="top">Include footer text for each page (html-code)</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bottom</td>
+    <td valign="top">Include bottom text for each page (html-code)</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">link</td>
+    <td valign="top">Create links to javadoc output at the given URL
+    -- see also the nested <code>link</code> element.</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">linkoffline</td>
+    <td valign="top">Link to docs at &lt;url&gt; using package list at
+    &lt;url2&gt; - separate the URLs by using a space character -- see
+    also the nested <code>link</code> element.</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">group</td>
+    <td valign="top">Group specified packages together in overview
+    page.  The format is as described <a
+    href="#groupattribute">below</a> -- see also the nested
+    <code>group</code> element.</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nodeprecated</td>
+    <td valign="top">Do not include @deprecated information</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nodeprecatedlist</td>
+    <td valign="top">Do not generate deprecated list</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">notree</td>
+    <td valign="top">Do not generate class hierarchy</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noindex</td>
+    <td valign="top">Do not generate index</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nohelp</td>
+    <td valign="top">Do not generate help link</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nonavbar</td>
+    <td valign="top">Do not generate navigation bar</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">serialwarn</td>
+    <td valign="top">Generate warning about @serial tag</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">helpfile</td>
+    <td valign="top">Specifies the HTML help file to use</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">stylesheetfile</td>
+    <td valign="top">Specifies the CSS stylesheet to use</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">charset</td>
+    <td valign="top">Charset for cross-platform viewing of generated
+      documentation</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">docencoding</td>
+    <td valign="top">Output file encoding name</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">doclet</td>
+    <td valign="top">Specifies the class file that starts the doclet
+    used in generating the documentation -- see also the nested
+    <code>doclet</code> element.</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">docletpath</td>
+    <td valign="top">Specifies the path to the doclet class file that is specified with the -doclet option.</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">docletpathref</td>
+    <td valign="top">Specifies the path to the doclet class file that
+      is specified with the -doclet option by <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">1.2+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">additionalparam</td>
+    <td valign="top">Lets you add additional parameters to the javadoc
+    command line. Useful for doclets. Parameters containing spaces
+    need to be quoted using &amp;quot; -- see also the nested
+    <code>arg</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludepackagenames</td>
+    <td valign="top">comma separated list of packages you don't want
+      docs for -- see also the nested <code>excludepackage</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used
+      (<code>yes</code> | <code>no</code>); default excludes are used when omitted.</td>
+    <td align="center" valign="top">all</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">useexternalfile</td>
+    <td valign="top">indicates whether the sourcefile name specified
+      in srcfiles or as nested source elements should be written to a
+      temporary file to make the command line shorter. Also applies to
+      the package names specified via the packagenames attribute or
+      nested package elements.
+      (<code>yes</code> | <code>no</code>). Default is no.</td>
+    <td align="center" valign="top">1.2+</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+    <td valign="top">Necessary to enable javadoc to handle assertions
+    present in J2SE v 1.4 source code. Set this to &quot;1.4&quot; to
+    documents code that compiles using <code>&quot;javac -source
+    1.4&quot;</code>.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">linksource</td>
+    <td valign="top">Generate hyperlinks to source files.
+      <em>since Ant 1.6</em>.
+      (<code>yes</code> | <code>no</code>). Default is no.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">breakiterator</td>
+    <td valign="top">Use the new breakiterator algorithm.
+      <em>since Ant 1.6</em>.
+      (<code>yes</code> | <code>no</code>). Default is no.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noqualifier</td>
+    <td valign="top">Enables the <code>-noqualifier</code> argument -
+      must be <code>all</code> or a colon separated list of packages.
+      <em>since Ant 1.6</em>.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<a name="groupattribute"></a><h4>Format of the group attribute</h4>
+<p>The arguments are comma-delimited. Each single argument is 2
+space-delimited strings, where the first one is the group's title and
+the second one a colon delimited list of packages.</p>
+<p>If you need to specify more than one group, or a group whose title
+contains a comma or a space character, using <a
+href="#groupelement">nested group elements</a> is highly
+recommended.</p>
+<p>E.g.:</p>
+<pre>    group=&quot;XSLT_Packages org.apache.xalan.xslt*,XPath_Packages org.apache.xalan.xpath*&quot;</pre>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>packageset</h4>
+
+<p>A <a href="../CoreTypes/dirset.html">DirSet</a>.  All matched
+directories that contain Java source files will be passed to javadoc
+as package names.  Package names are created from the directory names
+by translating the directory separator into dots.  Ant assumes the
+base directory of the packageset points to the root of a package
+hierarchy.</p>
+
+<p>The <code>packagenames</code>, <code>excludepackagenames</code> and
+<code>defaultexcludes</code> attributes of the task have no effect on
+the nested <code>&lt;packageset&gt;</code> elements.</p>
+
+<h4>fileset</h4>
+
+<p>A <a href="../CoreTypes/fileset.html">FileSet</a>.  All matched
+files will be passed to javadoc as source files.  Ant will
+automatically add the include pattern <code>**/*.java</code> to these
+filesets.</p>
+
+<p>Nested filesets can be used to document sources that are in the
+default package or if you want to exclude certain files from
+documentation.  If you want to document all source files and don't use
+the default package, packagesets should be used instead as this
+increases javadocs performance.</p>
+
+<p>The <code>packagenames</code>, <code>excludepackagenames</code> and
+<code>defaultexcludes</code> attributes of the task have no effect on
+the nested <code>&lt;fileset&gt;</code> elements.</p>
+
+<h4>package</h4>
+<p>Same as one entry in the list given by <code>packagenames</code>.</p>
+
+<h5>Parameters</h5>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The package name (may be a wildcard)</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>excludepackage</h4>
+<p>Same as one entry in the list given by <code>excludepackagenames</code>.</p>
+
+<h5>Parameters</h5>
+Same as for <code>package</code>.
+
+<h4>source</h4>
+<p>Same as one entry in the list given by <code>sourcefiles</code>.</p>
+
+<h5>Parameters</h5>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The source file to document</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>doctitle</h4>
+
+<p>Same as the <code>doctitle</code> attribute, but you can nest text
+inside the element this way.</p>
+
+<h4>header</h4>
+
+<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
+
+<h4>footer</h4>
+
+<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
+
+<h4>bottom</h4>
+
+<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
+
+<h4>link</h4>
+<p>Create link to javadoc output at the given URL. This performs the
+same role as the link and linkoffline attributes. You can use either
+syntax (or both at once), but with the nested elements you can easily
+specify multiple occurrences of the arguments.</p>
+
+<h5>Parameters</h5>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">href</td>
+    <td valign="top">The URL for the external documentation you wish to link to</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">offline</td>
+    <td valign="top">True if this link is not available online at the time of
+                     generating the documentation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">packagelistLoc</td>
+    <td valign="top">The location to the directory containing the package-list file for
+                     the external documentation</td>
+    <td align="center" valign="top">Only if the offline attribute is true</td>
+  </tr>
+</table>
+
+<a name="groupelement"></a><h4>group</h4>
+<p>Separates packages on the overview page into whatever groups you
+specify, one group per table. This performs the same role as the group
+attribute. You can use either syntax (or both at once), but with the
+nested elements you can easily specify multiple occurrences of the
+arguments.</p>
+
+<h5>Parameters</h5>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">title</td>
+    <td valign="top">Title of the group</td>
+    <td align="center" valign="top">Yes, unless nested <code>&lt;title&gt;</code> given</td>
+  </tr>
+  <tr>
+    <td valign="top">packages</td>
+    <td valign="top">List of packages to include in that group. Multiple packages are separated with ':'.</td>
+    <td align="center" valign="top">Yes, unless nested <code>&lt;package&gt;</code>s given</td>
+  </tr>
+</table>
+
+<p>The title may be specified as a nested <code>&lt;title&gt;</code> element
+with text contents, and the packages may be listed with nested
+<code>&lt;package&gt;</code> elements as for the main task.</p>
+
+<h4>doclet</h4>
+<p>The doclet nested element is used to specify the doclet that javadoc will
+use to process the input source files. A number of the standard javadoc arguments
+are actually arguments of the standard doclet. If these are specified in the javadoc
+task's attributes, they will be passed to the doclet specified in the
+<code>&lt;doclet&gt;</code> nested element. Such attributes should only be specified,
+therefore, if they can be interpreted by the doclet in use.</p>
+
+<p>If the doclet requires additional parameters, these can be specified with
+<code>&lt;param&gt;</code> elements within the <code>&lt;doclet&gt;</code>
+element. These parameters are restricted to simple strings. An example usage
+of the doclet element is shown below:</p>
+
+<pre>  &lt;javadoc ... &gt;
+     &lt;doclet name=&quot;theDoclet&quot;
+             path=&quot;path/to/theDoclet&quot;&gt;
+        &lt;param name=&quot;-foo&quot; value=&quot;foovalue&quot;/&gt;
+        &lt;param name=&quot;-bar&quot; value=&quot;barvalue&quot;/&gt;
+     &lt;/doclet&gt;
+  &lt;/javadoc&gt;
+</pre>
+
+<a name="tagelement"></a><h4>tag</h4>
+
+<p>The tag nested element is used to specify custom tags. This option
+is only available with Java 1.4.</p>
+
+<p>If you want to specify a standard tag using a nested tag element
+because you want to determine the order the tags are output, you must
+not set the description attribute for those tags.</p>
+
+<h5>Parameters</h5>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the tag (e.g. <code>todo</code>)</td>
+    <td align="center" valign="top">Yes, unless the <code>dir</code> attribute is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">Description for tag (e.g. <code>To do:</code>)</td>
+    <td align="center" valign="top">Yes, unless the <code>dir</code>
+      attribute is specified or name is a standard tag.</td>
+  </tr>
+  <tr>
+    <td valign="top">enabled</td>
+    <td valign="top">Whether or not the tag is enabled (defaults to <code>true</code>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">scope</td>
+    <td valign="top">Scope for the tag - the elements in which it can be used. This
+    is a comma separated list of some of the elements: <code>overview</code>,
+    <code>packages</code>, <code>types</code>, <code>constructors</code>,
+    <code>methods</code>, <code>fields</code> or the default, <code>all</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">If this attribute is specified, this element will behave as an implicit
+    <a href="../CoreTypes/fileset.html">fileset</a>. The files included by this fileset should
+    contain each tag definition on a separate line, as described in the
+    <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#tag">Javadoc reference guide</a>:
+    <pre>ejb.bean:t:"XDoclet EJB Tag"
+todo:a:"To Do"</pre>
+    Note: If this attribute is specified, all the other attributes in this
+    element will be ignored.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<a name="tagletelement"></a><h4>taglet</h4>
+<p>The taglet nested element is used to specify custom taglets. This option is
+only available with Java 1.4.</p>
+
+<h5>Parameters</h5>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the taglet class
+              (e.g. <code>com.sun.tools.doclets.ToDoTaglet</code>)</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">A path specifying the search path for the taglet class
+            (e.g. <code>/home/taglets</code>).
+            The path may also be specified by a nested &lt;path&gt; element</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4>sourcepath, classpath and bootclasspath</h4>
+<p><code>Javadoc</code>'s <i>sourcepath</i>, <i>classpath</i> and
+<i>bootclasspath</i> attributes are <a href="../using.html#path">PATH like
+structure</a> and can also be set via nested <i>sourcepath</i>,
+<i>classpath</i> and <i>bootclasspath</i> elements
+respectively.</p>
+
+<h4>arg</h4>
+
+<p>Use nested <code>&lt;arg&gt;</code> to specify additional
+arguments.  See <a href="../using.html#arg">Command line
+arguments</a>. <em>Since Ant 1.6</em></p>
+
+<h3>Example</h3>
+<pre>  &lt;javadoc packagenames=&quot;com.dummy.test.*&quot;
+           sourcepath=&quot;src&quot;
+           excludepackagenames=&quot;com.dummy.test.doc-files.*&quot;
+           defaultexcludes=&quot;yes&quot;
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;&gt;
+    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+    &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot; /&gt;
+    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/products/jdk/1.2/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+  &lt/javadoc&gt;</pre>
+
+<p>is the same as</p>
+
+<pre>  &lt;javadoc
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;&gt;
+
+    &lt;packageset dir=&quot;src&quot; defaultexcludes=&quot;yes&quot;&gt;
+      &lt;include name=&quot;com/dummy/test/**&quot; /&gt;
+      &lt;exclude name=&quot;com/dummy/test/doc-files/**&quot;/&gt;
+    &lt;/packageset&gt;
+
+    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+    &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot; /&gt;
+    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/products/jdk/1.2/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+  &lt/javadoc&gt;</pre>
+
+<p>or</p>
+
+<pre>  &lt;javadoc
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;&gt;
+
+    &lt;fileset dir=&quot;src&quot; defaultexcludes=&quot;yes&quot;&gt;
+      &lt;include name=&quot;com/dummy/test/**&quot; /&gt;
+      &lt;exclude name=&quot;com/dummy/test/doc-files/**&quot;/&gt;
+    &lt;/fileset&gt;
+
+    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+    &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot; /&gt;
+    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/products/jdk/1.2/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+  &lt/javadoc&gt;</pre>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/loadfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/loadfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/loadfile.html	(revision 14989)
@@ -0,0 +1,100 @@
+<html>
+<head>
+<title>LoadFile Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+
+<h2><a name="loadfile">LoadFile</a></h2>
+<h3>Description</h3>
+<p>
+ Load a text file into a single property. Unless an encoding is specified,
+ the encoding of the current locale is used.
+
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcFile</td>
+    <td valign="top">source file</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">property to save to</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use when loading the file</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Whether to halt the build on failure</td>
+    <td align="center" valign="top">No, default "true"</td>
+  </tr>
+</table>
+<p>
+The LoadFile task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.
+
+<h3>Examples</h3>
+<pre>    &lt;loadfile property="message"
+      srcFile="message.txt"/&gt;
+</pre>
+Load file message.txt into property "message"; an <tt>&lt;echo&gt;</tt>
+can print this.
+
+<pre>    &lt;loadfile property="encoded-file"
+      srcFile="loadfile.xml"
+      encoding="ISO-8859-1"/&gt;
+</pre>
+Load a file using the latin-1 encoding
+
+<pre>    &lt;loadfile
+      property="optional.value"
+      srcFile="optional.txt"
+      failonerror="false"/&gt;
+</pre>
+Load a file, don't fail if it is missing (a message is printed, though)
+
+<pre>    &lt;loadfile
+      property="mail.recipients"
+      srcFile="recipientlist.txt"&gt;
+      &lt;filterchain&gt;
+        &lt;<a href="../CoreTypes/filterchain.html#striplinebreaks">striplinebreaks</a>/&gt;
+      &lt;/filterchain&gt;
+    &lt;/loadfile&gt;
+</pre>
+Load a property which can be used as a parameter for another task (in this case mail),
+merging lines to ensure this happens.
+
+<pre>    &lt;loadfile
+      property="system.configuration.xml"
+      srcFile="configuration.xml"&gt;
+        &lt;filterchain&gt;
+          &lt;<a href="../CoreTypes/filterchain.html#expandproperties">expandproperties</a>/&gt;
+        &lt;/filterchain&gt;
+    &lt;/loadfile&gt;
+</pre>
+Load an XML file into a property, expanding all properties declared
+in the file in the process.
+
+
+<hr>
+
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/loadproperties.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/loadproperties.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/loadproperties.html	(revision 14989)
@@ -0,0 +1,85 @@
+<html>
+<head>
+<title>LoadProperties Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+
+<h2><a name="loadproperties">LoadProperties</a></h2>
+<h3>Description</h3>
+<p>
+Load a file's contents as Ant properties.  This is equivalent
+to &lt;property file|resource=&quot;...&quot;/&gt; except that it
+supports nested &lt;filterchain&gt; elements.
+</p>
+
+<p>If you want to simulate <a href="property.html">property</a>'s
+prefix attribute, please use <a
+href="../CoreTypes/filterchain.html#prefixlines">prefixlines</a>
+filter.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcFile</td>
+    <td valign="top">source file</td>
+    <td valign="top" rowspan="2" align="center">One of these</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">the resource name of the property file</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use when loading the file</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up a resource.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use when looking up a resource,
+      given as <a href="../using.html#references">reference</a>
+      to a &lt;path&gt; defined elsewhere..</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>
+The LoadProperties task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s, as well as a nested <code>&lt;classpath&gt;</code>
+element for use with the <i>resource</i> attribute.
+
+<h3>Examples</h3>
+<pre>    &lt;loadproperties srcFile="file.properties"/&gt;
+</pre>
+Load contents of file.properties as Ant properties.
+
+<pre>    &lt;loadproperties srcFile="file.properties"&gt;
+      &lt;filterchain&gt;
+        &lt;<a href="../CoreTypes/filterchain.html#linecontains">linecontains</a>&gt;
+          &lt;contains value=&quot;import.&quot;/&gt;
+        &lt;/linecontains&gt;
+      &lt;/filterchain&gt;
+    &lt;/loadproperties&gt;
+</pre>
+Read the lines that contain the string &quot;import.&quot;
+from the file &quot;file.properties&quot; and load them as
+Ant properties.
+<hr>
+
+<p align="center">Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/macrodef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/macrodef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/macrodef.html	(revision 14989)
@@ -0,0 +1,350 @@
+<html>
+
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <title>MacroDef Task</title>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+    <style type="text/css">
+      <!--
+           .code { background: #EFEFEF; margin-top: }
+           -->
+    </style>
+  </head>
+
+  <body>
+
+    <h2><a name="macrodef">MacroDef</a></h2>
+    <h3>Description</h3>
+    <p>
+      This defines a new task using a &lt;sequential&gt;
+      nested task as a template. Nested elements &lt;attribute&gt; and
+      &lt;element&gt; are used to specify attributes and elements of
+      the new task. These get substituted into the  &lt;sequential&gt;
+      task when the new task is run.
+    </p>
+    <h3>Note</h3>
+    <p>
+      You can also use <i>prior defined</i> attributes for default-values in
+      other attributes. See the examples.
+    </p>
+    <p>
+      <em>since Ant 1.6</em>
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the new definition</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">uri</td>
+        <td valign="top">
+          The uri that this definition should live in.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+      <h3>Parameters specified as nested elements</h3>
+    <h4>attribute</h4>
+    <p>
+      This is used to specify attributes of the new task. The values
+      of the attributes get substituted into the templated task.
+      The attributes will be required attributes unless a default
+      value has been set.
+    </p>
+    <p>
+      This attribute is placed in the body of the templated
+      task using a notation similar to the ant property notation
+      - @{attribute name}. (May be remembered as "put the substitution
+      AT this location").
+    </p>
+    <p>
+      The escape sequence @@ is used to escape @. This allows @{x} to be
+      placed in the text without substitution of x by using @@{x}.
+      This corresponds to the $$ escape sequence for properties.
+    </p>
+    <p>
+      The case of the attribute is ignored, so @{myAttribute} is treated the
+      same as @{MyAttribute}.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the new attribute</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">default</td>
+        <td valign="top">
+          The default value of the attribute.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">
+          This contains a description of the attribute.
+          <em>since ant 1.6.1</em>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+    <h4>element</h4>
+    <p>
+      This is used to specify nested elements of the new task.
+      The contents of the nested elements of the task instance
+      are placed in the templated task at the tag name.
+    </p>
+    <p>
+      The case of the element name is ignored.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the element</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">optional</td>
+        <td valign="top">
+          If true this nested element is optional. Default is
+          false - i.e the nested element is required in
+          the new task.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">implicit</td>
+        <td valign="top">
+          If true this nested element is implicit. This means that
+          any nested elements of the macrodef instance will be placed
+          in the element indicated by the name of this element.
+          There can only be one element if an element is implicit.
+          The default value is false. <em>since ant 1.6.2</em>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">
+          This contains a description
+          informing the user what the contents of the element are expected to be.
+          <em>since ant 1.6.1</em>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+    <h4>text</h4>
+    <p>
+      This is used to specify the treatment of text contents of the macrodef.
+      If this element is not present, then any nested text in the macro
+      will be an error. If the text element is present, then the name
+      becomes an attribute that gets set to the nested text of the macro.
+      <em>Since ant 1.6.1.</em>
+    </p>
+    <p>
+      The case of the text name is ignored.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the text attribute</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">optional</td>
+        <td valign="top">
+          If true nested text in the macro is optional, default is "false".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">trim</td>
+        <td valign="top">
+          If true, the nested text is trimmed of white space,
+          default is "false".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">
+          This contains a description
+          informing the user what the nested text of the macro is expected
+          to be.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <h3>Examples</h3>
+    <p>
+      The following example defined a task called testing and
+      runs it.
+    </p>
+    <blockquote>
+<pre class=code>
+&lt;macrodef name="testing"&gt;
+   &lt;attribute name="v" default="NOT SET"/&gt;
+   &lt;element name="some-tasks" optional="yes"/&gt;
+   &lt;sequential&gt;
+      &lt;echo&gt;v is @{v}&lt;/echo&gt;
+      &lt;some-tasks/&gt;
+   &lt;/sequential&gt;
+&lt;/macrodef&gt;
+
+&lt;testing v="This is v"&gt;
+   &lt;some-tasks&gt;
+      &lt;echo&gt;this is a test&lt;/echo&gt;
+   &lt;/some-tasks&gt;
+&lt;/testing&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following fragment defines a task called &lt;call-cc&gt; which
+      take the attributes "target", "link" and "target.dir" and the
+      nested element "cc-elements". The body of the task
+      uses the &lt;cc&gt; task from the
+      <a href="http://ant-contrib.sourceforge.net/">ant-contrib</a> project.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="call-cc"&gt;
+   &lt;attribute name="target"/&gt;
+   &lt;attribute name="link"/&gt;
+   &lt;attribute name="target.dir"/&gt;
+   &lt;element name="cc-elements"/&gt;
+   &lt;sequential&gt;
+      &lt;mkdir dir="${obj.dir}/@{target}"/&gt;
+      &lt;mkdir dir="@{target.dir}"/&gt;
+         &lt;cc link="@{link}" objdir="${obj.dir}/@{target}"
+             outfile="@{target.dir}/@{target}"&gt;
+            &lt;compiler refid="compiler.options"/&gt;
+            &lt;cc-elements/&gt;
+         &lt;/cc&gt;
+      &lt;/sequential&gt;
+&lt;/macrodef&gt;
+</pre>
+    </blockquote>
+    <p>
+      This then can be used as follows:
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;call-cc target="unittests" link="executable"
+         target.dir="${build.bin.dir}"&gt;
+   &lt;cc-elements&gt;
+      &lt;includepath location="${gen.dir}"/&gt;
+      &lt;includepath location="test"/&gt;
+      &lt;fileset dir="test/unittest" includes = "**/*.cpp"/&gt;
+      &lt;fileset dir="${gen.dir}" includes = "*.cpp"/&gt;
+      &lt;linker refid="linker-libs"/&gt;
+   &lt;/cc-elements&gt;
+&lt;/call-cc&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following fragment shows &lt;call-cc&gt;, but this time
+      using an implicit element and with the link and target.dir arguments
+      having default values.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="call-cc"&gt;
+   &lt;attribute name="target"/&gt;
+   &lt;attribute name="link" default="executable"/&gt;
+   &lt;attribute name="target.dir" default="${build.bin.dir}"/&gt;
+   &lt;element name="cc-elements" implicit="yes"/&gt;
+   &lt;sequential&gt;
+      &lt;mkdir dir="${obj.dir}/@{target}"/&gt;
+      &lt;mkdir dir="@{target.dir}"/&gt;
+         &lt;cc link="@{link}" objdir="${obj.dir}/@{target}"
+             outfile="@{target.dir}/@{target}"&gt;
+            &lt;compiler refid="compiler.options"/&gt;
+            &lt;cc-elements/&gt;
+         &lt;/cc&gt;
+      &lt;/sequential&gt;
+&lt;/macrodef&gt;
+</pre>
+    </blockquote>
+    <p>
+      This then can be used as follows, note that &lt;cc-elements&gt;
+      is not specified.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;call-cc target="unittests"/&gt;
+   &lt;includepath location="${gen.dir}"/&gt;
+   &lt;includepath location="test"/&gt;
+   &lt;fileset dir="test/unittest" includes = "**/*.cpp"/&gt;
+   &lt;fileset dir="${gen.dir}" includes = "*.cpp"/&gt;
+   &lt;linker refid="linker-libs"/&gt;
+&lt;/call-cc&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following shows the use of the <code>text</code> element.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="echotest"&gt;
+   &lt;text name="text"/&gt;
+   &lt;sequential&gt;
+      &lt;echo&gt;@{text}&lt;/echo&gt;
+   &lt;/sequential&gt;
+&lt;/macrodef&gt;
+&lt;echotest&gt;
+   Hello world
+&lt;/echotest&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following uses a prior defined attribute for setting the
+      default value of another. The output would be
+      <tt>one=test two=test</tt>. If you change the order of lines
+      *1 and *2 the output would be <tt>one=test two=@{one}</tt>,
+      because while processing the <i>two</i>-line the value for
+      <i>one</i> is not set.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="test"/&gt;
+   &lt;attribute name="one"/&gt;                     <b>*1</b>
+   &lt;attribute name="two" default="@{one}"/&gt;    <b>*2</b>
+   &lt;sequential&gt;
+      &lt;echo&gt;one=@{one}   two=@{two}&lt;/echo&gt;
+   &lt;/sequential&gt;
+&lt;/macrodef/&gt;
+&lt;test one="test"/&gt;
+</pre>
+    </blockquote>
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/mail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/mail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/mail.html	(revision 14989)
@@ -0,0 +1,267 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Mail Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="mail">Mail</a></h2>
+<h3>Description</h3>
+<p>A task to send SMTP email.<br></br><br></br>
+This task can send mail using either plain
+text, UU encoding, or MIME format mail, depending on what is available.<br></br><br></br>
+<br>
+SMTP auth and SSL/TLS require JavaMail and are only available in MIME format.<br></br><br></br>
+Attachments may be sent using nested
+<a href="../CoreTypes/fileset.html">fileset</a> elements.</p>
+<p><strong>Note:</strong> This task may depend on external libraries
+that are not included
+in the Ant distribution.  See <a href="../install.html#librarydependencies">
+Library Dependencies</a> for more information.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">Email address of sender.</td>
+    <td align="center" valign="top">Either a <code>from</code> attribute, or a <code>&lt;from&gt;</code>
+    element.</td>
+  </tr>
+  <tr>
+    <td valign="top">replyto</td>
+    <td valign="top">Replyto email address.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tolist</td>
+    <td valign="top">Comma-separated list of recipients.</td>
+    <td align="center" valign="middle" rowspan="3">At least one of these, or the
+       equivalent elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">cclist</td>
+    <td valign="top">Comma-separated list of recipients to carbon copy</td>
+    </tr>
+  <tr>
+    <td valign="top">bcclist</td>
+    <td valign="top">Comma-separated list of recipients to carbon copy</td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">Message to send in the body of the email.</td>
+    <td align="center" valign="middle" rowspan="2">One of these or a
+    <code>&lt;message&gt;</code> element.</td>
+  </tr>
+  <tr>
+    <td valign="top">messagefile</td>
+    <td valign="top">File to send as the body of the email. Property
+    values in the file will be expanded.</td>
+  </tr>
+      <td valign="top">messagemimetype</td>
+    <td valign="top">The content type of the message.  The default is
+    <code>text/plain</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">files</td>
+    <td valign="top">Files to send as attachments to the email.  Separate multiple
+    file names using a comma or space.  You can also use <code>&lt;fileset&gt;</code>
+    elements to specify files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">flag to indicate whether to halt the build on
+    any error.  The default value is <code>true</code>.</td>
+    <td align="center" valign="top">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">includefilenames</td>
+    <td valign="top">Include filename(s) before file contents.
+    Valid only when the <code>plain</code> encoding is used.  The default
+    value is <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mailhost</td>
+    <td valign="top">Host name of the SMTP server.  The default value is
+    <code>localhost</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mailport</td>
+    <td valign="top">TCP port of the SMTP server.  The default value is 25.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">user</td>
+    <td valign="top">user name for SMTP auth</td>
+    <td valign="center">Yes, if SMTP auth is required on your SMTP server<br></br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">password for SMTP auth</td>
+    <td valign="center">Yes, if SMTP auth is required on your SMTP server<br></br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td valign="top">ssl</td>
+    <td valign="top">"true", "on" or "yes" accepted here<br></br>
+    indicates whether you need TLS/SSL</td>
+    <td valign="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">Specifies the encoding to use for the content of the email.
+    Values are <code>mime</code>, <code>uu</code>, <code>plain</code>, or
+      <code>auto</code>.  The default value is <code>auto</code>.
+      <code>uu</code> or <code>plain</code> are not compatible with SMTP auth</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">charset</td>
+    <td valign="top">Character set of the email.<br>
+    You can also set the charset in the message nested element.<br>
+    These options are mutually exclusive.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">subject</td>
+    <td valign="top">Email subject line.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Note regarding the attributes containing email addresses</h3>
+Since ant 1.6, the attributes from, replyto, tolist, cclist, bcclist
+can contain email addresses of the form :
+<ul>
+<li>address@xyz.com</li>
+<li>name &lt;address@xyz.com&gt;</li>
+<li>&lt;address@xyz.com&gt; name</li>
+<li>(name) address@xyz.com</li>
+<li>address@xyz.com (name)</li>
+</ul>
+<p>You need to enter the angle brackets as XML entities
+<code>&amp;gt;</code> and <code>&amp;lt;</code>.</p>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>to / cc / bcc / from/ replyto </h4>
+<p>Adds an email address element.  It takes the following attributes:</p>
+
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The display name for the address.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">address</td>
+    <td valign="top">The email address.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>message</h4>
+
+<p>Specifies the message to include in the email body.  It takes the following
+attributes:</p>
+
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The file to use as the message.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mimetype</td>
+    <td valign="top">The content type to use for the message.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">charset</td>
+    <td valign="top">Character set of the message<br>
+    You can also set the charset as attribute of the enclosing mail task.<br>
+    These options are mutually exclusive.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>If the <code>src</code> attribute is not specified, then text can be added
+inside the <code>&lt;message&gt;</code> element. Property expansion will occur
+in the message, whether it is specified as an external file or as text within
+the <code>&lt;message&gt;</code> element.</p>
+
+<h3>Examples</h3>
+
+<blockquote><pre>
+&lt;mail from=&quot;me&quot;
+      tolist=&quot;you&quot;
+      subject=&quot;Results of nightly build&quot;
+      files=&quot;build.log&quot;/&gt;
+</pre></blockquote>
+
+<p>Sends an email from <i>me</i> to <i>you</i> with a subject of
+<i>Results of nightly build</i> and includes the contents of the file
+<i>build.log</i> in the body of the message.</p>
+
+<blockquote><pre>
+&lt;mail mailhost=&quot;smtp.myisp.com&quot; mailport=&quot;1025&quot; subject=&quot;Test build&quot;&gt;
+  &lt;from address=&quot;config@myisp.com&quot;/&gt;
+  &lt;replyto address=&quot;me@myisp.com&quot;/&gt;
+  &lt;to address=&quot;all@xyz.com&quot;/&gt;
+  &lt;message&gt;The ${buildname} nightly build has completed&lt;/message&gt;
+  &lt;fileset dir=&quot;dist&quot;&gt;
+    &lt;includes name=&quot;**/*.zip&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/mail&gt;
+</pre></blockquote>
+
+<p>Sends an eMail from <i>config@myisp.com</i> to <i>all@xyz.com</i> with a subject of
+<i>Test Build</i>. Replies to this email will go to <i>me@myisp.com</i>.
+Any zip files from the dist directory are attached.&nbsp; The
+task will attempt to use JavaMail and fall back to UU encoding or no encoding in
+that order depending on what support classes are available. <code>${buildname}</code>
+will be replaced with the <code>buildname</code> property's value.</p>
+
+<blockquote><pre>
+&lt;property name=&quot;line2&quot; value=&quot;some_international_message&quot;/&gt;
+&lt;echo message=&quot;${line2}&quot;/&gt;
+
+&lt;mail mailhost=&quot;somehost@xyz.com&quot; mailport=&quot;25&quot; subject=&quot;Test build&quot;  charset=&quot;utf-8&quot;&gt;
+  &lt;from address=&quot;me@myist.com&quot;/&gt;
+  &lt;to address=&quot;all@xyz.com&quot; /&gt;
+  &lt;message&gt;some international text:${line2}&lt;/message&gt;
+&lt;/mail&gt;
+</pre></blockquote>
+
+<p>Sends an eMail from <i>me@myisp.com</i> to <i>all@xyz.com</i> with a subject of
+<i>Test Build</i>, the message body being coded in UTF-8
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/manifest.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/manifest.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/manifest.html	(revision 14989)
@@ -0,0 +1,141 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Manifest Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="manifest">Manifest</a></h2>
+<h3>Description</h3>
+<p>Creates a manifest file.</p>
+
+<p>This task can be used to write a Manifest file, optionally
+replacing or updating an existing file.</p>
+
+<p>Manifests are processed according to the 
+<a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html">Jar
+file specification.</a>. Specifically, a manifest element consists of
+a set of attributes and sections. These sections in turn may contain
+attributes. Note in particular that this may result in manifest lines
+greater than 72 bytes being wrapped and continued on the next
+line.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the manifest-file to create/update.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">mode</td>
+    <td valign="top">One of "update" or "replace", default is "replace".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding used to read the existing manifest when updating.</td>
+    <td valign="top" align="center">No, defaults to UTF-8 encoding.</td>
+  </tr>
+</table>
+
+<h3>Nested elements</h3>
+<a name="attribute"></a><h4>attribute</h4>
+<p>One attribute for the manifest file.  Those attributes that are
+not nested into a section will be added to the "Main" section.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the attribute.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the value of the attribute.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+
+<h4>section</h4>
+<p>A manifest section - you can nest <a
+href="#attribute">attribute</a> elements into sections.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the section.</td>
+    <td valign="top" align="center">No, if omitted it will be assumed
+       to be the main section.</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;manifest file=&quot;MANIFEST.MF&quot;&gt;
+    &lt;attribute name=&quot;Built-By&quot; value=&quot;${user.name}&quot;/&gt;
+    &lt;section name=&quot;common&quot;&gt;
+      &lt;attribute name=&quot;Specification-Title&quot; value=&quot;Example&quot;/&gt;
+      &lt;attribute name=&quot;Specification-Version&quot; value=&quot;${version}&quot;/&gt;
+      &lt;attribute name=&quot;Specification-Vendor&quot; value=&quot;Example Organization&quot;/&gt;
+      &lt;attribute name=&quot;Implementation-Title&quot; value=&quot;common&quot;/&gt;
+      &lt;attribute name=&quot;Implementation-Version&quot; value=&quot;${version} ${TODAY}&quot;/&gt; 
+      &lt;attribute name=&quot;Implementation-Vendor&quot; value=&quot;Example Corp.&quot;/&gt;
+    &lt;/section&gt;
+    &lt;section name=&quot;common/class1.class&quot;&gt;
+      &lt;attribute name=&quot;Sealed&quot; value=&quot;false&quot;/&gt;
+    &lt;/section&gt;
+  &lt;/manifest&gt;
+</pre>
+
+<p>Creates or replaces the file MANIFEST.MF.  Note that the Built-By
+attribute will take the value of the Ant property ${user.name}.  The
+same is true for the ${version} and ${TODAY} properties.  This example
+produces a MANIFEST.MF that contains 
+<a href="http://java.sun.com/products/jdk/1.2/docs/guide/versioning/index.html">package
+version identification</a> for the package <code>common</code>.</p>
+
+<p>The manifest produced by the above would look like this:</p>
+
+<pre><code>Manifest-Version: 1.0
+Built-By: bodewig
+Created-By: Apache Ant 1.5alpha
+
+Name: common
+Specification-Title: Example
+Specification-Vendor: Example Organization
+Implementation-Vendor: Example Corp.
+Specification-Version: 1.1
+Implementation-Version: 1.1 February 19 2002
+Implementation-Title: common
+
+Name: common/class1.class
+Sealed: false
+
+</code></pre>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/mkdir.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/mkdir.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/mkdir.html	(revision 14989)
@@ -0,0 +1,39 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Mkdir Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="mkdir">Mkdir</a></h2>
+<h3>Description</h3>
+<p>Creates a directory. Also non-existent parent directories are created, when
+necessary.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory to create.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>&lt;mkdir dir=&quot;${dist}&quot;/&gt;</pre>
+<p>creates a directory <code>${dist}</code>.</p>
+<pre>&lt;mkdir dir=&quot;${dist}/lib&quot;/&gt;</pre>
+<p>creates a directory <code>${dist}/lib</code>.</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2001,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/move.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/move.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/move.html	(revision 14989)
@@ -0,0 +1,174 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Move Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="move">Move</a></h2>
+<h3>Description</h3>
+<p>Moves a file to a new file or directory, or sets of files to
+a new directory.  By default, the
+destination file is overwritten if it already exists.  When <var>overwrite</var> is
+turned off, then files are only moved if the source file is newer than
+the destination file, or when the destination file does not exist.</p>
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select sets of files
+to move to the <var>todir</var> directory.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file to move</td>
+    <td valign="top" align="center">One of <var>file</var> or
+     at least one nested fileset element</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the moved files the same last modified
+      time as the original source files.
+      (<em>Note</em>: Ignored on Java 1.1)</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">the file to move to</td>
+    <td valign="top" align="center" rowspan="2">With the <var>file</var> attribute,
+    either <var>tofile</var> or <var>todir</var> can be used.  With nested filesets,
+    if the fileset size is greater than 1 or if the only entry in the fileset is a
+    directory or if the <var>file</var> attribute is already specified, only
+    <var>todir</var> is allowed</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">the directory to move to</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">overwrite existing files even if the destination
+      files are newer (default is &quot;true&quot;)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place during
+      the move.  See the <a href="filter.html">filter</a> task for a description of
+      how filters work.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">flatten</td>
+    <td valign="top">ignore directory structure of source directory,
+      copy all files into a single directory, specified by the <var>todir</var>
+      attribute (default is &quot;false&quot;).Note that you can achieve the
+      same effect by using a <a href="../CoreTypes/mapper.html#flatten-mapper">flatten mapper</a></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+	 <td valign="top">Copy empty directories included with the nested FileSet(s).
+	   Defaults to &quot;yes&quot;.</td>
+	 <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Log a warning message, but do not stop the
+       build, when the file to copy does not exist or one of the nested
+       filesets points to a directory that doesn't exist or an error occurs
+       while moving.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+     <td valign="top">Log the files that are being moved.</td>
+     <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding to assume when filter-copying the
+    files. <em>since Ant 1.5</em>.</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The encoding to use when writing the files.
+    <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to the value of the encoding
+    attribute if given or the default JVM encoding otherwise.</td>
+  </tr>
+  <tr>
+    <td valign="top">enablemultiplemapping</td>
+    <td valign="top">
+      If true the task will process to all the mappings for a
+      given source path. If false the task will only process
+      the first file or directory. This attribute is only relevant
+      if there is a mapper subelement.
+      <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to false.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>mapper</h4>
+<p>You can define file name transformations by using a nested <a
+href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
+<code>&lt;copy&gt;</code> is the <a
+href="../CoreTypes/mapper.html#identity-mapper">identity</a>.</p>
+<h4>filterchain</h4>
+<p>The Move task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.</p>
+
+<p>
+If &lt;filterset&gt; and &lt;filterchain&gt; elements are used inside the
+same &lt;move&gt; task, all &lt;filterchain&gt; elements are processed first
+followed by &lt;filterset&gt; elements.
+</p>
+
+<h3>Examples</h3>
+<p><b>Move a single file (rename a file)</b></p>
+<pre>
+  &lt;move file=&quot;file.orig&quot; tofile=&quot;file.moved&quot;/&gt;
+</pre>
+<p><b>Move a single file to a directory</b></p>
+<pre>
+  &lt;move file=&quot;file.orig&quot; todir=&quot;dir/to/move/to&quot;/&gt;
+</pre>
+<p><b>Move a directory to a new directory</b></p>
+<pre>
+  &lt;move todir=&quot;new/dir/to/move/to&quot;&gt;
+    &lt;fileset dir=&quot;src/dir&quot;/&gt;
+  &lt;/move&gt;
+</pre>
+<p><b>Move a set of files to a new directory</b></p>
+<pre>
+  &lt;move todir=&quot;some/new/dir&quot;&gt;
+    &lt;fileset dir=&quot;my/src/dir&quot;&gt;
+      &lt;include name=&quot;**/*.jar&quot;/&gt;
+      &lt;exclude name=&quot;**/ant.jar&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/move&gt;
+</pre>
+<p><b>Append <code>&quot;.bak&quot;</code> to the names of all files
+in a directory.</b></p>
+<pre>
+  &lt;move todir=&quot;my/src/dir&quot; includeemptydirs=&quot;false&quot;&gt;
+    &lt;fileset dir=&quot;my/src/dir&quot;&gt;
+      &lt;exclude name=&quot;**/*.bak&quot;/&gt;
+    &lt;/fileset&gt;
+    &lt;mapper type=&quot;glob&quot; from=&quot;*&quot; to=&quot;*.bak&quot;/&gt;
+  &lt;/move&gt;
+</pre>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/nice.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/nice.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/nice.html	(revision 14989)
@@ -0,0 +1,57 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Nice Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="echo">Nice</a></h2>
+<h3>Description</h3>
+<p>Provide "nice-ness" to the current thread
+   and/or query the current value.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">currentpriority</td>
+    <td valign="top">the name of the property whose value should be
+                     set to the current &quot;nice-ness&quot; level.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newpriority</td>
+    <td valign="top">the value to which the
+                     &quot;nice-ness&quot; level should be set.
+                     Must be a valid Java Thread priority.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>   &lt;nice newpriority=&quot;10&quot; /&gt;</pre>
+Set the Thread priority to 10.
+<pre>   &lt;nice currentpriority=&quot;priority&quot; /&gt;</pre>
+Store the current Thread priority in the user property "priority".
+<pre>
+   &lt;nice currentpriority=&quot;currentpriority&quot; newpriority=&quot;1&quot; /&gt;
+</pre>
+<p>Set the current Thread priority to 1, storing the original
+priority in the user property "currentpriority".  This
+can be used to set the priority back to its original value later.
+</p>
+<hr>
+
+<p align="center">Copyright &copy; 2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/pack.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/pack.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/pack.html	(revision 14989)
@@ -0,0 +1,50 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>GZip/BZip2 Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<a name="pack"></a><h2>GZip/BZip2</h2>
+<h3>Description</h3>
+<p>Packs a file using the GZip or BZip2 algorithm.
+The output file is only generated if it doesn't exist or the source
+file is newer.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the file to gzip/bzip.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the destination file to create.</td>
+    <td align="center" valign="top" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">zipfile</td>
+    <td valign="top">the <i>deprecated</i> old name of destfile.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;gzip src=&quot;test.tar&quot; destfile=&quot;test.tar.gz&quot;/&gt;</code></p>
+</blockquote>
+<blockquote>
+  <p><code>&lt;bzip2 src=&quot;test.tar&quot; destfile=&quot;test.tar.bz2&quot;/&gt;</code></p>
+</blockquote>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/parallel.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/parallel.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/parallel.html	(revision 14989)
@@ -0,0 +1,186 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Parallel Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2>Parallel</h2>
+<h3>Description</h3>
+<p>Parallel is a container task - it can contain other Ant tasks. Each nested
+task within the parallel task will be executed in its own thread. </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">threadCount</td>
+    <td valign="top">Maximum numbers of thread to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">threadsPerProcessor</td>
+    <td valign="top">Maximum number of threads to use per available processor
+(Requires JDK 1.4)</td>
+    <td align="center" valign="top">No, defers to threadCount</td>
+  </tr>
+  <tr>
+    <td valign="top">pollInterval</td>
+    <td valign="top">Currently has no effect</td>
+    <td align="center" valign="top">No, default is 1000</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Number of milliseconds before execution is terminated</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonany</td>
+    <td valign="top">If any of the nested tasks fails, execution of the task completes
+                     at that point without waiting for any other tasks to complete.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>Parallel tasks have a number of uses in an Ant build file including:</p>
+<ul>
+<li>Taking advantage of available processing resources to reduce build time</li>
+<li>Testing servers, where the server can be run in one thread and the test
+harness is run in another thread.</li>
+</ul>
+
+<p>Care must be taken when using multithreading to ensure the tasks within the
+threads do not interact. For example, two javac compile tasks which write
+classes into the same destination directory may interact where one tries to
+read a class for dependency information while the other task is writing the
+class file. Be sure to avoid these types of interactions within a
+&lt;parallel&gt; task</p>
+
+<p>Any valid Ant task may be embedded within a
+parallel task, including other parallel tasks.</p>
+
+<p>Note that while the tasks within the parallel task are being run, the main
+thread will be blocked waiting for all the child threads to complete. If
+execution is terminated by a timeout or a nested task failure when the failonany
+flag is set, the parallel task will complete without waiting for other nested
+tasks to complete in other threads.
+</p>
+
+<p>If any of the tasks within the &lt;parallel&gt; task fails and failonany is
+not set, the remaining tasks in other threads will continue to run until
+all threads have completed. In this situation, the parallel task will also fail.</p>
+
+<p>The parallel task may be combined with the <a href="sequential.html">
+sequential</a> task to define sequences of tasks to be executed on each thread
+within the parallel block</p>
+
+<p>The threadCount attribute can be used to place a maximum number of available
+threads for the execution.  When not present all child tasks will be executed at
+once.  When present then the maximum number of concurrently executing tasks will
+not exceed the number of threads specified.  Furthermore, each task will be
+started in the order they are given.  But no guarantee is made as to the speed
+of execution or the order of completion of the tasks, only that each will be
+started before the next.<p>
+
+<p>If you are using J2RE 1.4 or later you can also use the threadsPerProcessor
+and the number of available threads will be the stated multiple of the number of
+processors (there is no affinity to a particular processor however).  This will
+override the value in threadCount.  If threadsPerProcessor is specified using
+any version prior to 1.4 then the value in threadCount will be used as is.</p>
+
+<p>When using threadCount and threadsPerProcessor care should be taken to ensure
+that the build does not deadlock.  This can be caused by tasks such as waitFor
+taking up all available threads before the tasks that would unlock the waitfor
+would occur.  This is not a repalcement for Java Language level thread
+semantics and is best used for "embarassingly parallel" tasks.</p>
+
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>daemons</h4>
+<p>
+The parallel task supports a &lt;daemons&gt; nested element. This is a list of tasks
+which are to be run in parallel daemon threads. The parallel task will not wait for
+these tasks to complete. Being daemon threads, however, they will not prevent Ant from
+completing, whereupon the threads are terminated. Failures in daemon threads which
+occur before the parallel task itself finishes will be reported and can cause
+parallel to throw an exception. Failures which occur after parallel has completed are not
+reported.
+</p>
+
+<p>Daemon tasks can be used, for example, to start test servers which might not be easily
+terminated from Ant. By using &lt;daemons&gt; such servers do not halt the build.
+</p>
+
+
+<h3>Examples</h3>
+<pre>
+&lt;parallel&gt;
+  &lt;wlrun ... &gt;
+  &lt;sequential&gt;
+    &lt;sleep seconds=&quot;30&quot;/&gt;
+    &lt;junit ... &gt;
+    &lt;wlstop/&gt;
+  &lt;/sequential&gt;
+&lt;/parallel&gt;
+</pre>
+<p>This example represents a typical pattern for testing a server application.
+In one thread the server is started (the wlrun task). The other thread consists
+of a three tasks which are performed in sequence. The sleep task is used to
+give the server time to come up. Another task which is capable of validating
+that the server is available could be used in place of the sleep task. The
+test harness is then run. Once the tests are complete, the server is stopped
+(using wlstop in this example), allowing both threads to complete. The
+parallel task will also complete at this time and the build will then
+continue.</p>
+
+<pre>
+&lt;parallel&gt;
+  &lt;javac ...&gt; &lt;!-- compiler servlet code --&gt;
+  &lt;wljspc ...&gt; &lt;!-- precompile JSPs --&gt;
+&lt;/parallel&gt;
+</pre>
+
+<p>This example shows two independent tasks being run to achieve better
+resource utilization during the build. In this instance, some servlets are being
+compiled in one thead and a set of JSPs is being precompiled in another. As
+noted above, you need to be careful that the two tasks are independent, both in
+terms of their dependencies and in terms of their potential interactions in
+Ant's external environment.</p>
+
+<pre>
+&lt;parallel threadCount='4'&gt;
+  &lt;ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'&gt;
+    &lt;param name='file' value='one.txt'/&gt;
+  &lt;/ant&gt;
+  &lt;ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'&gt;
+    &lt;param name='file' value='two.txt'/&gt;
+  &lt;/ant&gt;
+  &lt;ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'&gt;
+    &lt;param name='file' value='three.txt'/&gt;
+  &lt;/ant&gt;
+  &lt;!-- repeated about 40 times --&gt;
+&lt;/parallel&gt;
+</pre>
+
+<p>This example represents a typical need for use of the threadCount and
+threadsPerProcessor attributes.  Spinning up all 40 of those tasks could cripple
+the JVM for memory and the CPU for available time.  By limiting the number of
+concurrent executions you can get the task done in about the same assuming
+infinite memory time without needing infinite memory.  This is also a good
+candidiate for use of threadCount (and possibly threadsPerProcessor) because
+each task (in this hypothetical case) is independent and has no dependencies on
+the other tasks.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/patch.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/patch.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/patch.html	(revision 14989)
@@ -0,0 +1,90 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Patch Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="patch">Patch</a></h2>
+<h3>Description</h3>
+<p>Applies a diff file to originals. ; requires "patch" to be
+ on the execution path.  </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">patchfile</td> 
+    <td valign="top">the file that includes the diff output</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">originalfile</td> 
+    <td valign="top">the file to patch</td>
+    <td align="center" valign="top">No, tries to guess it from the diff 
+      file</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td> 
+    <td valign="top">the file to send the output to instead of
+      patching the file(s) in place.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">backups</td> 
+    <td valign="top">Keep backups of the unpatched files</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td> 
+    <td valign="top">Work silently unless an error occurs</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">reverse</td> 
+    <td valign="top">Assume patch was created with old and new files 
+      swapped.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignorewhitespace</td> 
+    <td valign="top">Ignore whitespace differences.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strip</td> 
+    <td valign="top">Strip the smallest prefix containing <i>num</i> leading 
+      slashes from filenames.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td> 
+    <td valign="top">The directory in which to run the patch command.</td>
+    <td align="center" valign="top">No, default is the project's basedir.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;patch patchfile=&quot;module.1.0-1.1.patch&quot;/&gt;</pre>
+<p>applies the diff included in <i>module.1.0-1.1.patch</i> to the
+files in base directory guessing the filename(s) from the diff output.</p>
+<pre>  &lt;patch patchfile=&quot;module.1.0-1.1.patch&quot; strip=&quot;1&quot;/&gt;</pre>
+<p>like above but one leading directory part will be removed. i.e. if
+the diff output looked like</p>
+<pre>
+--- a/mod1.0/A	Mon Jun  5 17:28:41 2000
++++ a/mod1.1/A	Mon Jun  5 17:28:49 2000
+</pre> 
+the leading <i>a/</i> will be stripped.
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/pathconvert.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/pathconvert.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/pathconvert.html	(revision 14989)
@@ -0,0 +1,194 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>PathConvert Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="foreach">Pathconvert</a></h2>
+<h3>Description</h3>
+<p>Converts a nested <code>&lt;path&gt;</code> or reference to a Path,
+FileSet, DirSet, or FileList into a path
+form for a particular platform, and stores the result in a given property.
+It can also be used when you need
+to convert a Path, FileSet, or DirSet into a list, separated by a given
+character, such as a comma or space, or, conversely, to convert a list
+of files in a FileList into a path.
+</p>
+<p>Nested <code>&lt;map&gt;</code> elements can be specified to map Windows
+drive letters to Unix paths, and vice-versa.</p>
+<p>More complex transformations can be achieved using a nested
+<a href="../CoreTypes/mapper.html"><code>&lt;mapper&gt;</code></a>
+(since Ant 1.6.2).
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">targetos</td>
+    <td valign="top">
+        The target architecture.  Must be one of 'unix', 'windows', 
+        'netware', 'tandem' or 'os/2'.
+        This is a shorthand mechanism for specifying both
+        <code>pathsep</code> and <code>dirsep</code>
+        according to the specified target architecture.
+    </td>
+    <td valign="top" align="center">
+       Yes, unless <code>pathsep</code> and/or
+       <code>dirsep</code> are specified.
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">dirsep</td>
+    <td valign="top">
+       The character(s) to use as the directory separator in the
+       generated paths.
+    </td>
+    <td valign="top" align="center">No, defaults to current JVM <tt>File.separator</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">pathsep</td>
+    <td valign="top">
+       The character(s) to use as the path-element separator in the
+       generated paths.
+    </td>
+    <td valign="top" align="center">No, defaults to current JVM <tt>File.pathSeparator</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property in which to place the converted path.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">What to convert, given as a
+        <a href="../using.html#references">reference</a> to a
+        <code>&lt;path&gt;</code>, <code>&lt;fileset&gt;</code>,
+        <code>&lt;dirset&gt;</code>, or <code>&lt;filelist&gt;</code>
+        defined elsewhere</td>
+    <td valign="top" align="center">No; if omitted, a nested
+        <code>&lt;path&gt;</code> element must be supplied.</td>
+  </tr>
+    <td valign="top">setonempty</td>
+    <td valign="top">Should the property be set, even if the result
+      is the empty string?
+    <td valign="top" align="center">No; default is &quot;true&quot;.
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>map</h4>
+<p>Specifies the mapping of path prefixes between Unix and Windows.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">The prefix to match.  Note that this value is case-insensitive when
+    the build is running on a Windows platform and case-sensitive when running on a
+    Unix platform.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">to</td>
+    <td valign="top">The replacement text to use when <code>from</code> is matched.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<p>Each map element specifies a single replacement map to be applied to the elements of
+   the path being processed.  If no map entries are specified, then no path prefix mapping
+   is performed.
+</p>
+<p><strong>Note</strong>: The map elements are applied in the order specified,
+and only the first matching map element is applied.  So, the ordering of
+your map elements can be important, if any <code>from</code> values are
+prefixes of other <code>from</code> values.</i>
+</p>   
+<h4>path</h4>
+<p>If the <code>refid</code> attribute is not specified, then a
+   nested <code>&lt;path&gt;</code> element must be supplied.  See
+   <a href="../using.html#path">Path-like Structures</a> for details.</p>
+<h4>mapper</h4>
+<p>A single nested <a href="../CoreTypes/mapper.html">
+<code>&lt;mapper&gt;</code></a> element can be specified
+to perform any of various filename transformations (since Ant 1.6.2).
+</p>
+
+<h3>Examples</h3>
+<p>In the examples below, assume that the <code>${wl.home}</code> property
+has the value
+<code>d:\weblogic</code>, and <code>${wl.home.unix}</code> has the value
+<code>/weblogic</code>.</p>
+<h4>Example 1</h4>
+<pre>
+    &lt;path id="wl.path"&gt;
+      &lt;pathelement location=&quot;${wl.home}/lib/weblogicaux.jar&quot;/&gt;
+      &lt;pathelement location=&quot;${wl.home}/classes&quot;/&gt;
+      &lt;pathelement location=&quot;${wl.home}/mssqlserver4/classes&quot;/&gt;
+      &lt;pathelement location=&quot;c:\winnt\System32&quot;/&gt;
+    &lt;/path&gt;
+    
+    &lt;pathconvert targetos=&quot;unix&quot; property=&quot;wl.path.unix&quot; refid=&quot;wl.path&quot;&gt;
+      &lt;map from=&quot;${wl.home}&quot; to=&quot;${wl.home.unix}&quot;/&gt;
+      &lt;map from=&quot;c:&quot; to=&quot;&quot;/&gt;
+    &lt;/pathconvert&gt;
+</pre>
+<p> will generate the path shown below
+and store it in the property named <code>wl.path.unix</code>.
+</p>   
+<pre>
+/weblogic/lib/weblogicaux.jar:/weblogic/classes:/weblogic/mssqlserver4/classes:/WINNT/SYSTEM32
+</pre>
+
+<h4>Example 2</h4>
+Given a FileList defined as:
+<pre>
+  &lt;filelist id=&quot;custom_tasks.jars&quot;
+        dir=&quot;${env.HOME}/ant/lib&quot;
+        files=&quot;njavac.jar,xproperty.jar&quot;/&gt;
+</pre>
+then:
+<pre>
+    &lt;pathconvert targetos=&quot;unix&quot; property=&quot;custom_tasks.jars&quot; refid=&quot;custom_tasks.jars&quot;&gt;
+      &lt;map from=&quot;${env.HOME}&quot; to=&quot;/usr/local&quot;/&gt;
+    &lt;/pathconvert&gt;
+</pre>
+will convert the list of files to the following Unix path:
+<pre>
+/usr/local/ant/lib/njavac.jar:/usr/local/ant/lib/xproperty.jar
+</pre>
+
+<h4>Example 3</h4>
+<pre>
+    &lt;fileset dir=&quot;${src.dir}&quot; id=&quot;src.files&quot;&gt;
+      &lt;include name=&quot;**/*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  
+    &lt;pathconvert pathsep=&quot;,&quot; property=&quot;javafiles&quot; refid=&quot;src.files&quot;/&gt;
+</pre>
+<p>This example takes the set of files determined by the fileset (all files ending
+in <tt>.java</tt>), joins them together separated by commas, and places the resulting
+list into the property <tt>javafiles</tt>.  The directory separator is not specified, so
+it defaults to the appropriate character for the current platform.  Such a list could
+then be used in another task, like <tt>javadoc</tt>, that requires a comma separated
+list of files.
+</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation.
+All rights Reserved.</p>
+</body>
+</html>
+
+ 
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/presetdef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/presetdef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/presetdef.html	(revision 14989)
@@ -0,0 +1,150 @@
+<html>
+  
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <title>PreSetDef Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+  </head>
+  
+  <body>
+
+    <a name="presetdef"></a><h2>PreSetDef</h2>
+    <h3>Description</h3>
+    <p>
+      The preset definition generates a new definition
+      based on a current definition with some attributes
+      or elements preset.
+    </p>
+    <p>
+      <em>since Ant 1.6</em>
+    </p>
+    <p>
+      The resolution of properties in any of the attributes or
+      nested text takes place with the definition is used and <em>not</em>
+      when the preset definition is defined.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">the name of the new definition</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">uri</td>
+        <td valign="top">
+          The uri that this definition should live in.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+    <h3>Parameters specified as nested elements</h3>
+    <h4>another type with attributes or elements set</h4>
+    <p>The &lt;presetdef&gt; task takes one nested element as a parameter.
+      This nested element can be any other type or task. The attributes
+      and elements that need to be preset are placed here.
+    </p>
+    
+    <h3>Examples</h3>
+      The following fragment defines a javac task with the debug, deprecation
+      srcdir and destdir
+      attributes set. It also has a src element to source files from a generated
+      directory.
+    <blockquote>
+<pre class="code">
+&lt;presetdef name="my.javac"&gt;
+   &lt;javac debug="${debug}" deprecation="${deprecation}"
+          srcdir="${src.dir}" destdir="${classes.dir}"&gt;
+      &lt;src path="${gen.dir}"/&gt;
+   &lt;/javac&gt;
+&lt;/presetdef&gt;
+</pre>
+    </blockquote>
+      This can be used as a normal javac task - example:
+    <blockquote>
+<pre class="code">
+&lt;my.javac/&gt;
+</pre>
+    </blockquote>
+      The attributes specified in the preset task may be overridden - i.e.
+      they may be seen as optional attributes - example:
+    <blockquote>
+<pre class="code">
+&lt;my.javac srcdir="${test.src}" deprecation="no"/&gt;
+</pre>
+    </blockquote>
+      One may put a presetdef definition in an antlib.
+      For example suppose the jar file antgoodies.jar has
+      the antlib.xml as follows:
+    <blockquote>
+<pre class="code">
+&lt;antlib&gt;
+   &lt;taskdef resource="com/acme/antgoodies/tasks.properties"/&gt;
+   &lt;!-- Implement the common use of the javac command --&gt;
+   &lt;presetdef name="javac"&gt;
+      &lt;javac deprecation="${deprecation}" debug="${debug}"
+             srcdir="src" destdir="classes"/&gt;
+   &lt;/presetdef&gt;
+&lt;/antlib&gt;
+</pre>
+    </blockquote>
+      One may then use this in a build file as follows:
+    <blockquote>
+<pre class="code">
+&lt;project default="example" xmlns:antgoodies="antlib:com.acme.antgoodies"&gt;
+   &lt;target name="example"&gt;
+      &lt;!-- Compile source --&gt;
+      &lt;antgoodies:javac srcdir="src/main"/&gt;
+      &lt;!-- Compile test code --&gt;
+      &lt;antgoodies:javac srcdir="src/test"/&gt;
+   &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following is an example of evaluation of properties when the
+      definition is used:
+    </p>
+     <blockquote>
+<pre class="code">
+&lt;target name="defineandcall"&gt;
+   &lt;presetdef name="showmessage"&gt;
+      &lt;echo&gt;message is '${message}'&lt;/echo&gt;
+   &lt;/presetdef&gt;
+   &lt;showmessage/&gt;
+   &lt;property name="message" value="Message 1"/&gt;
+   &lt;showmessage/&gt;
+   &lt;antcall target="called"&gt;
+      &lt;param name="message" value="Message 2"/&gt;
+   &lt;/antcall&gt;
+&lt;/target&gt;
+&lt;target name="called"&gt;
+   &lt;showmessage/&gt;
+&lt;/target&gt;
+</pre>
+     </blockquote>
+     <p>
+        The command ant defineandcall results in the output:
+     </p>
+     <blockquote>
+<pre class="code">
+defineandcall:
+[showmessage] message is '${message}'
+[showmessage] message is 'Message 1'
+
+called:
+[showmessage] message is 'Message 2'
+</pre>
+     </blockquote>
+    <hr></hr>
+    <p align="center">Copyright &copy; 2003-2004 The Apache Software
+      Foundation. All rights Reserved.</p>
+    
+  </body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/property.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/property.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/property.html	(revision 14989)
@@ -0,0 +1,201 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Property Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="property">Property</a></h2>
+<h3>Description</h3>
+<p>Sets a property (by name and value), or set of properties (from file or
+resource) in the project.  Properties are case sensitive.</p>
+ Properties are immutable: whoever sets a property first freezes it for the
+ rest of the build; they are most definately not variable.
+<p>There are six ways to set properties:</p>
+<ul>
+  <li>By supplying both the <i>name</i> and <i>value</i> attribute.</li>
+  <li>By supplying both the <i>name</i> and <i>refid</i> attribute.</li>
+  <li>By setting the <i>file</i> attribute with the filename of the property
+    file to load. This property file has the format as defined by the file used
+    in the class java.util.Properties, with the same rules about how
+    non-ISO8859-1 characters must be escaped.</li>
+  <li>By setting the <i>url</i> attribute with the url from which to load the
+    properties. This url must be directed to a file that has the format as defined
+    by the file used in the class java.util.Properties.</li>
+  <li>By setting the <i>resource</i> attribute with the resource name of the
+    property file to load. A resource is a property file on the current
+    classpath, or on the specified classpath.</li>
+  <li>By setting the <i>environment</i> attribute with a prefix to use.
+    Properties will be defined for every environment variable by
+    prefixing the supplied name and a period to the name of the variable.</li>
+</ul>
+<p>Although combinations of these ways are possible, only one should be used
+at a time. Problems might occur with the order in which properties are set, for
+instance.</p>
+<p>The value part of the properties being set, might contain references to other
+properties. These references are resolved at the time these properties are set.
+This also holds for properties loaded from a property file.</p>
+<p>A list of predefined properties can be found <a
+href="../using.html#built-in-props">here</a>.</p>
+
+<h4>OpenVMS Users</h4>
+<p>With the <code>environment</code> attribute this task will load all defined
+logicals on an OpenVMS system.  Logicals with multiple equivalence names get
+mapped to a property whose value is a comma separated list of all equivalence
+names.  If a logical is defined in multiple tables, only the most local
+definition is available (the table priority order being PROCESS, JOB, GROUP,
+SYSTEM).
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the property to set.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the value of the property.</td>
+    <td valign="middle" align="center" rowspan="3">One of these, when using the
+       name attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">Sets the property to the absolute filename of the
+      given file. If the value of this attribute is an absolute path, it
+      is left unchanged (with / and \ characters converted to the
+      current platforms conventions). Otherwise it is taken as a path
+      relative to the project's basedir and expanded.</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top"><a href="../using.html#references">Reference</a> to an object
+      defined elsewhere. Only yields reasonable results for references
+      to <a href="../using.html#path">PATH like structures</a> or properties.</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">the resource name of the property file.</td>
+    <td valign="middle" align="center" rowspan="4">One of these, when
+      <b>not</b> using the name attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the filename of the property file .</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">the url from which to read properties.</td>
+  </tr>
+  <tr>
+    <td valign="top">environment</td>
+    <td valign="top">the prefix to use when retrieving environment variables. Thus
+    if you specify environment=&quot;myenv&quot; you will be able to access OS-specific
+    environment variables via property names &quot;myenv.PATH&quot; or
+    &quot;myenv.TERM&quot;. Note that if you supply a property name with a final
+    &quot;.&quot; it will not be doubled. ie environment=&quot;myenv.&quot; will still
+    allow access of environment variables through &quot;myenv.PATH&quot; and
+    &quot;myenv.TERM&quot;. This functionality is currently only implemented
+    on select platforms. Feel free to send patches to increase the number of platforms
+    this functionality is supported on ;).<br>
+    Note also that properties are case sensitive, even if the
+    environment variables on your operating system are not, e.g. it
+    will be ${env.Path} not ${env.PATH} on Windows 2000.</td>
+
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up a resource.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use when looking up a resource,
+      given as <a href="../using.html#references">reference</a> to a &lt;path&gt; defined
+      elsewhere..</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">Prefix to apply to properties loaded using <code>file</code>
+    or <code>resource</code>. A "." is appended to the prefix if not specified.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p><code>Property</code>'s <i>classpath</i> attribute is a <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<i>classpath</i> element.</p>
+<h3>Examples</h3>
+<pre>  &lt;property name=&quot;foo.dist&quot; value=&quot;dist&quot;/&gt;</pre>
+<p>sets the property <code>foo.dist</code> to the value &quot;dist&quot;.</p>
+<pre>  &lt;property file=&quot;foo.properties&quot;/&gt;</pre>
+<p>reads a set of properties from a file called &quot;foo.properties&quot;.</p>
+<pre>  &lt;property url=&quot;http://www.mysite.com/bla/props/foo.properties&quot;/&gt;</pre>
+<p>reads a set of properties from the address &quot;http://www.mysite.com/bla/props/foo.properties&quot;.</p>
+<pre>  &lt;property resource=&quot;foo.properties&quot;/&gt;</pre>
+<p>reads a set of properties from a resource called &quot;foo.properties&quot;.</p>
+<p>Note that you can reference a global properties file for all of your Ant
+builds using the following:</p>
+<pre>  &lt;property file=&quot;${user.home}/.ant-global.properties&quot;/&gt;</pre>
+<p>since the &quot;user.home&quot; property is defined by the Java virtual machine
+to be your home directory.  Where the &quot;user.home&quot; property resolves to in
+the file system depends on the operating system version and the JVM implementation.
+On Unix based systems, this will map to the user's home directory. On modern Windows
+variants, this will most likely resolve to the user's directory in the &quot;Documents
+and Settings&quot; folder. Older windows variants such as Windows 98/ME are less
+predictable, as are other operating system/JVM combinations.</p>
+
+<pre>
+  &lt;property environment=&quot;env&quot;/&gt;
+  &lt;echo message=&quot;Number of Processors = ${env.NUMBER_OF_PROCESSORS}&quot;/&gt;
+  &lt;echo message=&quot;ANT_HOME is set to = ${env.ANT_HOME}&quot;/&gt;
+</pre>
+<p>reads the system environment variables and stores them in properties, prefixed with &quot;env&quot;.
+Note that this only works on <em>select</em> operating systems.
+Two of the values are shown being echoed.
+</p>
+
+<h3>Property Files</h3>
+
+As stated, this task will load in a properties file stored in the file
+system, or as a resource on a classpath. Here are some interesting facts
+about this feature
+<ol>
+<li>If the file is not there, nothing is printed except at -verbose log
+level. This lets you have optional configuration files for every
+project, that team members can customize.
+<li>The rules for this format are laid down
+<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream)">by Sun</a>.
+This makes it hard for Team Ant to field bug reports about it.
+<li>Trailing spaces are not stripped. It may have been what you wanted.
+<li>Want unusual characters? Escape them \u0456 or \" style.
+<li>Ant Properties are expanded in the file.
+</ol>
+In-file property expansion is very cool. Learn to use it.
+<p>
+Example:
+<pre>
+build.compiler=jikes
+deploy.server=lucky
+deploy.port=8080
+deploy.url=http://${deploy.server}:${deploy.port}/
+</pre>
+
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/recorder.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/recorder.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/recorder.html	(revision 14989)
@@ -0,0 +1,157 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Recorder Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="log">Record</a></h2>
+<h3>Description</h3>
+<p>A recorder is a listener to the current build process that records the
+output to a file.</p>
+
+<p>Several recorders can exist at the same time.  Each recorder is
+associated with a file.  The filename is used as a unique identifier for
+the recorders.  The first call to the recorder task with an unused filename
+will create a recorder (using the parameters provided) and add it to the
+listeners of the build.  All subsequent calls to the recorder task using
+this filename will modify that recorders state (recording or not) or other
+properties (like logging level).</p>
+
+<p>Some technical issues: the file's print stream is flushed for &quot;finished&quot;
+events (buildFinished, targetFinished and taskFinished), and is closed on
+a buildFinished event.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the file this logger is associated with.</td>
+    <td align="center" valign="middle">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">This tells the logger what to do: should it start
+    recording or stop?  The first time that the recorder task is called for
+    this logfile, and if this attribute is not provided, then the default
+    for this attribute is &quot;start&quot;.  If this attribute is not provided on
+    subsequent calls, then the state remains as previous.
+    [Values = {start|stop}, Default = no state change]</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Should the recorder append to a file, or create a new
+    one? This is only applicable the first time this task is called for
+    this file.  [Values = {yes|no}, Default=no]</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">emacsmode</td>
+    <td valign="top">Removes <code>[task]</code> banners like Ant's
+    <code>-emacs</code> command line switch if set to
+    <em>true</em>.</td>
+    <td align="center" valign="middle">no, default is <em>false</em></td>
+  </tr>
+  <tr>
+    <td valign="top">loglevel</td>
+    <td valign="top">At what logging level should this recorder instance
+    record to?  This is not a once only parameter (like <code>append</code>
+    is) -- you can increase or decrease the logging level as the build process
+    continues.  [Values= {error|warn|info|verbose|debug}, Default = no change]
+    </td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p>The following build.xml snippet is an example of how to use the recorder
+to record just the <code>&lt;javac&gt;</code> task:</p>
+<pre>
+    ...
+    &lt;compile &gt;
+        &lt;record name=&quot;log.txt&quot; action=&quot;start&quot;/&gt;
+        &lt;javac ...
+        &lt;record name=&quot;log.txt&quot; action=&quot;stop&quot;/&gt;
+    &lt;compile/&gt;
+    ...
+</pre>
+
+<p>The following two calls to <code>&lt;record&gt;</code> set up two
+recorders: one to file &quot;records-simple.log&quot; at logging level <code>info</code>
+(the default) and one to file &quot;ISO.log&quot; using logging level of
+<code>verbose</code>.</p>
+<pre>
+    ...
+    &lt;record name=&quot;records-simple.log&quot;/&gt;
+    &lt;record name=&quot;ISO.log&quot; loglevel=&quot;verbose&quot;/&gt;
+    ...
+</pre>
+
+<h3>Notes</h3>
+<p>There is some functionality that I would like to be able to add in the
+future.  They include things like the following:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">listener</td>
+    <td valign="top">A classname of a build listener to use from this point
+    on instead of the default listener.</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">includetarget</td>
+    <td valign="top" rowspan=2>A comma-separated list of targets to automatically
+    record.  If this value is &quot;all&quot;, then all targets are recorded.
+    [Default = all]</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludetarget</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">includetask</td>
+    <td valign="top" rowspan=2>A comma-separated list of task to automatically
+    record or not.  This could be difficult as it could conflict with the
+    <code>includetarget/excludetarget</code>.  (e.g.:
+    <code>includetarget=&quot;compile&quot; exlcudetask=&quot;javac&quot;</code>, what should
+    happen?)</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludetask</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">add greater flexibility to the action attribute.  Things
+    like <code>close</code> to close the print stream.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top"></td>
+    <td valign="top"></td>
+    <td align="center" valign="top"></td>
+  </tr>
+</table>
+
+
+
+<hr><p align="center">Copyright &copy; 2001-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/rename.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/rename.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/rename.html	(revision 14989)
@@ -0,0 +1,50 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Rename Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="rename">Rename</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Move task instead.</i></p>
+<h3>Description</h3>
+<p>Renames a given file.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">file to rename.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">new name of the file.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">Enable replacing of existing file (default: on).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;rename src=&quot;foo.jar&quot; dest=&quot;${name}-${version}.jar&quot;/&gt;</pre> 
+<p>Renames the file <code>foo.jar</code> to <code>${name}-${version}.jar</code> (assuming <code>name</code>
+ and <code>version</code> being predefined properties). If a file named <code>${name}-${version}.jar</code>
+ already exists, it will be removed prior to renaming <code>foo.jar</code>.</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2001,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/replace.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/replace.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/replace.html	(revision 14989)
@@ -0,0 +1,191 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Replace Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="replace">Replace</a></h2>
+<h3>Description</h3>
+<p>Replace is a directory based task for replacing the occurrence of a given string with another string 
+in selected file.</p>
+<p>If you want to replace a text that crosses line boundaries, you
+must use a nested <code>&lt;replacetoken&gt;</code> element.</p>
+
+<p>The output file is only written if it differs from the existing
+file.  This prevents spurious rebuilds based on unchanged files which
+have been regenerated by this task.</p> 
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">file for which the token should be replaced.</td>
+    <td align="center" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The base directory to use when replacing a token in 
+      multiple files.</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the files upon which replace operates.</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">token</td>
+    <td valign="top">the token which must be replaced.</td>
+    <td valign="top" align="center">Yes, unless a nested
+    <code>replacetoken</code> element or the replacefilterfile
+    attribute is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the new value for the token. When omitted, an empty string
+      (&quot;&quot;) is used.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">summary</td>
+    <td valign="top">Indicates whether a summary of the replace operation 
+                     should be produced, detailing how many token occurrences 
+                     and files were processed
+                     </td>
+    <td valign="top" align="center">No, by default no summary is produced</td>
+  </tr>
+  <tr>
+    <td valign="top">propertyFile</td>
+    <td valign="top">valid property file from which properties specified using nested <code>&lt;replacefilter&gt;</code> elements are drawn.</td>
+    <td valign="top" align="center">Yes only if <i>property</i> attribute of <code>&lt;replacefilter&gt;</code> is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">replacefilterfile</td>
+    <td valign="top">valid property file.  Each property will be
+    treated as a replacefilter where <code>token</code> is the name of
+    the property and <code>value</code> is the properties value.
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;replace file=&quot;${src}/index.html&quot; token=&quot;@@@&quot; value=&quot;wombat&quot;/&gt;</pre>
+<p>replaces occurrences of the string &quot;@@@&quot; with the string
+&quot;wombat&quot;, in the file <code>${src}/index.html</code>.</p>
+<h3>Parameters specified as nested elements</h3>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code> as well as the
+nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>If either the text you want to replace or the replacement text
+cross line boundaries, you can use nested elements to specify
+them.</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;replace dir=&quot;${src}&quot; value=&quot;wombat&quot;&gt;
+  &lt;include name=&quot;**/*.html&quot;/&gt;
+  &lt;replacetoken&gt;&lt;![CDATA[multi line
+token]]&gt;&lt;/replacetoken&gt;
+&lt;/replace&gt;
+</pre></blockquote>
+<p>replaces occurrences of the string &quot;multi
+line<i>\n</i>token&quot; with the string &quot;wombat&quot;, in all
+HTML files in the directory <code>${src}</code>.Where <i>\n</i> is
+the platform specific line separator.</p>
+<blockquote><pre>
+&lt;replace file=&quot;${src}/index.html&quot;&gt;
+  &lt;replacetoken&gt;&lt;![CDATA[two line
+token]]&gt;&lt;/replacetoken&gt;
+  &lt;replacevalue&gt;&lt;![CDATA[two line
+token]]&gt;&lt;/replacevalue&gt;
+&lt;/replace&gt;
+</pre></blockquote>
+<h4>replacefilter</h4>
+<p>In addition to allowing for multiple replacements, optional nested <code>&lt;replacefilter&gt;</code> elements allow replacement values to be extracted from a property file. The name of this file is specified using the <code>&lt;replace&gt;</code> attribute <i>propertyFile</i>.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">token</td>
+    <td valign="top">The string to search for.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The replacement string.</td>
+    <td align="center" rowspan="2">Either may be specified, but not both. Both can be omitted, if desired.</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">Name of the property whose value is to serve as the replacement value.</td>
+  </tr>
+</table>
+<p>If neither <i>value</i> nor <i>property</i> is used, the value provided using the <code>&lt;replace&gt;</code> attribute <i>value</i> and/or the <code>&lt;replacevalue&gt;</code> element is used. If no value was specified using either of these options, the token is replaced with an empty string.
+</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;replace 
+    file=&quot;configure.sh&quot;
+    value=&quot;defaultvalue&quot;
+    propertyFile=&quot;source/name.properties&quot;&gt;
+  &lt;replacefilter 
+    token=&quot;@token1@&quot;/&gt;
+  &lt;replacefilter 
+    token=&quot;@token2@&quot; 
+    value=&quot;value2&quot;/&gt;
+  &lt;replacefilter 
+    token=&quot;@token3@&quot; 
+    property=&quot;property.key&quot;/&gt;
+&lt;/replace&gt;
+</pre></blockquote>
+<p>In file <code>configure.sh</code>, replace all instances of &quot;@token1@&quot; with &quot;defaultvalue&quot;, all instances of &quot;@token2@&quot; with &quot;value2&quot;, and all instances of &quot;@token3@&quot; with the value of the property &quot;property.key&quot;, as it appears in property file <code>src/name.properties</code>.</p>
+<p><b>Note:</b> It is possible to use either the <i>token</i>/<code>&lt;replacetoken&gt;</code> and <i>value</i>/<code>&lt;replacevalue&gt;</code> attributes/elements, the nested replacefilter elements, or both in the same operation.
+</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/rmic.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/rmic.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/rmic.html	(revision 14989)
@@ -0,0 +1,243 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Rmic Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="rmic">Rmic</a></h2>
+<h3>Description</h3>
+<p>Runs the rmic compiler for a certain class.</p>
+<p>Rmic can be run on a single class (as specified with the classname
+attribute) or a number of classes at once (all classes below base that
+are neither _Stub nor _Skel classes).  If you want to rmic a single
+class and this class is a class nested into another class, you have to
+specify the classname in the form <code>Outer$$Inner</code> instead of
+<code>Outer.Inner</code>.</p>
+<p>It is possible to refine the set of files that are being rmiced. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>base</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>It is possible to use different compilers. This can be selected
+with the &quot;build.rmic&quot; property or the <code>compiler</code>
+attribute. <a name="compilervalues">There are three choices</a>:</p>
+<ul>
+  <li>sun (the standard compiler of the JDK)</li>
+  <li>kaffe (the standard compiler of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
+  <li>weblogic</li>
+</ul>
+
+<p>The <a href="http://dione.zcu.cz/~toman40/miniRMI/">miniRMI</a>
+project contains a compiler implementation for this task as well,
+please consult miniRMI's documentation to learn how to use it.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">base</td>
+    <td valign="top">the location to store the compiled files.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the class for which to run <code>rmic</code>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcebase</td>
+    <td valign="top">Pass the &quot;-keepgenerated&quot; flag to rmic and
+ move the generated source file to the given sourcebase directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">stubversion</td>
+    <td valign="top">Specify the JDK version for the generated stub code.
+ Specify &quot;1.1&quot; to pass the &quot;-v1.1&quot; option to rmic.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use during compilation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use during compilation, given as <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verify</td>
+    <td valign="top">check that classes implement Remote before handing them 
+        to rmic (default is false)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">iiop</td>
+    <td valign="top">indicates that portable (RMI/IIOP) stubs should be generated</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">iiopopts</td>
+    <td valign="top">additional arguments for IIOP class generation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">idl</td>
+    <td valign="top">indicates that IDL output files should be generated</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">idlopts</td>
+    <td valign="top">additional arguments for IDL file generation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">generate debug info (passes -g to rmic). Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeAntRuntime</td> 
+    <td valign="top">whether to include the Ant run-time libraries;
+      defaults to <code>yes</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeJavaRuntime</td> 
+    <td valign="top">whether to include the default run-time
+      libraries from the executing VM; defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">extdirs</td>
+    <td valign="top">location of installed extensions.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">The compiler implementation to use.
+      If this attribute is not set, the value of the
+      <code>build.rmic</code> property, if set, will be used.
+      Otherwise, the default compiler for the current VM will be used.
+      (See the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath and extdirs</h4>
+<p><code>Rmic</code>'s <i>classpath</i> and <i>extdirs</i> attributes are <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<i>classpath</i> and <i>extdirs</i> elements.</p>
+
+<h4>compilerarg</h4>
+
+<p>You can specify additional command line arguments for the compiler
+with nested <code>&lt;compilerarg&gt;</code> elements.  These elements
+are specified like <a href="../using.html#arg">Command-line
+Arguments</a> but have an additional attribute that can be used to
+enable arguments only if a given compiler implementation will be
+used.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td>Only pass the specified argument if the chosen
+      compiler implementation matches the value of this attribute.
+      Legal values are the
+      same as those in the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;rmic classname=&quot;com.xyz.FooBar&quot; base=&quot;${build}/classes&quot;/&gt;</pre>
+<p>runs the rmic compiler for the class <code>com.xyz.FooBar</code>. The
+compiled files will be stored in the directory <code>${build}/classes</code>.</p>
+<pre>  &lt;rmic base=&quot;${build}/classes&quot; includes=&quot;**/Remote*.class&quot;/&gt;</pre>
+<p>runs the rmic compiler for all classes with <code>.class</code>
+files below <code>${build}/classes</code> whose classname starts with
+<i>Remote</i>. The compiled files will be stored in the directory
+<code>${build}/classes</code>.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sequential.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sequential.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sequential.html	(revision 14989)
@@ -0,0 +1,41 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Sequential Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2>Sequential</h2>
+<h3>Description</h3>
+<p>Sequential is a container task - it can contain other Ant tasks. The nested 
+tasks are simply executed in sequence. Sequential's primary use is to support 
+the sequential execution of a subset of tasks within the 
+<a href="parallel.html">parallel</a> task</p>
+
+<p>The sequential task has no attributes and does not support any nested 
+elements apart from Ant tasks. Any valid Ant task may be embedded within the 
+sequential task.</p>
+
+<h3>Example</h3>
+<pre>
+&lt;parallel&gt;
+  &lt;wlrun ... &gt;
+  &lt;sequential&gt;
+    &lt;sleep seconds=&quot;30&quot;/&gt;
+    &lt;junit ... &gt;
+    &lt;wlstop/&gt;
+  &lt;/sequential&gt;
+&lt;/parallel&gt;
+</pre>
+<p>This example shows how the sequential task is used to execute three tasks in
+sequence, while another task is being executed in a separate thread. </p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/signjar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/signjar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/signjar.html	(revision 14989)
@@ -0,0 +1,124 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>SignJar Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="signjar">SignJar</a></h2>
+<h3>Description</h3>
+<p>Signs jar or zip files with the javasign command line tool. The
+tool detailed dependency checking: files are only signed if they
+are not signed. The <tt>signjar</tt> attribute can point to the file to
+generate; if this file exists then
+its modification date is used as a cue as to whether to resign any JAR file.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">jar</td>
+    <td valign="top">the jar file to sign</td>
+    <td valign="top" align="center">Yes, unless nested filesets have
+      been used.</td>
+  </tr>
+  <tr>
+    <td valign="top">alias</td>
+    <td valign="top">the alias to sign under</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">storepass</td>
+    <td valign="top">password for keystore integrity.</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">keystore</td>
+    <td valign="top">keystore location</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">storetype</td>
+    <td valign="top">keystore type</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keypass</td>
+    <td valign="top">password for private key (if different)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sigfile</td>
+    <td valign="top">name of .SF/.DSA file</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">signedjar</td>
+    <td valign="top">name of signed JAR file</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">(true | false) verbose output when signing</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">internalsf</td>
+    <td valign="top">(true | false) include the .SF file inside the signature
+block</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">sectionsonly</td>
+    <td valign="top">(true | false) don't compute hash of entire manifest</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">lazy</td>
+    <td valign="top">flag to control whether the presence of a signature
+  file means a JAR is signed</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Specifies the maximum memory the jarsigner VM will use. Specified in the
+                     style of standard java memory specs (e.g. 128m = 128 MBytes)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters as nested elements</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">fileset</td>
+    <td valign="top">fileset of JAR files to sign.  Will be ignored if
+      the jar attribute of the task has been set.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;signjar jar=&quot;${dist}/lib/ant.jar&quot;
+alias=&quot;apache-group&quot; storepass=&quot;secret&quot;/&gt;</code></p>
+</blockquote>
+<p>signs the ant.jar with alias &quot;apache-group&quot; accessing the
+keystore and private key via &quot;secret&quot; password.</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sleep.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sleep.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sleep.html	(revision 14989)
@@ -0,0 +1,72 @@
+<html>
+
+<head>
+<title>Sleep Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<a name="sleep"></a><h2>Sleep</h2>
+<h3>Description</h3>
+<p> A task for sleeping a short period of time, useful when a build or deployment 
+  process requires an interval between tasks.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr> 
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr> 
+    <td valign="top">hours</td>
+    <td valign="top">hours to to add to the sleep time</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">minutes</td>
+    <td valign="top"> minutes to add to the sleep time</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">seconds</td>
+    <td valign="top">seconds to add to the sleep time</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">milliseconds</td>
+    <td valign="top">milliseconds to add to the sleep time</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">failonerror</td>
+    <td valign="top">flag controlling whether to break the build on an error. 
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>The sleep time is the sum of specified values, hours, minutes seconds and milliseconds. 
+  A negative value can be supplied to any of them provided the total sleep time 
+  is positive</p>
+<p>Note that sleep times are always hints to be interpred by the OS how it feels 
+  - small times may either be ignored or rounded up to a minimum timeslice. Note 
+  also that the system clocks often have a fairly low granularity too, which complicates 
+  measuring how long a sleep actually took.</p>
+<h3>Examples</h3>
+<pre>   &lt;sleep milliseconds=&quot;10&quot;/&gt;</pre>
+Sleep for about 10 mS. 
+<pre>   &lt;sleep seconds=&quot;2&quot;/&gt;</pre>
+Sleep for about 2 seconds. 
+<pre>   &lt;sleep hours=&quot;1&quot; minutes=&quot;-59&quot; seconds=&quot;-58&quot;/&gt;</pre>
+<p>Sleep for one hour less 59:58, or two seconds again </p>
+<pre>   &lt;sleep/&gt;</pre>
+Sleep for no time at all. This may yield the CPU time to another thread or process. 
+<hr>
+
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sql.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sql.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sql.html	(revision 14989)
@@ -0,0 +1,316 @@
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>SQL Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h2><a name="sql">Sql</a></h2>
+<h3>Description</h3>
+<p>Executes a series of SQL statements via JDBC to a database. Statements can 
+either be read in from a text file using the <i>src</i> attribute or from 
+between the enclosing SQL tags.</p>
+
+<p>Multiple statements can be provided, separated by semicolons (or the 
+defined <i>delimiter</i>). Individual lines within the statements can be 
+commented using either --, // or REM at the start of the line.</p>
+
+<p>The <i>autocommit</i> attribute specifies whether auto-commit should be 
+turned on or off whilst executing the statements. If auto-commit is turned 
+on each statement will be executed and committed. If it is turned off the 
+statements will all be executed as one transaction.</p>
+
+<p>The <i>onerror</i> attribute specifies how to proceed when an error occurs 
+during the execution of one of the statements. 
+The possible values are: <b>continue</b> execution, only show the error;
+<b>stop</b> execution and commit transaction;
+and <b>abort</b> execution and transaction and fail task.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+  <td width="12%" valign="top">driver</td>
+  <td width="78%" valign="top">Class name of the jdbc driver</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">url</td>
+  <td width="78%" valign="top">Database connection url</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">userid</td>
+  <td width="78%" valign="top">Database user name</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">password</td>
+  <td width="78%" valign="top">Database password</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">src</td>
+  <td width="78%" valign="top">File containing SQL statements</td>
+  <td width="10%" valign="top">Yes, unless statements enclosed within tags</td>
+</tr>
+<tr>
+  <td valign="top">encoding</td>
+  <td valign="top">The encoding of the files containing SQL statements</td>
+  <td align="center">No - defaults to default JVM encoding</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">delimiter</td>
+  <td width="78%" valign="top">String that separates SQL statements</td>
+  <td width="10%" valign="top">No, default &quot;;&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">autocommit</td>
+  <td width="78%" valign="top">Auto commit flag for database connection (default false)</td>
+  <td width="10%" valign="top">No, default &quot;false&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">print</td>
+  <td width="78%" valign="top">Print result sets from the statements (default false)</td>
+  <td width="10%" valign="top">No, default &quot;false&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">showheaders</td>
+  <td width="78%" valign="top">Print headers for result sets from the statements (default true)</td>
+  <td width="10%" valign="top">No, default &quot;true&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">output</td>
+  <td width="78%" valign="top">Output file for result sets (defaults to System.out)</td>
+  <td width="10%" valign="top">No (print to System.out by default)</td>
+</tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">whether output should be appended to or overwrite
+    an existing file.  Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+  <td width="12%" valign="top">classpath</td>
+  <td width="78%" valign="top">Classpath used to load driver</td>
+  <td width="10%" valign="top">No (use system classpath)</td>
+</tr>
+  <tr>
+    <td width="12%" valign="top">classpathref</td>
+    <td width="78%" valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+  <td width="10%" valign="top">No (use system classpath)</td>
+  </tr>
+<tr>
+  <td width="12%" valign="top">onerror</td>
+  <td width="78%" valign="top">Action to perform when statement fails: continue, stop, abort</td>
+  <td width="10%" valign="top">No, default &quot;abort&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">rdbms</td>
+  <td width="78%" valign="top">Execute task only if this rdbms</td>
+  <td width="10%" valign="top">No (no restriction)</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">version</td>
+  <td width="78%" valign="top">Execute task only if rdbms version match</td>
+  <td width="10%" valign="top">No (no restriction)</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">caching</td>
+  <td width="78%" valign="top">Should the task cache loaders and the driver?</td>
+  <td width="10%" valign="top">No (default=true)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">delimitertype</td>
+  <td width="78%" valign="top">Control whether the delimiter will only be recognized on a line by itself.<br>
+    Can be "normal" -anywhere on the line, or "row", meaning it must be on a line by itself</td>
+  <td width="10%" valign="top">No (defaul:normal)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">keepformat</td>
+  <td width="78%" valign="top">Control whether the format of the sql will be preserved.<br>
+    Usefull when loading packages and procedures.
+  <td width="10%" valign="top">No (defaul=false)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">escapeprocessing</td>
+  <td width="78%" valign="top">Control whether the Java statement
+    object will perform escape substitution.<br>
+    See <a
+    href="http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Statement.html#setEscapeProcessing(boolean)">Statement's
+    API docs</a> for details.  <em>since Ant 1.6</em>.
+  <td width="10%" valign="top">No (defaul=true)</td>
+</tr>
+
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>transaction</h4>
+<p>Use nested <code>&lt;transaction&gt;</code> 
+elements to specify multiple blocks of commands to the executed
+executed in the same connection but different transactions. This
+is particularly useful when there are multiple files to execute
+on the same schema.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">File containing SQL statements</td>
+    <td valign="top" align="center">Yes, unless statements enclosed within tags</td>
+  </tr>
+</table>
+<h4>fileset</h4>
+<p>You can specify multiple source files via nested <a
+href="../CoreTypes/fileset.html">fileset</a> elements.  Each file of
+the fileset will be run in a transaction of its own, the order by
+which the files of a single fileset will be executed is not
+defined.</p>
+<h4>classpath</h4>
+<p><code>Sql</code>'s <em>classpath</em> attribute is a <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<em>classpath</em> element. It is used to load the JDBC classes.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    src=&quot;data.sql&quot;
+/&gt;
+</pre></blockquote>
+
+<p>Connects to the database given in <i>url</i> as the sa user using the 
+org.database.jdbcDriver and executes the SQL statements contained within 
+the file data.sql</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    &gt;
+insert
+into table some_table
+values(1,2,3,4);
+
+truncate table some_other_table;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>Connects to the database given in <i>url</i> as the sa
+ user using the org.database.jdbcDriver and executes the two SQL statements 
+ inserting data into some_table and truncating some_other_table </p>
+
+<p>Note that you may want to enclose your statements in
+<code>&lt;![CDATA[</code> ... <code>]]&gt;</code> sections so you don't
+need to escape <code>&lt;</code>, <code>&gt;</code> <code>&amp;</code>
+or other special characters. For example:</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    &gt;&lt;![CDATA[
+
+update some_table set column1 = column1 + 1 where column2 &lt; 42;
+
+]]&gt;&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following connects to the database given in url as the sa user using 
+the org.database.jdbcDriver and executes the SQL statements contained within 
+the files data1.sql, data2.sql and data3.sql and then executes the truncate 
+operation on <i>some_other_table</i>.</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot; &gt;
+  &lt;transaction  src=&quot;data1.sql&quot;/&gt;
+  &lt;transaction  src=&quot;data2.sql&quot;/&gt;
+  &lt;transaction  src=&quot;data3.sql&quot;/&gt;
+  &lt;transaction&gt;
+    truncate table some_other_table;
+  &lt;/transaction&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following example does the same as (and may execute additional
+SQL files if there are more files matching the pattern
+<code>data*.sql</code>) but doesn't guarantee that data1.sql will be
+run before <code>data2.sql</code>.</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;&gt;
+  &lt;fileset dir=&quot;.&quot;&gt;
+    &lt;include name=&quot;data*.sql&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;transaction&gt;
+    truncate table some_other_table;
+  &lt;/transaction&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following connects to the database given in url as the sa user using the 
+org.database.jdbcDriver and executes the SQL statements contained within the 
+file data.sql, with output piped to outputfile.txt, searching /some/jdbc.jar 
+as well as the system classpath for the driver class.</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    src=&quot;data.sql&quot;
+    print=&quot;yes&quot;
+    output=&quot;outputfile.txt&quot;
+    &gt;
+&lt;classpath&gt;
+	&lt;pathelement location=&quot;/some/jdbc.jar&quot;/&gt;
+&lt;/classpath&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following will only execute if the RDBMS is &quot;oracle&quot; and the version 
+starts with &quot;8.1.&quot;</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    src=&quot;data.sql&quot;
+    rdbms=&quot;oracle&quot;
+    version=&quot;8.1.&quot;
+    &gt;
+insert
+into table some_table
+values(1,2,3,4);
+
+truncate table some_other_table;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/style.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/style.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/style.html	(revision 14989)
@@ -0,0 +1,362 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Xslt/Style Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="style">Xslt/Style</a></h2>
+<h3>Description</h3>
+<p>Process a set of documents via XSLT.</p>
+<p>This is useful for building views of XML based documentation,
+or for generating code.</p>
+<p><b>Note:</b> If you are using JDK 1.4 or higher, this task does not require external libraries
+not supplied in the Ant distribution. Otherwise,
+see <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+<p>It is possible to refine the set of files that are being processed. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and supports all
+  attributes of <code>&lt;fileset&gt;</code> (<code>dir</code> becomes <code>basedir</code>)
+  as well as the nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code>
+  and <code>&lt;patternset&gt;</code> elements.</p>
+<p>This task supports the use of a nested &lt;param&gt; element which is used to pass values
+  to an &lt;xsl:param&gt; declaration.</p>
+<p>This task supports the use of a nested <a href="../CoreTypes/xmlcatalog.html">xmlcatalog</a>
+element which is used to perform Entity and URI resolution</p>
+<p><i>&lt;style&gt; and &lt;xslt&gt; refer to the same Ant task and can be used interchangeably.</i></p>
+<p>If you want to use Xalan-J 1 or XSL:P, you also need Ant's optional.jar</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">where to find the source XML file, default is the
+      project's basedir.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">directory in which to store the results.</td>
+    <td align="center" valign="top">Yes, unless in and out have been
+      specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">extension</td>
+    <td valign="top">desired file extension to be used for the targets. If not
+      specified, the default is &quot;.html&quot;.  Will be ignored if
+      a nested &lt;mapper&gt; has been specified.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">style</td>
+    <td valign="top">name of the stylesheet to use - given either relative
+      to the project's basedir or as an absolute path
+      <em><strong>DEPRECATED</strong> - can be specified as a path relative
+          to the basedir attribute of this task as well</em>.
+    </td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up the XSLT
+      processor.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use, given as <a
+      href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">Recreate target files, even if they are newer
+      than their corresponding source files or the stylesheet.</td>
+    <td valign="top" align="center">No; default is false</td>
+  </tr>
+  <tr>
+    <td valign="top">processor</td>
+
+    <td valign="top">name of the XSLT processor to use.  Permissible values are
+      &quot;trax&quot; for a TraX compliant processor (ie JAXP interface
+      implementation such as Xalan 2 or Saxon),
+      &quot;xslp&quot; for the XSL:P processor, &quot;xalan&quot; for
+      the Apache XML Xalan (version 1) processor the name of an
+      arbitrary XSLTLiaison class. Defaults to trax, followed by xalan
+      and then xslp (in that order). The first one found in your class
+      path is the one that is used.
+
+      <em><strong>DEPRECATED</strong> - XSL:P and xalan are deprecated and no
+      more supported.</em>.
+      </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be included.
+      All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is taken to be
+      an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be excluded.
+      No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is taken to be
+      an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">in</td>
+    <td valign="top">specifies a single XML document to be styled. Should be used
+      with the out attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">out</td>
+    <td valign="top">specifies the output name for the styled result from the
+      in attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">scanincludeddirectories</td>
+    <td valign="top">If any directories are matched by the
+      includes/excludes patterns, try to transform all files in these
+      directories.  Default is <code>true</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">reloadstylesheet</td>
+    <td valign="top">Control whether the stylesheet transformer is created
+    anew for every transform opertaion. If you set this to true, performance may
+    suffer, but you may work around a bug in certain Xalan-J versions.
+    Default is <code>false</code>.  <em>Since Ant 1.5.2</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p>The classpath to load the processor from can be specified via a
+nested <code>&lt;classpath&gt;</code>, as well - that is, a
+<a href="../using.html#path">path</a>-like structure.</p>
+
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html">xmlcatalog</a>
+element is used to perform Entity and URI resolution.</p>
+
+<h4>param</h4>
+<p>Param is used to pass a parameter to the XSL stylesheet.</p>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the XSL parameter</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">expression</td>
+    <td valign="top">Text value to be placed into the param.<br/>
+    Was originally intended to be an XSL expression.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">The param will only passed if this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">The param will only passed unless this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+
+<h4>outputproperty ('trax' processors only)</h4>
+<p>Used to specify how you wish the result tree to be output
+as specified in the <a href="http://www.w3.org/TR/xslt#output">
+XSLT specifications</a>.
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the property</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value of the property.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>factory ('trax' processors only)</h4>
+Used to specify factory settings.
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">fully qualified classname of the
+    transformer factory to use. For example
+      <tt>org.apache.xalan.processor.TransformerFactoryImpl</tt>
+       or <tt>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</tt>
+       or <tt>net.sf.saxon.TransformerFactoryImpl</tt>...
+    </td>
+    <td align="center" valign="top">No. Defaults to the JAXP lookup mechanism.</td>
+  </tr>
+</table>
+<blockquote>
+<h4>attribute </h4>
+<p>Used to specify settings of the processor factory.
+The attribute names and values are entirely processor specific
+so you must be aware of the implementation to figure them out.
+Read the documentation of your processor.
+For example, in Xalan 2.x:
+<ul>
+<li>http://xml.apache.org/xalan/features/optimize (boolean)</li>
+<li>http://xml.apache.org/xalan/features/incremental (boolean)</li>
+<li>...</li>
+</ul>
+And in Saxon 7.x:
+<ul>
+<li>http://saxon.sf.net/feature/allow-external-functions (boolean)</li>
+<li>http://saxon.sf.net/feature/timing (boolean)</li>
+<li>http://saxon.sf.net/feature/traceListener (string)</li>
+<li>http://saxon.sf.net/feature/treeModel (integer)</li>
+<li>http://saxon.sf.net/feature/linenumbering (integer)</li>
+<li>...</li>
+</ul>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the attribute</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value of the attribute.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</blockquote>
+
+<h4>mapper</h4>
+
+<p><em>since Ant 1.6.2</em></p>
+
+<p>You can define filename transformations by using a nested <a
+href="../CoreTypes/mapper.html">mapper</a> element. The default mapper
+used by <code>&lt;xslt&gt;</code> removes the file extension from the
+source file and adds the extension specified via the extension
+attribute.</p>
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>
+&lt;style basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+       extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;/&gt;</pre>
+  <h4>Using an xmlcatalog</h4>
+  <pre>&lt;xslt basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+      extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;&gt;
+  &lt;xmlcatalog refid=&quot;mycatalog&quot;/&gt;
+&lt;/xslt&gt;
+
+&lt;xslt basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+   extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;&gt;
+   &lt;xmlcatalog&gt;
+       &lt;dtd
+         publicId=&quot;-//ArielPartners//DTD XML Article V1.0//EN&quot;
+         location=&quot;com/arielpartners/knowledgebase/dtd/article.dtd&quot;/&gt;
+   &lt;/xmlcatalog&gt;
+&lt;/xslt&gt;</pre>
+  <h4>Using XSL parameters</h4>
+<pre>&lt;xslt basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+      extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;&gt;
+  &lt;param name=&quot;date&quot; expression=&quot;07-01-2000&quot;/&gt;
+&lt;/xslt&gt;</pre>
+
+  <p>Then if you declare a global parameter &quot;date&quot; with the top-level
+  element &lt;xsl:param name=&quot;date&quot;/&gt;, the variable
+  <code>$date</code> will subsequently have the value 07-01-2000.
+  </p>
+
+  <h4>Using output properties</h4>
+<pre>&lt;xslt in=&quot;doc.xml&quot; out=&quot;build/doc/output.xml&quot;
+      style=&quot;style/apache.xsl&quot;&gt;
+  &lt;outputproperty name=&quot;method&quot; value=&quot;xml&quot;;/&gt;
+  &lt;outputproperty name=&quot;standalone&quot; value=&quot;yes&quot;/&gt;
+  &lt;outputproperty name=&quot;encoding&quot; value=&quot;iso8859_1&quot;/&gt;
+  &lt;outputproperty name=&quot;indent&quot; value=&quot;yes&quot;/&gt;
+&lt;/xslt&gt;</pre>
+
+  <h4>Using factory settings</h4>
+<pre>&lt;xslt in=&quot;doc.xml&quot; out=&quot;build/doc/output.xml&quot;
+      style=&quot;style/apache.xsl&quot;&gt;
+  &lt;factory name=&quot;org.apache.xalan.processor.TransformerFactoryImpl&quot;&gt;
+    &lt;attribute name=&quot;http://xml.apache.org/xalan/features/optimize&quot; value=&quot;true&quot;/&gt;
+  &lt;/factory&gt;
+&lt;/xslt&gt;</pre>
+
+  <h4>Using a mapper</h4>
+<pre>&lt;xslt basedir=&quot;in&quot; destdir=&quot;out&quot;
+      style=&quot;style/apache.xsl&quot;&gt;
+  &lt;mapper type=&quot;glob&quot; from=&quot;*.xml.en&quot; to=&quot;*.html.en&quot;/&gt;
+&lt;/xslt&gt;</pre>
+
+ </blockquote>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/subant.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/subant.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/subant.html	(revision 14989)
@@ -0,0 +1,440 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Subant
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Subant
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Calls a given target for all defined sub-builds.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+<p>
+            Calls a given target for all defined sub-builds.
+            This is an extension
+            of ant for bulk project execution.
+
+            <strong>This task must no be used outside of a
+                <code>target</code> if it invokes the same build file it is
+                part of.</strong>
+        </p>
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <!-- Subsection heading -->
+      <tr><td bgcolor="#828DA6">
+          <font color="#ffffff" face="arial,helvetica.sanserif">
+                              <a name="Use with directories">
+          <strong>Use with directories</strong></a></font>
+      </td></tr>
+      <!-- Subsection body -->
+      <tr><td>
+        <p>
+                subant can be used with directory sets to execute a build from different directories.
+                2 different options are offered :
+            </p>
+<ul>
+                <li>
+                    to run the same build file <code>/somepath/otherpath/mybuild.xml</code>
+                    with different base directories, use the genericantfile attribute
+                </li>
+                <li>if you want to run <code>directory1/mybuild.xml</code>, <code>directory2/mybuild.xml</code>, <code>....</code>,
+                    use the antfile attribute. The subant task does not set the base directory for you in this case, because you can specify it in each build file.
+                </li>
+            </ul>
+
+      </td></tr>
+    </table>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">antfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Build file name, to use in conjunction with directories.<br/> Defaults to "build.xml".<br/> If <code>genericantfile</code> is set, this attribute is ignored.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="9">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">buildpath</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the buildpath to be used to find sub-projects.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">buildpathref</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Buildpath to use, by reference.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Reference</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets whether to fail with a build exception on error, or go on.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">genericantfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Build file path, to use in conjunction with directories.<br/> Use <code>genericantfile</code>, in order to run the same build file with different basedirs.<br/> If this attribute is set, <code>antfile</code> is ignored.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">inheritall</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Corresponds to <code>&lt;ant&gt;</code>'s <code>inheritall</code> attribute.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">inheritrefs</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Corresponds to <code>&lt;ant&gt;</code>'s <code>inheritrefs</code> attribute.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Corresponds to <code>&lt;ant&gt;</code>'s <code>output</code> attribute.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">target</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"></font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>dirset</strong> (org.apache.tools.ant.types.DirSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        Adds a directory set to the implicit build path. <p> <em>Note that the directories will be added to the build path in no particular order, so if order is significant, one should use a file list instead!</em>
+ <!-- Ignore -->
+ <!-- Ignore -->
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>filelist</strong> (org.apache.tools.ant.types.FileList)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        Adds an ordered file list to the implicit build path. <p> <em>Note that contrary to file and directory sets, file lists can reference non-existent files or directories!</em>
+ <!-- Ignore -->
+ <!-- Ignore -->
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>fileset</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        Adds a file set to the implicit build path. <p> <em>Note that the directories will be added to the build path in no particular order, so if order is significant, one should use a file list instead!</em>
+ <!-- Ignore -->
+ <!-- Ignore -->
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>property</strong> (org.apache.tools.ant.taskdefs.Property)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        Corresponds to <code>&lt;ant&gt;</code>'s nested <code>&lt;property&gt;</code> element.
+ <!-- Ignore -->
+ <!-- Ignore -->
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>propertyset</strong> (org.apache.tools.ant.types.PropertySet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        Corresponds to <code>&lt;ant&gt;</code>'s nested <code>&lt;propertyset&gt;</code> element.
+ <!-- Ignore -->
+ <!-- Ignore -->
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>buildpath</strong> (org.apache.tools.ant.types.Path)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        Creates a nested build path, and add it to the implicit build path.
+ <!-- Ignore -->
+ <!-- Ignore -->
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>buildpathelement</strong> (org.apache.tools.ant.types.Path.PathElement)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        Creates a nested <code>&lt;buildpathelement&gt;</code>, and add it to the implicit build path.
+ <!-- Ignore -->
+ <!-- Ignore -->
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+          <font color="#ffffff" face="arial,helvetica.sanserif">
+                              <a name="examples">
+          <strong>Examples</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        <pre>
+        &lt;project name="subant" default="subant1"&gt;
+        &lt;property name="build.dir" value="subant.build"/&gt;
+        &lt;target name="subant1"&gt;
+            &lt;subant target=""&gt;
+              &lt;property name="build.dir" value="subant1.build"/&gt;
+              &lt;property name="not.overloaded" value="not.overloaded"/&gt;
+              &lt;fileset dir="." includes="*/build.xml"/&gt;
+            &lt;/subant&gt;
+        &lt;/target&gt;
+        &lt;/project&gt;
+        </pre>
+<p>
+            this snippet build file will run ant in each subdirectory of the project directory,
+            where a file called build.xml can be found.
+            The property build.dir will have the value subant1.build in the ant projects called by subant.
+        </p>
+<pre>
+          &lt;subant target=""&gt;
+             &lt;propertyset&gt;
+                  &lt;propertyref prefix="toplevel"/&gt;
+                  &lt;mapper type="glob" from="foo*" to="bar*"/&gt;
+             &lt;/propertyset&gt;
+             &lt;fileset dir="." includes="*/build.xml"/&gt;
+          &lt;/subant&gt;
+        </pre>
+<p>
+            this snippet build file will run ant in each subdirectory of the project directory,
+            where a file called build.xml can be found.
+            All properties whose name starts with "foo" are passed, their names are changed to start with "bar" instead
+        </p>
+<pre>
+          &lt;subant target="compile" genericantfile="/opt/project/build1.xml"&gt;
+             &lt;dirset dir="." includes="projects*"/&gt;
+          &lt;/subant&gt;
+        </pre>
+<p>
+            assuming the subdirs of the project dir are called projects1, projects2, projects3
+            this snippet will execute the compile target of /opt/project/build1.xml,
+            setting the basedir to projects1, projects2, projects3
+        </p>
+
+      </blockquote></td></tr>
+
+    </table>
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sync.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sync.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/sync.html	(revision 14989)
@@ -0,0 +1,69 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Sync Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="get">Sync</a></h2>
+<p><em>Since Ant 1.6</em></p>
+<h3>Description</h3>
+
+<p>Synchronize a target directory from the files defined in one or
+more filesets.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">the target directory to sync with the filesets</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>  
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+     <td valign="top">Copy any empty directories included in the FileSet(s).
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Log a warning message, but do not stop the build,
+       when one of the nested filesets points to a directory that
+       doesn't exist.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+     <td valign="top">Log the files that are being copied.</td>
+     <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select
+sets of files and directories.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/tar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/tar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/tar.html	(revision 14989)
@@ -0,0 +1,258 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Tar Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="tar">Tar</a></h2>
+<h3>Description</h3>
+<p>Creates a tar archive.</p>
+<p>The <i>basedir</i> attribute is the reference directory from where to tar.</p>
+<p>This task is a <a href="../dirtasks.html#directorybasedtasks">directory based task</a>
+and, as such, forms an implicit <a href="../CoreTypes/fileset.html">Fileset</a>. This
+defines which files, relative to the <i>basedir</i>, will be included in the
+archive. The tar task supports all the attributes of Fileset to refine the
+set of files to be included in the implicit fileset.</p>
+
+<p>In addition to the implicit fileset, the tar task supports nested filesets. These
+filesets are extended to allow control over the access mode, username and groupname
+to be applied to the tar entries. This is useful, for example, when preparing archives for
+Unix systems where some files need to have execute permission.</p>
+
+<p>Early versions of tar did not support path lengths greater than 100
+characters. Modern versions of tar do so, but in incompatible ways.
+The behaviour of the tar task when it encounters such paths is
+controlled by the <i>longfile</i> attribute.
+If the longfile attribute is set to <code>fail</code>, any long paths will
+cause the tar task to fail.  If the longfile attribute is set to
+<code>truncate</code>, any long paths will be truncated to the 100 character
+maximum length prior to adding to the archive. If the value of the longfile
+attribute is set to <code>omit</code> then files containing long paths will be
+omitted from the archive.  Either option ensures that the archive can be
+untarred by any compliant version of tar. If the loss of path or file
+information is not acceptable, and it rarely is, longfile may be set to the
+value <code>gnu</code>. The tar task will then produce a GNU tar file which
+can have arbitrary length paths. Note however, that the resulting archive will
+only be able to be untarred with GNU tar.  The default for the longfile
+attribute is <code>warn</code> which behaves just like the gnu option except
+that it produces a warning for each file path encountered that does not match
+the limit.</p>
+
+<p>This task can perform compression by setting the compression attribute to "gzip"
+or "bzip2".</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the tar-file to create.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to tar the files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">longfile</td>
+    <td valign="top">Determines how long files (&gt;100 chars) are to be
+       handled.  Allowable values are &quot;truncate&quot;, &quot;fail&quot;,
+       &quot;warn&quot;, &quot;omit&quot; and &quot;gnu&quot;.  Default is
+       &quot;warn&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top">compression method.  Allowable values are 
+       &quot;none&quot;, &quot;gzip&quot; and &quot;bzip2&quot;.  Default is
+       &quot;none&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+The tar task supports nested <a href="../CoreTypes/fileset.html">tarfileset</a> elements. These are
+extended Filesets which, in addition to the standard fileset elements, support three additional
+attributes
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">mode</td>
+    <td valign="top">A 3 digit octal string, specify the user, group
+    and other modes in the standard Unix fashion.  Only applies to
+    plain files.  Default is 644.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dirmode</td>
+    <td valign="top">A 3 digit octal string, specify the user, group
+    and other modes in the standard Unix fashion.  Only applies to
+    directories.  Default is 755. <em>since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username for the tar entry. This is not the same as the UID.
+                     </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">group</td>
+    <td valign="top">The groupname for the tar entry. This is not the same as the GID.
+                     </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uid</td>
+    <td valign="top">The user identifier (UID) for the tar entry. This is an integer value
+      and is not the same as the username. <em>since Ant 1.6.2</em>.
+                     </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">gid</td>
+    <td valign="top">The group identifier (GID) for the tar entry. <em>since Ant 1.6.2</em>.
+                     </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">If the prefix attribute is set, all files in the fileset
+    are prefixed with that path in the archive.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fullpath</td>
+    <td valign="top">If the fullpath attribute is set, the file in the fileset
+    is written with that path in the archive. The prefix attribute, if specified, is
+    ignored. It is an error to have more than one file specified in
+    such a fileset.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">preserveLeadingSlashes</td>
+    <td valign="top">Indicates whether leading `/'s should
+    be preserved in the file names. Default is <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;tar tarfile=&quot;${dist}/manual.tar&quot; basedir=&quot;htdocs/manual&quot;/&gt;
+  &lt;gzip zipfile=&quot;${dist}/manual.tar.gz&quot; src=&quot;${dist}/manual.tar&quot;/&gt;</pre>
+<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
+in the <code>${dist}</code>  directory, then applies the gzip task to compress
+it.</p>
+<pre>  &lt;tar destfile=&quot;${dist}/manual.tar&quot;
+       basedir=&quot;htdocs/manual&quot;
+       excludes=&quot;mydocs/**, **/todo.html&quot;
+  /&gt;</pre>
+<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
+in the <code>${dist}</code> directory. Files in the directory <code>mydocs</code>,
+or files with the name <code>todo.html</code> are excluded.</p>
+
+<pre>
+&lt;tar destfile=&quot;${basedir}/docs.tar&quot;&gt;
+  &lt;tarfileset dir=&quot;${dir.src}/docs&quot;
+              fullpath=&quot;/usr/doc/ant/README&quot;
+              preserveLeadingSlashes=&quot;true&quot;&gt;
+    &lt;include name=&quot;readme.txt&quot;/&gt;
+  &lt;/tarfileset&gt;
+  &lt;tarfileset dir=&quot;${dir.src}/docs&quot;
+              prefix=&quot;/usr/doc/ant&quot;
+              preserveLeadingSlashes=&quot;true&quot;&gt;
+    &lt;include name=&quot;*.html&quot;/&gt;
+  &lt;/tarfileset&gt;
+&lt;/tar&gt;</pre>
+
+<p>
+  Writes the file <code>docs/readme.txt</code> as
+  <code>/usr/doc/ant/README</code> into the archive. All
+  <code>*.html</code> files in the <code>docs</code> directory are
+  prefixed by <code>/usr/doc/ant</code>, so for example
+  <code>docs/index.html</code> is written as
+  <code>/usr/doc/ant/index.html</code> to the archive.
+</p>
+
+
+<pre>&lt;tar longfile=&quot;gnu&quot;
+     destfile=&quot;${dist.base}/${dist.name}-src.tar&quot; &gt;
+  &lt;tarfileset dir=&quot;${dist.name}/..&quot; mode=&quot;755&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt;
+    &lt;include name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
+    &lt;include name=&quot;${dist.name}/build.sh&quot;/&gt;
+  &lt;/tarfileset&gt;
+  &lt;tarfileset dir=&quot;${dist.name}/..&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt;
+    &lt;include name=&quot;${dist.name}/**&quot;/&gt;
+    &lt;exclude name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
+    &lt;exclude name=&quot;${dist.name}/build.sh&quot;/&gt;
+  &lt;/tarfileset&gt;
+&lt;/tar&gt; </pre>
+
+<p>This example shows building a tar which uses the GNU extensions for long paths and
+where some files need to be marked as executable (mode 755)
+and the rest are use the default mode (read-write by owner). The first
+fileset selects just the executable files. The second fileset must exclude
+the executable files and include all others. </p>
+
+<p><strong>Note: </strong> The tar task does not ensure that a file is only selected
+by one fileset. If the same file is selected by more than one fileset, it will be included in the
+tar file twice, with the same path.</p>
+
+<p><strong>Note:</strong> The patterns in the include and exclude
+elements are considered to be relative to the corresponding dir
+attribute as with all other filesets.  In the example above,
+<code>${dist.name}</code> is not an absolute path, but a simple name
+of a directory, so <code>${dist.name}</code> is a valid path relative
+to <code>${dist.name}/..</code>.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/taskdef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/taskdef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/taskdef.html	(revision 14989)
@@ -0,0 +1,29 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>TaskDef Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="taskdef">Taskdef</a></h2>
+<h3>Description</h3>
+  <p>Adds a task definition to the current project, such that this new task can be
+    used in the current project.</p>
+  <p>This task is a form of <a href="typedef.html">Typedef</a> with the
+    attributes "adapter" and "adaptto" set to the values 
+    "org.apache.tools.ant.TaskAdapter" and "org.apache.tools.ant.Task"
+    respectively.
+<h3>Examples</h3>
+<pre>  &lt;taskdef name=&quot;myjavadoc&quot; classname=&quot;com.mydomain.JavadocTask&quot;/&gt;</pre>
+<p>makes a task called <code>myjavadoc</code> available to Ant. The class <code>com.mydomain.JavadocTask</code>
+implements the task.</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/tempfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/tempfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/tempfile.html	(revision 14989)
@@ -0,0 +1,189 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Tempfile
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Tempfile
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">This task sets a property to the name of a temporary file.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        This task sets a property to the name of a temporary file. Unlike the Java1.2 method to create a temporary file, this task does work on Java1.1. Also, it does not actually create the temporary file, but it does guarantee that the file did not exist when the task was executed. <p> Examples <pre>&lt;tempfile property="temp.file" /&gt;</pre> create a temporary file <pre>&lt;tempfile property="temp.file" suffix=".xml" /&gt;</pre> create a temporary file with the .xml suffix. <pre>&lt;tempfile property="temp.file" destDir="build"/&gt;</pre> create a temp file in the build subdir
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">property</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the property you wish to assign the temporary file to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="1">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Required</font>
+        </td>
+    </tr>
+
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the destination directory. If not set, the basedir directory is used instead.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="3">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">prefix</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the optional prefix string for the temp file.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">suffix</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the optional suffix string for the temp file.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/touch.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/touch.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/touch.html	(revision 14989)
@@ -0,0 +1,71 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Touch Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="touch">Touch</a></h2>
+<h3>Description</h3>
+<p>Changes the modification time of a file and possibly creates it at
+the same time. In addition to working with a single file, this Task
+can also work a <a href="../CoreTypes/fileset.html">Fileset</a> (which
+also includes directories).</p>
+<p>For JDK 1.1 only the creation of new files with a modification time
+of now works, all other cases will emit a warning.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the name of the file</td>
+    <td valign="top" align="center">unless a nested fileset element
+       has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">millis</td>
+    <td valign="top">specifies the new modification time of the file
+       in milliseconds since midnight Jan 1 1970</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">datetime</td>
+    <td valign="top">specifies the new modification time of the file
+       in the format MM/DD/YYYY HH:MM AM_or_PM or MM/DD/YYYY HH:MM:SS AM_or_PM.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>If both <code>millis</code> and <code>datetime</code> are omitted
+the current time is assumed.</p>
+<h3>Examples</h3>
+<pre>  &lt;touch file=&quot;myfile&quot;/&gt;</pre>
+<p>creates <code>myfile</code> if it doesn't exist and changes the
+modification time to the current time.</p>
+<pre>  &lt;touch file=&quot;myfile&quot; datetime=&quot;06/28/2000 2:02 pm&quot;/&gt;</pre>
+<p>creates <code>myfile</code> if it doesn't exist and changes the
+modification time to Jun, 28 2000 2:02 pm (14:02 for those used to 24
+hour times).</p>
+<pre>  &lt;touch datetime=&quot;09/10/1974 4:30 pm&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+  &lt;/touch&gt;</pre>
+<p>changes the modification time to Oct, 09 1974 4:30 pm of all files and directories 
+  found in <code>src_dir</code>. </p>
+<pre>  &lt;touch file=&quot;myfile&quot; datetime=&quot;06/28/2000 2:02:17 pm&quot;/&gt;</pre>
+<p>creates <code>myfile</code> if it doesn't exist and changes the
+modification time to Jun, 28 2000 2:02:17 pm (14:02:17 for those used to 24
+hour times), if the filesystem allows a precision of one second - a
+time close to it otherwise.</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2001,2003 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/tstamp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/tstamp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/tstamp.html	(revision 14989)
@@ -0,0 +1,146 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>TStamp Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="tstamp">Tstamp</a></h2>
+
+<h3>Description</h3>
+<p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and <code>TODAY</code>
+properties in the current project. By default,
+the <code>DSTAMP</code> property is in the
+format &quot;yyyyMMdd&quot;, <code>TSTAMP</code> is in the
+format &quot;hhmm&quot;, and <code>TODAY</code> is in the
+format &quot;MMMM dd yyyy&quot;. Use the nested &lt;format&gt; element
+to specify a different format.</p>
+
+<p>These properties can be used in the build-file, for instance, to create
+time-stamped filenames, or used to replace placeholder tags inside documents
+to indicate, for example, the release date. The best place for this task is
+probably in an initialization target.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">Prefix used for all properties set. The default is no prefix.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+The Tstamp task supports a <code>&lt;format&gt;</code> nested element that
+allows a property to be set to the current date and time in a given format.
+The date/time patterns are as defined in the Java
+<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html">SimpleDateFormat</a> class.
+The format element also allows offsets to be applied to the time to generate different time values.
+<br><br>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">
+        The property to receive the date/time string in the given pattern.
+    </td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">The date/time pattern to be used. The values are as defined by the Java SimpleDateFormat class.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">timezone</td>
+    <td valign="top">The timezone to use for displaying time. The values are as defined by the Java <a href="http://java.sun.com/products/jdk/1.2/docs/api/java/util/TimeZone.html">TimeZone</a> class.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">offset</td>
+    <td valign="top">The numeric offset to the current time</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unit</td>
+    <td valign="top">The unit of the offset to be applied to the current time.
+                     Valid Values are
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day</li>
+                        <li>week</li>
+                        <li>month</li>
+                        <li>year</li>
+                     </ul>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">locale</td>
+    <td valign="top">The locale used to create date/time string. The general
+      form is &quot;language, country, variant&quot; but either variant or variant and
+      country may be omitted. For more information please refer to documentation
+      for the
+      <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Locale.html">Locale</a>
+      class.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;tstamp/&gt;
+</pre>
+
+<p>
+sets the standard <code>DSTAMP</code>, <code>TSTAMP</code>,
+and <code>TODAY</code> properties according to the default formats.</p>
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property=&quot;TODAY_UK&quot; pattern=&quot;d-MMMM-yyyy&quot; locale=&quot;en&quot;/&gt;
+  &lt;/tstamp&gt;
+</pre>
+<p>
+sets the standard properties as well as the property
+<code>TODAY_UK</code> with the date/time pattern &quot;d-MMMM-yyyy&quot;
+using English locale (eg. 21-May-2001).</p>
+
+<pre>
+  &lt;tstamp&gt;
+      &lt;format property=&quot;touch.time&quot; pattern=&quot;MM/dd/yyyy hh:mm aa&quot;
+              offset=&quot;-5&quot; unit=&quot;hour&quot;/&gt;
+  &lt;/tstamp&gt;
+</pre>
+<p>
+Creates a timestamp, in the property touch.time, 5 hours before the current time. The format in this example
+is suitable for use with the &lt;touch&gt; task. The standard properties are set also.</p>
+
+<pre>
+  &lt;tstamp prefix="start"/&gt;
+</pre>
+<p>
+Sets three properties with the standard formats, prefixed with "start.":
+<code>start.DSTAMP</code>, <code>start.TSTAMP</code>, and <code>start.TODAY</code>.</p>
+
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/typedef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/typedef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/typedef.html	(revision 14989)
@@ -0,0 +1,182 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Typedef Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="typedef">Typedef</a></h2>
+<h3>Description</h3>
+  <p>
+    Adds a task or a data type definition to the current project
+    such that this new type or task can be used in the current project.
+  </p>
+  <p>
+    Tasks are any class that extend org.apache.tools.ant.Task or
+    a class that is adapted to a Task using an adapter class.
+  </p>
+  <p>
+    Data types are things like <a href="../using.html#path">paths</a> or
+    <a href="../CoreTypes/fileset.html">filesets</a> that can be defined at
+    the project level and referenced via their ID attribute.
+    Custom data types usually need custom tasks to put them to good use.
+  </p>
+  <p>
+    Two attributes are needed to make a definition,
+    the name that identifies this data type uniquely, and the full
+    name of the class (including the packages) that implements this
+    type.
+  </p>
+  <p>
+    You can also define a group of definitions at once using the file or
+    resource attributes.  These attributes point to files in the format of
+    Java property files or an xml format.
+  </p>
+  <p>
+    For property files each line defines a single data type in the
+    format:</p>
+  <pre>
+    typename=fully.qualified.java.classname
+  </pre>
+    
+  <p>
+    The xml format is described in the
+    <a href="../CoreTypes/antlib.html">Antlib</a>
+    section.
+  </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the data type</td>
+    <td valign="top" align="center">Yes, unless the file or resource type
+      attributes have been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the full class name implementing the data type</td>
+    <td valign="top" align="center">Yes, unless file or  resource
+      have been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">Name of the file to load definitions from.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">
+    Name of the resource to load definitions from.
+    If there is multiple resources of this name in the classpath, and the
+    format is "properties", the first resource will be loaded, otherwise
+    all the resources will be loaded.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">The format of the file or resource. The values
+      are "properties" or "xml". If the value is "properties" the file/resource
+      is a property file contains name to classname pairs. If the value
+      is "xml", the file/resource is an xml file/resource structured according
+      to   <a href="../CoreTypes/antlib.html">Antlib</a>.
+      The default is "properties" unless the file/resorce name ends with
+      ".xml", in which case the format attribute will have the value "xml".
+      (introduced in ant1.6)
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td> <td valign="top">the classpath to
+      use when looking up <code>classname</code>.</td> <td
+    align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">loaderRef</td> <td valign="top">the name of the loader that is
+    used to load the class, constructed from the specified classpath. Use this to
+    allow multiple tasks/types to be loaded with the same loader, so they can call
+    each other. ( introduced in ant1.5 )</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">onerror</td>
+    <td valign="top">The action to take if there was a failure in defining the
+      type. The values are <i>fail</i> - cause a build exception, <i>report</i>,
+      output a warning, but continue, <i>ignore</i>, do nothing. The default
+      is <i>fail</i>.
+      (introduced in ant1.6)
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">adapter</td>
+    <td valign="top">A class that is used to adapt the defined class to
+      another interface/class. The adapter class must implement the interface
+      "org.apache.tools.ant.TypeAdapter". The adapter class will be used
+      to wrap the defined class unless the defined class implements/extends
+      the class defined by the attribute "adaptto".
+      If "adaptto" is not set,
+      the defined class will always be wrapped.
+      (introduced in ant1.6)
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">adaptto</td>
+    <td valign="top">This attribute is used in conjunction with the
+      adapter attribute.
+      If the defined class does not implement/extend the interface/class
+      specified by this attribute, the adaptor class will be used
+      to wrap the class.
+      (introduced in ant1.6)
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uri</td>
+    <td valign="top">
+      The uri that this definition should live in.
+      <em>since Ant1.6</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+  <h3>Parameters specified as nested elements</h3>
+  <h4>classpath</h4>
+  <p><code>Typedef</code>'s <i>classpath</i> attribute is a 
+    <a href="../using.html#path">PATH like structure</a> and can also be set
+    via a nested <i>classpath</i> element.</p>
+
+<h3>Examples</h3>
+  The following fragment defines define a type called <i>urlset</i>.
+  <pre>
+    &lt;typedef name="urlset" classname="com.mydomain.URLSet"/&gt; </pre>
+  The data type is now availabe to Ant. The
+  class <code>com.mydomain.URLSet</code> implements this type.</p>
+  <p>
+    Assuming a class <i>org.acme.ant.RunnableAdapter</i> that
+    extends Task and implements <i>org.apache.tools.ant.TypeAdapter</i>,
+    and in the execute method invokes <i>run</i> on the proxied object,
+    one may use a Runnable class as an Ant task. The following fragment
+    defines  a task called <i>runclock</i>.
+    <pre>
+    &lt;typedef name="runclock"
+             classname="com.acme.ant.RunClock"
+             adapter="org.acme.ant.RunnableAdapter"/&gt;
+  </pre>
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/unpack.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/unpack.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/unpack.html	(revision 14989)
@@ -0,0 +1,64 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>GUnzip/BUnzip2 Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="unpack">GUnzip/BUnzip2</a></h2>
+<h3>Description</h3>
+<p>Expands a file packed using GZip or BZip2.</p>
+
+<p>If <i>dest</i> is a directory the name of the destination file is
+the same as <i>src</i> (with the &quot;.gz&quot; or &quot;.bz2&quot;
+extension removed if present). If <i>dest</i> is omitted, the parent
+dir of <i>src</i> is taken. The file is only expanded if the source
+file is newer than the destination file, or when the destination file
+does not exist.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the file to expand.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the destination file or directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;gunzip src=&quot;test.tar.gz&quot;/&gt;</code></p>
+</blockquote>
+<p>expands <i>test.tar.gz</i> to <i>test.tar</i></p>
+<blockquote>
+  <p><code>&lt;bunzip2 src=&quot;test.tar.bz2&quot;/&gt;</code></p>
+</blockquote>
+<p>expands <i>test.tar.bz2</i> to <i>test.tar</i></p>
+<blockquote>
+  <p><code>&lt;gunzip src=&quot;test.tar.gz&quot; dest=&quot;test2.tar&quot;/&gt;</code></p>
+</blockquote>
+<p>expands <i>test.tar.gz</i> to <i>test2.tar</i></p>
+<blockquote>
+  <p><code>&lt;gunzip src=&quot;test.tar.gz&quot; dest=&quot;subdir&quot;/&gt;</code></p>
+</blockquote>
+<p>expands <i>test.tar.gz</i> to <i>subdir/test.tar</i> (assuming
+subdir is a directory).</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2001,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/untar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/untar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/untar.html	(revision 14989)
@@ -0,0 +1,19 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Untar Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="untar">Untar</a></h2>
+<h3>Description</h3>
+<p>Untars a tarfile.</p>
+
+This document has moved <A HREF="unzip.html">here</A>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/unzip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/unzip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/unzip.html	(revision 14989)
@@ -0,0 +1,112 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Unzip Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="unzip">Unjar/Untar/Unwar/Unzip</a></h2>
+<h3>Description</h3>
+<p>Unzips a zip-, war-, tar- or jarfile.</p>
+<p>For JDK 1.1 &quot;last modified time&quot; field is set to current time instead of being
+carried from the archive file.</p>
+<p><a href="../CoreTypes/patternset.html">PatternSet</a>s are used to select files to extract
+<I>from</I> the archive.  If no patternset is used, all files are extracted.
+</p>
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s may be used used to select archived files
+to perform unarchival upon.
+</p>
+<p>File permissions will not be restored on extracted files.</p>
+<p>The untar task recognizes the long pathname entries used by GNU tar.<p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">archive file to expand.</td>
+    <td align="center" valign="top">Yes, if filesets are not used.</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">directory where to store the expanded files.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite files, even if they are newer than the
+      corresponding entries in the archive (true or false, default is
+      true).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top"><b>Note:</b> This attribute is only available for
+    the <code>untar</code> task.<br>
+    compression method.  Allowable values are &quot;none&quot;,
+    &quot;gzip&quot; and &quot;bzip2&quot;.  Default is
+    &quot;none&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top"><b>Note:</b> This attribute is not available for
+    the <code>untar</code> task.<br>
+    The character encoding that has been used for filenames
+    inside the zip file.  For a list of possible values see <a
+    href="http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html">http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html</a>.<br>
+    Defaults to &quot;UTF8&quot;, use the magic value
+    <code>native-encoding</code> for the platform's default character
+    encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;unzip src=&quot;${tomcat_src}/tools-src.zip&quot; dest=&quot;${tools.home}&quot;/&gt;</code></p>
+</blockquote>
+<blockquote>
+  <p><code>
+&lt;gunzip src=&quot;tools.tar.gz&quot;/&gt;<br>
+&lt;untar src=&quot;tools.tar&quot; dest=&quot;${tools.home}&quot;/&gt;
+</code></p>
+</blockquote>
+<blockquote>
+<p><pre>
+&lt;unzip src=&quot;${tomcat_src}/tools-src.zip&quot;
+       dest=&quot;${tools.home}&quot;&gt;
+    &lt;patternset&gt;
+        &lt;include name=&quot;**/*.java&quot;/&gt;
+        &lt;exclude name=&quot;**/Test*.java&quot;/&gt;
+    &lt;/patternset&gt;
+&lt;/unzip&gt;
+</pre></p>
+</blockquote>
+<blockquote>
+<p><pre>
+&lt;unzip dest=&quot;${tools.home}&quot;&gt;
+    &lt;patternset&gt;
+        &lt;include name=&quot;**/*.java&quot;/&gt;
+        &lt;exclude name=&quot;**/Test*.java&quot;/&gt;
+    &lt;/patternset&gt;
+    &lt;fileset dir=&quot;.&quot;&gt;
+        &lt;include name=&quot;**/*.zip&quot;/&gt;
+        &lt;exclude name=&quot;**/tmp*.zip&quot;/&gt;
+    &lt;/fileset&gt;
+&lt;/unzip&gt;
+</pre></p>
+</blockquote>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/uptodate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/uptodate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/uptodate.html	(revision 14989)
@@ -0,0 +1,146 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Uptodate Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="uptodate">Uptodate</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a target file or set of target files is more up-to-date
+than a source file or set of source files. A single source file is specified
+using the <code>srcfile</code> attribute. A set of source files is specified
+using the nested <code>&lt;srcfiles&gt;</code>
+elements. These are <a href="../CoreTypes/fileset.html">FileSet</a>s,
+whereas multiple target files are specified using a nested
+<a href="../CoreTypes/mapper.html"><code>&lt;mapper&gt;</code></a> element.</p>
+<p>By default, the value of the property is set to <code>true</code> if
+the timestamp of the target file(s) is more recent than the timestamp of
+the corresponding source file(s). You can set the value to something other
+than the default by specifying the <code>value</code> attribute.</p>
+<p>If a <code>&lt;srcfiles&gt;</code> element is used, without also specifying
+a <code>&lt;mapper&gt;</code> element, the default behavior is to use a
+<a href="../CoreTypes/mapper.html#merge-mapper">merge mapper</a>, with the
+<code>to</code> attribute set to the value of the
+<code>targetfile</code> attribute.</p>
+<p>Normally, this task is used to set properties that are useful to avoid
+target execution depending on the relative age of the specified files.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to set the property to.</td>
+    <td valign="top" align="center">No; defaults to <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">srcfile</td>
+    <td valign="top">The file to check against the target file(s).</td>
+    <td valign="top" align="center">Yes, unless a nested
+      <code>&lt;srcfiles&gt;</code> element is present.</td>
+  </tr>
+  <tr>
+    <td valign="top">targetfile</td>
+    <td valign="top">The file for which we want to determine the status.</td>
+    <td valign="top" align="center">Yes, unless a nested
+      <code>&lt;mapper&gt;</code> element is present.</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<a name="srcfiles"></a><h4>srcfiles</h4>
+<p>The nested <code>&lt;srcfiles&gt;</code> element allows you to specify a
+set of files to check against the target file(s).</p>
+
+<p><strong>Note:</strong> You can specify either the <code>srcfile</code>
+attribute or nested <code>&lt;srcfiles&gt;</code> elements, but not both.
+
+<a name="mapper"></a><h4>mapper</h4>
+<p>The nested <code>&lt;mapper&gt;</code> element allows you to specify
+a set of target files to check for being up-to-date with respect to a
+set of source files.</p>
+   <p>
+      The mapper "to" attribute is relative to the target file, or to
+      the "dir" attribute of the nested srcfiles element.
+   </p>
+<h3>Examples</h3>
+<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot; targetfile=&quot;${deploy}\xmlClasses.jar&quot; &gt;
+    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
+  &lt;/uptodate&gt;</pre>
+<p>sets the property <code>xmlBuild.notRequired</code> to <code>true</code>
+if the <code>${deploy}/xmlClasses.jar</code> file is more up-to-date than
+any of the DTD files in the <code>${src}/xml</code> directory.</p>
+<p>This can be written as:</p>
+<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot;&gt;
+    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
+    &lt;mapper type=&quot;merge&quot; to=&quot;${deploy}\xmlClasses.jar&quot;/&gt;
+  &lt;/uptodate&gt;</pre>
+as well.
+
+The <code>xmlBuild.notRequired</code> property can then be used in a
+<code>&lt;target&gt;</code> tag's <code>unless</code> attribute to
+conditionally run that target. For example, running the following target:</p>
+<pre>
+&lt;target name=&quot;xmlBuild&quot; depends=&quot;chkXmlBuild&quot; unless=&quot;xmlBuild.notRequired&quot;&gt;
+  ...
+&lt;/target&gt;
+</pre>
+will first run the <code>chkXmlBuild</code> target, which contains
+the <code>&lt;uptodate&gt;</code> task that determines whether
+<code>xmlBuild.notRequired</code> gets set. The property named in
+the <code>unless</code> attribute is then checked for being set/not set.
+If it did get set (ie., the jar file is up-to-date),
+then the <code>xmlBuild</code> target won't be run.
+</p>
+
+<p> The following example shows a single source file being checked
+against a single target file:</p>
+<pre>  &lt;uptodate property=&quot;isUpToDate&quot;
+            srcfile=&quot;/usr/local/bin/testit&quot;
+            targetfile=&quot;${build}/.flagfile&quot;/&gt;
+</pre>
+<p>sets the property <code>isUpToDate</code> to <code>true</code>
+if <code>/usr/local/bin/testit</code> is newer than
+<code>${build}/.flagfile</code>.</p>
+</p>
+  <p>
+    The following shows usage of a relative mapper.
+  </p>
+  <pre>
+    &lt;uptodate property="checkUptodate.uptodate"&gt;
+      &lt;srcfiles dir="src" includes="*" /&gt;
+      &lt;mapper type="merge" to="../dest/output.done"/&gt;
+    &lt;/uptodate&gt;
+    &lt;echo message="checkUptodate result: ${checkUptodate.uptodate}" /&gt;
+  </pre>
+  <p>
+    The previous example can be a bit confusing, so it may be better to
+    use absolute paths:
+  </p>
+  <pre>
+    &lt;property name="dest.dir" location="dest"/&gt;
+    &lt;uptodate property="checkUptodate.uptodate"&gt;
+      &lt;srcfiles dir="src" includes="*" /&gt;
+      &lt;mapper type="merge" to="${dest.dir}/output.done"/&gt;
+    &lt;/uptodate&gt;
+  </pre>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/waitfor.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/waitfor.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/waitfor.html	(revision 14989)
@@ -0,0 +1,118 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>WaitFor Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2>Waitfor</h2>
+<h3>Description</h3>
+<p>Blocks execution until a set of specified conditions become true. This is intended
+  to be used with the <a href="parallel.html">parallel</a> task to
+  synchronize a set of processes.</p>
+<p>The conditions to wait for are defined in <a href="waitfor.html#nested">nested elements</a>,
+if multiple conditions are specified, then the task will wait until all conditions are true..</p>
+<p></p>
+<p>If both maxwait and maxwaitunit are not specified, the maxwait is 3 minutes (180000 milliseconds).</p>
+<p>If the <code>timeoutproperty</code> attribute has been set, a
+property of that name will be created if the condition didn't come
+true within the specified time.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">maxwait</td>
+    <td valign="top">The maximum amount of time to wait for all the required conditions
+      to become true before failing the task. Defaults to 180000 maxwaitunits.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxwaitunit</td>
+    <td valign="top">The unit of time that must be used to interpret the value of the
+    maxwait attribute.  Defaults to millisecond.
+                     Valid Values are
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day</li>
+                        <li>week</li>
+                     </ul>
+      </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">checkevery</td>
+    <td valign="top">The amount of time to wait between each test of the conditions.
+      Defaults to 500 checkeveryunits.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">checkeveryunit</td>
+    <td valign="top">The unit of time that must be used to interpret the value of the
+    checkevery attribute.  Defaults to millisecond.
+                     Valid Values are
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day</li>
+                        <li>week</li>
+                     </ul>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeoutproperty</td>
+    <td valign="top">the name of the property to set if maxwait has
+      been exceeded.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<a name="nested"></a><h3>Nested Elements</h3>
+
+<p>The available conditions that satisfy the
+<code>&lt;waitfor&gt;</code> task are the same as those for the
+<a href="condition.html"><code>&lt;condition&gt;</code></a> task. See
+<a href="conditions.html">here</a> for the full list.</p>
+
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;waitfor maxwait=&quot;30&quot; maxwaitunit=&quot;second&quot;&gt;<br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&lt;available file="errors.log"/&gt;<br>
+    &lt;/waitfor&gt;</code></p>
+</blockquote>
+<p>waits up to 30 seconds for a file called errors.log to appear.</p>
+<blockquote>
+  <p><code>&lt;waitfor maxwait=&quot;3&quot; maxwaitunit=&quot;minute&quot; checkevery=&quot;500&quot;&gt;<br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&lt;http url=&quot;http://localhost/myapp/index.html&quot;/&gt;<br>
+    &lt;/waitfor&gt;</code></p>
+</blockquote>
+<p>waits up to 3 minutes (and checks every 500 milliseconds) for a web server on localhost
+  to serve up the specified URL.</p>
+<blockquote>
+  <p><code>&lt;waitfor maxwait=&quot;10&quot; maxwait=&quot;second&quot;&gt;<br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&lt;and&gt;<br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;socket server=&quot;dbserver&quot; port=&quot;1521&quot;/&gt;<br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;http url=&quot;http://webserver/mypage.html&quot;/&gt;<br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&lt;/and&gt;<br>
+    &lt;/waitfor&gt;</code></p>
+</blockquote>
+<p>waits up to 10 seconds for a server on the dbserver machine to begin listening
+  on port 1521 and for the http://webserver/mypage.html web page
+  to become available.</p>
+<hr><p align="center">Copyright &copy; 2001,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/war.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/war.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/war.html	(revision 14989)
@@ -0,0 +1,214 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>WAR Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="war">War</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="jar.html">Jar</a> task with special
+treatment for files that should end up in the
+<code>WEB-INF/lib</code>, <code>WEB-INF/classes</code> or
+<code>WEB-INF</code> directories of the Web Application Archive.</p>
+<p>(The War task is a shortcut for specifying the particular layout of a WAR file. 
+The same thing can be accomplished by using the <i>prefix</i> and <i>fullpath</i>
+attributes of zipfilesets in a Zip or Jar task.)</p>
+<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the War task.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the WAR file to create.</td>
+    <td align="center" valign="top" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">warfile</td>
+    <td valign="top"><i>Deprecated<i> name of the file to create
+    -use <tt>destfile</tt> instead.</td>
+  </tr>      
+  <tr>
+    <td valign="top">webxml</td>
+    <td valign="top">The deployment descriptor to use (WEB-INF/web.xml).</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">the manifest file to use.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Nested elements</h3>
+<h4>lib</h4>
+<p>The nested <code>lib</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>WEB-INF/lib</code> directory of the war file.</p>
+<h4>classes</h4>
+<p>The nested <code>classes</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>WEB-INF/classes</code> directory of the war file.</p>
+<h4>webinf</h4>
+<p>The nested <code>webinf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>WEB-INF</code> directory of the war file. If this
+fileset includes a file named <code>web.xml</code>, the file is
+ignored and you will get a warning.</p>
+<h4>metainf</h4>
+<p>The nested <code>metainf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>META-INF</code> directory of the war file. If this
+fileset includes a file named <code>MANIFEST.MF</code>, the file is
+ignored and you will get a warning.</p>
+<h3>Examples</h3>
+<p>Assume the following structure in the project's base directory:</p>
+<pre>
+thirdparty/libs/jdbc1.jar
+thirdparty/libs/jdbc2.jar
+build/main/com/myco/myapp/Servlet.class
+src/metadata/myapp.xml
+src/html/myapp/index.html
+src/jsp/myapp/front.jsp
+src/graphics/images/gifs/small/logo.gif
+src/graphics/images/gifs/large/logo.gif
+</pre>
+then the war file <code>myapp.war</code> created with
+<pre>
+&lt;war destfile=&quot;myapp.war&quot; webxml=&quot;src/metadata/myapp.xml&quot;&gt;
+  &lt;fileset dir=&quot;src/html/myapp&quot;/&gt;
+  &lt;fileset dir=&quot;src/jsp/myapp&quot;/&gt;
+  &lt;lib dir=&quot;thirdparty/libs&quot;&gt;
+    &lt;exclude name=&quot;jdbc1.jar&quot;/&gt;
+  &lt;/lib&gt;
+  &lt;classes dir=&quot;build/main&quot;/&gt;
+  &lt;zipfileset dir=&quot;src/graphics/images/gifs&quot; 
+              prefix=&quot;images&quot;/&gt;
+&lt;/war&gt;
+</pre>
+will consist of
+<pre>
+WEB-INF/web.xml
+WEB-INF/lib/jdbc2.jar
+WEB-INF/classes/com/myco/myapp/Servlet.class
+META-INF/MANIFEST.MF
+index.html
+front.jsp
+images/small/logo.gif
+images/large/logo.gif
+</pre>
+using Ant's default manifest file. The content of
+<code>WEB-INF/web.xml</code> is identical to
+<code>src/metadata/myapp.xml</code>.
+
+We regulary receive bug reports that this task is creating the WEB-INF
+directory, and thus it is our fault your webapp doesn't work. The cause
+of these complaints lies in WinZip, which turns an all upper-case
+directory into an all lower case one in a fit of helpfulness. Please check that
+jar xvf yourwebapp.war shows the same behaviour before filing another
+report. 
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/whichresource.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/whichresource.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/whichresource.html	(revision 14989)
@@ -0,0 +1,209 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Whichresource
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Whichresource
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Find a class or resource on the supplied classpath, or the system classpath if none is supplied.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Find a class or resource on the supplied classpath, or the system classpath if none is supplied. The named property is set if the item can be found. For example <pre> &lt;whichresource resource="/log4j.properties" property="log4j.url" &gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">property</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the property to fill with the URL of the resource or class</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="1">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Required</font>
+        </td>
+    </tr>
+
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">class</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name the class to look for</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="2">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Exactly one of these two</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">resource</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name the resource to look for</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">classpath</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the classpath to be used for this compilation.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="1">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>classpath</strong> (org.apache.tools.ant.types.Path)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        Adds a path to the classpath.
+ <!-- Ignore -->
+ <!-- Ignore -->
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/xmlproperty.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/xmlproperty.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/xmlproperty.html	(revision 14989)
@@ -0,0 +1,261 @@
+<html>
+<head>
+<title>XmlProperty Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="xmlproperty">XmlProperty</a></h2>
+<h3>Description</h3>
+<p>
+Loads property values from a well-formed xml file. There are no other restrictions
+than "well-formed". You can choose the layout you want. For example this XML property file:
+<pre>
+  &lt;root&gt;
+    &lt;properties&gt;
+      &lt;foo&gt;bar&lt;/foo&gt;
+    &lt;/properties&gt;
+  &lt;/root&gt;
+</pre>
+is roughly equivalent to this Java property file:
+<pre>
+  root.properties.foo = bar
+</pre>
+
+<p>
+By default, this load
+does <em>no</em> processing of the input.  In particular, unlike the
+<a href="property.html">Property task</a>, property references
+(i.e., <samp>${foo}</samp>) are not resolved.
+<p>
+<a name="semanticAttributes">
+<h3>Semantic Attributes</h3>
+</a>
+Input processing can be enabled by using the <b>semanticAttributes</b>
+attribute.  If this attribute is set to <i>true</i> (its default is
+<i>false</i>), the following processing occurs as the input XML file
+is loaded:
+<ul>
+  <li>Property references are resolved.</li>
+  <li>The following attriubtes are treated differently:
+    <ul>
+      <li><b>id</b>: The property is associated with the given id value.</li>
+      <li><b>location</b>: The property is treated as a file location</li>
+      <li><b>refid</b>: The property is set to the value of the
+          referenced property.</li>
+      <li><b>value</b>: The property is set to the value indicated.</li>
+    </ul>
+  </li>
+  <li><a href="../using.html#path">Path-like Structures</a> can be defined
+      by use of the following attributes:
+    <ul>
+      <li><b>pathid</b>: The given id is used to identify a path.  The
+          nested XML tag name is ignored.  Child elements can be used
+          (XML tag names are ignored) to identify elements of the path.</li>
+    </ul>
+  </li>
+</ul>
+<p>
+For example, with semantic attribute processing enabled, this XML property
+file:
+<pre>
+  &lt;root&gt;
+    &lt;properties&gt;
+      &lt;foo location="bar"/&gt;
+      &lt;quux&gt;${root.properties.foo}&lt;/quux&gt;
+    &lt;/properties&gt;
+  &lt;/root&gt;
+</pre>
+is roughly equivalent to the following fragments in a build.xml file:
+<pre>
+  &lt;property name="root.properties.foo" location="bar"/&gt;
+  &lt;property name="root.properties.quux" value="${root.properties.foo}"/&gt;
+</pre>
+
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The XML file to parse.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">The prefix to prepend to each property</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepRoot</td>
+    <td valign="top">Keep the xml root tag as the
+                     first value in the property name.</td>
+    <td valign="top" align="center">No, default is <i>true</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">validate</td>
+    <td valign="top">Validate the input file (e.g. by a DTD). Otherwise the XML must only be well-formed.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">collapseAttributes</td>
+    <td valign="top">Treat attributes as nested elements.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">semanticAttributes</td>
+    <td valign="top">Enable special handling of certain attribute names.
+                     See the <a href="#semanticAttributes">Semantic Attributes</a>
+                     section for more information.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeSemanticAttribute</td>
+    <td valign="top">Include the semantic attribute name
+                     as part of the property name.  Ignored if
+                     <i>semanticAttributes</i> is not set to <i>true</i>.
+                     See the <a href="#semanticAttributes">Semantic Attributes</a>
+                     section for more information.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">rootDirectory</td>
+    <td valign="top">The directory to use for resolving file references. Ignored
+                     if <i>semanticAttributes</i> is not set to <i>true</i>.</td>
+    <td valign="top" align="center">No, default is <i>${basedir}</i>.</td>
+  </tr>
+</table>
+
+<a name="examples">
+<h3>Examples</h3>
+</a>
+
+<h4>Non-semantic Attributes</h4>
+
+<p>Here is an example xml file that does not have any semantic attributes.</p>
+
+<pre>
+   &lt;root-tag myattr="true"&gt;
+    &lt;inner-tag someattr="val"&gt;Text&lt;/inner-tag&gt;
+    &lt;a2&gt;&lt;a3&gt;&lt;a4&gt;false&lt;/a4&gt;&lt;/a3&gt;&lt;/a2&gt;
+   &lt;/root-tag&gt;
+</pre>
+
+<h5>default loading</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml" /&gt;</pre>
+is equivalent to the following properties:
+<pre>
+   root-tag(myattr)=true
+   root-tag.inner-tag=Text
+   root-tag.inner-tag(someattr)=val
+   root-tag.a2.a3.a4=false
+</pre>
+
+<h5>collapseAttributes=false</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml" collapseAttributes="true"/&gt;</pre>
+is equivalent to the following properties:
+<pre>
+   root-tag.myattr=true
+   root-tag.inner-tag=Text
+   root-tag.inner-tag.someatt=val
+   root-tag.a2.a3.a4=false
+</pre>
+
+<h5>keepRoot=false</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml" keepRoot="false"/&gt;</pre>
+is equivalent to the following properties:
+<pre>
+   inner-tag=Text
+   inner-tag(someattr)=val
+   a2.a3.a4=false
+</pre>
+
+<h4>Semantic Attributes</h4>
+
+<p>Here is an example xml file that has semantic attributes.</p>
+<pre>
+  &lt;root-tag&gt;
+    &lt;version value="0.0.1"/&gt;
+    &lt;build folder="build"&gt;
+      &lt;classes id="build.classes" location="${build.folder}/classes"/&gt;
+      &lt;reference refid="build.classes"/&gt;
+    &lt;/build&gt;
+    &lt;compile&gt;
+      &lt;classpath pathid="compile.classpath"&gt;
+        &lt;pathelement location="${build.classes}"/&gt;
+      &lt;/classpath&gt;
+    &lt;/compile&gt;
+    &lt;run-time&gt;
+      &lt;jars&gt;*.jar&lt;/jars&gt;
+      &lt;classpath pathid="run-time.classpath"&gt;
+        &lt;path refid="compile.classpath"/&gt;
+        &lt;pathelement path="${run-time.jars}"/&gt;
+      &lt;/classpath&gt;
+    &lt;/run-time&gt;
+  &lt;/root-tag&gt;
+</pre>
+
+<h5>default loading (semanticAttributes=true)</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml"
+                semanticAttributes="true"/&gt;</pre>
+is equivalent to the following entries in a build file:
+<pre>
+  &lt;property name="version" value="0.0.1"/&gt;
+  &lt;property name="build.folder" value="build"/&gt;
+  &lt;property name="build.classes" location="${build.folder}/classes" id="build.classes"/&gt;
+  &lt;property name="build.reference" refid="build.classes"/&gt;
+
+  &lt;property name="run-time.jars" value="*.jar/&gt;
+
+  &lt;classpath id="compile.classpath"&gt;
+    &lt;pathelement location="${build.classes}"/&gt;
+  &lt;/classpath&gt;
+
+  &lt;classpath id="run-time.classpath"&gt;
+    &lt;path refid="compile.classpath"/&gt;
+    &lt;pathelement path="${run-time.jars}"/&gt;
+  &lt;/classpath&gt;
+</pre>
+
+<h5>includeSemanticAttribute="true"</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml"
+                semanticAttributes="true"
+                includeSemanticAttribute="true"/&gt;
+</pre>
+is equivalent to the following entries in a build file:
+<pre>
+  &lt;property name="version.value" value="0.0.1"/&gt;
+  &lt;property name="build.folder" value="build"/&gt;
+  &lt;property name="build.classes.location" location="${build.folder}/classes"/&gt;
+  &lt;property name="build.reference.refid" refid="build.location"/&gt;
+
+  &lt;property name="run-time.jars" value="*.jar/&gt;
+
+  &lt;classpath id="compile.classpath"&gt;
+    &lt;pathelement location="${build.classes}"/&gt;
+  &lt;/classpath&gt;
+
+  &lt;classpath id="run-time.classpath"&gt;
+    &lt;path refid="compile.classpath"/&gt;
+    &lt;pathelement path="${run-time.jars}"/&gt;
+  &lt;/classpath&gt;
+</pre>
+
+<hr>
+
+<p align="center">Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/zip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/zip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTasks/zip.html	(revision 14989)
@@ -0,0 +1,264 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Zip Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="zip">Zip</a></h2>
+<h3>Description</h3>
+<p>Creates a zipfile.</p>
+<p>The <i>basedir</i> attribute is the reference directory from where to zip.</p>
+<p>Note that file permissions will not be stored in the resulting zipfile.</p>
+<p>It is possible to refine the set of files that are being zipped. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns. </p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>basedir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>Or, you may place within it nested file sets, or references to file sets.
+In this case <code>basedir</code> is optional; the implicit file set is <i>only used</i>
+if <code>basedir</code> is set. You may use any mixture of the implicit file set
+(with <code>basedir</code> set, and optional attributes like <code>includes</code>
+and optional subelements like <code>&lt;include&gt;</code>); explicit nested
+<code>&lt;fileset&gt;</code> elements so long as at least one fileset total is specified. The ZIP file will
+only reflect the relative paths of files <i>within</i> each fileset. The Zip task and its derivatives know a special form of a fileset named zipfileset that has additional attributes (described below). </p>
+<p>The Zip task also supports the merging of multiple zip files into the zip file. 
+This is possible through either the <i>src</i> attribute of any nested filesets 
+or by using the special nested fileset <i>zipgroupfileset</i>.</p>
+
+<p>The <code>update</code> parameter controls what happens if the ZIP
+file already exists. When set to <code>yes</code>, the ZIP file is
+updated with the files specified. (New files are added; old files are
+replaced with the new versions.) When set to <code>no</code> (the
+default) the ZIP file is overwritten if any of the files that would be
+added to the archive are newer than the entries inside the archive.
+Please note that ZIP files store file modification times with a
+granularity of two seconds.  If a file is less than two seconds newer
+than the entry in the archive, Ant will not consider it newer.</p>
+
+<p>The <code>whenempty</code> parameter controls what happens when no files match.
+If <code>skip</code> (the default), the ZIP is not created and a warning is issued.
+If <code>fail</code>, the ZIP is not created and the build is halted with an error.
+If <code>create</code>, an empty ZIP file (explicitly zero entries) is created,
+which should be recognized as such by compliant ZIP manipulation tools.</p>
+<p>This task will now use the platform's default character encoding
+for filenames - this is consistent with the command line ZIP tools,
+but causes problems if you try to open them from within Java and your
+filenames contain non US-ASCII characters. Use the encoding attribute
+and set it to UTF8 to create zip files that can safely be read by
+Java.</p>
+
+<p>Starting with Ant 1.5.2, &lt;zip&gt; can store Unix permissions
+inside the archive (see description of the filemode and dirmode
+attributes for <a href="../CoreTypes/zipfileset.html">&lt;zipfileset&gt;</a>).
+Unfortunately there is no portable way to store these permissions.
+Ant uses the algorithm used by <a href="http://www.info-zip.org">Info-Zip's</a>
+implementation of the zip and unzip commands - these are the default
+versions of zip and unzip for many Unix and Unix-like systems.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the zip-file to create.</td>
+    <td align="center" valign="top" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">zipfile</td>
+    <td valign="top">the <i>deprecated</i> old name of destfile.</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to zip the files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+    inside the zip file.  For a list of possible values see <a
+    href="http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html">http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html</a>.
+    Defaults to the platform's default character encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">whenempty</td>
+    <td valign="top">behavior when no files match.  Valid values are &quot;fail&quot;, &quot;skip&quot;, and &quot;create&quot;.  Default is &quot;skip&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;. The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+<p>The zip task supports any number of nested <a
+href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a> elements to specify
+the files to be included in the archive.</p>
+
+<h4>zipfileset</h4>
+
+<p>The zip task supports any number of nested <a
+href="../CoreTypes/zipfileset.html"><code>&lt;zipfileset&gt;</code></a> elements to specify
+the files to be included in the archive.</p>
+
+<h4>zipgroupfileset</h4>
+<p>A <code>&lt;zipgroupfileset&gt;</code> allows for multiple zip files to be 
+merged into the archive. Each file found in this fileset is added to the archive 
+the same way that <i>zipfileset src</i> files are added.</p>
+
+
+<h3>Examples</h3>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code>
+in the <code>${dist}</code> directory.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+       update=&quot;true&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code>
+in the <code>${dist}</code> directory. If <code>manual.zip</code>
+doesn't exist, it is created; otherwise it is updated with the
+new/changed files.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+       excludes=&quot;mydocs/**, **/todo.html&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory. Files in the directory <code>mydocs</code>,
+or files with the name <code>todo.html</code> are excluded.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+       includes=&quot;api/**/*.html&quot;
+       excludes=&quot;**/todo.html&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory. Only html files under the directory <code>api</code>
+are zipped, and files with the name <code>todo.html</code> are excluded.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;&gt;
+    &lt;fileset dir=&quot;htdocs/manual&quot;/&gt;
+    &lt;fileset dir=&quot;.&quot; includes=&quot;ChangeLog.txt&quot;/&gt;
+  &lt;/zip&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory, and also adds the file <code>ChangeLog.txt</code> in the
+current directory. <code>ChangeLog.txt</code> will be added to the top of the ZIP file, just as if
+it had been located at <code>htdocs/manual/ChangeLog.txt</code>.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;&gt;
+    &lt;zipfileset dir=&quot;htdocs/manual&quot; prefix=&quot;docs/user-guide&quot;/&gt;
+    &lt;zipfileset dir=&quot;.&quot; includes=&quot;ChangeLog27.txt&quot; fullpath=&quot;docs/ChangeLog.txt&quot;/&gt;
+    &lt;zipfileset src=&quot;examples.zip&quot; includes=&quot;**/*.html&quot; prefix=&quot;docs/examples&quot;/&gt;
+  &lt;/zip&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory into the <code>docs/user-guide</code> directory
+in the archive, adds the file <code>ChangeLog27.txt</code> in the
+current directory as <code>docs/ChangeLog.txt</code>, and includes all the html files in <code>examples.zip</code> 
+under <code>docs/examples</code>.  The archive might end up containing the files:</p>
+<pre><code>    docs/user-guide/html/index.html
+    docs/ChangeLog.txt
+    docs/examples/index.html
+</code></pre>
+<p>
+The code
+<pre>
+  &lt;zip destfile=&quot;${dist}/manual.zip&quot;&gt;
+    &lt;zipfileset dir=&quot;htdocs/manual&quot; prefix=&quot;docs/user-guide&quot;/&gt;
+    &lt;zipgroupfileset dir=&quot;.&quot; includes=&quot;examples*.zip&quot;/&gt;
+  &lt;/zip&gt;</pre>
+</pre>
+<p>
+<p>zips all files in the <code>htdocs/manual</code> directory into the <code>docs/user-guide</code> directory in the archive and includes all the files in any file that maches <code>examples*.zip</code>, such as all files within <code>examples1.zip</code> or <code>examples_for_brian.zip</code>.
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/antlib.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/antlib.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/antlib.html	(revision 14989)
@@ -0,0 +1,194 @@
+<html>
+
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <title>AntLib</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+  </head>
+
+  <body>
+    <h2><a name="antlib">Antlib</a></h2>
+    <h3>Description</h3>
+    <p>
+      An antlib file is an xml file with a root element of "antlib".
+      Antlib's elements are ant definition tasks - like
+      <a href="../CoreTasks/typedef.html">Typedef</a>
+      and <a href="../CoreTasks/taskdef.html">Taskdef</a>,
+      or any ant task that extends
+      <code>org.apache.tools.ant.taskdefs.AntlibDefinition</code>.
+    </p>
+    <p>
+      A group of tasks and types may be defined together in an antlib
+      file. For example the file <i>sample.xml</i> contains the following:
+    </p>
+    <blockquote>
+      <pre>
+&lt;?xml version="1.0"?&gt;
+&lt;antlib&gt;
+   &lt;typedef name="if" classname="org.acme.ant.If"/&gt;
+   &lt;typedef name="scriptpathmapper"
+            classname="org.acme.ant.ScriptPathMapper"
+            onerror="ignore"/&gt;
+&lt;/antlib&gt;
+      </pre>
+    </blockquote>
+    <p>
+      It defines two types or tasks, <i>if</i> and <i>scriptpathmapper</i>.
+      This antlib file may be used in a build script as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef file="sample.xml"/&gt;
+      </pre>
+    </blockquote>
+    <p>
+      The other attributes of &lt;typedef&gt; may be used as well.
+      For example, assuming that the <i>sample.xml</i> is in a jar
+      file <i>sample.jar</i> also containing the classes, the
+      following build fragment will define the <i>if</i> and <i>scriptpathmapper</i>
+      tasks/types and place them in the namespace uri <i>samples:/acme.org</i>.
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef resource="org/acme/ant/sample.xml"
+         uri="samples:/acme.org"/&gt;
+      </pre>
+    </blockquote>
+    <p>
+      The definitions may then be used as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;sample:if valuetrue="${props}" xmlns:sample="samples:/acme.org"&gt;
+   &lt;sample:scriptpathmapper language="beanshell"&gt;
+      some bean shell
+   &lt;/sample:scriptpathmapper&gt;
+&lt;/sample:if&gt;
+      </pre>
+    </blockquote>
+    <h3><a name="antlibnamespace">Antlib namespace</a></h3>
+    <p>
+      The name space URIs with the pattern <b>antlib:<i>java package</i></b>
+      are given special treatment.
+    </p>
+    <p>
+      When ant encounters a element with a namespace URI with this pattern, it
+      will check to see if there is a resource of the name <i>antlib.xml</i> in
+      the package directory in the default classpath.
+    </p>
+    <p>
+      For example, assuming that the file <i>antcontrib.jar</i> has been placed
+      in the directory <i>${ant.home}/lib</i> and it contains the resource
+      <i>net/sf/antcontrib/antlib.xml</i> which has all antcontrib's definitions
+      defined, the following build file will automatically load the antcontrib
+      definitions at location <i>HERE</i>:
+    </p>
+    <blockquote>
+      <pre>
+&lt;project default="deletetest" xmlns:antcontrib="antlib:net.sf.antcontrib"&gt;
+   &lt;macrodef name="showdir"&gt;
+      &lt;attribute name="dir"/&gt;
+      &lt;sequential&gt;
+         &lt;antcontrib:shellscript shell="bash"&gt;  &lt;!-- HERE --&gt;
+            ls -Rl @{dir}
+         &lt;/antcontrib:shellscript&gt;
+      &lt;/sequential&gt;
+   &lt;/macrodef&gt;
+
+   &lt;target name="deletetest"&gt;
+      &lt;delete dir="a" quiet="yes"/&gt;
+      &lt;mkdir dir="a/b"/&gt;
+      &lt;touch file="a/a.txt"/&gt;
+      &lt;touch file="a/b/b.txt"/&gt;
+      &lt;delete&gt;
+         &lt;fileset dir="a"/&gt;
+      &lt;/delete&gt;
+      &lt;showdir dir="a"/&gt;
+   &lt;/target&gt;
+&lt;/project&gt;
+      </pre>
+    </blockquote>
+    <p>
+      The requirement that the resource is in the default classpath
+      may be removed in future versions of Ant.</p>
+    </p>
+    <h3><a name="currentnamespace">Current namespace</a></h3>
+    <p>
+      Definitions defined in antlibs may be used in antlibs. However
+      the namespace that definitions are placed in are dependent on
+      the &lt;typedef&gt; that uses the antlib. To deal with this
+      problem, the definitions are placed in the namepace URI <i>ant:current</i>
+      for the duration of the antlib execution.
+      For example the following antlib defines the task &lt;if&gt;, the
+      type &lt;isallowed&gt; and a macro
+      &lt;ifallowed&gt; that makes use of the task and type:
+    </p>
+    <blockquote>
+      <pre>
+&lt;antlib xmlns:current="ant:current"&gt;
+   &lt;taskdef name="if" classname="org.acme.ant.If"/&gt;
+   &lt;typedef name="isallowed" classname="org.acme.ant.Isallowed"/&gt;
+   &lt;macrodef name="ifallowed"&gt;
+      &lt;attribute name="action"/&gt;
+      &lt;element name="do"/&gt;
+      &lt;sequential&gt;
+         &lt;current:if&gt;
+            &lt;current:isallowed test="@{action}"/&gt;
+            &lt;current:then&gt;
+               &lt;do/&gt;
+            &lt;/current:then&gt;
+         &lt;/current:if&gt;
+      &lt;/sequential&gt;
+   &lt;/macrodef&gt;
+&lt;/antlib&gt;
+      </pre>
+    </blockquote>
+    <h3>Other examples and comments</h3>
+    <p>
+      Antlibs may make use of other antlibs.
+    </p>
+    <p>
+      As the names defined in the antlib are in the namespace uri as
+      specified by the calling &lt;typedef&gt; or by automatic element
+      resolution, one may reuse names from core ant types and tasks,
+      provided the caller uses a namespace uri. For example, the
+      following antlib may be used to define defaults for various
+      tasks:
+    </p>
+    <blockquote>
+      <pre>
+&lt;antlib xmlns:antcontrib="antlib:net.sf.antcontrib"&gt;
+   &lt;presetdef name="javac"&gt;
+      &lt;javac deprecation="${deprecation}"
+             debug="${debug}"/&gt;
+   &lt;/presetdef&gt;
+   &lt;presetdef name="delete"&gt;
+      &lt;delete quiet="yes"/&gt;
+   &lt;/presetdef&gt;
+   &lt;presetdef name="shellscript"&gt;
+      &lt;antcontrib:shellscript shell="bash"/&gt;
+   &lt;/presetdef&gt;
+&lt;/antlib&gt;
+      </pre>
+    </blockquote>
+    <p>
+      This may be used as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;project xmlns:local="localpresets"&gt;
+   &lt;typedef file="localpresets.xml" uri="localpresets"/&gt;
+   &lt;local:shellscript&gt;
+      echo "hello world"
+   &lt;/local:shellscript&gt;
+&lt;/project&gt;
+      </pre>
+    </blockquote>
+    
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/assertions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/assertions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/assertions.html	(revision 14989)
@@ -0,0 +1,194 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Assertions type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="assertions">Assertions</a></h2>
+<p>
+The <tt>assertions</tt> type enables or disables the Java 1.4 assertions feature,
+on a whole Java program, or components of a program. It can be used
+in <a href="../CoreTasks/java.html">&lt;java&gt;</a> and
+<a href="../OptionalTasks/junit.html">&lt;junit&gt;</a> to add extra validation to code.  
+
+<p>
+Assertions are covered in the 
+<a href="http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html">J2SDK 1.4 documentation</a>,
+and the
+<a href="http://java.sun.com/docs/books/jls/assert-spec.html">Java Language Specification</a>.
+
+<p>
+The key points to note are that a <tt>java.lang.AssertionError</tt>
+is thrown when an assertion fails, and that the facility is only available 
+on Java 1.4 and later. To enable assertions one must set <tt>source="1.4"</tt>
+(or later) in <tt>&lt;javac&gt;</tt> when the source is being compiled, and
+that the code must contain <tt>assert</tt> statements to be tested. The
+result of such an action is code that neither compiles or runs on earlier
+versions of Java. For this reason Ant itself currently contains no assertions.
+<p>
+
+When assertions are enabled (or disabled) in a task through nested 
+assertions elements, the class loader or command line is modified with the 
+appropriate options. This means that the JVM executed must be a Java 1.4
+or later JVM, even if there are no assertions in the code. Attempting to
+enable assertions on earlier VMs will result in an "Unrecognized option" 
+error and the JVM will not start.  
+
+<p>
+<h4>Attributes</h4>
+<p>
+
+
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">enableSystemAssertions</td>
+    <td valign="top">Flag to turn system assertions on or off.</td>
+    <td valign="top" align="center">No; default is "unspecified"</td>
+  </tr>
+</table>
+<p>
+When system assertions have been neither enabled nor disabled, then
+the JVM is not given any assertion information - the default action of the
+ current JVMs is to disable system assertions. 
+<p>
+Note also that there is no apparent documentation for what parts of the
+JRE come with useful assertions.
+
+<h3>Nested elements</h3>
+
+<h4>enable</h4>
+<p>
+Enable assertions in portions of code.
+If neither a package nor class is specified, assertions are turned on in <i>all</i> (user) code.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The name of a class on which to enable assertions.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">
+    The name of a package in which to enable assertions on all classes. (Includes subpackages.)
+    Use "<tt>...</tt>" for the anonymous package.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>disable</h4>
+<p>
+Disable assertions in portions of code.
+
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The name of a class on which to disable assertions.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">
+    The name of a package in which to disable assertions on all classes. (Includes subpackages.)
+    Use "<tt>...</tt>" for the anonymous package.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+
+Because assertions are disabled by default, it only makes sense to disable
+assertions where they have been enabled in a parent package.
+
+
+<h4>Examples</h4>
+
+<h5>Example: enable assertions in all user classes</h5>
+
+All classes not in the JRE (i.e. all non-system classes) will have assertions turned on.
+<pre>
+&lt;assertions&gt;
+  &lt;enable/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: enable a single class</h5>
+
+Enable assertions in a class called Test
+<pre>
+&lt;assertions&gt;
+  &lt;enable class="Test"/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: enable a package</h5>
+
+Enable assertions in the <tt>org.apache</tt> package
+and all packages starting with the <tt>org.apache.</tt> prefix
+<pre>
+&lt;assertions&gt;
+  &lt;enable package="org.apache"/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: System assertions</h5>
+
+Example: enable system assertions and assertions in all <tt>org.apache</tt> packages except
+for Ant (but including <tt>org.apache.tools.ant.Main</tt>)
+<pre>
+&lt;assertions enableSystemAssertions="true"&gt;
+  &lt;enable package="org.apache"/&gt;
+  &lt;disable package="org.apache.tools.ant"/&gt;
+  &lt;enable class="org.apache.tools.ant.Main"/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: disabled and anonymous package assertions</h5>
+
+Disable system assertions; enable those in the anonymous package
+<pre>
+&lt;assertions enableSystemAssertions="false"&gt;
+  &lt;enable package="..."/&gt;
+&lt;/assertions&gt;
+</pre>
+
+
+<h5>Example: referenced assertions</h5>
+
+This type is a datatype, so you can declare assertions and use them later
+
+<pre>
+&lt;assertions id="project.assertions"&gt;
+  &lt;enable package="org.apache.test"/&gt;
+&lt;/assertions&gt;
+
+&lt;assertions refid="project.assertions"/&gt;
+</pre>
+
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/custom-programming.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/custom-programming.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/custom-programming.html	(revision 14989)
@@ -0,0 +1,401 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+<title>Custom Components</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+  </head>
+  <body>
+    <h2>Custom Components</h2>
+    <h3>Overview</h3>
+    <p>
+      Custom components are conditions, selectors, filters and other
+      objects that are defined outside ant core.
+    </p>
+    <p>
+      In Ant 1.6 custom conditions, selectors and filters has
+      been overhauled.
+    </p>
+    <p>
+      It is now possible to define custom conditions, selectors and filters
+      that behave like Ant Core components.
+      This is achieved by allowing datatypes defined in build scripts
+      to be used as custom components if the class of the datatype
+      is compatible, or has been adapted by an adapter class.
+    </p>
+    <p>
+      The old methods of defining custom components are still supported.
+    </p>
+    <h3>Definition and use</h3>
+    <p>
+      A custom component is a normal Java class that implements a particular
+      interface or extends a  particular class, or has been adapted to the
+      interface or class.
+    </p>
+    <p>
+      It is exactly like writing a
+      <a href="../develop.html#writingowntask">custom task</a>.
+      One defines attributes and nested elements by writing <i>setter</i>
+      methods and <i>add</i> methods.
+    </p>
+    <p>
+      After the class has been written, it is added to the ant system
+      by using <code>&lt;typedef&gt;</code>.
+    </p>
+    <h3><a name="customconditions">Custom Conditions</a></h3>
+    <p>
+      Custom conditions are datatypes that implement
+      <code>org.apache.tools.ant.taskdefs.condition.Condition</code>.
+      For example a custom condition that returns true if a
+      string is all upper case could be written as:
+    </p>
+    <blockquote>
+      <pre>
+package com.mydomain;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.taskdefs.condition.Condition;
+
+public class AllUpperCaseCondition implements Condition {
+    private String value;
+
+    // The setter for the "value" attribute
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // This method evaluates the condition
+    public boolean eval() {
+        if (value == null) {
+            throw new BuildException("value attribute is not set");
+        }
+        return value.toUpperCase().equals(value);
+   }
+}
+      </pre>
+    </blockquote>
+
+    <p>
+        Adding the condition to the system is achieved as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef
+    name="alluppercase"
+    classname="com.mydomain.AllUpperCaseCondition"
+    classpath="${mydomain.classes}"/&gt;
+      </pre>
+    </blockquote>
+    <p>
+      This condition can now be used wherever a Core Ant condition
+      is used.
+    </p>
+    <blockquote>
+      <pre>
+&lt;condition property="allupper"&gt;
+   &lt;alluppercase value="THIS IS ALL UPPER CASE"/&gt;
+&lt;/condition&gt;
+      </pre>
+    </blockquote>
+    <h3><a name="customselectors">Custom Selectors</a></h3>
+    <p>
+      Custom selectors are datatypes that implement
+      <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+    </p>
+    <p>There is only one method required.
+      <code>public boolean isSelected(File basedir, String filename,
+        File file)</code>.
+      It returns true
+      or false depending on whether the given file should be
+      selected or not.
+    </p>
+    <p>
+      An example of a custom selection that selects filenames ending
+      in ".java" would be:
+    </p>
+    <blockquote>
+      <pre>
+package com.mydomain;
+import java.io.File;
+import org.apache.tools.ant.types.selectors.FileSelector;
+public class JavaSelector implements FileSelector {
+    public boolean isSelected(File b, String filename, File f) {
+       return filename.toLowerCase().endsWith(".java");
+    }
+}
+      </pre>
+    </blockquote>
+    <p>
+      Adding the selector to the system is achieved as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef
+    name="javaselector"
+    classname="com.mydomain.JavaSelector"
+    classpath="${mydomain.classes}"/&gt;
+      </pre>
+    </blockquote>
+        <p>
+      This selector can now be used wherever a Core Ant selector
+      is used, for example:
+    </p>
+    <blockquote>
+      <pre>
+&lt;copy todir="to"&gt;
+   &lt;fileset dir="src"&gt;
+      &lt;javaselector/&gt;
+   &lt;/fileset&gt;
+&lt;/copy&gt;
+      </pre>
+    </blockquote>
+
+      <p>
+        One may use
+        <code>org.apache.tools.ant.types.selectors.BaseSelector</code>,
+        a convenience class that provides reasonable default
+        behaviour.
+        It has some predefined behaviours you can take advantage
+        of. Any time you encounter a problem when setting attributes or
+        adding tags, you can call setError(String errmsg) and the class
+        will know that there is a problem. Then, at the top of your
+        <code>isSelected()</code> method call <code>validate()</code> and
+        a BuildException will be thrown with the contents of your error
+        message. The <code>validate()</code> method also gives you a
+        last chance to check your settings for consistency because it
+        calls <code>verifySettings()</code>. Override this method and
+        call <code>setError()</code> within it if you detect any
+        problems in how your selector is set up.
+    </p>
+    <p>
+      To write custom selector containers one should extend
+      <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+      Implement the
+      <code>public boolean isSelected(File baseDir, String filename, File file)</code>
+      method to do the right thing. Chances are you'll want to iterate
+      over the selectors under you, so use
+      <code>selectorElements()</code> to get an iterator that will do
+      that.
+    </p>
+    <p>
+      For example to create a selector container that will select files
+      if a certain number of contained selectors select, one could write
+      a selector as follows:
+    </p>
+    <blockquote>
+      <pre>
+public class MatchNumberSelectors extends BaseSelectorContainer {
+    private int number = -1;
+    public void setNumber(int number) {
+        this.number = number;
+    }
+    public void verifySettings() {
+        if (number &lt; 0) {
+           throw new BuildException("Number attribute should be set");
+        }
+    }
+    public boolean isSelected(File baseDir, String filename, File file) {
+        validate();
+        int numberSelected = 0;
+        for (Enumeration e = selectorElements(); e.hasNextElement();) {
+            FileSelector s = (FileSelector) e.nextElement();
+            if (s.isSelected(baseDir, filename, file)) {
+                numberSelected++;
+            }
+        }
+        return numberSelected == number;
+    }
+}
+      </pre>
+    </blockquote>
+    <p>
+      To define and use this selector one could do:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef name="numberselected"
+         classname="com.mydomain.MatchNumberSelectors"/&gt;
+...
+&lt;fileset dir="${src.path}"&gt;
+   &lt;numberselected number="2"&gt;
+      &lt;contains text="script" casesensitive="no"/&gt;
+      &lt;size value="4" units="Ki" when="more"/&gt;
+      &lt;javaselector/&gt;
+   &lt;/numberselected&gt;
+&lt;/fileset&gt;
+      </pre>
+    </blockquote>
+    <p>
+      <i>The custom selector</i>
+    </p>
+    <p>
+      The custom selector was the pre ant 1.6 way of defining custom selectors.
+      This method is still supported for backward compatibility.
+    </p>
+    <p>You can write your own selectors and use them within the selector
+      containers by specifying them within the &lt;custom&gt; tag.</p>
+
+        <p>To create a new Custom Selector, you have to create a class that
+        implements
+        <code>org.apache.tools.ant.types.selectors.ExtendFileSelector</code>.
+        The easiest way to do that is through the convenience base class
+        <code>org.apache.tools.ant.types.selectors.BaseExtendSelector</code>,
+        which provides all of the methods for supporting
+        <code>&lt;param&gt;</code> tags. First, override the
+        <code>isSelected()</code> method, and optionally the
+        <code>verifySettings()</code> method. If your custom
+        selector requires parameters to be set, you can also override
+        the <code>setParameters()</code> method and interpret the
+        parameters that are passed in any way you like. Several of the
+        core selectors demonstrate how to do that because they can
+        also be used as custom selectors.</p>
+
+
+    <p>Once that is written, you include it in your build file by using
+      the <code>&lt;custom&gt;</code> tag.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">classname</td>
+        <td valign="top">The name of your class that implements
+          <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">classpath</td>
+        <td valign="top">The classpath to use in order to load the
+          custom selector class. If neither this classpath nor the
+          classpathref are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">classpathref</td>
+        <td valign="top">A reference to a classpath previously
+          defined. If neither this reference nor the
+          classpath above are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is how you use <code>&lt;custom&gt;</code> to
+      use your class as a selector:
+    </p>
+
+    <blockquote><pre>
+&lt;fileset dir="${mydir}" includes="**/*"&gt;
+    &lt;custom classname="com.mydomain.MySelector"&gt;
+        &lt;param name="myattribute" value="myvalue"/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+      </pre></blockquote>
+
+
+    <p>The core selectors that can also be used as custom selectors
+      are</p>
+
+    <ul>
+      <li><a href="selectors.html#containsselect">Contains Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.ContainsSelector</code>
+      </li>
+      <li><a href="selectors.html#dateselect">Date Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DateSelector</code>
+      </li>
+      <li><a href="selectors.html#depthselect">Depth Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DepthSelector</code>
+      </li>
+      <li><a href="selectors.html#filenameselect">Filename Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.FilenameSelector</code>
+      </li>
+      <li><a href="selectors.html#sizeselect">Size Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.SizeSelector</code>
+      </li>
+    </ul>
+
+    <p>Here is the example from the Depth Selector section rewritten
+    to use the selector through <code>&lt;custom&gt;</code>.</p>
+
+    <blockquote><pre>
+&lt;fileset dir="${doc.path}" includes="**/*"&gt;
+    &lt;custom classname="org.apache.tools.ant.types.selectors.DepthSelector"&gt;
+        &lt;param name="max" value="1"/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+      </pre></blockquote>
+
+    <p>Selects all files in the base directory and one directory below
+      that.</p>
+
+    <h3><a name="filterreaders">Custom Filter Readers</a></h3>
+    <p>
+      Custom filter readers selectors are datatypes that implement
+      <code>org.apache.tools.ant.types.filters.ChainableReader</code>.
+    </p>
+    <p>There is only one method required.
+      <code>Reader chain(Reader reader)</code>.
+      This returns a reader that filters input from the specified
+      reader.
+    </p>
+    <p>
+      For example a filterreader that removes every second character
+      could be:
+    </p>
+    <blockquote>
+      <pre>
+public class RemoveOddCharacters implements ChainableReader {
+   public Reader chain(Reader reader) {
+      return new BaseFilterReader(reader) {
+          int count = 0;
+          public int read() throws IOException {
+              while (true) {
+                int c = in.read();
+                if (c == -1) {
+                    return c;
+                }
+                count++;
+                if ((count % 2) == 1) {
+                    return c;
+                }
+              }
+          }
+      }
+   }
+}
+      </pre>
+    </blockquote>
+    <p>
+      For line oriented filters it may be easier to extend
+      <code>ChainableFilterReader</code> an inner class of
+      <code>org.apache.tools.ant.filters.TokenFilter</code>.
+    </p>
+    <p>
+      For example a filter that appends the line number could be
+    </p>
+    <blockquote>
+      <pre>
+public class AddLineNumber extends ChainableReaderFilter {
+   private void lineNumber = 0;
+   public String filter(String string) {
+      lineNumber++;
+      return "" + lineNumber + "\t" + string;
+   }
+}
+      </pre>
+    </blockquote>
+
+
+    <hr></hr>
+    <p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation. All rights
+      Reserved.</p>
+  </body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/description.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/description.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/description.html	(revision 14989)
@@ -0,0 +1,32 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="description">Description</a></h2>
+<h3>Description</h3>
+<p>Allows for a description of the project to be specified that
+will be included in the output of the <code>ant &#x2011;projecthelp</code>
+command.</p>
+
+<h3>Parameters</h3>
+<p>(none)</p>
+<h3>Examples</h3>
+<pre>  
+&lt;description&gt;
+This buildfile is used to build the Foo subproject within 
+the large, complex Bar project.
+&lt;/description&gt;
+</pre>
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/dirset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/dirset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/dirset.html	(revision 14989)
@@ -0,0 +1,110 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>DirSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="dirset">DirSet</a></h2>
+<p>DirSets are groups of directories. These directories can be found in a
+directory tree starting in a base directory and are matched by
+patterns taken from a number of <a
+href="patternset.html">PatternSets</a>. DirSets can appear inside tasks
+that support this feature or at the same level as <code>target</code>
+(i.e., as children of <code>&lt;project&gt;</code>).</p>
+<p>PatternSets can be specified as nested
+<code>&lt;patternset&gt;</code> elements. In addition, DirSet holds
+an implicit PatternSet and supports the nested
+<code>&lt;include&gt;</code>, <code>&lt;includesfile&gt;</code>,
+<code>&lt;exclude&gt;</code> and <code>&lt;excludesfile&gt;</code>
+elements of <code>&lt;patternset&gt;</code> directly, as well as
+<code>&lt;patternset&gt;</code>'s attributes.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The root of the directory tree of this DirSet.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">A comma- or space-separated list of patterns of directories that
+     must be included; all directories are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">The name of a file; each line of this file is
+      taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">A comma- or space-separated list of patterns of directories that
+     must be excluded; no directories are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">The name of a file; each line of this file is
+      taken to be an exclude pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Specifies whether case-sensitivty should be applied
+     (<code>true</code>|<code>yes</code>|<code>on</code> or
+     <code>false</code>|<code>no</code>|<code>off</code>).</td>
+    <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">followsymlinks</td>
+    <td valign="top">Shall symbolic links be followed? Defaults to
+      true. See <a href="fileset.html#symlink">fileset's documentation</a>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>Examples</h4>
+<blockquote><pre>
+&lt;dirset dir=&quot;${build.dir}&quot;&gt;
+  &lt;include name=&quot;apps/**/classes&quot;/&gt;
+  &lt;exclude name=&quot;apps/**/*Test*&quot;/&gt;
+&lt;/dirset&gt;
+</pre></blockquote>
+<p>Groups all directories named <code>classes</code> found under the
+<code>apps</code> subdirectory of <code>${build.dir}</code>, except those
+that have the text <code>Test</code> in their name.</p>
+<blockquote><pre>
+&lt;dirset dir=&quot;${build.dir}&quot;&gt;
+  &lt;patternset id=&quot;non.test.classes&quot;&gt;
+    &lt;include name=&quot;apps/**/classes&quot;/&gt;
+    &lt;exclude name=&quot;apps/**/*Test*&quot;/&gt;
+  &lt;/patternset&gt;
+&lt;/dirset&gt;
+</pre></blockquote>
+<p>Groups the same directories as the above example, but also establishes
+a PatternSet that can be referenced in other
+<code>&lt;dirset&gt;</code> elements, rooted at a different directory.</p>
+<blockquote><pre>
+&lt;dirset dir=&quot;${debug_build.dir}&quot;&gt;
+  &lt;patternset refid=&quot;non.test.classes&quot;/&gt;
+&lt;/dirset&gt;
+</pre></blockquote>
+<p>Groups all directories in directory <code>${debug_build.dir}</code>,
+using the same patterns as the above example.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/filelist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/filelist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/filelist.html	(revision 14989)
@@ -0,0 +1,106 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>FileList Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="filelist">FileList</a></h2> 
+
+<p>FileLists are explicitly named lists of files.  Whereas FileSets
+act as filters, returning only those files that exist in the file
+system and match specified patterns, FileLists are useful for
+specifying files that may or may not exist.  Multiple files are
+specified as a list of files, relative to the specified directory,
+with no support for wildcard expansion (filenames with wildcards will be
+included in the list unchanged).
+FileLists can appear inside tasks that support this feature or as stand-alone
+types.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The base directory of this FileList.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">files</td>
+    <td valign="top">The list of file names. This is a list of
+    file name separated by whitespace, or by commas.</td>
+    <td valign="top" align="center">
+      Yes, unless there is a nested file element</td>
+  </tr>
+</table>
+  <h4>Nested Element: file</h4>
+  <p>
+    This represents a file name. The nested element allows filenames containing
+    white space and commas.
+  </p>
+  <p><em>Since ant 1.7</em></p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">name</td>
+      <td valign="top">The name of the file.</td>
+      <td valign="top" align="center">Yes</td>
+    </tr>
+</table>  
+<h4>Examples</h4>
+<blockquote><pre>
+&lt;filelist 
+    id=&quot;docfiles&quot; 
+    dir=&quot;${doc.src}&quot;
+    files=&quot;foo.xml,bar.xml&quot;/&gt; 
+</pre></blockquote>
+
+<p>The files <code>${doc.src}/foo.xml</code> and
+<code>${doc.src}/bar.xml</code>.  Note that these files may not (yet)
+actually exist.
+</p>
+
+<blockquote><pre>
+&lt;filelist 
+    id=&quot;docfiles&quot; 
+    dir=&quot;${doc.src}&quot;
+    files=&quot;foo.xml
+           bar.xml&quot;/&gt; 
+</pre></blockquote>
+
+<p>Same files as the example above.</p>
+
+<blockquote><pre>
+&lt;filelist refid=&quot;docfiles&quot;/&gt; 
+</pre></blockquote>
+
+<p>Same files as the example above.</p>
+
+<blockquote><pre>
+&lt;filelist 
+    id=&quot;docfiles&quot; 
+    dir=&quot;${doc.src}&quot;&gt;
+    &lt;file name="foo.xml"/&gt;
+    &lt;file name="bar.xml"/&gt;
+&lt;/filelist&gt;
+</pre></blockquote>
+
+<p>Same files as the example above.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/fileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/fileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/fileset.html	(revision 14989)
@@ -0,0 +1,149 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>FileSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="fileset">FileSet</a></h2>
+<p>FileSets are groups of files. These files can be found in a
+directory tree starting in a base directory and are matched by
+patterns taken from a number of <a
+href="patternset.html">PatternSets</a> and
+<a href="selectors.html">Selectors</a>. FileSets can appear inside tasks
+that support this feature or at the same level as <code>target</code>
+- i.e., as children of <code>project</code>.</p>
+<p>PatternSets can be specified as nested
+<code>&lt;patternset&gt;</code> elements. In addition, FileSet holds
+an implicit PatternSet and supports the nested
+<code>&lt;include&gt;</code>, <code>&lt;includesfile&gt;</code>,
+<code>&lt;exclude&gt;</code> and <code>&lt;excludesfile&gt;</code>
+elements of PatternSet directly, as well as PatternSet's
+attributes.</p>
+<p>Selectors are available as nested elements.within the FileSet.
+If any of the selectors within the FileSet do not select the file, the
+file is not considered part of the FileSet. This makes FileSets
+equivalent to an <code>&lt;and&gt;</code> selector container.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the root of the directory tree of this FileSet.</td>
+    <td valign="middle" align="center" rowspan="2">Either dir or file must be specified</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">shortcut for specifying a single file fileset</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether <a href="../dirtasks.html#defaultexcludes">default excludes</a> should be used or not
+      (<code>yes | no</code>); default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included; all files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded; no files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an exclude pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Must the include and exclude patterns be treated in a case sensitive way?
+        Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">followsymlinks</td>
+    <td valign="top">Shall symbolic links be followed? Defaults to
+      true. See the note <a href="#symlink">below</a>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p><a name="symlink"><b>Note</b></a>: All files/directories for which
+the canonical path is different from its path are considered symbolic
+links.  On Unix systems this usually means the file really is a
+symbolic links but it may lead to false results on other
+platforms.</p>
+
+<h4>Examples</h4>
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;include name=&quot;**/*.java&quot;/&gt;
+  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups all files in directory <code>${server.src}</code> that are Java
+source files and don't have the text <code>Test</code> in their
+name.</p>
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;patternset id=&quot;non.test.sources&quot;&gt;
+    &lt;include name=&quot;**/*.java&quot;/&gt;
+    &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+  &lt;/patternset&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups the same files as the above example, but also establishes
+a PatternSet that can be referenced in other
+<code>&lt;fileset&gt;</code> elements, rooted at a different directory.</p>
+<blockquote><pre>
+&lt;fileset dir=&quot;${client.src}&quot; &gt;
+  &lt;patternset refid=&quot;non.test.sources&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups all files in directory <code>${client.src}</code>, using the
+same patterns as the above example.</p>
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;filename name=&quot;**/*.java&quot;/&gt;
+  &lt;filename name=&quot;**/*Test*&quot; negate=&quot;true&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups the same files as the top example, but using the
+<code>&lt;filename&gt;</code> selector.</p>
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;filename name=&quot;**/*.java&quot;/&gt;
+  &lt;not&gt;
+    &lt;filename name=&quot;**/*Test*&quot;/&gt;
+  &lt;/not&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups the same files as the previous example using a combination of the
+<code>&lt;filename&gt;</code> selector and the <code>&lt;not&gt;</code>
+selector container.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/filterchain.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/filterchain.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/filterchain.html	(revision 14989)
@@ -0,0 +1,1347 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<HTML>
+<HEAD>
+  <TITLE>FilterChains and FilterReaders</TITLE>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</HEAD>
+
+<BODY>
+
+<H2>FilterChains and FilterReaders</H2>
+Look at Unix pipes - they offer you so much flexibility -
+say you wanted to copy just those lines that contained the
+string blee from the first 10 lines of a file 'foo'
+to a file 'bar' - you would do something like<P>
+<code>
+cat foo|head -n10|grep blee &gt; bar
+</code><P>
+Ant was not flexible enough.  There was no way for the
+&lt;copy&gt; task to do something similar.  If you wanted
+the &lt;copy&gt; task to get the first 10 lines, you would have
+had to create special attributes:<P>
+<code>
+&lt;copy file=&quot;foo&quot; tofile=&quot;bar&quot; head=&quot;10&quot; contains=&quot;blee&quot;/&gt;
+</code><P>
+The obvious problem thus surfaced: Ant tasks would not be able
+to accommodate such data transformation attributes as they would
+be endless.  The task would also not know in which order these
+attributes were to be interpreted.  That is, must the task execute the
+contains attribute first and then the head attribute or vice-versa?
+What Ant tasks needed was a mechanism to allow pluggable filter (data
+transformer) chains.  Ant would provide a few filters for which there
+have been repeated requests.  Users with special filtering needs
+would be able to easily write their own and plug them in.<P>
+
+The solution was to refactor data transformation oriented
+tasks to support FilterChains.  A FilterChain is a group of
+ordered FilterReaders.  Users can define their own FilterReaders
+by just extending the java.io.FilterReader class.  Such custom
+FilterReaders can be easily plugged in as nested elements of
+&lt;filterchain&gt; by using &lt;filterreader&gt; elements.
+<P>
+Example:
+<BLOCKQUOTE><PRE>
+&lt;copy file=&quot;${src.file}&quot; tofile=&quot;${dest.file}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;your.extension.of.java.io.FilterReader&quot;&gt;
+      &lt;param name=&quot;foo&quot; value=&quot;bar&quot;/&gt;
+    &lt;/filterreader&gt;
+    &lt;filterreader classname=&quot;another.extension.of.java.io.FilterReader&quot;&gt;
+      &lt;classpath&gt;
+        &lt;pathelement path="${classpath}"/&gt;
+      &lt;/classpath&gt;
+      &lt;param name=&quot;blah&quot; value=&quot;blee&quot;/&gt;
+      &lt;param type=&quot;abra&quot; value=&quot;cadabra&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/copy&gt;
+</PRE></BLOCKQUOTE>
+
+Ant provides some built-in filter readers.  These filter readers
+can also be declared using a syntax similar to the above syntax.
+However, they can be declared using some simpler syntax also.<P>
+Example:
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.head}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+is equivalent to:
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.head}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.HeadFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+The following built-in tasks support nested &lt;filterchain&gt; elements.<BR>
+<a href="../CoreTasks/concat.html">Concat</a>,<BR>
+<a href="../CoreTasks/copy.html">Copy</a>,<BR>
+<a href="../CoreTasks/loadfile.html">LoadFile</a>,<BR>
+<a href="../CoreTasks/loadproperties.html">LoadProperties</a>,<BR>
+<a href="../CoreTasks/move.html">Move</a><BR><BR>
+
+A FilterChain is formed by defining zero or more of the following
+nested elements.<BR>
+<a href="#filterreader">FilterReader</a><BR>
+<a href="#classconstants">ClassConstants</a><BR>
+<a href="#escapeunicode">EscapeUnicode</a><BR>
+<a href="#expandproperties">ExpandProperties</a><BR>
+<a href="#headfilter">HeadFilter</a><BR>
+<a href="#linecontains">LineContains</a><BR>
+<a href="#linecontainsregexp">LineContainsRegExp</a><BR>
+<a href="#prefixlines">PrefixLines</a><BR>
+<a href="#replacetokens">ReplaceTokens</a><BR>
+<a href="#stripjavacomments">StripJavaComments</a><BR>
+<a href="#striplinebreaks">StripLineBreaks</a><BR>
+<a href="#striplinecomments">StripLineComments</a><BR>
+<a href="#tabstospaces">TabsToSpaces</a><BR>
+<a href="#tailfilter">TailFilter</a><BR>
+<a href="#deletecharacters">DeleteCharacters</a><BR>
+<a href="#concatfilter">ConcatFilter</a><BR>
+<a href="#tokenfilter">TokenFilter</a><BR>
+
+<H3><a name="filterreader">FilterReader</a></H3>
+
+The filterreader element is the generic way to
+define a filter.  User defined filter elements are
+defined in the build file using this.  Please note that
+built in filter readers can also be defined using this
+syntax.
+
+A FilterReader element must be supplied with a class name as
+an attribute value.  The class resolved by this name must
+extend java.io.FilterReader.  If the custom filter reader
+needs to be parameterized, it must implement
+org.apache.tools.type.Parameterizable.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>classname</TD>
+    <TD vAlign=top>The class name of the filter reader.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+
+<P>
+<H4>Nested Elements:</H4>
+&lt;filterreader&gt; supports &lt;classpath&gt; and &lt;param&gt;
+as nested elements.  Each &lt;param&gt; element may take in the following
+attributes - name, type and value.
+<P>
+The following FilterReaders are supplied with the default
+distribution.
+
+<H3><a name="classconstants">ClassConstants</a></H3>
+<P>
+This filters basic constants defined in a Java Class,
+and outputs them in lines composed of the format name=value
+<P>
+<H4>Example:</H4>
+
+This loads the basic constants defined in a Java class as Ant properties.
+<BLOCKQUOTE><PRE>
+&lt;loadproperties srcfile=&quot;foo.class&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.ClassConstants&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;loadproperties srcfile=&quot;foo.class&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;classconstants/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="escapeunicode">EscapeUnicode</a></H3>
+<P>
+This filter converts its input by changing all non US-ASCII characters
+into their equivalent unicode escape backslash u plus 4 digits.</p>
+
+<P><em>since Ant 1.6</em></p>
+
+<H4>Example:</H4>
+
+This loads the basic constants defined in a Java class as Ant properties.
+<BLOCKQUOTE><PRE>
+&lt;loadproperties srcfile=&quot;non_ascii_property.properties&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.EscapeUnicode&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;loadproperties srcfile=&quot;non_ascii_property.properties&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;escapeunicode/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="expandproperties">ExpandProperties</a></H3>
+<P>
+If the data contains data that represents Ant
+properties (of the form ${...}), that is substituted
+with the property's actual value.
+<P>
+<H4>Example:</H4>
+
+This results in the property modifiedmessage holding the value
+&quot;All these moments will be lost in time, like teardrops in the rain&quot;
+<BLOCKQUOTE><PRE>
+&lt;echo
+  message=&quot;All these moments will be lost in time, like teardrops in the ${weather}&quot;
+  file=&quot;loadfile1.tmp&quot;
+  /&gt;
+&lt;property name=&quot;weather&quot; value=&quot;rain&quot; /&gt;
+&lt;loadfile property=&quot;modifiedmessage&quot; srcFile=&quot;loadfile1.tmp&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.ExpandProperties&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;echo
+  message=&quot;All these moments will be lost in time, like teardrops in the ${weather}&quot;
+  file=&quot;loadfile1.tmp&quot;
+  /&gt;
+&lt;property name=&quot;weather&quot; value=&quot;rain&quot; /&gt;
+&lt;loadfile property=&quot;modifiedmessage&quot; srcFile=&quot;loadfile1.tmp&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;expandproperties/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="headfilter">HeadFilter</a></H3>
+
+This filter reads the first few lines from the data supplied to it.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Name</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>lines</TD>
+    <TD vAlign=top align="center">Number of lines to be read.
+    Defaults to &quot;10&quot; <BR> A negative value means that all lines are
+    passed (useful with <I>skip</I>)</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>skip</TD>
+    <TD vAlign=top align="center">Number of lines to be skipped (from the beginning).
+    Defaults to &quot;0&quot;</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+<P>
+<H4>Example:</H4>
+
+This stores the first 15 lines of the supplied data in the property ${src.file.head}
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.head}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.HeadFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.head}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+This stores the first 15 lines, skipping the first 2 lines, of the supplied data
+in the porperty ${src.file.head}. (Means: lines 3-17)
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.head}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot; skip=&quot;2&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+See the testcases for more examples (<I>src\etc\testcases\filters\head-tail.xml</I> in the
+source distribution).
+
+<H3><a name="linecontains">LineContains</a></H3>
+
+This filter includes only those lines that contain all the user-specified
+strings.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Type</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>contains</TD>
+    <TD vAlign=top align="center">Substring to be searched for.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+<P>
+<H4>Example:</H4>
+
+This will include only those lines that contain <code>foo</code> and
+<code>bar</code>.
+<BLOCKQUOTE><PRE>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContains&quot;&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;foo&quot;/&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;bar&quot;/&gt;
+&lt;/filterreader&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;linecontains&gt;
+  &lt;contains value=&quot;foo&quot;/&gt;
+  &lt;contains value=&quot;bar&quot;/&gt;
+&lt;/linecontains&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="linecontainsregexp">LineContainsRegExp</a></H3>
+
+Filter which includes only those lines that contain the user-specified
+regular expression matching strings.
+
+See <a href="../CoreTypes/regexp.html">Regexp Type</a> for the description of the nested element regexp and of
+the choice of regular expression implementation.
+<H4>Example:</H4>
+
+This will fetch all those lines that contain the pattern <code>foo</code>
+<BLOCKQUOTE><PRE>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContainsRegExp&quot;&gt;
+  &lt;param type=&quot;regexp&quot; value=&quot;foo*&quot;/&gt;
+&lt;/filterreader&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;linecontainsregexp&gt;
+  &lt;regexp pattern=&quot;foo*&quot;/&gt;
+&lt;/linecontainsregexp&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="prefixlines">PrefixLines</a></H3>
+
+Attaches a prefix to every line.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Name</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>prefix</TD>
+    <TD vAlign=top align="center">Prefix to be attached to lines.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+<P>
+<H4>Example:</H4>
+
+This will attach the prefix <code>Foo</code> to all lines.
+<BLOCKQUOTE><PRE>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.PrefixLines&quot;&gt;
+  &lt;param name=&quot;prefix&quot; value=&quot;Foo&quot;/&gt;
+&lt;/filterreader&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;prefixlines prefix=&quot;Foo&quot;/&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="replacetokens">ReplaceTokens</a></H3>
+
+This filter reader replaces all strings that are
+sandwiched between begintoken and endtoken with
+user defined values.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Type</B></TD>
+    <TD vAlign=top><B>Parameter Name</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>tokenchar</TD>
+    <TD vAlign=top>begintoken</TD>
+    <TD vAlign=top>Character marking the
+    beginning of a token.  Defaults to @</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>tokenchar</TD>
+    <TD vAlign=top>endtoken</TD>
+    <TD vAlign=top>Character marking the
+    end of a token.  Defaults to @</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>token</TD>
+    <TD vAlign=top>User defined String.</TD>
+    <TD vAlign=top>User defined search String</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+<P>
+
+<H4>Example:</H4>
+
+This replaces occurences of the string &#64;DATE&#64; in the data
+with today's date and stores it in the property ${src.file.replaced}
+<BLOCKQUOTE><PRE>
+&lt;tstamp/&gt;
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.replaced}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.ReplaceTokens&quot;&gt;
+      &lt;param type=&quot;token&quot; name=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;tstamp/&gt;
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.replaced}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;replacetokens&gt;
+      &lt;token key=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+    &lt;/replacetokens&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="stripjavacomments">StripJavaComments</a></H3>
+
+This filter reader strips away comments from the data,
+using Java syntax guidelines.  This filter does not
+take in any parameters.
+<P>
+<H4>Example:</H4>
+
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${java.src.file}&quot; property=&quot;${java.src.file.nocomments}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripJavaComments&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${java.src.file}&quot; property=&quot;${java.src.file.nocomments}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;stripjavacomments/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="striplinebreaks">StripLineBreaks</a></H3>
+
+This filter reader strips away specific characters
+from the data supplied to it.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Name</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>linebreaks</TD>
+    <TD vAlign=top align="center">Characters that are to
+    be stripped out.  Defaults to &quot;\r\n&quot;</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+<P>
+<H4>Examples:</H4>
+
+This strips the '\r' and '\n' characters.
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.contents}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripLineBreaks&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.contents}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;striplinebreaks/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+This treats the '(' and ')' characters as line break characters and
+strips them.
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.contents}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripLineBreaks&quot;&gt;
+      &lt;param name=&quot;linebreaks&quot; value=&quot;()&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="striplinecomments">StripLineComments</a></H3>
+
+This filter removes all those lines that begin with strings
+that represent comments as specified by the user.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Type</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>comment</TD>
+    <TD vAlign=top align="center">Strings that identify a line as a comment
+    when they appear at the start of the line.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+<P>
+<H4>Examples:</H4>
+
+This removes all lines that begin with #, --, REM, rem and //
+<BLOCKQUOTE><PRE>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripLineComments&quot;&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;#&quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;--&quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;REM &quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;rem &quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;//&quot;/&gt;
+&lt;/filterreader&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;striplinecomments&gt;
+  &lt;comment value=&quot;#&quot;/&gt;
+  &lt;comment value=&quot;--&quot;/&gt;
+  &lt;comment value=&quot;REM &quot;/&gt;
+  &lt;comment value=&quot;rem &quot;/&gt;
+  &lt;comment value=&quot;//&quot;/&gt;
+&lt;/striplinecomments&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="tabstospaces">TabsToSpaces</a></H3>
+
+This filter replaces tabs with spaces
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Name</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>tablength</TD>
+    <TD vAlign=top align="center">Defaults to &quot;8&quot;</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+<P>
+<H4>Examples:</H4>
+
+This replaces tabs in ${src.file} with spaces.
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.notab}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.TabsToSpaces&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.notab}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;tabstospaces/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="tailfilter">TailFilter</a></H3>
+
+This filter reads the last few lines from the data supplied to it.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Name</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>lines</TD>
+    <TD vAlign=top align="center">Number of lines to be read.
+    Defaults to &quot;10&quot; <BR> A negative value means that all lines are
+    passed (useful with <I>skip</I>)</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>skip</TD>
+    <TD vAlign=top align="center">Number of lines to be skipped (from the end).
+    Defaults to &quot;0&quot; </TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+<P>
+
+<H4>Background:</H4>
+With HeadFilter and TailFilter you can extract each part of a text file you want.
+This graphic shows the dependencies:
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+<TR>
+ <TH> Content </TH>
+ <TH></TH>
+ <TH></TH>
+ <TH></TH>
+ <TH> Filter </TH>
+</TR>
+<TR>
+ <TD> Line 1 </TD>
+ <TD rowspan="2" bgcolor="#C0C0C0">&nbsp;</TD>
+ <TD rowspan="9" bgcolor="#FF00FF">&nbsp;</TD>
+ <TD rowspan="4">&nbsp;</TD>
+ <TD rowspan="11">
+    <TABLE>
+    <TR>
+     <TD bgcolor="#C0C0C0">&nbsp;</TD>
+     <TD><PRE>&lt;filterchain>
+    &lt;headfilter lines="2"/&gt;
+&lt;/filterchain></PRE></TD>
+    </TR>
+    <TR>
+     <TD bgcolor="#FF00FF">&nbsp;</TD>
+     <TD><PRE>&lt;filterchain>
+    &lt;tailfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain></PRE></TD>
+    </TR>
+    <TR>
+     <TD bgcolor="#008000">&nbsp;</TD>
+     <TD><PRE>&lt;filterchain>
+    &lt;headfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain></PRE></TD>
+    </TR>
+    <TR>
+     <TD bgcolor="#0000FF">&nbsp;</TD>
+     <TD><PRE>&lt;filterchain>
+    &lt;headfilter lines="-1" skip="2"/>
+    &lt;tailfilter lines="-1" skip="2"/>
+&lt;/filterchain></PRE></TD>
+    </TR>
+    <TR>
+     <TD bgcolor="#00FF00">&nbsp;</TD>
+     <TD><PRE>&lt;filterchain>
+    &lt;tailfilter lines="2"/&gt;
+&lt;/filterchain></PRE></TD>
+    </TR>
+    </TABLE>
+ </TD>
+</TR>
+<TR>
+ <TD> Line 2 </TD>
+</TR>
+<TR>
+ <TD> Line 3 </TD>
+ <TD rowspan="9" bgcolor="#008000">&nbsp;</TD>
+</TR>
+<TR>
+ <TD> Line 4 </TD>
+</TR>
+<TR>
+ <TD> Line 5 </TD>
+ <TD rowspan="3" bgcolor="#0000FF">&nbsp;</TD>
+</TR>
+<TR>
+ <TD> Lines ... </TD>
+</TR>
+<TR>
+ <TD> Line 95 </TD>
+</TR>
+<TR>
+ <TD> Line 96 </TD>
+ <TD rowspan="4">&nbsp;</TD>
+</TR>
+<TR>
+ <TD> Line 97 </TD>
+</TR>
+<TR>
+ <TD> Line 98 </TD>
+ <TD rowspan="2" bgcolor="#00FF00">&nbsp;</TD>
+</TR>
+<TR>
+ <TD> Line 99 </TD>
+</TR>
+</TABLE>
+
+
+
+<H4>Examples:</H4>
+
+This stores the last 15 lines of the supplied data in the property ${src.file.tail}
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.tail}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.TailFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.tail}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;tailfilter lines=&quot;15&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+
+This stores the last 5 lines of the first 15 lines of the supplied
+data in the property ${src.file.mid}
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.mid}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.HeadFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.TailFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;5&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+Convenience method:
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.mid}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot;/&gt;
+    &lt;tailfilter lines=&quot;5&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+
+This stores the last 10 lines, skipping the last 2 lines, of the supplied data
+in the porperty ${src.file.head}. (Means: if supplied data contains 60 lines,
+lines 49-58 are extracted)
+<BLOCKQUOTE><PRE>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.head}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;tailfilter lines=&quot;10&quot; skip=&quot;2&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="deletecharacters">DeleteCharacters</a></H3>
+
+  <p>This filter deletes specified characters.</p>
+  <p><em>since Ant 1.6</em></p>
+  <p>This filter is only available in the convenience form.</p>
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Name</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>chars</TD>
+    <TD vAlign=top>
+      The characters to delete. This attribute is
+      <a href="#backslash">backslash enabled</a>.
+    </TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+<P>
+<H4>Examples:</H4>
+
+Delete tabs and returns from the data.
+<BLOCKQUOTE><PRE>
+&lt;deletecharacters chars="\t\r"/&gt;
+</PRE></BLOCKQUOTE>
+
+<H3><a name="concatfilter">ConcatFilter</a></H3>
+  <p>This filter prepends or appends the content file to the filtered files.</p>
+  <p><em>since Ant 1.6</em></p>
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Parameter Name</B></TD>
+    <TD vAlign=top><B>Parameter Value</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>prepend</TD>
+    <TD vAlign=top>
+      The name of the file which content should be prepended to the file.
+    </TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>append</TD>
+    <TD vAlign=top>
+      The name of the file which content should be appended to the file.
+    </TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+<P>
+
+<H4>Examples:</H4>
+
+Do nothing:
+<BLOCKQUOTE><PRE>
+&lt;filterchain&gt;
+    &lt;concatfilter/&gt;
+&lt;/filterchain&gt;
+</PRE></BLOCKQUOTE>
+
+Adds a license text before each java source:
+<BLOCKQUOTE><PRE>
+&lt;filterchain&gt;
+    &lt;concatfilter prepend="apache-license-java.txt"/&gt;
+&lt;/filterchain&gt;
+</PRE></BLOCKQUOTE>
+
+
+
+<H3><a name="tokenfilter">TokenFilter</a></H3>
+This filter tokenizes the inputstream into strings and passes these
+strings to filters of strings. Unlike the other filterreaders, this does
+not support params, only convenience methods are implemented.
+The tokenizer and the string filters are defined by nested elements.
+<P><em>since Ant 1.6</em></p>
+<P>
+Only one tokenizer element may be used, the LineTokenizer is the
+default if none are specified.  A tokenizer
+splits the input into token strings and trailing delimiter strings.
+<P>
+There may be zero or more string filters. A string filter processes
+a token and either returns a string or a null.
+It the string is not null it is passed to the next filter. This
+proceeds until all the filters are called.
+If a string is returned after all the filters, the string is
+outputs with its associated token delimitier
+(if one is present).
+The trailing delimiter may be overridden by the <i>delimOutput</i>
+attribute.
+<P>
+<a name="backslash"><em>blackslash interpretation</em></a>
+A number of attributes (including <i>delimOutput</i>) interpret
+backslash escapes. The following are understood: \n, \r, \f, \t
+and \\.
+
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>delimOutput</TD>
+    <TD vAlign=top>
+     This overrides the tokendelimiter
+        returned by the tokenizer if it is not empty. This
+     attribute is backslash enabled.
+</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+<P>
+
+    The following tokenizers are provided by the default distribution.
+    <p>
+        <a href="#linetokenizer">LineTokenizer</a><br>
+        <a href="#filetokenizer">FileTokenizer</a><br>
+        <a href="#stringtokenizer">StringTokenizer</a><br>
+    </p>
+
+    The following string filters are provided by the default distribution.
+    <p>
+        <a href="#replacestring">ReplaceString</a><br>
+        <a href="#containsstring">ContainsString</a><br>
+        <a href="#replaceregex">ReplaceRegex</a><br>
+        <a href="#containsregex">ContainsRegex</a><br>
+        <a href="#trim">Trim</a><br>
+        <a href="#ignoreblank">IgnoreBlank</a><br>
+        <a href="#filterdeletecharacters">DeleteCharacters</a><br>
+    </p>
+
+    The following string filters are provided by the optional distribution.
+    <p>
+        <a href="#scriptfilter">ScriptFilter</a><br>
+    </p>
+
+Some of the filters may be used directly within a filter chain. In this
+case a tokenfilter is created implicitly. An extra attribute "byline"
+is added to the filter to specify whether to use a linetokenizer
+(byline="true") or a filetokenizer (byline="false"). The default
+is "true".
+<P>
+
+<p><b><em><a name="linetokenizer">LineTokenizer</a></em></b></p>
+This tokenizer splits the input into lines.
+The tokenizer delimits lines
+by "\r", "\n" or "\r\n".
+This is the default tokenizer.
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>includeDelims</TD>
+    <TD vAlign=top>
+      Include the line endings in the token.
+      Default is false.
+    </TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+<H4>Examples:</H4>
+
+Convert input current line endings to unix style line endings.
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter delimoutput=&quot;\n&quot;/&gt;
+</PRE></BLOCKQUOTE>
+
+
+Remove blank lines.
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+    &lt;ignoreblank/&gt;
+&lt;/tokenfilter&gt;
+
+</PRE></BLOCKQUOTE>
+
+<p><b><em><a name="filetokenizer">FileTokenizer</a></em></b></p>
+This tokenizer treats <b>all</b> the input as a token. So be
+careful not to use this on very large input.
+<H4>Examples:</H4>
+
+Replace the first occurance of package with //package.
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+      &lt;filetokenizer/&gt;
+      &lt;replaceregex pattern="([\n\r]+[ \t]*|^[ \t]*)package"
+                    flags="s"
+                    replace="\1//package"/&gt;
+&lt;/tokenfilter&gt;
+</PRE></BLOCKQUOTE>
+
+<p><b><em><a name="stringtokenizer">StringTokenizer</a></em></b></p>
+This tokenizer is based on java.util.StringTokenizer.
+It splits up the input into strings separated by white space, or
+by a specified list of delimiting characters.
+If the stream starts with delimiter characters, the first
+token will be the empty string (unless the <i>delimsaretokens</i>
+attribute is used).
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>delims</TD>
+    <TD vAlign=top>The delimiter characters. White space
+      is used if this is not set. (White space is defined
+      in this case by java.lang.Character.isWhitespace()).
+    </TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <tr>
+    <td valign="top">delimsaretokens</td>
+    <td valign="top">If this is true,
+      each delimiter character is returned as a token.
+      Default is false.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressdelims</td>
+    <td valign="top">
+      If this is true, delimiters are not returned.
+      Default is false.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>includeDelims</td>
+    <td vAlign=top>
+      Include the delimiters in the token.
+      Default is false.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</TABLE>
+
+<H4>Examples:</H4>
+
+Surround each non space token with a "[]".
+
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+    &lt;stringtokenizer/&gt;
+    &lt;replaceregex pattern="(.+)" replace="[\1]"/&gt;
+&lt;/tokenfilter&gt;
+
+</PRE></BLOCKQUOTE>
+
+<p><b><em><a name="replacestring">ReplaceString</a></em></b></p>
+This is a simple filter to replace strings.
+This filter may be used directly within a filterchain.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>from</TD>
+    <TD vAlign=top>The string that must be replaced.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+  <tr>
+    <td valign="top">to</td>
+    <td valign="top">The new value for the replaced string. When omitted
+      an empty string is used.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</TABLE>
+
+<H4>Examples:</H4>
+
+Replace "sun" with "moon".
+
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+    &lt;replacestring from="sun" to="moon"/&gt;
+&lt;/tokenfilter&gt;
+</PRE></BLOCKQUOTE>
+
+<p><b><em><a name="containsstring">ContainsString</a></em></b></p>
+This is a simple filter to filter tokens that contains
+a specified string.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>contains</TD>
+    <TD vAlign=top>The string that the token must contain.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+
+<H4>Examples:</H4>
+
+Include only lines that contain "foo";
+
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+    &lt;containsstring contains="foo"/&gt;
+&lt;/tokenfilter&gt;
+
+</PRE></BLOCKQUOTE>
+
+<p><b><em><a name="replaceregex">ReplaceRegex</a></em></b></p>
+This string filter replaces regular expressions.
+This filter may be used directly within a filterchain.
+<p>
+ See <a href="../CoreTypes/regexp.html#implementation">Regexp Type</a>
+concerning the choice of the implementation.
+</p>
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>pattern</TD>
+    <TD vAlign=top>The regular expression pattern to match in
+      the token.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>replace</TD>
+    <TD vAlign=top>The substitution pattern to replace the matched
+      regular expression. When omitted an empty string is used.</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>flags</TD>
+    <TD vAlign=top>See
+<a href="../OptionalTasks/replaceregexp.html">ReplaceRegexp</a>
+for an explanation of regex flags.</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+<H4>Examples:</H4>
+
+Replace all occurances of "hello" with "world", ignoring case.
+
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+    &lt;replaceregex pattern="hello" replace="world" flags="gi"/&gt;
+&lt;/tokenfilter&gt;
+
+</PRE></BLOCKQUOTE>
+
+<p><b><em><a name="containsregex">ContainsRegex</a></em></b></p>
+This filters strings that match regular expressions.
+The filter may optionally replace the matched regular expression.
+This filter may be used directly within a filterchain.
+<p>
+See
+<a href="../CoreTypes/regexp.html#implementation">Regexp Type</a>
+concerning the choice of regular expression implementation.
+</p>
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>pattern</TD>
+    <TD vAlign=top>The regular expression pattern to match in
+      the token.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>replace</TD>
+    <TD vAlign=top>The substitution pattern to replace the matched
+      regular expression. When omitted the orignal token is returned.
+    </TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>flags</TD>
+    <TD vAlign=top>See
+<a href="../OptionalTasks/replaceregexp.html">ReplaceRegexp</a>
+for an explanation of regex flags.</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+
+<H4>Examples:</H4>
+
+Filter lines that contain "hello" or "world", ignoring case.
+
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+    &lt;containsregex pattern="(hello|world)" flags="i"/&gt;
+&lt;/tokenfilter&gt;
+
+</PRE></BLOCKQUOTE>
+
+This example replaces lines like "SUITE(TestSuite, bits);" with
+"void register_bits();" and removes other lines.
+
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+    &lt;containsregex
+        pattern="^ *SUITE\(.*,\s*(.*)\s*\).*"
+        replace="void register_\1();"/&gt;
+&lt;/tokenfilter&gt;
+</PRE></BLOCKQUOTE>
+
+<p><b><em><a name="trim">Trim</a></em></b></p>
+This filter trims whitespace from the start and end of
+tokens.
+This filter may be used directly within a filterchain.
+<p><b><em><a name="ignoreblank">IgnoreBlank</a></em></b></p>
+This filter removes empty tokens.
+This filter may be used directly within a filterchain.
+<p><b><em><a name="filterdeletecharacters">DeleteCharacters</a></em></b></p>
+This filter deletes specified characters from tokens.
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>chars</TD>
+    <TD vAlign=top>The characters to delete. This attribute
+      is backslash enabled.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+
+<H4>Examples:</H4>
+
+Delete tabs from lines, trim the lines and removes empty lines.
+
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+    &lt;deletecharacters chars="\t"/&gt;
+    &lt;trim/&gt;
+    &lt;ignoreblank/&gt;
+&lt;/tokenfilter&gt;
+
+</PRE></BLOCKQUOTE>
+
+<p><b><em><a name="scriptfilter">ScriptFilter</a></em></b></p>
+This is an optional filter that executes a script in a
+<a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+supported language.</p>
+See the <a href="../OptionalTasks/script.html">Script</a> task for
+an explanation of scripts and dependencies.
+</p>
+<p>
+The script is provided with an object <i>self</i> that has
+getToken() and setToken(String) methods.
+The getToken() method returns the current token. The setToken(String)
+method replaces the current token.
+</p>
+
+This filter may be used directly within a filterchain.<p>
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>language</TD>
+    <TD vAlign=top> The programming language the script is written in.
+Must be a supported Apache BSF language</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>src</TD>
+    <TD vAlign=top>The location of the script as a file, if not inline
+    </TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <TR>
+</TABLE>
+
+<H4>Examples:</H4>
+
+Convert to uppercase:
+<BLOCKQUOTE><PRE>
+&lt;tokenfilter&gt;
+    &lt;scriptfilter language="javascript"&gt;
+        self.setToken(self.getToken().toUpperCase());
+    &lt;/scriptfilter&gt;
+&lt;/tokenfilter&gt;
+</PRE></BLOCKQUOTE>
+
+Remove lines containing the string "bad" while
+copying text files:
+  <blockquote>
+    <pre>
+&lt;copy todir="dist"&gt;
+  &lt;fileset dir="src" includes="**/*.txt"/&gt;
+  &lt;scriptfilter language="beanshell"&gt;
+      if (self.getToken().indexOf("bad") != -1) {
+          self.setToken(null);
+      }
+  &lt;/scriptfilter&gt;
+&lt;/copy&gt;
+    </pre>
+  </blockquote>
+
+<H4>Custom tokenizers and string filters</H4>
+
+Custom string filters and tokenizers may be plugged in by
+extending the interfaces org.apache.tools.ant.filters.TokenFilter.Filter
+and org.apache.tools.ant.util.Tokenizer respectly.
+
+They are defined the build file using &lt;typedef/&gt;. For
+example a string filter that capitalizes words may be declared as:
+<blockquote><pre>
+package my.customant;
+import org.apache.tools.ant.filters.TokenFilter;
+
+public class Capitalize
+    implements TokenFilter.Filter
+{
+    public String filter(String token) {
+        if (token.length() == 0)
+            return token;
+        return token.substring(0, 1).toUpperCase() +
+                token.substring(1);
+   }
+}
+</pre></blockquote>
+
+This may be used as follows:
+<blockquote><pre>
+  &lt;typedef type="capitalize" classname="my.customant.Capitalize"
+           classpath="my.customant.path"/&gt;
+  &lt;copy file="input" tofile="output"&gt;
+    &lt;filterchain&gt;
+      &lt;tokenfilter&gt;
+        &lt;stringtokenizer/&gt;
+        &lt;capitalize/&gt;
+      &lt;/tokenfilter&gt;
+    &lt;/filterchain&gt;
+  &lt;/copy&gt;
+</pre></blockquote>
+
+<HR>
+
+<P align=center>Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</P></BODY></HTML>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/filterset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/filterset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/filterset.html	(revision 14989)
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<HTML>
+<HEAD>
+  <TITLE>FilterSet Type</TITLE>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</HEAD>
+
+<BODY>
+<H2><A name="filterset">FilterSet</A></H2>
+
+<P>FilterSets are groups of filters. Filters can be defined as token-value
+pairs
+or be read in from a file. FilterSets can appear inside tasks that support this
+feature or at the same level as <CODE>&lt;target&gt;</CODE> - i.e., as
+children of
+<CODE>&lt;project&gt;</CODE>.</P>
+
+<p>FilterSets support the <code>id</code> and <code>refid</code>
+attributes.  You can define a FilterSet with an <code>id</code>
+attribute and then refer to that definition from another FilterSet
+with a <code>refid</code> attribute.  It is also possible to nest
+filtersets into filtersets to get a set union of the contained
+filters.</p>
+
+<p>In addition, FilterSets can specify
+<code>begintoken</code> and/or
+<code>endtoken</code> attributes to define what to match.</p>
+<p>Filtersets are used for doing
+replacements in tasks such as <code>&lt;copy&gt;</code>, etc.</p>
+
+<p>
+<strong>Note: </strong>When a filterset is used in an operation, the files are
+processed in text mode and the filters applied line by line. This means that
+the copy operations will typically corrupt binary files. When applying filters
+you should ensure that the set of files being filtered are all text files.
+</p>
+
+<H2>Filterset</H2>
+
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top><B>Default</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>begintoken</TD>
+    <TD vAlign=top>The string marking the beginning of a token (eg.,
+      <code>&#64;DATE&#64;</code>).</TD>
+    <TD vAlign=top>@</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>endtoken</TD>
+    <TD vAlign=top>The string marking the end of a token (eg.,
+      <code>&#64;DATE&#64;</code>).</TD>
+    <TD vAlign=top>@</TD>
+    <TD vAlign=top align="center">No</TD>
+  </TR>
+</TABLE>
+
+<H2>Filter</H2>
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>token</TD>
+    <TD vAlign=top>The token to replace (eg., <code>&#64;DATE&#64;</code>)</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>value</TD>
+    <TD vAlign=top>The value to replace it with
+     (eg., <code>Thursday, April 26, 2001</code>).</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+
+<H2>Filtersfile</H2>
+<TABLE cellSpacing=0 cellPadding=2 border=1>
+  <TR>
+    <TD vAlign=top><B>Attribute</B></TD>
+    <TD vAlign=top><B>Description</B></TD>
+    <TD vAlign=top align="center"><B>Required</B></TD>
+  </TR>
+  <TR>
+    <TD vAlign=top>file</TD>
+    <TD vAlign=top>A properties file of
+      name-value pairs from which to load the tokens.</TD>
+    <TD vAlign=top align="center">Yes</TD>
+  </TR>
+</TABLE>
+
+<H4>Examples</H4>
+
+<p>You are copying the <code>version.txt</code> file to the <code>dist</code>
+directory from the <code>build</code> directory
+but wish to replace the token <code>&#64;DATE&#64;</code> with today's date.</p>
+<BLOCKQUOTE><PRE>
+&lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
+  &lt;filterset&gt;
+    &lt;filter token=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+  &lt;/filterset&gt;
+&lt;/copy&gt;
+</PRE></BLOCKQUOTE>
+
+<p>You are copying the <code>version.txt</code> file to the <code>dist</code>
+directory from the build directory
+but wish to replace the token <code>%DATE*</code> with today's date.</p>
+<BLOCKQUOTE><PRE>
+&lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
+  &lt;filterset begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
+    &lt;filter token=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+  &lt;/filterset&gt;
+&lt;/copy&gt;
+</PRE></BLOCKQUOTE>
+
+<p>Copy all the docs but change all dates and appropriate notices as stored in a file.</p>
+<BLOCKQUOTE><PRE>
+&lt;copy toDir=&quot;${dist.dir}/docs&quot;&gt;
+  &lt;fileset dir=&quot;${build.dir}/docs&quot;&gt;
+    &lt;include name=&quot;**/*.html&quot;&gt;
+  &lt;/fileset&gt;
+  &lt;filterset begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
+    &lt;filtersfile file=&quot;${user.dir}/dist.properties&quot;/&gt;
+  &lt;/filterset&gt;
+&lt;/copy&gt;
+</PRE></BLOCKQUOTE>
+
+<p>Define a FilterSet and reference it later.</p>
+<BLOCKQUOTE><PRE>
+&lt;filterset id=&quot;myFilterSet&quot; begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
+  &lt;filter token=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+&lt;/filterset&gt;
+
+&lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
+  &lt;filterset refid=&quot;myFilterSet&quot;/&gt;
+&lt;/copy&gt;
+</PRE></BLOCKQUOTE>
+<HR>
+
+<P align=center>Copyright &copy; 2001-2004 The Apache Software Foundation.
+All rights Reserved.</P></BODY></HTML>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/mapper.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/mapper.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/mapper.html	(revision 14989)
@@ -0,0 +1,488 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Mapper Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="mapper">Mapping File Names</a></h2>
+<p>Some tasks take source files and create target files. Depending on
+the task, it may be quite obvious which name a target file will have
+(using <a href="../CoreTasks/javac.html">javac</a>, you know there will be
+<code>.class</code> files for your <code>.java</code> files) - in
+other cases you may want to specify the target files, either to help
+Ant or to get an extra bit of functionality.</p>
+<p>While source files are usually specified as <a
+href="fileset.html">fileset</a>s, you don't specify target files directly -
+instead, you tell Ant how to find the target file(s) for one source file. An
+instance of <code>org.apache.tools.ant.util.FileNameMapper</code> is
+responsible for this. It constructs target file names based on rules
+that can be parameterized with <code>from</code> and <code>to</code>
+attributes - the exact meaning of which is implementation-dependent.</p>
+<p>These instances are defined in <code>&lt;mapper&gt;</code> elements
+with the following attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">specifies one of the built-in implementations.</td>
+    <td rowspan="2" align="center" valign="middle">Exactly one of these</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">specifies the implementation by class name.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td> 
+    <td valign="top">the classpath to use when looking up
+      <code>classname</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use, given as <a
+      href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">from</td> 
+    <td valign="top">the <code>from</code> attribute for the given
+      implementation.</td>
+    <td align="center" valign="top">Depends on implementation.</td>
+  </tr>
+  <tr>
+    <td valign="top">to</td> 
+    <td valign="top">the <code>to</code> attribute for the given
+      implementation.</td>
+    <td align="center" valign="top">Depends on implementation.</td>
+  </tr>
+</table>
+<p>Note that Ant will not automatically convert / or \ characters in
+the <code>to</code> and <code>from</code> attributes to the correct
+directory separator of your current platform.  If you need to specify
+this separator, use <code>${file.separator}</code> instead.</p>
+<h3>Parameters specified as nested elements</h3>
+<p>The classpath can be specified via a nested
+<code>&lt;classpath&gt;</code>, as well - that is,
+a <a href="../using.html#path">path</a>-like structure.</p>
+<p><b>Since Ant 1.6.2,</b> nested File Mappers can
+be supplied via either <CODE>&lt;mapper&gt;</CODE> elements or
+<a href="../CoreTasks/typedef.html"><code>&lt;typedef&gt;</code></a>'d
+implementations of <CODE>org.apache.tools.ant.util.FileNameMapper</CODE>.
+If nested File Mappers are specified by either means, the mapper will be
+implicitly configured as a <a href="#composite-mapper">composite mapper</a>.
+</p>
+<hr/>
+<h3>The built-in mapper types are:</h3>
+<p>All built-in mappers are case-sensitive.</p>
+<p><b>As of Ant 1.6.2,</b> each of the built-in mapper implementation
+  types is directly accessible using a specific tagname. This makes it
+  possible for filename mappers to support attributes in addition to
+  the generally available <i>to</i> and <i>from</i>.<br/>
+  The <code>&lt;mapper type|classname=&quot;...&quot;&gt;</code> usage
+  form remains valid for reasons of backward compatibility.</p>
+<h4><a name="identity-mapper">identity</a></h4>
+<p>The target file name is identical to the source file name. Both
+<code>to</code> and <code>from</code> will be ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;identity&quot;/&gt;
+&lt;identitymapper /&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>C.properties</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+  </tr>
+</table>
+<h4><a name="flatten-mapper">flatten</a></h4>
+<p>The target file name is identical to the source file name, with all
+leading directory information stripped off. Both <code>to</code> and
+<code>from</code> will be ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;flatten&quot;/&gt;
+&lt;flattenmapper /&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>B.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>C.properties</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>A.properties</code></td>
+  </tr>
+</table>
+<h4><a name="merge-mapper">merge</a></h4>
+<p>The target file name will always be the same, as defined by
+<code>to</code> - <code>from</code> will be ignored.</p>
+<h5>Examples:</h5>
+<blockquote><pre>
+&lt;mapper type=&quot;merge&quot; to=&quot;archive.tar&quot;/&gt;
+&lt;mergemapper to=&quot;archive.tar&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+</table>
+<h4><a name="glob-mapper">glob</a></h4>
+<p>Both <code>to</code> and <code>from</code> define patterns that may
+contain at most one <code>*</code>. For each source file that matches
+the <code>from</code> pattern, a target file name will be constructed
+from the <code>to</code> pattern by substituting the <code>*</code> in
+the <code>to</code> pattern with the text that matches the
+<code>*</code> in the <code>from</code> pattern. Source file names
+that don't match the <code>from</code> pattern will be ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.java.bak&quot;/&gt;
+&lt;globmapper from=&quot;*.java&quot; to=&quot;*.java.bak&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/B.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type=&quot;glob&quot; from=&quot;C*ies&quot; to=&quot;Q*y&quot;/&gt;
+&lt;globmapper from=&quot;C*ies&quot; to=&quot;Q*y&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>Q.property</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>Qlasses/dir/dir2/A.property</code></td>
+  </tr>
+</table>
+<h4><a name="regexp-mapper">regexp</a></h4>
+<p>Both <code>to</code> and <code>from</code> define regular
+expressions. If the source file name matches the <code>from</code>
+pattern, the target file name will be constructed from the
+<code>to</code> pattern, using <code>\0</code> to <code>\9</code> as
+back-references for the full
+match (<code>\0</code>) or the matches of the subexpressions in
+parentheses.
+Source
+files not matching the <code>from</code> pattern will be ignored.</p>
+<p>Note that you need to escape a dollar-sign (<code>$</code>) with
+another dollar-sign in Ant.</p>
+<p>The regexp mapper needs a supporting library and an implementation
+of <code>org.apache.tools.ant.util.regexp.RegexpMatcher</code> that
+hides the specifics of the library. Ant comes with implementations for
+<a href="http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html"  target="_top">the java.util.regex package of JDK 1.4</a>,
+<a href="http://jakarta.apache.org/regexp/" target="_top">jakarta-regexp</a> and <a
+href="http://jakarta.apache.org/oro/" target="_top">jakarta-ORO</a>. If you compile
+from sources and plan to use one of them, make sure the libraries are
+in your <code>CLASSPATH</code>. For information about using <a
+href="http://www.cacas.org/~wes/java/" target="_top">gnu.regexp</a> or <a
+href="http://www.crocodile.org/~sts/Rex/" target="_top">gnu.rex</a> with Ant, see <a
+href="http://marc.theaimsgroup.com/?l=ant-dev&m=97550753813481&w=2" target="_top">this</a>
+article.</p>
+<p>This means, you need <code>optional.jar</code> from the Ant release
+you are using <strong>and</strong> one of the supported regular
+expression libraries.  Make sure, both will be loaded from the same
+classpath, that is either put them into your <code>CLASSPATH</code>,
+<code>ANT_HOME/lib</code> directory or a nested
+<code>&lt;classpath&gt;</code> element of the mapper - you cannot have
+<code>optional.jar</code> in <code>ANT_HOME/lib</code> and the library
+in a nested <code>&lt;classpath&gt;</code>.</p>
+<p>Ant will choose the regular-expression library based on the
+following algorithm:</p>
+<ul>
+<li>If the system property
+<code>ant.regexp.matcherimpl</code> has been set, it is taken as the
+name of the class implementing
+<code>org.apache.tools.ant.util.regexp.RegexpMatcher</code> that
+should be used.</li>
+<li>If it has not been set, first try the JDK 1.4 classes, then
+jakarta-ORO and finally try jakarta-regexp.</li>
+</ul>
+
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)\.java$$&quot; to=&quot;\1.java.bak&quot;/&gt;
+&lt;regexpmapper from=&quot;^(.*)\.java$$&quot; to=&quot;\1.java.bak&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/B.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)/([^/]+)/([^/]*)$$&quot; to=&quot;\1/\2/\2-\3&quot;/&gt;
+&lt;regexpmapper from=&quot;^(.*)/([^/]+)/([^/]*)$$&quot; to=&quot;\1/\2/\2-\3&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/bar-B.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>Classes/dir/dir2/dir2-A.properties</code></td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)\.(.*)$$&quot; to=&quot;\2.\1&quot;/&gt;
+&lt;regexpmapper from=&quot;^(.*)\.(.*)$$&quot; to=&quot;\2.\1&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>java.A</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>java.foo/bar/B</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>properties.C</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>properties.Classes/dir/dir2/A</code></td>
+  </tr>
+</table>
+
+<h4><a name="package-mapper">package</a></h4>
+<p>Sharing the same syntax as the <a href="#glob-mapper">glob mapper</a>,
+the package mapper replaces
+directory separators found in the matched source pattern with dots in the target
+pattern placeholder. This mapper is particularly useful in combination
+with <code>&lt;uptodate&gt;</code> and <code>&lt;junit&gt;</code> output.</p>
+<b>Example:</b>
+<blockquote><pre>
+&lt;mapper type="package" from="*Test.java" to="TEST-*Test.xml"/&gt;
+&lt;packagemapper from="*Test.java" to="TEST-*Test.xml"/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/tools/ant/util/PackageMapperTest.java</code></td>
+    <td valign="top"><code>TEST-org.apache.tools.ant.util.PackageMapperTest.xml</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/tools/ant/util/Helper.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+</table>
+<h4><a name="unpackage-mapper">unpackage (since ant 1.6.0)</a></h4>
+  <p>This mapper is the inverse of the <a href="#package-mapper">package</a> mapper.
+    It replaces the dots in a package name with directory separators. This
+    is useful for matching XML formatter results against their JUnit test
+    test cases. The mapper shares the sample syntax
+    as the <a href="#glob-mapper">glob mapper</a>.
+  </p>
+<b>Example:</b>
+<blockquote><pre>
+&lt;mapper type="unpackage" from="TEST-*Test.xml" to="${test.src.dir}/*Test.java"&gt;
+&lt;unpackagemapper from="TEST-*Test.xml" to="${test.src.dir}/*Test.java"&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>TEST-org.acme.AcmeTest.xml</code></td>
+    <td valign="top"><code>${test.src.dir}/org/acme/AcmeTest.java</code></td>
+  </tr>
+</table>
+<h4><a name="composite-mapper">composite (since ant 1.6.2)</a></h4>
+  <p>This mapper implementation can contain multiple nested mappers.
+    File mapping is performed by passing the source filename to each nested
+    <code>&lt;mapper&gt;</code> in turn, returning all results.
+    The <i>to</i> and <i>from</i> attributes are ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;compositemapper&gt;
+  &lt;identitymapper /&gt;
+  &lt;packagemapper from="*.java" to="*"/&gt;
+&lt;/compositemapper&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center" rowspan="2"><code>foo/bar/A.java</code></td>
+    <td valign="top"><code>foo/bar/A.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo.bar.A</code></td>
+  </tr>
+</table>
+  <p>The composite mapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+<h4><a name="chained-mapper">chained (since ant 1.6.2)</a></h4>
+  <p>This mapper implementation can contain multiple nested mappers.
+    File mapping is performed by passing the source filename to the first
+    nested mapper, its results to the second, and so on.  The target filenames
+    generated by the last nested mapper comprise the ultimate results of the
+    mapping operation.  The <i>to</i> and <i>from</i> attributes are ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;chainedmapper&gt;
+  &lt;flattenmapper /&gt;
+  &lt;globmapper from="*" to="new/path/*"/&gt;
+  &lt;mapper&gt;
+    &lt;globmapper from="*" to="*1"/&gt;
+    &lt;globmapper from="*" to="*2"/&gt;
+  &lt;/mapper&gt;
+&lt;/chainedmapper&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center" rowspan="2"><code>foo/bar/A.java</code></td>
+    <td valign="top"><code>new/path/A.java1</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>new/path/A.java2</code></td>
+  </tr>
+  <tr>
+    <td valign="center" rowspan="2"><code>boo/far/B.java</code></td>
+    <td valign="top"><code>new/path/B.java1</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>new/path/B.java2</code></td>
+  </tr>
+</table>
+  <p>The chained mapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/namespace.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/namespace.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/namespace.html	(revision 14989)
@@ -0,0 +1,208 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html><head><title>XmlNamespaceSupport</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+  <body>
+    <h2><a name="namespace">XML Namespace Support</a></h2>
+    Ant 1.6 introduces support for XML namespaces. 
+    <h2>History</h2>
+    
+    <p>
+      All releases of Ant prior to Ant 1.6 do not support XML namespaces.
+      No support basically implies two things here:
+    </p>
+    <ul>
+      <li> Element names correspond to the "qname" of the tags, which is
+        usually the same as the local name. But if the build file writer uses
+        colons in names of defined tasks/types, those become part of the
+        element name. Turning on namespace support gives colon-separated
+        prefixes in tag names a special meaning, and thus build files using
+        colons in user-defined tasks and types will break.
+      </li>
+      <li> Attributes with the names 'xmlns' and 'xmlns:&lt;prefix&gt;'
+        are not treated specially, which means that custom tasks and types have
+        actually been able to use such attributes as parameter names. Again,
+        such tasks/types are going to break when namespace support is enabled
+        on the parser.
+      </li>
+    </ul>
+    <p>Use of colons in element names has been discouraged in the past
+      IIRC, and using any attribute starting with "xml" is actually strongly
+      discouraged by the XML spec to reserve such names for future use.
+    </p>
+    <h2>Motivation</h2>
+
+    <p>In build files using a lot of custom and third-party tasks, it is
+      easy to get into name conflicts. When individual types are defined, the
+      build file writer can do some name-spacing manually (for example, using
+      "tomcat-deploy" instead of just "deploy"). But when defining whole
+      libraries of types using the &lt;typedef&gt; 'resource' attribute, the
+      build file writer has no chance to override or even prefix the names
+      supplied by the library. </p>
+    <h2>Assigning Namespaces</h2>
+
+    <p>
+      Adding a 'prefix' attribute to &lt;typedef&gt; might have been enough,
+      but XML already has a well-known method for name-spacing. Thus, instead
+      of adding a 'prefix' attribute, the &lt;typedef&gt; and &lt;taskdef&gt;
+      tasks get a 'uri' attribute, which stores the URI of the XML namespace
+      with which the type should be associated:
+    </p><pre> &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+ &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+    ...
+ &lt;/my:task&gt;
+</pre>
+    <p>As the above example demonstrates, the namespace URI needs to be
+      specified at least twice: one time as the value of the 'uri' attribute,
+      and another time to actually map the namespace to occurrences of
+      elements from that namespace, by using the 'xmlns' attribute. This
+      mapping can happen at any level in the build file:
+    </p><pre> &lt;project name="test" xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt; 
+   &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+   &lt;my:task&gt;
+     ...
+   &lt;/my:task&gt;
+ &lt;/project&gt;
+</pre>
+    <p>
+      Use of a namespace prefix is of course optional. Therefore
+      the example could also look like this:
+    </p><pre> &lt;project name="test"&gt; 
+   &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+   &lt;task xmlns="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+     ...
+   &lt;/task&gt;
+ &lt;/project&gt;
+</pre>
+    <p>
+      Here, the namespace is set as the default namespace for the &lt;task&gt;
+      element and all its descendants.
+    </p>
+    <h2>Default namespace</h2>
+    <p>
+      The default namespace used by Ant is "antlib:org.apache.tools.ant".
+    </p>
+    <pre>
+&lt;typedef resource="org/example/tasks.properties" uri="antlib:org.apache.tools.ant"/&gt;
+&lt;task&gt;
+      ....
+&lt;/task&gt;
+    </pre>
+
+     
+
+    <h2>Namespaces and Nested Elements</h2>
+
+    <p>
+      Almost always in Ant 1.6, elements nested inside a namespaced
+      element have the same namespace as their parent. So if 'task' in the
+      example above allowed a nested 'config' element, the build file snippet
+      would look like this:
+    </p><pre> &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+ &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;my:config a="foo" b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+    <p>If the element allows or requires a lot of nested elements, the
+      prefix needs to be used for every nested element. Making the namespace
+      the default can reduce the verbosity of the script:
+    </p><pre> &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+          &lt;task xmlns="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+          &lt;config a="foo" b="bar"/&gt;
+   ...
+          &lt;/task&gt;
+        </pre>
+    <p>
+      From Ant 1.6.2, elements nested inside a namespaced element may also be
+      in Ant's default namespace. This means that the following is now allowed:
+    </p>
+    </p><pre> &lt;typedef resource="org/example/tasks.properties"
+   uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+ &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;config a="foo" b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+      
+    <h2>Namespaces and Attributes</h2>
+
+    <p>
+      Attributes are only used to configure the element they belong to if:
+    </p>
+    <ul>
+      <li> they have no namespace (note that the default namespace does *not* apply to attributes)
+      </li>
+      <li> they are in the same namespace as the element they belong to
+      </li>
+    </ul>
+    <p>
+      Other attributes are simply ignored.
+    </p>
+    <p>
+      This means that both:
+    </p>
+    <p>
+    </p><pre> &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;my:config a="foo" b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+    <p>
+      and
+    </p>
+    <pre> &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;my:config my:a="foo" my:b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+    <p>
+      result in the parameters "a" and "b" being used as parameters to configure the nested "config" element.
+    </p>
+    <p>It also means that you can use attributes from other namespaces
+      to markup the build file with extra meta data, such as RDF and
+      XML-Schema (whether that's a good thing or not). The same is not true
+      for elements from unknown namespaces, which result in a error.
+    </p>
+    <h2>Mixing Elements from Different Namespaces</h2>
+
+    <p>Now comes the difficult part: elements from different namespaces can
+      be woven together under certain circumstances. This has a lot to do
+      with the Ant 1.6
+      <a href="../develop.html#nestedtype">add type introspection rules</a>:
+      Ant types and tasks are now free to accept arbritrary named types as
+      nested elements, as long as the concrete type implements the interface
+      expected by the task/type. The most obvioius example for this is the
+      &lt;condition&gt; task, which supports various nested conditions, all
+      of which extend the interface <tt>Condition</tt>. To integrate a
+      custom condition in Ant, you can now simply &lt;typedef&gt; the
+      condition, and then use it anywhere develop.html#nestedtypwhere conditions are allowed
+      (assuming the containing element has a generic <tt>add(Condition)</tt> or <tt>addConfigured(Configured)</tt>method):
+</p><pre> &lt;typedef resource="org/example/conditions.properties" uri="<a href="http://example.org/conditions">http://example.org/conditions</a>"/&gt;
+ &lt;condition property="prop" xmlns="<a href="http://example.org/conditions">http://example.org/conditions</a>"&gt;
+   &lt;and&gt;
+     &lt;available file="bla.txt"/&gt;
+     &lt;my:condition a="foo"/&gt;
+   &lt;/and&gt;
+ &lt;/condition&gt;
+</pre>
+    <p>
+      In Ant 1.6, this feature cannot be used as much as we'd all like to: a
+      lot of code has not yet been adapted to the new introspection rules,
+      and elements like the builtin Ant conditions and selectors are not
+      really types in 1.6. This is expected to change in Ant 1.7.
+    </p>
+    <h2>Namespaces and Antlib</h2>
+
+    <p>
+      The new <a href="antlib.html">AntLib</a>
+      feature is also very much integrated with the namespace support in Ant
+      1.6. Basically, you can "import" Antlibs simply by using a special
+      scheme for the namespace URI: the <tt>antlib</tt> scheme, which expects the package name in which a special <tt>antlib.xml</tt> file is located.
+    </p>
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/patternset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/patternset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/patternset.html	(revision 14989)
@@ -0,0 +1,172 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>PatternSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="patternset">PatternSet</a></h2>
+<p><a href="../dirtasks.html#patterns">Patterns</a> can be grouped to
+sets and later be referenced by their <code>id</code> attribute. They
+are defined via a <code>patternset</code> element, which can appear
+nested into a <a href="fileset.html">FileSet</a> or a directory-based
+task that constitutes an implicit FileSet. In addition,
+<code>patternset</code>s can be defined as a stand alone element at
+the same level as <code>target</code> &#151; i.e., as children of
+<code>project</code> as well as as children of
+<code>target</code>.</p> <p>Patterns can be specified by nested
+<code>&lt;include&gt;</code>, or <code>&lt;exclude&gt;</code> elements
+or the following attributes.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an include pattern. You can specify more than one
+      include file by using a nested includesfile elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded; no files (except default excludes) are excluded when omitted.</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an exclude pattern. You can specify more than one
+      exclude file by using a nested excludesfile elements.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4><code>include</code> and <code>exclude</code></h4>
+<p>Each such element defines a single pattern for files to include or
+exclude.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the <a href="../dirtasks.html#patterns">pattern</a>
+      to in/exclude.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only use this pattern if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only use this pattern if the named property is
+       <b>not</b> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h4><code>includesfile</code> and <code>excludesfile</code></h4>
+<p>If you want to list the files to include or exclude external to
+your build file, you should use the includesfile/excludesfile
+attributes or elements.  Using the attribute, you can only specify a
+single file of each type, while the nested elements can be specified
+more than once - the nested elements also support if/unless attributes
+you can use to test the existance of a property.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the file holding the patterns to
+      in/exclude.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only read this file if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only read this file if the named property is
+      <b>not</b> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h4><code>patternset</code></h4>
+<p>Patternsets may be nested within one another, adding the nested
+patterns to the parent patternset.</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;patternset id=&quot;non.test.sources&quot;&gt;
+  &lt;include name=&quot;**/*.java&quot;/&gt;
+  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+&lt;/patternset&gt;
+</pre></blockquote>
+<p>Builds a set of patterns that matches all <code>.java</code> files
+that do not contain the text <code>Test</code> in their name. This set
+can be <a href="../using.html#references">referred</a> to via
+<code>&lt;patternset refid=&quot;non.test.sources&quot;/&gt;</code>,
+by tasks that support this feature, or by FileSets.</p>
+<p>Note that while the <code>includes</code> and
+<code>excludes</code> attributes accept
+multiple elements separated by commas or spaces, the nested
+&lt;include&gt; and &lt;exclude&gt; elements expect their name
+attribute to hold a single pattern.</p>
+<p>The nested elements allow you to use if and unless arguments to
+specify that the element should only be used if a property is set, or
+that it should be used only if a property is not set.</p>
+<p>For example</p>
+<blockquote><pre>
+&lt;patternset id=&quot;sources&quot;&gt;
+  &lt;include name=&quot;std/**/*.java&quot;/&gt;
+  &lt;include name=&quot;prof/**/*.java&quot; if=&quot;professional&quot;/&gt;
+  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+&lt;/patternset&gt;
+</pre></blockquote>
+<p>will only include the files in the sub-directory <em>prof</em> if the property
+<em>professional</em> is set to some value.</p>
+<p>The two sets</p>
+<blockquote><pre>
+&lt;patternset includesfile=&quot;some-file&quot;/&gt;
+</pre></blockquote>
+<p>and</p>
+<blockquote><pre>
+&lt;patternset&gt;
+  &lt;includesfile name=&quot;some-file&quot;/&gt; 
+&lt;patternset/&gt;
+</pre></blockquote>
+<p>are identical.  The include patterns will be read from the file
+<code>some-file</code>, one pattern per line.</p>
+<blockquote><pre>
+&lt;patternset&gt;
+  &lt;includesfile name=&quot;some-file&quot;/&gt; 
+  &lt;includesfile name=&quot;${some-other-file}&quot; 
+                if=&quot;some-other-file&quot;
+  /&gt; 
+&lt;patternset/&gt;
+</pre></blockquote>
+<p>will also read include patterns from the file the property
+<code>some-other-file</code> points to, if a property of that name has
+been defined.</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/permissions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/permissions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/permissions.html	(revision 14989)
@@ -0,0 +1,150 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Permissions type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="permissions">Permissions</a></h2>
+<p>
+Permissions represents a set of security permissions granted or revoked to
+a specific part code executed in the JVM where ant is running in.
+The actual Permissions are specified via a set of nested permission items either
+<code>&lt;grant&gt;</code>ed or <code>&lt;revoke&gt;</code>d.</p>
+<p>
+In the base situation a <a href="#baseset">base set</a> of permissions granted. 
+Extra permissions can be
+granted. A granted permission can be overruled by revoking a permission.
+The security manager installed by the permissions will throw an 
+<code>SecurityException</code> if
+the code subject to these permissions try to use an permission that has not been 
+granted or that has been revoked.</p>
+<h3>Nested elements</h3>
+<h4>grant</h4>
+<p>
+Indicates a specific permission is always granted. Its attributes indicate which 
+permissions are granted.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The fully qualified name of the Permission class.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the Permission. The actual contents depends on the
+    Permission class.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">actions</td>
+    <td valign="top">The actions allowed. The actual contents depend on the 
+    Permission class and name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+Implied permissions are granted.
+</p>
+<p>
+Please note that some Permission classes may actually need a name and / or actions in order to function properly. The name and actions are parsed by the actual
+Permission class.
+</p>
+<h4>revoke</h4>
+<p>
+Indicates a specific permission is revoked.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The fully qualified name of the Permission class.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the Permission. The actual contents depends on the
+    Permission class.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">actions</td>
+    <td valign="top">The actions allowed. The actual contents depend on the 
+    Permission class and name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+Implied permissions are not resolved and therefore also not revoked.
+</p>
+<p>
+The name can handle the * wildcard at the end of the name, in which case all 
+permissions of the specified class of which the name starts with the specified name
+(excluding the *) are revoked. Note that the - wildcard often supported by the
+granted properties is not supported.
+If the name is left empty all names match, and are revoked.
+If the actions are left empty all actions match, and are revoked.
+</p>
+<a name="baseset"></a><h3>Base set</h3>
+A permissions set implictly contains the following permissions:
+<blockquote><pre>
+&lt;grant class=&quot;java.net.SocketPermission&quot; name=&quot;localhost:1024-&quot; actions=&quot;listen&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vendor.url&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.class.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;os.name&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;os.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;os.arch&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;file.encoding&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;file.separator&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;path.separator&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;line.separator&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.specification.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.specification.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.specification.name&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.specification.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.specification.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.specification.name&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.name&quot; actions=&quot;read&quot;&gt;
+</blockquote></pre>
+These permissions can be revoked via &lt;revoke&gt; elements if necessary.
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;permissions&gt;
+  &lt;grant class=&quot;java.security.AllPermission&quot;/&gt;
+  &lt;revoke class=&quot;java.util.PropertyPermission&quot;/&gt;
+&lt;/permissions&gt;
+</pre></blockquote>
+<p>
+Grants all permissions to the code except for those handling Properties.
+</p>
+<blockquote><pre>
+&lt;permissions&gt;
+  &lt;grant class=&quot;java.net.SocketPermission&quot; name=&quot;foo.bar.com&quot; action=&quot;connect&quot;/&gt;
+  &lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;user.home&quot; action=&quot;read,write&quot;/&gt;
+&lt;/permissions&gt;
+</pre></blockquote>
+<p>
+Grants the base set of permissions with the addition of a SocketPermission to connect
+to foo.bar.com and the permission to read and write the user.home system property.
+</p>
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation.
+All rights Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/propertyset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/propertyset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/propertyset.html	(revision 14989)
@@ -0,0 +1,129 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>PropertySet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="propertyset">PropertySet</a></h2>
+<p><em>Since Ant 1.6</em></p>
+
+<p>Groups a set of properties to be used by reference in a task that
+supports this.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dynamic</td>
+    <td valign="top">Whether to reevaluate the set everytime the set
+      is used.  Default is &quot;<code>true</code>&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">negate</td>
+    <td valign="top">Whether to negate results. If
+      &quot;<code>true</code>&quot;, all properties <i>not</i>
+      selected by nested elements will be returned. Default is
+      &quot;<code>false</code>&quot;. <em>Since Ant 1.6.2</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>propertyref</h4>
+
+<p>Selects properties from the current project to be included in the
+set.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Select the property with the given name.</td>
+    <td align="center" valign="top" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">Select the properties whose name starts with the
+      given string.</td>
+  </tr>
+  <tr>
+    <td valign="top">regexp</td>
+    <td valign="top">Select the properties that match the given
+      regular expression.  Similar to <a
+      href="mapper.html#regexp-mapper">regexp type mappers</a>, this
+      requires a supported regular expression library.</td>
+  </tr>
+  <tr>
+    <td valign="top">builtin</td>
+    <td valign="top">Selects a builtin set of properties.  Valid
+      values for this attribute are <code>all</code> for all Ant
+      properties, <code>system</code> for the system properties and
+      <code>commandline</code> for all properties specified on the
+      command line when invoking Ant (plus a number of special
+      internal Ant properties).</td>
+  </tr>
+</table>
+
+<h4>propertyset</h4>
+
+<p>A <code>propertyset</code> can be used as the set union of more
+<code>propertyset</code>s.</p>
+
+<p>For example:</p>
+
+<blockquote><pre>
+&lt;propertyset id=&quot;properties-starting-with-foo&quot;&gt;
+  &lt;propertyref prefix=&quot;foo&quot;/&gt;
+&lt;/propertyset&gt;
+&lt;propertyset id=&quot;properties-starting-with-bar&quot;&gt;
+  &lt;propertyref prefix=&quot;bar&quot;/&gt;
+&lt;/propertyset&gt;
+&lt;propertyset id=&quot;my-set&quot;&gt;
+  &lt;propertyset refid=&quot;properties-starting-with-foo&quot;/&gt;
+  &lt;propertyset refid=&quot;properties-starting-with-bar&quot;/&gt;
+&lt;/propertyset&gt;
+</pre></blockquote>
+
+<p>collects all properties whose name starts with either
+&quot;foo&quot; or &quot;bar&quot; in the set named
+&quot;my-set&quot;.</p>
+
+<h4>mapper</h4>
+
+<p>A <a href="mapper.html">mapper</a> - at maximum one mapper can be
+specified.  The mapper is used to change the names of the property
+keys, for example:
+
+<blockquote><pre>
+&lt;propertyset id=&quot;properties-starting-with-foo&quot;&gt;
+  &lt;propertyref prefix=&quot;foo&quot;/&gt;
+  &lt;mapper type=&quot;glob&quot; from=&quot;foo*&quot; to=&quot;bar*&quot;/&gt;
+&lt;/propertyset&gt;
+</pre></blockquote>
+
+<p>collects all properties whose name starts with &quot;foo&quot;, but
+changes the names to start with &quot;bar&quot; instead.</p>
+
+<p>If supplied, the nested mapper will be applied
+subsequent to any negation of matched properties.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/redirector.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/redirector.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/redirector.html	(revision 14989)
@@ -0,0 +1,149 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Redirector Type</title>
+</head>
+
+<body>
+
+<h2><a name="redirector">I/O redirection</a></h2>
+<p>For many tasks, input and output can be defined in a fairly
+straightforward fashion.  The <a href="../CoreTasks/exec.html">exec</a>
+task, used to execute an external process, stands as a very
+basic example.  The executed process may accept input, produce
+output, or do either or both depending upon various circumstances.
+Output may be classified as &quot;output&quot; or as &quot;error
+output.&quot;  The &lt;redirector&gt; type provides a concrete means
+of redirecting input and output featuring the use of
+<a href="./mapper.html">File Mapper</a>s to specify
+source (input) and destination (output/error) files.  <em>Since Ant 1.6.2</em>
+<p>The <code>&lt;redirector&gt;</code> element accepts the following attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output. If the error stream
+      is not also redirected to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the
+    command should be redirected.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error output in Ant's
+                     log and you are redirecting output to a file/property. The error
+                     output will not be included in the output file/property. If you
+                     redirect error with the <i>error</i> or <i>errorProperty</i>
+                     attributes, this will have no effect.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output and error files should be appended to or overwritten.
+    Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">createemptyfiles</td>
+    <td valign="top">Whether output and error files should be created even when empty.
+    Defaults to <code>true</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the
+      command should be stored. Unless the error stream is redirected to a separate
+      file or stream, this property will include the error output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the
+      command should be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard input
+                     is taken. This attribute is mutually exclusive with the
+                     <i>inputstring</i> attribute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+                     executed command. This attribute is mutually exclusive with the
+                     <i>input</i> attribute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputencoding</td>
+    <td valign="top">The input encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The output encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorencoding</td>
+    <td valign="top">The error encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>inputmapper</h4>
+<p>A single <a href="./mapper.html">File Mapper</a> used to redirect process
+input.  Multiple mapping results should concatenate all mapped files as input.
+Mapping will ordinarily be performed on a task-specified sourcefile;
+consult the documentation of the individual task for more details.
+A nested &lt;inputmapper&gt; is not compatible with either of the
+<i>input</i> or <i>inputstring</i> attributes.</p>
+<h4>outputmapper</h4>
+<p>A single <a href="./mapper.html">File Mapper</a> used to redirect process
+output.  Mapping will ordinarily be performed on a task-specified sourcefile;
+consult the documentation of the individual task for more details.
+A nested &lt;outputmapper&gt; is not compatible with the
+<i>output</i> attribute.</p>
+<h4>errormapper</h4>
+<p>A single <a href="./mapper.html">File Mapper</a> used to redirect error
+output.  Mapping will ordinarily be performed on a task-specified sourcefile;
+consult the documentation of the individual task for more details.
+A nested &lt;errormapper&gt; is not compatible with the
+<i>error</i> attribute.</p>
+<h4>inputfilterchain</h4>
+<p>One or more <a href="./filterchain.html">FilterChain</a>s can be
+applied to the process input.</p>
+<h4>outputfilterchain</h4>
+<p>One or more <a href="./filterchain.html">FilterChain</a>s can be
+applied to the process output.</p>
+<h4>errorfilterchain</h4>
+<p>One or more <a href="./filterchain.html">FilterChain</a>s can be
+applied to the error output.</p>
+<h3>Usage</h3>
+Tasks known to support I/O redirection:
+<ul>
+<li><a href="../CoreTasks/exec.html">Exec</a></li>
+<li><a href="../CoreTasks/apply.html">Apply</a></li>
+<li><a href="../CoreTasks/java.html">Java</a></li>
+</ul>
+<p>The expected behavior of a &lt;redirector&gt; is to a great degree
+dependent on the supporting task.  Any possible points of confusion
+should be noted at the task level.</p>
+<hr />
+<p align="center">Copyright &copy; 2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/selectors-program.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/selectors-program.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/selectors-program.html	(revision 14989)
@@ -0,0 +1,250 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Language" content="en-us">
+    <title>Programming Selectors in Ant</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+  </head>
+
+  <body>
+    <h2>Programming your own Selectors</h2>
+
+    <h3>Selector Programming API</h3>
+
+    <p>Want to define your own selectors? It's easy!</p>
+
+    <p>First, pick the type of selector that you want to define. There
+    are three types, and a recipe for each one follows. Chances are
+    you'll want to work with the first one, Custom Selectors.</p>
+
+    <ol>
+      <li>Custom Selectors
+
+        <p>This is the category that Ant provides specifically for you to
+        define your own Selectors. Anywhere you want to use your selector
+        you use the <code>&lt;custom&gt;</code> element and specify
+        the class name of your selector within it. See the
+        <a href="selectors.html#customselect">Custom Selectors</a>
+        section of the Selector page for details. The
+        <code>&lt;custom&gt;</code> element can be used anywhere
+        the core selectors can be used. It can be contained within
+        <a href="selectors.html#selectcontainers">Selector Containers</a>,
+        for example.</p>
+
+        <p>To create a new Custom Selector, you have to create a class that
+        implements
+        <code>org.apache.tools.ant.types.selectors.ExtendFileSelector</code>.
+        The easiest way to do that is through the convenience base class
+        <code>org.apache.tools.ant.types.selectors.BaseExtendSelector</code>,
+        which provides all of the methods for supporting
+        <code>&lt;param&gt;</code> tags. First, override the
+        <code>isSelected()</code> method, and optionally the
+        <code>verifySettings()</code> method. If your custom
+        selector requires parameters to be set, you can also override
+        the <code>setParameters()</code> method and interpret the
+        parameters that are passed in any way you like. Several of the
+        core selectors demonstrate how to do that because they can
+        also be used as custom selectors.</p>
+
+      <li>Core Selectors
+
+        <p>These are the selectors used by Ant itself. To implement one of
+        these, you will have to alter some of the classes contained within
+        Ant.</p>
+
+        <ul>
+          <li><p>First, create a class that implements
+            <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+            You can either choose to implement all methods yourself from
+            scratch, or you can extend
+            <code>org.apache.tools.ant.types.selectors.BaseSelector</code>
+            instead, a convenience class that provides reasonable default
+            behaviour for many methods.</p>
+
+            <p>There is only one method required.
+            <code>public boolean isSelected(File basedir, String filename,
+              File file)</code>
+              is the real purpose of the whole exercise. It returns true
+              or false depending on whether the given file should be
+              selected from the list or not.</p>
+
+            <p>If you are using
+            <code>org.apache.tools.ant.types.selectors.BaseSelector</code>
+            there are also some predefined behaviours you can take advantage
+            of. Any time you encounter a problem when setting attributes or
+            adding tags, you can call setError(String errmsg) and the class
+            will know that there is a problem. Then, at the top of your
+            <code>isSelected()</code> method call <code>validate()</code> and
+            a BuildException will be thrown with the contents of your error
+            message. The <code>validate()</code> method also gives you a
+            last chance to check your settings for consistency because it
+            calls <code>verifySettings()</code>. Override this method and
+            call <code>setError()</code> within it if you detect any
+            problems in how your selector is set up.</p>
+
+            <p>You may also want to override <code>toString()</code>.</p>
+
+          <li><p>Put an <code>add</code> method for your selector in
+            <code>org.apache.tools.ant.types.selectors.SelectorContainer</code>.
+            This is an interface, so you will also have to add an implementation
+            for the method in the classes which implement it, namely
+            <code>org.apache.tools.ant.types.AbstractFileSet</code>,
+            <code>org.apache.tools.ant.taskdefs.MatchingTask</code> and
+            <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+            Once it is in there, it will be available everywhere that core
+            selectors are appropriate.</p>
+        </ul>
+
+      <li>Selector Containers
+        <p>Got an idea for a new Selector Container? Creating a new one is
+        no problem:</p>
+        <ul>
+          <li><p>Create a new class that implements
+            <code>org.apache.tools.ant.types.selectors.SelectorContainer</code>.
+            This will ensure that your new
+            Container can access any new selectors that come along. Again, there
+            is a convenience class available for you called
+            <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+            </p>
+          <li><p>Implement the
+            <code>public boolean isSelected(String filename, File file)</code>
+            method to do the right thing. Chances are you'll want to iterate
+            over the selectors under you, so use
+            <code>selectorElements()</code> to get an iterator that will do
+            that.</p>
+          <li><p>Again, put an <code>add</code> method for your container in
+            <code>org.apache.tools.ant.types.selectors.SelectorContainer</code>
+            and its implementations
+            <code>org.apache.tools.ant.types.AbstractFileSet</code> and
+            <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+            </p>
+        </ul>
+    </ol>
+
+    <h3>Testing Selectors</h3>
+
+    <p>For a robust component (and selectors are (Project)ComponentŽs) tests are
+    necessary. For testing Tasks we use JUnit TestCases - more specific
+    <tt>org.apache.tools.ant.BuildFileTest extends junit.framework.TestCase</tt>.
+    Some of its features like configure the (test) project by reading its buildfile and
+    execute targets we need for selector tests also. Therefore we use that BuildFileTest.
+    But testing selectors requires some more work: having a set of files, instantiate
+    and configure the selector, check the selection work and more. Because we usually
+    extend <tt>BaseExtendSelector</tt> its features have to be tested also (e.g. setError()).
+    </p>
+
+    <p>ThatŽs why we have a base class for doing our selector tests:
+    <tt>org.apache.tools.ant.types.selectors.BaseSelectorTest</tt>.</p>
+
+    <p>This class extends TestCase and therefore can included in the set of AntŽs
+    unit tests. It holds an instance of preconfigured BuildFileTest. Configuration
+    is done by parsing the src/etc/testcases/types/selectors.xml. BaseSelectorTest
+    then gives us helper methods for handling multiple selections. </p>
+
+    <p>Because the term "testcase" or "testenvironment" are so often used, this
+    special testenvironment got a new name: <i>bed</i>. Like you initialize the
+    test environment by calling setUp() and cleaning by calling tearDown() (<i>or like
+    to make your bed before go sleeping</i>) you have to do that work with your
+    <i>bed</i> by calling <tt>makeBed()</tt> respecitive <tt>cleanupBed()</tt>.</p>
+
+    <p>A usual test scenario is<ol>
+       <li>make the bed</li>
+       <li>instantiate the selector</li>
+       <li>configure the selector</li>
+       <li>let the selector do some work</li>
+       <li>verify the work</li>
+       <li>clean the bed</li>
+       </ol>
+    </p>
+
+    <p>For common way of instantiation you have to override the <tt>getInstance()</tt>
+    simply by returning a new object of your selector. For easier "selection and verification work"
+    BaseSelectorTest provides the method <tt>performTests()</tt> which
+    iterates over all files (and directories) in the String array <tt>filenames</tt>
+    and checks whether the given selector returns the expected result. If an error
+    occured (especially the selector does not return the expected result) the test
+    fails and the failing filenames are logged.</p>
+
+    <p>An example test would be:<pre>
+package org.apache.tools.ant.types.selectors;
+
+public class MySelectorTest extends BaseSelectorTest {
+
+    public MySelectorTest(String name) {
+        super(name);
+    }
+
+    public BaseSelector getInstance() {
+        return new MySelector();
+    }
+
+    public void testCase1() {
+        try {
+            // initialize test environment 'bed'
+            makeBed();
+
+            // Configure the selector
+            MySelector s = (MySelector)getSelector();
+            s.addParam("key1", "value1");
+            s.addParam("key2", "value2");
+            s.setXX(true);
+            s.setYY("a value");
+
+            // do the tests
+            performTests(s, "FTTTTTTTTTTT");  // First is not selected - rest is
+
+        } finally {
+            // cleanup the environment
+            cleanupBed();
+        }
+    }
+}
+    </pre>
+    As an example of an error JUnit could log<pre>
+    [junit]     FAILED
+    [junit] Error for files: <font color=blue>.;copy.filterset.filtered;tar/gz/asf-logo.gif.tar.gz</font>
+    [junit] expected:&lt;<font color=blue>FTTTFTTTF...</font>> but was:&lt;TTTTTTTTT...>
+    [junit] junit.framework.ComparisonFailure: Error for files: .;copy.filterset.filtered;tar/gz/asf-logo.gif.tar.gz
+    [junit] expected:&lt;FTTTFTTTF...> but was:&lt;TTTTTTTTT...>
+    [junit]     at junit.framework.Assert.assertEquals(Assert.java:81)
+    [junit]     at org.apache.tools.ant.types.selectors.BaseSelectorTest.performTest(BaseSelectorTest.java:194)
+    </pre></p>
+
+    <p>Described above the test class should provide a <tt>getInstance()</tt>
+    method. But that isnŽt used here. The used <tt>getSelector()</tt> method is
+    implemented in the base class and gives an instance of an Ant Project to
+    the selector. This is usually done inside normal build file runs, but not
+    inside this special environment, so this method gives the selector the
+    ability to use its own Project object (<tt>getProject()</tt>), for example
+    for logging.</p>
+
+
+    <h3>Logging</h3>
+
+    <p>During development and maybe later you sometimes need the output of information.
+    Therefore Logging is needed. Because the selector extends BaseExtendSelector or directly
+    BaseSelector it is an Ant <tt>DataType</tt> and therefore a <tt>ProjectComponent</tt>. <br>
+    That means that you have access to the project object and its logging capability.
+    <tt>ProjectComponent</tt> itself provides <i>log</i> methods which will do the
+    access to the project instance. Logging is therefore done simply with:
+    <pre>
+        log( "message" );
+    </pre>
+    or
+    <pre>
+        log( "message" , loglevel );
+    </pre>
+    where the <tt>loglevel</tt> is one of the values <ul>
+    <li> org.apache.tools.ant.Project.MSG_ERR </li>
+    <li> org.apache.tools.ant.Project.MSG_WARN </li>
+    <li> org.apache.tools.ant.Project.MSG_INFO  (= default) </li>
+    <li> org.apache.tools.ant.Project.MSG_VERBOSE </li>
+    <li> org.apache.tools.ant.Project.MSG_DEBUG </li>
+    </ul>
+    </p>
+
+    <hr>
+    <p align="center">Copyright &copy; 2002-2004 The Apache Software
+    Foundation. All rights Reserved.</p>
+  </body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/selectors.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/selectors.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/selectors.html	(revision 14989)
@@ -0,0 +1,1219 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Language" content="en-us">
+    <title>Selectors in Ant</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+  </head>
+
+  <body>
+    <h2>Selectors</h2>
+
+    <p>Selectors are a mechanism whereby the files that make up a fileset
+    can be selected based on criteria other than filename as provided
+    by the <code>&lt;include&gt;</code> and <code>&lt;exclude&gt;</code>
+    tags.</p>
+
+    <h3>How to use a Selector</h3>
+
+    <p>A selector is an element of FileSet, and appears within it. It can
+    also be defined outside of any target by using the &lt;selector&gt; tag
+    and then using it as a reference.
+    </p>
+
+    <p>Different selectors have different attributes. Some selectors can
+    contain other selectors, and these are called
+    <a href="#selectcontainers"><code>Selector Containers</code></a>.
+    There is also a category of selectors that allow
+    user-defined extensions, called
+    <a href="#customselect"><code>Custom Selectors</code></a>.
+    The ones built in to Ant are called
+    <a href="#coreselect"><code>Core Selectors</code></a>.
+    </p>
+
+    <a name="coreselect"></a>
+    <h3>Core Selectors</h3>
+
+    <p>Core selectors are the ones that come standard
+    with Ant. They can be used within a fileset and can be contained
+    within Selector Containers.</p>
+
+    <p>The core selectors are:</p>
+
+    <ul>
+      <li><a href="#containsselect">&lt;contains&gt;</a> - Select
+        files that contain a particular text string</li>
+      <li><a href="#dateselect">&lt;date&gt;</a> - Select files
+        that have been modified either before or after a particular date
+        and time</li>
+      <li><a href="#dependselect">&lt;depend&gt;</a> - Select files
+        that have been modified more recently than equivalent files
+        elsewhere</li>
+      <li><a href="#depthselect">&lt;depth&gt;</a> - Select files
+        that appear so many directories down in a directory tree</li>
+      <li><a href="#differentselect">&lt;different&gt;</a> - Select files
+        that are different from those elsewhere</li>
+      <li><a href="#filenameselect">&lt;filename&gt;</a> - Select
+        files whose name matches a particular pattern. Equivalent to
+        the include and exclude elements of a patternset.</li>
+      <li><a href="#presentselect">&lt;present&gt;</a> - Select
+        files that either do or do not exist in some other location</li>
+      <li><a href="#regexpselect">&lt;containsregexp&gt;</a> - Select
+        files that match a regular expression</li>
+      <li><a href="#sizeselect">&lt;size&gt;</a> - Select files
+        that are larger or smaller than a particular number of bytes.</li>
+      <li><a href="#typeselect">&lt;type&gt;</a> - Select files
+        that are either regular files or directories.</li>
+      <li><a href="#modified">&lt;modified&gt;</a> - Select files if
+        the return value of the configured algorithm is different from that
+        stored in a cache.</li>
+    </ul>
+
+    <a name="containsselect"></a>
+    <h4>Contains Selector</h4>
+
+    <p>The <code>&lt;contains&gt;</code> tag in a FileSet limits
+    the files defined by that fileset to only those which contain the
+    string specified by the <code>text</code> attribute.
+    .</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">text</td>
+        <td valign="top">Specifies the text that every file must contain
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">casesensitive</td>
+        <td valign="top">Whether to pay attention to case when looking
+          for the string in the <code>text</code> attribute. Default is
+          true.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">ignorewhitespace</td>
+        <td valign="top">Whether to eliminate whitespace before checking
+          for the string in the <code>text</code> attribute. Default is
+          false.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Contains Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*.html&quot;&gt;
+    &lt;contains text=&quot;script&quot; casesensitive=&quot;no&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the HTML files that contain the string
+    <code>script</code>.</p>
+
+
+    <a name="dateselect"></a>
+    <h4>Date Selector</h4>
+
+    <p>The <code>&lt;date&gt;</code> tag in a FileSet will put
+    a limit on the files specified by the include tag, so that tags
+    whose last modified date does not meet the date limits specified
+    by the selector will not end up being selected.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">datetime</td>
+        <td valign="top">Specifies the date and time to test for.
+          Should be in the format MM/DD/YYYY HH:MM AM_or_PM, or
+          an alternative pattern specified via the <i>pattern</i>
+          attribute.
+        </td>
+        <td valign="top" align="center" rowspan="2">At least one of the two.</td>
+      </tr>
+      <tr>
+        <td valign="top">millis</td>
+        <td valign="top">The number of milliseconds since 1970 that should
+          be tested for. It is usually much easier to use the datetime
+          attribute.
+        </td>
+      </tr>
+      <tr>
+        <td valign="top">when</td>
+        <td valign="top">Indicates how to interpret the date, whether
+          the files to be selected are those whose last modified times should
+          be before, after, or equal to the specified value. Acceptable
+          values for this attribute are:
+          <ul>
+            <li>before - select files whose last modified date is before the indicated date
+            <li>after - select files whose last modified date is after the indicated date
+            <li>equal - select files  whose last modified date is this exact date
+          </ul>
+          The default is equal.
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">granularity</td>
+        <td valign="top">The number of milliseconds leeway to use when
+          comparing file modification times. This is needed because not every
+          file system supports tracking the last modified time to the
+          millisecond level. Default is 0 milliseconds, or 2 seconds on DOS systems.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">pattern</td>
+        <td valign="top">The <CODE>SimpleDateFormat</CODE>-compatible pattern
+          to use when interpreting the <i>datetime</i> attribute.
+          <i>Since Ant 1.6.2</i>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Date Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${jar.path}&quot; includes=&quot;**/*.jar&quot;&gt;
+    &lt;date datetime=&quot;01/01/2001 12:00 AM&quot; when=&quot;before&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all JAR files which were last modified before midnight
+    January 1, 2001.</p>
+
+
+    <a name="dependselect"></a>
+    <h4>Depend Selector</h4>
+
+    <p>The <code>&lt;depend&gt;</code> tag selects files
+    whose last modified date is later than another, equivalent file in
+    another location.</p>
+
+    <p>The <code>&lt;depend&gt;</code> tag supports the use of a
+    contained <a href="mapper.html"><code>&lt;mapper&gt;</code></a> element
+    to define the location of the file to be compared against. If no
+    <code>&lt;mapper&gt;</code> element is specified, the
+    <code>identity</code> type mapper is used.</p>
+
+    <p>The <code>&lt;depend&gt;</code> selector is case-sensitive.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">targetdir</td>
+        <td valign="top">The base directory to look for the files to compare
+          against. The precise location depends on a combination of this
+          attribute and the <code>&lt;mapper&gt;</code> element, if any.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">granularity</td>
+        <td valign="top">The number of milliseconds leeway to give before
+          deciding a file is out of date. This is needed because not every
+          file system supports tracking the last modified time to the
+          millisecond level. Default is 0 milliseconds, or 2 seconds on DOS systems.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Depend Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${ant.1.5}/src/main&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;depend targetdir=&quot;${ant.1.4.1}/src/main&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the Java source files which were modified in the
+      1.5 release.
+    </p>
+
+
+    <a name="depthselect"></a>
+    <h4>Depth Selector</h4>
+
+    <p>The <code>&lt;depth&gt;</code> tag selects files based on
+    how many directy levels deep they are in relation to the base
+    directory of the fileset.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">min</td>
+        <td valign="top">The minimum number of directory levels below
+          the base directory that a file must be in order to be selected.
+          Default is no limit.
+        </td>
+        <td valign="top" align="center" rowspan="2">At least one of the two.</td>
+      </tr>
+      <tr>
+        <td valign="top">max</td>
+        <td valign="top">The maximum number of directory levels below
+          the base directory that a file can be and still be selected.
+          Default is no limit.
+        </td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Depth Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;depth max=&quot;1&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all files in the base directory and one directory below
+    that.</p>
+
+    <a name="differentselect">
+    <h4>Different Selector</h4>
+
+    <p>The <code>&lt;different&gt;</code> tag selects files
+    who are deemed to be 'different' from another, equivalent file in
+    another location. The rules for determining difference between two
+    files are as follows:
+    <ol>
+    <li> If there is no 'other' file, it's different.
+    <li> Files with different lengths are different.
+    <li> If <tt>ignoreFileTimes</tt> is turned off, then differing file
+    timestamps will cause files to be regarded as different.
+    <li> Finally a byte-for-byte check is run against the two files
+    </ol>
+
+    This is a useful selector to work with programs and tasks that don't handle
+    dependency checking properly; Even if a predecessor task always creates its
+    output files, followup tasks can be driven off copies made with a different selector,
+    so their dependencies are driven on the absolute state of the files, not just
+    a timestamp. For example: anything fetched from a web site, or the output of
+    some program. To reduce the amount of checking, when using this task inside
+    a &lt;copy&gt; task, set the <tt>preservelastmodified</tt> to propagate the timestamp
+    from source file to destintaion file.
+
+
+    <p>
+
+    The <code>&lt;different&gt;</code> tag supports the use of a
+    contained <a href="mapper.html"><code>&lt;mapper&gt;</code></a> element
+    to define the location of the file to be compared against. If no
+    <code>&lt;mapper&gt;</code> element is specified, the
+    <code>identity</code> type mapper is used.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">targetdir</td>
+        <td valign="top">The base directory to look for the files to compare
+          against. The precise location depends on a combination of this
+          attribute and the <code>&lt;mapper&gt;</code> element, if any.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">ignoreFileTimes</td>
+        <td valign="top">Whether to use file times in the comparison or not.
+          Default is true (time differences are ignored).
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">granularity</td>
+        <td valign="top">The number of milliseconds leeway to give before
+          deciding a file is out of date. This is needed because not every
+          file system supports tracking the last modified time to the
+          millisecond level. Default is 0 milliseconds, or 2 seconds on DOS systems.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Different Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${ant.1.5}/src/main&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;different targetdir=&quot;${ant.1.4.1}/src/main&quot;
+        ignoreFileTimes="true"/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Compares all the Java source files between the 1.4.1 and the 1.5 release
+    and selects those who are different, disregarding file times.
+    </p>
+
+    <a name="filenameselect"></a>
+    <h4>Filename Selector</h4>
+
+    <p>The <code>&lt;filename&gt;</code> tag acts like the
+    <code>&lt;include&gt;</code> and <code>&lt;exclude&gt;</code>
+    tags within a fileset. By using a selector instead, however,
+    one can combine it with all the other selectors using whatever
+    <a href="#selectcontainers">selector container</a> is desired.
+    </p>
+
+    <p>The <code>&lt;filename&gt;</code> selector is
+    case-sensitive.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of files to select. The name parameter
+          can contain the standard Ant wildcard characters.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">casesensitive</td>
+        <td valign="top">Whether to pay attention to case when looking
+          at file names. Default is "true".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">negate</td>
+        <td valign="top">Whether to reverse the effects of this filename
+          selection, therefore emulating an exclude rather than include
+          tag. Default is "false".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Filename Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;filename name=&quot;**/*.css&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the cascading style sheet files.</p>
+
+
+    <a name="presentselect"></a>
+    <h4>Present Selector</h4>
+
+    <p>The <code>&lt;present&gt;</code> tag selects files
+    that have an equivalent file in another directory tree.</p>
+
+    <p>The <code>&lt;present&gt;</code> tag supports the use of a
+    contained <a href="mapper.html"><code>&lt;mapper&gt;</code></a> element
+    to define the location of the file to be tested against. If no
+    <code>&lt;mapper&gt;</code> element is specified, the
+    <code>identity</code> type mapper is used.</p>
+
+    <p>The <code>&lt;present&gt;</code> selector is case-sensitive.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">targetdir</td>
+        <td valign="top">The base directory to look for the files to compare
+          against. The precise location depends on a combination of this
+          attribute and the <code>&lt;mapper&gt;</code> element, if any.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">present</td>
+        <td valign="top">Whether we are requiring that a file is present in
+          the src directory tree only, or in both the src and the target
+          directory tree. Valid values are:
+          <ul>
+            <li>srconly - select files only if they are in the src
+              directory tree but not in the target directory tree
+            <li>both - select files only if they are present both in the
+              src and target directory trees
+          </ul>
+          Default is both. Setting this attribute to &quot;srconly&quot;
+          is equivalent to wrapping the selector in the &lt;not&gt;
+          selector container.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Present Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${ant.1.5}/src/main&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;present present=&quot;srconly&quot; targetdir=&quot;${ant.1.4.1}/src/main&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the Java source files which are new in the
+      1.5 release.
+    </p>
+
+    <a name="regexpselect"></a>
+    <h4>Regular Expression Selector</h4>
+
+    <p>The <code>&lt;containsregexp&gt;</code> tag in a FileSet limits
+    the files defined by that fileset to only those which contain a
+    match to the regular expression specified by the <code>expression</code> attribute.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">expression</td>
+        <td valign="top">Specifies the regular expression that must
+        match true in every file</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the regular expression Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;*.txt&quot;&gt;
+    &lt;containsregexp expression=&quot;[4-6]\.[0-9]&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the text files that match the regular expression
+    (have a 4,5 or 6 followed by a period and a number from 0 to 9).
+
+
+    <a name="sizeselect"></a>
+    <h4>Size Selector</h4>
+
+    <p>The <code>&lt;size&gt;</code> tag in a FileSet will put
+    a limit on the files specified by the include tag, so that tags
+    which do not meet the size limits specified by the selector will not
+    end up being selected.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">value</td>
+        <td valign="top">The size of the file which should be tested for.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">units</td>
+        <td valign="top">The units that the <code>value</code> attribute
+          is expressed in. When using the standard single letter SI
+          designations, such as &quot;k&quot;,&quot;M&quot;, or
+          &quot;G&quot;, multiples of 1000 are used. If you want to use
+          power of 2 units, use the IEC standard: &quot;Ki&quot; for 1024,
+          &quot;Mi&quot; for 1048576, and so on. The default is no units,
+          which means the <code>value</code> attribute expresses the exact
+          number of bytes.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">when</td>
+        <td valign="top">Indicates how to interpret the size, whether
+          the files to be selected should be larger, smaller, or equal to
+          that value. Acceptable values for this attribute are:
+          <ul>
+            <li>less - select files less than the indicated size
+            <li>more - select files greater than the indicated size
+            <li>equal - select files this exact size
+          </ul>
+          The default is less.
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Size Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${jar.path}&quot;&gt;
+  &lt;patternset&gt;
+    &lt;include name=&quot;**/*.jar&quot;/&gt;
+  &lt;/patternset&gt;
+  &lt;size value=&quot;4&quot; units=&quot;Ki&quot; when=&quot;more&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all JAR files that are larger than 4096 bytes.</p>
+
+    <a name="typeselect"></a>
+    <h4>Type Selector</h4>
+
+    <p>The <code>&lt;type&gt;</code> tag selects files of a certain type:
+    directory or regular.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">type</td>
+        <td valign="top">The type of file which should be tested for.
+            Acceptable values are:
+            <ul>
+                <li>file - regular files</li>
+                <li>dir - directories</li>
+            </ul>
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Type Selector to select only
+    directories in <code>${src}</code></p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${src}&quot;&gt;
+  &lt;type type="dir"/>
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>The Type Selector is often used in conjunction with other selectors.
+    For example, to select files that also exist in a <code>template</code>
+    directory, but avoid selecting empty directories, use:
+
+<blockquote><pre>
+&lt;fileset dir="${src}">
+    &lt;and>
+        &lt;present targetdir="template"/>
+        &lt;type type="file"/>
+    &lt;/and>
+&lt;/fileset>
+</pre></blockquote>
+
+
+    <a name="modified"></a>
+    <h4>Modified Selector</h4>
+    <p>The &lt;modified&gt; selector computes a value for a file, compares that
+    to the value stored in a cache and select the file, if these two values
+    differ.</p>
+    <p>Because this selector is highly configurable the order in which the selection is done
+    is: <ol>
+        <li> get the absolute path for the file </li>
+        <li> get the cached value from the configured cache (absolute path as key) </li>
+        <li> get the new value from the configured algorithm </li>
+        <li> compare these two values with the configured comparator </li>
+        <li> update the cache if needed and requested </li>
+        <li> do the selection according to the comparison result </li>
+        </ol>
+    The comparison, computing of the hashvalue and the store is done by implementation
+    of special interfaces. Therefore they may provide additional parameters.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top"> algorithm </td>
+        <td valign="top"> The type of algorithm should be used.
+            Acceptable values are (further information see later):
+            <ul>
+                <li> hashvalue - HashvalueAlgorithm </li>
+                <li> digest - DigestAlgorithm </li>
+            </ul>
+        </td>
+        <td valign="top" align="center"> No, defaults to <i>digest</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> cache </td>
+        <td valign="top"> The type of cache should be used.
+            Acceptable values are (further information see later):
+            <ul>
+                <li> propertyfile - PropertyfileCache </li>
+            </ul>
+        </td>
+        <td valign="top" align="center"> No, defaults to <i>propertyfile</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> comparator </td>
+        <td valign="top"> The type of comparator should be used.
+            Acceptable values are (further information see later):
+            <ul>
+                <li> equal - EqualComparator </li>
+                <li> rule - java.text.RuleBasedCollator </li>
+            </ul>
+        </td>
+        <td valign="top" align="center"> No, defaults to <i>equal</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> update </td>
+        <td valign="top"> Should the cache be updated when values differ? (boolean) </td>
+        <td valign="top" align="center"> No, defaults to <i>true</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> seldirs </td>
+        <td valign="top"> Should directories be selected? (boolean) </td>
+        <td valign="top" align="center"> No, defaults to <i>true</i> </td>
+      </tr>
+    </table>
+
+    <p>These attributes can be set with nested &lt;param/&gt; tags. With &lt;param/&gt;
+    tags you can set other values too - as long as they are named according to
+    the following rules: <ul>
+        <li> <b> algorithm </b>: same as attribute algorithm </li>
+        <li> <b> cache </b>: same as attribute cache </li>
+        <li> <b> comparator </b>: same as attribute comparator </li>
+        <li> <b> update </b>: same as attribute update </li>
+        <li> <b> seldirs </b>: same as attribute seldirs </li>
+        <li> <b> algorithm.* </b>: Value is transfered to the algorithm via its
+                                   <i>set</i>XX-methods </li>
+        <li> <b> cache.* </b>: Value is transfered to the cache via its
+                                   <i>set</i>XX-methods </li>
+        <li> <b> comparator.* </b>: Value is transfered to the comparator via its
+                                   <i>set</i>XX-methods </li>
+    </ul></p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr><td colspan="2"><font size="+1"><b> Algorithm's </b></font></td></tr>
+      <tr>
+        <td valign="top"><b>Name</b></td>
+        <td valign="top"><b>Description</b></td>
+      </tr>
+      <tr>
+        <td valign="top"> hashvalue </td>
+        <td valign="top"> Reads the content of a file into a java.lang.String
+          and use thats hashValue(). No additional configuration required.
+        </td>
+      </tr>
+      <tr>
+        <td valign="top"> digest </td>
+        <td valign="top"> Uses java.security.MessageDigest. This Algorithm supports
+          the following attributes:
+          <ul>
+            <li><i>algorithm.algorithm</i> (optional): Name of the Digest algorithm
+                (e.g. 'MD5' or 'SHA', default = <i>MD5</i>) </li>
+            <li><i>algorithm.provider</i> (optional): Name of the Digest provider
+                (default = <i>null</i>) </li>
+          </ul>
+        </td>
+      </tr>
+      <tr><td colspan="2"><font size="+1"><b> Cache's </b></font></td></tr>
+      <tr>
+        <td valign="top"> propertyfile </td>
+        <td valign="top"> Use the java.util.Properties class and its possibility
+          to load and store to file.
+          This Cache implementation supports the following attributes:
+          <ul>
+            <li><i>cache.cachefile</i> (optional): Name of the properties-file
+                (default = <i>cache.properties</i>) </li>
+          </ul>
+        </td>
+      </tr>
+      <tr><td colspan="2"><font size="+1"><b> Comparator's </b></font></td></tr>
+      <tr>
+        <td valign="top"> equal </td>
+        <td valign="top"> Very simple object comparison. </td>
+      </tr>
+      <tr>
+        <td valign="top"> rule </td>
+        <td valign="top"> Uses <i>java.text.RuleBasedCollator</i> for Object
+          comparison.
+        </td>
+      </tr>
+    </table>
+
+    <p>Here are some examples of how to use the Modified Selector:</p>
+
+    <blockquote><pre>
+    &lt;copy todir="dest">
+        &lt;fileset dir="src">
+            &lt;modified/>
+        &lt;/fileset>
+    &lt;/copy
+    </pre></blockquote>
+    <p>This will copy all files from <i>src</i> to <i>dest</i> which content has changed.
+    Using an updating PropertyfileCache with cache.properties and
+    MD5-DigestAlgorithm.</p>
+
+    <blockquote><pre>
+    &lt;copy todir="dest">
+        &lt;fileset dir="src">
+            &lt;modified update="true"
+                      seldirs="true"
+                      cache="propertyfile"
+                      algorithm="digest"
+                      comparator="equal">
+                &lt;param name="cache.cachefile"     value="cache.properties"/>
+                &lt;param name="algorithm.algorithm" value="MD5"/>
+            &lt;/modified>
+        &lt;/fileset>
+    &lt;/copy>
+    </pre></blockquote>
+  <p>This is the same example rewritten as CoreSelector with setting the all the values
+  (same as defaults are).</p>
+
+    <blockquote><pre>
+    &lt;copy todir="dest">
+        &lt;fileset dir="src">
+            &lt;custom class="org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector">
+                &lt;param name="update"     value="true"/>
+                &lt;param name="seldirs"    value="true"/>
+                &lt;param name="cache"      value="propertyfile"/>
+                &lt;param name="algorithm"  value="digest"/>
+                &lt;param name="comparator" value="equal"/>
+                &lt;param name="cache.cachefile"     value="cache.properties"/>
+                &lt;param name="algorithm.algorithm" value="MD5"/>
+            &lt;/custom>
+        &lt;/fileset>
+    &lt;/copy>
+    </pre></blockquote>
+  <p>And this is the same rewritten as CustomSelector.</p>
+
+    <blockquote><pre>
+  &lt;target name="generate-and-upload-site">
+      &lt;echo> generate the site using forrest &lt;/echo>
+      &lt;antcall target="site"/>
+
+      &lt;echo> upload the changed file &lt;/echo>
+      &lt;ftp server="${ftp.server}" userid="${ftp.user}" password="${ftp.pwd}">
+          &lt;fileset dir="htdocs/manual">
+              &lt;modified/>
+          &lt;/fileset>
+      &lt;/ftp>
+  &lt;/target>
+    </pre></blockquote>
+  <p>A useful scenario for this selector inside a build environment
+  for homepage generation (e.g. with <a href="http://xml.apache.org/forrest/">
+  Apache Forrest</a>). Here all <b>changed</b> files are uploaded to the server. The
+  CacheSelector saves therefore much upload time.</p>
+
+
+    <a name="selectcontainers"></a>
+    <h3>Selector Containers</h3>
+
+    <p>To create more complex selections, a variety of selectors that
+    contain other selectors are available for your use. They combine the
+    selections of their child selectors in various ways.</p>
+
+    <p>The selector containers are:</p>
+
+    <ul>
+      <li><a href="#andselect">&lt;and&gt;</a> - select a file only if all
+        the contained selectors select it.
+      <li><a href="#majorityselect">&lt;majority&gt;</a> - select a file
+        if a majority of its selectors select it.
+      <li><a href="#noneselect">&lt;none&gt;</a> - select a file only if
+        none of the contained selectors select it.
+      <li><a href="#notselect">&lt;not&gt;</a> - can contain only one
+        selector, and reverses what it selects and doesn't select.
+      <li><a href="#orselect">&lt;or&gt;</a> - selects a file if any one
+        of the contained selectors selects it.
+      <li><a href="#selectorselect">&lt;selector&gt;</a> - contains only one
+        selector and forwards all requests to it without alteration, provided
+        that any <code>&quot;if&quot;</code> or
+        <code>&quot;unless&quot;</code> conditions are met. This
+        is the selector to use if you want to define a reference. It is
+        usable as an element of <code>&lt;project&gt;</code>. It is also
+        the one to use if you want selection of files to be dependent on
+        Ant property settings.
+    </ul>
+
+    <p>All selector containers can contain any other selector, including
+    other containers, as an element. Using containers, the selector tags
+    can be arbitrarily deep. Here is a complete list of allowable
+    selector elements within a container:</P>
+
+    <ul>
+      <li>&lt;and&gt;
+      <li>&lt;contains&gt;
+      <li>&lt;custom&gt;
+      <li>&lt;date&gt;
+      <li>&lt;depend&gt;
+      <li>&lt;depth&gt;
+      <li>&lt;filename&gt;
+      <li>&lt;majority&gt;
+      <li>&lt;none&gt;
+      <li>&lt;not&gt;
+      <li>&lt;or&gt;
+      <li>&lt;present&gt;
+      <li>&lt;selector&gt;
+      <li>&lt;size&gt;
+    </ul>
+
+    <a name="andselect"></a>
+    <h4>And Selector</h4>
+
+    <p>The <code>&lt;and&gt;</code> tag selects files that are
+    selected by all of the elements it contains. It returns as
+    soon as it finds a selector that does not select the file,
+    so it is not guaranteed to check every selector.
+    </p>
+
+    <p>Here is an example of how to use the And Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${dist}&quot; includes=&quot;**/*.jar&quot;&gt;
+    &lt;and&gt;
+        &lt;size value=&quot;4&quot; units=&quot;Ki&quot; when=&quot;more&quot;/&gt;
+        &lt;date datetime=&quot;01/01/2001 12:00 AM&quot; when=&quot;before&quot;/&gt;
+    &lt;/and&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the JAR file larger than 4096 bytes which haven't been update
+      since the last millenium.
+    </p>
+
+
+    <a name="majorityselect"></a>
+    <h4>Majority Selector</h4>
+
+    <p>The <code>&lt;majority&gt;</code> tag selects files provided
+    that a majority of the contained elements also select it. Ties are
+    dealt with as specified by the <code>allowtie</code> attribute.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">allowtie</td>
+        <td valign="top">Whether files should be selected if there
+          are an even number of selectors selecting them as are
+          not selecting them. Default is true.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+
+    <p>Here is an example of how to use the Majority Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${docs}&quot; includes=&quot;**/*.html&quot;&gt;
+    &lt;majority&gt;
+        &lt;contains text=&quot;project&quot; casesensitive="false"/&gt;
+        &lt;contains text=&quot;taskdef&quot; casesensitive="false"/&gt;
+        &lt;contains text=&quot;IntrospectionHelper&quot; casesensitive="true"/&gt;
+    &lt;/majority&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the HTML files which contain at least two of the three
+    phrases "project", "taskdef", and "IntrospectionHelper" (this last phrase must
+    match case exactly).
+    </p>
+
+
+    <a name="noneselect"></a>
+    <h4>None Selector</h4>
+
+    <p>The <code>&lt;none&gt;</code> tag selects files that are
+    not selected by any of the elements it contains. It returns as
+    soon as it finds a selector that selects the file,
+    so it is not guaranteed to check every selector.
+    </p>
+
+    <p>Here is an example of how to use the None Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${src}&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;none&gt;
+        &lt;present targetdir=&quot;${dest}&quot;/&gt;
+        &lt;present targetdir=&quot;${dest}&quot;&gt;
+            &lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.class&quot;/&gt;
+        &lt;/present&gt;
+    &lt;/none&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects only Java files which do not have equivalent java or
+    class files in the dest directory.
+    </p>
+
+
+    <a name="notselect"></a>
+    <h4>Not Selector</h4>
+
+    <p>The <code>&lt;not&gt;</code> tag reverses the meaning of the
+    single selector it contains.
+    </p>
+
+    <p>Here is an example of how to use the Not Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${src}&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;not&gt;
+        &lt;contains text=&quot;test&quot;/&gt;
+    &lt;/not&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the files in the src directory that do not contain the
+    string "test".
+    </p>
+
+
+    <a name="orselect"></a>
+    <h4>Or Selector</h4>
+
+    <p>The <code>&lt;or&gt;</code> tag selects files that are
+    selected by any one of the elements it contains. It returns as
+    soon as it finds a selector that selects the file,
+    so it is not guaranteed to check every selector.
+    </p>
+
+    <p>Here is an example of how to use the Or Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${basedir}&quot;&gt;
+    &lt;or&gt;
+        &lt;depth max=&quot;0&quot;/&gt;
+        &lt;filename name="*.png"/&gt;
+        &lt;filename name="*.gif"/&gt;
+        &lt;filename name="*.jpg"/&gt;
+    &lt;/or&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the files in the top directory along with all the
+    image files below it.
+    </p>
+
+
+    <a name="selectorselect"></a>
+    <h4>Selector Reference</h4>
+
+    <p>The <code>&lt;selector&gt;</code> tag is used to create selectors
+    that can be reused through references. It is the only selector which can
+    be used outside of
+    any target, as an element of the <code>&lt;project&gt;</code> tag. It
+    can contain only one other selector, but of course that selector can
+    be a container.
+    </p>
+
+    <p>The <code>&lt;selector&gt;</code> tag can also be used to select
+    files conditionally based on whether an Ant property exists or not.
+    This functionality is realized using the <code>&quot;if&quot;</code> and
+    <code>&quot;unless&quot;</code> attributes in exactly the same way they
+    are used on targets or on the <code>&lt;include&gt;</code> and
+    <code>&lt;exclude&gt;</code> tags within a
+    <code>&lt;patternset&gt;</code>.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">if</td>
+        <td valign="top">Allow files to be selected only if the named
+          property is set.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">unless</td>
+        <td valign="top">Allow files to be selected only if the named
+          property is <b>not</b> set.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Selector Reference:</p>
+
+    <blockquote><pre>
+&lt;project default=&quot;all&quot; basedir=&quot;./ant&quot;&gt;
+
+    &lt;selector id=&quot;completed&quot;&gt;
+        &lt;none&gt;
+            &lt;depend targetdir=&quot;build/classes&quot;&gt;
+                &lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.class&quot;/&gt;
+            &lt;/depend&gt;
+            &lt;depend targetdir=&quot;docs/manual/api&quot;&gt;
+                &lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.html&quot;/&gt;
+            &lt;/depend&gt;
+        &lt;/none&gt;
+    &lt;/selector&gt;
+
+    &lt;target&gt;
+        &lt;zip&gt;
+            &lt;fileset dir=&quot;src/main&quot; includes=&quot;**/*.java&quot;&gt;
+                &lt;selector refid=&quot;completed&quot;/&gt;
+            &lt;/fileset&gt;
+        &lt;/zip&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre></blockquote>
+
+    <p>Zips up all the Java files which have an up-to-date equivalent
+    class file and javadoc file associated with them.
+    </p>
+
+    <p>And an example of selecting files conditionally, based on whether
+    properties are set:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${working.copy}&quot;&gt;
+    &lt;or&gt;
+        &lt;selector if=&quot;include.tests&quot;&gt;
+            &lt;filename name=&quot;**/*Test.class&quot;&gt;
+        &lt;/selector&gt;
+        &lt;selector if=&quot;include.source&quot;&gt;
+            &lt;and&gt;
+                &lt;filename name=&quot;**/*.java&quot;&gt;
+                &lt;not&gt;
+                    &lt;selector unless=&quot;include.tests&quot;&gt;
+                        &lt;filename name=&quot;**/*Test.java&quot;&gt;
+                    &lt;/selector&gt;
+                &lt;/not&gt;
+            &lt;/and&gt;
+        &lt;/selector&gt;
+    &lt;/or&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>A fileset that conditionally contains Java source files and Test
+    source and class files.</p>
+
+    <a name="customselect"></a>
+    <h3>Custom Selectors</h3>
+
+    <p>You can write your own selectors and use them within the selector
+    containers by specifying them within the &lt;custom&gt; tag.</p>
+
+    <p>First, you have to write your selector class in Java. The only
+    requirement it must meet in order to be a selector is that it implements
+    the <code>org.apache.tools.ant.types.selectors.FileSelector</code>
+    interface, which contains a single method. See
+    <a href="selectors-program.html">Programming Selectors in Ant</a> for
+    more information.</p>
+
+    <p>Once that is written, you include it in your build file by using
+    the <code>&lt;custom&gt;</code> tag.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">classname</td>
+        <td valign="top">The name of your class that implements
+          <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">classpath</td>
+        <td valign="top">The classpath to use in order to load the
+          custom selector class. If neither this classpath nor the
+          classpathref are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">classpathref</td>
+        <td valign="top">A reference to a classpath previously
+          defined. If neither this reference nor the
+          classpath above are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is how you use <code>&lt;custom&gt;</code> to
+    use your class as a selector:
+    </p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${mydir}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;custom classname=&quot;com.mydomain.MySelector&quot;&gt;
+        &lt;param name=&quot;myattribute&quot; value=&quot;myvalue&quot;/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>A number of core selectors can also be used as custom selectors
+    by specifying their attributes using &lt;param&gt; elements. These
+    are</p>
+
+    <ul>
+      <li><a href="#containsselect">Contains Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.ContainsSelector</code>
+      <li><a href="#dateselect">Date Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DateSelector</code>
+      <li><a href="#depthselect">Depth Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DepthSelector</code>
+      <li><a href="#filenameselect">Filename Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.FilenameSelector</code>
+      <li><a href="#sizeselect">Size Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.SizeSelector</code>
+    </ul>
+
+    <p>Here is the example from the Depth Selector section rewritten
+    to use the selector through <code>&lt;custom&gt;</code>.</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;custom classname=&quot;org.apache.tools.ant.types.selectors.DepthSelector&quot;&gt;
+        &lt;param name=&quot;max&quot; value=&quot;1&quot;/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all files in the base directory and one directory below
+    that.</p>
+
+    <p>For more details concerning writing your own selectors, consult
+    <a href="selectors-program.html">Programming Selectors in Ant</a>.</p>
+
+    <hr>
+    <p align="center">Copyright &copy; 2002-2004 The Apache Software
+    Foundation. All rights Reserved.</p>
+
+  </body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/xmlcatalog.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/xmlcatalog.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/xmlcatalog.html	(revision 14989)
@@ -0,0 +1,293 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>XMLCatalog Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="XMLCatalog">XMLCatalog</a></h2>
+
+<p>An XMLCatalog is a catalog of public resources such as DTDs or
+entities that are referenced in an XML document.  Catalogs are
+typically used to make web references to resources point to a locally
+cached copy of the resource.</p>
+
+<p>This allows the XML Parser, XSLT Processor or other consumer of XML 
+documents
+to efficiently allow a local substitution for a resource available on the 
+web.
+</p>
+<p><b>Note:</b> This task <em>uses, but does not depend on</em> external
+libraries not included in the Ant distribution.  See <a
+  href="../install.html#librarydependencies">Library Dependencies</a> for more
+information.</p>
+<p>This data type provides a catalog of resource locations based
+on the <a
+href="http://oasis-open.org/committees/entity/spec-2001-08-06.html">
+OASIS "Open Catalog" standard</a>.  The catalog entries are used
+both for Entity resolution and URI resolution, in accordance with
+the <code>org.xml.sax.EntityResolver</code> and <code>
+javax.xml.transform.URIResolver</code> interfaces as defined
+in the <a href="http://java.sun.com/xml/jaxp">Java API for XML
+Processing (JAXP) Specification</a>.</p>
+<p>For example, in a <code>web.xml</code> file, the DTD is referenced as:
+<pre>
+&lt;!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN&quot;
+  &quot;http://java.sun.com/j2ee/dtds/web-app_2_2.dtd&quot;&gt;
+</pre>
+The XML processor, without XMLCatalog support, would need to retrieve the 
+DTD from
+the URL specified whenever validation of the document was required.
+</p>
+<p>This can be very time consuming during the build process,
+especially where network throughput is limited.  Alternatively, you
+can do the following:
+<ol>
+<li>Copy <code>web-app_2_2.dtd</code> onto your local disk somewhere (either in the
+filesystem or even embedded inside a jar or zip file on the classpath).</li>
+<li>Create an <code>&lt;xmlcatalog&gt;</code> with a <code>&lt;dtd&gt;</code> 
+element whose <code>location</code> attribute points to the file.</li>
+<li>Success! The XML processor will now use the local copy instead of calling out
+to the internet.</li>
+</ol>
+</p>
+<p>XMLCatalogs can appear inside tasks
+that support this feature or at the same level as <code>target</code>
+- i.e., as children of <code>project</code> for reuse across different 
+tasks,
+e.g. XML Validation and XSLT Transformation.  The XML Validate task
+uses XMLCatalogs for entity resolution.  The XSLT Transformation
+task uses XMLCatalogs for both entity and URI resolution.</p>
+<p>XMLCatalogs are specified as either a reference to another
+XMLCatalog, defined previously in a build file, or as a list of
+<code>dtd</code> or <code>entity</code> locations.  In addition,
+external catalog files may be specified in a nested <code>catalogpath</code> ,
+but they will be ignored unless the resolver library from
+xml-commons is available in the system classpath.  <b>Due to backwards
+incompatible changes in the resolver code after the release of
+resolver 1.0, Ant will not support resolver.jar in version 1.0 - we
+expect a resolver release 1.1 to happen before Ant 1.6 gets
+released.</b>  A separate classpath for entity resolution may be
+specified inline via nested <code>classpath</code> elements; otherwise
+the system classpath is used for this as well.</p>
+<p>XMLCatalogs can also be nested inside other XMLCatalogs.  For
+example, a "superset" XMLCatalog could be made by including several
+nested XMLCatalogs that referred to other, previously defined
+XMLCatalogs.</p>
+<p>Resource locations can be specified either in-line or in
+external catalog file(s), or both.  In order to use an external
+catalog file, the xml-commons resolver library ("resolver.jar")
+must be in your path.  External catalog files may be either <a
+href="http://oasis-open.org/committees/entity/background/9401.html">
+plain text format</a> or <a
+href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">
+XML format</a>.  If the xml-commons resolver library is not found in the
+classpath, external catalog files, specified in <code>catalogpath</code>, 
+will be ignored and a warning
+will be logged.  In this case, however, processing of inline entries will
+proceed normally.</p>
+<p>Currently, only <code>&lt;dtd&gt;</code> and
+<code>&lt;entity&gt;</code> elements may be specified inline; these
+roughly correspond to OASIS catalog entry types <code>PUBLIC</code> and
+<code>URI</code> respectively.  By contrast, external catalog files
+may use any of the entry types defined in the 
+<a href="http://oasis-open.org/committees/entity/spec-2001-08-06.html">
++OASIS specification</a>.</p>
+<a name="ResolverAlgorithm"></a><h3>Entity/DTD/URI Resolution Algorithm</h3>
+
+When an entity, DTD, or URI is looked up by the XML processor, the
+XMLCatalog searches its list of entries to see if any match.  That is,
+it attempts to match the <code>publicId</code> attribute of each entry
+with the PublicID or URI of the entity to be resolved.  Assuming a
+matching entry is found, XMLCatalog then executes the following steps:
+
+<h4>1. Filesystem lookup</h4>
+
+<p>The <code>location</code> is first looked up in the filesystem.  If
+the <code>location</code> is a relative path, the ant project basedir
+attribute is used as the base directory.  If the <code>location</code>
+specifies an absolute path, it is used as is.  Once we have an
+absolute path in hand, we check to see if a valid and readable file
+exists at that path.  If so, we are done.  If not, we proceed to the
+next step.</p>
+
+<h4>2. Classpath lookup</h4>
+
+<p>The <code>location</code> is next looked up in the classpath.
+Recall that jar files are merely fancy zip files.  For classpath
+lookup, the <code>location</code> is used as is (no base is
+prepended).  We use a Classloader to attempt to load the resource from
+the classpath.  For example, if hello.jar is in the classpath and it
+contains <code>foo/bar/blat.dtd</code> it will resolve an entity whose
+<code>location</code> is <code>foo/bar/blat.dtd</code>.  Of course, it
+will <em>not</em> resolve an entity whose <code>location</code> is
+<code>blat.dtd</code>.
+
+
+<h4>3a. Apache xml-commons resolver lookup</h4>
+
+<p>What happens next depends on whether the resolver library from
+xml-commons is available on the classpath.  If so, we defer all
+further attempts at resolving to it.  The resolver library supports
+extremely sophisticated functionality like URL rewriting and so on,
+which can be accessed by making the appropriate entries in external
+catalog files (XMLCatalog does not yet provide inline support for all
+of the entries defined in the <a
+href="http://oasis-open.org/committees/entity/spec-2001-08-06.html">OASIS
+standard</a>).</p>
+
+<h4>3. URL-space lookup</h4>
+
+<p>Finally, we attempt to make a URL out of the <code>location</code>.
+At first this may seem like this would defeat the purpose of
+XMLCatalogs -- why go back out to the internet?  But in fact, this can
+be used to (in a sense) implement HTTP redirects, substituting one URL
+for another.  The mapped-to URL might also be served by a local web
+server.  If the URL resolves to a valid and readable resource, we are
+done.  Otherwise, we give up.  In this case, the XML processor will
+perform its normal resolution algorithm.  Depending on the processor
+configuration, further resolution failures may or may not result in
+fatal (i.e. build-ending) errors.</p>
+
+<h3>XMLCatalog attributes</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">id</td>
+    <td valign="top">a unique name for an XMLCatalog, used for referencing 
+the
+    XMLCatalog's contents from another XMLCatalog</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">the <code>id</code> of another XMLCatalog whose 
+contents
+    you would like to be used for this XMLCatalog</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>XMLCatalog nested elements</h3>
+<h4>dtd/entity</h4>
+<p>The <code>dtd</code> and <code>entity</code> elements used to specify
+XMLCatalogs are identical in their structure</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">The public identifier used when defining a dtd or 
+entity,
+    e.g. <code>&quot;-//Sun Microsystems, Inc.//DTD Web Application 
+2.2//EN&quot;</code>
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">The location of the local replacement to be used for 
+the public identifier specified. This may be specified as a file name, 
+resource name found on the classpath, or a URL.  Relative paths will
+be resolved according to the base, which by default is the Ant project
+basedir.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h4>classpath</h4>
+<p>The classpath to use for <a href="#ResolverAlgorithm">entity
+resolution</a>.  The nested <code>&lt;classpath&gt;</code> is a
+<a href="../using.html#path">path</a>-like structure.</p>
+<h4>catalogpath</h4>
+<p>
+The nested <code>catalogpath</code> element is a <a
+href="../using.html#path">path</a>-like structure listing catalog files to
+search.  All files in this path are assumed to be OASIS catalog files, in
+either
+<a href="http://oasis-open.org/committees/entity/background/9401.html">
+plain text format</a> or <a
+href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">
+XML format</a>. Entries specifying nonexistent files will be ignored. If the
+resolver library from xml-commons is not available in the classpath, all
+<code>catalogpaths</code> will be ignored and a warning will be logged.
+</p>
+<h3>Examples</h3>
+<p>Set up an XMLCatalog with a single dtd referenced locally in a user's 
+home 
+directory:</p>
+<blockquote><pre>
+    &lt;xmlcatalog&gt;
+        &lt;dtd 
+            publicId=&quot;-//OASIS//DTD DocBook XML V4.1.2//EN&quot;
+            location=&quot;/home/dion/downloads/docbook/docbookx.dtd&quot;/&gt;
+    &lt;/xmlcatalog&gt;
+</pre></blockquote>
+<p>Set up an XMLCatalog with a multiple dtds to be found either in the
+filesystem (relative to the Ant project basedir) or in the classpath:
+</p>
+<blockquote><pre>
+    &lt;xmlcatalog id=&quot;commonDTDs&quot;&gt;
+        &lt;dtd 
+            publicId=&quot;-//OASIS//DTD DocBook XML V4.1.2//EN&quot;
+            location=&quot;docbook/docbookx.dtd&quot;/&gt;
+        &lt;dtd 
+            publicId=&quot;-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN&quot;
+            location=&quot;web-app_2_2.dtd&quot;/&gt;
+    &lt;/xmlcatalog&gt;
+</pre></blockquote>
+
+<p>Set up an XMLCatalog with a combination of DTDs and entities as
+well as a nested XMLCatalog and external catalog files in both
+formats:</p>
+
+<blockquote><pre>
+    &lt;xmlcatalog id=&quot;allcatalogs&quot;&gt;
+        &lt;dtd 
+            publicId=&quot;-//ArielPartners//DTD XML Article V1.0//EN&quot;
+            location=&quot;com/arielpartners/knowledgebase/dtd/article.dtd&quot;/&gt;
+        &lt;entity 
+            publicId=&quot;LargeLogo&quot;
+            location=&quot;com/arielpartners/images/ariel-logo-large.gif&quot;/&gt;
+        &lt;xmlcatalog refid="commonDTDs"/&gt;
+            &lt;catalogpath&gt;
+                &lt;pathelement location="/etc/sgml/catalog"/&gt;
+                &lt;fileset 
+                    dir=&quot;/anetwork/drive&quot;
+                    includes=&quot;**/catalog&quot;/&gt;
+                &lt;fileset 
+                    dir=&quot;/my/catalogs&quot;
+                    includes=&quot;**/catalog.xml&quot;/&gt;
+            &lt;/catalogpath&gt;
+        &lt;/xmlcatalog&gt;
+    &lt;/xmlcatalog&gt;
+</pre></blockquote>
+<p>To reference the above XMLCatalog in an <code>xslt</code> task:<p>
+<blockquote><pre>
+    &lt;xslt basedir="${source.doc}"
+           destdir="${dest.xdocs}"
+           extension=".xml"
+           style="${source.xsl.converter.docbook}"
+           includes="**/*.xml"
+           force="true"&gt;
+        &lt;xmlcatalog refid=&quot;allcatalogs&quot;/&gt;
+    &lt;/xslt&gt;
+</pre></blockquote>
+
+<hr>
+<p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation. All 
+rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/zipfileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/zipfileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/CoreTypes/zipfileset.html	(revision 14989)
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>ZipFileSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+<h2><a name="fileset">ZipFileSet</a></h2>
+<p>A <code>&lt;zipfileset&gt;</code> is a special form of a <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code> which can behave in 2
+different ways : <br>
+</p>
+<ul>
+  <li>When the <span style="font-style: italic;">src</span> attribute
+is used, the zipfileset is populated with zip entries found in the file <span
+ style="font-style: italic;">src</span>.<br>
+  </li>
+  <li>When the <span style="font-style: italic;">dir</span> attribute
+is used, the zipfileset is populated with filesystem files found under <span
+ style="font-style: italic;">dir</span>.<br>
+  </li>
+</ul>
+<p><code>&lt;zipfileset&gt;</code> supports all attributes of <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code>
+in addition to those listed below.<br>
+</p>
+<p>Since Ant 1.6, a zipfileset can be defined with the <span
+ style="font-style: italic;">id </span>attribute and referred to with
+the <span style="font-style: italic;">refid</span> attribute.<br>
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody>
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td valign="top" align="center"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">prefix</td>
+      <td valign="top">all files in the fileset are prefixed with that 
+path in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">fullpath</td>
+      <td valign="top">the file described by the fileset is placed at  
+that exact location in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">src</td>
+      <td valign="top">may be used in place of the <i>dir</i> attribute
+ to specify a zip file whose contents will be extracted and     included
+in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">filemode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+plain files.  Default is 644. <em>since Ant 1.5.2</em>.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">dirmode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+directories.  Default is 755. <em>since Ant 1.5.2</em>.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+  </tbody>
+</table>
+<p>The <i>fullpath</i> attribute can only be set for filesets that
+represent a single file. The <i>prefix</i> and <i>fullpath</i>
+attributes cannot both be set on the same fileset.</p>
+<p>When using the <i>src</i> attribute, include and exclude patterns
+may be used to specify a subset of the zip file for inclusion in the
+archive as with the <i>dir</i> attribute.</p>
+<h4>Examples</h4>
+<blockquote>
+  <pre>  &lt;zip destfile="${dist}/manual.zip"&gt;<br>    &lt;zipfileset dir="htdocs/manual" prefix="docs/user-guide"/&gt;<br>    &lt;zipfileset dir="." includes="ChangeLog27.txt" fullpath="docs/ChangeLog.txt"/&gt;<br>    &lt;zipfileset src="examples.zip" includes="**/*.html" prefix="docs/examples"/&gt;<br>  &lt;/zip&gt;<br></pre>
+  <p>zips all files in the <code>htdocs/manual</code> directory into
+the <code>docs/user-guide</code> directory in the archive, adds the
+file <code>ChangeLog27.txt</code> in the current directory as <code>docs/ChangeLog.txt</code>,
+and includes all the html files in <code>examples.zip</code> under <code>docs/examples</code>.
+The archive might end up containing the files:</p>
+  <code> docs/user-guide/html/index.html<br>
+docs/ChangeLog.txt<br>
+docs/examples/index.html<br>
+  </code></blockquote>
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation. All
+rights Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/Integration/Antidote.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/Integration/Antidote.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/Integration/Antidote.html	(revision 14989)
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd">
+<HTML> 
+  <HEAD> 
+     <TITLE>About Antidote</TITLE> 
+  </HEAD> 
+
+  <BODY> 
+
+    <H1>About Antidote</H1>
+
+    <P>Version 0.1 (2001/02/13)</P>
+
+    <P>Authors: 
+    <A HREF="mailto:simeon@fitch.net">Simeon H.K. Fitch</A>
+    </P>
+
+    <H2>Overview</H2> 
+
+    <P>Antidote is the <A
+    HREF="http://ant.apache.org/index.html">Ant</A> subproject
+    for developing a graphical user interface to facilitate the
+    efficient use of Ant. In general, its purpose is to allow the
+    quick generation, modification, and use of Ant build files,
+    helping the user define a build process and track down build
+    problems. It is not meant to be an IDE, but an enabler for the
+    powerful features available in Ant, particularly for novice
+    users, or users who want a rapid way of controlling their build
+    process.</P>
+
+
+    <H2>Status</H2>
+
+    <P>Antidote is still in the early stages of development, but does
+    have a set of usable features, including:</p>
+    <UL>
+      <LI>Reading Ant build files.</LI>
+      <LI>Selecting targets and executing them.</LI>
+      <LI>Context highlighted build status console.</LI>
+      <LI>Modification of (some) build file components.</LI>
+      <LI>Saving modified build file.</LI>
+    </UL>
+
+    <P>Current development tasks include:</p>
+    <UL>
+      <LI>A more complete set of target and task editing
+      capabilities.</LI>
+      <LI>A wizard for creating basic build files, including importing
+      existing code bases.</LI>
+      <LI>Better build progress monitoring.</LI>
+    </UL>
+
+    <P>The Antidote source distribution comes with requirements and
+    design documentation that better cover the details of application
+    architecture, how to develop against it, and what the long term
+    goals are. Furthermore, there is a <code>TODO</code> file listing
+    the detailed, near-term tasks that need accomplishing.</P>
+
+    <H2>Getting Involved</H2>
+
+    <P>The source code for Antidote is located in a separate Module 
+    (<a href="http://cvs.apache.org/viewcvs/ant-antidote/">ant-antidote</a>) in CVS.
+    All the existing documentation can
+    be found there where new contributors should read:</p>
+    <UL>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/design-overview.html">Design Overview</A></LI> 
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/gui-requirements.html">Feature List</A></LI>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/gui-ideas.txt">Idea Refinement</A></LI>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/new-module-howto.html">New Module HOWTO</A></LI>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/uml/index.html">Static Class Diagrams</A></LI>
+    </UL>
+
+    <P>Online discussions about Antidote occur on the <A
+    HREF="http://ant.apache.org/mail.html">Ant developer
+    mailing list</A>. The application infrastructure is fairly
+    complete, but there are almost unlimited opportunities for feature
+    contributions.</p>
+
+    <P>Aspiring contributors new to the project should
+    (carefully) read the following for details on the contribution
+    process:</p>
+    <UL>
+      <LI><A
+      HREF="http://jakarta.apache.org/site/getinvolved.html">Get
+      Involved</A></LI>
+      <LI><A
+      HREF="http://ant.apache.org/guidelines.html">Project
+      Guidelines</A></LI>
+      <LI><A HREF="http://jakarta.apache.org/site/source.html">Source
+      Repositories (how to contribute patches)</A></LI>
+    </UL>
+    
+
+    <HR>
+    <P ALIGN="center">Copyright &copy; 2001,2003 Apache Software Foundation. All
+    rights Reserved.</P>
+
+  </BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/Integration/VAJAntTool.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/Integration/VAJAntTool.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/Integration/VAJAntTool.html	(revision 14989)
@@ -0,0 +1,570 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Visual Age for Java Tasks and Plugin User Manual</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h2>Visual Age for Java Tasks and Plugin User Manual</h2>
+ <a name="authors"></A>by<UL>
+  <LI>Wolf Siberski
+      (siberski at kbs.uni-hannover.de)
+  <LI>Christoph Wilhelms
+      (christoph.wilhelms at tui.de)</LI>
+  <LI>Martin Landers
+      (martin.landers at bea.de)</LI>
+  <LI>Franï¿œis Rey
+      (francois dot rey at capco dot com)</LI></UL>
+Version 1.2.1 - 2003/01/16<br>
+<hr>
+<h2>Table of Contents</H2>
+<ul>
+  <li><A href="#introduction">Introduction</A>
+  <li><A href="#tasks">The Tasks</A><A href="#introduction"></A>
+  <ul>
+    <li><A href="#vajload">VAJLoad</A>
+    <li><A href="#vajexport">VAJExport</A>
+    <li><A href="#vajimport">VAJImport</A></LI></UL>
+  <li><A href="#sample_buildfile">A sample build file</A><br>
+  <li><A href="#plugin">The Plugin</A>
+  <ul>
+    <li><A href="#installation">Installation</A>
+    <li><A href="#usage">Usage</A> </LI></UL>
+  <li><A href="#faq">Frequently Asked Questions</A>
+  <li><A href="#va_versions">Visual Age Versions</A>
+  <li><A href="#history">History</A><A href="#history"></A> </LI></UL>
+
+<hr>
+<h2><a name="introduction"></A>Introduction</H2>
+<P>Visual Age for Java is a great Java IDE, but it lacks
+decent build support; for creating deliveries. On the other hand, Ant supports
+the build process very good, but is (at least at the moment) command line based.
+So we decided to write some tasks to access the VAJ repository and a small
+visual Ant frontend to make running Ant from VAJ possible. We use the Tool API
+to integrate Ant in VisualAge for Java. In combination with the VAJ tasks
+(vajload, vajexport, vajimport) you can load defined&nbsp;versions of projects
+into your workspace, export the source code, compile it with an external
+compiler and build a jar without leaving the IDE. Of course compile messages are
+viewed in a logging window. Concluding: This tool provides decent deployment
+support VAJ has not (out of the box).</P>
+<H3>What's new</H3>
+<table border="1" cellpadding="2" cellspacing="0" width="500">
+     <tr valign="top">
+       <td valign="top">2003/01/16</TD>
+       <td valign="top">
+      <UL>
+        <LI>Now works outside of VAJ.
+		<LI>Added attribute haltonerror, "*" and "**" version qualifiers.
+		<LI>Amended documentation (this file) accordingly.
+        </LI></UL></TD></TR>
+     <tr valign="top">
+       <td valign="top">2001/06/14</TD>
+       <td valign="top">
+      <UL>
+        <LI>Now all tasks can access VAJ via 'Remote Access
+        To Tool API'. Therefore builds containing VAJ tasks can also be executed
+        from the command line (Kudos to Glenn McAllister for describing the
+        concept and providing source code at
+        <A href="http://www7.software.ibm.com/vad.nsf/Data/Document4366">
+        http://www7.software.ibm.com/vad.nsf/Data/Document4366</A>.&nbsp;
+
+        <LI>It is possible to cancel a running&nbsp;build
+        executed from the plugin
+        <LI>Improved error handling in the plugin. Now all
+        errors should show up either in the log window or in the
+    console.</LI></UL></TD></TR></TABLE>
+
+<h2><a name="tasks"></A>The Tasks</H2>
+At the moment there are three tasks which help integrating the VAJ repository
+contents into an external build process:
+
+<table border="1" cellpadding="2" cellspacing="0" width="500">
+
+     <tr valign="top">
+       <td valign="top"><A href="#vajload">VAJLoad</A><br></TD>
+       <td valign="top"> loads specified versions into the workspace<br></TD></TR>
+     <tr valign="top">
+       <td valign="top"><A href="#vajexport">VAJExport</A><br></TD>
+       <td valign="top"> exports specified packages into the file system<br></TD></TR>
+     <tr valign="top">
+       <td valign="top"><A href="#vajimport">VAJImport</A><br></TD>
+       <td valign="top"> imports specified files into the workspace<br></TD></TR></TABLE>
+<P>These tasks are described in detail below.</P>
+
+
+<hr>
+
+<P></P>
+<h2><a name="vajload"></A>VAJLoad</H2>
+<h3>Description:</H3>
+<p>Loads a specified VAJ project version into the
+workspace.</P>
+
+<h3>Parameters</H3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+     <tr>
+       <td valign="top"><b>Attribute</B></TD>
+       <td valign="top"><b>Description</B></TD>
+       <td align="middle" valign="top"><b>Required</B></TD></TR>
+    <tr>
+       <td valign="top">remote</TD>
+       <td valign="top">
+      <P>name and port of a remote tool server. (format:
+      &lt;servername&gt;:&lt;port no&gt;).<BR>If this
+      attribute is set, the tasks will&nbsp;be executed on the specified tool
+      server.&nbsp;</P></TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr>
+       <td valign="top">haltonerror</B></TD>
+       <td valign="top">
+      <P>Stop the build process if an error occurs,
+         (default: "yes")</P></TD>
+       <td align="middle" valign="top">no</TD></TR></TABLE>
+
+<h3>Parameters specified as nested elements</H3>
+<h4>vajproject</H4>
+<table border="1" cellpadding="2" cellspacing="0">
+
+     <tr>
+       <td valign="top"><b>Attribute</B></TD>
+       <td valign="top"><b>Description</B></TD>
+       <td align="middle" valign="top"><b>Required</B></TD></TR>
+     <tr>
+       <td valign="top">name</TD>
+       <td valign="top">name of the VAJ project to load into
+      the workspace</TD>
+       <td valign="top" align="middle">yes</TD></TR>
+     <tr>
+       <td valign="top">version</TD>
+       <td valign="top"><P>name of the requested version,
+       or one of the special qualifiers "*" or "**"<BR>
+       "*" loads the latest <b>versioned</b> edition of the project<BR>
+       "**" will load the latest version (including open editions)</P></TD>
+       <td valign="top" align="middle">yes</TD></TR>
+     </TABLE>
+
+<h3>Example</H3>
+<pre>&lt;vajload remote="localhost:32767"&gt;
+    &lt;vajproject name="My App" version="*"/&gt;
+    &lt;vajproject name="My Testcases" version="**"/&gt;
+    &lt;vajproject name="JUnit" version="3.2"/&gt;
+&lt;/vajload&gt;
+</PRE>
+
+<hr>
+<h2><a name="vajexport"></A>VAJExport</H2>
+
+<h3>Description:</H3> border="1" cellpadding="2" cellspacing="0"
+<p>Exports Java source files, class files and/or resources from the workspace
+to the file system. Exports can be specified by giving the VAJ project
+name and package name(s). This works very similar to 
+<A href="../CoreTypes/fileset.html">FileSets</A>. </P>
+
+<h3>Parameters</H3>
+<table border="1" cellpadding="2" cellspacing="0">
+
+     <tr>
+       <td valign="top"><b>Attribute</B></TD>
+       <td valign="top"><b>Description</B></TD>
+       <td align="middle" valign="top"><b>Required</B></TD></TR>
+     <tr>
+       <td valign="top">destdir</TD>
+       <td valign="top">location to store the exported
+files</TD>
+       <td valign="top" align="middle">yes</TD></TR>
+     <tr>
+       <td valign="top">exportSources</TD>
+       <td valign="top">export source files (default:
+"yes")</TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr valign="top">
+       <td valign="top">exportResources</TD>
+       <td valign="top">export resource files (default:
+    "yes")</TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr valign="top">
+       <td valign="top">exportClasses</TD>
+       <td valign="top">export class files (default: "no")</TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr valign="top">
+       <td valign="top">exportDebugInfo</TD>
+       <td valign="top">include debug info in exported class
+      files (default: "no")</TD>
+       <td valign="top" align="middle">no</TD></TR>
+  <TR>
+    <TD vAlign=top>defaultexcludes</TD>
+    <TD vAlign=top> border="1" cellpadding="2" cellspacing="0"
+      <P>use default excludes when exporting (default: "yes").<BR>Default excludes are:&nbsp;IBM*/**, Java
+      class libraries/**, Sun class libraries*/**, JSP Page Compile Generated
+      Code/**, VisualAge*/**&nbsp;</P></TD>
+    <TD vAlign=top align="middle">no</TD></TR>
+     <tr valign="top">
+       <td valign="top">overwrite</TD>
+       <td valign="top">  overwrite existing files (default:
+      "yes")</TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr>
+       <td valign="top">remote</TD>
+       <td valign="top">
+      <P>name and port of a remote tool server. (format:
+      &lt;servername&gt;:&lt;port no&gt;).<BR>If this
+      attribute is set, the tasks will&nbsp;be executed on the specified tool
+      server.&nbsp;</P></TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr>
+       <td valign="top">haltonerror</B></TD>
+       <td valign="top">
+      <P>Stop the build process if an error occurs,
+         (default: "yes")</P></TD>
+       <td align="middle" valign="top">no</TD></TR></TABLE>
+
+<h3>Parameters specified as nested elements</H3>
+
+<h4>include</H4>
+specifies the packages to include into the export
+
+<table border="1" cellpadding="2" cellspacing="0">
+
+     <tr>
+       <td valign="top"><b>Attribute</B></TD>
+       <td valign="top"><b>Description</B></TD>
+       <td align="middle" valign="top"><b>Required</B></TD></TR>
+     <tr>
+       <td valign="top">name</TD>
+       <td valign="top">name of the VAJ project and package to export.<br>
+              The first element of the name must be the project name, <br>
+              then the package name elements
+      separated by '/'.</TD>
+       <td valign="top">yes</TD></TR></TABLE>
+
+<h4>exclude</H4>
+specifies the packages to exclude from the export<br>
+
+<table border="1" cellpadding="2" cellspacing="0">
+
+     <tr>
+       <td valign="top"><b>Attribute</B></TD>
+       <td valign="top"><b>Description</B></TD>
+       <td align="middle" valign="top"><b>Required</B></TD></TR>
+     <tr>
+       <td valign="top">name</TD>
+       <td valign="top">name of the VAJ project/package not to
+      export</TD>
+       <td valign="top" align="middle">yes</TD></TR></TABLE>
+
+<h3>Example</H3>
+<pre>&lt;vajexport destdir="${src.dir}" exportResources="no"&gt;
+    &lt;include name="MyProject/**"/&gt;
+    &lt;exclude name="MyProject/test/**"/&gt;
+&lt;/vajexport&gt;
+</PRE>
+This example exports all packages in the VAJ project 'MyProject', except
+packages starting with 'test'.
+<h3>Default Excludes</H3>
+The default excludes are:<br>
+<pre>   IBM*/**
+    Java class libraries/**
+    Sun class libraries*/**
+    JSP Page Compile Generated Code/**
+    VisualAge*/**
+</PRE>
+<hr>
+<h2><a name="vajimport"></A>VAJImport</H2>
+
+<h3>Description:</H3>
+<p>Imports Java source files, class files and/or resources
+from the file system into VAJ. These imports can be specified with a fileset.
+</P>
+<h3>Parameters</H3>
+<table border="1" cellpadding="2" cellspacing="0">
+
+     <tr>
+       <td valign="top"><b>Attribute</B></TD>
+       <td valign="top"><b>Description</B></TD>
+       <td align="middle" valign="top"><b>Required</B></TD></TR>
+     <tr>
+       <td valign="top">project</TD>
+       <td valign="top">imported files are added to this VAJ
+      project</TD>
+       <td valign="top" align="middle">yes</TD></TR>
+     <tr>
+       <td valign="top">importSources</TD>
+       <td valign="top">import source files (default:
+"yes")</TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr valign="top">
+       <td valign="top">importResources</TD>
+       <td valign="top">import resource files (default:
+    "yes")</TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr valign="top">
+       <td valign="top">importClasses</TD>
+       <td valign="top">import class files (default: "no")</TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr>
+       <td valign="top">remote</TD>
+       <td valign="top">
+      <P>name and port of a remote tool server. (format:
+      &lt;servername&gt;:&lt;port no&gt;).<BR>If this
+      attribute is set, the tasks will&nbsp;be executed on the specified tool
+      server.&nbsp;</P></TD>
+       <td valign="top" align="middle">no</TD></TR>
+     <tr>
+       <td valign="top">haltonerror</B></TD>
+       <td valign="top">
+      <P>Stop the build process if an error occurs,
+         (default: "yes")</P></TD>
+       <td align="middle" valign="top">no</TD></TR></TABLE>
+
+<h3>Parameters specified as nested elements</H3>
+
+<h4>fileset</H4>
+A <A href="index.html#fileset">FileSet</A> specifies the files to import.
+
+<h3>Example</H3>
+<pre>&lt;vajimport project="Test" importClasses="true"&gt;
+    &lt;fileset dir="${import.dir}"&gt;
+        &lt;include name="com/sample/**/*.class"/&gt;
+        &lt;exclude name="com/sample/test/**"/&gt;
+    &lt;/fileset&gt;
+&lt;/vajimport&gt;
+</PRE>
+This example imports all class files in the directory ${import.dir}/com/sample
+excluding those in the subdirectory test<br>
+
+<hr>
+<h2><a name="sample_buildfile"></A>The
+Plugin</H2>
+The tasks are usable within VAJ by running the
+org.apache.tools.ant.Main class, but this is
+quite inconvenient. Therefore a small GUI is
+provided which allows selecting a build file
+and executing its targets. This Plugin is accessible
+from the VAJ Tools menu (see <A href="#usage">Usage</A>).
+
+<hr>
+<h2><a name="installation"></A>Installation</H2>
+<p>We assume <CODE>C:\IBMVJava</CODE> as VAJ
+install directory. If You have installed it elsewhere, adapt the pathes below.
+<h3>Plugin</H3>
+<ul>
+  <li>Create the directory <CODE>
+      C:\IBMVJava\ide\tools\org-apache-tools-ant</CODE>.
+  <li>Expand in that directory all the jars contained in the <code>lib</CODE>
+      directory of your Ant  installation.
+  <li>copy <CODE>default.ini</CODE> (in <CODE>
+      org\apache\tools\ant\taskdefs\optional\ide</CODE>)     to <CODE>
+      C:\IBMVJava\ide\tools\org-apache-tools-ant\default.ini</CODE>.
+
+  <li>if you want to access this help from the Workbench, create the
+      directory <CODE> C:\IBMVJava\ide\tools\org-apache-tools-ant\doc</CODE>
+      and copy the files     <CODE>VAJAntTool.html</CODE>,
+      <CODE>toolmenu.gif</CODE> and     <CODE>
+      anttool1.gif</CODE> to it.
+  <li>VAJ has to be restarted to recognize the new tool.
+  <li>Now if You open the context menu of a project, You should see the entry
+     'Ant Build' in the Tools submenu (see <A href="#usage">Usage</A>).
+  <li>Make sure the tool works as expected. </LI></UL>
+  <h3>Servlets for Remote Tool Access</H3>
+<UL>
+  <LI>
+                   For
+        a good introduction into the VAJ Remote Tool Access see the
+        great introduction from Glenn McAllister at
+        <A href="http://www7.software.ibm.com/vad.nsf/Data/Document4366">
+        http://www7.software.ibm.com/vad.nsf/Data/Document4366</A>.&nbsp;It
+  is highly recommended to read this article before doing the installation (to
+  understand what you do :-) ).
+  <LI>insert the following lines into
+  <code>C:\IBMVJava\ide\tools\com-ibm-ivj-toolserver\servlets\servlet.properties</CODE>.
+  Typically this file is empty. If not, be careful not to delete the other lines.
+  <table cellpadding="0" cellspacing="0" border="0" width="500">
+     <tr valign="top">
+       <td valign="top">
+<PRE>servlet.vajload.code=org.apache.tools.ant.taskdefs.optional.ide.VAJLoadServlet
+servlet.vajexport.code=org.apache.tools.ant.taskdefs.optional.ide.VAJExportServlet
+servlet.vajimport.code=org.apache.tools.ant.taskdefs.optional.ide.VAJImportServletName<PRE>
+</TD></TR></TABLE>
+  <LI>Expand the Ant libraries (<code>ant.jar</CODE> and <code>optional.jar</CODE>
+  contained in the <code>lib</CODE> directory of your Ant installation) to the directory
+  <code>C:\IBMVJava\ide\tools\com-ibm-ivj-toolserver\servlets\</CODE>.
+  <LI>configure the Remote Access (via
+  Window-&gt;Options..., then choose 'Remote Access To Tool API') as shown in
+  the following picture:</LI></UL>
+  <P align=center><IMG height=645 alt="" src="remacc.gif"
+ width=587 border=0 ></P>
+<P>Now you should be able to execute VAJ Tasks from the
+command line.</P>
+
+<hr>
+<h2><a name="usage"></A>Usage</H2>
+<H3>Plugin</H3>
+<P>
+ When the tool is installed correctly and your Ant build
+file is configured, it is really easy to use.<br>
+Go to your Workbench, select the project you want to deploy and
+open its context menu. In the submenu <i>Tools</I> you should find
+the new entry <i>Ant Build</I>. Klick it to start the tool! </P>
+
+<center><IMG height=246 src="toolmenu.gif" width=393 border=0></CENTER>
+           After a short time this frame should pop up:
+<center><IMG height=241 alt=""
+ src="anttool1.gif"
+ width=389 border=0></CENTER>
+           This frame contains the following elements:
+<ul>
+  <li>A menubar with some options described later
+  <li>The name of your selected VAJ project
+  <li>An entry field for the Ant XML buildfile with a browse
+  [...] button. The full qualified filename, including the directory is needed
+  here.
+  <li>A list with tasks specified in the buildfile. Until your first save of
+      the build info (described later), this list will be empty. When loading
+      a build file by the ( <EM>Re)Load&nbsp;</EM> button, this list
+      is filled with all tasks which have a description attribute. The
+      task you select in this list will be executed when pressing the
+      <EM>Execute&nbsp;</EM> button.
+  <li>A pulldown box for specifying the log level.
+  <li>Four buttons. Two of them I have already
+  described. The other are the <EM>Stop</EM> button to cancel a running build
+  and the third one is just the <EM>Close</EM> button to exit our small tool!
+  <li>Note that the build is canceled on the next console
+  output after pressing the <EM>Stop</EM> button, not
+  directly after pressing it.</LI></UL>
+<P>
+After you have set up your buildprocess you might find it useful
+to save the data you've just entered, so we implemented an option to
+save it to the  repository into your selected project. Make sure that you
+have an open edition of your project before selecting
+<i>Save
+BuildInfo To Repository</I> from  the <i>File</I> menu.
+Now your information is saved to this edition of your  project and will
+be loaded automatically the next time you start <i>Ant Build</I>.<br>
+If you have closed the log window accidentally, it can be reopened
+with the <i>Log</I> item in the <i>File</I> menu, and if you want to
+know who developed this, just select <i>About</I> in the <i>Help</I> menu. </P>
+<H3>Servlets for Remote Tool Access</H3>
+<P>With the servlets installed and the remote access
+running you can use Ant from the command line without any restrictions. Just
+make sure the remote attribute in your build file is set correctly.</P>
+<hr>
+<h2><a name="faq"></A>Frequently Asked
+Questions</H2>
+<P><STRONG>Q: If I try to load a build
+file, I get the error "Can't load default task list". Why?</STRONG><br>
+A: Ant not only contains class files, but also resource
+files. This messsage appears if the file
+<BR>.../org/apache/tools/ant/taskdefs/defaults.properties is
+missing. Make sure that you import/export not only java/class files, but also
+all resource files when importing/exporting Ant.</P>
+<P><STRONG>Q: If I try to re-load a build
+file, I get the error "XML parser factory has not been configured correctly". Why?</STRONG><br>
+A: Make sure the META-INF/services directory of the <code>xercesImpl.jar</CODE> has also been expanded
+into the <CODE>C:\IBMVJava\ide\tools\org-apache-tools-ant</CODE> directory.</P>
+<P><STRONG>Q: I want to load, export
+and build more then one Visual Age project to one jar! How to?</STRONG><br>
+A: The VA tasks are able to load and export several
+Projects all at once. You can choose whatever project you like for storing the
+tool information, it doesn't really matter </P>
+<p><STRONG>Q: When I load my build
+file, the list of targets is empty. Why?</STRONG><br>
+A: You
+need to add the optional "description" parameter to the targets you want to come
+up in the list. Then reload the build file in the "ant build" tool. We chose to
+display only targets with description to allow the build file developer to
+distinguish between targets for end users and helper targets. </P>
+<p><STRONG>Q: Is there a sample build
+file available? </STRONG><br>
+A: Now you can find an <A href="#sample_buildfile">example</A> in this manual </P>
+<p><STRONG>Q: Why does it export my
+entire workspace when I've already implicitly selected a project when starting
+the Tool?</STRONG><br>
+A: This selection does not carry into
+the buildfile you are using. Set the Project name at the beginning of the
+"includes" parameter. </P>
+<p><STRONG>Q: When I import Ant into
+my Workspace, I get Problems reported. Can I ignore them?</STRONG><br>
+A: It depends on the problems reported, and what you want to do with Ant.
+Problems you can't ignore:
+<ul>
+  <li>Classes from javax.xml.parser missing - install a compatible parser
+      (see <A href="#installation">installation</A>)
+  <li>Classes from com.ibm.ivj.util missing - install the Visual Age IDE
+      Utility feature  (see <A href="#installation">installation</A>).
+  <li>Errors in optional tasks you use within your build
+  file</LI></UL>
+<br>
+
+<p><STRONG>Q: I want to use the same
+buildfile both within Visual Age and from the command line using my regular Ant
+environment. What do I need to be aware of?</STRONG><br>
+A:
+You have to specifie a remote server via the 'remote' attribute. Otherwise the
+three Visual Age tasks won't work when executing Ant from the command line. </P>
+
+<p><STRONG>Q: I can export packages
+from project 'ABC', but not from project 'XYZ'! Why?</STRONG><br>
+A: Common reasons are:</P>
+<UL>
+<li>The project is excluded by the default excludes (see
+  attribute 'defaultexcludes' of VAJExport)
+<li>When looking at the project in the workspace, it is
+  often difficult to distinguish between project name and version name (e.g. as
+  in 'My GUI Components Java 2 3.5'). Check if you have the right project name
+  by switching off the version name display temporarilly.</LI></UL>
+<p><STRONG>Q: How do I control the
+import/export of sourcefiles, compiled files and project resources
+explicity?</STRONG><br>
+A: Via the Boolean values
+exportClasses (default false) exportSources (default true) and exportResources
+(default true). In some situations, Resources are not exported correctly without
+this being explicity set. VAJ doesn't export resources correctly if a package
+contains only resources (see below).</P>
+<hr>
+<h2><a name="known_problems"></A>Known
+Problems</H2>
+<ul>
+  <li>Exporting a package containing just resources doesn't
+  work. This is a VAJ Tool API bug. Workaround: create a dummy class and set
+  'exportSources' to false. </LI></UL>
+<hr>
+
+<h2><a name="va_versions"></A>VisualAge
+for Java Versions</H2>
+This tool integration has been tested with versions 3.02 and 3.5
+of VisualAge for Java. It should run with the 2.x Versions, too, but
+we didn't try. The graphical user interface is built with AWT so it is
+JDK independent by now.
+<hr>
+
+<h2><a name="history"></A>History</H2>
+<table border="1" cellpadding="2" cellspacing="0" width="400">
+     <tr valign="top">
+       <td valign="top">1.0</TD>
+       <td valign="top">2000/09/11</TD>
+       <td valign="top">Initial Version</TD></TR>
+  <TR>
+    <TD vAlign=top>1.1</TD>
+    <TD vAlign=top>2001/02/14</TD>
+    <TD vAlign=top>Added Task documentation and more FAQs
+      (thanks to Richard Bourke for the FAQ additions) </TD></TR>
+     <tr valign="top">
+       <td valign="top">1.2</TD>
+       <td valign="top">2001/07/02</TD>
+       <td valign="top">
+       <P>Added documentation of new remote feature.<BR>Minor corrections.</P></TD></TR>
+     <tr valign="top">
+       <td valign="top">1.2.1</TD>
+       <td valign="top">2003/01/16</TD>
+       <td valign="top">
+       <P>Added documentation for haltonerror, "*" and "**" version qualifiers.</P></TD></TR></TABLE>
+<hr>
+<center>Copyright &copy 2001-2004 The Apache Software
+Foundation. All rights Reserved.</CENTER>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/Integration/jext-plugin.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/Integration/jext-plugin.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/Integration/jext-plugin.html	(revision 14989)
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Apache AntWork Plugin for the Jext - Java Text Editor</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h1>AntWork Plugin for the Jext - Java Text Editor</h1>
+ <a name="authors"></a>by<ul>
+  <li>Klaus Hartlage
+      (<a href="mailto:KHartlage@t-online.de">KHartlage@t-online.de</a>)</li>
+</ul>
+<p>Version $Revision$ - $Date$</p>
+<hr>
+
+<p>You can download the plugin at: <a
+href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a></p>
+
+<h2>Installation instructions from the Readme.txt:</h2>
+
+<p>You have to enable the Jext Console to see the Ant output (menu:
+Edit-&gt;Options... - General Panel), because the Ant messages are
+redirected to the Jext console.</p>
+
+<p>You can configure the Ant call in the Jext menu: Edit-&gt;Options... -
+Plugin Options - Antwork Plugin Panel; here you can set the ant home
+directory and the path to your build file.</p>
+
+<p>You can start AntWork in the menu: Plugins-&gt;Ant-&gt;Work Now!  In the
+appearing dialog box you can enter the target which you want to
+compile.</p>
+
+<p>If a javac error occurs in the ant run an error-list opens within
+Jext. With a double-click on the error-message you jump to the error
+in the specified java text file.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/LICENSE	(revision 14989)
@@ -0,0 +1,16 @@
+/* 
+ * Copyright  2000-2002,2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ * 
+ */
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/BorlandEJBTasks.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/BorlandEJBTasks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/BorlandEJBTasks.html	(revision 14989)
@@ -0,0 +1,129 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Borland EJB Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="log">BorlandDeploy</a>Tool</h2>
+<p>by Benoit Moussaud (<a href="mailto:benoit.moussaud@criltelecom.com">benoit.moussaud@criltelecom.com</a>)</p>
+
+
+<h3>Description</h3>
+<p>The BorlandDeployTool is a vendor specific nested element for the Ejbjar optional task.</p>
+<p>BorlandDeploymentTool is dedicated to the Borland Application Server 4.5.x and Borland
+  Enterprise Server 5.x. It  generates and compiles the stubs and skeletons for all ejb described into the
+  Deployment Descriptor, builds the jar file including the support files and
+  verify whether the produced jar is valid or not.</p>
+
+<p>Benoit Moussaud maintains a separate <a
+href="http://www.moussaud.org/ejbjar.html">FAQ</a> for this task at
+his homepage.</p>
+
+<h3>Borland element</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top" width="63"><b>Attribute</b></td>
+    <td valign="top" width="915"><b>Description</b></td>
+    <td align="center" valign="top" width="62"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">destdir</td>
+    <td valign="top" width="915">The base directory into which the generated borland
+      ready jar files are deposited</td>
+    <td align="center" valign="middle" width="62">yes</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">debug</td>
+    <td valign="top" width="915">If true, turn on the debug mode for each borland
+      tools (java2iiop, iastool ...) default = false</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">verify</td>
+    <td valign="top" width="915">If true, turn on the verification at the end
+      of the jar production (default = false)</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">verifyargs</td>
+    <td valign="top" width="915">extra parameter for verify command</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">suffix</td>
+    <td valign="top" width="915">String value appended to the basename of the
+      deployment descriptor to create the filename of the Borland EJB jar file.</td>
+    <td align="center" valign="middle" width="62">No, defaults to '-ejb.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">basdtd</td>
+    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
+      DTD which covers the Borland specific deployment descriptors.
+      This should not be necessary if you have borland in your classpath. If you
+      do not, you should use a nested
+      <a href="ejb.html#ejbjar-dtd">&lt;dtd&gt;</a> element, described
+      in the ejbjar task documentation.</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">ejbdtd</td>
+    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
+      ejb-jar DTD in the class hierarchy. This should not be necessary
+      if you have borland in your classpath. If you do not, you should use a
+      nested <a href="ejb.html#ejbjar-dtd">&lt;dtd&gt;</a> element,
+      described in the ejbjar task
+      documentation. </td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">generateclient </td>
+    <td valign="top" width="915">If true, turn on the generation of the corresponding
+      ejbjar (default = false)</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">version</td>
+    <td valign="top" width="915">set the Borland Application Version.
+            <ul>
+              <li>4 means B.A.S (Borland Application Server) 4.x, target will add ejb-inprise.xml file</li>
+              <li>5 means B.E.S (Borland Application Server) 5.x, target will add ejb-borland.xml file</li>
+            </ul>
+          </td>
+    <td align="center" valign="middle" width="62">No, defaults to 4</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">java2iiopParams </td>
+    <td valign="top" width="915">If filled, the params are added to the java2iiop command (ex: -no_warn_missing_define)</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+<p>The following build.xml snippet is an example of how to use Borland element
+  into the ejbjar task</p>
+<pre>    &lt;ejbjar srcdir=&quot;${build.classes}&quot; basejarname=&quot;vsmp&quot; descriptordir=&quot;${rsc.dir}/hrmanager&quot;&gt;
+        &lt;borland destdir=&quot;lib&quot; verify=&quot;on&quot; generateclient=&quot;on&quot; version=&quot;5&quot;&gt;
+          &lt;classpath refid=&quot;classpath&quot;/&gt;
+        &lt;/borland&gt;
+        &lt;include name=&quot;**\ejb-jar.xml&quot;/&gt;
+        &lt;support dir=&quot;${build.classes}&quot;&gt;
+          &lt;include name=&quot;demo\*.class&quot;/&gt;
+          &lt;include name=&quot;demo\helper\*.class&quot;/&gt;
+         &lt;/support&gt;
+     &lt;/ejbjar&gt;</pre>
+<pre>The borland element will generate into the lib dir an ejb jar file using the deployment descriptor placed into the ${rsc.dir}/hrmanager directory.
+The verify phase is turned on and the generate client phase as well.
+</pre>
+
+<h3>&nbsp;</h3>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/BorlandGenerateClient.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/BorlandGenerateClient.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/BorlandGenerateClient.html	(revision 14989)
@@ -0,0 +1,77 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>BorlandGenerateClient Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="log">BorlandGenerateClient</a></h2>
+<p>by Benoit Moussaud (<a href="mailto:benoit.moussaud@criltelecom.com">benoit.moussaud@criltelecom.com</a>)</p>
+<h3>Description</h3>
+<p>The BorlandGenerateClient is a task dedicated to Borland Application Server
+  v 4.5. It offers to generate the client jar file corresponding to an ejb jar
+  file.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top" width="63"><b>Attribute</b></td>
+    <td valign="top" width="915"><b>Description</b></td>
+    <td align="center" valign="top" width="62"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">ejbjar</td>
+    <td valign="top" width="915">ejb jar file</td>
+    <td align="center" valign="middle" width="62">yes</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">debug</td>
+    <td valign="top" width="915">If true, turn on the debug mode for each borland
+      tools (java2iiop, iastool ...) default = false</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">clientjar</td>
+    <td valign="top" width="915">client jar file name. If missing the client jar
+      file name is build using the ejbjar file name: ejbjar = hellobean-ejb.jar
+      =&gt; hellobean-ejbclient.jar</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">mode</td>
+    <td valign="top" width="915">choose the command launching mode. Two values:
+      java or fork. default = fork. java is not supported for version=5.Possibility to specify a classpath.</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">version</td>
+    <td valign="top" width="915">set the Borland Application Version.
+            <ul>
+              <li>4 means B.A.S (Borland Application Server 4.x)</li>
+              <li>5 means B.E.S (Borland Application Server 5.x)</li>
+            </ul>
+          </td>
+    <td align="center" valign="middle" width="62">No, defaults to 4</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p>The following build.xml snippet is an example of how to use Borland element
+   into the ejbjar task using the java mode.</p>
+<pre>
+&lt;blgenclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot; debug=&quot;true&quot; mode=&quot;fork&quot;&gt; version=&quot;5&quot;&gt;
+    &lt;classpath&gt;
+        &lt;pathelement locacation=&quot;mymodule.jar&quot;/&gt;
+    &lt;/classpath&gt;
+&lt;/blgenclient&gt;
+</pre>
+<pre>&nbsp;</pre>
+
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/antlr.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/antlr.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/antlr.html	(revision 14989)
@@ -0,0 +1,187 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>ANTLR Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="antlr">ANTLR</a></h2>
+<h3>Description</h3>
+<p>
+  Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a> Translator generator
+  on a grammar file.
+</p>
+<p>
+  To use the ANTLR task, set the <i>target</i> attribute to the name of the
+  grammar file to process.  Optionally, you can also set the
+  <i>outputdirectory</i> to write the generated file to a specific directory.
+  Otherwise ANTLR writes the generated files to the directory containing
+  the grammar file.
+</p>
+<p>
+  This task only invokes ANTLR if the grammar file (or the
+  supergrammar specified by the glib attribute) is newer than the
+  generated files.
+</p>
+<p>Antlr 2.7.1 Note:
+<i>
+  To successfully run ANTLR, your best option is probably to build the whole
+  jar with the provided script <b>mkalljar</b> and drop the resulting jar (about 300KB)
+  into ${ant.home}/lib. Dropping the default jar (70KB) is probably not enough
+  for most needs and your only option will be to add ANTLR home directory
+  to your classpath as described in ANTLR <tt>install.html</tt> document.
+</i>
+</p>
+<p>Antlr 2.7.2 Note:
+<i>
+  Instead of the above, you will need antlrall.jar that can be created
+  by the <b>antlr-all.jar</b> target of the Makefile provided with the
+  download.
+</i>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The grammar file to process.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">outputdirectory</td>
+    <td valign="top">
+      The directory to write the generated files to.  If not set, the files
+      are written to the directory containing the grammar file.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">glib</td>
+    <td valign="top">
+      An optional super grammar file that the target grammar overrides.  This
+      feature is only needed for advanced vocabularies.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">
+      When set to "yes", this flag adds code to the generated parser that will
+      launch the ParseView debugger upon invocation.  The default is "no".
+      <br>
+      Note: ParseView is a separate component that needs to be installed or your
+      grammar will have compilation errors.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">html</td>
+    <td valign="top">
+      Emit an html version of the grammar with hyperlinked actions.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">diagnostic</td>
+    <td valign="top">
+      Generates a text file with debugging infomation based on the target grammar.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">trace</td>
+    <td valign="top">
+      Forces <b>all</b> rules to call traceIn/traceOut if set to "yes".
+      The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">traceParser</td>
+    <td valign="top">
+      Only forces parser rules to call traceIn/traceOut if set to "yes".
+      The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">traceLexer</td>
+    <td valign="top">
+      Only forces lexer rules to call traceIn/traceOut if set to "yes".
+      The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">traceTreeWalker</td>
+    <td valign="top">
+      Only forces tree walker rules to call traceIn/traceOut if set to
+      "yes".  The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <!--tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run ANTLR in a separate VM.</td>
+    <td align="center" valign="top">No, default is &quot;off&quot;</td>
+  </tr-->
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to invoke the VM in. <!--(ignored if
+      fork is disabled)--></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+
+<p><code>ANTLR</code> supports a nested <code>&lt;classpath&gt;</code>
+element, that represents a <a href="../using.html#path">PATH like
+structure</a>. It is given as a convenience if you have to specify
+the original ANTLR directory. In most cases, dropping the appropriate
+ANTLR jar in the normal Ant lib repository will be enough.</p>
+
+<h4>jvmarg</h4>
+
+<p><!--If fork is enabled, -->Additional parameters may be passed to the new
+VM via nested <code>&lt;jvmarg&gt;</code> attributes, for example:</p>
+
+<pre>
+&lt;antlr target="..."&gt;
+  &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
+  ...
+&lt;/antlr&gt;
+</pre>
+
+<p>would run ANTLR in a VM without JIT.</p>
+
+<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
+href="../using.html#arg">Command line arguments</a>.</p>
+
+<h3>Example</h3>
+<blockquote><pre>
+&lt;antlr
+    target=&quot;etc/java.g&quot;
+    outputdirectory=&quot;build/src&quot;
+/&gt;
+</pre></blockquote>
+<p>
+  This invokes ANTLR on grammar file etc/java.g, writing the generated
+  files to build/src.
+</p>
+<hr>
+
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/attrib.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/attrib.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/attrib.html	(revision 14989)
@@ -0,0 +1,106 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="attrib">Attrib</a></h2>
+<p><em>Since Ant 1.6.</em></p>
+<h3>Description</h3>
+
+<p>Changes the attributes of a file or all files inside specified
+directories.  Right now it has effect only under Windows. Each of the
+4 possible permissions has its own attribute, matching the arguments
+for the attrib command.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s, 
+<a href="../CoreTypes/dirset.html">DirSet</a>s or <a
+href="../CoreTypes/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
+<code>&lt;filelist&gt;</code> elements.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory of which the permissions must be
+    changed.</td>
+    <td valign="top" valign="middle">Yes or nested
+    <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">readonly</td>
+    <td valign="top">the readonly permission.</td>
+    <td valign="top" rowspan="4">at least one of the four. </td>
+  </tr>
+  <tr>
+    <td valign="top">archive</td>
+    <td valign="top">the archive permission.</td>
+  </tr>
+  <tr>
+    <td valign="top">system</td>
+    <td valign="top">the system permission.</td>
+  </tr>
+  <tr>
+    <td valign="top">hidden</td>
+    <td valign="top">the hidden permission.</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or <i>both</i>. If set to
+      <i>file</i>, only the permissions of plain files are going to be changed.
+      If set to <i>dir</i>, only the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;attrib file=&quot;${dist}/run.bat&quot; readonly=&quot;true&quot; hidden=&quot;true&quot;/&gt;</code></p>
+</blockquote>
+<p>makes the &quot;run.bat&quot; file read-only and hidden.</p>
+<blockquote>
+  <pre>&lt;attrib readonly=&quot;false&quot;&gt;
+  &lt;fileset dir=&quot;${meta.inf}&quot; includes=&quot;**/*.xml&quot;/&gt;
+&lt;attrib&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.xml&quot; files below <code>${meta.inf}</code> readable.</p>
+<blockquote>
+  <pre>
+&lt;attrib readonly=&quot;true&quot; archive=&quot;true&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/attrib&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those below any
+  directory named trial) read-only and archived. In addition all files belonging
+  to a FileSet with <code>id</code> <code>other.shared.sources</code> get the
+  same attributes.</p>
+<hr>
+<p align="center">Copyright &copy; 2002-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/cab.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/cab.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/cab.html	(revision 14989)
@@ -0,0 +1,151 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Cab Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="cab">Cab</a></h2>
+<h3>Description</h3>
+<p>The cab task creates Microsoft cab archive files.  It is invoked
+similar to the <a href="../CoreTasks/jar.html">jar</a> or <a href="../CoreTasks/zip.html">zip</a> tasks.
+This task will work on Windows using the external cabarc tool (provided by Microsoft)
+which must be located in your executable path.</p>
+<p>To use this task on other platforms you need to download and compile libcabinet from
+<a href="http://trill.cis.fordham.edu/~barbacha/cabinet_library/">
+http://trill.cis.fordham.edu/~barbacha/cabinet_library/</a>.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
+tasks</a>, on how the inclusion/exclusion of files works, and how to
+write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>basedir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">cabfile</td>
+    <td valign="top">the name of the cab file to create.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory to start archiving files from.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">set to &quot;yes&quot; if you want to see the output from
+      the cabarc tool.  defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">set to &quot;no&quot; to store files without compressing.
+      defaults to &quot;yes&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">options</td>
+    <td valign="top">use to set additional command-line options for
+      the cabarc tool.  should not normally be necessary.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that
+      must be included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that
+      must be excluded. No files (except default excludes) are excluded
+      when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used
+      or not (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+
+<p>The cab task supports any number of nested <a
+href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>
+elements to specify the files to be included in the archive.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;
+  /&gt;
+</pre></blockquote>
+<p>cabs all files in the htdocs/manual directory into a file called
+manual.cab in the ${dist} directory.</p>
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;
+     excludes=&quot;mydocs/**, **/todo.html&quot;
+  /&gt;
+</pre></blockquote>
+<p>cabs all files in the htdocs/manual directory into a file called
+manual.cab in the ${dist} directory. Files in the directory mydocs,
+or files with the name todo.html are excluded.</p>
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;
+     includes=&quot;api/**/*.html&quot;
+     excludes=&quot;**/todo.html&quot;
+     verbose=&quot;yes&quot;
+  /&gt;
+</pre></blockquote>
+<p>Cab all files in the htdocs/manual directory into a file called
+manual.cab in the ${dist} directory. Only html files under the
+directory api are archived, and files with the name todo.html are
+excluded. Output from the cabarc tool is displayed in the build
+output.</p>
+
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     verbose=&quot;yes&quot;&gt;
+  &lt;fileset
+       dir=&quot;htdocs/manual&quot;
+       includes=&quot;api/**/*.html&quot;
+       excludes=&quot;**/todo.html&quot;
+  /&gt;
+&lt;/cab&gt;
+</pre></blockquote>
+<p>is equivalent to the example above.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ccm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ccm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ccm.html	(revision 14989)
@@ -0,0 +1,259 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Continuus Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h1>Continuus Support</h1>
+<ul>
+  <li><a href="#ccmheckin">CCMCheckin</a></li>
+  <li><a href="#ccmcheckout">CCMCheckout</a></li>
+  <li><a href="#ccmcheckintask">CCMCheckinTask</a></li>
+  <li><a href="#ccmreconfigure">CCMReconfigure</a></li>
+  <li><a href="#ccmcreatetask">CCMCreateTask</a></li>
+</ul>
+
+<p>These ant tasks are wrappers around Continuus Source Manager. They have been tested 
+  agains versions 5.1/6.2 on Windows 2000, but should work on other platforms with ccm installed.</p>
+<p>author: <a href="mailto:benoit.moussaud@criltelecom.com">Benoit Mousaud (benoit.moussaud@criltelecom.com) </a></p>
+<hr>
+<h2><a name="ccmheckin">CCMCheckin</a></h2>
+<h3>Description</h3>
+Task to checkin a file
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0" width="598">
+  <tr> 
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr> 
+    <td>file</td>
+    <td>Path to the file that the command will operate on</td>
+    <td>Yes</td>
+  </tr>
+  <tr> 
+    <td>comment</td>
+    <td>Specify a comment. Default is &quot;Checkin&quot; plus the date</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>task</td>
+    <td>Specify the task number used to check in the file (may use 'default')</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>ccmdir</td>
+    <td>path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table> 
+<h3>Examples</h3>
+<blockquote>
+  <pre>&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot;
+        comment=&quot;mycomment&quot;/&gt;
+</pre>
+</blockquote>
+<p>Checks in the file <i>c:/wa/com/foo/MyFile.java</i>. 
+  Comment attribute <i>mycomment</i> is added as a task comment. The task 
+  used is the one set as the default.</p>
+<hr>
+<a name="ccmcheckout"></a><h2>CCMCheckout</h2>
+<h3>Description</h3>
+Task to perform a Checkout command to Continuus 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0" width="614">
+  <tr> 
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr> 
+    <td>file</td>
+    <td>Path to the file that the command will operate on</td>
+    <td rowspan=2">Yes (file|fileset)</td>
+  </tr>
+  <tr> 
+    <td>fileset</td>
+    <td>filset containing the file to be checked out</td>
+  </tr>
+  <tr> 
+    <td>comment</td>
+    <td>Specify a comment.</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>task</td>
+    <td>Specify the task number used to checkin the file (may use 
+      'default')</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>ccmdir</td>
+    <td>path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote> 
+  <pre>&lt;ccmcheckout file=&quot;c:/wa/com/foo/MyFile.java&quot;
+        comment=&quot;mycomment&quot;/&gt;
+</pre>
+</blockquote>
+<p>Check out the file <i>c:/wa/com/foo/MyFile.java</i>. 
+  Comment attribute <i>mycomment</i> is added as a task comment
+   The used task is the one set as the default.</p>
+<blockquote> 
+  <pre>&lt;ccmcheckout  comment=&quot;mycomment&quot;&gt;
+  &lt;fileset dir=&quot;lib&quot; &gt;
+    &lt;include name=&quot;**/*.jar&quot; /&gt;
+  &lt;/fileset&gt;
+&lt;/ccmcheckout &gt;
+  </pre> 
+</blockquote>
+
+<p>Check out all the files in the <i>lib</i> directory having the <i>.jar</i> extension.
+  Comment attribute <i>mycomment</i> is added as a task comment
+   The used task is the one set as the default.</p>  
+
+
+
+<hr>
+<a name="ccmcheckintask"></a><h2>CCMCheckinTask</h2>
+<h3>Description</h3>
+Task to perform a check in default task command to Continuus 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr> 
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr> 
+    <td>comment</td>
+    <td>Specify a comment.</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>task</td>
+    <td>Specify the task number used to check in the file (may use 'default')</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>ccmdir</td>
+    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples </h3>
+<blockquote>
+  <pre>&lt;ccmcheckintask comment=&quot;blahblah/&gt;
+</pre>
+</blockquote>
+<p>Does a Checkin default task on all the checked out files in the current task.</p>
+<hr>
+<a name="ccmreconfigure"></a><h2>CCMReconfigure</h2>
+<h3>Description</h3>
+Task to perform an reconfigure command to Continuus. 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr> 
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr> 
+    <td>recurse</td>
+    <td>recurse on subproject (default false)</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>verbose</td>
+    <td>do a verbose reconfigure operation (default false)</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>ccmproject</td>
+    <td>Specifies the ccm project on which the operation is applied.</td>
+    <td>Yes</td>
+  </tr>
+  <tr> 
+    <td>ccmdir</td>
+    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+ <pre>&lt;ccmreconfigure ccmproject=&quot;ANTCCM_TEST#BMO_1&quot; 
+         verbose=&quot;true&quot; /&gt;
+</pre>
+</blockquote>
+<p>Does a Continuus <i>reconfigure</i> on the project <i>ANTCCM_TEST#BMO_1</i>. 
+</p>
+<hr>
+<a name="ccmcreatetask"></a><h2>CCMCreateTask</h2>
+<h3>Description</h3>
+Create a Continuus task. 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr> 
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr> 
+    <td>comment</td>
+    <td>Specify a comment.</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>platform</td>
+    <td>Specify the target platform</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>ccmdir</td>
+    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>resolver</td>
+    <td>Specify the resolver</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>release</td>
+    <td>Specify the CCM release</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>subsystem</td>
+    <td>Specify the subsystem</td>
+    <td>No</td>
+  </tr>
+  <tr> 
+    <td>task</td>
+    <td>Specify the task number used to checkin the file (may use 'default')</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote> 
+  <pre>&lt;ccmcreatetask resolver=&quot;${user.name}&quot; 
+            release=&quot;ANTCCM_TEST&quot; comment=&quot;blahblah&quot; /&gt;
+</pre>
+</blockquote>
+<p>Creates a task for the release <i>ANTCCM_TEST</i> with the 
+  current user as the resolver for this task.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/chgrp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/chgrp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/chgrp.html	(revision 14989)
@@ -0,0 +1,135 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Chgrp Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="Chgrp">Chgrp</a></h2>
+<p><em>Since Ant 1.6.</em></p>
+<h3>Description</h3>
+
+<p>Changes the group of a file or all files inside specified
+directories. Right now it has effect only under Unix.  The group
+atribute is equivalent to the coresponding argument for the chgrp
+command.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s, 
+<a href="../CoreTypes/dirset.html">DirSet</a>s or <a
+href="../CoreTypes/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
+<code>&lt;filelist&gt;</code> elements.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory of which the group must be
+    changed.</td>
+    <td valign="top" valign="middle">Yes or nested
+    <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">group</td>
+    <td valign="top">the new group.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chgrp</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the group of
+      plain files are going to be changed. If set to <i>dir</i>, only
+      the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.</td>
+    <td align="center" valign="top">No</td>
+
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;chgrp file=&quot;${dist}/start.sh&quot; group=&quot;coders&quot;/&gt;</code></p>
+</blockquote>
+<p>makes the &quot;start.sh&quot; file belong to the coders group on a
+UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chgrp group=&quot;coders&quot;&gt;
+  &lt;fileset dir=&quot;${dist}/bin&quot; includes=&quot;**/*.sh&quot;/&gt;
+&lt;/chgrp&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
+belong to the coders group on a UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chgrp group=&quot;coders&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/chgrp&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those
+below any directory named trial) belong to the coders group on a UNIX 
+system. In addition all files belonging to a FileSet
+with <code>id</code> <code>other.shared.sources</code> get the same
+group.</p>
+
+<blockquote>
+<pre>
+&lt;chgrp group=&quot;webdev&quot; type=&quot;file&quot;&gt;
+  &lt;fileset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/*.test.jsp&quot;/&gt;
+    &lt;include name=&quot;**/*.new&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;dirset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/test_*&quot;/&gt;
+  &lt;/dirset&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+
+<p>makes all <code>.test.jsp</code>, and <code>.new</code> files belong to 
+group webdev. Directories begining with <code>test_</code> also will belong 
+to webdev, but if there is a directory that ends in <code>.new</code> or a file
+that begins with <code>test_</code> it will be unaffected.</p>
+
+
+<hr>
+<p align="center">Copyright &copy; 2002-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/chown.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/chown.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/chown.html	(revision 14989)
@@ -0,0 +1,135 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Chown Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="Chown">Chown</a></h2>
+<p><em>Since Ant 1.6.</em></p>
+<h3>Description</h3>
+
+<p>Changes the owner of a file or all files inside specified
+directories. Right now it has effect only under Unix.  The owner
+atribute is equivalent to the coresponding argument for the chown
+command.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s, 
+<a href="../CoreTypes/dirset.html">DirSet</a>s or <a
+href="../CoreTypes/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
+<code>&lt;filelist&gt;</code> elements.</p>
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory of which the owner must be
+    changed.</td>
+    <td valign="top" valign="middle">Yes or nested
+    <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">owner</td>
+    <td valign="top">the new owner.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chown</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the owner of
+      plain files are going to be changed. If set to <i>dir</i>, only
+      the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.</td>
+    <td align="center" valign="top">No</td>
+
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;chown file=&quot;${dist}/start.sh&quot; owner=&quot;coderjoe&quot;/&gt;</code></p>
+</blockquote>
+<p>makes the &quot;start.sh&quot; file belong to coderjoe on a
+UNIX system.</p>
+<blockquote>
+<pre>
+    &lt;chown owner=&quot;coderjoe&quot;&gt;
+      &lt;fileset dir=&quot;${dist}/bin&quot; includes=&quot;**/*.sh&quot;/&gt;
+    &lt;/chown&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
+belong to coderjoe on a UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chown owner=&quot;coderjoe&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/chown&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those
+below any directory named trial) belong to coderjoe on a UNIX 
+system. In addition all files belonging to a FileSet
+with <code>id</code> <code>other.shared.sources</code> get the same
+owner.</p>
+
+<blockquote>
+<pre>
+&lt;chown owner=&quot;webadmin&quot; type=&quot;file&quot;&gt;
+  &lt;fileset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/*.cgi&quot;/&gt;
+    &lt;include name=&quot;**/*.old&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;dirset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/private_*&quot;/&gt;
+  &lt;/dirset&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+
+<p>makes cgi scripts, files with a <code>.old</code> extension or
+directories begining with <code>private_</code> belong to the user named
+webadmin. A directory ending in <code>.old</code> or a file begining with 
+<code>private_</code> would remain unaffected.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2002-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/clearcase.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/clearcase.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/clearcase.html	(revision 14989)
@@ -0,0 +1,940 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Clearcase Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>Ant ClearCase Tasks</h1>
+<p>by:<br>
+Curtis White (cwhite at aracnet dot com),<br>
+Sean P. Kane (spkane at genomatica dot com),<br>
+Rob Anderson (Anderson.Rob at vectorscm dot com), and<br>
+Sean Egan    (sean at cm-logic dot com)</p>
+
+<p>Version 1.6 - 02/25/2003</p>
+
+<h1>ClearCase Support</h1>
+<h2>Table of Contents</h2>
+<ul>
+  <li><A href="#introduction">Introduction</a>
+  <li><A href="#cccheckin">CCCheckin</a>
+  <li><A href="#cccheckout">CCCheckout</a>
+  <li><A href="#ccuncheckout">CCUnCheckout</a>
+  <li><A href="#ccupdate">CCUpdate</a>
+  <li><A href="#ccmklbtype">CCMklbtype</a>
+  <li><A href="#ccmklabel">CCMklabel</a>
+  <li><A href="#ccrmtype">CCRmtype</a>
+  <li><A href="#cclock">CCLock</a>
+  <li><A href="#ccunlock">CCUnlock</a>
+  <li><A href="#ccmkbl">CCMkbl</a>
+  <li><A href="#ccmkattr">CCMkattr</a>
+  <li><A href="#ccmkdir">CCMkdir</a>
+ <li><A href="#ccmkelem">CCMkelem</a></li>
+
+</ul>
+
+<hr>
+<h2><a name="introduction">Introduction</a></h2>
+<p>Ant provides several optional tasks for working with ClearCase. These tasks correspond to various
+ClearCase commands using the Cleartool program. The current tasks avaliable for Ant correspond to only
+a few of the significant ClearCase commands.</p>
+
+<p>More tasks can be easily added by deriving from the ClearCase class and then adding
+functionality that is specific to that ClearCase command.</p>
+
+
+<hr>
+<h2><a name="cccheckin">CCCheckin</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool checkin" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or commentfile
+        may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nowarn</td>
+    <td>Suppress warning messages</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>preservetime</td>
+    <td>Preserve the modification time</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>keepcopy</td>
+    <td>Keeps a copy of the file with a .keep extension</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>identical</td>
+    <td>Allows the file to be checked in even if it is identical
+        to the original</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;cccheckin viewpath="c:/views/viewdir/afile"
+        commentfile="acomment.txt"
+        nowarn="true"
+        identical="true"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>checkin</i> on the file <i>c:/views/viewdir/afile</i>.
+Comment text from the file <i>acomment.txt</i> is added to ClearCase as a comment.
+All warning messages are suppressed. The file is checked in even if it is
+<i>identical</i> to the original.</p>
+<hr>
+<h2><a name="cccheckout">CCCheckout</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool checkout" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>reserved</td>
+    <td>Specifies whether to check out the file as reserved or not</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>out</td>
+    <td>Creates a writable file under a different filename</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nodata</td>
+    <td>Checks out the file but does not create an editable file
+        containing its data</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>branch</td>
+    <td>Specify a branch to check out the file to</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>version</td>
+    <td>Allows checkout of a version other than main latest</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nowarn</td>
+    <td>Suppress warning messages</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or
+        commentfile may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>notco</td>
+    <td>Fail if it's already checked out to the current view. Set to false to ignore it.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;cccheckout viewpath="c:/views/viewdir/afile"
+        reserved="true"
+        branch="abranch"
+        nowarn="true"
+        comment="Some comment text"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>checkout</i> on the file <i>c:/views/viewdir/afile</i>.
+It is checked out as <i>reserved</i> on branch called <i>abranch</i>. All
+warning messages are suppressed. A <i>Some comment text</i> is added to
+ClearCase as a comment.</p>
+<hr>
+<h2><a name="ccuncheckout">CCUnCheckout</a></h2>
+<h3>Description</h3>
+Task to perform a UnCheckout command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>keepcopy</td>
+    <td>Specifies whether to keep a copy of the file with a .keep
+        extension or not</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccuncheckout viewpath="c:/views/viewdir/afile"
+        keepcopy="true"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>uncheckout</i> on the file <i>c:/views/viewdir/afile</i>.
+A copy of the file called <i>c:/views/viewdir/afile.keep</i> is kept.</p>
+<hr>
+<h2><a name="ccupdate">CCUpdate</a></h2>
+<h3>Description</h3>
+Task to perform an "cleartool update" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase snapshot view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>graphical</td>
+    <td>Displays a graphical dialog during the update</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>log</td>
+    <td>Specifies a log file for ClearCase to write to</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>overwrite</td>
+    <td>Specifies whether to overwrite hijacked files or not</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>rename</td>
+    <td>Specifies that hijacked files should be renamed with a .keep extension</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>currenttime</td>
+    <td>Specifies that modification time should be written as the
+        current time. Either currenttime or preservetime can be
+        specified.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>preservetime</td>
+    <td>Specifies that modification time should preserved from the
+        VOB time. Either currenttime or preservetime can be
+        specified.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccupdate viewpath="c:/views/viewdir"
+        graphical="false"
+        log="log.log"
+        overwrite="true"
+        currenttime="true"
+        rename="false"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>update</i> on the snapshot view directory <i>c:/views/viewdir</i>.
+A graphical dialog will be displayed. The output will be logged to
+<i>log.log</i> and it will overwrite any hijacked files. The modified
+time will be set to the current time.</p>
+
+
+
+<hr>
+<h2><a name="ccmklbtype">CCMklbtype</a></h2>
+<h3>Description</h3>
+Task to perform a "mklbtype" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+    <td>typename</td>
+    <td>Name of the label type to create</td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>vob</td>
+    <td>Name of the VOB</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>replace</td>
+    <td>Replace an existing label definition of the same type</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>global</td>
+    <td>Either global or ordinary can be specified, not both. Creates a label type that is global to the VOB or to VOBs that use this VOB</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>ordinary</td>
+    <td>Either global or ordinary can be specified, not both. Creates a label type that can be used only in the current VOB. <B>Default</B></td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>pbranch</td>
+    <td>Allows the label type to be used once per branch in a given element's version tree</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>shared</td>
+    <td>Sets the way mastership is checked by ClearCase. See ClearCase documentation for details</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr></tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmklbtype typename="VERSION_1"
+        ordinary="true"
+        comment="Development version 1"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mklbtype</i> to create a label type named <i>VERSION_1</i>.
+It is created as <i>ordinary</i> so it is available only to the current VOB.
+The text <i>Development version 1</i> is added as a comment.</p>
+
+
+<hr>
+<h2><a name="ccmklabel">CCMklabel</a></h2>
+<h3>Description</h3>
+Task to perform a "mklabel" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+    <td>typename</td>
+    <td>Name of the label type</td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command will operate on</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>replace</td>
+    <td>Replace a label of the same type on the same branch</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>recurse</td>
+    <td>Process each subdirectory under viewpath</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>version</td>
+    <td>Identify a specific version to attach the label to</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>vob</td>
+    <td>Name of the VOB</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr></tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmklabel viewpath="c:/views/viewdir/afile"
+        comment="Some comment text"
+        recurse="true"
+        version="\main\2"
+        typename="VERSION_1"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mklabel</i> on the file <i>c:/views/viewdir/afile</i> under
+the main branch for version 2 (<i>\main\2</i>). Text <i>Some comment text</i> is added
+as a comment. It will <i>recurse</i> all subdirectories.
+
+
+<hr>
+<h2><a name="ccrmtype">CCRmtype</a></h2>
+<h3>Description</h3>
+Task to perform a "rmtype" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+    <td>typekind</td>
+    <td>The kind of type to create. Valid types are:
+      <table border="0" width="40%">
+        <tr>
+          <td width="15%"> </td>
+          <td><b>attype</b><br>
+              <b>brtype</b><br>
+              <b>eltype</b><br>
+              <b>hltype</b><br>
+              <b>lbtype</b><br>
+              <b>trtype</b>
+          </td>
+          <td>- <br>
+              - <br>
+              - <br>
+              - <br>
+              - <br>
+              -
+          </td>
+          <td>attribute type<br>
+              branch type<br>
+              element type<br>
+              hyperlink type<br>
+              label type<br>
+              trigger type
+          </td>
+        </tr>
+      </table>
+    </td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>typename</td>
+    <td>The name of the type to remove</td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>ignore</td>
+    <td>Used with trigger types only. Forces removal of trigger type even if a pre-operation trigger would prevent its removal</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>rmall</td>
+    <td>Removes all instances of a type and the type object itself</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr></tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccrmtype typekind="lbtype"
+        typename="VERSION_1"
+        commentfile="acomment.txt"
+        rmall="true"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>rmtype</i> to remove a label type (<i>lbtype</i>) named <i>VERSION_1</i>.
+Comment text from the file <i>acomment.txt</i> is added as a comment. All instances of the type
+are removed, including the type object itself.</p>
+<hr>
+
+<h2><a name="cclock">CCLock</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool lock" command to ClearCase.
+<h3>Parameters</h3>
+ <table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <th>Attribute</th>
+     <th>Values</th>
+     <th>Required</th>
+   </tr>
+   <tr>
+      <td>replace</td>
+      <td>Specifies replacing an existing lock</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>nusers</td>
+      <td>Specifies user(s) who can still modify the object</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>obsolete</td>
+      <td>Specifies that the object should be marked obsolete</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>comment</td>
+      <td>Specifies how to populate comments fields</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>pname</td>
+      <td>Specifies the object pathname to be locked.</td>
+      <td>No</td>
+   <tr>
+      <td>objselect</td>
+      <td>This variable is obsolete. Should use <i>objsel</i> instead.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>objsel</td>
+      <td>Specifies the object(s) to be locked.<br>
+      Since ant 1.6.1</td>
+      <td>No</td>
+   <tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;cclock
+    objsel="stream:Application_Integration@\MyProject_PVOB"
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>lock</i> on the object <i>stream:Application_Integration@\MyProject_PVOB</i>.</p>
+<hr>
+
+<h2><a name="ccunlock">CCUnlock</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool unlock" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <th>Attribute</th>
+     <th>Values</th>
+     <th>Required</th>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specifies how to populate comments fields</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>pname</td>
+      <td>Specifies the object pathname to be unlocked.</td>
+      <td>No</td>
+   <tr>
+      <td>objselect</td>
+      <td>This variable is obsolete. Should use <i>objsel</i> instead.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>objsel</td>
+      <td>Specifies the object(s) to be unlocked.<br>
+      Since ant 1.6.1</td>
+      <td>No</td>
+   <tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+
+ </table>
+ <h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccunlock
+    objsel="stream:Application_Integration@\MyProject_PVOB"
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>unlock</i> on the object <i>stream:Application_Integration@\MyProject_PVOB</i>.</p>
+<hr>
+
+<h2><a name="ccmkbl">CCMkbl</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool mkbl" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <th>Attribute</th>
+     <th>Values</th>
+     <th>Required</th>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be
+used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or
+cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>baselinerootname</td>
+      <td>Specify the name to be associated with the baseline.</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>nowarn</td>
+      <td>Suppress warning messages</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>identical</td>
+      <td>Allows the baseline to be created even if it is identical to the
+previous baseline.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>full</td>
+      <td>Creates a full baseline.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>nlabel</td>
+      <td>Allows the baseline to be created without a label.</td>
+      <td>No</td>
+   </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkbl
+    baselinerootname="Application_Baseline_AUTO"
+    identical="yes"
+    full="no"
+    viewpath="v:\ApplicationCC"
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkbl</i> on the Integration view at <i>v:\ApplicationCC</i>
+even if it is <i>identical</i> to a previous baseline. The new baseline with be
+incremental and named "Application_Baseline_AUTO".</p>
+<hr>
+
+<h2><a name="ccmkattr">CCMkattr</a></h2>
+<h3>Description</h3>
+Task to perform a &quot;cleartool mkattr&quot; command to ClearCase.<br>
+Since ant 1.6.1
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <th>Attribute</th>
+     <th>Values</th>
+     <th>Required</th>
+   </tr>
+   <tr>
+      <td>viewpath</td>
+      <td>Path to the ClearCase view file or directory that the command will operate on</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>replace</td>
+      <td>Replace the value of the attribute if it already exists</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>recurse</td>
+      <td>Process each subdirectory under viewpath</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>version</td>
+      <td>Identify a specific version to attach the attribute to</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>typename</td>
+      <td>Name of the attribute type</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>typevalue</td>
+      <td>Value to attach to the attribute type</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>failonerr</td>
+      <td>Throw an exception if the command fails. Default is true</td>
+      <td>No</td>
+   </tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkattr viewpath=&quot;c:/views/viewdir/afile&quot;
+    typename=&quot;BugFix&quot;
+    typevalue=&quot;34445&quot;
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkattr</i> on the file <i>c:/views/viewdir/afile</i> and
+attaches the attribute <i>BugFix</i> with a value of <i>34445</i> to it.</p>
+<hr>
+
+<h2><a name="ccmkdir">CCMkdir</a></h2>
+<h3>Description</h3>
+Task to perform a &quot;cleartool mkdir&quot; command to ClearCase.<br>
+Since ant 1.6.1
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <th>Attribute</th>
+     <th>Values</th>
+     <th>Required</th>
+   </tr>
+   <tr>
+      <td>viewpath</td>
+      <td>Path to the ClearCase view directory that the command will operate on</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>nocheckout</td>
+      <td>Do not checkout after element creation</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>failonerr</td>
+      <td>Throw an exception if the command fails. Default is true</td>
+      <td>No</td>
+   </tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkdir viewpath=&quot;c:/views/viewdir/adir&quot;
+        nochcekout=&quot;true&quot;
+        comment=&quot;Some comment text&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkdir</i> on the dir <i>c:/views/viewdir/adir</i> and
+does not automatically check it out.</p>
+<hr>
+
+<h2><a name="ccmkelem">CCMkelem</a></h2>
+<h3>Description</h3>
+Task to perform a &quot;cleartool mkelem&quot; command to ClearCase.<br>
+Since ant 1.6.1
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <th>Attribute</th>
+     <th>Values</th>
+     <th>Required</th>
+   </tr>
+   <tr>
+      <td>viewpath</td>
+      <td>Path to the ClearCase view file or directory that the command will operate on</td>
+      <td>Yes</td>
+   <tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>nowarn</td>
+      <td>Suppress warning messages</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>nocheckout</td>
+      <td>Do not checkout after element creation</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>checkin</td>
+      <td>Checkin element after creation</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>preservetime</td>
+      <td>Preserve the modification time (for checkin)</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>master</td>
+      <td>Assign mastership of the main branch to the current site</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>eltype</td>
+      <td>Element type to use during element creation</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>failonerr</td>
+      <td>Throw an exception if the command fails. Default is true</td>
+      <td>No</td>
+   <tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkelem viewpath=&quot;c:/views/viewdir/afile&quot;
+        eltype=&quot;text_file&quot;
+        checkin=&quot;true&quot;
+        comment=&quot;Some comment text&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkelem</i> on the file <i>c:/views/viewdir/afile</i> with
+element type <i>text_file</i>. It also checks in the file after creation.</p>
+<hr>
+
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/csc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/csc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/csc.html	(revision 14989)
@@ -0,0 +1,515 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Csc
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Csc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Compiles C# source into executables or modules.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Compiles C# source into executables or modules. csc.exe on Windows or mcs on any other platform must be on the execute path, unless another executable or the full path to that executable is specified in the <tt>executable</tt> parameter <p> All parameters are optional: &lt;csc/&gt; should suffice to produce a debug build of all *.cs files. However, naming an <tt>destFile</tt>stops the csc compiler from choosing an output name from random, and allows the dependency checker to determine if the file is out of date. <p> The task is a directory based task, so attributes like <b>includes="*.cs" </b> and <b>excludes="broken.cs"</b> can be used to control the files pulled in. By default, all *.cs files from the project folder down are included in the command. When this happens the output file -if not specified- is taken as the first file in the list, which may be somewhat hard to control. Specifying the output file with <tt>destFile</tt> seems prudent. <p> <p> For more complex source trees, nested <tt>src</tt> elemements can be supplied. When such an element is present, the implicit fileset is ignored. This makes sense, when you think about it :) <p> References to external files can be made through the references attribute, or (since Ant1.6), via nested &lt;reference&gt; filesets. With the latter, the timestamps of the references are also used in the dependency checking algorithm. <p> Example <pre>&lt;csc optimize=&quot;true&quot; debug=&quot;false&quot; docFile=&quot;documentation.xml&quot; warnLevel=&quot;4&quot; unsafe=&quot;false&quot; targetType=&quot;exe&quot; incremental=&quot;false&quot; mainClass = &quot;MainApp&quot; destFile=&quot;NetApp.exe&quot; &gt; &lt;src dir="src" includes="*.cs" /&gt; &lt;reference file="${testCSC.dll}" /&gt; &lt;define name="RELEASE" /&gt; &lt;define name="DEBUG" if="debug.property"/&gt; &lt;define name="def3" unless="def3.property"/&gt; &lt;/csc&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="26">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">definitions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of defined constants.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">docfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">file for generated XML documentation</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">filealign</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the file alignment. Valid values are 0,512, 1024, 2048, 4096, 8192, and 16384, 0 means 'leave to the compiler'</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">fullpaths</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, print the full path of files on errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">incremental</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the incremental compilation flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">noconfig</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">A flag that tells the compiler not to read in the compiler settings files 'csc.rsp' in its bin directory and then the local directory</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">outputfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">The output file. This is identical to the destFile attribute.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">unsafe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables the unsafe keyword.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+<short-description><![CDATA[Add a define to the list of definitions.]]></short-description>
+<description>
+            <![CDATA[add a define to the list of definitions]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+<short-description><![CDATA[Add a new reference fileset to the compilation.]]></short-description>
+<description>
+            <![CDATA[add a new reference fileset to the compilation]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+<short-description><![CDATA[Link or embed a resource.]]></short-description>
+<description>
+            <![CDATA[link or embed a resource]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+<short-description><![CDATA[Add a new source directory to the compile.]]></short-description>
+<description>
+            <![CDATA[add a new source directory to the compile]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/depend.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/depend.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/depend.html	(revision 14989)
@@ -0,0 +1,196 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Depend Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2>Depend</h2>
+
+A task to manage Java class file dependencies.
+
+<h3>Description</h3>
+
+<p>
+The depend task works by determining which classes are out of date with
+respect to their source and then removing the class files of any other
+classes which depend on the out-of-date classes.
+</p>
+
+<p> To determine the class dependencies, the depend task analyses the class 
+files of all class files passed to it. Depend does not parse your source code in 
+any way but relies upon the class references encoded into the class files by the 
+compiler. This is generally faster than parsing the Java source.</p>
+
+<p>
+To learn more about how this information is obtained from the class files, 
+please refer to <a href="http://java.sun.com/docs/books/vmspec/">the Java 
+Virtual Machine Specification</a>
+</p>
+
+<p> Since a class' dependencies only change when the class itself changes, the 
+depend task is able to cache dependency information. Only those class files 
+which have changed will have their dependency information re-analysed. Note that 
+if you change a class' dependencies by changing the source, it will be 
+recompiled anyway. You can examine the dependency files created to understand 
+the  dependencies of your classes. Please do not rely, however, on the format of 
+the information, as it may change in a later release. </p>
+
+<p> Once depend discovers all of the class dependencies, it &quot;inverts&quot; 
+this relation to determine, for each class, which other classes are dependent 
+upon it. This &quot;affects&quot; list is used to discover which classes are 
+invalidated by the out of date class. The class files of the invalidated 
+classes are removed, triggering the compilation of the affected classes. </p>
+
+<p> The depend task supports an attribute, &quot;closure&quot; which controls 
+whether depend will only consider direct class-class relationships or whether it 
+will also consider transitive, indirect relationships. For example, say there 
+are three classes, A, which depends on B, which in-turn depend on C. Now say 
+that class C is out of date. Without closure, only class B would be removed by 
+depend. With closure set, class A would also be removed. Normally direct 
+relationships are sufficient - it is unusual for a class to depend on another 
+without having a direct relationship. With closure set, you will notice that 
+depend typically removes far more class files. </p>
+
+<p>The classpath attribute for <code>&lt;depend&gt;</code> is optional. If it is present, 
+depend will check class dependencies against classes and jars on this classpath.
+Any classes which depend on an element from this classpath and which are older 
+than that element will be deleted. A typical example where you would use this 
+facility would be where you are building a utility jar and want to make sure 
+classes which are out of date with respect to this jar are rebuilt. You should
+<b>not</b> include jars in this classpath which you do not expect to change, 
+such as the JDK runtime jar or third party jars, since doing so will just slow 
+down the dependency check. This means that if you do use a classpath for the 
+depend task it may be different from the classpath necessary to actually 
+compile your code.</p>
+
+<h3>Performance</h3> 
+
+<p> The performance of the depend task is dependent on a 
+number of factors such as class relationship complexity and how many class files 
+are out of date. The decision about whether it is cheaper to just recompile all 
+classes or to use the depend task will depend on the size of your project and 
+how interrelated your classes are. </p>
+
+
+<h3>Limitations</h3>
+
+<p> There are some source dependencies which depend will not detect. </p>
+
+<ul>
+<li>If the Java compiler optimizes away a class relationship, 
+    there can be a source dependency without a class dependency. </li>
+    
+<li>Non public classes cause two problems. Firstly depend cannot relate
+    the class file to a source file. In the future this may be addressed
+    using the source file attribute in the classfile. Secondly, neither 
+    depend nor the compiler tasks can detect when a non public class is
+    missing. Inner classes are handled by the depend task.</li>
+</ul>
+
+The most obvious example of these limitations is that the task can't tell
+which classes to recompile when a constant primitive data type exported 
+by other classes is changed. For example, a change in the definition of
+something like
+<pre>
+public final class Constants {
+  public final static boolean DEBUG=false;
+}
+</pre> will not be picked up by other classes.
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">This is the directory where the source exists. depend
+will examine this to determine which classes are out of date. If you use multiple
+source directories you can pass this attribute a path of source directories.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destDir</td>
+    <td valign="top">This is the root directory of the class files which
+will be analysed. If this is not present, the srcdir is used.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cache</td>
+    <td valign="top">This is a directory in which depend can store and
+retrieve dependency information. If this is not present, depend will not
+use a cache </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">closure</td>
+    <td valign="top">This attribute controls whether depend only removes
+classes which directly depend on out of date classes. If this is set to true,
+depend will traverse the class dependency graph deleting all affected
+classes. Defaults to false</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dump</td>
+    <td valign="top">If true the dependency information will be written to the debug level log
+                     </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath containg jars and classes for which <code>&lt;depend&gt;</code> should also
+                     check dependencies</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<p>The <code>depend</code> task's <code>classpath</code> attribute is a 
+<a href="../using.html#path">PATH-like structure</a> and can also be set
+via a nested <code>&lt;classpath&gt;</code> element.</p>
+
+<p>Additionally,
+this task forms an implicit
+<a href="../CoreTypes/fileset.html">FileSet</a>
+and supports all attributes of
+<code>&lt;fileset&gt;</code> (<code>dir</code> becomes <code>srcdir</code>),
+as well as the nested <code>&lt;include&gt;</code>,
+<code>&lt;exclude&gt;</code>, and <code>&lt;patternset&gt;</code> elements.
+
+<h3>Examples</h3>
+<pre>&lt;depend srcdir=&quot;${java.dir}&quot;
+        destdir=&quot;${build.classes}&quot;
+        cache=&quot;depcache&quot;
+        closure=&quot;yes&quot;/&gt;</pre>
+
+<p>removes any classes in the <code>${build.classes}</code> directory
+that depend on out-of-date classes. Classes are considered out-of-date with 
+respect to the source in the <code>${java.dir}</code> directory, using the same
+mechanism as the <code>&lt;javac&gt;</code> task. In this example, the
+<code>&lt;depend&gt;</code> task caches its dependency 
+information in the <code>depcache</code> directory. </p>
+
+<pre>
+&lt;depend srcdir=&quot;${java.dir}&quot; destdir=&quot;${build.classes}&quot;
+        cache=&quot;depcache&quot; closure=&quot;yes&quot;&gt;
+  &lt;include name=&quot;**/*.java&quot;/&gt;
+  &lt;excludesfile name=&quot;${java.dir}/build_excludes&quot;/&gt;
+&lt;/depend&gt;
+</pre>
+<p>does the same as the previous example, but explicitly includes all
+<code>.java</code> files, except those that match the list given
+in <code>${java.dir}/build_excludes</code>.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/dotnet.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/dotnet.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/dotnet.html	(revision 14989)
@@ -0,0 +1,306 @@
+<html>
+<head>
+<title>.NET Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<h1>.NET tasks</h1>
+<h2>Introduction</h2>
+
+
+Ant support for .NET goes back to before .NET was released, and
+continues to be expanded based on user demand. Users writing nothing but
+a .NET application, may want to look at the .NET-based
+<A href="http://nant.sourceforge.net/">NAnt</A> project, that supports
+both the Microsoft and the Ximian managed <A
+href="http://go-mono.com/">Mono</A> project's implementation of the
+.NET framework.
+<p>
+
+Over time, the .NET tasks in Ant have tended to evolve to meet a few
+limited needs. Firstly, developers working with complex deployment problems may
+want to use ant to use the fairly advanced deployment tasks Ant ships
+with. Secondly, anyone who has a cross-platform project can use these
+tasks to cover the .NET side of the problem. Here, cross-platform can
+mean more than just Java and .NET: the C++ tasks in the ant-contrib
+project on sourceforge can be used with Ant to do native C++ and .NET
+cross development if that is your need. Finally, Ant support for .NET
+lets one automate .NET development under an automated build process,
+such as AntHill or Cruise Control.
+
+<p>
+
+What this means is that the Ant tasks for .NET support do not get as
+much rigorous use as the Java tools, and are evolving more slowly -that
+includes the time for support calls to change. But as a consequence,
+developers working on .NET support have more freedom to play around with
+the code. It also means that the fairly unusual set of tasks supported
+by ant enable a few interesting operations that can not be performed any
+other way:
+<ol>
+
+<li>Integrating with a Java based SOAP Service -generating C# code from
+the server's WSDL and running it against the server.
+</li>
+<li>Building and deploying a C#-based Web Service, then using the Apache
+Axis tasks to create JUnit tests to call the endpoints.
+
+<li>Patching .NET type libraries to work with more complex IDL than the
+basic &lt;importtypelib&gt; wrapper around tlbimport supports. Hence the
+disassembler and the reassembler.
+</li>
+
+</ol>
+Needless to say, possible does not mean easy.
+<A href="http://www.manning.com/hatcher/chap15.pdf">Chapter 15</A> of
+Java Development with Ant covers the first of these, using the Ant1.5
+version of the tasks. Going the other way -generating Java client
+code and JUnit testcases is covered in
+<A href="http://www.iseran.com/Steve/papers/interop/">The Wondrous curse
+of Interop</A>. The final trick, IDL and Typelib abuse, is not
+documented as we do not want to encourage such an ugly practice. It,
+can, however, be done if absolutely necessary. The trick is a sequence
+of &lt;importtypelib/&gt;, &lt;ildasm&gt;, &lt;replace&gt; and finally
+&lt;ilasm&gt;.
+
+<h3>Task List</h3>
+
+<table border="0" >
+<tr>
+  <td><a href="csc.html">Csc</a></td>
+  <td>Compiles C# code</td>
+</tr>
+
+<tr>
+  <td><a href="vbc.html">vbc</a></td>
+  <td>Compiles VB.Net code</td>
+</tr>
+
+<tr>
+  <td><a href="jsharpc.html">jsharpc</a></td>
+  <td>Compiles J# files</td>
+</tr>
+
+<tr>
+  <td><a href="ildasm.html">ildasm</a></td>
+  <td>Disassembles .NET executables and libraries</td>
+</tr>
+
+<tr>
+  <td><a href="ilasm.html">ilasm</a></td>
+  <td>Assembles .il files</td>
+</tr>
+
+<tr>
+  <td><a href="wsdltodotnet.html">WsdlToDotnet</a></td>
+  <td>Generates .NET code (C# or VB) from a WSDL file</td>
+</tr>
+
+<tr>
+  <td><a href="importtypelib.html">ImportTypelib</a></td>
+  <td>Imports a COM type library into .NET</td>
+</tr>
+
+</table>
+
+<hr>
+<h3>Common .NET Datatypes </h3>
+
+There are some datatypes that are common to the core compiler classes:
+csc, vbc and  jsharpc
+
+<h4>Resource</h4>
+
+This is a resource that is included in the build. Ant uses this for
+dependency checking -if resources included this way have changed, the
+executable or library will be rebuilt.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">File</td> 
+    <td valign="top">the resource to include</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td> 
+    <td valign="top">the name of the resource. 
+    Optional unless the resource is
+    marked as public or private</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">embed</td> 
+    <td valign="top">flag to control whether the resource
+    is embedded in the assembly, or just linked to it</td>
+    <td align="center" valign="top">No -default is true</td>
+  </tr>
+  <tr>
+    <td valign="top">public</td> 
+    <td valign="top">VB only: flag to control if a resource should be 
+    public or private. Set to true for public, false for private
+    and leave undefined for for neither. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h5>Examples</h5>
+
+<pre>
+&lt;resource file="app.ico" name="icon" /&gt;
+&lt;resource file="splash.jpg"/&gt;
+&lt;resource name="splash" file="splash.jpg" public="false"/&gt;
+</pre>
+
+<h4>Define</h4>
+
+This is a definition; in .NET these can either be defined or undefined,
+unlike C++ #defines, which can be either undefined or arbitrary text.
+The Ant compilation tasks can unconditionally add definitions, or
+conditionally set a compile-time definition if an ant property is
+defined or not.
+<p>
+
+Dependency Logic: the tasks are not (yet) clever enough to remember what
+the last definitions were and trigger a rebuild when they change. Clean
+build the code when the defines are likely to be different.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td> 
+    <td valign="top">the name of the definition</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td> 
+    <td valign="top">name of a ant property to test for;
+    the definition is only set if this property is defined.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td> 
+    <td valign="top">name of a ant property to test for;
+    the definition is only set if this property is undefined.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h5>Examples</h5>
+
+<pre>
+&lt;define name="unsafe" /&gt;
+&lt;define name="debug" if="build.debug"/&gt;
+&lt;define name="dotnet" unless="build.mono"/&gt;
+</pre>
+
+<hr>
+<h3> Change Log </h3>
+
+<h4>Ant1.6</h4>
+This revision goes along with NET 1.1, though there is no reason why
+it should not work on other versions.
+<p>
+
+<ol>
+<li>vbc task</li>
+<li>jsharpc task</li>
+<li>mono support</li>
+<li>ilasm</li>
+<li>tlbimport</li>
+<li>Reference filesets in the compiler tasks</li>
+<li>definitions in the compiler tasks</li>
+<li>multiple source filesets in the compiler tasks. If these are used, the
+implicit fileset is disabled</li>
+</ol>
+
+The compile tasks: vbc, jsharpc, and csc, all contain lots of common code
+in a shared base class: if you can use one you should be able to use
+another.
+
+<h4>Ant 1.5</h4>
+This revision goes along with NET 1.0 (SP1)
+<ol>
+<li>CSC: added filealign</li>
+<li>CSC: added reference to office.dll</li>
+<li>CSC: dependency checking! only if destFile is set!
+<li>WsdlToDotnet written
+</ol>
+
+<h4>Version 0.5</h4>
+This revision goes along with NET 1.0 (SP1)
+<ol>
+<li>CSC: added filealign</li>
+<li>CSC: added reference to office.dll</li>
+<li>CSC: dependency checking! only if destFile is set!
+<li>WsdlToDotnet written
+</ol>
+
+<h4>Version 0.4</h4>
+This is the beta-2 revision of the tasks.
+<ol>
+<li>ILASM: pulled the owner attribute, added keyfile for giving binaries a strong name
+(MD5 hash of the checksum)</li>
+<li>CSC: added win32res , noConfig, utf8output, fullpaths</li>
+<li>CSC: </li>
+</ol>
+
+<h4>Version 0.3</h4>
+
+The changes here reflect Beta-1 of the dotnet SDK and experience of use in
+more complex projects. This build does not work with the older SDK,
+primarily because the automatic reference feature references libraries
+only found in the new SDK version.
+<p>
+External changes</p>
+<ul>
+<li>Recursive inclusion of .cs and .il files</li>
+
+<li>Documentation enhanced, includes examples and details of all parameters</li>
+
+<li>The csc task automatically includes the common dotnet assemblies, so
+there is no need to remember to refer to 'System.dll', 'System.Web.Services',
+ etc. This feature can be disabled by setting the 'includeDefaultReferences'
+ flag to false. </li>
+
+ <li> References can also be referred to using the ReferenceFiles parameter, which
+is an ant path specification. The old 'references' string is still retained.</li>
+<li> An 'extraoptions' attribute enables the build file to include any CSC options
+which are not explicitly supported in the CSC task. </li>
+</ul>
+
+Internal changes
+<ul>
+<li>Some minor refactoring (move common code a method)</li>
+<li>Application of Jedits JavaStyle task resulted in a major reshaping of
+the codebase and the insertion of a blank line every second line. Significant
+effort was required to revert some (but not all) changes.</li>
+<li>Removed throws clause from methods which can't throw exception
+</ul>
+
+The test harness has been expanded to include unicode source file
+(the build works but the rest of the system has 'issues' with high unicode
+package and method names)
+
+<h4>Version 0.2</h4>
+First public edition, added to the ant cvs tree. Tested on the PDC build of
+the dotnet SDK only, and still immature. The command execution code was
+refactored out into a 'NetCommand' class for re-use. The Ilasm task was added
+at this time.
+
+<h4>Version 0.1</h4>
+Initial proof of concept; very rudimentary support for CSC only.
+
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/echoproperties.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/echoproperties.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/echoproperties.html	(revision 14989)
@@ -0,0 +1,110 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Echoproperties Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="echoproperties">echoproperties</a></h2>
+<h3>Description</h3>
+
+<p>Displays all the current properties (or a subset of them specified
+by a nested <code>&lt;propertyset&gt;</code>) in the project.  The
+output can be sent to a file if desired.  This task can be used as a
+somewhat contrived means of returning data from an
+<tt>&lt;ant&gt;</tt> invocation, but is really for debugging build
+files.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">If specified, the value indicates the name of the
+    file to send the output of the statement to.  The generated output file
+    is compatible for loading by any Java application as a property file.
+    If not specified, then the output will go to the Ant log.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">
+        a prefix which is used to filter the properties
+        only those properties starting with this prefix will be echoed.
+        <P>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  
+  
+   
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">By default, the "failonerror" attribute is enabled.
+    If an error occurs while writing the properties to a file, and this
+    attribute is enabled, then a BuildException will be thrown, causing the
+    build to fail.  If disabled, then IO errors will be reported as a log
+    statement, and the build will continue without failure from this task.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">One of <code>text</code> or <code>xml</code>.
+    Determines the output format.  Defaults to <code>text</code>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>propertyset</h4>
+
+<p>You can specify subsets of properties to be echoed with <a
+href="../CoreTypes/propertyset.html">propertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+  &lt;echoproperties/&gt;
+</pre></blockquote>
+<p>Report the current properties to the log.</p>
+<blockquote><pre>
+  &lt;echoproperties destfile="my.properties"/&gt;
+</pre></blockquote>
+<p>Report the current properties to the file "my.properties", and will
+fail the build if the file could not be created or written to.</p>
+<blockquote><pre>
+  &lt;echoproperties destfile="my.properties" failonerror="false" /&gt;
+</pre></blockquote>
+<p>Report the current properties to the file "my.properties", and will
+log a message if the file could not be created or written to, but will still
+allow the build to continue.</p>
+<blockquote><pre>
+  &lt;echoproperties prefix="java."/&gt;
+</pre></blockquote>
+<p>List all properties beginning with "java."</p>
+<blockquote><pre>
+  &lt;echoproperties&gt;
+    &lt;propertyset&gt;
+      &lt;propertyref prefix="java."/&gt;
+    &lt;/propertyset&gt;
+  &lt;/echoproperties&gt;
+</pre></blockquote>
+<p>List all properties beginning with "java."</p>
+
+<hr>
+<p align="center">Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ejb.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ejb.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ejb.html	(revision 14989)
@@ -0,0 +1,1752 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>EJB Tasks</title>
+
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h1>Ant EJB Tasks User Manual</h1>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Paul Austin (<a href="mailto:p_d_austin@yahoo.com">p_d_austin@yahoo.com</a>)</li>
+  <li>Holger Engels (<a href="mailto:hengels@innovidata.com">hengels@innovidata.com</a>)</li>
+  <li>Tim Fennell (<a href="mailto:tfenne@rcn.com">tfenne@rcn.com</a>)</li>
+  <li>Martin Gee (<a href="mailto:martin.gee@icsynergy.com">martin.gee@icsynergy.com</a>)</li>
+  <li>Conor MacNeill</li>
+  <li>Cyrille Morvan (<a href="mailto:cmorvan@ingenosya.com">cmorvan@ingenosya.com</a>)</li>
+  <li>Greg Nelson (<a href="mailto:gn@sun.com">gn@sun.com</a>)</li>
+  <li>Rob van Oostrum(<a href="mailto:rob@springwellfarms.ca">rob@springwellfarms.ca</a>)</li>
+</ul>
+
+<p>Version @VERSION@<br>
+$Id$
+</p>
+<hr>
+<h2>Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#ejbtasks">EJB Tasks</a></li>
+</ul>
+
+<hr>
+<h2><a name="introduction">Introduction</a></h2>
+<p>Ant provides a number of optional tasks for developing
+<a href="http://java.sun.com/products/ejb" target="_top">Enterprise Java Beans (EJBs)</a>.
+In general these tasks are specific to the particular vendor's EJB Server.</p>
+
+<p> At present the tasks support:<br>
+
+<ul>
+  <li><a href="http://www.borland.com">Borland </a>
+  Application Server 4.5</li>
+  <li><a href="http://www.iplanet.com">iPlanet </a>
+  Application Server 6.0</li>
+  <li><a href="http://www.jboss.org/" target="_top">
+  JBoss 2.1</a> and above EJB servers</li>
+  <li><a href="http://www.bea.com" target="_top">Weblogic</a>
+   4.5.1 through to 7.0 EJB servers</li>
+  <li><a href="http://www.objectweb.org/jonas/" target="_top">JOnAS</a>
+   2.4.x and 2.5 Open Source EJB server</li>
+  <li><a href="http://www.ibm.com/websphere">IBM WebSphere</a> 4.0</li>
+</ul>
+  Over time we expect further optional tasks  to support additional EJB Servers.
+</p>
+
+<hr>
+<h2><a name="ejbtasks">EJB Tasks</a></h2>
+<table border="1" cellpadding="5">
+ <tr><td>Task</td><td colspan="2">Application Servers</td></tr>
+ <tr><td><a href="BorlandGenerateClient.html">blgenclient</a></td><td colspan="2">Borland Application Server 4.5 and 5.x</td></tr>
+ <tr><td><a href="#ddcreator">ddcreator</a></td><td colspan="2">Weblogic 4.5.1</td></tr>
+ <tr><td><a href="#ejbc">ejbc</a></td><td colspan="2">Weblogic 4.5.1</td></tr>
+ <tr><td><a href="#iplanet-ejbc">iplanet-ejbc</a></td><td colspan="2">iPlanet Application Server 6.0</td></tr>
+ <tr><td rowspan="7"><a href="#ejbjar">ejbjar</a></td><td colspan="2" align="center"><b>Nested Elements</b></td></tr>
+ <tr><td><a href="BorlandEJBTasks.html">borland</a></td><td>Borland Application Server 4.5 and 5.x</td></tr>
+ <tr><td><a href="#ejbjar_iplanet">iPlanet</a></td><td>iPlanet Application Server 6.0</td></tr>
+ <tr><td><a href="#ejbjar_jboss">jboss</a></td><td>JBoss</td></tr>
+ <tr><td><a href="#ejbjar_jonas">jonas</a></td><td>JOnAS 2.4.x and 2.5</td></tr>
+ <tr><td><a href="#ejbjar_weblogic">weblogic</a></td><td>Weblogic 5.1 to 7.0</td></tr>
+ <tr><td><a href="#ejbjar_websphere">websphere</a></td><td>IBM WebSphere 4.0</td></tr>
+ <tr><td><a href="#wlrun">wlrun</a></td><td colspan="2">Weblogic 4.5.1 to 7.0</td></tr>
+ <tr><td><a href="#wlstop">wlstop</a></td><td colspan="2">Weblogic 4.5.1 to 7.0</td></tr>
+
+</table>
+
+<hr>
+<h2><a name="ddcreator">ddcreator</a></h2>
+<h3><b>Description:</b></h3>
+<p>ddcreator will compile a set of Weblogic text-based deployment descriptors into a serialized
+EJB deployment descriptor. The selection of which of the text-based descriptors are to be compiled
+is based on the standard Ant include and exclude selection mechanisms.
+</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">descriptors</td>
+    <td valign="top">This is the base directory from which descriptors are selected.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">The directory where the serialized deployment descriptors will be written</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">This is the classpath to use to run the underlying weblogic ddcreator tool.
+                     This must include the <code>weblogic.ejb.utils.DDCreator</code> class</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>&lt;ddcreator descriptors=&quot;${dd.dir}&quot;
+           dest=&quot;${gen.classes}&quot;
+           classpath=&quot;${descriptorbuild.classpath}&quot;&gt;
+  &lt;include name=&quot;*.txt&quot;/&gt;
+&lt;/ddcreator&gt;
+</pre>
+
+<hr>
+<h2><a name="ejbc">ejbc</a></h2>
+<h3><b>Description:</b></h3>
+<p>The ejbc task will run Weblogic's ejbc tool. This tool will take a serialized deployment descriptor,
+examine the various EJB interfaces and bean classes and then generate the required support classes
+necessary to deploy the bean in a Weblogic EJB container. This will include the RMI stubs and skeletons
+as well as the classes which implement the bean's home and remote interfaces.</p>
+<p>
+The ant task which runs this tool is able to compile several beans in a single operation. The beans to be
+compiled are selected by including their serialized deployment descriptors. The standard ant
+<code>include</code> and <code>exclude</code> constructs can be used to select the deployment descriptors
+to be included. </p>
+<p>
+Each descriptor is examined to determine whether the generated classes are out of date and need to be
+regenerated. The deployment descriptor is de-serialized to discover the home, remote and
+implementation classes. The corresponding source files are determined and checked to see their
+modification times. These times and the modification time of the serialized descriptor itself are
+compared with the modification time of the generated classes. If the generated classes are not present
+or are out of date, the ejbc tool is run to generate new versions.</p>
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">descriptors</td>
+    <td valign="top">This is the base directory from which the serialized deployment descriptors are selected.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">The base directory where the generated classes, RIM stubs and RMI skeletons are written</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">The name of a manifest file to be written. This manifest will contain an entry for each EJB processed</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The base directory of the source tree containing the source files of the home interface,
+                     remote interface and bean implementation classes.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">This classpath must include both the <code>weblogic.ejbc</code> class and the
+                     class files of the bean, home interface, remote interface, etc of the bean being
+                     processed.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgenerated</td>
+    <td>Controls whether ejbc will keep the
+        intermediate Java files used to build the class files. This can be
+        useful when debugging.</td>
+    <td>No, defaults to false.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>&lt;ejbc descriptors=&quot;${gen.classes}&quot;
+           src=&quot;${src.dir}&quot;
+           dest=&quot;${gen.classes}&quot;
+           manifest=&quot;${build.manifest}&quot;
+           classpath=&quot;${descriptorbuild.classpath}&quot;&gt;
+  &lt;include name=&quot;*.ser&quot;/&gt;
+&lt;/ejbc&gt;
+</pre>
+
+<hr>
+<h2>
+<a NAME="iplanet-ejbc"></a>iplanet-ejbc</h2>
+
+<h3>
+<b>Description:</b></h3>
+Task to compile EJB stubs and skeletons for the iPlanet Application Server
+6.0.  Given a standard EJB 1.1 XML descriptor as well as an iAS-specific
+EJB descriptor, this task will generate the stubs and skeletons required
+to deploy the EJB to iAS.  Since the XML descriptors can include multiple
+EJBs, this is a convenient way of specifying many EJBs in a single Ant
+task.
+<p>For each EJB specified, the task will locate the three classes that
+comprise the EJB in the destination directory.  If these class files
+cannot be located in the destination directory, the task will fail. The
+task will also attempt to locate the EJB stubs and skeletons in this directory.
+If found, the timestamps on the stubs and skeletons will be checked to
+ensure they are up to date. Only if these files cannot be found or if they
+are out of date will the iAS ejbc utility be called to generate new stubs
+and skeletons.</p>
+<h3>
+Parameters:</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP><b>Attribute</b></td>
+
+<td VALIGN=TOP><b>Description</b></td>
+
+<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>ejbdescriptor</td>
+
+<td VALIGN=TOP>Standard EJB 1.1 XML descriptor (typically titled "ejb-jar.xml").</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>iasdescriptor</td>
+
+<td VALIGN=TOP>iAS-specific EJB XML descriptor (typically titled "ias-ejb-jar.xml").</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>dest</td>
+
+<td VALIGN=TOP>The is the base directory where the RMI stubs and skeletons
+are written. In addition, the class files for each bean (home interface,
+remote interface, and EJB implementation) must be found in this directory.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>classpath</td>
+
+<td VALIGN=TOP>The classpath used when generating EJB stubs and skeletons.
+If omitted, the classpath specified when Ant was started will be used.
+Nested "classpath" elements may also be used.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>keepgenerated</td>
+
+<td VALIGN=TOP>Indicates whether or not the Java source files which are
+generated by ejbc will be saved or automatically deleted. If "yes", the
+source files will be retained. If omitted, it defaults to "no". </td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>debug</td>
+
+<td>Indicates whether or not the ejbc utility should log additional debugging
+statements to the standard output. If "yes", the additional debugging statements
+will be generated.  If omitted, it defaults to "no". </td>
+
+<td ALIGN=CENTER VALIGN=TOP>
+<center>No</center>
+</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>iashome</td>
+
+<td>May be used to specify the "home" directory for this iAS installation.
+This is used to find the ejbc utility if it isn't included in the user's
+system path. If specified, it should refer to the "[install-location]/iplanet/ias6/ias"
+directory. If omitted, the ejbc utility must be on the user's system path. </td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+</table>
+
+<h3>
+Examples</h3>
+
+<pre>&lt;iplanet-ejbc ejbdescriptor="ejb-jar.xml"
+              iasdescriptor="ias-ejb-jar.xml"
+              dest="${build.classesdir}"
+              classpath="${ias.ejbc.cpath}"/&gt;
+
+
+&lt;iplanet-ejbc ejbdescriptor="ejb-jar.xml"
+              iasdescriptor="ias-ejb-jar.xml"
+              dest="${build.classesdir}"
+              keepgenerated="yes"
+              debug="yes"
+              iashome="${ias.home}"&gt;
+              &lt;classpath&gt;
+                  &lt;pathelement path="."/&gt;
+                  &lt;pathelement path="${build.classpath}"/&gt;
+              &lt;/classpath&gt;
+&lt;/iplanet-ejbc&gt;
+
+
+</pre>
+
+<hr>
+<h2><a name="wlrun">wlrun</a></h2>
+<h3><b>Description:</b></h3>
+
+<p>The <code>wlrun</code> task is used to start a weblogic server. The task runs
+a weblogic instance in a separate Java Virtual Machine. A number of parameters
+are used to control the operation of the weblogic instance. Note that the task,
+and hence ant, will not complete until the weblogic instance is stopped.</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required for 4.5.1 and 5.1</b></td>
+    <td align="center" valign="top"><b>Required for 6.0</b></td>
+  </tr>
+  <tr>
+    <td valign="top">BEA Home</td>
+    <td valign="top">The location of the BEA Home where the server's config is defined.
+                     If this attribute is present, wlrun assumes that the server will
+                     be running under Weblogic 6.0</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">home</td>
+    <td valign="top">The location of the weblogic home that is to be used. This is the location
+                     where weblogic is installed.</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">Yes. Note this is the absolute location, not relative to
+                                    BEA home.</td>
+  </tr>
+  <tr>
+    <td valign="top">Domain</td>
+    <td valign="top">The domain to which the server belongs.</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be used with the Java Virtual Machine that runs the Weblogic
+                     Server. Prior to Weblogic 6.0, this is typically set to the Weblogic
+                     boot classpath. Under Weblogic 6.0 this should include all the
+                     weblogic jars</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">wlclasspath</td>
+    <td valign="top">The weblogic classpath used by the Weblogic Server.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">N/A</td>
+  </tr>
+  <tr>
+    <td valign="top">properties</td>
+    <td valign="top">The name of the server's properties file within the weblogic home directory
+                     used to control the weblogic instance.</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">N/A</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the weblogic server within the weblogic home which is to be run.
+                     This defaults to &quot;myserver&quot;</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">policy</td>
+    <td valign="top">The name of the security policy file within the weblogic home directory that
+                     is to be used. If not specified, the default policy file <code>weblogic.policy</code>
+                     is used.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The management username used to manage the server</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The server's management password</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">pkPassword</td>
+    <td valign="top">The private key password so the server can decrypt the SSL
+                     private key file</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmargs</td>
+    <td valign="top">Additional argument string passed to the Java Virtual Machine used to run the
+                     Weblogic instance.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">weblogicMainClass</td>
+    <td valign="top">name of the main class for weblogic</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<p>The wlrun task supports nested &lt;classpath&gt; and &lt;wlclasspath&gt;
+elements to set the repsective classpaths.</p>
+
+<h3>Examples</h3>
+
+<p>This example shows the use of wlrun to run a server under Weblogic 5.1</p>
+
+<pre>
+    &lt;wlrun taskname=&quot;myserver&quot;
+           classpath=&quot;${weblogic.boot.classpath}&quot;
+           wlclasspath=&quot;${weblogic.classes}:${code.jars}&quot;
+           name=&quot;myserver&quot;
+           home=&quot;${weblogic.home}&quot;
+           properties=&quot;myserver/myserver.properties&quot;/&gt;
+</pre>
+
+<p>This example shows wlrun being used to run the petstore server under
+Weblogic 6.0</p>
+
+<pre>
+    &lt;wlrun taskname=&quot;petstore&quot;
+           classpath=&quot;${weblogic.classes}&quot;
+           name=&quot;petstoreServer&quot;
+           domain=&quot;petstore&quot;
+           home=&quot;${weblogic.home}&quot;
+           password=&quot;petstorePassword&quot;
+           beahome=&quot;${bea.home}&quot;/&gt;
+</pre>
+
+<hr>
+<h2><a name="wlstop">wlstop</a></h2>
+<h3><b>Description:</b></h3>
+
+<p>The <code>wlstop</code> task is used to stop a weblogic instance which is
+currently running. To shut down an instance you must supply both a username and
+a password. These will be stored in the clear in the build script used to stop
+the instance. For security reasons, this task is therefore only appropriate in a
+development environment. </p>
+
+<p>This task works for most version of Weblogic, including 6.0. You need to
+specify the BEA Home to have this task work correctly under 6.0</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">BEAHome</td>
+    <td valign="top">This attribute selects Weblogic 6.0 shutdown.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be used with the Java Virtual Machine that runs the Weblogic
+                     Shutdown command.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">user</td>
+    <td valign="top">The username of the account which will be used to shutdown the server</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password for the account specified in the user parameter.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The URL which describes the port to which the server is listening for T3 connections.
+                     For example, t3://localhost:7001</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">delay</td>
+    <td valign="top">The delay in seconds after which the server will stop. This defaults to an
+                     immediate shutdown.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Element</h3>
+
+<p>The classpath of the wlstop task can be set by a &lt;classpath&gt; nested element.</p>
+
+<h3>Examples</h3>
+
+<p>This example show the shutdown for a Weblogic 6.0 server</p>
+
+<pre>
+    &lt;wlstop classpath=&quot;${weblogic.classes}&quot;
+            user=&quot;system&quot;
+            url=&quot;t3://localhost:7001&quot;
+            password=&quot;foobar&quot;
+            beahome=&quot;${bea.home}&quot;/&gt;
+</pre>
+
+<hr>
+
+<h2><a name="ejbjar">ejbjar</a></h2>
+<h3><b>Description:</b></h3>
+
+<p>This task is designed to support building of EJB jar files (EJB 1.1 &amp; 2.0).
+Support is currently provided for 'vanilla' EJB jar files - i.e. those containing only
+the user generated class files and the standard deployment descriptor. Nested
+elements provide support for vendor specific deployment tools. These currently
+include: </p>
+<ul>
+  <li>Borland Application Server 4.5</li>
+  <li>iPlanet Application Server 6.0</li>
+  <li>JBoss 2.1 and above</li>
+  <li>Weblogic 5.1/6.0 session/entity beans using the weblogic.ejbc tool</li>
+  <li>IBM WebSphere 4.0</li>
+  <li>TOPLink for WebLogic 2.5.1-enabled entity beans</li>
+  <li><a href="http://www.objectweb.org/jonas/">JOnAS</a> 2.4.x and 2.5 Open Source EJB server</li>
+</ul>
+
+
+<p>The task works as a directory scanning task, and performs an action for each
+deployment descriptor found. As such the includes and excludes should be set
+to ensure that all desired EJB descriptors are found, but no application
+server descriptors are found. For each descriptor found, ejbjar will parse the
+deployment descriptor to determine the necessary class files which implement the
+bean. These files are assembled along with the deployment descriptors into a
+well formed EJB jar file. Any support files which need to be included in the
+generated jar can be added with the &lt;support&gt; nested element. For each
+class included in the jar, ejbjar will scan for any super classes or super
+interfaces. These will be added to the generated jar.</p>
+
+<p>If no nested vendor-specific deployment elements are present, the task will
+simply generate a generic EJB jar. Such jars are typically used as the input to
+vendor-specific deployment tools. For each nested deployment element, a vendor
+specific deployment tool is run to generate a jar file ready for deployment in
+that vendor's EJB container. </p>
+
+<p>The jar files are only built if they are out of date.  Each deployment tool
+element will examine its target jar file and determine if it is out of date with
+respect to the class files and deployment descriptors that make up the bean. If
+any of these files are newer than the jar file the jar will be rebuilt otherwise
+a message is logged that the jar file is up to date.</p>
+
+<p>The task uses the
+<a href="http://jakarta.apache.org/bcel"> jakarta-BCEL </a> framework
+to extract all dependent classes. This
+means that, in addition to the classes that are mentioned in the
+deployment descriptor, any classes that these depend on are also
+automatically included in the jar file.</p>
+
+
+<h3>Naming Convention</h3>
+
+Ejbjar handles the processing of multiple beans, and it uses a set of naming
+conventions to determine the name of the generated EJB jars. The naming convention
+that is used is controlled by the &quot;naming&quot; attribute. It supports the
+following values
+<ul>
+
+<li>descriptor</li>
+<p>This is the default naming scheme. The name of the generated bean is derived from the
+name of the deployment descriptor.  For an Account bean, for example, the deployment
+descriptor would be named <code>Account-ejb-jar.xml</code>. Vendor specific descriptors are
+located using the same naming convention. The weblogic bean, for example, would be named
+<code>Account-weblogic-ejb-jar.xml</code>. Under this arrangement, the deployment descriptors
+can be separated from the code implementing the beans, which can be useful when the same bean code
+is deployed in separate beans.
+</p>
+
+<p>This scheme is useful when you are using one bean per EJB jar and where you may be
+deploying the same bean classes in different beans, with different deployment characteristics.
+
+<li>ejb-name</li>
+<p> This naming scheme uses the &lt;ejb-name&gt; element from the deployment descriptor to
+determine the bean name. In this situation, the descriptors normally use the generic
+descriptor names, such as <code>ejb-jar.xml</code> along with any associated vendor specific descriptor
+names. For example, If the value of the &lt;ejb-name&gt; were to be given in the deployment descriptor
+as follows:
+<pre>
+&lt;ejb-jar&gt;
+    &lt;enterprise-beans&gt;
+        &lt;entity&gt;
+            &lt;ejb-name&gt;Sample&lt;/ejb-name&gt;
+            &lt;home&gt;org.apache.ant.ejbsample.SampleHome&lt;/home&gt;
+</pre>
+
+then the name of the generated bean would be <code>Sample.jar</code>
+</p>
+<p> This scheme is useful where you want to use the standard deployment descriptor names, which may be more
+compatible with other EJB tools. This scheme must have one bean per jar.
+</p>
+<li>directory</li>
+<p>
+In this mode, the name of the generated bean jar is derived from the directory
+containing the deployment descriptors. Again the deployment descriptors typically use
+the standard filenames. For example, if the path to the deployment descriptor is
+<code>/home/user/dev/appserver/dd/sample</code>, then the generated
+bean will be named <code>sample.jar</code>
+</p>
+<p>
+This scheme is also useful when you want to use standard style descriptor names. It is often
+most useful when the  descriptors are located in the same directory as the bean source code,
+although that is not mandatory. This scheme can handle multiple beans per jar.
+</p>
+
+<li>basejarname</li>
+<p>
+The final scheme supported by the &lt;ejbjar&gt; task is used when you want to specify the generated
+bean jar name directly. In this case the name of the generated jar is specified by the
+&quot;basejarname&quot; attribute. Since all generated beans will have the same name, this task should
+be only used when each descriptor is in its own directory.
+</p>
+
+<p>
+This scheme is most appropriate when you are using multiple beans per jar and only process a single
+deployment descriptor. You typically want to specify the name of the jar and not derive it from the
+beans in the jar.
+</p>
+
+</ul>
+
+<a name="ejbjar_deps"></a><h3>Dependencies</h3>
+<p>In addition to the bean classes, ejbjar is able to ad additional classes to the generated
+ejbjar. These classes are typically the support classes which are used by the bean's classes or as
+parameters to the bean's methods.</p>
+
+<p>In versions of Ant prior to 1.5, ejbjar used reflection and attempted to add the super
+classes and super interfaces of the bean classes. For this technique to work the bean
+classes had to be loaded into Ant's JVM. This was not always possible due to class dependencies.
+</p>
+
+<p>The ejbjar task in Ant releases 1.5 and later uses the
+<a href="http://jakarta.apache.org/bcel"> jakarta-BCEL </a> library
+to analyze the bean's class
+files directly, rather than loading them into the JVM. This also allows ejbjar to add all
+of the required support classes for a bean and not just super classes.
+</p>
+
+<p>In Ant 1.5, a new attribute, <code>dependency</code> has been introduced to allow the
+buildfile to control what additional classes are added to the generated jar. It takes three
+possible values</p>
+<ul>
+<li><code>none</code> - only the bean classes and interfaces described in the bean's
+descriptor are added to the jar.</li>
+<li><code>super</code> - this is the default value and replicates the original ejbjar
+behaviour where super classes and super interfaces are added to the jar</li>
+<li><code>full</code> - In this mode all classes used by the bean's classes and interfaces
+are added to the jar</li>
+</ul>
+<p>The <code>super</code> and <code>full</code> values require the
+<a href="http://jakarta.apache.org/bcel"> jakarta-BCEL </a> library
+to be available. If it is not, ejbjar will drop back to the behaviour corresponding to
+the value <code>none</code>.</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">descriptordir</td>
+    <td valign="top">The base directory under which to scan for EJB
+                     deployment descriptors. If this attribute is not
+                     specified, then the deployment descriptors must be
+                     located in the directory specified by the 'srcdir'
+                     attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcdir</td>
+    <td valign="top">The base directory containing the .class files that
+                     make up the bean. Included are the home- remote- pk-
+                     and implementation- classes and all classes, that these
+                     depend on. Note that this can be the same as the
+                     descriptordir if all files are in the same directory
+                     tree.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which generated jar files are
+                     deposited. Jar files are deposited in directories
+                     corresponding to their location within the descriptordir
+                     namespace. Note that this attribute is only used if the
+                     task is generating generic jars (i.e. no vendor-specific
+                     deployment elements have been specified).</td>
+    <td valign="top" align="center">Yes, unless vendor-specific deployment elements
+    have been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">cmpversion</td>
+    <td valign="top">Either <code>1.0</code> or <code>2.0</code>.<br/>
+    Default is <code>1.0</code>.<br/>
+    A CMP 2.0 implementation exists currently only for JBoss.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">naming</td>
+    <td valign="top">Controls the naming convention used to name generated
+                     EJB jars. Please refer to the description above.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">basejarname</td>
+    <td valign="top">The base name that is used for the generated jar files.
+                     If this attribute is specified, the generic jar file name
+                     will use this value as the prefix (followed by the value
+                     specified in the 'genericjarsuffix' attribute) and the
+                     resultant ejb jar file (followed by any suffix specified
+                     in the nested element).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">basenameterminator</td>
+    <td valign="top">String value used to substring out a string from the name
+                     of each deployment descriptor found, which is then used to
+                     locate related deployment descriptors (e.g. the WebLogic
+                     descriptors). For example, a basename of '.' and a
+                     deployment descriptor called 'FooBean.ejb-jar.xml' would
+                     result in a basename of 'FooBean' which would then be used
+                     to find FooBean.weblogic-ejb-jar.xml and
+                     FooBean.weblogic-cmp-rdbms-jar.xml, as well as to create
+                     the filenames of the jar files as FooBean-generic.jar and
+                     FooBean-wl.jar. This attribute is not used if the
+                     'basejarname' attribute is specified.</td>
+    <td valign="top" align="center">No, defaults to '-'.</td>
+  </tr>
+  <tr>
+    <td valign="top">genericjarsuffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the generic EJB jar
+                     file.</td>
+    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">This classpath is used when resolving classes which
+                     are to be added to the jar. Typically nested deployment
+                     tool elements will also support a classpath which
+                     will be combined with this classpath when resolving
+                     classes</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">flatdestdir</td>
+    <td valign="top">Set this attribute to true if you want all generated jars
+                     to be placed in the root of the destdir, rather than
+                     according to the location of the deployment descriptor
+                     within the descriptor dir hierarchy.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">dependency</td>
+    <td valign="top">This attribute controls which additional classes and interfaces
+                     are added to the jar. Please refer to the description
+                     <a href="#ejbjar_deps">above</a></td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<p>In addition to the vendor specific nested elements, the ejbjar task provides
+three nested elements. </p>
+
+<h4>Classpath</h4>
+
+<p>The &lt;classpath&gt; nested element allows the classpath
+to be set. It is useful when setting the classpath from a reference path. In all
+other respects the behaviour is the same as the classpath attribute.</p>
+
+<a name="ejbjar-dtd"></a><h4>dtd</h4>
+
+<p>The &lt;dtd&gt; element is used to specify the local location of DTDs to be
+used when parsing the EJB deployment descriptor. Using a local DTD is much
+faster than loading the DTD across the net. If you are running ejbjar behind a
+firewall you may not even be able to access the remote DTD. The supported
+vendor-specific nested elements know the location of the required DTDs within
+the vendor class hierarchy and, in general, this means &lt;dtd&gt; elements are
+not required. It does mean, however, that the vendor's class hierarchy must be
+available in the classpath when Ant is started. If your want to run Ant without
+requiring the vendor classes in the classpath, you would need to use a
+&lt;dtd&gt; element.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">The public Id of the DTD for which the location is being provided</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">The location of the local copy of the DTD. This can either be a
+                     file or a resource loadable from the classpath.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>support</h4>
+
+<p>The &lt;support&gt; nested element is used to supply additional classes
+(files) to be included in the generated jars. The &lt;support&gt; element is a
+<a href="../CoreTypes/fileset.html">FileSet</a>, so it can either reference a fileset declared elsewhere or it can be
+defined in-place with the appropriate &lt;include&gt; and &lt;exclude&gt; nested
+elements. The files in the support fileset are added into the generated EJB jar
+in the same relative location as their location within the support fileset. Note
+that when ejbjar generates more than one jar file, the support files are added
+to each one.</p>
+
+<h3>Vendor-specific deployment elements</h3>
+
+Each vendor-specific nested element controls the generation of a deployable jar
+specific to that vendor's EJB container. The parameters for each supported
+deployment element are detailed here.
+
+
+<h3><a name="ejbjar_jboss">Jboss element</a></h3>
+
+<p>The jboss element searches for the JBoss specific deployment descriptors and adds them
+to the final ejb jar file. JBoss has two deployment descriptors:
+<ul><li>jboss.xml</li>
+<li>for container manager persistence:<br/>
+<table border="1">
+<tr><td><b>CMP version</b></td><td><b>File name</b></td></tr>
+<tr><td>CMP 1.0</td><td>jaws.xml</td></tr>
+<tr><td>CMP 2.0</td><td>jbosscmp-jdbc.xml</td></tr>
+</table>
+</li>
+</ul>
+<br/>
+. The JBoss server uses hot deployment and does
+not require compilation of additional stubs and skeletons.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which the generated weblogic ready
+                     jar files are deposited. Jar files are deposited in
+                     directories corresponding to their location within the
+                     descriptordir namespace. </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">genericjarsuffix</td>
+    <td valign="top">A generic jar is generated as an intermediate step in
+                     build the weblogic deployment jar. The suffix used to
+                     generate the generic jar file is not particularly
+                     important unless it is desired to keep the generic
+                     jar file. It should not, however, be the same
+                     as the suffix setting.</td>
+    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the JBoss EJB
+                     jar file.</td>
+    <td valign="top" align="center">No, defaults to '.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgeneric</td>
+    <td valign="top">This controls whether the generic file used as input to
+                     ejbc is retained.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+</table>
+
+
+<h3><a name="ejbjar_weblogic">Weblogic element</a></h3>
+
+<p>The weblogic element is used to control the weblogic.ejbc compiler for
+generating weblogic EJB jars. Prior to Ant 1.3, the method of locating CMP
+descriptors was to use the ejbjar naming convention. So if your ejb-jar was
+called, Customer-ejb-jar.xml, your weblogic descriptor was called Customer-
+weblogic-ejb-jar.xml and your CMP descriptor had to be Customer-weblogic-cmp-
+rdbms-jar.xml. In addition, the &lt;type-storage&gt; element in the weblogic
+descriptor had to be set to the standard name META-INF/weblogic-cmp-rdbms-
+jar.xml, as that is where the CMP descriptor was mapped to in the generated
+jar.</p>
+
+<p>There are a few problems with this scheme. It does not allow for more than
+one CMP descriptor to be defined in a jar and it is not compatible with the
+deployment descriptors generated by some tools.</p>
+
+<p>In Ant 1.3, ejbjar parses the weblogic deployment descriptor to discover the
+CMP descriptors, which are then included automatically. This behaviour is
+controlled by the newCMP attribute. Note that if you move to the new method of
+determining CMP descriptors, you will need to update your weblogic deployment
+descriptor's &lt;type-storage&gt; element. In the above example, you would
+define this as META-INF/Customer-weblogic-cmp-rdbms-jar.xml.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which the generated weblogic ready
+                     jar files are deposited. Jar files are deposited in
+                     directories corresponding to their location within the
+                     descriptordir namespace. </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">genericjarsuffix</td>
+    <td valign="top">A generic jar is generated as an intermediate step in
+                     build the weblogic deployment jar. The suffix used to
+                     generate the generic jar file is not particularly
+                     important unless it is desired to keep the generic
+                     jar file. It should not, however, be the same
+                     as the suffix setting.</td>
+    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the WebLogic EJB
+                     jar file.</td>
+    <td valign="top" align="center">No, defaults to '.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be used when running the weblogic ejbc
+                     tool. Note that this tool typically requires the classes
+                     that make up the bean to be available on the classpath.
+                     Currently, however, this will cause the ejbc tool to be
+                     run in a separate VM</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">wlclasspath</td>
+    <td valign="top">Weblogic 6.0 will give a warning if the home and remote interfaces
+                     of a bean are on the system classpath used to run weblogic.ejbc.
+                     In that case, the standard weblogic classes should be set with
+                     this attribute (or equivalent nested element) and the
+                     home and remote interfaces located with the standard classpath
+                     attribute</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgeneric</td>
+    <td valign="top">This controls whether the generic file used as input to
+                     ejbc is retained.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">This allows for the selection of a different compiler
+                     to be used for the compilation of the generated Java
+                     files. This could be set, for example, to Jikes to
+                     compile with the Jikes compiler. If this is not set
+                     and the <code>build.compiler</code> property is set
+                     to jikes, the Jikes compiler will be used. If this
+                     is not desired, the value &quot;<code>default</code>&quot;
+                     may be given to use the default compiler</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">rebuild</td>
+    <td valign="top">This flag controls whether weblogic.ejbc is always
+                     invoked to build the jar file. In certain circumstances,
+                     such as when only a bean class has been changed, the jar
+                     can be generated by merely replacing the changed classes
+                     and not rerunning ejbc. Setting this to false will reduce
+                     the time to run ejbjar.
+                     </td>
+    <td valign="top" align="center">No, defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgenerated</td>
+    <td valign="top">Controls whether weblogic will keep the generated Java
+                     files used to build the class files added to the
+                     jar. This can be useful when debugging
+                     </td>
+    <td valign="top" align="center">No, defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">args</td>
+    <td valign="top">Any additional arguments to be passed to the weblogic.ejbc
+                     tool.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">weblogicdtd</td>
+    <td valign="top"><b>Deprecated</b>. Defines the location of the ejb-jar DTD in
+                     the weblogic class hierarchy. This should not be necessary if you
+                     have weblogic in your classpath. If you do not, you should use a
+                     nested &lt;dtd&gt; element, described above. If you do choose
+                     to use an attribute, you should use a
+                     nested &lt;dtd&gt; element.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">wldtd</td>
+    <td valign="top"><b>Deprecated</b>. Defines the location of the weblogic-ejb-jar
+                     DTD which covers the Weblogic specific deployment descriptors.
+                     This should not be necessary if you have weblogic in your
+                     classpath. If you do not, you should use a nested &lt;dtd&gt;
+                     element, described above.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">ejbdtd</td>
+    <td valign="top"><b>Deprecated</b>. Defines the location of the ejb-jar DTD in
+                     the weblogic class hierarchy. This should not be necessary if you
+                     have weblogic in your classpath. If you do not, you should use a
+                     nested &lt;dtd&gt; element, described above.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">newCMP</td>
+    <td valign="top">If this is set to true, the new method for locating
+                     CMP descriptors will be used.</td>
+    <td valign="top" align="center">No. Defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">oldCMP</td>
+    <td valign="top"><b>Deprecated</b> This is an antonym for newCMP which should be used instead.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">noEJBC</td>
+    <td valign="top">If this attribute is set to true, Weblogic's ejbc will not be run on the EJB jar.
+                     Use this if you prefer to run ejbc at deployment time.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">ejbcclass</td>
+    <td valign="top">Specifies the classname of the ejbc compiler. Normally ejbjar determines
+                     the appropriate class based on the DTD used for the EJB. The EJB 2.0 compiler
+                     featured in weblogic 6 has, however, been deprecated in version 7. When
+                     using with version 7 this attribute should be set to
+                     &quot;weblogic.ejbc&quot; to avoid the deprecation warning.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmargs</td>
+    <td valign="top">Any additional arguments to be passed to the Virtual Machine
+                     running weblogic.ejbc tool. For example to set the memory size,
+                     this could be jvmargs=&quot;-Xmx128m&quot;
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmdebuglevel</td>
+    <td valign="top">Sets the weblogic.StdoutSeverityLevel to use when running
+                     the Virtual Machine that executes ejbc. Set to 16 to avoid
+                     the warnings about EJB Home and Remotes being in the classpath
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">outputdir</td>
+    <td valign="top">If set ejbc will be given this directory as the output
+                     destination rather than a jar file. This allows for the
+                     generation of &quot;exploded&quot; jars.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<p>The weblogic nested element supports three nested elements. The
+first two, &lt;classpath&gt; and &lt;wlclasspath&gt;, are used to set the
+respective classpaths. These nested elements are useful when setting up
+class paths using reference Ids. The last, &lt;sysproperty&gt;, allows
+Java system properties to be set during the compiler run. This turns out
+to be necessary for supporting CMP EJB compilation in all environments.
+</p>
+
+<h3>TOPLink for Weblogic element</h3>
+
+<p><b><i>Deprecated</i></b></p>
+
+<p>The toplink element is no longer required. Toplink beans can now be built with the standard
+weblogic element, as long as the newCMP attribute is set to &quot;true&quot;
+</p>
+
+<p>The TopLink element is used to handle beans which use Toplink for the CMP operations. It
+is derived from the standard weblogic element so it supports the same set of attributes plus these
+additional attributes</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">toplinkdescriptor</td>
+    <td valign="top">This specifies the name of the TOPLink deployment descriptor file contained in the
+                     'descriptordir' directory.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">toplinkdtd</td>
+    <td valign="top">This specifies the location of the TOPLink DTD file. This can be a file path or
+                     a file URL. This attribute is not required, but using a local DTD is recommended.</td>
+    <td valign="top" align="center">No, defaults to dtd file at www.objectpeople.com.</td>
+  </tr>
+</table>
+
+
+<h3>Examples</h3>
+
+<p>This example shows ejbjar being used to generate deployment jars using a
+Weblogic EJB container. This example requires the naming standard to be used for
+the deployment descriptors. Using this format will create a ejb jar file for
+each variation of '*-ejb-jar.xml' that is found in the deployment descriptor
+directory.</p>
+
+<pre>
+    &lt;ejbjar srcdir=&quot;${build.classes}&quot;
+            descriptordir=&quot;${descriptor.dir}&quot;&gt;
+      &lt;weblogic destdir=&quot;${deploymentjars.dir}&quot;
+                classpath=&quot;${descriptorbuild.classpath}&quot;/&gt;
+      &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
+      &lt;exclude name=&quot;**/*weblogic*.xml&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<p>If weblogic is not in the Ant classpath, the following example
+shows how to specify the location of the weblogic DTDs. This
+example also show the use of a nested classpath element.</p>
+
+<pre>
+    &lt;ejbjar descriptordir=&quot;${src.dir}&quot; srcdir=&quot;${build.classes}&quot;&gt;
+       &lt;weblogic destdir=&quot;${deployment.webshop.dir}&quot;
+                 keepgeneric=&quot;true&quot;
+                 args=&quot;-g -keepgenerated ${ejbc.compiler}&quot;
+                 suffix=&quot;.jar&quot;
+                 oldCMP=&quot;false&quot;&gt;
+         &lt;classpath&gt;
+           &lt;pathelement path=&quot;${descriptorbuild.classpath}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/weblogic&gt;
+       &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
+       &lt;exclude name=&quot;**/*-weblogic-ejb-jar.xml&quot;/&gt;
+       &lt;dtd publicId=&quot;-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN&quot;
+            location=&quot;${weblogic.home}/classes/weblogic/ejb/deployment/xml/ejb-jar.dtd&quot;/&gt;
+       &lt;dtd publicId=&quot;-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN&quot;
+            location=&quot;${weblogic.home}/classes/weblogic/ejb/deployment/xml/weblogic-ejb-jar.dtd&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+
+<p>This example shows ejbjar being used to generate a single deployment jar
+using a Weblogic EJB container. This example does not require the deployment
+descriptors to use the naming standard. This will create only one ejb jar file -
+'TheEJBJar.jar'.</p>
+
+
+<pre>
+    &lt;ejbjar srcdir=&quot;${build.classes}&quot;
+            descriptordir=&quot;${descriptor.dir}&quot;
+            basejarname=&quot;TheEJBJar&quot;&gt;
+      &lt;weblogic destdir=&quot;${deploymentjars.dir}&quot;
+                classpath=&quot;${descriptorbuild.classpath}&quot;/&gt;
+      &lt;include name=&quot;**/ejb-jar.xml&quot;/&gt;
+      &lt;exclude name=&quot;**/weblogic*.xml&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<p>This example shows ejbjar being used to generate deployment jars for a TOPLink-enabled entity bean using a
+Weblogic EJB container. This example does not require the deployment descriptors to use the naming standard.
+This will create only one TOPLink-enabled ejb jar file - 'Address.jar'.</p>
+
+<pre>
+    &lt;ejbjar srcdir=&quot;${build.dir}&quot;
+            destdir=&quot;${solant.ejb.dir}&quot;
+            descriptordir=&quot;${descriptor.dir}&quot;
+            basejarname=&quot;Address&quot;&gt;
+            &lt;weblogictoplink destdir=&quot;${solant.ejb.dir}&quot;
+                    classpath=&quot;${java.class.path}&quot;
+                    keepgeneric=&quot;false&quot;
+                    toplinkdescriptor=&quot;Address.xml&quot;
+                    toplinkdtd=&quot;file:///dtdfiles/toplink-cmp_2_5_1.dtd&quot;
+                    suffix=&quot;.jar&quot;/&gt;
+            &lt;include name=&quot;**/ejb-jar.xml&quot;/&gt;
+            &lt;exclude name=&quot;**/weblogic-ejb-jar.xml&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<p>This final example shows how you would set-up ejbjar under Weblogic 6.0. It also shows the use of the
+&lt;support&gt; element to add support files</p>
+
+<pre>
+    &lt;ejbjar descriptordir=&quot;${dd.dir}&quot; srcdir=&quot;${build.classes.server}&quot;&gt;
+       &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
+       &lt;exclude name=&quot;**/*-weblogic-ejb-jar.xml&quot;/&gt;
+       &lt;support dir=&quot;${build.classes.server}&quot;&gt;
+            &lt;include name=&quot;**/*.class&quot;/&gt;
+       &lt;/support&gt;
+       &lt;weblogic destdir=&quot;${deployment.dir}&quot;
+                 keepgeneric=&quot;true&quot;
+                 suffix=&quot;.jar&quot;
+                 rebuild=&quot;false&quot;&gt;
+         &lt;classpath&gt;
+            &lt;pathelement path=&quot;${build.classes.server}&quot;/&gt;
+         &lt;/classpath&gt;
+         &lt;wlclasspath&gt;
+            &lt;pathelement path=&quot;${weblogic.classes}&quot;/&gt;
+         &lt;/wlclasspath&gt;
+       &lt;/weblogic&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+
+<h3><a name="ejbjar_websphere">WebSphere element</a></h3>
+
+<p>The websphere element searches for the websphere specific deployment descriptors and
+adds them to the final ejb jar file. Websphere has two specific descriptors for session
+beans:
+<ul>
+   <li>ibm-ejb-jar-bnd.xmi</li>
+   <li>ibm-ejb-jar-ext.xmi</li>
+</ul>
+and another two for container managed entity beans:
+<ul>
+   <li>Map.mapxmi</li>
+   <li>Schema.dbxmi</li>
+</ul>
+In terms of WebSphere, the generation of container code and stubs is called <code>deployment</code>.
+This step can be performed by the websphere element as part of the jar generation process. If the
+switch <code>ejbdeploy</code> is on, the ejbdeploy tool from the websphere toolset is called for
+every ejb-jar. Unfortunately, this step only works, if you use the ibm jdk. Otherwise, the rmic
+(called by ejbdeploy) throws a ClassFormatError. Be sure to switch ejbdeploy off, if run ant with
+sun jdk.
+</p>
+
+<p>
+For the websphere element to work, you have to provide a complete classpath, that contains all
+classes, that are required to reflect the bean classes. For ejbdeploy to work, you must also provide
+the classpath of the ejbdeploy tool and set the <i>websphere.home</i> property (look at the examples below).
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which the generated weblogic ready
+                     jar files are deposited. Jar files are deposited in
+                     directories corresponding to their location within the
+                     descriptordir namespace. </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">ejbdeploy</td>
+    <td valign="top">Decides wether ejbdeploy is called. When you set this to true,
+                     be sure, to run ant with the ibm jdk.</td>
+    <td valign="top" align="center">No, defaults to true</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the WebLogic EJB
+                     jar file.</td>
+    <td valign="top" align="center">No, defaults to '.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgeneric</td>
+    <td valign="top">This controls whether the generic file used as input to
+                     ejbdeploy is retained.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">rebuild</td>
+    <td valign="top">This controls whether ejbdeploy is called although no changes
+                     have occurred.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">tempdir</td>
+    <td valign="top">A directory, where ejbdeploy will write temporary files</td>
+    <td valign="top" align="center">No, defaults to '_ejbdeploy_temp'.</td>
+  </tr>
+  <tr>
+    <td valign="top">dbName<br>dbSchema</td>
+    <td valign="top">These options are passed to ejbdeploy.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dbVendor</td>
+    <td valign="top">This option is passed to ejbdeploy. Valid options are for example:
+                     <ul>
+                     <li>SQL92</li> <li>SQL99</li> <li>DB2UDBWIN_V71</li>
+                     <li>DB2UDBOS390_V6</li> <li>DB2UDBAS400_V4R5</li> <li>ORACLE_V8</li>
+                     <li>INFORMIX_V92</li> <li>SYBASE_V1192</li> <li>MYSQL_V323</li>
+                     <li>MSSQLSERVER_V7</li>
+                     </ul>
+                     This is also used to determine the name of the Map.mapxmi and
+                     Schema.dbxmi files, for example Account-DB2UDBWIN_V71-Map.mapxmi
+                     and Account-DB2UDBWIN_V71-Schema.dbxmi.
+                     </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">codegen<br>quiet<br>novalidate<br>noinform<br>trace<br>
+                     use35MappingRules</td>
+    <td valign="top">These options are all passed to ejbdeploy. All options
+                     except 'quiet' default to false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">rmicOptions</td>
+    <td valign="top">This option is passed to ejbdeploy and will be passed
+                     on to rmic.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p>This example shows ejbjar being used to generate deployment jars for all deployment descriptors
+in the descriptor dir:</p>
+
+<pre>
+     &lt;property name=&quot;webpshere.home&quot; value=&quot;${was4.home}&quot;/&gt;
+     &lt;ejbjar srcdir="${build.class}" descriptordir="etc/ejb"&gt;
+      &lt;include name="*-ejb-jar.xml"/&gt;
+      &lt;websphere dbvendor="DB2UDBOS390_V6"
+                 ejbdeploy="true"
+                 oldCMP="false"
+                 tempdir="/tmp"
+                 destdir="${dist.server}"&gt;
+        &lt;wasclasspath&gt;
+          &lt;pathelement location="${was4.home}/deploytool/itp/plugins/org.eclipse.core.boot/boot.jar"/&gt;
+          &lt;pathelement location="${was4.home}/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime/batch.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/xerces.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/ivjejb35.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/j2ee.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/vaprt.jar"/&gt;
+        &lt;/wasclasspath&gt;
+      &lt;classpath&gt;
+        &lt;path refid="build.classpath"/&gt;
+      &lt;/classpath&gt;
+      &lt;/websphere&gt;
+      &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"
+           location="${lib}/dtd/ejb-jar_1_1.dtd"/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<h3><a name="ejbjar_iplanet">iPlanet Application Server (iAS) element</a></h3>
+
+The &lt;iplanet&lt; nested element is used to build iAS-specific stubs and
+
+skeletons and construct a JAR file which may be deployed to the iPlanet
+Application Server 6.0.  The build process will always determine if
+the EJB stubs/skeletons and the EJB-JAR file are up to date, and it will
+do the minimum amount of work required.
+<p>Like the WebLogic element, a naming convention for the EJB descriptors
+is most commonly used to specify the name for the completed JAR file.
+For example, if the EJB descriptor ejb/Account-ejb-jar.xml is found in
+the descriptor directory, the iplanet element will search for an iAS-specific
+EJB descriptor file named ejb/Account-ias-ejb-jar.xml (if it isn't found,
+the task will fail) and a JAR file named ejb/Account.jar will be written
+in the destination directory.  Note that when the EJB descriptors
+are added to the JAR file, they are automatically renamed META-INF/ejb-jar.xml
+and META-INF/ias-ejb-jar.xml.</p>
+<p>Of course, this naming behaviour can be modified by specifying attributes
+in the ejbjar task (for example, basejarname, basenameterminator, and flatdestdir)
+as well as the iplanet element (for example, suffix).  Refer to the
+appropriate documentation for more details.</p>
+<h3>
+Parameters:</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP><b>Attribute</b></td>
+
+<td VALIGN=TOP><b>Description</b></td>
+
+<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>destdir</td>
+
+<td VALIGN=TOP>The base directory into which the generated JAR files will
+be written. Each JAR file is written in directories which correspond to
+their location within the "descriptordir" namespace.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>classpath</td>
+
+<td VALIGN=TOP>The classpath used when generating EJB stubs and skeletons.
+If omitted, the classpath specified in the "ejbjar" parent task will be
+used.  If specified, the classpath elements will be prepended to the
+classpath specified in the parent "ejbjar" task. Note that nested "classpath"
+elements may also be used.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>keepgenerated</td>
+
+<td VALIGN=TOP>Indicates whether or not the Java source files which are
+generated by ejbc will be saved or automatically deleted. If "yes", the
+source files will be retained.  If omitted, it defaults to "no". </td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>debug</td>
+
+<td>Indicates whether or not the ejbc utility should log additional debugging
+statements to the standard output. If "yes", the additional debugging statements
+will be generated.  If omitted, it defaults to "no". </td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>iashome</td>
+
+<td>May be used to specify the "home" directory for this iAS installation.
+This is used to find the ejbc utility if it isn't included in the user's
+system path.  If specified, it should refer to the [install-location]/iplanet/ias6/ias
+directory.  If omitted, the ejbc utility must be on the user's system
+path. </td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>suffix</td>
+
+<td>String value appended to the JAR filename when creating each JAR.
+If omitted, it defaults to ".jar". </td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+</table>
+
+<p>As noted above, the iplanet element supports additional &lt;classpath&gt;
+nested elements.</p>
+<h3>
+Examples</h3>
+This example demonstrates the typical use of the &lt;iplanet&gt; nested element.
+It will name each EJB-JAR using the "basename" prepended to each standard
+EJB descriptor.  For example, if the descriptor named "Account-ejb-jar.xml"
+is processed, the EJB-JAR will be named "Account.jar"
+<pre>    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"&gt;
+
+            &lt;iplanet destdir="${assemble.ejbjar}"
+                     classpath="${ias.ejbc.cpath}"/&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+    &lt;/ejbjar&gt;</pre>
+
+This example demonstrates the use of a nested classpath element as well
+as some of the other optional attributes.
+<pre>    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"&gt;
+
+            &lt;iplanet destdir="${assemble.ejbjar}"
+                     iashome="${ias.home}"
+                     debug="yes"
+                     keepgenerated="yes"&gt;
+                     &lt;classpath&gt;
+                         &lt;pathelement path="."/&gt;
+                         &lt;pathelement path="${build.classpath}"/&gt;
+                     &lt;/classpath&gt;
+            &lt;/iplanet&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+    &lt;/ejbjar&gt;</pre>
+
+This example demonstrates the use of basejarname attribute.  In this
+case, the completed EJB-JAR will be named "HelloWorld.jar"  If multiple
+EJB descriptors might be found, care must be taken to ensure that the completed
+JAR files don't overwrite each other.
+<pre>    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"
+            basejarname="HelloWorld"&gt;
+
+            &lt;iplanet destdir="${assemble.ejbjar}"
+                     classpath="${ias.ejbc.cpath}"/&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+    &lt;/ejbjar&gt;</pre>
+This example demonstrates the use of the dtd nested element. If the local
+copies of the DTDs are included in the classpath, they will be automatically
+referenced without the nested elements.  In iAS 6.0 SP2, these local DTDs are
+found in the [iAS-install-directory]/APPS directory.  In iAS 6.0 SP3, these
+local DTDs are found in the [iAS-install-directory]/dtd directory.
+<pre>    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"&gt;
+            &lt;iplanet destdir="${assemble.ejbjar}"&gt;
+                     classpath="${ias.ejbc.cpath}"/&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+
+            &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"
+                 location="${ias.home}/APPS/ejb-jar_1_1.dtd"/&gt;
+            &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD iAS Enterprise JavaBeans 1.0//EN"
+                 location="${ias.home}/APPS/IASEjb_jar_1_0.dtd"/&gt;
+    &lt;/ejbjar&gt;</pre>
+
+<h3><a name="ejbjar_jonas">JOnAS (Java Open Application Server) element</a></h3>
+
+<p>The &lt;jonas&gt; nested element is used to build JOnAS-specific stubs and
+skeletons thanks to the <code>GenIC</code> specific tool, and construct a JAR
+file which may be deployed to the JOnAS Application Server. The build process
+will always determine if the EJB stubs/skeletons and the EJB-JAR file are up to
+date, and it will do the minimum amount of work required.</p>
+
+<p>Like the WebLogic element, a naming convention for the EJB descriptors is
+most commonly used to specify the name for the completed JAR file. For example,
+if the EJB descriptor <code>ejb/Account-ejb-jar.xml</code> is found in the
+descriptor directory, the &lt;jonas&gt; element will search for a JOnAS-specific
+EJB descriptor file named <code>ejb/Account-jonas-ejb-jar.xml</code> and a JAR
+file named <code>ejb/Account.jar</code> will be written in the destination
+directory. But the &lt;jonas&gt; element can also use the JOnAS naming
+convention. With the same example as below, the EJB descriptor can also be named
+<code>ejb/Account.xml</code> (no base name terminator here) in the descriptor
+directory. Then the &lt;jonas&gt; element will search for a JOnAS-specific EJB
+descriptor file called <code>ejb/jonas-Account.xml</code>. This convention do
+not follow strictly the ejb-jar naming convention recommendation but is
+supported for backward compatibility with previous version of JOnAS.</p>
+
+<p>Note that when the EJB descriptors are added to the JAR file, they are
+automatically renamed <code>META-INF/ejb-jar.xml</code> and
+<code>META-INF/jonas-ejb-jar.xml</code>.</p>
+
+<p>Of course, this naming behavior can be modified by specifying attributes in
+the ejbjar task (for example, basejarname, basenameterminator, and flatdestdir)
+as well as the iplanet element (for example, suffix). Refer to the appropriate
+documentation for more details.</p>
+
+<h3> Parameters:</h3>
+
+<table border="1" cellspacing="0" cellpadding="2">
+  <tbody>
+    <tr>
+      <td valign="Top"><b>Attribute</b></td>
+      <td valign="Top"><b>Description</b></td>
+      <td align="Center" valign="Top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="Top">destdir</td>
+      <td valign="Top">The base directory into which the generated JAR files
+      will be written. Each JAR file is written in directories which correspond
+      to their location within the "<code>descriptordir</code>" namespace.</td>
+      <td align="Center" valign="Top">Yes</td>
+    </tr>
+    <tr>
+      <td valign="Top">jonasroot</td>
+      <td valign="Top">The root directory for JOnAS.</td>
+      <td valign="Top" align="Center">Yes</td>
+    </tr>
+    <tr>
+      <td valign="Top">classpath</td>
+      <td valign="Top">The classpath used when generating EJB stubs and
+      skeletons. If omitted, the classpath specified in the "ejbjar" parent
+      task will be used. If specified, the classpath elements will be prepended
+      to the classpath specified in the parent "ejbjar" task (see also the ORB
+      attribute documentation below). Note that nested "classpath" elements may
+      also be used.</td>
+      <td valign="Top" align="Center">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">keepgenerated</td>
+      <td valign="Top"><code>true</code> if the intermediate Java
+      source files generated by GenIC must be deleted or not. If
+      omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">nocompil</td>
+      <td valign="Top"><code>true</code> if the generated source files
+      must not be compiled via the java and rmi compilers. If omitted,
+      it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">novalidation</td>
+      <td valign="Top"><code>true</code> if the XML deployment descriptors must
+      be parsed without validation. If omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">javac</td>
+      <td valign="Top">Java compiler to use. If omitted, it defaults
+      to the value of <code>build.compiler</code> property.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">javacopts</td>
+      <td valign="Top">Options to pass to the java compiler.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">rmicopts</td>
+      <td valign="Top">Options to pass to the rmi compiler.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">secpropag</td>
+      <td valign="top"><code>true</code> if the RMI Skel. and
+      Stub. must be modified to implement the implicit propagation of
+      the security context (the transactional context is always
+      provided). If omitted, it defaults to <code>false</code>.</td>
+      <td valign="top" align="center">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">verbose</td>
+      <td valign="Top">Indicates whether or not to use -verbose switch. If
+      omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+      <td valign="Top">additionalargs</td>
+      <td valign="Top">Add additional args to GenIC.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">keepgeneric</td>
+      <td valign="Top"><code>true</code> if the generic JAR file used as input
+      to GenIC must be retained. If omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">suffix</td>
+      <td>String value appended to the JAR filename when creating each JAR.  If
+      omitted, it defaults to ".jar". </td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">orb</td>
+      <td>Choose your ORB : RMI, JEREMIE, DAVID. If omitted, it defaults to the
+      one present in classpath. If specified, the corresponding JOnAS JAR is
+      automatically added to the classpath.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">nogenic</td>
+      <td valign="Top">If this attribute is set to <code>true</code>,
+      JOnAS's GenIC will not be run on the EJB JAR. Use this if you
+      prefer to run GenIC at deployment time. If omitted, it defaults
+      to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+  </tbody>
+</table>
+
+<p>As noted above, the jonas element supports additional &lt;classpath&gt;
+nested elements.</p>
+
+<h3>Examples</h3>
+
+<p>This example shows ejbjar being used to generate deployment jars using a
+JOnAS EJB container. This example requires the naming standard to be used for
+the deployment descriptors. Using this format will create a EJB JAR file for
+each variation of &nbsp;'*-jar.xml' that is found in the deployment descriptor
+directory.&nbsp;</p>
+
+<pre>
+      &lt;ejbjar srcdir="${build.classes}"
+              descriptordir="${descriptor.dir}"&gt;
+        &lt;jonas destdir="${deploymentjars.dir}"
+             jonasroot="${jonas.root}"
+             orb="RMI"/&gt;
+        &lt;include name="**/*.xml"/&gt;
+        &lt;exclude name="**/jonas-*.xml"/&gt;
+        &lt;support dir="${build.classes}"&gt;
+             &lt;include name="**/*.class"/&gt;
+        &lt;/support&gt;
+      &lt;/ejbjar&gt;
+</pre>
+
+<p>This example shows ejbjar being used to generate a single deployment jar
+using a JOnAS EJB container. This example does require the deployment
+descriptors to use the naming standard. This will create only one ejb jar file -
+'TheEJBJar.jar'.</p>
+
+<pre>
+      &lt;ejbjar srcdir="${build.classes}"
+              descriptordir="${descriptor.dir}"
+              basejarname="TheEJBJar"&gt;
+        &lt;jonas destdir="${deploymentjars.dir}"
+                  jonasroot="${jonas.root}"
+                  suffix=".jar"
+                  classpath="${descriptorbuild.classpath}"/&gt;
+        &lt;include name="**/ejb-jar.xml"/&gt;
+        &lt;exclude name="**/jonas-ejb-jar.xml"/&gt;
+      &lt;/ejbjar&gt;
+</pre>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ftp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ftp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ftp.html	(revision 14989)
@@ -0,0 +1,455 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>FTP Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="ftp">FTP</a></h2>
+<h3>Description</h3>
+<p>The ftp task implements a basic FTP client that can send, receive,
+list, delete files, and create directories.  See below for descriptions and examples of how
+to perform each task.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#commons-net">Library Dependencies</a> for more information.</p>
+<p>The ftp task attempts to determine what file system is in place on the FTP server.
+Supported server types are Unix, NT, OS2, VMS, and OS400.  In addition, NT and OS400 servers
+which have been configured to display the directory in Unix style are also supported correctly.
+Otherwise, the system will default to Unix standards.
+<i>remotedir</i> must be specified in the exact syntax required by the ftp
+server. If the usual Unix conventions are not supported by the server,
+<i>separator</i> can be used to set the file separator that should be used
+instead.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
+tasks</a>, on how the inclusion/exclusion of files works, and how to
+write patterns.</p>
+<p>
+This task does not currently use the proxy information set by the
+<a href="setproxy.html">&lt;setproxy&gt;</a> task, and cannot go through
+a firewall via socks. 
+<p>
+<b>Warning: </b> there have been problems reported concerning the ftp get with newer attribute.
+Problems might be due to format of ls -l differing from what is expected by commons-net,
+for instance due to specificities of langage used by the ftp server in the directory listing.
+If you encounter such a problem, please send an email including a sample directory listing
+coming from your ftp server (ls -l on the ftp prompt).
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">server</td>
+    <td valign="top">the address of the remote ftp server.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">the port number of the remote ftp server.
+                     Defaults to port 21.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">userid</td>
+    <td valign="top">the login id to use on the ftp server.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">the login password to use on the ftp server.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">remotedir</td>
+    <td valign="top">remote directory on the
+                     ftp server
+                     see table below for detailed usage
+                     </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">the ftp action to perform, defaulting to &quot;send&quot;.  
+                     Currently supports &quot;put&quot;, &quot;get&quot;,
+                     &quot;del&quot;, &quot;list&quot;, &quot;chmod&quot;,
+                     &quot;mkdir&quot; and &quot;rmdir&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">binary</td>
+    <td valign="top">selects binary-mode (&quot;yes&quot;) or text-mode 
+                     (&quot;no&quot;) transfers.  
+                     Defaults to &quot;yes&quot;</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">passive</td>
+    <td valign="top">selects passive-mode (&quot;yes&quot;) transfers.  
+                     Defaults to &quot;no&quot;</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">displays information on each file transferred if set 
+                     to &quot;yes&quot;. Defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">depends</td>
+    <td valign="top">transfers only new or changed files if set to 
+                     &quot;yes&quot;. Defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newer</td>
+    <td valign="top">a synonym for <i>depends</i>.
+    see timediffauto and timediffmillis</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timediffauto</td>
+    <td valign="top">set to <code>&quot;true&quot;</code>
+    to make ant calculate the time difference between client and server.<br/>
+    <em>requires write access in the remote directory</em><br/>
+    Since ant 1.6</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timediffmillis</td>
+    <td valign="top">number of milliseconds to add to the time on the remote machine
+     to get the time on the local machine.<br/>
+    Since ant 1.6
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">separator</td>
+    <td valign="top">sets the file separator used on the ftp server.
+                     Defaults to &quot;/&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">umask</td>
+    <td valign="top">sets the default file permissions for new files,
+                     unix only.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">chmod</td>
+    <td valign="top">sets or changes file permissions for new or existing files,
+      unix only. If used with a put action, chmod will be issued for each file.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">listing</td>
+    <td valign="top">the file to write results of the &quot;list&quot; action.
+                     Required for the &quot;list&quot; action, ignored otherwise.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoreNoncriticalErrors</td>
+    <td valign="top">flag which permits the task to ignore some non-fatal error
+      codes sent by some servers during directory creation: wu-ftp in particular.
+      Default: false</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">skipFailedTransfers</td>
+    <td valign="top">flag which enables unsuccessful file put, delete
+    and get operations to be skipped with a warning and the
+    remainder of the files still transferred. Default: false</td>
+    <td valign="top" align="center">No</td>
+  </tr>  
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the copied files the same last modified
+      time as the original source files (applies to getting files only).
+      (<em>Note</em>: Ignored on Java 1.1)</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+</table>
+<h3>Note about remotedir attribute</h3>
+<table  border="1" cellpadding="2" cellspacing="0"
+ >
+  <tbody>
+    <tr>
+      <td style="vertical-align: top;" width="20%">Action<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">meaning of <code>remotedir</code><br>
+      </td>
+      <td style="vertical-align: top;">use of nested <code>fileset</code>
+(s)<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">send/put<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory to
+which the files are sent<br>
+      </td>
+      <td style="vertical-align: top;">they are used normally and
+evaluated on the local machine<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">recv/get<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which the files are retrieved<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset&nbsp;</code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">del/delete<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which files get deleted<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset <br>
+      </code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">list<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which files are listed<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset <br>
+      </code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">mkdir</td>
+      <td style="vertical-align: top;" width="40%">directory to create<br>
+      </td>
+      <td style="vertical-align: top;">not used<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">chmod</td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which the mode of files get changed<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset <br>
+      </code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">rmdir<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which directories get removed<br>
+      </td>
+      <td style="vertical-align: top;">the remote directories located
+under the <code>remotedir </code>matching the include/exclude
+patterns of the <code>fileset <br>
+      </code></td>
+    </tr>
+  </tbody>
+</table><h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+<p>The ftp task supports any number of nested <a
+href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a> elements to specify
+the files to be retrieved, or deleted, or listed, or whose mode you want to change.</p>
+<p>
+The attribute <code>followsymlinks</code> of <code>fileset</code> is fully supported on
+local (put) as well as remote (get, chmod, delete) filesets.
+<em>Before ant 1.6 there was no support of symbolic links in remote filesets.
+In order to exclude symbolic links (preserve the behavior of ant 1.5.x and older),
+you need to explicitly set <code>followsymlinks</code> to <code>false</code>.</em>
+</p>
+<p>
+Remote filesets do not support selectors.<br/>
+</p>
+
+<h3>Sending Files</h3>
+<p>The easiest way to describe how to send files is with a couple of examples:</p>
+<pre>
+  &lt;ftp server=&quot;ftp.apache.org&quot;
+       userid=&quot;anonymous&quot;
+       password=&quot;me@myorg.com&quot;&gt;
+    &lt;fileset dir=&quot;htdocs/manual&quot;/&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
+uploads all files in the <code>htdocs/manual</code> directory 
+to the default directory for that user.</p>
+<pre>  &lt;ftp server=&quot;ftp.apache.org&quot;
+       remotedir=&quot;incoming&quot;
+       userid=&quot;anonymous&quot;
+       password=&quot;me@myorg.com&quot;
+       depends=&quot;yes&quot;
+  &gt;
+    &lt;fileset dir=&quot;htdocs/manual&quot;/&gt;
+  &lt;/ftp&gt;</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
+uploads all new or changed files in the <code>htdocs/manual</code> directory 
+to the <code>incoming</code> directory relative to the default directory
+for <code>anonymous</code>.</p>
+<pre>  &lt;ftp server=&quot;ftp.apache.org&quot;
+       port=&quot;2121&quot;
+       remotedir=&quot;/pub/incoming&quot;
+       userid=&quot;coder&quot;
+       password=&quot;java1&quot;
+       depends=&quot;yes&quot;
+       binary=&quot;no&quot;
+  &gt;
+    &lt;fileset dir=&quot;htdocs/manual&quot;&gt;
+      &lt;include name=&quot;**/*.html&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;</pre>
+<p>Logs in to <code>ftp.apache.org</code> at port <code>2121</code> as 
+<code>coder</code> with password <code>java1</code> and uploads all new or 
+changed HTML files in the <code>htdocs/manual</code> directory to the 
+<code>/pub/incoming</code> directory. The files are transferred in text mode. Passive mode has been switched on to send files from behind a firewall.</p>
+<pre>  &lt;ftp server=&quot;ftp.nt.org&quot;
+       remotedir=&quot;c:\uploads&quot;
+       userid=&quot;coder&quot;
+       password=&quot;java1&quot;
+       separator=&quot;\&quot;
+       verbose=&quot;yes&quot;</pre>
+<PRE>
+  &gt;
+    &lt;fileset dir=&quot;htdocs/manual&quot;&gt;
+      &lt;include name=&quot;**/*.html&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;</PRE><p>Logs in to the Windows-based <code>ftp.nt.org</code> as 
+<code>coder</code> with password <code>java1</code> and uploads all 
+HTML files in the <code>htdocs/manual</code> directory to the 
+<code>c:\uploads</code> directory.  Progress messages are displayed as each
+file is uploaded.</p>
+<h3>Getting Files</h3>
+<p>Getting files from an FTP server works pretty much the same way as 
+sending them does.  The only difference is that the nested filesets
+use the remotedir attribute as the base directory for the files on the
+FTP server, and the dir attribute as the local directory to put the files
+into.  The file structure from the FTP site is preserved on the local machine.</p>
+<pre>
+  &lt;ftp action=&quot;get&quot;
+       server=&quot;ftp.apache.org&quot;
+       userid=&quot;anonymous&quot;
+       password=&quot;me@myorg.com&quot;&gt;
+    &lt;fileset dir=&quot;htdocs/manual&quot;&gt;
+      &lt;include name=&quot;**/*.html&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
+recursively downloads all .html files from default directory for that user 
+into the <code>htdocs/manual</code> directory on the local machine.</p>
+. 
+<h3>Deleting Files</h3>
+As you've probably guessed by now, you use nested fileset elements to 
+select the files to delete from the remote FTP server.  Again, the 
+filesets are relative to the remote directory, not a local directory.  In
+fact, the dir attribute of the fileset is ignored completely.
+
+<pre>
+  &lt;ftp action=&quot;del&quot;
+       server=&quot;ftp.apache.org&quot;
+       userid=&quot;anonymous&quot;
+       password=&quot;me@myorg.com&quot;&gt;
+    &lt;fileset&gt;
+      &lt;include name=&quot;**/*.tmp&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and
+tries to delete all *.tmp files from the default directory for that user.
+If you don't have permission to delete a file, a BuildException is thrown.</p>
+<h3>Listing Files</h3>
+<pre>
+  &lt;ftp action=&quot;list&quot;
+       server=&quot;ftp.apache.org&quot;
+       userid=&quot;anonymous&quot;
+       password=&quot;me@myorg.com&quot; 
+       listing=&quot;data/ftp.listing&quot;&gt;
+    &lt;fileset&gt;
+      &lt;include name=&quot;**&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>This provides a file listing in <code>data/ftp.listing</code> of all the files on
+the FTP server relative to the default directory of the <code>anonymous</code>
+user. The listing is in whatever format the FTP server normally lists files.</p>
+
+<h3>Creating Directories</h3>
+<p>Note that with the mkdir action, the directory to create is specified using the
+remotedir attribute.</p>
+<pre>
+  &lt;ftp action=&quot;mkdir&quot;
+       server=&quot;ftp.apache.org&quot;
+       userid=&quot;anonymous&quot;
+       password=&quot;me@myorg.com&quot; 
+       remotedir=&quot;some/remote/dir&quot;/&gt;
+</pre>
+<p>This creates the directory <code>some/remote/dir</code> beneath the default root
+directory.  As with all other actions, the directory separator character must be correct
+according to the desires of the FTP server.</p>
+<h3>Removing Directories</h3>
+This action uses nested fileset elements to 
+select the directories to remove from the remote FTP server.  The 
+filesets are relative to the remote directory, not a local directory. 
+The dir attribute of the fileset is ignored completely.
+The directories to be removed must be empty, or contain only
+other directories that have been also selected to be removed by the filesets
+patterns, otherwise a BuildException will be thrown.
+Also, if you don't have permission to remove a directory, a BuildException is 
+thrown.
+
+<pre>
+  &lt;ftp action=&quot;rmdir&quot;
+       server=&quot;ftp.apache.org&quot;
+       userid=&quot;anonymous&quot;
+       password=&quot;me@myorg.com&quot; 
+       remotedir=&quot;/somedir&quot; &gt;
+    &lt;fileset&gt;
+      &lt;include name=&quot;dira&quot;/&gt;
+      &lt;include name=&quot;dirb/**&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and
+tries to remove <code>/somedir/dira</code> directory and
+all the directories tree starting at, and including, <code>/somedir/dirb</code>.
+When removing the <code>/somedir/dirb</code> tree,
+it will start at the leaves moving up to the root, so that when
+it tries to remove a directory it is sure all the directories under it are
+already removed.
+Obviuosly all the files in the tree must have been already deleted.
+</p>
+<p>As an example suppose you want to delete everything contained into 
+<code>/somedir</code>, so invoke first the <code>&lt;ftp&gt;</code> task with
+<code>action=&quot;delete&quot;</code>, then with 
+<code>action=&quot;rmdir&quot;</code> specifying in both cases
+<code>remotedir=&quot;/somedir&quot;</code> and
+
+<pre>
+    &lt;fileset&gt;
+        &lt;include name=&quot;**&quot;/&gt;
+    &lt;/fileset&gt;
+</pre>
+
+The directory specified in the <code>remotedir</code> parameter is never
+selected for remove, so if you need to remove it, specify its parent in
+<code>remotedir</code> parameter and include it in the 
+<code>&lt;fileset&gt;</code> pattern, like <code>&quot;somedir/**&quot;</code>.
+</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/icontract.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/icontract.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/icontract.html	(revision 14989)
@@ -0,0 +1,168 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>IContract Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="icontract">icontract</a></h2>
+<h3>Description</h3>
+
+<P>
+Instruments Java classes with <a href="http://www.reliable-systems.com/tools/">iContract</a>
+ DBC preprocessor.<br>
+ The task can generate a properties file for <a href="http://home.sol.no/~hellesoy/icplus.html">iControl</a>,
+ a graphical user interface that lets you turn on/off assertions. iControl generates a control file that you can refer to
+ from this task using the controlfile attribute.
+ </p>
+
+<h3>Parameters</h3>
+ <table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <td valign="top"><b>Attribute</b></td>
+     <td valign="top"><b>Description</b></td>
+     <td align="center" valign="top"><b>Required</b></td>
+   </tr>
+   <tr>
+     <td valign="top">srcdir</td>
+     <td valign="top">Location of the java files.</td>
+     <td valign="top" align="center">Yes</td>
+   </tr>
+   <tr>
+     <td valign="top">instrumentdir</td>
+     <td valign="top">Indicates where the instrumented source files should go.</td>
+     <td valign="top" align="center">Yes</td>
+   </tr>
+   <tr>
+     <td valign="top">repositorydir</td>
+     <td valign="top">Indicates where the repository source files should go.</td>
+     <td valign="top" align="center">Yes</td>
+   </tr>
+   <tr>
+     <td valign="top">builddir</td>
+     <td valign="top">Indicates where the compiled instrumented classes should go.
+       Defaults to the value of instrumentdir.
+       <em>NOTE:</em> Don't use the same directory for compiled instrumented classes
+       and uninstrumented classes. It will break the dependency checking. (Classes will
+       not be reinstrumented if you change them).</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">repbuilddir</td>
+     <td valign="top">Indicates where the compiled repository classes should go.
+       Defaults to the value of repositorydir.</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">pre</td>
+     <td valign="top">Indicates whether or not to instrument for preconditions.
+       Defaults to <code>true</code> unless controlfile is specified, in which case it
+       defaults to <code>false</code>.</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">post</td>
+     <td valign="top">Indicates whether or not to instrument for postconditions.
+       Defaults to <code>true</code> unless controlfile is specified, in which case it
+       defaults to <code>false</code>.</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">invariant</td>
+     <td valign="top">Indicates whether or not to instrument for invariants.
+       Defaults to <code>true</code> unless controlfile is specified, in which case it
+       defaults to <code>false</code>.</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">failthrowable</td>
+     <td valign="top">The full name of the Throwable (Exception) that should be
+       thrown when an assertion is violated. Defaults to <code>java.lang.Error</code></td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">verbosity</td>
+     <td valign="top">Indicates the verbosity level of iContract. Any combination
+       of <code>error*,warning*,note*,info*,progress*,debug*</code> (comma separated) can be
+       used. Defaults to <code>error*</code></td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">quiet</td>
+     <td valign="top">Indicates if iContract should be quiet. Turn it off if many your classes extend uninstrumented classes
+     and you don't want warnings about this. Defaults to <code>false</code></td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">updateicontrol</td>
+     <td valign="top">If set to true, it indicates that the properties file for
+       iControl in the current directory should be updated (or created if it doesn't exist).
+       Defaults to <code>false</code>.</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">controlfile</td>
+     <td valign="top">The name of the control file to pass to iContract. Consider using iControl to generate the file.
+       Default is not to pass a file. </td>
+     <td valign="top" align="center">Only if <code>updateicontrol=true</code></td>
+   </tr>
+   <tr>
+     <td valign="top">classdir</td>
+     <td valign="top">Indicates where compiled (unistrumented) classes are located.
+       This is required in order to properly update the icontrol.properties file, not
+       for instrumentation.</td>
+     <td valign="top" align="center">Only if <code>updateicontrol=true</code></td>
+   </tr>
+   <tr>
+     <td valign="top">targets</td>
+     <td valign="top">Name of the file that will be generated by this task, which lists all the
+        classes that iContract will instrument. If specified, the file will not be deleted after execution.
+        If not specified, a file will still be created, but it will be deleted after execution.</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+ </table>
+
+<p>
+ <b>Note:</b> iContract will use the java compiler indicated by the project's
+ <code>build.compiler</code> property. See documentation of the Javac task for
+ more information. Nested includes and excludes are also supported.</p>
+
+ <p><b>Example:</b></p>
+
+ <p>
+ <b>Note:</b> iContract will use the java compiler indicated by the project's
+ <code>build.compiler</code> property. See documentation of the Javac task for
+ more information.</p>
+ <p>
+ Nested includes and excludes can be done very much the same way as any subclass
+ of MatchingTask.</p>
+
+ <p><b>Example:</b></p>
+
+ <pre>
+ &lt;icontract
+    srcdir=&quot;${build.src}&quot;
+    instrumentdir=&quot;${build.instrument}&quot;
+    repositorydir=&quot;${build.repository}&quot;
+    builddir=&quot;${build.instrclasses}&quot;
+    updateicontrol=&quot;true&quot;
+    classdir=&quot;${build.classes}&quot;
+    controlfile=&quot;control&quot;
+    targets=&quot;targets&quot;
+    verbosity=&quot;error*,warning*&quot;
+    quiet=&quot;true&quot;
+ &gt;
+    &lt;classpath refid=&quot;compile-classpath&quot;/&gt;
+ &lt;/icontract&gt;
+</pre>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ilasm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ilasm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ilasm.html	(revision 14989)
@@ -0,0 +1,289 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Ilasm
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Ilasm
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Assembles .NET Intermediate Language files.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Assembles .NET Intermediate Language files. ilasm.exe must be on the execute path, unless another executable or the full path to that executable is specified in the <tt>executable</tt> parameter <p> <p> All parameters are optional: &lt;il/&gt; should suffice to produce a debug build of all *.il files. The option set is roughly compatible with the CSharp class; even though the command line options are only vaguely equivalent. [The low level commands take things like /OUT=file, csc wants /out:file ... /verbose is used some places; /quiet here in ildasm... etc.] It would be nice if someone made all the command line tools consistent (and not as brittle as the java cmdline tools) <p> <p> The task is a directory based task, so attributes like <b>includes="*.il" </b> and <b>excludes="broken.il"</b> can be used to control the files pulled in. You can also use nested &lt;src&gt filesets to refer to source. <p>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="10">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fails if ilasm tool fails.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">keyfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the name of a file containing a private key.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">listing</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, produce a listing (off by default).</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">outputfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the output file; identical to setDestFile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">resourcefile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name of resource file to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">verbose</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enable verbose ILASM output.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+<short-description><![CDATA[Add a new reference fileset to the compilation.]]></short-description>
+<description>
+            <![CDATA[add a new reference fileset to the compilation]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+<short-description><![CDATA[Add a new source directory to the compile.]]></short-description>
+<description>
+            <![CDATA[add a new source directory to the compile]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ildasm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ildasm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/ildasm.html	(revision 14989)
@@ -0,0 +1,339 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Ildasm
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Ildasm
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Task to take a .NET or Mono -generated managed executable and turn it into ILASM assembly code.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Task to take a .NET or Mono -generated managed executable and turn it into ILASM assembly code. Useful when converting imported typelibs into assembler before patching and recompiling, as one has to do when doing advanced typelib work. <p> As well as generating the named output file, the ildasm program will also generate resource files <code>Icons.resources</code> <code>Message.resources</code> and a .res file whose filename stub is derived from the source in ways to obscure to determine. There is no way to control whether or not these files are created, or where they are created (they are created in the current directory; their names come from inside the executable and may be those used by the original developer). This task creates the resources in the directory specified by <code>resourceDir</code> if set, else in the same directory as the <code>destFile</code>. <p> This task requires the .NET SDK installed and ildasm on the path. To disassemble using alternate CLR systems, set the executable attribute to the name/path of the alternate implementation -one that must support all the classic ildasm commands. <p> Dependency logic: the task executes the command if the output file is missing or older than the source file. It does not take into account changes in the options of the task, or timestamp differences in resource files. When the underlying ildasm executable fails for some reason, it leaves the .il file in place with some error message. To prevent this from confusing the dependency logic, the file specified by the <code>dest</code> attribute is <i>always</i> deleted after an unsuccessful build.
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">assembler</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable (default) or disable assembly language in the output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="17">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">bytes</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable or disable (default) the original bytes as comments</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the output file (required)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">encoding</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Select the output encoding: ascii, utf8 or unicode</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"ascii", "utf8", "unicode"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">override the name of the executable (normally ildasm) or set its full path. Do not set a relative path, as the ugly hacks needed to create resource files in the dest directory force us to change to this directory before running the application. i.e use &lt;property location&gt to create an absolute path from a relative one before setting this value.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">header</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include header information; default false.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">item</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name a single item to decode; a class or a method e.g item="Myclass::method" or item="namespace1::namespace2::Myclass:method(void(int32))</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">linenumbers</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include line number information; default=false</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">metadata</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include metadata information</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">progressbar</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">show a graphical progress bar in a window during the process; off by default</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">quoteallnames</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">quote all names.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">rawexceptionhandling</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable raw exception handling (default = false)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">resourcedir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of the directory for resources to be created. We cannot control their names, but we can say where they get created. If not set, the directory of the dest file is used</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">showsource</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include the source as comments (default=false)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">sourcefile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the file to disassemble -required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">alternate name for sourceFile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">visibility</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">visibility options: one or more of the following, with + signs to concatenate them: <pre> pub : Public pri : Private fam : Family asm : Assembly faa : Family and Assembly foa : Family or Assembly psc : Private Scope </pre> e.g. visibility="pub+pri". Family means <code>protected</code> in C#;</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/image.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/image.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/image.html	(revision 14989)
@@ -0,0 +1,225 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Image Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="image">Image</a></h2>
+<h3>Description</h3>
+<p>Applies a chain of image operations on a set of files.</p>
+<p>Requires Java Advanced Image API from Sun.</p>
+
+<h5>Overview of used datatypes</h5>
+<img src="image-classdiagram.gif" border="0" alt="Class-Diagram">
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"> failonerror </td>
+    <td valign="top"> Boolean value. If false, note errors to the output but keep going. </td>
+    <td align="center"> no (defaults to <i>true</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> srcdir </td>
+    <td valign="top"> Directory containing the images. </td>
+    <td align="center"> yes, unless nested fileset is used </td>
+  </tr>
+  <tr>
+    <td valign="top"> encoding </td>
+    <td valign="top"> Image encoding type. <br>
+      Valid (caseinsensitive) are: jpg, jpeg, tif, tiff
+    </td>
+    <td align="center"> no (defaults to <i>JPEG</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> overwrite </td>
+    <td valign="top"> Boolean value. Sets whether or not to overwrite
+      a file if there is naming conflict.
+    </td>
+    <td align="center"> no (defaults to <i>false</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> gc </td>
+    <td valign="top"> Boolean value. Enables garbage collection after
+      each image processed.
+    </td>
+    <td align="center"> no (defaults to <i>false</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> destdir </td>
+    <td valign="top"> Directory where the result images are stored. </td>
+    <td align="center"> no (defaults to value of <i>srcdir</i>) </td>
+  </tr>
+  <!-- attributes inherited from MatchingTask -->
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"> excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"> caseSensitive </td>
+    <td valign="top"> Boolean value. Sets case sensitivity of the file system. </td>
+    <td align="center"> no (defaults to <i>false</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> followSymlinks </td>
+    <td valign="top"> Boolean value. Sets whether or not symbolic links hsould be followed. </td>
+    <td align="center"> no (defaults to <i>true</i>) </td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code> as well as the
+nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+
+
+<h4>ImageOperation</h4>
+<p>Adds an ImageOperation to chain.</p>
+<h5>Nested Elements</h5>
+ImageOperation can handle nested Rotate, Draw, Rectangle, Text and Scale objects.
+
+<h4>Rotate</h4>
+<p>Adds a Rotate ImageOperation to chain.</p>
+<h5>Parameters</h5>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"> angle </td>
+    <td valign="top"> Float value. Sets the angle of rotation in degrees. </td>
+    <td align="center"> no (defaults to <i>0.0F</i>) </td>
+  </tr>
+</table>
+
+<h4>Scale</h4>
+<p>Adds a Scale ImageOperation to chain.</p>
+<h5>Parameters</h5>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+    <td valign="top"> proportions </td>
+    <td valign="top"> Sets which dimension to control proportions from. Valid values are:<ul>
+        <li>&quot;ignore&quot; -  treat the dimensions independently.</li>
+        <li>&quot;height&quot; - keep proportions based on the width.</li>
+        <li>&quot;width&quot; - keep proportions based on the height.</li>
+        <li>&quot;cover&quot; - keep proportions and fit in the supplied dimensions.</li>
+        <li>&quot;fit&quot; - keep proportions and cover the supplied dimensions.</li>
+    </ul></td>
+    <td align="center"> no (defaults to <i>ignore</i>) </td>
+  <tr>
+    <td valign="top"> width </td>
+    <td valign="top"> Sets the width of the image, either as an integer or a %. </td>
+        <!-- todo: if integer, what kind? cm, px, inches, ... -->
+    <td align="center"> no (defaults to <i>100%</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> heigth </td>
+    <td valign="top"> Sets the height of the image, either as an integer or a %. </td>
+        <!-- todo: if integer, what kind? cm, px, inches, ... -->
+    <td align="center"> no (defaults to <i>100%</i>) </td>
+  </tr>
+</table>
+
+<h4>Draw</h4>
+<p>Adds a Draw ImageOperation to chain. DrawOperation DataType objects can be
+nested inside the Draw object.</p>
+<h5>Parameters</h5>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"> xloc </td>
+    <td valign="top"> X-Position where to draw nested image elements. </td>
+    <td align="center"> no (defaults to <i>0</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> yloc </td>
+    <td valign="top"> Y-Position where to draw nested image elements. </td>
+    <td align="center"> no (defaults to <i>0</i>) </td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<blockquote><pre>
+&nbsp;&lt;image destdir="samples/low" overwrite="yes"&gt;
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="samples/full"&gt;
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="**/*.jpg"/&gt;
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;scale width="160" height="160" proportions="fit"/&gt;
+&nbsp;&lt;/image&gt;
+</pre></blockquote>
+<p>Create thumbnails of my images and make sure they all fit within the 160x160 size whether the
+image is portrait or landscape.</p>
+
+<blockquote><pre>
+&lt;image srcdir="src" includes="*.png"&gt;
+    &lt;scale proportions="width" width="40"/&gt;
+&lt;/image&gt;
+</pre></blockquote>
+<p>Creates a thumbnail for all PNG-files in <i>src</i> in the size of 40 pixel keeping the proportions
+and stores the <i>src</i>.</p>
+
+<blockquote><pre>
+&lt;image srcdir="src" destdir="dest" includes="*.png"&gt;
+    &lt;scale proportions="width" width="40"/&gt;
+&lt;/image&gt;
+</pre></blockquote>
+<p>Same as above but stores the result in <i>dest</i>.</p>
+
+<blockquote><pre>
+</pre></blockquote>
+
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/importtypelib.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/importtypelib.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/importtypelib.html	(revision 14989)
@@ -0,0 +1,207 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Importtypelib
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Importtypelib
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Import a COM type library into the .NET framework.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Import a COM type library into the .NET framework. <p> This task is a wrapper to .NET's tlbimport; it imports a tlb file to a NET assembly by generating a binary assembly (.dll) that contains all the binding metadata. It uses date timestamps to minimise rebuilds. <p> Example <pre> &lt;importtypelib srcfile="xerces.tlb" destfile="xerces.dll" namespace="Apache.Xerces"/&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name the output file. required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="6">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set any extra options that are not yet supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">what namespace is the typelib to be in. required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">what is the source .tlb file? required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">unsafe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">do you want unsafe code.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">usesysarray</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set this to map a COM SafeArray to the System.Array class</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-available.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-available.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-available.html	(revision 14989)
@@ -0,0 +1,120 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>jarlib-available Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="jarlib-available">jarlib-available</a></h2>
+<h3>Description</h3>
+<p>Check whether an extension is present in a fileset or an extensionSet.
+If the extension is present then a property is set.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of property to set if extensions is available.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to check for extension</td>
+    <td valign="top" align="center">No, one of file, nested
+    ExtensionSet or nested fileset must be present.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>extension</h4>
+ <p><a href="../OptionalTypes/extension.html">Extension</a> the extension
+ to search for.</p>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select
+sets of files to check for extension.</p>
+
+<h4>extensionSet</h4>
+ <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s is the set
+ of extensions to search for extension in.</p>
+
+<h3>Examples</h3>
+<p><b>Search for extension in single file</b></p>
+<pre>
+  &lt;jarlib-available property=&quot;myext.present&quot; file=&quot;myfile.jar&quot;&gt;
+    &lt;extension
+      extensionName=&quot;org.apache.tools.ant&quot;
+      specificationVersion=&quot;1.4.9&quot;
+      specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+
+<p><b>Search for extension in single file refencing external Extension</b></p>
+<pre>
+  &lt;extension id=&quot;myext&quot;
+    extensionName=&quot;org.apache.tools.ant&quot;
+    specificationVersion=&quot;1.4.9&quot;
+    specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+
+  &lt;jarlib-available property=&quot;myext.present&quot; file=&quot;myfile.jar&quot;&gt;
+    &lt;extension refid=&quot;myext&quot;/&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+<p><b>Search for extension in fileset</b></p>
+<pre>
+  &lt;extension id=&quot;myext&quot;
+    extensionName=&quot;org.apache.tools.ant&quot;
+    specificationVersion=&quot;1.4.9&quot;
+    specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+
+  &lt;jarlib-available property=&quot;myext.present&quot;&gt;
+    &lt;extension refid=&quot;myext&quot;/&gt;
+    &lt;fileset dir="lib"&gt;
+      &lt;include name="*.jar"/&gt;
+    &lt;/fileset&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+<p><b>Search for extension in extensionSet</b></p>
+<pre>
+  &lt;extension id=&quot;myext&quot;
+    extensionName=&quot;org.apache.tools.ant&quot;
+    specificationVersion=&quot;1.4.9&quot;
+    specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+
+  &lt;jarlib-available property=&quot;myext.present&quot;&gt;
+    &lt;extension refid=&quot;myext&quot;/&gt;
+    &lt;extensionSet id=&quot;exts3&quot;&gt;
+      &lt;libfileset
+        includeUrl=&quot;false&quot;
+        includeImpl=&quot;true&quot;
+        dir=&quot;lib&quot;&gt;
+        &lt;include name=&quot;*.jar&quot;/&gt;
+      &lt;/libfileset&gt;
+    &lt;/extensionSet&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+
+<hr><p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-display.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-display.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-display.html	(revision 14989)
@@ -0,0 +1,66 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>jarlib-display Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="jarlib-display">jarlib-display</a></h2>
+<h3>Description</h3>
+<p>Display the "Optional Package" and "Package Specification" information
+ contained within the specified jars.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to display extension information about.</td>
+    <td valign="top" align="center">No, but one of file or fileset must be
+    present.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s contain list of files to
+ display Extension information  about.</p>
+
+<h3>Examples</h3>
+<p><b>Display Extension info for a single file</b></p>
+<pre>
+  &lt;jarlib-display file=&quot;myfile.jar&quot;&gt;
+</pre>
+
+<p><b>Display Extension info for a fileset</b></p>
+<pre>
+  &lt;jarlib-display&gt;
+    &lt;fileset dir="lib"&gt;
+      &lt;include name="*.jar"/&gt;
+    &lt;/fileset&gt;
+  &lt;/jarlib-display&gt;
+</pre>
+
+<hr><p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-manifest.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-manifest.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-manifest.html	(revision 14989)
@@ -0,0 +1,109 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>jarlib-manifest Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="jarlib-manifest">jarlib-manifest</a></h2>
+<h3>Description</h3>
+<p>Task to generate a manifest that declares all the dependencies
+ in manifest. The dependencies are determined by looking in the
+ specified path and searching for Extension / "Optional Package"
+ specifications in the manifests of the jars.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file to generate Manifest into</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>extension</h4>
+ <p><a href="../OptionalTypes/extension.html">Extension</a> the extension
+ that this library implements.</p>
+
+<h4>depends</h4>
+ <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s containing
+ all dependencies for jar.</p>
+
+<h4>options</h4>
+ <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s containing
+ all optional dependencies for jar. (Optional dependencies will be used if
+ present else they wilkl be ignored)</p>
+
+<h3>Examples</h3>
+<p><b>Basic Manifest generated for single Extension</b></p>
+<pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com&quot;/&gt;
+
+&lt;jarlib-manifest destfile=&quot;myManifest.txt&quot;&gt;
+    &lt;extension refid=&quot;e1&quot;/&gt;
+&lt;/jarlib-manifest&gt;
+</pre>
+
+<p><b>Search for extension in fileset</b></p>
+<p><b>A large example with required and optional dependencies</b></p>
+<pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com&quot;/&gt;
+
+&lt;extensionSet id=&quot;option.ext&quot;&gt;
+    &lt;libfileset dir=&quot;lib/option&quot;&gt;
+        &lt;include name=&quot;**/*.jar&quot;/&gt;
+    &lt;/libfileset&gt;
+&lt;/extensionSet&gt;
+
+&lt;extensionSet id=&quot;depends.ext&quot;&gt;
+    &lt;libfileset dir=&quot;lib/required&quot;&gt;
+        &lt;include name=&quot;*.jar&quot;/&gt;
+    &lt;/libfileset&gt;
+&lt;/extensionSet&gt;
+
+&lt;jarlib-manifest destfile=&quot;myManifest.txt&quot;&gt;
+    &lt;extension refid=&quot;e1&quot;/&gt;
+    &lt;depends refid=&quot;depends.ext&quot;/&gt;
+    &lt;options refid=&quot;option.ext&quot;/&gt;
+&lt;/jarlib-manifest&gt;
+</pre>
+
+<hr><p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-resolve.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-resolve.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jarlib-resolve.html	(revision 14989)
@@ -0,0 +1,197 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>jarlib-resolve Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="jarlib-resolve">jarlib-resolve</a></h2>
+<h3>Description</h3>
+<p>Try to locate a jar to satisfy an extension and place
+ location of jar into property. The task allows you to
+ add a number of resolvers that are capable of locating a
+ library for a specifc extension. Each resolver will be attempted
+ in specified order until library is found or no resolvers are left.
+ If no resolvers are left and failOnError is true then a BuildException
+ will be thrown.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of property to set to library location.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">failOnError</td>
+    <td valign="top">True if failure to locate library should result in build exception.</td>
+    <td valign="top" align="center">No, defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">checkExtension</td>
+    <td valign="top">True if librarys returned by nested resolvers should be checked to see if
+    they supply extension.</td>
+    <td valign="top" align="center">No, defaults to true.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>extension</h4>
+ <p><a href="../OptionalTypes/extension.html">Extension</a> the extension
+ to resolve. Must be present</p>
+
+<h4>location</h4>
+ <p>The location sub element allows you to look for a library in a
+ location relative to project directory.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">The pathname of library.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>url</h4>
+ <p>The url resolver allows you to download a library from a URL to a
+ local file.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The URL to download.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file to download URL into.</td>
+    <td valign="top" align="center">No, But one of destfile or
+    destdir must be present</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The directory in which to place downloaded file.</td>
+    <td valign="top" align="center">No, But one of destfile or
+    destdir must be present</td>
+  </tr>
+</table>
+
+<h4>ant</h4>
+ <p>The ant resolver allows you to run a ant build file to generate a library.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">antfile</td>
+    <td valign="top">The build file.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file that the ant build creates.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The target to run in build file.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p><b>Resolve Extension to file.</b> If file does not exist or file
+   does not implement extension then throw an exception.</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;location location="/opt/jars/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<p><b>Resolve Extension to url.</b> If url does not exist or can not write
+   to destfile or files does not implement extension then throw an exception.</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;url url="http://www.realityforge.net/jars/dve.jar" destfile="lib/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<p><b>Resolve Extension to file produce by ant build.</b> If file does not get produced
+   or ant file is missing or build fails then throw an exception (Note does not check
+   that library implements extension).</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library" checkExtension="false"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<p><b>Resolve Extension via multiple methods.</b> First check local file to see if it implements
+  extension. If it does not then try to build it from source in parralel directory. If that
+  fails then finally try to download it from a website. If all steps fail then throw a build
+  exception.</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;location location="/opt/jars/dve.jar"/&gt;
+    &lt;ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/&gt;
+    &lt;url url="http://www.realityforge.net/jars/dve.jar" destfile="lib/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<hr><p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/javacc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/javacc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/javacc.html	(revision 14989)
@@ -0,0 +1,188 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>JavaCC Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="javacc">JavaCC</a></h2>
+<h3>Description</h3>
+<p>
+  Invokes the <a HREF="http://javacc.dev.java.net/" target="_top">JavaCC</a> compiler
+  compiler on a grammar file.
+</p>
+<p>
+  To use the javacc task, set the <i>target</i> attribute to the name of the
+  grammar file to process.  You also need to specify the directory containing
+  the JavaCC installation using the <i>javacchome</i> attribute, so that ant
+  can find the JavaCC classes.  Optionally, you can also set the
+  <i>outputdirectory</i> to write the generated file to a specific directory.
+  Otherwise javacc writes the generated files to the directory containing
+  the grammar file.
+</p>
+<p>
+  This task only invokes JavaCC if the grammar file is newer than the generated
+  Java files.  javacc assumes that the Java class name of the generated parser
+  is the same as the name of the grammar file, ignoring the .jj.
+  If this is not the case, the javacc task will still work, but it will always
+  generate the output files.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The grammar file to process.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">javacchome</td>
+    <td valign="top">The directory containing the JavaCC distribution.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">outputdirectory</td>
+    <td valign="top">
+      The directory to write the generated files to.  If not set, the files
+      are written to the directory containing the grammar file.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">buildparser</td>
+    <td valign="top">Sets the BUILD_PARSER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">buildtokenmanager</td>
+    <td valign="top">Sets the BUILD_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cachetokens</td>
+    <td valign="top">Sets the CACHE_TOKENS grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">choiceambiguitycheck</td>
+    <td valign="top">Sets the CHOICE_AMBIGUITY_CHECK grammar option.  This is an integer option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">commontokenaction</td>
+    <td valign="top">Sets the COMMON_TOKEN_ACTION grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debuglookahead</td>
+    <td valign="top">Sets the DEBUG_LOOKAHEAD grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debugparser</td>
+    <td valign="top">Sets the DEBUG_PARSER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debugtokenmanager</td>
+    <td valign="top">Sets the DEBUG_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorreporting</td>
+    <td valign="top">Sets the ERROR_REPORTING grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forcelacheck</td>
+    <td valign="top">Sets the FORCE_LA_CHECK grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignorecase</td>
+    <td valign="top">Sets the IGNORE_CASE grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">javaunicodeescape</td>
+    <td valign="top">Sets the JAVA_UNICODE_ESCAPE grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keeplinecolumn</td>
+    <td valign="top">Sets the KEEP_LINE_COLUMN grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">lookahead</td>
+    <td valign="top">Sets the LOOKAHEAD grammar option.  This is an integer option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">optimizetokenmanager</td>
+    <td valign="top">Sets the OPTIMIZE_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">otherambiguitycheck</td>
+    <td valign="top">Sets the OTHER_AMBIGUITY_CHECK grammar option.  This is an integer option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sanitycheck</td>
+    <td valign="top">Sets the SANITY_CHECK grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">static</td>
+    <td valign="top">Sets the STATIC grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unicodeinput</td>
+    <td valign="top">Sets the UNICODE_INPUT grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">usercharstream</td>
+    <td valign="top">Sets the USER_CHAR_STREAM grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">usertokenmanager</td>
+    <td valign="top">Sets the USER_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Example</h3>
+<blockquote><pre>
+&lt;javacc
+    target=&quot;src/Parser.jj&quot;
+    outputdirectory=&quot;build/src&quot;
+    javacchome=&quot;c:/program files/JavaCC&quot;
+    static=&quot;true&quot;
+/&gt;
+</pre></blockquote>
+<p>
+  This invokes JavaCC on grammar file src/Parser.jj, writing the generated
+  files to build/src.  The grammar option STATIC is set to true when
+  invoking JavaCC.
+</p>
+<hr>
+
+<p align="center">Copyright &copy; 2000-2001,2003 Apache Software Foundation.
+All rights
+Reserved.</p>
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/javah.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/javah.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/javah.html	(revision 14989)
@@ -0,0 +1,118 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Javah Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="javah">Javah</a></h2>
+<h3>Description</h3>
+<p>Generates JNI headers from a Java class.</p>
+<p> When this task executes, it will generate the C header and source files that
+are needed to implement native methods. JNI operates differently depending on
+whether <a href="http://java.sun.com/j2se/1.3/docs/tooldocs/win32/javah.html">JDK1.2</a>
+(or later) or <a href="http://java.sun.com/products/jdk/1.1/docs/tooldocs/win32/javah.html">pre-JDK1.2</a>
+systems are used.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">the fully-qualified name of the class (or classes,
+      separated by commas)</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">outputFile</td>
+    <td valign="top">concatenates the resulting header or source files for all the classes listed into this file</td>
+    <td align="center" valign="middle" rowspan="2">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">sets the directory where javah saves the header files or the
+      stub files.</td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">specifies that output files should always be written (JDK1.2 only)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">old</td>
+    <td valign="top">specifies that old JDK1.0-style header files should be generated
+      (otherwise output file contain JNI-style native method      function prototypes) (JDK1.2 only)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">stubs</td>
+    <td valign="top">generate C declarations from the Java object file (used with old)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">causes Javah to print a message concerning the status     of the generated files</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspath</td>
+    <td valign="top">location of bootstrap class files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">extdirs</td>
+    <td valign="top"> location of installed extensions.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>Either outputFile or destdir must be supplied, but not both.&nbsp;</p>
+<h3>Examples</h3>
+<pre>  &lt;javah destdir=&quot;c&quot; class=&quot;org.foo.bar.Wibble&quot;/&gt;</pre>
+<p>makes a JNI header of the named class, using the JDK1.2 JNI model. Assuming
+the directory 'c' already exists, the file <tt>org_foo_bar_Wibble.h</tt>
+is created there. If this file already exists, it is left unchanged.</p>
+<pre>  &lt;javah outputFile=&quot;wibble.h&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble,org.foo.bar.Bobble&quot;/&gt;
+  &lt;/javah&gt;</pre>
+<p>is similar to the previous example, except the output is written to a file
+called <tt>wibble.h</tt>
+in the current directory.</p>
+<pre>  &lt;javah destdir=&quot;c&quot; force=&quot;yes&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
+  &lt;/javah&gt;</pre>
+<p>writes three header files, one for each of the classes named. Because the
+force option is set, these header files are always written when the Javah task
+is invoked, even if they already exist.</p>
+<pre>  &lt;javah destdir=&quot;c&quot; verbose=&quot;yes&quot; old=&quot;yes&quot; force=&quot;yes&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
+  &lt;/javah&gt;
+  &lt;javah destdir=&quot;c&quot; verbose=&quot;yes&quot; stubs=&quot;yes&quot; old=&quot;yes&quot; force=&quot;yes&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
+  &lt;/javah&gt;</pre>
+<p>writes the headers for the three classes using the 'old' JNI format, then
+writes the corresponding .c stubs. The verbose option will cause Javah to
+describe its progress.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jdepend.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jdepend.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jdepend.html	(revision 14989)
@@ -0,0 +1,163 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+
+<html>
+<head>
+   <title>JDepend Task</title>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a NAME="JDepend"></a>JDepend</h2>
+
+<h3>Description</h3>
+
+<P>Invokes the <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> parser.</P>
+
+<P>This parser &quot;traverses a set of Java source file directories and generates design quality metrics for each Java package&quot;.
+It allows to &quot;automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to
+effectively manage and control package dependencies.&quot;</P>
+
+<p>Source file directories are defined by nested
+<code>&lt;sourcespath&gt;</code>; Class file directories are defined
+by nested <code>&lt;classesespath&gt;</code>, see <a
+href="#nested">nested elements</a>.</p>
+
+<p>Optionally, you can also set the <code>outputfile</code> name where the output is stored. By default the task writes its report to the standard output.</P>
+
+<p> The task requires at least the JDepend 1.2 version. </p>
+
+<h3>Parameters</h3>
+
+<table BORDER=1 CELLSPACING=0 CELLPADDING=2 >
+  <tr>
+    <td VALIGN=TOP><b>Attribute</b></td>
+    <td VALIGN=TOP><b>Description</b></td>
+    <td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>outputfile</td>
+    <td VALIGN=TOP>The output file name. If not set, the output is printed on the standard output.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>format</td>
+    <td VALIGN=TOP>The format to write the output in. The default is "text", the alternative is "xml"</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>fork</td>
+    <td VALIGN=TOP>Run the tests in a separate VM.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>haltonerror</td>
+    <td VALIGN=TOP>Stop the build process if an error occurs during the jdepend analysis.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>timeout</td>
+    <td VALIGN=TOP>Cancel the operation if it doesn't finish in the given time (measured in milliseconds). (Ignored if fork is disabled.)</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>jvm</td>
+    <td VALIGN=TOP>The command used to invoke the Java Virtual Machine, default is 'java'. The command is resolved by java.lang.Runtime.exec(). (Ignored if fork is disabled.)</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default "java"</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>dir</td>
+    <td VALIGN=TOP>The directory to invoke the VM in. (Ignored if fork is disabled)</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>includeruntime</td>
+    <td VALIGN=TOP>Implicitly add the classes required to run jdepend
+    in forked mode. (Ignored if fork is disabled). Since ant 1.6.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default is "no".</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>classpathref</td>
+    <td VALIGN=TOP>the classpath to use, given as reference to a PATH defined elsewhere.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+</table>
+
+<a name="nested"></a><h3>Nested Elements</h3>
+
+<p><code>jdepend</code> supports four nested elements:
+<code>&lt;classpath&gt;, &lt;classespath&gt; </code> and
+<code>&lt;sourcespath&gt;</code>, that represent <a
+href="../using.html#path">PATH like structures</a>, and
+<code>&lt;exclude&gt;</code>.</p>
+
+<p><code>&lt;sourcespath&gt;</code> is used to define the paths of the
+source code to analyze, but it is deprecated. With version 2.5 of
+JDepend, only class files are analyzed. The nested element
+&lt;classespath&gt; replaces &lt;sourcespath&gt; and is used to define
+the paths of compiled class code to analyze; the &lt;sourcespath&gt;
+variable is still available in case you are using an earlier version
+of JDepend.  The &lt;exclude&gt; element can be used to set packages
+to ignore (requires JDepend 2.5 or above).</p>
+
+<h3>Examples</h3>
+
+<blockquote>
+<pre>
+&lt;jdepend classpathref="base.path"&gt;
+&nbsp;&nbsp;&nbsp; &lt;classespath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="build"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/classespath&gt;
+&lt;/jdepend&gt;
+
+</pre>
+</blockquote>
+
+<p>This invokes JDepend on the <code>build</code> directory, writing
+the output on the standard output. The classpath is defined using a
+classpath reference.</p>
+
+<blockquote>
+<pre>
+&lt;jdepend outputfile="docs/jdepend.xml" fork="yes" format="xml"&gt;
+&nbsp;&nbsp;&nbsp; &lt;sourcespath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="src"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/sourcespath&gt;
+&nbsp;&nbsp;&nbsp; &lt;classpath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="classes"/&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="lib/jdepend.jar"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/classpath&gt;
+&lt;/jdepend&gt;
+</pre>
+</blockquote>
+
+<p>This invokes JDepend in a separate VM on the <code>src</code> and
+<code>testsrc</code> directories, writing the output to the
+<code>&lt;docs/jdepend.xml&gt;</code> file in xml format. The
+classpath is defined using nested elements. </p>
+
+<blockquote>
+<pre>
+&lt;jdepend classpathref="base.path"&gt;
+&nbsp;&nbsp;&nbsp; &lt;exclude name="java.*&gt;
+&nbsp;&nbsp;&nbsp; &lt;exclude name="javax.*&gt;
+&nbsp;&nbsp;&nbsp; &lt;classespath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="build"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/classespath&gt;
+&lt;/jdepend&gt;
+</pre>
+</blockquote>
+
+<p>This invokes JDepend with the build directory as the base for class
+files to analyze, and will ignore all classes in the java.* and
+javax.* packages.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jjdoc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jjdoc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jjdoc.html	(revision 14989)
@@ -0,0 +1,102 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+   <title>JJDoc Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h2>
+<a NAME="jjtree"></a>JJDoc</h2>
+<p><em>Since Ant 1.6</em></p>
+<h3>Description</h3>
+
+<p>Invokes the <a href="http://javacc.dev.java.net/">JJDoc</a> preprocessor
+for the JavaCC compiler compiler. It takes a JavaCC parser specification
+and produces documentation for the BNF grammar.
+It can operate in three modes, determined by command line options.
+<p>To use the jjdoc task, set the <i>target</i> attribute to the name
+of the JavaCC grammar file to process. You also need to specify the directory
+containing the JavaCC installation using the <i>javacchome</i> attribute,
+so that ant can find the JavaCC classes. Optionally, you can also set the
+<i>outputfile</i> to write the generated BNF documentation file to a specific (directory and) file.
+Otherwise jjdoc writes the generated BNF documentation file as the JavaCC
+grammar file with a suffix .txt or .html.</p>
+<p>This task only invokes JJDoc if the grammar file is newer than the
+generated BNF documentation file.</p>
+
+<h3>Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP><b>Attribute</b></td>
+
+<td VALIGN=TOP><b>Description</b></td>
+
+<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>target</td>
+
+<td VALIGN=TOP>The javacc grammar file to process.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>javacchome</td>
+
+<td VALIGN=TOP>The directory containing the JavaCC distribution.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>outputfile</td>
+
+<td VALIGN=TOP>The file to write the generated BNF documentation file to. If not set,
+the file is written with the same name as the JavaCC grammar file but with a the suffix .html or .txt.&nbsp;</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>text</td>
+
+<td VALIGN=TOP>Sets the TEXT BNF documentation option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>onetable</td>
+
+<td VALIGN=TOP>Sets the ONE_TABLE BNF documentation option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+</table>
+
+<h3>
+Example</h3>
+
+<blockquote>
+<pre>&lt;jjdoc&nbsp;
+&nbsp;&nbsp;&nbsp; target="src/Parser.jj"&nbsp;
+&nbsp;&nbsp;&nbsp; outputfile="doc/ParserBNF.html"
+&nbsp;&nbsp;&nbsp; javacchome="c:/program files/JavaCC"&nbsp;
+/&gt;</pre>
+</blockquote>
+This invokes JJDoc on grammar file src/Parser.jj, writing the generated
+BNF documentation file, ParserBNF.html, file to doc.
+<br>
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jjtree.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jjtree.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jjtree.html	(revision 14989)
@@ -0,0 +1,542 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+   <title>JJTree Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h2>
+<a NAME="jjtree"></a>JJTree</h2>
+
+<h3>
+Description</h3>
+<p>Invokes the <a href="http://javacc.dev.java.net/">JJTree</a> preprocessor
+for the JavaCC compiler compiler. It inserts parse tree building actions
+at various places in the JavaCC source that it generates. The output of
+JJTree is run through JavaCC to create the parser.
+<p>To use the jjtree task, set the <i>target</i> attribute to the name
+of the JJTree grammar file to process. You also need to specify the directory
+containing the JavaCC installation using the <i>javacchome</i> attribute,
+so that ant can find the JavaCC classes. Optionally, you can also set the
+<i>outputdirectory</i>
+to write the generated JavaCC grammar and node files to a specific directory.
+Otherwise jjtree writes the generated JavaCC grammar and node files to the directory
+containing the JJTree grammar file. As an extra option, you can also set the
+<i>outputfile</i> to write the generated JavaCC grammar file to a specific (directory and) file.
+Otherwise jjtree writes the generated JavaCC grammar file as the JJTree
+grammar file with a suffix .jj.</p>
+<p>This task only invokes JJTree if the grammar file is newer than the
+generated JavaCC file.</p>
+
+<h3>Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP><b>Attribute</b></td>
+
+<td VALIGN=TOP><b>Description</b></td>
+
+<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>target</td>
+
+<td VALIGN=TOP>The jjtree grammar file to process.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>javacchome</td>
+
+<td VALIGN=TOP>The directory containing the JavaCC distribution.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>outputdirectory</td>
+
+<td VALIGN=TOP>The directory to write the generated JavaCC grammar and node files to.
+If not set, the files are written to the directory containing the grammar file.&nbsp;</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>outputfile</td>
+
+<td VALIGN=TOP>The file to write the generated JavaCC grammar file
+to. If not set, the file is written with the same name as the JJTree
+grammar file but with a the suffix <code>.jj</code>.  This is a
+filename relative to <em>outputdirectory</em> if specified, the
+project's basedir.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>buildnodefiles</td>
+
+<td VALIGN=TOP>Sets the BUILD_NODE_FILES grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>multi</td>
+
+<td VALIGN=TOP>Sets the MULTI grammar option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodedefaultvoid</td>
+
+<td VALIGN=TOP>Sets the NODE_DEFAULT_VOID grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodefactory</td>
+
+<td VALIGN=TOP>Sets the NODE_FACTORY grammar option. This is boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodescopehook</td>
+
+<td VALIGN=TOP>Sets the NODE_SCOPE_HOOK grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodeusesparser</td>
+
+<td VALIGN=TOP>Sets the NODE_USES_PARSER grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>static</td>
+
+<td VALIGN=TOP>Sets the STATIC grammar option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>visitor</td>
+
+<td VALIGN=TOP>Sets the VISITOR grammar option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodepackage</td>
+
+<td VALIGN=TOP>Sets the NODE_PACKAGE grammar option. This is a string option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>visitorexception</td>
+
+<td VALIGN=TOP>Sets the VISITOR_EXCEPTION grammar option. This is a string
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodeprefix</td>
+
+<td VALIGN=TOP>Sets the NODE_PREFIX grammar option. This is a string option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+</table>
+
+<h3>
+Example</h3>
+
+<blockquote>
+<pre>&lt;jjtree&nbsp;
+&nbsp;&nbsp;&nbsp; target="src/Parser.jjt"&nbsp;
+&nbsp;&nbsp;&nbsp; outputdirectory="build/src"
+&nbsp;&nbsp;&nbsp; javacchome="c:/program files/JavaCC"&nbsp;
+&nbsp;&nbsp;&nbsp; nodeusesparser="true"
+/&gt;</pre>
+</blockquote>
+This invokes JJTree on grammar file src/Parser.jjt, writing the generated
+grammar file, Parser.jj, file to build/src. The grammar option NODE_USES_PARSER
+is set to true when invoking JJTree.
+<br>
+
+<h3>Comparison output locations between command line JJTree and different Ant taskdef versions</h3>
+
+<table cellpadding="3" border="1">
+<tr>
+  <td><b>Command Line JJTree options</b>
+    <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>and Generated Files</i> (working directory: <code>/tmp</code>)</td>
+  <td><b>Ant 1.5.3</b> versus command line</td>
+  <td><b>Ant 1.6</b> versus command line</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  grammar.jjt</b>
+    /tmp/grammar.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  relative/grammar.jjt</b>
+    /tmp/grammar.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td><pre>
+/tmp/relative/grammar.jj
+/tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  /tmp/absolute/grammar.jjt</b>
+    /tmp/grammar.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td><pre>
+/tmp/absolute/grammar.jj
+/tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/grammar.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/grammar.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/grammar.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/grammar.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/grammar.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/grammar.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  grammar.jjt</b>
+    /tmp/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  relative/grammar.jjt</b>
+    /tmp/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  relative/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  relative/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj  grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Not Supported *)</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj  relative/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Not Supported *)</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Not Supported *)</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/tmp/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/tmp/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/tmp/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/tmp/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/tmp/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/tmp/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+</table>
+
+<p>*) <u>Footnote</u>: When running JJTree with the Ant taskdesk <i>jjtree</i> the option <code>-OUTPUT_DIRECTORY</code> must always 
+be set, because the project's basedir and the ant working directory might differ. So even if you don't specify the jjtree taskdef 
+<i>outputdirectory</i> JJTree will be called with the <code>-OUTPUT_DIRECTORY</code> set to the project's basedirectory. 
+But when the <code>-OUTPUT_DIRECTORY</code> is set, the <code>-OUTPUT_FILE</code> setting is handled as if relative to this 
+<code>-OUTPUT_DIRECTORY</code>. Thus when the <code>-OUTPUT_FILE</code> is absolute or contains a drive letter we have a 
+problem. 
+Therefore absolute <i>outputfile</i>s (when the <i>outputdirectory</i> isn't specified) are made relative to the default directory.
+And for this reason <i>outputfile</i>s that contain a drive letter can't be supported.</p>
+
+<p>By the way: specifying a drive letter in the <code>-OUTPUT_FILE</code> when the <code>-OUTPUT_DIRECTORY</code> is set, also 
+results in strange behavior when running JJTree from the command line.</p>
+
+<br>
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jlink.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jlink.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jlink.html	(revision 14989)
@@ -0,0 +1,160 @@
+<html>
+<head>
+<title>JLink Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h2><a name="jlink">Jlink</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated. Use the zipfileset and zipgroupfileset attributes of the <a href="../CoreTasks/jar.html">Jar task</a> or <a href="../CoreTasks/zip.html">Zip task</a> instead.</i></p>
+
+<h3><b>Description:</b></h3>
+<p>Links entries from sub-builds and libraries.</p>
+
+<p>The jlink task can be used to build jar and zip files, similar to 
+the <i>jar</i> task.
+However, jlink provides options for controlling the way entries from 
+input files
+are added to the output file. Specifically, capabilities for merging 
+entries from
+multiple zip or jar files is available.</p>
+
+<p>If a mergefile is specified directly (eg. at the top level of a 
+<i>mergefiles</i>
+pathelement) <i>and</i> the mergefile ends in &quot;.zip&quot; or 
+&quot;.jar&quot;,
+entries in the mergefile will be merged into the outfile. A file with 
+any other extension
+will be added to the output file, even if it is specified in the 
+mergefiles element.
+Directories specified in either the mergefiles or addfiles element 
+are added to the
+output file as you would expect: all files in subdirectories are 
+recursively added to
+the output file with appropriate prefixes in the output file 
+(without merging).
+</p>
+
+<p>
+In the case where duplicate entries and/or files are found among the 
+files to be merged or
+added, jlink merges or adds the first entry and ignores all subsequent entries.
+</p>
+
+<p>
+jlink ignores META-INF directories in mergefiles. Users should supply their
+own manifest information for the output file.
+</p>
+
+<p>It is possible to refine the set of files that are being jlinked. 
+This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, 
+<i>excludesfile</i>,
+and <i>defaultexcludes</i> attributes on the <i>addfiles</i> and 
+<i>mergefiles</i>
+nested elements. With the <i>includes</i> or <i>includesfile</i>
+attribute you specify the files you want to have included by using patterns.
+The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns. The patterns are
+relative to the <i>base</i> directory.</p>
+
+
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <td valign="top"><b>Attribute</b></td>
+     <td valign="top"><b>Description</b></td>
+     <td align="center" valign="top"><b>Required</b></td>
+   </tr>
+   <tr>
+     <td valign="top">outfile</td>
+     <td valign="top">the path of the output file.</td>
+     <td valign="top" align="center">Yes</td>
+   </tr>
+   <tr>
+     <td valign="top">compress</td>
+     <td valign="top">whether or not the output should be compressed. 
+<i>true</i>,
+                      <i>yes</i>, or <i>on</i> result in compressed output.
+                      If omitted, output will be uncompressed (inflated).</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">mergefiles</td>
+     <td valign="top">files to be merged into the output, if possible.</td>
+     <td valign="middle" align="center" rowspan="2">At least one of 
+mergefiles or addfiles</td>
+   </tr>
+   <tr>
+     <td valign="top">addfiles</td>
+     <td valign="top">files to be added to the output.</td>
+   </tr>
+</table>
+
+<h3>Examples</h3>
+
+<p>The following will merge the entries in mergefoo.jar and mergebar.jar 
+into out.jar.
+mac.jar and pc.jar will be added as single entries to out.jar.</p>
+<pre>
+&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
+   &lt;mergefiles&gt;
+     &lt;pathelement path=&quot;${build.dir}/mergefoo.jar&quot;/&gt;
+     &lt;pathelement path=&quot;${build.dir}/mergebar.jar&quot;/&gt;
+   &lt;/mergefiles&gt;
+   &lt;addfiles&gt;
+     &lt;pathelement path=&quot;${build.dir}/mac.jar&quot;/&gt;
+     &lt;pathelement path=&quot;${build.dir}/pc.zip&quot;/&gt;
+   &lt;/addfiles&gt;
+&lt;/jlink&gt;
+</pre>
+
+<p><b>Non-deprecated alternative to the above:</b></p>
+<pre>
+&lt;jar compress=&quot;false&quot; destfile=&quot;out.jar&quot;&gt;
+  &lt;zipgroupfileset dir=&quot;${build.dir}&quot;&gt;
+    &lt;include name=&quot;mergefoo.jar&quot;/&gt;
+    &lt;include name=&quot;mergebar.jar&quot;/&gt;
+  &lt;/zipgroupfileset&gt;
+  &lt;fileset dir=&quot;${build.dir}&quot;&gt;
+    &lt;include name=&quot;mac.jar&quot;/&gt;
+    &lt;include name=&quot;pc.jar&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/jar&gt;
+</pre>
+
+<p>Suppose the file foo.jar contains two entries: bar.class and 
+barnone/myClass.zip.
+Suppose the path for file foo.jar is build/tempbuild/foo.jar. The 
+following example
+will provide the entry tempbuild/foo.jar in the out.jar.</p>
+<pre>
+&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
+   &lt;mergefiles&gt;
+     &lt;pathelement path=&quot;build/tempbuild&quot;/&gt;
+   &lt;/mergefiles&gt;
+&lt;/jlink&gt;
+</pre>
+
+<p>However, the next example would result in two top-level entries in out.jar,
+namely bar.class and barnone/myClass.zip</p>
+<pre>
+&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
+   &lt;mergefiles&gt;
+     &lt;pathelement path=&quot;build/tempbuild/foo.jar&quot;/&gt;
+   &lt;/mergefiles&gt;
+&lt;/jlink&gt;
+</pre>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jpcoverage.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jpcoverage.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jpcoverage.html	(revision 14989)
@@ -0,0 +1,539 @@
+<html>
+<head>
+<title>JProbe Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h1><a name="jprobe">JProbe</a></h1>
+<p>by</p>
+<ul>
+    <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
+</ul>
+<h2>Introduction</h2>
+
+<p>This task runs the tools from the JProbe suite.<br>
+For more information, visit <a href="http://www.sitraka.com">http://www.sitraka.com</a>.
+An evaluation version is available for download if you already don't own it.
+</p>
+
+<p>This task has been written using JProbe Suite Server Side 3.0.</p>
+
+<p>It is highly recommended to read the JProbe documentation to understand
+the values of the command line arguments described below. This
+document is less complete than the manual, it only gives the basic information
+and is not intended as a replacement to the manual.
+</p>
+
+<h2>Tasks</h2>
+<table border="0" cellspacing="0" cellpadding="3">
+    <tr>
+        <td><a href="#jpcoverage">JPCoverage</a></td>
+        <td>Measure coverage of Java code.</td>
+    </tr>
+    <tr>
+        <td><a href="#jpcovmerge">JPCovMerge</a></td>
+        <td>Merge different snapshots into one.</td>
+    </tr>
+    <tr>
+        <td><a href="#jpcovreport">JPCovReport</a></td>
+        <td>Create a report from a snapshot</td>
+    </tr>
+</table>
+
+<hr>
+
+<a name="jpcoverage"></a><h2>JPCoverage</h2>
+Perform code covering functions by comparing source code line execution to the programs source code as a whole.
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">home</td> 
+    <td valign="top">The directory where JProbe is intalled.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">vm</td> 
+    <td valign="top">
+    Indicates which virtual machine to run.
+    Must be one of "jdk117", "jdk118" or "java2".If "java2" is specified, the user is
+    also required to specify a path via <tt>javaexe</tt>, otherwise it will check if
+    the current executing VM is 1.2+ and use its java.home property to determine its
+    location.</td>
+    <td align="center" valign="top">No, default to embedded VM if 1.2+</td>
+  </tr>
+  <tr>
+    <td valign="top">javaexe</td> 
+    <td valign="top">The path to the java executable.</td>
+    <td align="center" valign="top">No, use only for java2 vm.</td>
+  </tr>
+  
+  <tr>
+    <td valign="top">applet</td> 
+    <td valign="top">Run an applet. The default is false, unless the file under
+    analysis ends with htm or html.</td>
+    <td align="center" valign="top">No, default is "false".</td>
+  </tr>
+  <tr>
+    <td valign="top">seedname</td>
+    <td valign="top">Seed name for the temporary snapshot files (files will be named
+    seed.jpc, seed1.jpc, seed2.jpc, ...)</td>
+    <td align="center" valign="top">No, default to &quot;snapshot&quot;</td>
+  </tr>
+  
+  <tr>
+    <td valign="top">exitprompt</td> 
+    <td valign="top">Toggles display of the console prompt: &quot;Press Enter to close
+    this window.&quot; &quot;always&quot;: Always displays the prompt. &quot;never&quot;: Never displays the
+    prompt. &quot;error&quot;: Only displays prompt after an error.</td>
+    <td align="center" valign="top">No, default is "never"</td>
+  </tr>
+  
+  <tr>
+    <td valign="top">finalsnapshot</td> 
+    <td valign="top">Type of snapshot to send at program termination. Must be one
+    of &quot;none&quot;,&quot;coverage&quot;,&quot;all&quot;</td> 
+    <td align="center" valign="top">No, default to &quot;coverage&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">recordfromstart</td>
+    <td valign="top">Must be one of "coverage", "all", "none". If you want
+    Coverage to start analyzing as soon as the program begins to run, use "all".
+    If not, select "none".</td>
+    <td align="center" valign="top">No, default to "coverage"</td>
+  </tr>
+  <tr>
+    <td valign="top">warnlevel</td>
+    <td valign="top">Set warning level (0-3, where 0 is the least amount of warnings).</td>
+    <td align="center" valign="top">No, default to 0</td>
+  </tr>
+  <tr>
+    <td valign="top">snapshotdir</td>
+    <td valign="top">The path to the directory where snapshot files are stored.
+    Choose a directory that is reachable by both the remote and local computers,
+    and enter the same path on the command line and in the viewer.</td>
+    <td align="center" valign="top">No, default to current directory</td>
+  </tr>
+  <tr>
+    <td valign="top">workingdir</td>
+    <td valign="top">The physical path to the working directory for the VM.</td>
+    <td align="center" valign="top">No, default is current directory.</td>
+  </tr> 
+  <tr>
+    <td valign="top">tracknatives</td>
+    <td valign="top">Test native methods. Note that testing native methods with
+    Java 2 disables the JIT</td>
+    <td align="center" valign="top">No, default to &quot;false&quot;.</td>
+  </tr> 
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the name of the class to analyze.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<a name="nested"></a><h3>Nested Elements</h3>
+
+<h4>classpath</h4>
+<p><code>jpcoverage</code> supports a nested <code>&lt;classpath&gt;</code>
+element, that represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+
+<h4>jvmarg</h4>
+
+<p>Additional parameters may be passed to the VM via nested <code>&lt;jvmarg&gt;</code>
+attributes, for example:</p>
+
+<pre></pre>
+<blockquote>
+<pre>&lt;jpcoverage home=&quot;c:\jprobe&quot; classname=&quot;MyClass&quot;&gt;
+  &lt;jvmarg value=&quot;-classic&quot;/&gt;
+  &lt;classpath path=&quot;.&quot;/&gt;
+&lt;/jpcoverage&gt;
+</pre>
+</blockquote>
+would run the coverage on &quot;MyClass&quot; in classic mode VM.
+
+<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
+href="../using.html#arg">Command line arguments</a>.</p>
+
+<h4>arg</h4>
+
+<p>
+Parameters may be passed to the executed class via nested <tt>&lt;arg&gt;</tt>
+attributes, as described in <a href="../using.html#arg">Command line arguments</a>.
+</p>
+
+<h4>socket</h4>
+<p>Define a host and port to connect to if you want to do remote viewing. 
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">host</td> 
+    <td valign="top">the host name/ip of the machine on which the Viewer is running</td>
+    <td align="center">No, default to localhost</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td> 
+    <td valign="top">The port number on which you will connect to the Viewer</td>
+    <td align="center">No, default to 4444</td>
+  </tr>  
+</table>
+
+
+
+<h4>filters</h4>
+
+<p>Defines class/method filters based on pattern matching.
+The syntax is filters is similar to a <a href="../CoreTypes/fileset.html">fileset</a>.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">defaultexclude</td> 
+    <td valign="top">As a default, the coverage excludes all classes and methods.
+     Default filters are equivalent to
+<pre>
+  &lt;filters&gt;
+    &lt;exclude class=&quot;*&quot; method=&quot;*&quot;/&gt;
+  &lt;/filters&gt;
+</pre>  
+    </td>
+    <td align="center">No, default to "true"</td>
+  </tr>
+</table>
+<p>
+As seen above, nested elements are <b><tt>include</tt></b> and <b><tt>exclude</tt></b>
+with a <tt>name</tt> attribute.
+</p>
+<blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">class</td> 
+    <td valign="top">The class mask as a simple regular expression</td>
+    <td align="center">No, defaults to "*"</td>
+  </tr>
+  <tr>
+    <td valign="top">method</td> 
+    <td valign="top">The method mask as a simple regular expression</td>
+    <td align="center">No, defaults to "*"</td>
+  </tr>
+  <tr>
+    <td valign="top">enabled</td> 
+    <td valign="top">is the filter enabled?</td>
+    <td align="center">No, defaults to true</td>
+  </tr>
+</table>
+</blockquote>
+
+<h3>Example of filters</h3>
+<blockquote>
+  <pre>&lt;filters&gt;
+    &lt;include class=&quot;com.mycompany.*&quot; method=&quot;*&quot;/&gt;
+    &lt;exclude class=&quot;com.mycompany.MyClass&quot; method=&quot;test*&quot;/&gt;
+&lt;/filters&gt;</pre>
+</blockquote>
+
+reports the coverage on all packages, classes and methods from <tt>com.mycompany</tt>
+except all methods starting by <tt>test</tt> on the class <tt>MyClass</tt>
+in the package <tt>com.mycompany</tt>
+
+<h4>triggers</h4>
+
+<p>Define a number of events to use for interacting with the collection
+of data performed during coverage. For example you may run a whole application
+but only decide to collect data once it reaches a certain method and once it
+exits another one.</p>
+<p>
+The only type of nested element is the <tt>method</tt> element (triggers are performed
+on method) and it has the following attributes:
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td> 
+    <td valign="top">The name of the method(s) as a regular expression. The name
+    is the fully qualified name on the form <tt>package.classname.method</tt></td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">event</td> 
+    <td valign="top">the event on the method that will trigger the action. Must be
+    &quot;enter&quot; or &quot;exit&quot;.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td> 
+    <td valign="top">the action to execute. Must be one of &quot;clear&quot;,
+    &quot;pause&quot;, &quot;resume&quot;, &quot;snapshot&quot;, &quot;suspend&quot;,
+    or &quot;exit&quot;. They respectively clear recording, pause recording, 
+    resume recording, take a snapshot, suspend the recording and exit the program.
+</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h3>Example of triggers</h3>
+<blockquote>
+<pre>&lt;triggers&gt;
+  &lt;method name=&quot;ClassName.*()&quot; event=&quot;enter&quot; action=&quot;snapshot&quot;/&gt;
+  &lt;method name=&quot;ClassName.MethodName()&quot; event=&quot;exit&quot; action=&quot;exit&quot;/&gt;  
+&lt;/triggers&gt;
+</pre>
+</blockquote>
+
+<p>Will take a snapshot when it enters any method of the class <tt>ClassName</tt>
+and will exit the program once it exits the method <tt>MethodName</tt> of the
+same class.</p>
+
+<hr>
+<a name="jpcovmerge"></a><h2>JPCovMerge</h2>
+
+<h3>Description</h3>
+
+<p>Perform the merge of several snapshots into a single one.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+    <td valign="top">home</td>
+    <td valign="top">The directory where JProbe is installed.</td>
+    <td align="center" valign="top">Yes</td>
+</tr>
+<tr>
+    <td valign="top">tofile</td>
+    <td valign="top">the output filename that will be the result
+    of the name.</td>
+    <td align="center" valign="top">Yes</td>
+</tr>
+<tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Perform the merge in verbose mode giving
+    details about the snapshot processing.</td>
+    <td align="center" valign="top">No. Default to false</td>
+</tr>
+</table>
+
+<p>
+<tt>jpcovmerge</tt> collects snapshots using the nested <a href="../CoreTypes/fileset.html"><code>&lt;FileSet&gt;</code></a>
+element.
+</p>
+
+<h3>Example of merge</h3>
+<blockquote>
+<pre>&lt;jpcovmerge home=&quot;c:\jprobe&quot; tofile=&quot;merge.jpc&quot; verbose=&quot;true&quot;&gt;
+  &lt;fileset dir=&quot;./snapshots&quot;&gt;
+    &lt;include name=&quot;snap*.jpc&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/jpcovmerge&gt;
+</pre>
+</blockquote>
+<p>
+would run the merge in verbose mode on all snapshot files starting by <tt>snap</tt> in the
+directory <tt>snapshots</tt>. The resulting file will be named <tt>merge.jpc</tt>.
+</p>
+
+<hr>
+
+<a name="jpcovreport"></a><h2>JPCovReport</h2>
+
+<h3>Description</h3>
+
+<p>Generate a readable/printable report of a snapshot. Note that you will need <a href="http://jakarta.apache.org/oro/index.html">Jakarta
+Oro</a> in Ant classpath, to run the <tt>reference</tt> feature.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+    <td valign="top">home</td>
+    <td valign="top">The directory where JProbe is intalled.</td>
+    <td align="center" valign="top">Yes</td>
+</tr>
+<tr>
+    <td valign="top">format</td>
+    <td valign="top">The format of the generated report. Must be &quot;xml&quot;, &quot;html&quot; or &quot;text&quot;</td>
+    <td align="center" valign="top">No, default to &quot;html&quot;</td>
+</tr>
+<tr>
+    <td valign="top">type</td>
+    <td valign="top">The type of report to be generated. Must be &quot;executive&quot;,
+    &quot;summary&quot;, &quot;detailed&quot; or &quot;verydetailed&quot;</td>
+    <td align="center" valign="top">No. Default to &quot;detailed&quot;</td>
+</tr>
+<tr>
+    <td valign="top">percent</td>
+    <td valign="top">A numeric value for the threshold for printing methods. Must
+    be between 0 and 100.</td>
+    <td align="center" valign="top">No, default to 100</td>
+</tr>
+<tr>
+    <td valign="top">snapshot</td>
+    <td valign="top">The name of the snapshot file that is the source to the report.</td>
+    <td align="center" valign="top">Yes</td>
+</tr>
+<tr>
+    <td valign="top">tofile</td>
+    <td valign="top">The name of the generated output file</td>
+    <td align="center" valign="top">Yes</td>
+</tr>
+<tr>
+    <td valign="top">includesource</td>
+    <td valign="top">Include text of the source code lines. Only applies to
+      format=&quot;xml&quot; and type=&quot;verydetailed&quot;</td>
+    <td align="center" valign="top">No. Defaults to &quot;yes&quot;</td>
+</tr>
+</table>
+
+<h4>sourcepath</h4>
+
+<p>
+Path to source files can be set via nested sourcepath elements that are <a href="../using.html#path">PATH like structures</a>.
+</p>
+
+<h4>reference (only applies to format=&quot;xml&quot;)</h4>
+
+<p>A reference is a set of classes whose coverage information will be checked
+against. Since Coverage is only able to give you information about loaded
+classes, it will only report classes that were at least used in some points in
+your tests,
+therefore you will not be able to know what classes are not exercised at all
+during your tests. The reference is an additional feature that will analyze the
+bytecode of all classes in a given classpath that match some filters and modify
+the XML report accordingly. In short, it will:
+</p>
+
+<ul>
+  <li>remove the classes that do not exists in the reference classpath. (For
+    example you might have in your report some helper test classes that you do
+    not want to appear in the report, but are unable to filter without adding
+    hundred of filters for all your classes).</li>
+  <li>add classes that exists in the reference set and match the filters but are
+    not reported.</li>
+  <li>remove abstract methods that are incorrectly reported in JProbe 3.0
+    (should be fixed in a later SP)</li>
+  <li>remove classes/methods that do not match the filters.</li>
+</ul>
+<blockquote>
+  <h4>classpath
+</h4>
+
+  <p>
+Path to the reference set of files can be set via nested classpath elements that are <a href="../using.html#path">PATH like structures</a>.
+</p>
+
+  <h4>filters
+</h4>
+
+  <p>Nested elements are <b><tt>include</tt></b> and <b><tt>exclude</tt></b>
+with a <tt>class </tt>and&nbsp; <tt>method </tt>attribute.
+</p>
+</blockquote>
+<blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">class</td> 
+    <td valign="top">The class mask as a simple regular expression</td>
+    <td align="center">No, default to *</td>
+  </tr>
+  <tr>
+    <td valign="top">method</td> 
+    <td valign="top">The method mask as a simple regular expression</td>
+    <td align="center">No, default to *</td>
+  </tr>
+</table>
+</blockquote>
+
+<h3>Example of report</h3>
+<blockquote>
+<pre>&lt;jpcovreport home=&quot;c:\jprobe&quot; snapshot=&quot;merge.jpc&quot; format=&quot;xml&quot; tofile=&quot;result.xml&quot;&gt;
+  &lt;sourcepath path=&quot;./src&quot;/&gt;
+  &lt;reference&gt;
+    &lt;classpath path=&quot;./bin/classes&quot;/&gt;
+    &lt;filters&gt;
+      &lt;include class=&quot;com.mycompany.*&quot;/&gt;
+      &lt;exclude class=&quot;com.mycompany.MyClass&quot; method=&quot;test*&quot;/&gt;
+    &lt;/filters&gt;
+  &lt;/reference&gt;
+&lt;/jpcovreport&gt;
+</pre>
+</blockquote><p>
+would generate the report of the file <tt>merge.jpc</tt> and write it to <tt>result.xml</tt>
+using the source path <tt>src</tt>. As well, it will modify the result.xml by
+analyzing all classes in the <tt>./bin/classes</tt> that are port of the package
+<tt>com.mycompany</tt> except the method that start by <tt>test</tt> from the class <tt>MyClass</tt>.
+</p>
+
+<h3>Recommendation</h3>
+
+<p>If you generate your main code and your testcases in a separate directory,
+say bin/classes and test/classes. You should mostly end up with a reference such
+as:</p>
+<blockquote>
+<pre>&lt;reference&gt;
+&nbsp;&nbsp;&nbsp; &lt;classpath path=&quot;./bin/classes&quot;/&gt;
+&lt;/reference&gt;</pre>
+</blockquote>
+<p>With such a reference, your XML report will be cleaned up against parasite
+classes from your testcases (that as a common practice, generally match the
+exact package structure of the class you exercise).</p>
+<h3>HTML reports</h3>
+<p>You will find in Ant etc directory a stylesheet called coverage-frames.xsl.
+This file can be used to generate a framed report a la javadoc similar to the
+one for JUnit. It needs either Xalan 1.2.2 or Xalan 2.x.</p>
+<p>Xalan 1.2.2 (you must have xalan.jar and bsf.jar in your classpath)
+</p>
+<pre>&lt;style processor=&quot;xalan&quot; in=&quot;./reports/xml/results.xml&quot; out=&quot;./reports/html/dummy.file&quot;
+ style=&quot;${ant.home}/etc/coverage-frames.xsl&quot;&gt;
+    &lt;param name=&quot;output.dir&quot; expression=&quot;'${basedir}/reports/html'&quot;/&gt;
+&lt;/style&gt;</pre>
+<p>Xalan 2.x (note the parameter without single quote)</p>
+<pre>&lt;style processor=&quot;trax&quot; in=&quot;./reports/xml/results.xml&quot; out=&quot;./reports/html/dummy.file&quot;
+ style=&quot;${ant.home}/etc/coverage-frames.xsl&quot;&gt;
+&nbsp; &lt;param name=&quot;output.dir&quot; expression=&quot;${basedir}/reports/html&quot;/&gt;
+&lt;/style&gt;</pre>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jsharpc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jsharpc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jsharpc.html	(revision 14989)
@@ -0,0 +1,455 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Jsharpc
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Jsharpc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Compile J# source down to a managed .NET application.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Compile J# source down to a managed .NET application. <p> J# is not Java. But it is the language closest to Java in the .NET framework. This task compiles jsharp source (.java files), and generates a .NET managed exe or dll. <p>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="21">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">baseaddress</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"></font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">purejava</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">do we want pure java (default, true) or corrupted J#?</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">securescoping</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Make package scoped code visible to the current assembly only (default: false) .NET does not have package scoping. Instead it has assembly, private and public. By default, package content is public to all.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+<short-description><![CDATA[Add a define to the list of definitions.]]></short-description>
+<description>
+            <![CDATA[add a define to the list of definitions]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+<short-description><![CDATA[Add a new reference fileset to the compilation.]]></short-description>
+<description>
+            <![CDATA[add a new reference fileset to the compilation]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+<short-description><![CDATA[Link or embed a resource.]]></short-description>
+<description>
+            <![CDATA[link or embed a resource]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+<short-description><![CDATA[Add a new source directory to the compile.]]></short-description>
+<description>
+            <![CDATA[add a new source directory to the compile]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jspc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jspc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/jspc.html	(revision 14989)
@@ -0,0 +1,289 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>JSPC Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="jspc">jspc</a></h2>
+<h3>Description</h3>
+
+<p> Ant task to run the JSP compiler and turn JSP pages into Java source.
+
+<p><b>Deprecated</b> if you use this task with Tomcat's Jasper JSP
+compiler, you should seriously consider using the task shipping with
+Tomcat instead.  This task is only tested against Tomcat 4.x. There
+are known problems with Tomcat 5.x that won't get fixed in Ant, please
+use Tomcat's jspc task instead.</p>
+
+<p>
+
+It can be used to precompile JSP pages for fast initial invocation
+of JSP pages, deployment on a server without the full JDK installed,
+or simply to syntax check the pages without deploying them.
+In most cases, a javac task is usually the next stage in the build process.
+The task does basic dependency checking to prevent unnecessary recompilation -this
+checking compares source and destination timestamps, and does not factor
+in class or taglib dependencies, or &lt;jsp:include&gt; references.
+
+<p>
+By default the task uses the Jasper JSP compiler. This
+means the task needs jasper.jar and jasper-runtime.jar, which come with
+builds of Tomcat 4/Catalina from the
+<a href="http://jakarta.apache.org/tomcat/">Jakarta Tomcat project</a>,
+and any other Jar files which may be needed in future versions (it changes)
+
+We recommend (in March 2003) Tomcat version 4.1.x for the most robust version
+of Jasper.
+
+<p>
+There are many limitations with this task which partially stem from the
+many versions of Jasper, others from implementation 'issues' in the task
+(i.e. nobody's willingness to radically change large bits of it to work
+around jasper). Because of this and the fact that JSP pages do not have
+to be portable across implementations -or versions of implementations-
+this task is better used for validating JSP pages before deployment,
+rather than precompiling them. For that, just deploy and run your httpunit
+junit tests after deployment to compile and test your pages, all in one
+go.
+ 
+</p>
+
+
+<h3>Parameters</h3>
+The Task has the following attributes:<p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">Where to place the generated files. They are located
+    under here according to the given package name.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">srcdir</td>
+    <td valign="top">Where to look for source jsp files.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">The verbosity integer to pass to the compiler. Default="0"</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">Name of the destination package for generated java
+    classes.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">class name of a JSP compiler adapter,
+    such as "jasper" or "jasper41"</td>
+    <td valign="top" align="center">No -defaults to "jasper"</td>
+  </tr>
+  <tr>
+    <td valign="top">ieplugin</td>
+    <td valign="top">Java Plugin classid for Internet Explorer.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mapped</td>
+    <td valign="top">(boolean) Generate separate write() calls for each HTML
+    line in the JSP.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use to run the jsp compiler.
+    This can also be specified
+    by the nested element <code>classpath</code>
+    <a href="../using.html#path">Path</a>).</td>
+    <td valign="top" align="center">No, but it seems to work better when used</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">A <a href="../using.html#references">Reference</a>. As
+    per <code>classpath</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">flag to control action on compile failures: default=yes</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uribase</td>
+    <td valign="top">
+    The uri context of relative URI
+    references in the JSP pages. If it does not
+    exist then it is derived from the location of the file
+    relative to the declared or derived value of <tt>uriroot.</tt>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uriroot</td>
+    <td valign="top">
+    The root directory that uri files should be resolved
+    against.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">
+    Class name of jsp compiler adapter to use.  Defaults to
+    the standard adapter for Jasper.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compilerclasspath</td>
+    <td valign="top">The classpath used to find the compiler adapter specified
+    by the <code>compiler</code> attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">webinc</td>
+    <td valign="top">Output file name for the fraction of web.xml that lists servlets.</td>
+    <td valign="top" align="center">No</td>
+  </tr>    
+  <tr>
+    <td valign="top">webxml</td>
+    <td valign="top">File name for web.xml to be generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>  
+
+  </table>
+
+<P>The <tt>mapped</tt> option will, if set to true, split the JSP text content into a
+one line per call format.  There are comments above and below the mapped
+write calls to localize where in the JSP file each line of text comes
+from.  This can lead to a minor performance degradation (but it is bound
+by a linear complexity).  Without this options all adjacent writes are
+concatenated into a single write.</P>
+
+<P>The <tt>ieplugin</tt> option is used by the <tt>&lt;jsp:plugin&gt;</tt> tags.
+If the Java Plug-in COM Class-ID you want to use changes then it can be
+specified here.  This should not need to be altered.</P>
+
+<P><tt>uriroot</tt> specifies the root of the web
+application.  This is where all absolute uris will be resolved from.
+If it is not specified then the first JSP page will be used to derive
+it.  To derive it each parent directory of the first JSP page is
+searched for a <tt>WEB-INF</tt> directory, and the directory closest to
+the JSP page that has one will be used.  If none can be found then the
+directory Jasperc was called from will be used.  This only affects pages
+translated from an explicitly declared JSP file -including references
+to taglibs</P>
+
+<P><tt>uribase</tt> is used to establish the uri context of
+relative URI references in the JSP pages.  If it does not exist then it
+is derived from the location of the file relative to the declared or
+derived value of <tt>uriroot</tt>. This only affects pages
+translated from an explicitly declared JSP file.</P>
+
+<h3>Parameters specified as nested elements</h3>
+
+This task is a <a href="../dirtasks.html">directory based task</a>, like
+<strong>javac</strong>, so the jsp files to be compiled are located as java
+files are by <strong>javac</strong>. That is, elements such as <tt>includes</tt> and
+<tt>excludes</tt> can be used directly inside the task declaration.
+
+<p>
+
+Elements specific to the jspc task are:-
+
+<h4>classpath</h4>
+
+The classpath used to compile the JSP pages, specified as for any other
+classpath.
+
+<h4>classpathref</h4>
+a reference to an existing classpath
+
+<h4>webapp</h4>
+Instructions to jasper to build an entire web application.
+The base directory must have a WEB-INF subdirectory beneath it.
+When used, the task hands off all dependency checking to the compiler.
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the base directory of the web application</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Example</h3>
+<pre>
+&lt;jspc srcdir="${basedir}/src/war"
+      destdir="${basedir}/gensrc"
+      package="com.i3sp.jsp"
+      compiler="jasper41"
+      verbose="9"&gt;
+  &lt;include name="**/*.jsp" /&gt;
+&lt;/jspc&gt;
+</pre>
+Build all jsp pages under src/war into the destination /gensrc, in a
+package heirarchy beginning with com.i3sp.jsp.
+<pre>
+
+&lt;jspc
+      destdir="interim"
+      verbose="1"
+      srcdir="src"
+      compiler="jasper41"
+      package="com.i3sp.jsp"&gt;
+  &lt;include name="**/*.jsp" /&gt;
+&lt;/jspc&gt;
+&lt;depend
+         srcdir="interim"
+         destdir="build"
+         cache="build/dependencies"
+         classpath="lib/taglibs.jar"/&gt;
+&lt;javac
+         srcdir="interim"
+         destdir="build"
+         classpath="lib/taglibs.jar"
+         debug="on"/&gt;
+</pre>
+Generate jsp pages then javac them down to
+bytecodes. Include lib/taglib jar in the java compilation.
+ Dependency checking is used to scrub the
+java files if class dependencies indicate it is needed.
+
+<p><h4>Notes</h4>
+Using the <code>package</code> attribute it is possible to identify the resulting
+java files and thus do full dependency checking - this task should only rebuild
+java files if their jsp file has been modified. However, this only works
+with some versions of jasper. By default the checking supports tomcat 4.0.x
+with the "jasper" compiler, set the compiler to "jasper41" for the tomcat4.1.x
+dependency checking.
+Even when it does work, changes in
+.TLD imports or in compile time includes do not get picked up.
+
+<p>
+Jasper generates JSP pages against the JSP1.2 specification -a copy of
+version 2.3 of the servlet specification is needed on the classpath to
+compile the Java code.
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/junit.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/junit.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/junit.html	(revision 14989)
@@ -0,0 +1,572 @@
+<html>
+<head>
+<title>JUnit Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h2><a name="junit">JUnit</a></h2>
+<h3>Description</h3>
+
+<p>This task runs tests from the JUnit testing framework. The latest
+version of the framework can be found at
+<a href="http://www.junit.org">http://www.junit.org</a>.
+This task has been tested with JUnit 3.0 up to JUnit 3.8.1; it won't
+work with versions prior to JUnit 3.0.</p>
+<p><strong>Note:</strong> This task depends on external libraries not included
+in the Ant distribution.  See <a href="../install.html#librarydependencies">
+Library Dependencies</a> for more information.
+</p>
+<p>
+<strong>Note</strong>:
+You must have <code>junit.jar</code> and the class files for the
+<code>&lt;junit&gt;</code> task in the same classpath.
+You can do one of:
+<ol>
+<li>
+Put both <code>junit.jar</code> and the optional tasks jar file in
+<code>ANT_HOME/lib</code>.
+</li>
+<li>
+Do not put either in <code>ANT_HOME/lib</code>, and instead
+include their locations in your <code>CLASSPATH</code> environment variable.
+</li>
+<li>
+Do neither of the above, and instead, specify their locations using
+a <code>&lt;classpath&gt;</code> element in the build file.
+
+See <a href="../../faq.html#delegating-classloader" target="_top">the
+FAQ</a> for details.
+</ol>
+</p>
+
+
+<p>Tests are defined by nested <code>test</code> or
+<code>batchtest</code> tags (see <a href="#nested">nested
+elements</a>).</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">printsummary</td>
+    <td valign="top">Print one-line statistics for each testcase. Can
+      take the values <code>on</code>,
+      <code>off</code>, and
+      <code>withOutAndErr</code>.
+      <code>withOutAndErr</code> is the same
+      as <code>on</code> but also includes the output of the test
+      as written to <code>System.out</code> and <code>System.err</code>.</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run the tests in a separate VM.</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">forkmode</td>
+    <td valign="top">Controls how many Java Virtual Machines get
+    created if you want to fork some tests.  Possible values are
+    &quot;perTest&quot; (the default), &quot;perBatch&quot; and
+    &quot;once&quot;.  &quot;once&quot; creates only a single Java VM
+    for all tests while &quot;perTest&quot; creates a new VM for each
+    TestCase class.  &quot;perBatch&quot; creates a VM for each nested
+    <code>&lt;batchtest&gt;</code> and one collecting all nested
+    <code>&lt;test&gt;</code>s.  Note that only tests with the same
+    settings of <code>filtertrace</code>, <code>haltonerror</code>,
+    <code>haltonfailure</code>, <code>errorproperty</code> and
+    <code>failureproperty</code> can share a VM, so even if you set
+    <code>forkmode</code> to &quot;once&quot;, Ant may have to create
+    more than a single Java VM.  This attribute is ignored for tests
+    that don't get forked into a new Java VM.  <em>since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No; default is <code>perTest</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">haltonerror</td>
+    <td valign="top">Stop the build process if an error occurs during the test
+       run.</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+<tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property to set in the event of an error.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">haltonfailure</td>
+    <td valign="top">Stop the build process if a test fails (errors are
+      considered failures as well).</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+<tr>
+    <td valign="top">failureproperty</td>
+    <td valign="top">The name of a property to set in the event of a failure
+      (errors are considered failures as well).</td>
+    <td align="center" valign="top">No.</td>
+</tr>
+  <tr>
+    <td valign="top">filtertrace</td>
+    <td valign="top">Filter out Junit and Ant stack frames from error and failure stack traces.</td>
+    <td align="center" valign="top">No; default is <code>on</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Cancel the individual tests if they don't finish
+      in the given time (measured in milliseconds).  Ignored if
+      <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Maximum amount of memory to allocate to the forked VM.
+      Ignored if <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvm</td>
+    <td valign="top">The command used to invoke the Java Virtual Machine,
+      default is 'java'.  The command is resolved by
+      <code>java.lang.Runtime.exec()</code>.
+      Ignored if <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No; default is <code>java</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory in which to invoke the VM. Ignored if
+      <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate the old environment when new
+      environment variables are specified. Ignored if <code>fork</code> is
+      disabled.</td>
+    <td align="center" valign="top">No; default is <code>false</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeantruntime</td>
+    <td valign="top">Implicitly add the Ant classes required to run
+      the tests and JUnit to the classpath in forked mode.
+      <b>Note:</b> Please read the <a
+      href="../../faq.html#junit-no-runtime-xml">Ant FAQ</a> if you
+      want to set this to <code>false</code> and use the XML formatter
+      at the same time.</td>
+    <td align="center" valign="top">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">showoutput</td>
+    <td valign="top">Send any output generated by tests to Ant's
+      logging system as well as to the formatters.  By default only the
+      formatters receive the output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tempdir</td>
+    <td valign="top">Where Ant should place temporary files.
+      <em>Since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No; default is the project's base
+      directory.</td>
+  </tr>
+  <tr>
+    <td valign="top">reloading</td>
+    <td valign="top">Whether or not a new classloader should be instantiated for each test case.<br/>
+    Ignore if <code>fork</code> is set to true.
+      <em>Since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No; default is <code>true</code>.</td>
+  </tr>
+</table>
+
+<p>By using the <code>errorproperty</code> and <code>failureproperty</code>
+attributes, it is possible to
+perform setup work (such as starting an external server), execute the test,
+clean up, and still fail the build in the event of a failure.</p>
+
+<p>The <code>filtertrace</code> attribute condenses error and failure
+stack traces before reporting them.
+It works with both the plain and XML formatters.  It filters out any lines
+that begin with the following string patterns:<pre>
+   "junit.framework.TestCase"
+   "junit.framework.TestResult"
+   "junit.framework.TestSuite"
+   "junit.framework.Assert."
+   "junit.swingui.TestRunner"
+   "junit.awtui.TestRunner"
+   "junit.textui.TestRunner"
+   "java.lang.reflect.Method.invoke("
+   "org.apache.tools.ant."</pre></p>
+
+<a name="nested"></a><h3>Nested Elements</h3>
+
+<p>The <code>&lt;junit&gt;</code> task
+supports a nested <code>&lt;classpath&gt;</code>
+element that represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+
+<h4>jvmarg</h4>
+
+<p>If <code>fork</code> is enabled, additional parameters may be passed to
+the new VM via nested <code>&lt;jvmarg&gt;</code> elements. For example:</p>
+
+<pre>
+&lt;junit fork=&quot;yes&quot;&gt;
+  &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
+  ...
+&lt;/junit&gt;
+</pre>
+
+<p>would run the test in a VM without JIT.</p>
+
+<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
+href="../using.html#arg">Command-line Arguments</a>.</p>
+
+<h4>sysproperty</h4>
+
+<p>Use nested <code>&lt;sysproperty&gt;</code> elements to specify system
+properties required by the class. These properties will be made available
+to the VM during the execution of the test (either ANT's VM or the forked VM,
+if <code>fork</code> is enabled).
+The attributes for this element are the same as for <a href="../CoreTasks/exec.html#env">environment variables</a>.</p>
+
+<pre>
+&lt;junit fork=&quot;no&quot;&gt;
+  &lt;sysproperty key=&quot;basedir&quot; value=&quot;${basedir}&quot;/&gt;
+  ...
+&lt;/junit&gt;
+</pre>
+
+<p>would run the test in ANT's VM and make the <code>basedir</code> property
+available to the test.</p>
+
+<h4>syspropertyset</h4>
+
+<p>You can specify a set of properties to be used as system properties
+with <a href="../CoreTypes/propertyset.html">syspropertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>env</h4>
+
+<p>It is possible to specify environment variables to pass to the
+forked VM via nested <code>&lt;env&gt;</code> elements. For a description
+of the <code>&lt;env&gt;</code> element's attributes, see the
+description in the <a href="../CoreTasks/exec.html#env">exec</a> task.</p>
+
+<p>Settings will be ignored if <code>fork</code> is disabled.</p>
+
+<h4>bootclasspath</h4>
+
+<p>The location of bootstrap class files can be specified using this
+<a href="../using.html#path">PATH like structure</a> - will be ignored
+if <i>fork</i> is not <code>true</code> or the target VM doesn't
+support it (i.e. Java 1.1).</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>permissions</h4>
+<p>Security permissions can be revoked and granted during the execution of the 
+class via a nested <i>permissions</i> element. For more information please
+see <a href="../CoreTypes/permissions.html">permissions</a></p>
+
+<p>Settings will be ignored if fork is enabled.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+ 
+<h4>assertions</h4>
+
+<p>You can control enablement of Java 1.4 assertions with an
+<a href="../CoreTypes/assertions.html"><tt>&lt;assertions&gt;</tt></a>
+subelement.</p>
+ 
+<p>Assertion statements are currently ignored in non-forked mode.</p>
+
+<p><em>since Ant 1.6.</em></p>
+
+<h4>formatter</h4>
+
+<p>The results of the tests can be printed in different
+formats. Output will always be sent to a file, unless you set the
+<code>usefile</code> attribute to <code>false</code>.
+The name of the file is determined by the
+name of the test and can be set by the <code>outfile</code> attribute
+of <code>&lt;test&gt;</code>.</p>
+
+<p>There are three predefined formatters - one prints the test results
+in XML format, the other emits plain text.  The formatter named
+<code>brief</code> will only print detailed information for testcases
+that failed, while <code>plain</code> gives a little statistics line
+for all test cases.  Custom formatters that need to implement
+<code>org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter</code>
+can be specified.</p>
+
+<p>If you use the XML formatter, it may not include the same output
+that your tests have written as some characters are illegal in XML
+documents and will be dropped.</p>
+
+<p><b>Note:</b> Please read the <a
+href="../../faq.html#junit-no-runtime-xml">Ant FAQ</a> if you want to
+set the fork attribute to <code>true</code>, the includeAntRuntime
+attribute to <code>false</code> and use the XML formatter at the same
+time.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">Use a predefined formatter (either
+      <code>xml</code>, <code>plain</code>, or <code>brief</code>).</td>
+    <td align="center" rowspan="2">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">Name of a custom formatter class.</td>
+  </tr>
+  <tr>
+    <td valign="top">extension</td>
+    <td valign="top">Extension to append to the output filename.</td>
+    <td align="center">Yes, if <code>classname</code> has been used.</td>
+  </tr>
+  <tr>
+    <td valign="top">usefile</td>
+    <td valign="top">Boolean that determines whether output should be
+      sent to a file.</td>
+    <td align="center">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only use formatter if the named property is set.</td>
+    <td align="center">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only use formatter if the named property is <b>not</b> set.</td>
+    <td align="center">No; default is <code>true</code>.</td>
+  </tr>  
+</table>
+
+<h4>test</h4>
+
+<p>Defines a single test class.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the test class.</td>
+    <td align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run the tests in a separate VM.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">haltonerror</td>
+    <td valign="top">Stop the build process if an error occurs during the test
+       run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property to set in the event of an error.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">haltonfailure</td>
+    <td valign="top">Stop the build process if a test fails (errors are
+      considered failures as well).  Overrides value set in
+      <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">failureproperty</td>
+    <td valign="top">The name of a property to set in the event of a failure
+      (errors are considered failures as well). Overrides value set in
+      <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">filtertrace</td>
+    <td valign="top">Filter out Junit and Ant stack frames from error and failure stack
+    traces.  Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No; default is <code>on</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">Directory to write the reports to.</td>
+    <td align="center" valign="top">No; default is the current directory.</td>
+  </tr>
+  <tr>
+    <td valign="top">outfile</td>
+    <td valign="top">Base name of the test result. The full filename is
+      determined by this attribute and the extension of
+      <code>formatter</code>.</td>
+    <td align="center" valign="top">No; default is
+      <code>TEST-</code><em>name</em>, where <em>name</em> is the name of
+      the test specified in the <code>name</code> attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only run test if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only run test if the named property is <b>not</b> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>Tests can define their own formatters via nested
+<code>&lt;formatter&gt;</code> elements.</p>
+
+<h4>batchtest</h4>
+
+<p>Define a number of tests based on pattern matching.</p>
+
+<p><code>batchtest</code> collects the included files from any number
+of nested <a
+href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>s. It then
+generates a test class name for each file that ends in
+<code>.java</code> or <code>.class</code>.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run the tests in a separate VM.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">haltonerror</td>
+    <td valign="top">Stop the build process if an error occurs during the test
+       run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property to set in the event of an error.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">haltonfailure</td>
+    <td valign="top">Stop the build process if a test fails (errors are
+      considered failures as well).  Overrides value set in
+      <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">failureproperty</td>
+    <td valign="top">The name of a property to set in the event of a failure
+      (errors are considered failures as well). Overrides value set in
+      <code>&lt;junit&gt;</code></td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">filtertrace</td>
+    <td valign="top">Filter out Junit and Ant stack frames from error and failure stack
+    traces.  Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No; default is <code>on</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">Directory to write the reports to.</td>
+    <td align="center" valign="top">No; default is the current directory.</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only run tests if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only run tests if the named property is <strong>not</strong> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>Batchtests can define their own formatters via nested
+<code>&lt;formatter&gt;</code> elements.</p>
+
+<h3>Examples</h3>
+
+<pre>
+&lt;junit&gt;
+  &lt;test name="my.test.TestCase"/&gt;
+&lt;/junit&gt;
+</pre>
+
+<p>Runs the test defined in <code>my.test.TestCase</code> in the same
+VM. No output will be generated unless the test fails.</p>
+
+<pre>
+&lt;junit printsummary="yes" fork="yes" haltonfailure="yes"&gt;
+  &lt;formatter type="plain"/&gt;
+  &lt;test name="my.test.TestCase"/&gt;
+&lt;/junit&gt;
+</pre>
+
+<p>Runs the test defined in <code>my.test.TestCase</code> in a
+separate VM.  At the end of the test, a one-line summary will be
+printed. A detailed report of the test can be found in
+<code>TEST-my.test.TestCase.txt</code>. The build process will be
+stopped if the test fails.</p>
+
+<pre>
+&lt;junit printsummary="yes" haltonfailure="yes"&gt;
+  &lt;classpath&gt;
+    &lt;pathelement location="${build.tests}"/&gt;
+    &lt;pathelement path="${java.class.path}"/&gt;
+  &lt;/classpath&gt;
+
+  &lt;formatter type="plain"/&gt;
+
+  &lt;test name="my.test.TestCase" haltonfailure="no" outfile="result"&gt;
+    &lt;formatter type="xml"/&gt;
+  &lt;/test&gt;
+
+  &lt;batchtest fork="yes" todir="${reports.tests}"&gt;
+    &lt;fileset dir="${src.tests}"&gt;
+      &lt;include name="**/*Test*.java"/&gt;
+      &lt;exclude name="**/AllTests.java"/&gt;
+    &lt;/fileset&gt;
+  &lt;/batchtest&gt;
+&lt;/junit&gt;
+</pre>
+
+<p>Runs <code>my.test.TestCase</code> in the same VM, ignoring the
+given CLASSPATH; only a warning is printed if this test fails. In
+addition to the plain text test results, for this test a XML result
+will be output to <code>result.xml</code>.  
+Then, for each matching file in the directory defined for
+<code>${src.tests}</code> a
+test is run in a separate VM. If a test fails, the build process is
+aborted. Results are collected in files named
+<code>TEST-</code><em>name</em><code>.txt</code> and written to
+<code>${reports.tests}</code>.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/junitreport.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/junitreport.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/junitreport.html	(revision 14989)
@@ -0,0 +1,113 @@
+<html>
+<head>
+<title>JUnitReport Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="junitreport">JUnitReport</a></h2>
+Merge the individual XML files generated by the JUnit task and eventually apply
+a stylesheet on the resulting merged document to provide a browsable report of
+the testcases results.
+<p><strong>Note:</strong> This task depends on external libraries not included in
+the Ant distribution.  See <a href="../install.html#librarydependencies">
+Library Dependencies</a> for more information.</p>
+
+<h3>Requirements</h3>
+
+<p>The task needs Apache <a
+href="http://xml.apache.org/xalan-j/">Xalan 2.x or Xalan XSLTC</a>
+(JDK 1.4 contains a version of Xalan-J 2.x while JDK 1.5 ships with a
+version of XSLTC).  Versions prior to Ant 1.6.2 worked with Apache <a
+href="http://archive.apache.org/dist/xml/xalan-j/">Xalan
+1.2.2</a>, but as Xalan1 is no longer supported, we do not recommend
+this.  With Ant 1.6.2 we had to decide between supporting Xalan-J 1
+and XSLTC, since there was no way to support both at the same
+time.</p>
+
+<p>If you want to use Xalan 1.2.2, the noframes report is still
+supposed to work.  If you want the frames support, copy the file
+junit-frames-xalan1.xsl from the Ant distribution's etc directory to a
+new directory, change its name to junit-frames.xsl and use the task's
+styledir attribute to point to it.  You will also need a compatible
+(older) version of Xerces.  as well as BSF(bsf.jar). Again, using
+Xalan 2 is simpler and supported.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">The name of the XML file that will aggregate all individual
+      XML testsuite previously generated by the JUnit task.</td>
+    <td align="center" valign="top">No. Default to TESTS-TestSuites.xml</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory where should be written the file resulting
+      from the individual XML testsuite aggregation.</td>
+    <td align="center" valign="top">No. Default to current directory</td>
+  </tr>
+</table>
+<a name="nested"></a><h3>Nested Elements</h3>
+<h4>fileset</h4>
+<p><code>junitreport</code> collects individual xml files generated by the JUnit
+task using the nested <a href="../CoreTypes/fileset.html"><code>&lt;FileSet&gt;</code></a>
+element.</p>
+<h4>report</h4>
+<p>Generate a browsable report based on the document created by the merge.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">The format of the generated report. Must be &quot;noframes&quot;
+      or &quot;frames&quot;.</td>
+    <td align="center" valign="top">No, default to &quot;frames&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">styledir</td>
+    <td valign="top">The directory where the stylesheets are defined. They must
+      be conforming to the following conventions:
+      <ul>
+        <li>frames format: the stylesheet must be named <i>junit-frames.xsl</i>.</li>
+        <li>noframes format: the stylesheet must be named <i>junit-noframes.xsl</i>.</li>
+      </ul>
+    </td>
+    <td align="center" valign="top">No. Default to embedded stylesheets.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory where the files resulting from the
+      transformation should be written to.</td>
+    <td align="center" valign="top">No. Default to current directory</td>
+  </tr>
+</table>
+<h3>Example of report</h3>
+<blockquote>
+  <pre>&lt;junitreport todir=&quot;./reports&quot;&gt;
+  &lt;fileset dir=&quot;./reports&quot;&gt;
+    &lt;include name=&quot;TEST-*.xml&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;report format=&quot;frames&quot; todir=&quot;./report/html&quot;/&gt;
+&lt;/junitreport&gt;
+</pre>
+</blockquote>
+<p>would generate a <tt>TESTS-TestSuites.xml</tt> file in the directory <tt>reports</tt> and
+generate the default framed report in the directory <tt>report/html</tt>.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/maudit.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/maudit.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/maudit.html	(revision 14989)
@@ -0,0 +1,138 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>MAudit Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="maudit">MAudit</a></h2>
+<ul>
+  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
+</ul>
+<h3>Requirements</h3>
+<p>This task requires Metamata Development environment 2.0/Webgain Quality Analyzer 2.0.
+An evaluation version is available at <a href="http://www.webgain.com/products/quality_analyzer/">Webgain</a>.
+, <a href="http://jakarta.apache.org/oro/">Jakarta Oro</a> and a XML parser (via JAXP).</p>
+<h3>Description</h3> 
+<p>
+  Invokes the Metamata Audit/ Webgain Quality Analyzer on a set of Java files.
+</p>
+<p>
+  <i>maudit</i> performs static analysis of the Java source code and byte code files to find and report
+  errors of style and potential problems related to performance, maintenance and robustness.
+.  As a convenience, a stylesheet is given in <tt>etc</tt> directory, so that an HTML report can be generated from the XML file.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">The XML file to which the Audit result should be written to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">metamatahome</td>
+    <td valign="top">The home directory containing the Metamata distribution.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">fix</td>
+    <td valign="top">
+      Automatically fix certain errors (those marked as fixable in the manual).
+    </td>
+    <td valign="top" align="center">No.Default to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">list</td>
+    <td valign="top">
+      Creates listing file for each audited file. A .maudit file will be generated in the
+      same location as the source file.
+    </td>
+    <td valign="top" align="center">No. Default to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">unused</td>
+    <td valign="top">
+      Finds declarations unused in search paths. It will look for unused global declarations
+      in the source code within a use domain specified by the <tt>searchpath</tt> element.
+    </td>
+    <td valign="top" align="center">No. Default to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Set the maximum memory for the JVM. this is a convenient
+      way to set the -mx or -Xmx argument.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Nested elements</h3>
+<h4>jvmarg</h4>
+<p>Additional parameters may be passed to the VM via nested <code>&lt;jvmarg&gt;</code>
+attributes. <code>&lt;jvmarg&gt;</code> allows all attributes described in 
+<a href="../using.html#arg">Command line arguments</a>.</p>
+<p>
+You can avoid using the  <code>&lt;jvmarg&gt;</code> by adding these empty 
+entries to <code>metamata.properties</code> located at <code>${metamata.home}/bin</code>
+</p>
+<pre>metamata.classpath=
+metamata.sourcepath=
+metamata.baseclasspath=
+</pre>
+</p>
+<h4>classpath</h4>
+<p>Sets class path (also source path unless one explicitly set). Overrides
+METAPATH/CLASSPATH environment variables. The <tt>classpath</tt> element represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+<h4>sourcepath</h4>
+<p>Sets source path. Overrides the SOURCEPATH environment variable. The <tt>sourcepath</tt> element represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+<h4>sourcepath</h4>
+<p>Sets the search path to use as the use domain when looking for unused global declarations. The <tt>searchpath</tt> element represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+<h4>fileset</h4>
+<p>Sets the Java files to audit via a <a href="../CoreTypes/fileset.html">FILESET</a> structure.
+Whatever the filter is, only the files that ends with <i>.java</i> will be included for processing.
+Note that the base directory used for the fileset MUST be the root of the source files otherwise
+package names deduced from the file path will be incorrect.
+</p>
+<h3>Example</h3>
+<pre>  &lt;maudit tofile=&quot;c:/metamata/examples/auditexamples/audit.xml&quot;
+          metamatahome=&quot;c:/metamata&quot; fix=&quot;yes&quot;&gt;
+    &lt;classpath&gt;
+      &lt;pathelement location=&quot;c:/metamata/examples/auditexamples&quot;/&gt;
+    &lt;/classpath&gt;
+    &lt;sourcepath&gt;
+      &lt;pathelement location=&quot;c:/metamata/examples/auditexamples&quot;/&gt;
+    &lt;/sourcepath&gt;
+    &lt;fileset dir=&quot;c:/metamata/examples/auditexamples&quot;&gt;
+        &lt;include name=&quot;*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/maudit&gt;</pre>
+<p>
+  This invokes Metamata Audit installed in <tt>c:/metamata</tt> on the audit examples
+and fix automatically the fixable errors.
+</p>
+<h3>Generating a report</h3>
+As a convenience, there is an XSL file(mmetrics-frames.xsl) that allows you to generate a full framed HTML report of the metrics.
+You can find it in the <i>etc</i> directory of Ant. As it uses the Xalan redirect extensions, you will need Xalan and Xerces to run it.
+The stylesheet takes an <i>output.dir</i> parameter (otherwise it will be generated
+in the current directory), it can be run in Ant as follows:
+<pre>
+&lt;style in=java &quot;${audit.xml}&quot; style=&quot;maudit-frames.xsl&quot; out="null.tmp"&gt;
+    &lt;param name=&quot;output.dir&quot; expression=&quot;${report.dir}&quot;/&gt;
+&lt;/style&gt;
+</pre>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/mimemail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/mimemail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/mimemail.html	(revision 14989)
@@ -0,0 +1,100 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>MimeMail Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="mimemail">MimeMail</a></h2>
+
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the <a href="../CoreTasks/mail.html">mail</a> task instead.</i></p>
+
+<h3>Description</h3>
+<p>Sends SMTP mail with MIME attachments.
+<a href="http://java.sun.com/products/javamail/index.html">JavaMail</a>
+and <a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">Java
+Activation Framework</a> are required for this task.</p>
+<p>Multiple files can be attached using <a href="../CoreTypes/fileset.html">FileSets.</a></p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">The message body</td>
+    <td valign="top" align="center" rowspan="2">No, but only one of of 'message' or
+      'messageFile' may be specified.&nbsp; If not specified, a fileset must be
+      provided.</td>
+  </tr>
+  <tr>
+    <td valign="top">messageFile</td>
+    <td valign="top">A filename to read and used as the message body</td>
+  </tr>
+  <tr>
+    <td valign="top">messageMimeType</td>
+    <td valign="top">MIME type to use for 'message' or 'messageFile' when
+      attached.</td>
+    <td align="center" valign="top">No, defaults to "text/plain"</td>
+  </tr>
+  <tr>
+    <td valign="top">tolist</td>
+    <td valign="top">Comma-separated list of To: recipients</td>
+    <td valign="top" align="center" rowspan="3">Yes, at least one of 'tolist', 'cclist',
+      or 'bcclist' must be specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">cclist</td>
+    <td valign="top">Comma-separated list of CC: recipients</td>
+    <td valign="top" align="center">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">bcclist</td>
+    <td valign="top">Comma-separated list of BCC: recipients</td>
+    <td valign="top" align="center">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">mailhost</td>
+    <td valign="top">Host name of the mail server.</td>
+    <td valign="top" align="center">No, default to &quot;localhost&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">subject</td>
+    <td valign="top">Email subject line.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">Email address of sender.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if an error occurs sending the
+      e-mail.</td>
+    <td valign="top" align="center">No, default to &quot;true&quot;</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<p><b>Send a single HTML file as the body of a message</b></p>
+<pre>    &lt;mimemail messageMimeType=&quot;text/html&quot; messageFile=&quot;overview-summary.html&quot;
+        tolist=&quot;you&quot; subject=&quot;JUnit Test Results: ${TODAY}&quot; from=&quot;me&quot;/&gt;</pre>
+<p><b>Sends all files in a directory as attachments</b></p>
+<pre>    &lt;mimemail message=&quot;See attached files&quot; tolist=&quot;you&quot; subject=&quot;Attachments&quot; from=&quot;me&quot;&gt;
+        &lt;fileset dir=&quot;.&quot;&gt;
+            &lt;include name=&quot;dist/*.*&quot;/&gt;
+        &lt;/fileset&gt;
+    &lt;/mimemail&gt;
+</pre>
+<hr><p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/mmetrics.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/mmetrics.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/mmetrics.html	(revision 14989)
@@ -0,0 +1,123 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>MMetrics Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2>MMetrics</h2>
+<ul>
+  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
+</ul>
+<h3>Requirements</h3>
+<p>This task requires Metamata Development environment 2.0/Webgain Quality Analyzer 2.0.
+An evaluation version is available at <a href="http://www.webgain.com/products/quality_analyzer/">Webgain</a>.
+(Though you will not be able to use Metrics from the command line if you do not have a registered version).
+You also need a TRaX compliant processor(such as <a href="http://xml.apache.org/xalan-j/">Xalan 2.x</a>) via JAXP 1.1</p>
+<h3>Description</h3> 
+<p>
+  Invokes the Metamata Metrics / WebGain Quality Analyzer source code 
+  analyzer on a set of Java files.
+</p>
+<p>
+    <i>mmetrics</i> will compute the metrics of a set of Java files and write the results to an XML
+    file. As a convenience, a stylesheet is given in <tt>etc</tt> directory, so that an HTML report can be generated from the XML file.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">metamatahome</td>
+    <td valign="top">The home directory containing the Metamata distribution.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">The XML were the resulting metrics will be written to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">granularity</td>
+    <td valign="top">Metrics granularity of the source files. Must be either
+      <i>files</i> (compilation-units), <i>types</i> (types and compilation-units) or <i>methods</i>
+      (methods, types and compilation-units).
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Set the maximum memory for the JVM. this is a convenient
+      way to set the -mx or -Xmx argument.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Nested elements</h3>
+For specifying the source code to analyze, you can either use a <tt>path</tt> or <tt>fileset</tt> elements (though a single path element is preferred, see note below).
+<h4>jvmarg</h4>
+<p>Additional parameters may be passed to the VM via nested <code>&lt;jvmarg&gt;</code>
+attributes. <code>&lt;jvmarg&gt;</code> allows all attributes described in <a href="../using.html#arg">Command
+line arguments</a>.</p>
+<h4>classpath</h4>
+<p>Sets class path (also source path unless one explicitly set). Overrides
+METAPATH/CLASSPATH environment variables. The <tt>classpath</tt> element represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+<h4>sourcepath</h4>
+<p>Sets source path. Overrides the SOURCEPATH environment variable. The <tt>sourcepath</tt> element represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+
+<h4>path</h4>
+<p>Sets the list of directories to analyze the code for metrics.;It represents a <a href="../using.html#path">PATH structure</a>.</p>
+<h4>fileset</h4>
+<p>Sets a set of files to analyze for metrics.source  It represents a <a href="../CoreTypes/fileset.html">FILESET structure</a>.</p>
+
+<p>
+<font color="#FF0000">
+Note: For the sake of readability, it is highly recommended to analyze for a single unique directory instead than
+using filesets or several directories. Otherwise there will be multiple metrics outputs without any way to know
+what metrics refers to what source. Chance are also that the XML handler that does some heuristic will be confused
+by the different outputs.
+</font>
+</p>
+
+<h3>Example</h3>
+<pre>  &lt;mmetrics tofile=&quot;mmetrics.xml&quot;
+          metamatahome=&quot;c:/metamata&quot;
+          granularity=&quot;methods&quot;&gt;
+    &lt;classpath&gt;
+      &lt;pathelement location=&quot;c:/metamata/examples/metricsexamples&quot;/&gt;
+    &lt;/classpath&gt;
+    &lt;sourcepath&gt;
+      &lt;pathelement location=&quot;c:/metamata/examples/metricsexamples&quot;/&gt;
+    &lt;/sourcepath&gt;
+    &lt;path&gt;
+      &lt;pathelement location=&quot;c:/metamata/examples/metricsexamples&quot;/&gt;
+    &lt;/path&gt;
+  &lt;/mmetrics&gt;</pre>
+<p>
+  This invokes Metamata Metrics installed in <tt>c:/metamata</tt> on the metrics example.
+  (Note that here, classpath and sourcepath are not normally not needed)
+</p>
+
+<h3>Generating a report</h3>
+As a convenience, there is an XSL file(mmetrics-frames.xsl) that allows you to generate a full framed HTML report of the metrics.
+You can find it in the <i>etc</i> directory of Ant. As it uses the Xalan redirect extensions, you will need Xalan and Xerces to run it.
+The stylesheet takes an <i>output.dir</i> parameter (otherwise it will be generated
+in the current directory), it can be run in Ant as follows:
+<pre>
+&lt;style in=java &quot;${metrics.xml}&quot; style=&quot;mmetrics-frames.xsl&quot; out="null.tmp"&gt;
+    &lt;param name=&quot;output.dir&quot; expression=&quot;${report.dir}&quot;/&gt;
+&lt;/style&gt;
+</pre>
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/mparse.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/mparse.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/mparse.html	(revision 14989)
@@ -0,0 +1,120 @@
+<!-- saved from url=(0022)http://internet.e-mail -->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>MParse Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="mparse">MParse</a></h2>
+<p>by</p>
+<ul>
+  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
+</ul>
+<h3>Requirements</h3>
+<p>This task requires Metamata Development environment 2.0 freely available at <a href="http://www.metamata.com">Metamata</a>.</p>
+<h3>Description</h3> 
+<p>
+  Invokes the Metamata <a HREF="http://www.metamata.com/parse.html">MParse</a> compiler 
+  compiler on a grammar file.
+</p>
+<p>
+  To use the <i>mparse</i> task, set the <i>target</i> attribute to the name of the 
+  grammar file to process.  You also need to specify the directory containing 
+  the Metamata installation using the <i>metamatahome</i> attribute, so that Ant 
+  can find the MParse classes.
+</p>
+<p>
+  This task only invokes MParse if the grammar file is newer than the generated 
+  Java files. MParse assumes that the Java class name of the generated parser
+  is the same as the name of the grammar file, less the .jj extension.
+</p>
+
+<p>For additional information about MParse, please consult the online manual available <a href="http://download.metamata.com/parse.pdf">here</a>
+(PDF)
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The .jj grammar file to process. It will only be processed
+      if the grammar is newer than the corresponding .java file.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">metamatahome</td>
+    <td valign="top">The home directory containing the Metamata distribution.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">
+      Enable all messages
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debugparser</td>
+    <td valign="top">
+      Enables parser debugging
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debugscanner</td>
+    <td valign="top">
+      Enables scanner debugging
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cleanup</td>
+    <td valign="top">Remove the intermediate Sun
+      JavaCC file created during the transformation of the grammar file.</td>
+    <td valign="top" align="center">No. Default to false</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Set the maximum memory for the JVM. this is a convenient
+      way to set the -mx or -Xmx argument.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Nested elements</h3>
+<h4>jvmarg</h4>
+<p>Additional parameters may be passed to the VM via nested <code>&lt;jvmarg&gt;</code>
+attributes. <code>&lt;jvmarg&gt;</code> allows all attributes described in <a href="../using.html#arg">Command
+line arguments</a>.</p>
+<h4>classpath</h4>
+<p>Sets class path (also source path unless one explicitly set). Overrides
+METAPATH/CLASSPATH environment variables. &nbsp;The <tt>classpath</tt> element represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+<h4>sourcepath</h4>
+<p>Sets source path. Overrides the SOURCEPATH environment variable.&nbsp;The <tt>sourcepath</tt> element represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+<h3>Example</h3>
+<pre>  &lt;mparse target=&quot;c:/metamata/examples/parseexamples/javagrammars/singlefile/JavaParser.jj&quot;
+          metamatahome=&quot;c:/metamata&quot; cleanup=&quot;true&quot;&gt;
+    &lt;classpath&gt;
+      &lt;pathelement location=&quot;c:/metamata/examples/&quot;/&gt;
+    &lt;/classpath&gt;
+  &lt;/mparse&gt;</pre>
+<p>
+  This invokes Metamata MParse installed in <tt>c:/metamata</tt> on one of the grammar file
+example <tt>(JavaParser.jj)</tt>
+ and cleans up the intermediate Sun JavaCC file.
+</p>
+<hr>
+<p align="center">Copyright &copy; 2001,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/native2ascii.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/native2ascii.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/native2ascii.html	(revision 14989)
@@ -0,0 +1,139 @@
+<html>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+  <head><title>Native2Ascii Task</title></head>
+  <body>
+    <h2>Native2Ascii</h2>
+
+    <h3>Description:</h3>
+
+    <p>
+      Converts files from native encodings to ASCII with escaped Unicode.
+      A common usage is to convert source files maintained in a native
+      operating system encoding, to ASCII prior to compilation.
+    </p>
+
+    <p>
+      Files in the directory <em>src</em>
+      are converted from a native encoding to ASCII.
+      By default, all files in the directory are converted.
+      However, conversion may be limited to selected files using
+      <em>includes</em> and <em>excludes</em> attributes.
+      For more information on file matching patterns,
+      see the section on
+      <a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>.
+      If no <em>encoding</em> is specified,
+      the default encoding for the JVM is used.
+      If <em>ext</em> is specified, then output files are renamed
+      to use it as a new extension.
+      More sophisticated file name translations can be achieved using a nested
+      <em>&lt;mapper&gt;</em> element. By default an
+      <a href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a> will be used.
+      If <em>dest</em> and <em>src</em> point to the same directory,
+      the <em>ext</em> attribute or a nested <em>&lt;mapper&gt;</em>
+      is required.
+    </p>
+
+    <p>
+      This task forms an implicit <a href="../CoreTypes/fileset.html">File Set</a>,
+      and supports all attributes of <code>&lt;fileset&gt;</code>
+      (<code>dir</code> becomes <code>src</code>) as well as
+      nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code>,
+      and <code>&lt;patternset&gt;</code> elements.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td><b>Attribute</b></td>
+        <td><b>Description</b></td>
+        <td><b>Required</b></td>
+      </tr>
+      <tr>
+        <td>reverse</td>
+        <td>Reverse the sense of the conversion,
+          i.e. convert from ASCII to native</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>encoding</td>
+        <td>The native encoding the files are in
+          (default is the default encoding for the JVM)</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>src</td>
+        <td>The directory to find files in (default is <em>basedir</em>)</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>dest</td>
+        <td>The directory to output file to</td>
+        <td align="center">Yes</td>
+      </tr>
+      <tr>
+        <td>ext</td>
+        <td>File extension to use in renaming output files</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>defaultexcludes</td>
+        <td>indicates whether default excludes should be used or not
+          (&quot;yes&quot;/&quot;no&quot;).
+          Default excludes are used when omitted.
+        </td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>includes</td>
+        <td>comma- or space-separated list of patterns of files that must be
+          included. All files are included when omitted.</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>includesfile</td>
+        <td>the name of a file. Each line of this file is
+          taken to be an include pattern</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>excludes</td>
+        <td>comma- or space-separated list of patterns of files that must be excluded.
+          No files (except default excludes) are excluded when omitted.</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>excludesfile</td>
+        <td>the name of a file. Each line of this file is
+          taken to be an exclude pattern</td>
+        <td align="center">No</td>
+      </tr>
+    </table>
+
+    <h3>Examples</h3>
+
+    <pre>
+&lt;native2ascii encoding=&quot;EUCJIS&quot; src=&quot;srcdir&quot; dest=&quot;srcdir&quot;
+   includes=&quot;**/*.eucjis&quot; ext=&quot;.java&quot;/&gt;
+    </pre>
+
+    <p>
+      Converts all files in the directory <em>srcdir</em>
+      ending in <code>.eucjis</code> from the EUCJIS encoding to ASCII
+      and renames them to end in <code>.java</code>.
+    </p>
+
+<pre>
+&lt;native2ascii encoding=&quot;EUCJIS&quot; src=&quot;native/japanese&quot; dest=&quot;src&quot;
+   includes=&quot;**/*.java&quot;/&gt;
+</pre>
+
+    <p>
+      Converts all the files ending in <code>.java</code>
+      in the directory <em>native/japanese</em> to ASCII,
+      placing the results in the directory <em>src</em>.
+      The names of the files remain the same.
+    </p>
+  </body>
+<hr>
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/netrexxc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/netrexxc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/netrexxc.html	(revision 14989)
@@ -0,0 +1,316 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>NetRexxC Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="netrexxc">NetRexxC</a></h2>
+<h3>Description</h3>
+<p>Compiles a <a href="http://www2.hursley.ibm.com/netrexx" target="_top">NetRexx</a>
+source tree within the running (Ant) VM.</p>
+<p>The source and destination directory will be recursively scanned for
+NetRexx source files to compile.  Only NetRexx files that have no corresponding
+class file or where the class file is older than the java file will be compiled.</p>
+<p>Files in the source tree are copied to the destination directory,
+allowing support files to be located properly in the classpath. The source
+files are copied because the NetRexx compiler cannot produce class files in a
+specific directory via parameters</p>
+<p>The directory structure of the source tree should follow the package
+hierarchy.</p>
+<p>It is possible to refine the set of files that are being compiled/copied.
+This can be done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and
+<i>defaultexcludes</i> attributes. With the <i>includes</i> or <i>includesfile</i> attribute you
+specify the files you want to have included by using patterns. The
+<i>exclude</i> or <i>excludesfile</i> attribute is used to specify the files you want to have
+excluded.  This is also done with patterns.  And finally with the
+<i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>All properties except classpath, srcdir and destDir are also available as properties in the form
+<code>ant.netrexxc.<i>attributename</i></code>, eg.<br>
+<code>&lt;property name="ant.netrexxc.verbose" value="noverbose"/&gt;</code><br>
+or from the command line as<br>
+<code>ant -Dant.netrexxc.verbose=noverbose ...</code>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">binary</td>
+    <td valign="top">Whether literals are treated as the java binary
+      type rather than the NetRexx types</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use during compilation</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">comments</td>
+    <td valign="top">Whether comments are passed through to the
+      generated java source</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compact</td>
+    <td valign="top">Whether error messages come out in compact or
+      verbose format. Default is the compact format.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compile</td>
+    <td valign="top">Whether the NetRexx compiler should compile the
+      generated java code</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">console</td>
+    <td valign="top">Whether or not messages should be displayed on the
+      'console'</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">crossref</td>
+    <td valign="top">Whether variable cross references are generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">decimal</td>
+    <td valign="top">Whether decimal arithmetic should be used for the
+      NetRexx code</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">destDir</td>
+    <td valign="top">the destination directory into which the NetRexx
+      source files should be copied and then compiled</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">diag</td>
+    <td valign="top">Whether diagnostic information about the compile is
+      generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">explicit</td>
+    <td valign="top">Whether variables must be declared explicitly
+      before use</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">Whether the generated java code is formatted nicely
+      or left to match NetRexx line numbers for call stack debugging</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">java</td>
+    <td valign="top">Whether the generated java code is produced</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keep</td>
+    <td valign="top">Sets whether the generated java source file should be kept
+      after compilation. The generated files will have an extension of
+      .java.keep, <b>not</b> .java</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logo</td>
+    <td valign="top">Whether the compiler text logo is displayed when
+      compiling</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">Whether the generated .java file should be replaced
+      when compiling</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">savelog</td>
+    <td valign="top">Whether the compiler messages will be written to
+      NetRexxC.log as well as to the console</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcedir</td>
+    <td valign="top">Tells the NetRexx compiler to store the class files in the
+      same directory as the source files. The alternative is the working
+      directory</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">Set the source dir to find the source NetRexx
+      files</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">strictargs</td>
+    <td valign="top">Tells the NetRexx compiler that method calls always
+      need parentheses, even if no arguments are needed, e.g.
+      <code>aStringVar.getBytes</code> vs.
+      <code>aStringVar.getBytes()</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictassign</td>
+    <td valign="top">Tells the NetRexx compile that assignments must
+      match exactly on type</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictcase</td>
+    <td valign="top">Specifies whether the NetRexx compiler should be
+      case sensitive or not</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictimport</td>
+    <td valign="top">Whether classes need to be imported explicitly using an
+      <code>import</code> statement.  By default the NetRexx compiler will
+      import certain packages automatically</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictprops</td>
+    <td valign="top">Whether local properties need to be qualified
+      explicitly using <code>this</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictsignal</td>
+    <td valign="top">Whether the compiler should force catching of
+      exceptions by explicitly named types</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">symbols</td>
+    <td valign="top">Whether debug symbols should be generated into the
+      class file</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">time</td>
+    <td valign="top">Asks the NetRexx compiler to print compilation
+      times to the console</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">trace</td>
+    <td valign="top">Turns on or off tracing and directs the resultant
+      trace output</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">utf8</td>
+    <td valign="top">Tells the NetRexx compiler that the source is in UTF8</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether lots of warnings and error messages should
+      be generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressMethodArgumentNotUsed</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Method argument not used&amp; messages in strictargs mode.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressPrivatePropertyNotUsed</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Private Property defined, but not used&amp; messages in strictargs mode.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressVariableNotUsed</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Variable set but not used&amp; messages in strictargs mode.
+      Please be careful with this one, as you can hide errors behind it!</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressExceptionNotSignalled</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Exception is declared, but not signalled within the method&amp;
+      messages in strictsignal mode.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressDeprecation</td>
+    <td valign="top">Tells wether we should filter out any deprecation-messages
+      of the compiler out.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;netrexxc srcDir=&quot;/source/project&quot;
+           includes=&quot;vnr/util/*&quot;
+           destDir=&quot;/source/project/build&quot;
+           classpath=&quot;/source/project2/proj.jar&quot;
+           comments=&quot;true&quot;
+           crossref=&quot;false&quot; replace=&quot;true&quot;
+           keep=&quot;true&quot;/&gt;</code>
+  </p>
+</blockquote>
+<hr>
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/perforce.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/perforce.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/perforce.html	(revision 14989)
@@ -0,0 +1,987 @@
+<html>
+<head>
+<title>Perforce Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+<h2>Perforce Tasks User Manual</h2>
+<p>by</p>
+<ul>
+    <li>Les Hughes (<a href="mailto:leslie.hughes@rubus.com">leslie.hughes@rubus.com</a>)</li>
+    <li>Kirk Wylie (<a href="mailto:kirk@radik.com">kirk@radik.com</a>)</li>
+    <li>Matt Bishop (<a href="mailto:matt@thebishops.org">matt@thebishops.org</a>)</li>
+    <li>Antoine Levy-Lambert</li>
+</ul>
+<hr>
+<h2>Contents</h2>
+<ul>
+    <li><a href="#intro">Introduction</a></li>
+    <li><a href="#tasks">The Tasks</a></li>
+    <li><a href="#changes">Change History</a></li>
+</ul>
+<br>
+<h2><a name="intro">Introduction</a></h2>
+<p>These tasks provide an interface to the <a href="http://www.perforce.com" target="_top">Perforce</a> SCM.
+The <code>org.apache.tools.ant.taskdefs.optional.perforce</code> package consists of a simple framework to support
+p4 functionality as well as some Ant tasks encapsulating frequently used (by me :-) p4 commands.
+However, the addition of new p4 commands is a pretty simple task (see the source).
+Although it is possible to use these commands on the desktop,
+they were primarily intended to be used by automated build systems.</p>
+
+<p><b>Note:</b> These tasks require the <a href="http://jakarta.apache.org/oro" target="_top">oro 2.0.XXX</a> regular
+expression package. Simply download this package and copy the jakarta-oro-2.0.XXX.jar file into Ant's lib directory.
+You will also need the Perforce client executable (p4 or p4.exe but not p4win.exe) in your path.
+</p>
+
+
+
+<h2><a name="tasks">The Tasks</a></h2>
+
+<table border="0" cellspacing="0" cellpadding="3">
+    <tr>
+        <td><a href="#p4sync">P4Sync</a></td>
+        <td>Synchronise a workspace to a depot</td>
+    </tr>
+    <tr>
+        <td><a href="#p4change">P4Change</a></td>
+        <td>Request a new changelist from the Perforce server</td>
+    </tr>
+    <tr>
+        <td><a href="#p4edit">P4Edit</a></td>
+        <td>Open files for edit (checkout)</td>
+    </tr>
+    <tr>
+        <td><a href="#p4submit">P4Submit</a></td>
+        <td>Submit a changelist to the Perforce server (checkin)</td>
+    </tr>
+    <tr>
+        <td><a href="#p4have">P4Have</a></td>
+        <td>List current files in client view, useful for reporting</td>
+    </tr>
+    <tr>
+        <td><a href="#p4label">P4Label</a></td>
+        <td>Create a label reflecting files in the current workspace</td>
+    </tr>
+    <tr>
+        <td><a href="#p4labelsync">P4Labelsync</a></td>
+        <td>Syncs an existing label</td>
+    </tr>
+    <tr>
+        <td><a href="#p4counter">P4Counter</a></td>
+        <td>Obtain or set the value of a counter</td>
+    </tr>
+	    <tr>
+        <td><a href="#p4reopen">P4Reopen</a></td>
+        <td>Move files between changelists</td>
+    </tr>
+
+	    <tr>
+        <td><a href="#p4revert">P4Revert</a></td>
+        <td>Revert files</td>
+    </tr>
+
+    <tr>
+        <td><a href="#p4add">P4Add</a></td>
+        <td>Add files</td>
+    </tr>
+    <tr>
+      <td><a href="#p4delete">P4Delete</a></td>
+      <td>Delete files</td>
+    </tr>
+    <tr>
+      <td><a href="#p4integrate">P4Integrate</a></td>
+      <td>Integrate files</td>
+    </tr>
+    <tr>
+      <td><a href="#p4resolve">P4Resolve</a></td>
+      <td>Resolve files</td>
+    </tr>
+    <tr>
+        <td><a href="#p4fstat">P4Fstat</a></td>
+        <td>Show differences between local repository and p4 repository</td>
+    </tr>
+</table>
+
+<h3>General P4 Properties</h3>
+<p>Each p4 task requires a number of settings, either through build-wide properties, individual attributes
+or environment variables. These are
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Property</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Env Var</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Default</b></td>
+  </tr>
+  <tr>
+    <td valign="top">p4.port</td>
+    <td valign="top">port</td>
+    <td valign="top">P4PORT</td>
+    <td valign="top">The p4d server and port to connect to</td>
+    <td valign="top">perforce:1666</td>
+  </tr>
+  <tr>
+    <td valign="top">p4.client</td>
+    <td valign="top">client</td>
+    <td valign="top">P4CLIENT</td>
+    <td valign="top">The p4 client spec to use</td>
+    <td valign="top">The logged in username</td>
+  </tr>
+  <tr>
+    <td valign="top">p4.user</td>
+    <td valign="top">user</td>
+    <td valign="top">P4USER</td>
+    <td valign="top">The p4 username</td>
+    <td valign="top">The logged in username</td>
+  </tr>
+<tr>
+    <td valign="top" align="center">--</td>
+    <td valign="top">view</td>
+    <td valign="top" align="center">--</td>
+    <td valign="top">The client, branch or label view to operate upon. See the p4 user guide for more info.</td>
+    <td valign="top">//...</td>
+  </tr>
+
+</table>
+<p> Your local installation of Perforce may require other settings (e.g.
+P4PASSWD, P4CONFIG). Many of these settings can be set using the globalopts
+attribute (described below), but not all. If a setting cannot be set
+by the command-line options, then it can only be set outside of Ant as an
+environment variable.
+</p>
+<p>
+Additionally, you may also specify the following attributes:
+</p>
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td valign="top"><b>Attribute</b></td>
+  <td valign="top"><b>Description</b></td>
+  <td align="center" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Specifies whether to stop the build
+     (<code>true</code>|<code>yes</code>|<code>on</code>)
+     or keep going (<code>false</code>|<code>no</code>|<code>off</code>)
+     if an error is returned from the p4 command.</td>
+    <td valign="top">No; defaults to true.</td>
+  </tr>
+  <tr>
+      <td valign="top">globalopts<br></td>
+      <td valign="top">Specifies global options for perforce to use while
+      executing the task. These properties should be concatenated into one
+      string,<br>
+      such as "-P <i>password</i> -C EUCJIS". Use the command-line option
+      syntax, NOT the environment variable names. See the<br>
+      Perforce Command Reference for details.</td>
+      <td valign="top">No<br></td>
+  </tr>
+</table>
+</p>
+
+<h3>Examples</h3>
+<p>Setting in the environment:-</p>
+<p>
+(Unix csh)</p>
+<pre>setenv P4PORT myperforcebox:1666</pre>
+<p>(Unix sh et al)</p>
+<pre>P4USER=myp4userid; export P4USER</pre>
+<p>Using build properties:-</p>
+<pre>&lt;property name=&quot;p4.client&quot; value=&quot;nightlybuild&quot;/&gt;</pre>
+<p>Using task attributes:-</p>
+<pre>
+&lt;p4Whatever
+	port=&quot;myserver:1666&quot;
+	client=&quot;smoketest&quot;
+	user=&quot;smoketestdude&quot;
+	.
+	.
+	.
+/&gt;
+</pre>
+
+<p>
+For more information regarding the underlying 'p4' commands you are referred to the Perforce Command Reference
+available from the <a href="http://www.perforce.com/" target="_top">Perforce website</a>.
+</p>
+
+
+<hr>
+<h2>Task Descriptions</h2>
+<h2><a name="p4sync">P4Sync</a></h2>
+<h3>Description:</h3>
+<p>Synchronize the current workspace with the depot.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">force a refresh of files, if this attribute has
+    been set.</td>
+    <td valign="top" align="center">no - if ommitted, it will be off,
+    otherwise a refresh will be forced.</td>
+  </tr>
+<tr>
+    <td valign="top">label</td>
+    <td valign="top">sync client to label</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4sync label=&quot;nightlybuild-0.0123&quot; force=&quot;foo&quot;/&gt;
+&lt;p4sync view=&quot;//depot/projects/projectfoo/main/src/...&quot;/&gt;
+</pre>
+<hr>
+
+
+
+<h2><a name="p4change">P4Change</a></h2>
+<h3>Description:</h3>
+<p>Request a new changelist from the Perforce server.
+This task sets the ${p4.change} property which can then be passed to <A HREF="#p4submit">P4Submit</A>,
+<A HREF="#p4edit">P4Edit</A>, or <a HREF="#p4add">P4Add</A>, or <a HREF="#p4delete">P4Delete</A>,
+then to <A HREF="#p4submit">P4Submit</A>.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">Description for ChangeList. If none specified, it will
+                     default to "AutoSubmit By Ant"</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4change description="Change Build Number in Script"&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4edit">P4Edit</a></h2>
+<h3>Description:</h3>
+<p>Open file(s) for edit. P4Change should be used to obtain a new changelist for P4Edit as,
+although P4Edit can open files to the default change,  P4Submit cannot yet submit it.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">The filespec to request to edit</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">An existing changelist number to assign files to.</td>
+    <td valign="top" align="center">No, but see above.</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+<pre>
+&lt;p4edit
+    view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4submit">P4Submit</a></h2>
+<h3>Description:</h3>
+<p>Submit a changelist, usually obtained from P4Change.
+<p>P4Submit will also change the value of the property p4.change if the change list is renamed by the Perforce server.
+<p>P4Submit will set a property p4.needsresolve to 1 if the change could not be submitted due to files needing resolving.
+<p>Files will need resolve if at the time of checking in, the revision that was checked out to do the current edit
+is not the latest any more.
+<p>If no files need resolve, the p4.needsresolve will be set to 0.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">The changelist number to submit</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">changeproperty</td>
+    <td valign="top">Name of a property to which the new change number
+    will be assigned if the Perforce server renumbers the change<br>
+    Since ant 1.6.1</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">needsresolveproperty</td>
+    <td valign="top">Name of property which will be set to <code>true</code>
+    if the submit requires a resolve<br>
+    Since ant 1.6.1</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4submit change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4have">P4Have</a></h2>
+<h3>Description:</h3>
+<p>List handy file info reflecting the current client contents.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">None</td>
+    <td valign="top" align="center">--</td>
+    <td valign="top" align="center">--</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4have/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4label">P4Label</a></h2>
+<h3>Description:</h3>
+<p>Create a new label and set contents to reflect current client file revisions.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the label</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">client view to use for label<br/>
+    The view can contain multiple lines separated by ; or :</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">desc</td>
+    <td valign="top">Label Description</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">lock</td>
+    <td valign="top">Lock the label once created.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;p4label
+	name=&quot;NightlyBuild:${DSTAMP}:${TSTAMP}&quot;
+	desc=&quot;Auto Nightly Build&quot;
+	lock=&quot;locked&quot;
+	label=&quot;//firstdepot/...;//secondepot/foo/bar/...&quot;
+/&gt;
+</pre>
+<hr>
+
+
+<h2><a name="p4labelsync">P4Labelsync</a></h2>
+<h3>Description:</h3>
+<p>Syncs an existing label against the current workspace or against specified revisions.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Perforce command line flag</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the label</td>
+    <td valign="center" align="center">Yes</td>
+    <td valign="top" align="center">-l labelname</td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">
+    list of files or revision specs separated by : or ;<br>
+    in the absence of this attribute, the labelsync will be done against the current Perforce client or the value of the p4client attribute or the value of the p4.client property or the value of the environment variable P4CLIENT</td>
+    <td valign="center" align="center">No</td>
+    <td valign="center" align="center">file[revRange] ... </td>
+  </tr>
+  <tr>
+    <td valign="top">simulationmode</td>
+    <td valign="top">Displays which effect the operation would have on the label but do not actually do it</td>
+    <td valign="center" align="center">No</td>
+    <td valign="top" align="center">-n</td>
+  </tr>
+  <tr>
+    <td valign="top">add</td>
+    <td valign="top">If set to true, preserve files which exist in the label, but not in the current view</td>
+    <td valign="center" align="center">No</td>
+    <td valign="top" align="center">-a</td>
+  </tr>
+  <tr>
+    <td valign="top">delete</td>
+    <td valign="top">If set to true, remove from the label the files mentioned in the view attribute</td>
+    <td valign="center" align="center">No</td>
+    <td valign="top" align="center">-d</td>
+  </tr>
+
+
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;
+p4labelsync
+name=&quot;current_release&quot;
+view="//depot/...#head;//depot2/file1#25"
+add=&quot;true&quot;
+/&gt;
+</pre>
+This example will add into the label called <i>current_release</i> the current head revision of all the files located under <i>//depot</i>
+and the revision 25 of the file <i>//depot2/file1</i>.
+<pre>
+&lt;
+p4labelsync
+name=&quot;current_release&quot;
+p4client=&quot;myclient&quot;
+/&gt;
+</pre>
+This example will update the label called <i>current_release</i> so that it reflects the Perforce client <i>myclient</i>.<br>
+Files present in the label before the sync and not present currently in the client will be removed from the label, because the add attribute is not set.
+<pre>
+&lt;
+p4labelsync
+name=&quot;current_release&quot;
+/&gt;
+</pre>
+This example will update the label called <i>current_release</i> so that it reflects the current default client for the ant Perforce tasks.<br>
+The default client is by order of priority :
+<ul>
+<li>
+the value of the p4.client property if set in the project
+</li>
+<li>
+the value of the P4CLIENT environment variable
+</li>
+<li>
+the default Perforce client from the Windows registry under Windows operating systems
+</li>
+</ul>
+Files present in the label before the sync and not present currently in the client will be removed from the label, because the add attribute is not set.
+<hr>
+
+
+<h2><a name="p4counter">P4Counter</a></h2>
+<h3>Description:</h3>
+<p>
+Obtain or set the value of a counter. When used in its base form
+(where only the counter name is provided), the counter value will be
+printed to the output stream. When the value is provided, the counter
+will be set to the value provided. When a property name is provided,
+the property will be filled with the value of the counter. You may
+not specify to both get and set the value of the counter in the same
+Task.
+</p>
+<P>
+The user performing this task must have Perforce &quot;review&quot; permissions
+as defined by Perforce protections in order for this task to succeed.
+</P>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the counter</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The new value for the counter</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The property to be set with the value of the counter</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+Print the value of the counter named &quot;last-clean-build&quot; to the output stream:
+<pre>
+&lt;p4counter name=&quot;last-clean-build&quot;/&gt;
+</PRE>
+Set the value of the counter based on the value of the &quot;TSTAMP&quot; property:
+<PRE>
+&lt;p4counter name=&quot;last-clean-build&quot; value=&quot;${TSTAMP}&quot;/&gt;
+</PRE>
+Set the value of the &quot;p4.last.clean.build&quot; property to the current
+value of the &quot;last-clean-build&quot; counter:
+<PRE>
+&lt;p4counter name=&quot;last-clean-build&quot; property=&quot;${p4.last.clean.build}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4reopen">P4Reopen</a></h2>
+<h3>Description:</h3>
+<p>
+Move (or reopen in Perforce speak) checkout files between changelists.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">tochange</td>
+    <td valign="top">The changelist to move files to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+Move all open files to the default changelist
+<pre>
+&lt;p4reopen view=&quot;//...&quot; tochange=&quot;default&quot;/&gt;
+</PRE>
+Create a new changelist then reopen into it, any files from the view //projects/foo/main/...
+<PRE>
+&lt;p4change description="Move files out of the way"/&gt;
+&lt;p4reopen view=&quot;//projects/foo/main/...&quot; tochange=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+<h2><a name="p4revert">P4Revert</a></h2>
+<h3>Description:</h3>
+<p>
+Reverts files.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">The changelist to revert.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">revertOnlyUnchanged</td>
+    <td valign="top">Revert only unchanged files (p4 revert -a)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+Revert everything!
+<pre>
+&lt;p4revert view=&quot;//...&quot;/&gt;
+</PRE>
+Revert any unchanged files in the default change
+<PRE>
+&lt;p4revert change="default" revertonlyunchanged=&quot;true&quot;/&gt;
+</pre>
+<hr>
+
+<h2><a name="p4add">P4Add</a></h2>
+<h3>Description:</h3>
+<p>
+Adds files specified in nested fileset children.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">commandlength</td>
+    <td valign="top">A positive integer specifying the maximum length
+        of the commandline when calling Perforce to add the files.
+        Defaults to 450, higher values mean faster execution,
+        but also possible failures.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">changelist</td>
+    <td valign="top">If specified the open files are associated with the
+specified pending changelist number; otherwise the open files are
+associated with the default changelist.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+Require a changelist, add all java files starting from a directory,
+and submit
+
+<pre>
+&lt;p4change/&gt;
+&lt;p4add commandlength=&quot;20000&quot; changelist=&quot;${p4.change}&quot;&gt;
+    &lt;fileset dir=&quot;../dir/src/&quot; includes=&quot;**/*.java&quot;/&gt;
+&lt;p4add&gt;
+&lt;p4submit change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+<h2><a name="p4fstat">P4Fstat</a></h2>
+<h3>Description:</h3>
+<p>
+Lists files under Perforce control and files not under Perforce control in one or several filesets
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">showfilter</td>
+    <td valign="top">should be one of
+      <table border="1">
+        <tr><td>value</td><td>description</td></tr>
+        <tr><td>&quot;all&quot;</td><td>list all files, first the ones which are under Perforce control, then the others</td></tr>
+        <tr><td>&quot;existing&quot;</td><td>list only files under Perforce control</td></tr>
+        <tr><td>&quot;non-existing&quot;</td><td>list only files which are not under Perforce control</td></tr></table>
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">fileset</td>
+    <td valign="top">one or several <a href="../CoreTypes/fileset.html">fileset(s)</a></td>
+    <td valign="top" align="center">yes (at least one fileset is needed)</td>
+  </tr>
+</table>
+Several nested filesets can be used with P4Fstat, one should be there at least.
+<h3>Examples</h3>
+will list all the files under C:\dev\gnu\depot, sorted by under Perforce or not under Perforce<br>
+<pre>
+&lt;project name=&quot;p4fstat&quot; default=&quot;p4fstat&quot; basedir=&quot;C:\dev\gnu&quot;&gt;
+    &lt;target name=&quot;p4fstat&quot; &gt;
+        &lt;p4fstat showfilter=&quot;all&quot;&gt;
+            &lt;fileset dir=&quot;depot&quot; includes=&quot;**/*&quot;/&gt;
+        &lt;/p4fstat&gt;
+    &lt;/target&gt;
+&lt;/project&gt;</p>
+</pre>
+
+
+
+
+<h2><a name="p4delete">P4Delete</a></h2>
+<h3>Description:</h3>
+<p>Open file(s) for delete. P4Change should be used to obtain a new changelist for P4Delete as,
+although P4Delete can open files to the default change,  P4Submit cannot yet submit it.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">The filespec to request to delete</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">An existing changelist number to assign files to.</td>
+    <td valign="top" align="center">No, but see above.</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+<pre>
+&lt;p4delete
+    view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+<h2><a name="p4integrate">P4Integrate</a></h2>
+<h3>Description:</h3>
+<p>Open file(s) for integrate. P4Change should be used to obtain a new changelist for P4Integrate as,
+although P4Integrate can open files to the default change,  P4Submit cannot yet submit it.
+</p>
+<h3>Parameters</h3>
+<p>If this task is used without using a branch definition, both fromfile and tofile must be supplied.
+If a branch definition is supplied, at least one of fromfile or tofile should be supplied.
+Both fromfile and tofile can be supplied together with a branch definition.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Perforce command line flag</b></td>
+  </tr>
+  <tr>
+    <td valign="top">fromfile</td>
+    <td valign="top">Original file or view</td>
+    <td valign="top" align="center">required if a branch is not specified</td>
+    <td valign="top" align="center"></td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">Target file or view.</td>
+    <td valign="top" align="center">required if a branch is not specified</td>
+    <td valign="top" align="center"></td>
+  </tr>
+  <tr>
+    <td valign="top">branch</td>
+    <td valign="top">Name of branch specification</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-b</td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">An existing changelist number to assign files to.</td>
+    <td valign="top" align="center">No, but see above.</td>
+    <td valign="top" align="center">-c</td>
+  </tr>
+  <tr>
+    <td valign="top">forceintegrate</td>
+    <td valign="top">Forces integration regardless of previous integration history (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-f</td>
+  </tr>
+  <tr>
+    <td valign="top">restoredeletedrevisions</td>
+    <td valign="top">Enables integration around deleted revisions (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-d</td>
+  </tr>
+  <tr>
+    <td valign="top">leavetargetrevision</td>
+    <td valign="top">Prevents target files from being synced to head revision before integration (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-h</td>
+  </tr>
+  <tr>
+    <td valign="top">enablebaselessmerges</td>
+    <td valign="top">Forces integration to existing target files which have no integration history relative to the source files (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-i</td>
+  </tr>
+  <tr>
+    <td valign="top">simulationmode</td>
+    <td valign="top">Displays which integrations are necessary but do not actually schedule them (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-n</td>
+  </tr>
+  <tr>
+    <td valign="top">reversebranchmappings</td>
+    <td valign="top">Reverses mappings in the branch view, with source and target files exchanging place (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-r</td>
+  </tr>
+  <tr>
+    <td valign="top">propagatesourcefiletype</td>
+    <td valign="top">Makes source file type propagate to existing target files (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-t</td>
+  </tr>
+  <tr>
+    <td valign="top">nocopytargetfiles</td>
+    <td valign="top">Prevents the physical delivery on disk of new target files (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-v</td>
+  </tr>
+</table>
+<br>
+(*) The following applies for a number of flags. The default is false. To set the flag, use  &quot;true&quot;
+
+<h3>Examples</h3>
+<pre>
+&lt;p4integrate
+    fromfile=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    tofile=&quot;//depot/projects/projectfoo/release/src/Blah.java...&quot;
+    change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+<h2><a name="p4resolve">P4Resolve</a></h2>
+<h3>Description:</h3>
+<p>Resolves files. You want to do this if :
+<ul>
+<li>
+there have been or there may be concurrent edits of the same file. For instance, you have begun to edit a file, and while you were working on it, somebody has submitted a new version  of the same file. When you first attempt to submit your file(s), you will get a message (property p4.needsresolve set).
+</li>
+<li>
+you have just been doing an integration to existing target files
+</li>
+</ul>
+P4Resolve does not use a change list number (it takes it from the files it is working on).
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Perforce command line flag</b></td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">The filespec to request to delete</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center"></td>
+   </tr>
+  <tr>
+    <td valign="top">resolvemode</td>
+    <td valign="top">Should have one of these values :
+      <ul>
+        <li>&quot;automatic&quot;</li>
+        <li>&quot;force&quot;</li>
+        <li>&quot;safe&quot;</li>
+        <li>&quot;theirs&quot;</li>
+        <li>&quot;yours&quot;</li>
+      </ul></td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">corresponds to one of -am -af -as -at -ay </td>
+  </tr>
+  <tr>
+    <td valign="top">redoall</td>
+    <td valign="top">allows previously resolved files to be resolved again (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-f</td>
+  </tr>
+  <tr>
+    <td valign="top">simulationmode</td>
+    <td valign="top">Lists the integrations which would be performed, without actually doing them. (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-n</td>
+  </tr>
+  <tr>
+    <td valign="top">forcetextmode</td>
+    <td valign="top">Attempts a textual merge, even for binary files (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-t</td>
+  </tr>
+  <tr>
+    <td valign="top">markersforall</td>
+    <td valign="top">Puts in markers for all changes, conflicting or not (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-v</td>
+  </tr>
+</table>
+<br>
+(*) The following applies for a number of flags. The default is false. To set the flag, use  &quot;true&quot;
+
+<h3>Examples</h3>
+<pre>
+&lt;p4resolve
+    view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    resolvemode=&quot;automatic&quot;/&gt;
+</pre>
+
+<h2><a name="changes">Change History</a></h2>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+    <td valign="top">Sept 2000</td>
+    <td valign="top" align="center">--</td>
+    <td valign="top">Internal Release within Rubus</td>
+</tr>
+
+<tr>
+    <td valign="top">Nov 2000</td>
+    <td valign="top">V1.0</td>
+    <td valign="top">Initial Release donated to ASF :-)</td>
+</tr>
+<tr>
+    <td valign="top">Jan 2001</td>
+    <td valign="top">V1.1</td>
+    <td valign="top">Fixed cross platform (NT/Unix) bug<br>
+    Refactored p4 output handling code<br>
+    Refactored exec'ing code</td>
+</tr>
+<tr>
+    <td valign="top">Jan 2003</td>
+    <td valign="top">V1.2</td>
+    <td valign="top">Added globalopts to P4Base to allow
+                     additional global options to be set.<br>
+                     Added p4fstat task</td>
+</tr>
+<tr>
+    <td valign="top">May 2003</td>
+    <td valign="top">V1.3</td>
+    <td valign="top">Added p4labelsync, p4resolve, p4integrate.<br>
+                     Changed p4submit (detection of changes of change numbers,
+                     and of failed submits due to resolution needed)</td>
+</tr>
+<tr>
+    <td valign="top">Jan 2004</td>
+    <td valign="top">ant 1.6.1</td>
+    <td valign="top">
+Changed p4submit, needsresolveproperty and changeproperty added</td>
+</tr>
+</table>
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/propertyfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/propertyfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/propertyfile.html	(revision 14989)
@@ -0,0 +1,192 @@
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>PropertyFile Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2>PropertyFile</h2>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Thomas Christen (<a href="mailto:chr@active.ch">chr@active.ch</a>)</li>
+  <li>Jeremy Mawson (<a href="mailto:jem@loftinspace.com.au">jem@loftinspace.com/au</a>)</li>
+</ul>
+
+<hr>
+<h2>Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#proptask">PropertyFile Task</a></li>
+  <li><a href="#entryElement">Entry Task</a></li>
+</ul>
+
+<hr>
+<a name="introduction"></a><h2>Introduction</h2>
+<p>Ant provides an optional task for editing property files.  This is very useful
+when wanting to make unattended modifications to configuration files for application
+servers and applications.  Currently, the task maintains a working property file with
+the ability to add properties or make changes to existing ones.  However, any comments
+are lost.</p>
+
+<hr>
+<a name="proptask"></a><h2>PropertyFile Task</h2>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+  <td width="12%" valign="top">file</td>
+  <td width="78%" valign="top">Location of the property file to be edited</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">comment</td>
+  <td width="78%" valign="top">Header for the file itself</td>
+  <td width="10%" valign="top">no</td>
+</tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<a name="entryElement"></a><h4>Entry</h4>
+<p>Use nested <code>&lt;entry&gt;</code>
+elements to specify actual modifications to the property file itself.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">key</td>
+    <td valign="top">Name of the property name/value pair</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">Value to set (=), to add (+) or subtract (-)</td>
+    <td valign="top" align="center" rowspan="2">At least one must be specified</td>
+  </tr>
+  <tr>
+    <td valign="top">default</td>
+    <td valign="top">Initial value to set for a property if it is not
+                     already defined in the property file.<br>
+                     For type date, an additional keyword is allowed: &quot;now&quot;</td>
+    </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">Regard the value as : int, date or string (default)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">operation</td>
+    <td valign="top">&quot;+&quot; or &quot;=&quot; (default) for all datatypes<br>&quot;-&quot; (for date and int only).<br>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">For int and date type only. If present, Values will
+                     be parsed and formatted accordingly.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unit</td>
+    <td valign="top">The unit of the value to be applied to date +/- operations.
+                     Valid Values are:
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day (default)</li>
+                        <li>week</li>
+                        <li>month</li>
+                        <li>year</li>
+                     </ul>
+                     This only applies to date types using a +/- operation.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>The rules used when setting a property value are shown below.&nbsp; The
+operation occurs <b>after</b> these rules are considered.</p>
+
+<ul>
+  <li>If only value is specified, the property is set to it regardless of its
+  previous value.</li>
+  <li>If only default is specified and the property previously existed in the
+  property file, it is unchanged.</li>
+  <li>If only default is specified and the property did not exist in the
+  property file, the property is set to default.</li>
+  <li>If value and default are both specified and the property previously
+  existed in the property file, the property is set to value.</li>
+  <li>If value and default are both specified and the property did not exist in
+  the property file, the property is set to default.</li>
+</ul>
+<p>&nbsp;</p>
+
+<h3>Examples</h3>
+
+<p>The following changes the my.properties file.  Assume my.properties look like:</p>
+
+<pre># A comment
+akey=novalue</pre>
+
+<p>After running, the file would now look like
+</p>
+<pre>#Thu Nov 02 23:41:47 EST 2000
+akey=avalue
+adate=2000/11/02 23\:41
+anint=1
+formated.int=0014
+formated.date=028 17\:34
+</pre>
+<p>
+The slashes conform to the expectations of the Properties class.  The file will be stored in a manner so that each character is examined and escaped if necessary.  Note that the original comment is now lost.  Please keep this in mind when running this task against heavily commented properties files.  It may be best to have a commented version in the source tree, copy it to a deployment area, and then run the modifications on the copy.  Future versions of PropertyFile will hopefully eliminate this shortcoming.
+</p>
+
+<blockquote><pre>&lt;propertyfile
+    file=&quot;my.properties&quot;
+    comment=&quot;My properties&quot;&gt;
+  &lt;entry  key=&quot;akey&quot; value=&quot;avalue&quot;/&gt;
+  &lt;entry  key=&quot;adate&quot; type=&quot;date&quot; value=&quot;now&quot;/&gt;
+  &lt;entry  key=&quot;anint&quot; type=&quot;int&quot; operation=&quot;+&quot;/&gt;
+  &lt;entry  key=&quot;formated.int&quot; type=&quot;int&quot; default=&quot;0013&quot; operation=&quot;+&quot; pattern=&quot;0000&quot;/&gt;
+  &lt;entry  key=&quot;formated.date&quot; type=&quot;date&quot; value=&quot;now&quot; pattern=&quot;DDD HH:mm&quot;/&gt;
+&lt;/propertyfile&gt;
+</pre></blockquote>
+<p>
+To produce dates relative from today :</p>
+<blockquote><pre>&lt;propertyfile
+    file=&quot;my.properties&quot;
+    comment=&quot;My properties&quot;&gt;
+  &lt;entry  key=&quot;formated.date-1&quot;
+      type=&quot;date&quot; default=&quot;now&quot; pattern=&quot;DDD&quot;
+      operation=&quot;-&quot; value=&quot;1&quot;/&gt;
+  &lt;entry  key=&quot;formated.tomorrow&quot;
+      type=&quot;date&quot; default=&quot;now&quot; pattern=&quot;DDD&quot;
+      operation=&quot;+&quot; value=&quot;1&quot;/&gt;
+&lt;/propertyfile&gt;
+</pre></blockquote>
+
+<p>
+Concatenation of strings :</p>
+<blockquote><pre>&lt;propertyfile
+    file=&quot;my.properties&quot;
+    comment=&quot;My properties&quot;&gt;
+  &lt;entry  key=&quot;progress&quot; default=&quot;&quot; operation=&quot;+&quot; value=&quot;.&quot;/&gt;
+&lt;/propertyfile&gt;
+</pre></blockquote>
+<p>Each time called, a &quot;.&quot; will be appended to &quot;progress&quot;
+</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/pvcstask.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/pvcstask.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/pvcstask.html	(revision 14989)
@@ -0,0 +1,270 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+   <title>PVCS task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h2>Ant Pvcs Task User Manual</h2>
+
+<p><b>Note:</b>
+Before using this task, the user running ant must have access to the
+commands of PVCS (get and pcli) and must have access to the
+repository. Note that the way to specify the repository is platform
+dependent so use property to specify location of repository.
+</p>
+
+by
+<br><!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Thomas Christensen (<a href="mailto:tchristensen@nordija.com">tchristensen@nordija.com</a>)</li>
+  <li>Don Jeffery (<a href="mailto:donj@apogeenet.com">donj@apogeenet.com</a>)</li>
+  <li>Jon Dickinson (<a href="mailto:dickinson.j@ucles.org.uk">dickinson.j@ucles.org.uk</a>)</li>
+</ul>
+Version 1.1 - 2001/06/27<br>
+<p>Problems with UNC pathnames and the use of () in paths are fixed and an updateonly
+  argument introduced.</p>
+Version 1.0 - 2001/01/31<br>
+<p>Initial release.</p>
+<hr>
+<h2>
+Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#pvcs">Pvcs Task</a></li>
+</ul>
+<hr>
+
+<a name="introduction"></a><h2>Introduction</h2>
+The pvcs task allows the user of ant to extract the latest edition
+of the source code from a PVCS repository. PVCS is a version control system
+developed by <a href="http://www.merant.com/products/pvcs">Merant</a>.
+<br>
+This version has been tested agains PVCS version 6.5 and 6.6 under Windows and Solaris.
+
+<hr>
+<a name="pvcs"></a><h2>Pvcs Task</h2>
+<h3>Description</h3>
+The pvcs task is set to point at a PVCS repository and optionally a project
+within that repository, and can from that specification get the latest
+version of the files contained by the repository.
+<h3>
+Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP WIDTH="12%"><b>Attribute</b></td>
+
+<td VALIGN=TOP WIDTH="78%"><b>Description</b></td>
+
+<td VALIGN=TOP WIDTH="10%"><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">repository</td>
+
+<td VALIGN=TOP WIDTH="78%">The location of the repository (see your PVCS
+manuals)</td>
+
+<td VALIGN=TOP WIDTH="10%">Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">pvcsproject</td>
+
+<td VALIGN=TOP WIDTH="78%">The project within the PVCS repository to extract
+files from (&quot;/&quot; is root project and that is default if this attribute isn't
+specified)</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">label</td>
+
+<td VALIGN=TOP WIDTH="78%">Only files marked with this label are extracted.</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">promotiongroup</td>
+
+<td VALIGN=TOP WIDTH="78%">Only files within this promotion group are extracted. Using
+both the <i>label</i> and the <i>promotiongroup</i> tag will cause the files in the
+promotion group and with that label to be extracted.
+</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">config</td>
+
+<td VALIGN=TOP WIDTH="78%">path of a non default .cfg file.
+Can be given absolute or relative to ant's base directory.
+</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">force</td>
+
+<td VALIGN=TOP WIDTH="78%">If set to <i>yes</i> all files that exists and are writable are overwritten. Default <i>no</i> causes the files that are writable to be ignored. This stops the PVCS command <i>get</i> to stop asking questions!</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">workspace</td>
+
+<td VALIGN=TOP WIDTH="78%">By specifying a workspace, the files are extracted to that location. A PVCS workspace is a
+name for a location of the workfiles and isn't as such the location itself. You define the location for a workspace
+using the PVCS GUI clients. If this isn't specified the default workspace for the current user is used.</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">pvcsbin</td>
+
+<td VALIGN=TOP WIDTH="78%">On some systems the PVCS executables <i>pcli</i>
+and <i>get</i> are not found in the PATH. In such cases this attribute
+should be set to the bin directory of the PVCS installation containing
+the executables mentioned before. If this attribute isn't specified the
+tag expects the executables to be found using the PATH environment variable.</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+    <tr>
+      <td VALIGN=TOP WIDTH="12%">ignorereturncode</td>
+      <td VALIGN=TOP WIDTH="78%">If set to <i>true</i> the return value from executing
+        the pvcs commands are ignored.</td>
+      <td VALIGN=TOP WIDTH="10%">No</td>
+    </tr>
+    <tr>
+      <td VALIGN=TOP WIDTH="12%">updateonly</td>
+      <td VALIGN=TOP WIDTH="78%">If set to <i>true</i> files are gotten only if
+        newer than existing local files.</td>
+      <td VALIGN=TOP WIDTH="10%">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">filenameformat</td>
+      <td valign="TOP">The format of your folder names in a
+          format suitable for <code>java.text.MessageFormat</code>.
+          Defaults to <code>{0}-arc({1})</code>.  Repositories where
+          the archive extension is not  <code>-arc</code> should set
+          this.</td>
+      <td valign="TOP">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">linestart</td>
+        <td valign="TOP">Used to parse the output of the pcli
+          command. It defaults to <code>&quot;P:</code>.  The parser already
+          knows about / and \\, this property is useful in cases where the
+          repository is accessed on a Windows platform via a drive letter
+          mapping.</td>
+      <td valign="TOP">No</td>
+    </tr>
+</table>
+<a name="nested"></a><h3>Nested Elements</h3>
+
+<h3>pvcsproject element</h3>
+<p><code>pvcs</code> supports a nested
+<code>&lt;pvcsproject&gt;</code> element, that represents a project
+within the PVCS repository to extract files from.  By nesting multiple
+<code>&lt;pvcsproject&gt;</code> elements under the
+<code>&lt;pvcs&gt;</code> task, multiple projects can be
+specified.</p>
+
+<h3>Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP WIDTH="12%"><b>Attribute</b></td>
+
+<td VALIGN=TOP WIDTH="78%"><b>Description</b></td>
+
+<td VALIGN=TOP WIDTH="10%"><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">name</td>
+
+<td VALIGN=TOP WIDTH="78%">The name of the pvcs project</td>
+
+<td VALIGN=TOP WIDTH="10%">Yes</td>
+</tr>
+</table>
+
+<h3>Examples</h3>
+The following set-up extracts the latest version of the files in the pvcs repository.
+<pre>
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Get the latest version                                              --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name=&quot;getlatest&quot;&gt;
+    &lt;pvcs repository=&quot;/mnt/pvcs&quot; pvcsproject=&quot;/myprj&quot;/&gt;
+  &lt;/target&gt;</ul>
+</pre>
+<p>Now run:</p>
+<code>ant getlatest</code>
+<p>This will cause the following output to appear:</p>
+<pre>
+  getlatest:
+  [pvcs] PVCS Version Manager (VMGUI) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT. All rights reserved.
+  [pvcs] PVCS Version Manager (get) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT. All rights reserved.
+  [pvcs] c:\myws\myprj\main.java &lt;- C:\mypvcs\archives\myprj\main.java-arc
+  [pvcs] rev 1.1
+  [pvcs] c:\myws\myprj\apache\tool.java &lt;- C:\mypvcs\archives\myprj\apache\tools.java-arc
+  [pvcs] rev 1.5
+
+  BUILD SUCCESSFUL
+
+  Total time: 19 seconds</pre>
+
+This next example extracts the latest version of the files in the pvcs
+repository from two projects using nested &lt;pvcsproject&gt; elements.
+<pre>
+  &lt;!-- ===================================================================--&gt;
+  &lt;!-- Get latest from myprj and myprj2                                   --&gt;
+  &lt;!-- ===================================================================--&gt;
+  &lt;target name=&quot;getlatest2&quot;&gt;
+    &lt;pvcs repository=&quot;/mnt/pvcs&quot;&gt;
+      &lt;pvcsproject name=&quot;/myprj&quot;/&gt;
+      &lt;pvcsproject name=&quot;/myprj2&quot;/&gt;
+    &lt;/pvcs&gt;
+  &lt;/target&gt;</ul>
+</pre>
+<p>Now run:</p>
+<code>ant getlatest2</code>
+<p>This will cause the following output to appear:</p>
+<pre>
+  getlatest2:
+  [pvcs] PVCS Version Manager (VMGUI) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT.  All rights reserved.
+  [pvcs] PVCS Version Manager (get) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT.  All rights reserved.
+  [pvcs] c:\myws\myprj\main.java &lt;- C:\mypvcs\archives\myprj\main.java-arc
+  [pvcs] rev 1.1
+  [pvcs] c:\myws\myprj\apache\tool.java &lt;- C:\mypvcs\archives\myprj\apache\tool.java-arc
+  [pvcs] rev 1.5
+  [pvcs] c:\myws\myprj2\apache\tool2.java &lt;- C:\mypvcs\archives\myprj2\apache\tool2.java-arc
+  [pvcs] rev 1.2
+
+  BUILD SUCCESSFUL
+
+  Total time: 22 seconds</pre>
+
+<hr WIDTH="100%">
+<p align="center">Copyright &copy; 2001-2004 The Apache Software
+Foundation. All rights Reserved.</p>
+<p>PVCS is a registered trademark of MERANT.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/renameextensions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/renameextensions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/renameextensions.html	(revision 14989)
@@ -0,0 +1,109 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>RenameExtensions Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="renameexts">RenameExtensions</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the <a href="../CoreTasks/move.html">move</a>
+task with a <a href="../CoreTypes/mapper.html#glob-mapper">glob mapper</a> instead.</i></p>
+<h3>Description</h3>
+<p>Renames files in the <code>srcDir</code> directory ending with the
+<code>fromExtension</code> string so that they end with the
+<code>toExtension</code> string. Files are only replaced if
+<code>replace</code> is true
+</p>
+<p>See the section on
+<a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.
+This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcDir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fromExtention</td>
+    <td valign="top">The string that files must end in to be renamed</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">Whether the file being renamed to should be
+      replaced if it already exists</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">The starting directory for files to search in</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">toExtension</td>
+    <td valign="top">The string that renamed files will end with on
+      completion</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;renameext srcDir=&quot;/source/project1&quot;
+              includes=&quot;**&quot;
+              excludes=&quot;**/samples/*&quot;
+              fromExtension=&quot;.java.keep&quot;
+              toExtension=&quot;.java&quot;
+              replace=&quot;true&quot;/&gt;
+</code>
+  </p>
+</blockquote>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/replaceregexp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/replaceregexp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/replaceregexp.html	(revision 14989)
@@ -0,0 +1,182 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>ReplaceRegExp Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h2><a name="replaceregexp">ReplaceRegExp</a></h2>
+<h3>Description</h3>
+<p>ReplaceRegExp is a directory based task for replacing the
+occurrence of a given regular expression with a substitution pattern
+in a selected file or set of files.</p>
+
+<p>The output file is only written if it differs from the existing
+file.  This prevents spurious rebuilds based on unchanged files which
+have been regenerated by this task.</p> 
+
+<p>Similar to <a href="../CoreTypes/mapper.html#regexp-mapper">regexp
+type mappers</a> this task needs a supporting regular expression
+library and an implementation of
+<code>org.apache.tools.ant.util.regexp.Regexp</code>. See details <a href="#implementation">below</a>. </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">file for which the regular expression should be replaced.</td>
+    <td align="center">Yes if no nested &lt;fileset&gt; is used</td>
+  </tr>
+  <tr>
+    <td valign="top">match</td>
+    <td valign="top">The regular expression pattern to match in the file(s)</td>
+    <td align="center">Yes, if no nested &lt;regexp&gt; is used</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">The substitution pattern to place in the file(s) in place
+                     of the regular expression.</td>
+    <td align="center">Yes, if no nested &lt;substitution&gt; is used</td>
+  </tr>
+  <tr>
+    <td valign="top">flags</td>
+    <td valign="top">The flags to use when matching the regular expression.  For more
+                     information, consult the Perl5 syntax<br />
+                     g : Global replacement.  Replace all occurences found<br />
+                     i : Case Insensitive.  Do not consider case in the match<br />
+                     m : Multiline.  Treat the string as multiple lines of input, using "^" and "$" as the start or end of any line, respectively, rather than start or end of string.<br />
+                     s : Singleline.  Treat the string as a single line of input, using "." to match any character, including a newline, which normally, it would not match.<br />
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">byline</td>
+    <td valign="top">Process the file(s) one line at a time, executing the replacement
+                     on one line at a time (<i>true/false</i>).  This is useful if you
+                     want to only replace the first occurence of a regular expression on
+                     each line, which is not easy to do when processing the file as a whole.
+                     Defaults to <i>false</i>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the file. <em>since Ant 1.6</em></td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;replaceregexp file=&quot;${src}/build.properties&quot;
+                         match=&quot;OldProperty=(.*)&quot;
+                         replace=&quot;NewProperty=\1&quot;
+                         byline=&quot;true&quot;/&gt;
+</pre>
+<p>replaces occurrences of the property name &quot;OldProperty&quot;
+ with &quot;NewProperty&quot; in a properties file, preserving the existing
+value, in the file <code>${src}/build.properties</code></p>
+<a name="implementation"/>
+<h3>Choice of regular expression implementation</h3>
+<p>
+Ant comes with
+wrappers for
+<a href="http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html" target="_top">the java.util.regex package of JDK 1.4</a>,
+<a href="http://jakarta.apache.org/regexp/" target="_top">jakarta-regexp</a>
+and <a href="http://jakarta.apache.org/oro/" target="_top">jakarta-ORO</a>,
+See <a href="../install.html#librarydependencies">installation dependencies</a>
+ concerning the supporting libraries.</p>
+<p>
+The system property <code>ant.regexp.regexpimpl</code> governs which regular expression implementation will be chosen.
+Possible values for this property are :
+<ul>
+<li>
+org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
+</li>
+<li>
+org.apache.tools.ant.util.regexp.JakartaOroRegexp
+</li>
+<li>
+org.apache.tools.ant.util.regexp.JakartaRegexpRegexp
+</li>
+</ul>
+It can also be another implementation of the interface <code>org.apache.tools.ant.util.regexp.Regexp</code>.
+If <code>ant.regexp.regexpimpl</code> is not defined, ant checks in the order Jdk14Regexp, JakartaOroRegexp,
+ JakartaRegexp for the availability of the corresponding library. The first of these 3 which is found will be used.</p>
+<p>
+There are cross-platform issues for matches related to line terminator.
+For example if you use $ to anchor your regular expression on the end of a line
+the results might be very different depending on both your platform and the regular
+expression library you use. It is 'highly recommended' that you test your pattern on
+both Unix and Windows platforms before you rely on it.
+<ul>
+    <li>Jakarta Oro defines a line terminator as '\n' and is consistent with Perl.</li>
+    <li>Jakarta RegExp uses a system-dependant line terminator.</li>
+    <li>JDK 1.4 uses '\n', '\r\n', '\u0085', '\u2028', '\u2029' as a default
+    but is configured in the wrapper to use only '\n' (UNIX_LINE)</li>
+</ul>
+<em>We <b>strongly</b> recommend that you use Jakarta Oro.</em>
+</p>
+<h3>Parameters specified as nested elements</h3>
+<p>This task supports a nested <a href="../CoreTypes/fileset.html">FileSet</a>
+   element.</p>
+<p>This task supports a nested <i>Regexp</i> element to specify
+   the regular expression.  You can use this element to refer to a previously
+   defined regular expression datatype instance.</p>
+<blockquote>
+     &lt;regexp id="id" pattern="alpha(.+)beta"/&gt;<br />
+     &lt;regexp refid="id"/&gt;
+</blockquote>
+<p>This task supports a nested <i>Substitution</i> element to specify
+   the substitution pattern.  You can use this element to refer to a previously
+   defined substitution pattern datatype instance.</p>
+<blockquote>
+     &lt;substitution id="id" expression="beta\1alpha"/&gt;<br />
+     &lt;substitution refid="id"/&gt;
+</blockquote>
+<h3>Examples</h3>
+<blockquote>
+  <pre>
+&lt;replaceregexp byline=&quot;true&quot;&gt;
+  &lt;regexp pattern=&quot;OldProperty=(.*)&quot;/&gt;
+  &lt;substitution expression=&quot;NewProperty=\1&quot;/&gt;
+  &lt;fileset dir=&quot;.&quot;&gt;
+   &lt;includes=&quot;*.properties&quot;/&gt;
+  &lt;/fileset&gt;
+ &lt;/replaceregexp&gt;
+</pre></blockquote>
+<p>replaces occurrences of the property name &quot;OldProperty&quot;
+ with &quot;NewProperty&quot; in a properties file, preserving the existing
+value, in all files ending in <code>.properties</code> in the current directory</p>
+
+<blockquote>
+<pre>&lt;replaceregexp match="\s+" replace=" " flags="g" byline="true"&gt;
+    &lt;fileset dir="${html.dir}" includes="**/*.html" /&gt;
+&lt;/replaceregexp&gt;
+</pre></blockquote>
+<p>replaces all whitespaces (blanks, tabs, etc) by one blank remaining the
+line separator. So with input
+
+<blockquote>
+<pre>
+&lt;html>    &lt;body&gt;
+&lt;&lt;TAB&gt;&gt;&lt;h1&gt;    T E S T   &lt;/h1&gt;  &lt;&lt;TAB&gt;&gt;    
+&lt;&lt;TAB&gt;&gt; &lt;/body&gt;&lt;/html&gt;
+</pre></blockquote>
+would converted to
+<pre>
+&lt;html&gt; &lt;body&gt;
+ &lt;h1&gt; T E S T &lt;/h1&gt; &lt;/body&gt;&lt;/html&gt;
+</pre>
+</p>
+<hr/>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/rexec.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/rexec.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/rexec.html	(revision 14989)
@@ -0,0 +1,97 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>RExec Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="rexec">RExec</a></h2>
+<h3>Description</h3>
+Task to automate a remote rexec session. Just like the Telnet task,
+it uses nested <tt>&lt;read&gt;</tt> to indicate strings to wait for, and
+<tt>&lt;write&gt;</tt> tags to specify text to send to the remote process.
+
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+     <td>userid</td>
+     <td>the login id to use on the remote server.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>password</td>
+     <td>the login password to use on the remote server.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>server</td>
+     <td>the address of the remote rexec server.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>command</td>
+     <td>the command to execute on the remote server.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>port</td>
+     <td>the port number of the remote rexec server. Defaults to port 512 in BSD Unix systems.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>timeout</td>
+     <td>set a default timeout to wait for a response. Specified in seconds. Default is no timeout.</td>
+     <td>No</td>
+  </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+The input to send to the server, and responses to wait for, are
+described as nested elements.  
+
+<h4>read</h4>
+
+<p>declare (as a text child of this element) a string to wait for.
+The element supports the timeout attribute, which overrides any
+timeout specified for the task as a whole. It also has a <tt>string</tt>
+attribute, which is an alternative to specifying the string as 
+a text element.
+</p>
+<i>It is not necessary to declare a closing &lt;read&gt; element like for the Telnet task. The connection is not broken until the command has completed and
+the input stream (output of the command) is terminated.
+</i>
+<h4>write</h4>
+
+<p>describes the text to send to the server. The <tt>echo</tt> boolean
+attribute controls whether the string is echoed to the local log; 
+this is "true" by default
+</p>
+<h3>Example</h3>
+A simple example of connecting to a server and running a command.
+
+<blockquote><pre>
+&lt;rexec userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; command=&quot;ls&quot;/&gt;
+</pre></blockquote>
+
+The task can be used with other ports as well:
+<blockquote><pre>
+&lt;rexec port=&quot;80&quot; userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; command=&quot;ls&quot;/&gt;
+</pre></blockquote>
+
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/rpm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/rpm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/rpm.html	(revision 14989)
@@ -0,0 +1,84 @@
+<html>
+
+<head>
+<title>Rpm Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="rpm">Rpm</a></h2>
+<h3>Description</h3>
+<p>
+  A basic task for invoking the rpm executable to build a Linux installation
+  file. The task currently only works on Linux or other Unix platforms
+  with rpm support.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">specFile</td>
+    <td valign="top">The name of the spec file to be used.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">topDir</td>
+    <td valign="top">
+      this is the directory which will have the expected
+      subdirectories, SPECS, SOURCES, BUILD, SRPMS.  If this isn't specified,
+      the baseDir value is used
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cleanBuildDir</td>
+    <td valign="top">This will remove the generated files in the BUILD
+directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">removeSpec</td>
+    <td valign="top">this will remove the spec file from SPECS</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">removeSource</td>
+    <td valign="top"> Flag (optional, default=false) 
+        to remove the sources after the build.
+        See the the <tt>--rmsource</tt>  option of rpmbuild.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">rpmBuildCommand</td>
+    <td valign="top">The executable to use for building the RPM.
+      Defaults to <code>rpmbuild</code> if it can be found or
+      <code>rpm</code> otherwise.  Set this if you don't have either on
+      your PATH or want to use a different executable.  <em>Since Ant
+      1.6</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">very similar idea to the cvs task.  the default is "-bb"</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output/error</td>
+    <td valign="top">where standard output and error go</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<hr>
+
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/scp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/scp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/scp.html	(revision 14989)
@@ -0,0 +1,236 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>SCP Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="scp">SCP</a></h2>
+<h3>Description</h3>
+
+<p><em>since Ant 1.6</em></p>
+
+<p>Copies a file or FileSet to or from a remote machine running SSH daemon.
+FileSet <i>only</i> works for copying files from the local machine to a
+remote machine.</p>
+
+<p><b>Note:</b> This task depends on external libraries not included
+in the Ant distribution.  See <a
+href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.  This task has been tested with jsch-0.1.2 to
+jsch-0.1.14.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to copy.  This can be a local path or a
+    remote path of the form <i>user[:password]@host:/directory/path</i>.
+    <i>:password</i> can be ommitted if you use key based
+    authentication or specify the password attribute.  The way remote
+    path is recognized is whether it contains @ character or not. This
+    will not work if your localPath contains @ character.</td>
+    <td valign="top" align="center">Yes, unless a nested
+    <code>&lt;fileset&gt;</code> element is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">localFile</td>
+    <td valign="top">This is an alternative to the file attribute. But
+    this must always point to a local file. The reason this was added
+    was that when you give file attribute it is treated as remote if
+    it contains @ character. This character can exist also in local
+    paths.  <em>since Ant 1.6.2</em></td>
+    <td valign="top" align="center">Alternative to file attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">remoteFile</td>
+    <td valign="top">This is an alternative to the file attribute. But
+    this must always point to a remote file.  <em>since Ant 1.6.2</em></td>
+    <td valign="top" align="center">Alternative to file attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory to copy to.  This can be a local path
+    or a remote path of the form <i>user[:password]@host:/directory/path</i>.
+    <i>:password</i> can be ommitted if you use key based
+    authentication or specify the password attribute.  The way remote
+    path is recognized is whether it contains @ character or not. This
+    will not work if your localPath contains @ character.</td>
+    <td valian="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">localTodir</td>
+    <td valign="top">This is an alternative to the todir
+    attribute. But this must always point to a local directory. The
+    reason this was added was that when you give todir attribute it is
+    treated as remote if it contains @ character. This character can
+    exist also in local paths.  <em>since Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">localTofile</td>
+    <td valign="top">Changes the file name to the given name while
+    receiving it, only useful if receiving a single file.  <em>since
+    Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">remoteTodir</td>
+    <td valign="top">This is an alternative to the todir
+    attribute. But this must always point to a remote directory.
+    <em>since Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">remoteTofile</td>
+    <td valign="top">Changes the file name to the given name while
+    sending it, only useful if sending a single file.  <em>since
+    Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">The port to connect to on the remote host.</td>
+    <td valian="top" align="center">No, defaults to 22.</td>
+  </tr>
+  <tr>
+    <td valign="top">trust</td>
+    <td valign="top">This trusts all unknown hosts if set to yes/true.<br>
+      <strong>Note</strong> If you set this to false (the default), the
+      host you connect to must be listed in your knownhosts file, this
+      also implies that the file exists.</td>
+    <td valian="top" align="center">No, defaults to No.</td>
+  </tr>
+  <tr>
+    <td valign="top">knownhosts</td>
+    <td valign="top">This sets the known hosts file to use to validate
+    the identity of the remote host.  This must be a SSH2 format file.
+    SSH1 format is not supported.</td>
+    <td valian="top" align="center">No, defaults to
+    ${user.home}/.ssh/known_hosts.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Whether to halt the build if the transfer fails.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+     <td valign="top">The password.</td>
+     <td valign="top" align="center">Not if you are using key based
+     authentication or the password has been given in the file or
+     todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">keyfile</td>
+     <td valign="top">Location of the file holding the private key.</td>
+     <td valign="top" align="center">Yes, if you are using key based
+     authentication.</td>
+  </tr>
+  <tr>
+    <td valign="top">passphrase</td>
+     <td valign="top">Passphrase for your private key.</td>
+     <td valign="top" align="center">Yes, if you are using key based
+     authentication.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Determines whether SCP outputs verbosely to the
+    user. Currently this means outputting dots/stars showing the
+    progress of a file transfer.  <em>since Ant 1.6.2</em></td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select
+sets of files to copy.
+ To use a fileset, the <code>todir</code> attribute must be set.</p>
+
+<h3>Examples</h3>
+<p><b>Copy a single local file to a remote machine</b></p>
+<pre>
+  &lt;scp file=&quot;myfile.txt&quot; todir=&quot;user:password@somehost:/home/chuck&quot;/&gt;
+</pre>
+
+<p><b>Copy a single local file to a remote machine with separate
+password attribute</b></p>
+<pre>
+  &lt;scp file=&quot;myfile.txt&quot; todir=&quot;user@somehost:/home/chuck&quot; password=&quot;password&quot;/&gt;
+</pre>
+
+<p><b>Copy a single local file to a remote machine using key base
+authentication.</b></p>
+<pre>
+  &lt;scp file=&quot;myfile.txt&quot;
+       todir=&quot;user@somehost:/home/chuck&quot; 
+       keyfile=&quot;${user.home}/.ssh/id_dsa&quot;
+       passphrase=&quot;my extremely secret passphrase&quot;
+  /&gt;
+</pre>
+
+<p><b>Copy a single remote file to a local directory</b></p>
+<pre>
+  &lt;scp file=&quot;user:password@somehost:/home/chuck/myfile.txt&quot; todir=&quot;../some/other/dir&quot;/&gt;
+</pre>
+
+<p><b>Copy a remote directory to a local directory</b></p>
+<pre>
+  &lt;scp file=&quot;user:password@somehost:/home/chuck/*&quot; todir=&quot;/home/sara&quot; /&gt;
+</pre>
+
+<p><b>Copy a local directory to a remote directory</b></p>
+<pre>
+  &lt;scp todir=&quot;user:password@somehost:/home/chuck/&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+  &lt;/scp&gt;
+</pre>
+<p><b>Copy a set of files to a directory</b></p>
+<pre>
+  &lt;scp todir=&quot;user:password@somehost:/home/chuck&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;&gt;
+      &lt;include name=&quot;**/*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/scp&gt;
+
+  &lt;scp todir=&quot;user:password@somehost:/home/chuck&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot; excludes=&quot;**/*.java&quot;/&gt;
+  &lt;/scp&gt;
+</pre>
+
+<p><strong>Security Note:</strong>  Hard coding passwords and/or usernames
+in scp task can be a serious security hole.  Consider using variable
+substituion and include the password on the command line.  For example:<br>
+<pre>
+    &lt;scp todir=&quot;${username}:${password}@host:/dir&quot; ...&gt;
+</pre>
+Invoke ant with the following command line:
+<pre>
+    ant -Dusername=me -Dpassword=mypassword target1 target2
+</pre>
+</p>
+
+<p><strong>Unix Note:</strong> File permissions are not retained when files
+are copied; they end up with the default <code>UMASK</code> permissions
+instead. This is caused by the lack of any means to query or set file
+permissions in the current Java runtimes. If you need a permission-
+preserving copy function, use <code>&lt;exec executable="scp" ... &gt;</code>
+instead.
+</p>
+
+<hr><p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/script.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/script.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/script.html	(revision 14989)
@@ -0,0 +1,215 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Script Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="script">Script</a></h2>
+<h3>Description</h3>
+<p>Execute a script in a
+  <a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a> supported language.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+<p>All items (tasks, targets, etc) of the running project are
+accessible from the script, using either their <code>name</code> or
+<code>id</code> attributes (as long as their names are considered
+valid Java identifiers, that is).
+The name "project" is a pre-defined reference to the Project, which can be
+used instead of the project name. The name "self" is a pre-defined reference to the actual
+&lt;script&gt;-Task instance.<br>From these objects you have access to the Ant Java API, see the
+<a href="../api/index.html">JavaDoc</a> (especially for
+<a href="../api/org/apache/tools/ant/Project.html">Project</a> and
+<a href="../api/org/apache/tools/ant/taskdefs/optional/Script.html">Script</a>) for more information.</p>
+<p>If you are using JavaScript a good resource is <a target="_blank" href="http://www.mozilla.org/rhino/doc.html">
+http://www.mozilla.org/rhino/doc.html</a> as we are using their JavaScript interpreter.</p>
+<p>Scripts can do almost anything a task written in Java could do.</p>
+<p>Rhino provides a special construct - the <i>JavaAdapter</i>. Whith that you can
+create an object which implements several interfaces, extends classes and for which you
+can overwrite methods. Because this is an undocumented feature (yet), here is the link
+to an explanation: <a href="http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&frame=right&th=610d2db45c0756bd&seekm=391EEC3C.5236D929%40yahoo.com#link2">
+Groups@Google: "Rhino, enum.js, JavaAdapter?"</a> by Norris Boyd in the newsgroup
+<i>netscape.public.mozilla.jseng</i>.</p>
+
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">language</td>
+    <td valign="top">The programming language the script is written in.
+      Must be a supported Apache BSF language</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The location of the script as a file, if not inline</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;project name=&quot;squares&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;setup&quot;&gt;
+
+    &lt;script language=&quot;javascript&quot;&gt; &lt;![CDATA[
+
+      for (i=1; i&lt;=10; i++) {
+        echo = squares.createTask(&quot;echo&quot;);
+        main.addTask(echo);
+        echo.setMessage(i*i);
+      }
+
+    ]]&gt; &lt;/script&gt;
+
+  &lt;/target&gt;
+
+  &lt;target name=&quot;main&quot; depends=&quot;setup&quot;/&gt;
+
+&lt;/project&gt;
+</pre></blockquote>
+<p>generates</p>
+<blockquote><pre>
+setup:
+
+main:
+1
+4
+9
+16
+25
+36
+49
+64
+81
+100
+
+BUILD SUCCESSFUL
+</pre></blockquote>
+<p>Another example, using <a href="../using.html#references">references by id</a>
+and two different scripting languages:</p>
+<blockquote><pre>
+&lt;project name=&quot;testscript&quot; default=&quot;main&quot;&gt;
+  &lt;target name=&quot;sub&quot;&gt;
+    &lt;echo id=&quot;theEcho&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;sub1&quot;&gt;
+    &lt;script language=&quot;netrexx&quot;&gt;&lt;![CDATA[
+      theEcho.setMessage(&quot;In sub1&quot;)
+      sub.execute
+    ]]&gt;&lt;/script&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;sub2&quot;&gt;
+    &lt;script language=&quot;javascript&quot;&gt;&lt;![CDATA[
+      theEcho.setMessage(&quot;In sub2&quot;);
+      sub.execute();
+    ]]&gt;&lt;/script&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;main&quot; depends=&quot;sub1,sub2&quot;/&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>generates</p>
+<blockquote><pre>
+sub1:
+In sub1
+
+sub2:
+In sub2
+
+main:
+
+BUILD SUCCESSFUL
+</pre></blockquote>
+
+<p>Now a more complex example using the Java API and the Ant API. The goal is to list the
+filesizes of all files a &lt;fileset/&gt; caught.</p>
+<blockquote><pre>
+
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="<font color=blue>MyProject</font>" basedir="." default="main"&gt;
+
+  &lt;property name="fs.dir" value="src"/&gt;
+  &lt;property name="fs.includes" value="**/*.txt"/&gt;
+  &lt;property name="fs.excludes" value="**/*.tmp"/&gt;
+
+  &lt;target name="main"&gt;
+    &lt;script language="javascript"&gt; &lt;![CDATA[
+
+      // import statements
+      <font color=blue>// importPackage(java.io)</font>;
+      <font color=blue>importClass(java.io.File)</font>;
+
+      // Access to Ant-Properties by their names
+      dir      = <font color=blue>project</font>.getProperty("fs.dir");
+      includes = <font color=blue>MyProject</font>.getProperty("fs.includes");
+      excludes = <font color=blue>self.getProject()</font>  .<font color=blue>getProperty("fs.excludes")</font>;
+
+      // Create a &lt;fileset dir="" includes="" /&gt;
+      fs = project.<font color=blue>createDataType("fileset")</font>;
+      fs.setDir( new File(dir) );
+      <font color=blue>fs.setIncludes(includes)</font>;
+      fs.setExcludes(excludes);
+
+      // Get the files (array) of that fileset
+      ds = fs.getDirectoryScanner(project);
+      srcFiles = ds.getIncludedFiles();
+
+      // iterate over that array
+      for (i=0; i&lt;srcFiles.length; i++) {
+
+        // get the values via Java API
+        var basedir  = fs.getDir(project);
+        var filename = srcFiles[i];
+        var file = <font color=blue>new File(basedir, filename)</font>;
+        var size = file.length();
+
+        // create and use a Task via Ant API
+        echo = MyProject.<font color=blue>createTask("echo")</font>;
+        echo.setMessage(filename + ": " + size + " byte");
+        echo.<font color=blue>perform()</font>;
+      }
+    ]]&gt;&lt;/script&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>We want to use the Java API. Because we donŽt want always typing the package signature
+we do an import. Rhino knows two different methods for import statements: one for packages
+and one for a single class. By default only the <i>java</i> packages are available, so
+<i>java.lang.System</i> can be directly imported with <code>importClass/importPackage</code>.
+For other packages you have to prefix the full classified name with <i>Package</i>.
+For example antŽs <i>FileUtil</i> class can be imported with
+<code>importClass(<b>Package</b>.org.apache.tools.ant.util.FileUtils)</code>
+<br>
+The &lt;script&gt; task populates the Project instance under
+the name <i>project</i>, so we can use that reference. Another way is to use its given name
+or getting its reference from the task itself.<br>
+The Project provides methods for accessing and setting properties, creating DataTypes and
+Tasks and much more.<br>
+After creating a FileSet object we initialize that by calling its set-methods. Then we can
+use that object like a normal Ant task (&lt;copy&gt; for example).<br>
+For getting the size of a file we instantiate a <code>java.io.File</code>. So we are using
+normal Java API here.<br>
+Finally we use the &lt;echo&gt; task for producing the output. The task is not executed by
+its execute() method, because the perform() method (implemented in Task itself) does the
+apropriate logging before and after invoking execute().
+</p>
+
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/scriptdef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/scriptdef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/scriptdef.html	(revision 14989)
@@ -0,0 +1,196 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Scriptdef Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="script">Script</a></h2>
+<h3>Description</h3>
+<p>Scriptdef can be used to define an Ant task using a scripting language. Ant
+scripting languages supported by
+<a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a> may be
+used to define the script. Scriptdef provides a mechanism to encapsulate
+control logic from a build within an Ant task minimizing the need for
+proviuding control style tasks in Ant itself. Complex logic can be made
+available while retaining the simple structure of an Ant build file. Scriptdef
+is also useful for prototyping new custom tasks. Certainly as the complexity
+of the script increases it would be better to migrate the task definition
+into a Java based custom task.
+</p>
+
+<p><b>Note:</b> This task depends on external libraries not included in the
+Ant distribution. See
+<a href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.</p>
+
+<p>The attributes and nested elements supported by the task may be defined
+using &lt;attribute&gt; and &lt;element&gt; nested elements. These are
+available to the script that implements the task as two collection style
+script variables <code>attributes</code> and <code>elements</code>. The
+elements in the <code>attributes</code> collection may be accessed by the
+attribute name. The <code>elements</code> collection is accessed by the nested
+element name. This will return a list of all instances of the nested element.
+The instances in this list may be accessed by an integer index.
+</p>
+
+<p><b>Note:</b> Ant will turn all attribute and element names into all
+lowercase names, so even if you use name="SomeAttribute", you'll have
+to use "someattribute" to retrieve the attribute's value from the
+<code>attributes</code> collection.</p>
+
+<p>The name "project" is a pre-defined reference to the Ant Project. For
+more information on writing scripts, please refer to the
+<a href="script.html">&lt;script&gt;</a> task
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the task to be created using the script</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">language</td>
+    <td valign="top">The programming language the script is written in.
+      Must be a supported Apache BSF language</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The location of the script as a file, if not inline</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested elements</h3>
+<h4>attribute</h4>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the attribute</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>element</h4>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the nested element to be supported by the
+                     task defined by the script</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the classname of the class to be used for the nested element.
+         This specifies the class directly and is an alternative to specifying
+         the Ant type name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">This is the name of an Ant task or type which is to
+        be used when this element is to be created. This is an alternative
+        to specifying the class name directly</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+
+
+<h3>Examples</h3>
+
+<p>
+The following definition creates a task which supprts an attribute called
+attr and two nested elements, one being a fileset and the other a path. When
+executed, the resulting task logs the value of the attribute and the basedir
+of the first fileset.
+</p>
+
+<pre>
+  &lt;scriptdef name=&quot;scripttest&quot; language=&quot;javascript&quot;&gt;
+    &lt;attribute name=&quot;attr1&quot;/&gt;
+    &lt;element name=&quot;fileset&quot; type=&quot;fileset&quot;/&gt;
+    &lt;element name=&quot;path&quot; type=&quot;path&quot;/&gt;
+    &lt;![CDATA[
+
+      project.log(&quot;Hello from script&quot;);
+      project.log(&quot;Attribute attr1 = &quot; + attributes.get(&quot;attr1&quot;));
+      project.log(&quot;First fileset basedir = &quot;
+        + elements.get(&quot;fileset&quot;).get(0).getDir(project));
+
+    ]]&gt;
+  &lt;/scriptdef&gt;
+
+  &lt;scripttest attr1=&quot;test&quot;&gt;
+    &lt;path&gt;
+      &lt;pathelement location=&quot;src&quot;/&gt;
+    &lt;/path&gt;
+    &lt;fileset dir=&quot;src&quot;/&gt;
+    &lt;fileset dir=&quot;main&quot;/&gt;
+  &lt;/scripttest&gt;
+</pre>
+
+<p>
+The following variation on the above script lists the number of fileset elements
+and iterates through them
+</p>
+<pre>
+  &lt;scriptdef name=&quot;scripttest2&quot; language=&quot;javascript&quot;&gt;
+    &lt;element name=&quot;fileset&quot; type=&quot;fileset&quot;/&gt;
+    &lt;![CDATA[
+      filesets = elements.get(&quot;fileset&quot;);
+      project.log(&quot;Number of filesets = &quot; + filesets.size());
+      for (i = 0; i &lt; filesets.size(); ++i) {
+        project.log(&quot;fileset &quot; + i + &quot; basedir = &quot;
+          + filesets.get(i).getDir(project));
+      }
+    ]]&gt;
+  &lt;/scriptdef&gt
+
+  &lt;scripttest2&gt;
+    &lt;fileset dir=&quot;src&quot;/&gt;
+    &lt;fileset dir=&quot;main&quot;/&gt;
+  &lt;/scripttest2&gt;
+</pre>
+
+<p>
+When a script has a syntax error, the scriptdef name will be listed in the
+error. For example in the above script, removing the closing curly bracket
+would result in this error
+</p>
+
+<p><code>build.xml:15: SyntaxError: missing } in compound
+statement (scriptdef &lt;scripttest2&gt;; line 10)</code></p>
+
+<p>
+Script errors are only detected when a script task is actually executed.
+</p>
+
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/serverdeploy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/serverdeploy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/serverdeploy.html	(revision 14989)
@@ -0,0 +1,320 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>ServerDeploy Task</title>
+
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="serverdeploy">ANT ServerDeploy User Manual</a></h2>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+<li>Christopher A. Longo (<a href="mailto:cal@cloud9.net">cal@cloud9.net</a>)</li>
+<li>Cyrille Morvan (<a href="mailto:cmorvan@ingenosya.com">cmorvan@ingenosya.com</a>)</li>
+</ul>
+
+</p>
+<hr>
+<p> At present the tasks support:<br>
+
+<ul>
+<li><a href="http://www.bea.com" target="_top">Weblogic</a> servers</li>
+<li><a href="http://www.objectweb.org/jonas/" target="_top">JOnAS</a>
+2.4 Open Source EJB server</li>
+</ul>
+Over time we expect further optional tasks  to support additional J2EE Servers.
+</p>
+
+<hr>
+
+<table border="1" cellpadding="5">
+<tr><td>Task</td><td colspan="2">Application Servers</td></tr>
+<tr><td rowspan="4"><a href="#serverdeploy_element">serverdeploy</a></td><td colspan="2" align="center"><b>Nested Elements</b></td></tr>
+<tr><td><a href="#serverdeploy_generic">generic</a></td><td>Generic task</td></tr>
+<tr><td><a href="#serverdeploy_jonas">jonas</a></td><td>JOnAS 2.4</td></tr>
+<tr><td><a href="#serverdeploy_weblogic">weblogic</a></td><td>Weblogic</td></tr>
+
+</table>
+
+<a name="serverdeploy_element">
+<h2>ServerDeploy element</h2>
+
+<h3><b>Description:</b></h3>
+
+<p>The <code>serverdeploy</code> task is used to run a "hot" deployment tool for
+vendor-specific J2EE server. The task requires nested elements which define
+the attributes of the vendor-specific deployment tool being executed.
+Vendor-specific deployment tools elements may enforce rules for which
+attributes are required, depending on the tool.
+</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">This is the action to be performed.  For most cases this
+    will be "deploy".  Some tools support additional actions, such as "delete", "list",
+    "undeploy", "update"...</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+    <td valign="top">A fully qualified path/filename of the component to be deployed.
+    This may be an .ear, .jar, .war, or any other type that is supported by the server.
+    </td>
+    <td>Tool dependant</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<p>The serverdeploy task supports a nested <code>classpath</code> element to set the classpath.</p>
+
+<h3>Vendor-specific nested elements</h3>
+
+<h3>Parameters used for all tools:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be passed to the JVM running the tool.
+    The classpath may also be supplied as a nested element.</td>
+    <td>Tool dependant</td>
+  </tr>
+  <tr>
+    <td valign="top">server</td>
+    <td valign="top">The address or URL for the server where the component will be deployed.</td>
+    <td>Tool dependant</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The user with privileges to deploy applications to the server.</td>
+    <td>Tool dependant</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password of the user with privileges to deploy applications to the server.</td>
+    <td>Tool dependant</td>
+  </tr>
+</table>
+
+<p>Also supported are nested vendor-specific elements.</p>
+
+<a name="serverdeploy_generic">
+<h3>Generic element</h3>
+This element is provided for generic Java-based deployment tools.
+The generic task accepts (but does not require) nested <code>arg</code>
+and <code>jvmarg</code> elements.
+A JVM will be spawned with the provided attributes.  It is recommended
+that a vendor-specific element be used over the generic one if at all
+possible.
+<p>The following attributes are supported by the generic element.</p>
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">This is the fully qualified classname of the Java based
+    deployment tool to execute.</td>
+    <td>Yes</td>
+  </tr>
+</table>
+</p>
+
+<h3>Nested Elements</h3>
+<p>The generic element supports nested &lt;arg&gt; and &lt;jvmarg&gt; elements.</p>
+
+<h3>Example</h3>
+
+<p>This example shows the use of generic deploy element to deploy a component
+using a Java based deploy tool:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;deploy&quot; source=&quot;${lib.dir}/ejb_myApp.ear&quot;&gt;
+        &lt;generic classname="com.yamato.j2ee.tools.deploy.DeployTool"
+            classpath=&quot;${classpath}&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;&gt;
+            &lt;arg value="-component=WildStar"/&gt;
+            &lt;arg value="-force"/&gt;
+            &lt;jvmarg value="-ms64m"/&gt;
+            &lt;jvmarg value="-mx128m"/&gt;
+        &lt;/generic&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<a name="serverdeploy_weblogic">
+<h3>WebLogic element</h3>
+<p>
+The WebLogic element contains additional attributes to run the
+<code>weblogic.deploy</code> deployment tool.
+<p>Valid actions for the tool are <code>deploy</code>, <code>undeploy</code>,
+<code>list</code>, <code>update</code>, and <code>delete</code>.
+<p>If the action is <code>deploy</code> or <code>update</code>,
+the <code>application</code> and <code>source</code> attributes must be set.
+If the action is <code>undeploy</code> or <code>delete</code>,
+the <code>application</code> attribute must be set.  If the <code>username</code>
+attribute is omitted, it defaults to "system".  The <code>password</code> attribute is
+required for all actions.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">application</td>
+    <td valign="top">This is the name of the application being deployed</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">component</td>
+    <td valign="top">This is the component string for deployment targets.
+    It is in the form <code>&lt;component&gt;:&lt;target1&gt;,&lt;target2&gt;...</code>
+    Where component is the archive name (minus the .jar, .ear, .war
+    extension).  Targets are the servers where the components will be deployed</td>
+    <td>no</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">If set to true, additional information will be
+    printed during the deployment process.</td>
+    <td>No</td>
+  </tr>
+</table>
+
+
+<h3>Examples</h3>
+
+<p>This example shows the use of serverdeploy to deploy a component to a WebLogic server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;deploy&quot; source=&quot;${lib.dir}/ejb_myApp.ear&quot;&gt;
+        &lt;weblogic application=&quot;myapp&quot;
+            server=&quot;t3://myserver:7001&quot;
+            classpath=&quot;${weblogic.home}/lib/weblogic.jar&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;
+            component=&quot;ejb_foobar:myserver,productionserver&quot;
+            debug=&quot;true&quot;/&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<p>This example shows serverdeploy being used to delete a component from a
+WebLogic server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;delete&quot; source=&quot;${lib.dir}/ejb_myApp.jar&quot;/&gt
+        &lt;weblogic application=&quot;myapp&quot;
+            server=&quot;t3://myserver:7001&quot;
+            classpath=&quot;${weblogic.home}/lib/weblogic.jar&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;/&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<a name="serverdeploy_jonas">
+<h3>JOnAS (Java Open Applicaton Server) element</h3>
+<p>
+The JOnAS element contains additional attributes to run the
+<code>JonasAdmin</code> deployment tool.
+<p>Valid actions for the tool are <code>deploy</code>, <code>undeploy</code>,
+<code>list</code> and <code>update</code>.
+<p>You can't use <code>user</code> and <code>password</code> property with this 
+task.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">jonasroot</td>
+    <td valign="top">The root directory for JOnAS.</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">orb</td>
+    <td valign="top">Choose your ORB : RMI, JEREMIE, DAVID, ... If omitted, it defaults
+     to the one present in classpath. The corresponding JOnAS JAR is
+     automatically added to the classpath. If your orb is DAVID (RMI/IIOP) you must 
+     specify davidhost and davidport properties.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td valign="top">davidhost</td>
+    <td valign="top">The value for the system property : <code>david.CosNaming.default_host</code> .</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td valign="top">davidport</td>
+    <td valign="top">The value for the system property : <code>david.CosNaming.default_port</code> .</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">This is the fully qualified classname of the Java based
+    deployment tool to execute. Default to <code>org.objectweb.jonas.adm.JonasAdmin</code></td>
+    <td>No</td>
+  </tr>
+
+</table>
+
+<h3>Nested Elements</h3>
+<p>The jonas element supports nested &lt;arg&gt; and &lt;jvmarg&gt; elements.</p>
+
+
+<h3>Examples</h3>
+
+<p>This example shows the use of serverdeploy to deploy a component to a JOnAS server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;deploy&quot; source=&quot;${lib.dir}/ejb_myApp.jar&quot;&gt;
+        &lt;jonas server=&quot;MyJOnAS&quot; jonasroot="${jonas.root}"&gt;
+
+           &lt;classpath&gt;
+               &lt;pathelement path=&quot;${jonas.root}/lib/RMI_jonas.jar&quot;/&gt;
+               &lt;pathelement path=&quot;${jonas.root}/config/&quot;/&gt;
+           &lt;/classpath&gt;
+        &lt;/jonas&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<p>This example shows serverdeploy being used to list the components from a
+JOnAS server and a WebLogic server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;list&quot;/&gt
+        &lt;jonas jonasroot=&quot;${jonas.root}&quot; orb=&quot;JEREMIE&quot;/&gt;
+        &lt;weblogic application=&quot;myapp&quot
+            server=&quot;t3://myserver:7001&quot;
+            classpath=&quot;${weblogic.home}/lib/weblogic.jar&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;/&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+
+<hr>
+<p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation. All rights Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/setproxy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/setproxy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/setproxy.html	(revision 14989)
@@ -0,0 +1,222 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Setproxy
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Setproxy
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites, and remote ftp sites.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites, and remote ftp sites. You can nominate an http and ftp proxy, or a socks server, reset the server settings, or do nothing at all. <p> Examples <pre>&lt;setproxy/&gt;</pre> do nothing <pre>&lt;setproxy proxyhost="firewall"/&gt;</pre> set the proxy to firewall:80 <pre>&lt;setproxy proxyhost="firewall" proxyport="81"/&gt;</pre> set the proxy to firewall:81 <pre>&lt;setproxy proxyhost=""/&gt;</pre> stop using the http proxy; don't change the socks settings <pre>&lt;setproxy socksproxyhost="socksy"/&gt;</pre> use socks via socksy:1080 <pre>&lt;setproxy socksproxyhost=""/&gt;</pre> stop using the socks server. <p> You can set a username and password for http with the <tt>proxyHost</tt> and <tt>proxyPassword</tt> attributes. On Java1.4 and above these can also be used against SOCKS5 servers. </p>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">nonproxyhosts</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">A list of hosts to bypass the proxy on. These should be separated with the vertical bar character '|'. Only in Java 1.4 does ftp use this list. e.g. fozbot.corp.sun.com|*.eng.sun.com</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="7">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">proxyhost</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the HTTP/ftp proxy host. Set this to "" for the http proxy option to be disabled</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">proxypassword</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the password for the proxy. Used only if the proxyUser is set.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">proxyport</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the HTTP/ftp proxy port number; default is 80</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">proxyuser</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the proxy user. Probably requires a password to accompany this setting. Default=""</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">socksproxyhost</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">The name of a Socks server. Set to "" to turn socks proxying off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">socksproxyport</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the ProxyPort for socks connections. The default value is 1080</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/sos.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/sos.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/sos.html	(revision 14989)
@@ -0,0 +1,484 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+
+  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+  <title>SOS Tasks</title>
+
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+
+<h2>SourceOffSite Tasks User Manual</h2>
+
+by
+<ul>
+<li><a href="mailto:jesse@cryptocard.com">Jesse Stockall</a></li>
+</ul>
+Version 1.1 2002/01/23
+<br>
+<br>
+
+<hr width="100%" size="2">
+<h2>Contents</h2>
+
+<ul>
+    <li><a href="#intro">Introduction</a></li>
+    <li><a href="#tasks">The Tasks</a></li>
+
+</ul>
+<br>
+
+<h2><a name="intro">Introduction</a> </h2>
+
+<p>These tasks provide an interface to the <a href="http://msdn.microsoft.com/ssafe/default.asp" target="_top">
+Microsoft Visual SourceSafe</a> SCM via <a href="http://www.sourcegear.com">
+SourceGear's</a> <a href="http://sourcegear.com/sos/index.htm">SourceOffSite</a>
+product. SourceOffSite is an add-on to Microsoft's VSS, that allows remote
+development teams and tele-commuters that need fast and secure read/write
+access to a centralized SourceSafe database via any TCP/IP connection. SOS
+provides Linux ,Solaris &amp; Windows clients. The
+<code> org.apache.tools.ant.taskdefs.optional.sos</code>
+package consists  of a simple framework to support SOS functionality as well
+as some Ant tasks  encapsulating frequently used SOS commands.  Although it
+is possible to use  these commands on the desktop,  they were primarily intended
+to be used by  automated build systems. These tasks have been tested with
+SourceOffSite  version 3.5.1 connecting to VisualSourceSafe 6.0. The tasks
+have been tested with Linux, Solaris &amp; Windows2000.</p>
+
+<h2><a name="tasks">The Tasks</a> </h2>
+<table border="1" cellpadding="2" cellspacing="0">
+		<tr>
+			<td><a href="#SOSGet">sosget</a></td>
+			<td>Retrieves a read-only copy of the specified project or file.</td>
+		</tr>
+		<tr>
+			<td><a href="#SOSLabel">soslabel</a></td>
+			<td>Assigns a label to the specified project.</td>
+		</tr>
+		<tr>
+			<td><a href="#SOSCheckIn">soscheckin</a></td>
+			<td>Updates VSS with changes made to a checked out file or project,
+			and unlocks the VSS master copy.</td>
+		</tr>
+		<tr>
+			<td><a href="#SOSCheckOut">soscheckout</a></td>
+			<td>Retrieves a read-write copy of the specified project
+			or file, locking the&nbsp;VSS master copy</td>
+		</tr>
+</table>
+     <br>
+
+<hr width="100%" size="2">
+<h2>Task Descriptions</h2>
+
+<h2><a name="SOSGet"></a>SOSGet<br>
+     </h2>
+<h3>Description</h3>
+             Task to perform GET commands with SOS<br>
+<h3>Parameters</h3>
+     </div>
+     </div>
+
+<table border="1" cellpadding="2" cellspacing="0">
+     <tbody>
+       <tr>
+          <th>Attribute</th>
+          <th>Values</th>
+          <th>Required</th>
+        </tr>
+        <tr>
+          <td>soscmd</td>
+          <td>Directory which contains soscmd(.exe) <br>
+          soscmd(.exe) must be in the path if this is not specified</td>
+          <td>No</td>
+        </tr>
+        <tr>
+           <td>vssserverpath</td>
+           <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>sosserverpath</td>
+           <td>address &amp; port of the SOS server  - eg. 192.168.0.1:8888</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>projectpath</td>
+           <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>file</td>
+           <td>Filename to act upon<br>
+           If no file is specified then act upon the project</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>username</td>
+           <td>SourceSafe username</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>password</td>
+           <td>SourceSafe password</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>localpath</td>
+           <td>Override the working directory and get to the specified path</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>soshome</td>
+           <td>The path to the SourceOffSite home directory</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>nocompress</td>
+           <td>true or false - disable compression</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>recursive</td>
+           <td>true or false - Only works with the GetProject command</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>version</td>
+           <td>a version number to get - Only works with the GetFile command</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>label</td>
+           <td>a label version to get - Only works with the GetProject command</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>nocache</td>
+           <td>true or false - Only needed if SOSHOME is set as an environment variable</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>verbose</td>
+           <td>true or false - Status messages are displayed</td>
+           <td>No</td>
+        </tr>
+  </tbody>
+</table>
+
+<h3>Example</h3>
+
+<pre>
+&lt;sosget verbose=&quot;true&quot;
+        recursive=&quot;true&quot;
+        username=&quot;build&quot;
+        password=&quot;build&quot;
+        localpath=&quot;tmp&quot;
+        projectpath=&quot;$/SourceRoot/project1&quot;
+        sosserverpath=&quot;192.168.10.6:8888&quot;
+        vssserverpath=&quot;d:\vss\srcsafe.ini&quot;/&gt;
+</pre>
+<small>Connects to a SourceOffsite server on 192.168.10.6:8888 with
+build,build as the username &amp; password. The SourceSafe  database resides
+on the same box as the SOS server  &amp; the VSS database  is at
+&quot;d:\vss\srcsafe.ini&quot; Does a recursive GetProject on
+$/SourceRoot/project1, using tmp as the working
+directory. </small><br>
+<br>
+
+<hr width="100%" size="2">
+<h2><a name="SOSLabel"></a>SOSLabel</h2>
+
+<h3>Description</h3>
+             Task to perform Label commands with SOS<br>
+<h3>Parameters</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+    <tbody><tr>
+      <th>Attribute</th>
+      <th>Values</th>
+      <th>Required</th>
+    </tr>
+    <tr>
+      <td>soscmd</td>
+      <td>Directory which contains soscmd(.exe) <br>
+      soscmd(.exe) must be in the path if this is not specified</td>
+      <td>No</td>
+    </tr>
+    <tr>
+       <td>vssserverpath</td>
+       <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>sosserverpath</td>
+       <td>address and port of the SOS server  - eg. 192.168.0.1:8888</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>projectpath</td>
+       <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>username</td>
+       <td>SourceSafe username</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>password</td>
+       <td>SourceSafe password</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>label</td>
+       <td>The label to apply to a project</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>comment</td>
+       <td>A comment to be applied to all files being labeled</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>verbose</td>
+       <td>true or false - Status messages are displayed</td>
+       <td>No</td>
+    </tr>
+  </tbody>
+</table>
+
+<h3>Example</h3>
+<pre>
+&lt;soslabel username=&quot;build&quot;
+          password=&quot;build&quot;
+          label=&quot;test label&quot;
+          projectpath=&quot;$/SourceRoot/project1&quot;
+          sosserverpath=&quot;192.168.10.6:8888&quot;
+          vssserverpath=&quot;d:\vss\srcsafe.ini&quot;/&gt;
+</pre>
+
+<small>Connects to a SourceOffsite server on 192.168.10.6:8888 with
+build,build as the username &amp; password. The SourceSafe database resides
+on the same box as  the  SOS server  &amp; the VSS database is at
+&quot;d:\vss\srcsafe.ini&quot;. Labels the $/SourceRoot/project1
+project with &quot;test label&quot;.</small><br>
+<br>
+
+<hr width="100%" size="2"><br>
+
+<h2><a name="SOSCheckIn"></a>SOSCheckIn</h2>
+
+<h3>Description</h3>
+        Task to perform CheckIn commands with SOS<br>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+       <tbody>
+    <tr>
+      <th>Attribute</th>
+      <th>Values</th>
+      <th>Required</th>
+    </tr>
+    <tr>
+      <td>soscmd</td>
+      <td>Directory which contains soscmd(.exe) <br>
+      soscmd(.exe) must be in the path if this is not specified</td>
+      <td>No</td>
+    </tr>
+    <tr>
+       <td>vssserverpath</td>
+       <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>sosserverpath</td>
+       <td>address and port of the SOS server  - eg. 192.168.0.1:8888</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>projectpath</td>
+       <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>file</td>
+       <td>Filename to act upon<br> If no file is specified then act upon the project</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>userna border="1"me</td>
+       <td>SourceSafe username</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>password</td>
+       <td>SourceSafe password</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>localpath</td>
+       <td>Override the working directory and get to the specified path</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>soshome</td>
+       <td>The path to the SourceOffSite home directory</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocompress</td>
+       <td>true or false - disable compression</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>recursive</td>
+       <td>true or false - Only works with the CheckOutProject command</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocache</td>
+       <td>true or false - Only needed if SOSHOME is set as an environment variable</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>verbose</td>
+       <td>true or false - Status messages are displayed</td>
+       <td>No</td>
+    </tr>
+    <tr><td>comment</td>
+       <td>A comment to be applied to all files being checked in</td>
+       <td>No</td>
+    </tr>
+ </tbody>
+</table>
+
+<h3>Example</h3>
+<pre>
+&lt;soscheckin username=&quot;build&quot;
+            password=&quot;build&quot;
+            file=&quot;foobar.txt&quot;
+            verbose=&quot;true&quot;
+            comment=&quot;comment abc&quot;
+            projectpath=&quot;$/SourceRoot/project1&quot;
+            sosserverpath=&quot;server1:8888&quot;
+            vssserverpath=&quot;\\server2\vss\srcsafe.ini&quot;/&gt;
+</pre>
+
+<small>Connects to a SourceOffsite server on server1:8888 with build,build as
+the username &amp; password. The SourceSafe database resides on a different
+box (server2) &amp; the VSS database is on a share called
+&quot;vss&quot;. Checks-in only the &quot;foobar.txt&quot; file adding
+a comment of &quot;comment abc&quot;. Extra status messages will be
+displayed on screen.</small><br>
+<br>
+
+<hr width="100%" size="2">
+<h2><a name="SOSCheckOut"></a>SOSCheckOut</h2>
+
+<h3>Description</h3>
+       Task to perform CheckOut commands with SOS<br>
+
+<h3>Parameters</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+       <tbody>
+    <tr>
+      <th>Attribute</th>
+      <th>Values</th>
+      <th>Required</th>
+    </tr>
+    <tr>
+      <td>soscmd</td>
+      <td>Directory which contains soscmd(.exe) <br>
+      soscmd(.exe) must be in the path if this is not specified</td>
+      <td>No</td>
+    </tr>
+    <tr>
+       <td>vssserverpath</td>
+       <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>sosserverpath</td>
+       <td>address and port of the SOS server  - eg. 192.168.0.1:8888</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>projectpath</td>
+       <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>file</td>
+       <td>Filename to act upon<br> If no file is specified then act upon the project</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>username</td>
+       <td>SourceSafe username</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>password</td>
+       <td>SourceSafe password</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>localpath</td>
+       <td>Override the working directory and get to the specified path</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>soshome</td>
+       <td>The path to the SourceOffSite home directory</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocompress</td>
+       <td>true or false - disable compression</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>recursive</td>
+       <td>true or false - Only works with the CheckOutProject command</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocache</td>
+       <td>true or false - Only needed if SOSHOME is set as an environment variable</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>verbose</td>
+       <td>true or false - Status messages are displayed</td>
+       <td>No</td>
+    </tr>
+  </tbody>
+</table>
+     <br>
+
+<h3>Example</h3>
+<pre>
+&lt;soscheckout soscmd=&quot;/usr/local/bin&quot;
+             verbose=&quot;true&quot;
+             username=&quot;build&quot;
+             password=&quot;build&quot;
+             projectpath=&quot;$/SourceRoot/project1&quot;
+             sosserverpath=&quot;192.168.10.6:8888&quot;
+             vssserverpath=&quot;\\server2\vss\srcsafe.ini&quot;/&gt;
+</pre>
+
+<small>Connects to a SourceOffsite server on server1:8888 with build,build as
+the username &amp; password. The SourceSafe database resides on a different
+box (server2) &amp; the VSS database is on a share called
+&quot;vss&quot;. Checks-out &quot;project1&quot;, Only the
+&quot;project1&quot; directory will be locked as the recursive option
+was not set. Extra status messages will be displayed on screen. The
+soscmd(.exe) file to be used resides in /usr/local/bin.</small><br>
+<br>
+<hr>
+<p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/sound.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/sound.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/sound.html	(revision 14989)
@@ -0,0 +1,105 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Sound Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="sound">Sound</a></h2>
+<h3>Description</h3>
+<p>Plays a sound-file at the end of the build, according to whether
+the build failed or succeeded. You can specify either a specific
+sound-file to play, or, if a directory is specified, the
+<code>&lt;sound&gt;</code> task will randomly select a file to play.
+Note: At this point, the random selection is based on all the files
+in the directory, not just those ending in appropriate suffixes
+for sound-files, so be sure you only have sound-files in the 
+directory you specify.</p>
+<p>
+Unless you are running on Java 1.3 or later, you need the Java Media Framework
+on the classpath (javax.sound). 
+</p>
+
+
+<h3>Nested Elements</h3>
+<h4>success</h4>
+<p>Specifies the sound to be played if the build succeeded.</p>
+<h4>fail</h4>
+<p>Specifies the sound to be played if the build failed.</p>
+
+<h3>Nested Element Parameters</h3>
+<p>
+The following attributes may be used on the <code>&lt;success&gt;</code> 
+and <code>&lt;fail&gt;</code> elements:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+    <td valign="top">the path to a sound-file directory, or the name of a
+specific sound-file, to be played.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">loops</td>
+    <td valign="top">the number of extra times to play the sound-file;
+      default is <code>0</code>.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duration</td>
+    <td valign="top">the amount of time (in milliseconds) to play
+      the sound-file.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;target name=&quot;fun&quot; if=&quot;fun&quot; unless=&quot;fun.done&quot;&gt;
+  &lt;sound&gt;
+    &lt;success source=&quot;${user.home}/sounds/bell.wav&quot;/&gt;
+    &lt;fail source=&quot;${user.home}/sounds/ohno.wav&quot; loops=&quot;2&quot;/&gt;
+  &lt;/sound&gt;
+  &lt;property name=&quot;fun.done&quot; value=&quot;true&quot;/&gt;
+&lt;/target&gt;
+</pre>
+</blockquote>
+plays the <code>bell.wav</code> sound-file if the build succeeded, or
+the <code>ohno.wav</code> sound-file if the build failed, three times,
+if the <code>fun</code> property is set to <code>true</code>.
+If the target
+is a dependency of an &quot;initialization&quot; target that other
+targets depend on, the
+<code>fun.done</code> property prevents the target from being executed
+more than once.
+<blockquote>
+<pre>
+&lt;target name=&quot;fun&quot; if=&quot;fun&quot; unless=&quot;fun.done&quot;&gt;
+  &lt;sound&gt;
+    &lt;success source=&quot;//intranet/sounds/success&quot;/&gt;
+    &lt;fail source=&quot;//intranet/sounds/failure&quot;/&gt;
+  &lt;/sound&gt;
+  &lt;property name=&quot;fun.done&quot; value=&quot;true&quot;/&gt;
+&lt;/target&gt;
+</pre>
+</blockquote>
+randomly selects a sound-file to play when the build succeeds or fails.
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/splash.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/splash.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/splash.html	(revision 14989)
@@ -0,0 +1,105 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="Splash">Splash</a></h2>
+<p>by Les Hughes (leslie.hughes@rubus.com)
+<h3>Description</h3>
+<p>This task creates a splash screen. The splash screen is displayed
+for the duration of the build and includes a handy progress bar as
+well. Use in conjunction with the sound task to provide interest
+whilst waiting for your builds to complete...</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Default</b></td>
+  </tr>
+  <tr>
+    <td valign="top">imageurl</td>
+    <td valign="top">A URL pointing to an image to display.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">antlogo.gif from the classpath</td>
+  </tr>
+ 
+  <tr>
+    <td valign="top">showduration</td>
+    <td valign="top">Initial period to pause the build to show the
+    splash in milliseconds.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">5000 ms</td>
+  </tr>  
+</table>
+<h3>Deprecated properties</h3>
+  
+The following properties can be used to configure the proxy settings to retrieve
+an image from behind a firewall. However, the settings apply not just to this
+task, but to all following tasks. Therefore they are now mostly deprecated in 
+preference to the &lt;setproxy&gt; task, that makes it clear to readers of
+the build exactly what is going on. We say mostly as this task's support
+includes proxy authentication, so you may still need to use its
+proxy attributes.
+  
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top">useproxy</td>
+    <td valign="top">Use a proxy to access imgurl. Note: Only tested
+    on JDK 1.2.2 and above</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+  <tr>
+    <td valign="top">proxy</td>
+    <td valign="top">IP or hostname of the proxy server</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Proxy portnumber</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+  <tr>
+    <td valign="top">user</td>
+    <td valign="top">User to authenticate to the proxy as.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">Proxy password</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;splash/&gt;
+</pre></blockquote>
+<p>Splash <code>images/ant_logo_large.gif</code> from the classpath.</p>
+<blockquote><pre>
+&lt;splash imageurl=&quot;http://jakarta.apache.org/images/jakarta-logo.gif&quot;
+           useproxy=&quot;true&quot;
+           showduration=&quot;5000&quot;/&gt;
+
+</pre></blockquote>
+<p>Splashes the jakarta logo, for
+an initial period of 5 seconds.</p>
+<hr>
+<p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/sshexec.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/sshexec.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/sshexec.html	(revision 14989)
@@ -0,0 +1,164 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>SSHEXEC Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="sshexec">SSHEXEC</a></h2>
+<h3>Description</h3>
+
+<p><em>since Ant 1.6</em></p>
+
+<p>Runs a command on a remote machine running SSH daemon.
+</p>
+
+<p><b>Note:</b> This task depends on external libraries not included
+in the Ant distribution.  See <a
+href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.  This task has been tested with jsch-0.1.7 to
+jsch-0.1.9 and won't work with versions of jsch earlier than
+0.1.7.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">host</td>
+    <td valign="top">The hostname or IP adress of the remote host to which you wish to connect.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username on the remote host to which you are connecting.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">The command to run on the remote host.</td>
+    <td valian="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">The port to connect to on the remote host.</td>
+    <td valian="top" align="center">No, defaults to 22.</td>
+  </tr>
+  <tr>
+    <td valign="top">trust</td>
+
+    <td valign="top">This trusts all unknown hosts if set to yes/true.<br>
+      <strong>Note</strong> If you set this to false (the default), the
+      host you connect to must be listed in your knownhosts file, this
+      also implies that the file exists.</td>
+    <td valian="top" align="center">No, defaults to No.</td>
+  </tr>
+  <tr>
+    <td valign="top">knownhosts</td>
+    <td valign="top">This sets the known hosts file to use to validate
+    the identity of the remote host.  This must be a SSH2 format file.
+    SSH1 format is not supported.</td>
+    <td valian="top" align="center">No, defaults to
+    ${user.home}/.ssh/known_hosts.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Whether to halt the build if the command does not complete successfully.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+     <td valign="top">The password.</td>
+     <td valign="top" align="center">Not if you are using key based
+     authentication or the password has been given in the file or
+     todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">keyfile</td>
+     <td valign="top">Location of the file holding the private key.</td>
+     <td valign="top" align="center">Yes, if you are using key based
+     authentication.</td>
+  </tr>
+  <tr>
+    <td valign="top">passphrase</td>
+     <td valign="top">Passphrase for your private key.</td>
+     <td valign="top" align="center">No, defaults to an empty string.</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output file should be appended to or overwritten. Defaults to false, meaning overwrite any existing file.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the 
+      command should be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+      specified time (given in milliseconds). Defaults to 0 which means &quot;wait forever&quot;.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p><b>Run a command on a remote machine using password authentication</b></p>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;dude&quot;
+	password=&quot;yo&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+
+<p><b>Run a command on a remote machine using key authentication</b></p>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;dude&quot;
+	keyfile=&quot;${user.home}/.ssh/id_dsa&quot;
+	passphrase=&quot;yo its a secret&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+
+<p><b>Run a command on a remote machine using key authentication with no passphrase</b></p>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;dude&quot;
+	keyfile=&quot;${user.home}/.ssh/id_dsa&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+
+<p><strong>Security Note:</strong>  Hard coding passwords and/or usernames
+in sshexec task can be a serious security hole.  Consider using variable
+substituion and include the password on the command line.  For example:<br>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;${username}&quot;
+	password=&quot;${password}&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+Invoke ant with the following command line:
+<pre>
+    ant -Dusername=me -Dpassword=mypassword target1 target2
+</pre>
+</p>
+
+<hr><p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/starteam.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/starteam.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/starteam.html	(revision 14989)
@@ -0,0 +1,977 @@
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>StarTeam Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+<h1>StarTeam Support</h1>
+<ul>
+  <li><a href="#stcheckout">STCheckout</a></li> 
+  <li><a href="#stcheckin">STCheckin</a></li>
+  <li><a href="#stlabel">STLabel</a></li>
+  <li><a href="#stlist">STList</a></li>
+  <li><a href="#starteam"><i>StarTeam (deprecated) </i></a></li>
+</ul>
+
+<p>
+The StarTeam revision control system was recently acquired by Borland.
+These tasks make use of functions from the StarTeam API to work with that system.  
+As a result they are only available to licensed users of StarTeam.  You must have
+<CODE>starteam-sdk.jar</CODE> in your classpath to run these tasks.
+For more information about the StarTeam API and how to license it, see
+the <a href="http://www.borland.com/starteam/">Borland</a> web site.</p>
+  <p>
+    <em>All the StarTeam task names are in lower case.</em>
+  </p>
+<h3>Important Note on Installation and Licensing:</h3>
+<p>
+<b>On Windows machines, the mere presence of <CODE>starteam-sdk.jar</CODE> on the classpath 
+is not sufficient for getting these tasks to work properly.</b>  These tasks also require a 
+fully-installed and fully-licensed version of the StarGate Runtime.  This is part 
+of a StarTeam client installation or may be installed separately.  The full client
+install is not required.  In particular, the Windows path must include the directory where 
+the StarGate Runtime <CODE>.dll</CODE> files are installed.
+</p><p>
+Earlier versions of Ant (prior to 1.5.2) did not have this restriction because they
+were not as dependent on the StarTeam runtime - which the newer versions use to access
+StarTeam file status information.  The older versions lacked this important capability.
+</p>
+<hr></hr>
+
+<a name="common-params">
+<h2>Common Parameters for All Starteam Tasks</h2></a>
+<p>
+The following parameters, having to do with making the connection to a StarTeam project, are common to all the following tasks except the deprecated <i>StarTeam</i> task.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+
+  <tr>
+    <td valign="top">URL</td>
+    <td valign="top">A string of the form <code>servername:portnum/project/view</code> 
+which enables user to set all of these elements in one string. </td>
+    <td align="center" valign="center"> Either this ...</td>
+  </tr>  
+  <tr>
+    <td valign="top">servername</td>
+    <td valign="top">The name of the StarTeam server.</td>
+    <td align="center" valign="center" rowspan = "4">... or <b>all four</b> of these must be defined.</td>  
+   </tr>
+  <tr>
+    <td valign="top">serverport</td>
+    <td valign="top">The port number of the StarTeam server.</td>
+  </tr>
+  <tr>
+    <td valign="top">projectname</td>
+    <td valign="top">The name of the StarTeam project on which to operate.</td>
+  </tr>
+  <tr>
+    <td valign="top">viewname</td>
+    <td valign="top">The name of the view in the StarTeam project on which to operate.</td>
+  </tr>
+
+
+</table>
+
+<hr></hr>
+
+<a name="stcheckout">
+<h2>STCheckout</h2></a>
+
+<h3>Description</h3>
+
+Checks out files from a StarTeam project.
+
+<p>
+The <i>includes</i> and <i>excludes</i> attributes function differently from
+other tasks in Ant. Inclusion/exclusion by folder is NOT supported.
+</p>
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+
+  <tr>
+    <td valign="top">rootstarteamfolder</td>
+    <td valign="top">The root of the subtree in the StarTeam repository from which to 
+    check out files.  Defaults to the root folder of the view ('/'). 
+      <b><i>If supplied, this should always be an "absolute" path, that is, it should begin with a '/'.  
+      Relative paths have little meaning in this context and confuse StarTeam.</i></b>
+      </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">rootlocalfolder</td>
+    <td valign="top">The local folder which will be the root of the tree to which files are checked out.  If this is not supplied, then the StarTeam "default folder" associated with <i>rootstarteamfolder</i> is used.
+   </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  
+  <tr>
+    <td valign="top">createworkingdirs</td>
+    <td valign="top">creates local folders even when the corresponding StarTeam folder is empty.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">deleteuncontrolled</td>
+    <td valign="top">if true, any files NOT in StarTeam will be deleted.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only check out files that match at least one of the patterns in this list.  Patterns must be separated by <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not check out files that match at least one of the patterns in this list.  Patterns must be separated by  <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">label</td>
+    <td valign="top">Check out files as of this label.  The label must exist in starteam or an exception will be thrown.</td>
+    <td align="center" valign="center" rowspan="2">Either or neither, but not both, may be specified.  Neither <code>locked</code> or <code>unlocked</code> may be true if either <code>label</code> or <code>asofdate</code> is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">asofdate</td>
+    <td valign="top">Check out files as of this date.  The date must
+    be formatted in ISO8601 datetime
+    (<code>yyyy-MM-dd'T'HH:mm:ss</code>), ISO8601
+    date(<code>yyyy-MM-dd</code>) or a user-defined SimpleDateFormat
+    defined in the <code>asofDateFormat</code> attribute.  If the date
+    is not parsable by the default or selected format, an exception
+    will be thrown.  <em>Since Ant 1.6.</em></td>
+  </tr>
+  <tr>
+    <td valign="top">asofdateformat</td>
+    <td valign="top">java.util.SimpleDateFormat compatible string used
+    to parse the <code>asofdate</code> attribute.  <em>Since Ant
+    1.6.</em></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">recursive</td>
+    <td valign="top">Indicates if subfolders should be searched for files to check out.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">forced</td>
+    <td valign="top">If true, checkouts will occur regardless of the status 
+that StarTeam is maintaining for the file.   If false, status will be used to determine which files to check out. Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr> 
+ <tr>
+    <td valign="top">locked</td>
+    <td valign="top">If true, file will be locked against changes by other 
+users.  If false (default) has no effect. 
+    <td align="center" valign="center" rowspan="2">Either or neither, but not both, may be true. Neither may be true if a <code>label</code> or an <code>asofdate</code> is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">unlocked</td>
+    <td valign="top">If true, file will be unlocked so that other users may
+change it.  This is a way to reverse changes that have not yet been checked in.
+If false (default) has no effect.</td> 
+  </tr>
+  <tr>
+    <td valign="top">userepositorytimestamp</td>
+    <td valign="top">true means checked out files will get the repository timestamp.
+false(default) means the checked out files will be timestamped at the time
+of checkout.</td>    <td align="center" valign="top">no</td>
+
+  </tr>
+  <tr>
+    <td valign="top">preloadfileinformation</td>
+    <td valign="top">The StarTeam server has the ability to preload file metadata for an
+    entire tree prior to beginning action on that tree.  Doing so can in some instances 
+    lead to substantially faster actions, particularly over large trees.  Setting this 
+    to "yes" (default) engages this functionality, setting it to "no" turns it off.</td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+    
+  <tr>
+    <td valign="top">convertEOL</td>
+    <td valign="top">If true, (default) all ascii files will have their end-of-line 
+    characters adjusted to that of the local machine on checkout.  This is normally
+    what you'd want but if for some reason you don't want that to happen, set it to false
+    and the files will be checked out with whatever end-of-line characters are used on
+    the server. </td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;stcheckout servername="STARTEAM" 
+              serverport="49201"
+              projectname="AProject" 
+              viewname="AView"
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              forced="true"
+  /&gt;
+</pre>
+
+The minimum necessary to check out files out from a StarTeam server.  This will
+check out all files in the <i>AView</i> view of the <i>AProject</i> project to
+<code>C:\dev\buildtest\co</code>.  Empty folders in StarTeam will have local folders 
+created for them and any non-StarTeam files found in the tree will be deleted.
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView" 
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              forced="true"
+  /&gt;
+</pre>
+And this is a simpler way of accomplishing the same thing as the previous example, using the URL attribute.
+<br></br>
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView" 
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              rootstarteamfolder="\Dev"
+              excludes="*.bak *.old"
+              label="v2.6.001"
+              forced="true"
+  /&gt;
+</pre>
+
+This will check out all files from the <i>Dev</i> folder and below that do not
+end in <i>.bak</i> or <i>.old</i> with the label <i>v2.6.001</i>.  
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              includes="*.htm,*.html"
+              excludes="index.*"
+              forced="true"
+  /&gt;
+</pre>
+
+     
+This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
+<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
+not be checked out by this command.
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              includes="*.htm,*.html"
+              excludes="index.*"
+              forced="true"
+              recursive="false"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check out files in 
+C:\dev\buildtest\co, because of the turning off of the recursive attribute.
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootstarteamfolder="src/java"
+              rootlocalfolder="C:\dev\buildtest\co"
+              forced="true"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootstarteamfolder="src/java"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+             rootlocalfolder="C:\dev\buildtest\co\src\java"
+             forced="true"
+  /&gt;
+</pre>
+
+In the preceding three examples, assuming that the AProject project has a default folder of
+"C:\work\AProject", the first example will check out the tree of files rooted in the src/java folder of the AView view of the AProject in the StarTeam repository to a local tree rooted at C:\dev\buildtest\co, 
+the second to a tree rooted at C:\work\AProject\src\java (since no <i>rootlocalfolder</i> is specified) and the third to a tree rooted at C:\dev\buildtest\co\src\java.  Note also, that since the second example does not set "forced" true, only those files which the repository considers out-of-date will be checked out.
+<hr></hr>
+
+<a name="stcheckin">
+<h2>STCheckin</h2></a>
+
+<h3>Description</h3>
+
+Checks files into a StarTeam project.  Optionally adds files and in the local tree that are not managed by the repository to its control.
+
+<p>
+The <i>includes</i> and <i>excludes</i> attributes function differently from
+other tasks in Ant. Inclusion/exclusion by folder is NOT supported.
+</p>
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">rootstarteamfolder</td>
+    <td valign="top">The root of the subtree in the StarTeam repository into which to 
+    files will be checked.  Defaults to the root folder of the view ('/').
+       <b><i>If supplied, this should always be an "absolute" path, that is, it should begin with a '/'.  
+      Relative paths have little meaning in this context and confuse StarTeam.</i></b></td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">rootlocalfolder</td>
+    <td valign="top">The local folder which will be the root of the tree to which files are checked out.  If this is not supplied, then the StarTeam "default folder" associated with <i>rootstarteamfolder</i> is used. </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  
+
+  <tr>
+    <td valign="top">comment</td>
+    <td valign="top">Checkin comment to be saved with the file.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+
+  <tr>
+    <td valign="top">adduncontrolled</td>
+    <td valign="top">if true, any files or folders NOT in StarTeam will be 
+added to the repository.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only check in files that match at least one of the patterns in this list.  Patterns must be separated by <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not check in files that match at least one of the patterns in this list.  Patterns must be separated by  <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">recursive</td>
+    <td valign="top">Indicates if subfolders should be searched for files to check in.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">forced</td>
+    <td valign="top">If true, checkins will occur regardless of the status 
+that StarTeam is maintaining for the file.  If false, checkins will use this status to decide which files to update.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <td valign="top">unlocked</td>
+    <td valign="top">If true, file will be unlocked so that other users may
+change it.  If false (default) lock status will not change.
+    <td align="center" valign="top">no</td> 
+  </tr>
+  <tr>
+    <td valign="top">preloadfileinformation</td>
+    <td valign="top">The StarTeam server has the ability to preload file metadata for an
+    entire tree prior to beginning action on that tree.  Doing so can in some instances 
+    lead to substantially faster actions, particularly over large trees.  Setting this 
+    to "yes" (default) engages this functionality, setting it to "no" turns it off.</td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+  </table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;stcheckin servername="STARTEAM" 
+             serverport="49201"
+             projectname="AProject" 
+             viewname="AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             forced="true"
+  /&gt;
+</pre>
+
+The minimum necessary to check files into a StarTeam server.  This will
+check all files on the local tree rooted at <code>C:\dev\buildtest\co</code>
+into the <i>AView</i> view of the <i>AProject</i> project in the repository.
+For files and folders in the local tree but not in starteam, nothing will be done.  Since the <i>forced</i> attribute is set, the files which are checked in will be checked in without regard to what the StarTeam repository considers their status to be.  This is a reasonable choice of attributes since StarTeam's status for a file is calculated based on the local file in the StarTeam default directory, not on the directory we are actually working with.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView" 
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             forced="true"
+  /&gt;
+</pre>
+And this is a simpler way of giving the same commands as the command above using the URL shortcut.
+<br></br>
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView" 
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="\Dev"
+             excludes="*.bak *.old"
+             forced="true"
+  /&gt;
+</pre>
+
+This will check all files in to the <i>Dev</i> folder and below that do not
+end in <i>.bak</i> or <i>.old</i> from the tree rooted at"C:\dev\buildtest\co" .  
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             includes="*.htm,*.html"
+             excludes="index.*"
+             forced="true"
+  /&gt;
+</pre>
+
+     
+This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
+<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
+not be checked in by this command.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="src/java"
+             includes="*.htm,*.html"
+             excludes="index.*"
+             forced="true"
+             recursive="false"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check in files from 
+C:\dev\buildtest\co, because of the turning off of the recursive attribute.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="src/java"
+             includes="version.txt"
+             forced="true"
+             recursive="false"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check only in one file, C:\dev\buildtest\co\version.txt to the StarTeam folder src/java.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="src/java"
+             includes="version.java"
+             forced="true"
+             recursive="false"
+             addUncontrolled="true"
+             comment="Fix Bug #667"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check only in one file, C:\dev\buildtest\co\version.java to the StarTeam folder src/java.  Because the <i>addUncontrolled</i> attribute has been set, if StarTeam does not already control this file in this location, it will be added to the repository.  Also, it will write a comment to the repository for this version of the file.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+             rootlocalfolder="C:\dev\buildtest\co"
+             forced="true"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+             rootlocalfolder="C:\dev\buildtest\co\src\java"
+             forced="true"
+  /&gt;
+</pre>
+
+In the preceding three examples, assuming that the AProject project has a default folder of C:\work\buildtest\co\AProject,  
+the first example will check in files from a tree rooted at C:\dev\buildtest\co, 
+the second from a tree rooted at C:\work\buildtest\co\AProject\src\java, 
+and the third from a tree rooted at C:\dev\buildtest\co\src\java all to a tree rooted at src/java
+
+<hr></hr>
+
+<a name="stlabel">
+<h2>STLabel</h2></a>
+
+<h3>Description</h3>
+
+Creates a view label in StarTeam at the specified view.  The label will be classified by StarTeam as a "build label".  This task will fail if there already exexists in <i>viewname</i> a label with the same name as the <i>label</i> parameter. 
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+
+  <tr>
+    <td valign="top">label</td>
+    <td valign="top">The name to be given to the label</td>
+    <td align="center" valign="top">yes</td>
+  </tr> 
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">A description of the label to be stored in the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">revisionlabel</td>
+    <td valign="top">Yes means that the label attribute is to be saved as a &quot;revision label&quot;.  No (default) means that it will be saved as a &quot;view label&quot;</td>
+    <td align="center" valign="top">no</td>
+  </tr> 
+  <tr>
+    <td valign="top">buildlabel</td>
+    <td valign="top">Yes means that the label attribute is to be saved as a &quot;build label&quot;.  
+      This means that Change Requests which have an &quot;AddressedIn&quot; field value of &quot;next build&quot;
+       will have this label assigned to that field when the label is created.  
+       No (default) means that no CRs will have this label assigned to them.  This will have no effect if <b>revisionlabel</b> is also true.  </td>
+    <td align="center" valign="top">no</td>
+  </tr> 
+
+ <tr>
+    <td valign="top">lastbuild</td>
+    <td valign="top">The timestamp of the build that will be stored with the label.  Must be formatted <code>yyyyMMddHHmmss</code></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+This example shows the use of this tag.  It will create a View label that is a build label named <i>Version 6.2</i> with
+<i>&quot;Thorough description&quot;</i> as its description.
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property="nowstamp" pattern="yyyyMMddHHmmss" locale="en"/&gt;
+  &lt;/tstamp&gt;  
+  &lt;stlabel URL="STARTEAM:49201/Aproject/AView"
+           username="auser"
+           password="secret"
+           label="Version 6.2"
+           lastbuild="${nowstamp}"
+           description="Thorough description"
+  /&gt;
+</pre>
+This example creates a non-build View label named <i>Version 6.3</i> with
+<i>&quot;Thorough description&quot;</i> as its description.
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property="nowstamp" pattern="yyyyMMddHHmmss" locale="en"/&gt;
+  &lt;/tstamp&gt;  
+  &lt;stlabel URL="STARTEAM:49201/Aproject/AView"
+           username="auser"
+           password="secret"
+           label="Version 6.3"
+           lastbuild="${nowstamp}"
+           description="Thorough description"
+           buildlabel="false"
+  /&gt;
+</pre>
+This example will create a Revision label that is a build label named <i>Version 6.2.00.001</i> with
+<i>&quot;revision label&quot;</i> as its description.
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property="nowstamp" pattern="yyyyMMddHHmmss" locale="en"/&gt;
+  &lt;/tstamp&gt;  
+  &lt;stlabel URL="STARTEAM:49201/Aproject/AView"
+           username="auser"
+           password="secret"
+           label="Version 6.2.00.001"
+           description="revision label"
+           revisionlabel="true"
+  /&gt;
+</pre>
+
+<hr></hr>
+<a name="stlist">
+<h2>STList</h2></a>
+
+<h3>Description</h3>
+
+Produces a listing of the contents of the StarTeam repository at the specified view and StarTeamFolder.  The listing will contain the name of the user, if any, who has the file locked, the size of the file, its lastModifiedDate in the repository, the name of the file, and the status of the local file in the default local directory relative to the repository. 
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+
+  <tr>
+    <td valign="top">rootstarteamfolder</td>
+    <td valign="top">The root of the subtree in the StarTeam repository to be listed.  Defaults to the root folder of the view ('/'). <b><i>If supplied, this should always be an "absolute" path, that is, it should begin with a '/'.  
+      Relative paths have little meaning in this context and confuse StarTeam.</i></b></td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">rootlocalfolder</td>
+    <td valign="top">The local folder which will be the root of the tree to which files are compared.  If this is not supplied, then the StarTeam "default folder" associated with <i>rootstarteamfolder</i> is used and a status field will appear in the listing.  Otherwise, the status field will not appear.
+   </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+    <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only list files that match at least one of the patterns in this list.  Patterns must be separated by <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not list files that match at least one of the patterns in this list.  Patterns must be separated by  <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">label</td>
+    <td valign="top">List files, dates, and statuses as of this label.  The label must exist in starteam or an exception will be thrown.  If not specified, the most recent version of each file will be listed.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">asofdate</td>
+    <td valign="top">List files, dates, and statusess as of this date.
+    The date must be formatted in ISO8601 datetime
+    (<code>yyyy-MM-dd'T'HH:mm:ss</code>), ISO8601
+    date(<code>yyyy-MM-dd</code>) or a user-defined SimpleDateFormat
+    defined in the <code>asofDateFormat</code> attribute.  If the date
+    is not parsable by the default or selected format, an exception
+    will be thrown.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">asofdateformat</td>
+    <td valign="top">java.util.SimpleDateFormat compatible string used
+    to parse the <code>asofdate</code> attribute.  <em>Since Ant
+    1.6.</em></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+
+  <tr>
+    <td valign="top">recursive</td>
+    <td valign="top">Indicates if subfolders should be searched for files to list.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <tr>
+    <td valign="top">listuncontrolled</td>
+    <td valign="top">if true, any files or folders NOT in StarTeam will be included in the listing.
+    If false, they won't.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+    </tr>
+  
+  <tr>
+    <td valign="top">preloadfileinformation</td>
+    <td valign="top">The StarTeam server has the ability to preload file metadata for an
+    entire tree prior to beginning action on that tree.  Doing so can in some instances 
+    lead to substantially faster actions, particularly over large trees.  Setting this 
+    to "yes" (default) engages this functionality, setting it to "no" turns it off.</td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+
+<pre>
+
+  &lt;stlist url="WASHINGTON:49201/build"
+          username="auser"
+          password="secret"
+ /&gt;
+</pre>
+
+The above command might produce the following listing:
+
+<pre>
+   [stlist] Folder: Build (Default folder: C:/work/build)
+   [stlist] Folder: dev (Default folder: C:/work/build/dev)
+   [stlist] Out of date  Sue Developer        1/1/02 7:25:47 PM CST     4368 build.xml
+   [stlist] Missing      George Hacker        1/1/02 7:25:49 PM CST       36 Test01.properties
+   [stlist] Current                           1/1/02 7:25:49 PM CST     4368 build2.xml
+   [stlist] Folder: test (Default folder C:/work/build/dev/test)
+   [stlist] Missing                           1/1/02 7:25:50 PM CST     4368 build2.xml
+</pre>
+
+while adding a <i>rootlocalfolder</i> and an <i>excludes</i> param ...
+
+<pre>
+
+  &lt;stlist url="WASHINGTON:49201/build"
+          username="auser"
+          password="secret"
+          rootlocalfolder="srcdir2"
+          excludes="*.properties"
+ /&gt;
+</pre>
+
+might produce this listing. The status is missing because we are not going against the default folder.
+
+<pre>
+   [stlist] overriding local folder to srcdir2
+   [stlist] Folder: Build (Local folder: srcdir2)
+   [stlist] Folder: dev (Local folder: srcdir2/dev)
+   [stlist] Sue Developer        1/1/02 7:25:47 PM CST     4368 build.xml
+   [stlist]                      1/1/02 7:25:49 PM CST     4368 build2.xml
+   [stlist] Folder: test (Local folder: srcdir2/dev/test)
+   [stlist]                      1/1/02 7:25:50 PM CST     4368 build2.xml
+ 
+
+</pre>
+
+<hr></hr>
+
+<a name="starteam">
+<h2>Starteam</h2></a>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the <a href="#stcheckout">STCheckout</a> task instead.</i></p>
+<h3>Description</h3>
+
+Checks out files from a StarTeam project.
+
+<p>
+The <i>includes</i> and <i>excludes</i> attributes function differently from
+other tasks in Ant.  Multiple patterns must be separated by spaces, not
+commas.  See the examples for more information.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>  
+  <tr>
+    <td valign="top">servername</td>
+    <td valign="top">The name of the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">serverport</td>
+    <td valign="top">The port number of the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">projectname</td>
+    <td valign="top">The name of the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">viewname</td>
+    <td valign="top">The name of the view in the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+
+  <tr>
+    <td valign="top">targetfolder</td>
+    <td valign="top">The folder to which files are checked out.  What this precisely means is determined by the <i>targetFolderAbsolute</i> param.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>  
+  <tr>
+    <td valign="top">targetFolderAbsolute</td>
+    <td valign="top">Determines how <i>targetfolder</i> is interpreted, that is, whether the StarTeam "default folder" for the project is factored in (false) or whether <i>targetFolder</i> is a complete mapping to <i>foldername</i> (true).
+      If "true", the target tree will be rooted at <i>targetfolder+"default folder"</i>.  If false, the target tree will be rooted at <i>targetfolder</i>.  Defaults to "false".  </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">foldername</td>
+    <td valign="top">The subfolder in the project from which to check out files.</td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">Overwrite existing folders if this is set to "true".  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">recursion</td>
+    <td valign="top">Indicates if subfolders should be searched for files to check out.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Provides progress information.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only check out files that match at least one of the patterns in this list.  Patterns must be separated by spaces.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not check out files that match at least one of the patterns in this list.  Patterns must be separated by spaces.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+  /&gt;
+</pre>
+
+The minimum necessary to check out files out from a StarTeam server.  This will
+check out all files in the <i>AView</i> view of the <i>AProject</i> project to
+<code>C:\dev\buildtest\co</code>.
+
+<pre>
+  &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            foldername="\Dev"
+            excludes="*.bak *.old"
+            force="true"
+  /&gt;
+</pre>
+
+This will checkout all files from the <i>Dev</i> folder and below that do not
+end in <i>.bak</i> or <i>.old</i>.  The force flag will cause any existing files to be
+overwritten by the version in StarTeam.
+
+<pre>
+  &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            includes="*.htm *.html"
+            excludes="index.*"
+  /&gt;
+</pre>
+
+
+       
+This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
+<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
+not be checked out by this command.
+
+
+<pre>
+ &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            foldername="src/java"
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            targetfolderabsolute="true"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            foldername="src/java"
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            targetfolderabsolute ="false"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            foldername="src/java"
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co\src\java"
+            targetfolderabsolute="true"
+  /&gt;
+</pre>
+
+In the preceding three examples, assuming that the AProject project has a default folder of
+"AProject", the first example will check the files located in starteam under src/java out to a tree rooted at C:\dev\buildtest\co, 
+the second to a tree rooted at C:\dev\buildtest\co\AProject\src\java and the third to a tree rooted at C:\dev\buildtest\co\src\java.
+
+<hr>
+<p align="center">
+Copyright &copy; 2001-2004 The Apache Software Foundation. All rights Reserved.
+</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/stylebook.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/stylebook.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/stylebook.html	(revision 14989)
@@ -0,0 +1,71 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>StyleBook Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="stylebook">Stylebook</a></h2>
+<h3>Description</h3>
+<p>This executes the apache Stylebook documentation generator. 
+Unlike the commandline version of this tool, all three arguments
+are required to run stylebook.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+<p>
+ Being extended from &lt;Java&gt;, all the parent's attributes
+ and options are available. Do not set any apart from the <tt>classpath</tt>
+ as they are not guaranteed to be there in future.
+ </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">book</td>
+    <td valign="top">the book xml file that the documentation generation starts from
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">skindirectory</td>
+    <td valign="top">the directory that contains the stylebook skin
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">targetdirectory</td>
+    <td valign="top">the destination directory where the documentation is generated 
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<p>
+The user can also specify the nested &lt;classpath&gt; element which defines classpath 
+in which the task is executed.</p>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;stylebook targetdirectory=&quot;build/docs&quot; 
+           book=&quot;src/xdocs/book.xml&quot; 
+           skindirectory=&quot;src/skins/myskin&quot;/&gt;
+</pre>
+</blockquote>
+The above will generate documentation in build/docs starting from the book 
+src/xdocs/book.xml and using the skin located in directory src/skins/myskin.
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/symlink.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/symlink.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/symlink.html	(revision 14989)
@@ -0,0 +1,125 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Symlink Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="symlink">Symlink</a></h2>
+<h3>Description</h3>
+<p> Manages symbolic links on Unix based platforms. Can be used to
+make an individual link, delete a link, create multiple links from properties files, 
+or create properties files describing links in the specified directories.
+Existing links are not overwritten by default.
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select a
+set of links to record, or a set of property files to create links from. </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">The type of action to perform, may be "single", 
+    "record", "recreate" or "delete".</td>
+    <td valign="top" align="center">No, defaults to single.</td>
+  </tr>
+  <tr>
+    <td valign="top">link</td>
+    <td valign="top">The name of the link to be created or deleted.</td>
+    <td valign="center" align="center" >required for 
+    action="single" or "delete". Ignored in other actions.</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">The resource the link should point to.</td>
+    <td valign="top" align="center">required for action="single". Ignored in other actions.</td>
+  </tr>
+  <tr>
+    <td valign="top">linkfilename</td>
+    <td valign="top">The name of the properties file to create in 
+    each included directory.</td>
+    <td valign="top" align="center">required for action="record". 
+    Ignored in other actions.</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite existing links or not.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Stop build if true, log a warning message, but do not stop the build,
+       when the an error occurs if false.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+ 
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s
+ are used when action = "record" to select directories and linknames to be recorded. 
+ They are also used when action = "recreate" to specify both the name of the property 
+ files to be processed, and the directories in which they can be found. At least one 
+ fileset is required for each case.</p>
+ 
+<h3>Examples</h3>
+
+  <p> Make a link named "foo" to a resource named "bar.foo" in subdir:</p>
+  <pre>
+  &lt;symlink link="${dir.top}/foo" resource="${dir.top}/subdir/bar.foo"/&gt;
+  </pre>
+ 
+  <p> Record all links in subdir and it's descendants in files named
+  "dir.links"</p>
+  <pre>
+  &lt;symlink action="record" linkfilename="dir.links"&gt;
+     &lt;fileset dir="${dir.top}" includes="subdir&#47;**" /&gt;
+  &lt;/symlink&gt;
+  </pre>
+ 
+  <p> Recreate the links recorded in the previous example:</p>
+  <pre>
+  &lt;symlink action="recreate"&gt;
+     &lt;fileset dir="${dir.top}" includes="subdir&#47;**&#47;dir.links" /&gt;  
+  &lt;/symlink&gt;
+  </pre>
+ 
+ <p> Delete a link named "foo":
+ <pre>
+ &lt;symlink action="delete" link="${dir.top}/foo"/&gt;
+ </pre>
+
+  <p><strong>Java 1.2 and earlier:</strong> Due to limitations on executing system
+  level comands in Java versions earlier than 1.3 this task may have difficulty
+  operating with a relative path in ANT_HOME. The typical symptom is an 
+  IOException where ant can't find /some/working/directory${ANT_HOME}/bin/antRun
+  or something similar. The workaround is to change your ANT_HOME environment
+  variable to an absolute path, which will remove the /some/working/directory portion
+  of the above path and allow ant to find the correct commandline execution script.
+ 
+  <p><strong>LIMITATIONS:</strong> Because Java has no direct support for
+  handling symlinks this task divines them by comparing canonical and
+  absolute paths. On non-unix systems this may cause false positives.
+  Furthermore, any operating system on which the command
+  <code>ln -s &lt;linkname&gt; &lt;resourcename&gt;</code> is not a valid 
+  command on the comand line will not be able to use action="single" or 
+  action="recreate". Action="record" and action=delete should still work. Finally, 
+  the lack of support for symlinks in Java means that all links are recorded as 
+  links to the <strong>canonical</strong> resource name. Therefore the link:
+  <code>link --> subdir/dir/../foo.bar</code> will be recorded as
+  <code>link=subdir/foo.bar</code> and restored as
+  <code>link --> subdir/foo.bar</code></p>
+
+<hr><p align="center">Copyright &copy; 2002,2004 The Apache Software
+Foundation.  All rights Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/telnet.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/telnet.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/telnet.html	(revision 14989)
@@ -0,0 +1,141 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Telnet Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="telnet">Telnet</a></h2>
+<h3>Description</h3>
+Task to automate a remote telnet session. The task uses 
+nested <tt>&lt;read&gt;</tt> to indicate strings to wait for, and
+<tt>&lt;write&gt;</tt> tags to specify text to send.  
+
+<p>If you do specify a userid and password, the system will 
+assume a common unix prompt to wait on. This behavior can be easily over-ridden.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+     <td>userid</td>
+     <td>the login id to use on the telnet server.</td>
+     <td>Only if password is specified</td>
+  </tr>
+  <tr>
+     <td>password</td>
+     <td>the login password to use on the telnet server.</td>
+     <td>Only if userid is specified</td>
+  </tr>
+  <tr>
+     <td>server</td>
+     <td>the address of the remote telnet server.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>port</td>
+     <td>the port number of the remote telnet server. Defaults to port 23.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>initialCR</td>
+     <td>send a cr after connecting (&quot;yes&quot;). Defaults to &quot;no&quot;.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>timeout</td>
+     <td>set a default timeout to wait for a response. Specified in seconds. Default is no timeout.</td>
+     <td>No</td>
+  </tr>
+</table>
+<a name="nested"></a><h3>Nested Elements</h3>
+The commands to send to the server, and responses to wait for, are
+described as nested elements.  
+
+<h4>read</h4>
+
+<p>declare (as a text child of this element) a string to wait for.
+The element supports the timeout attribute, which overrides any
+timeout specified for the task as a whole. It also has a <tt>string</tt>
+attribute, which is an alternative to specifying the string as 
+a text element.
+</p>
+<i>Always declare an opening and closing
+&lt;read&gt; element to ensure that statements are not sent before
+the connection is ready, and that the connection is not broken before
+the final command has completed.
+</i>
+<h4>write</h4>
+
+<p>describes the text to send to the server. The <tt>echo</tt> boolean
+attribute controls whether the string is echoed to the local log; 
+this is "true" by default
+</p>
+<h3>Examples</h3>
+A simple example of connecting to a server and running a command.  This assumes
+ a prompt of &quot;ogin:&quot; for the userid, and a prompt of &quot;assword:&quot;
+ for the password.
+
+<blockquote><pre>
+&lt;telnet userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot;&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+   &lt;write&gt;ls&lt;/write&gt;
+   &lt;read string=&quot;/home/bob&quot;/&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+
+This task can be rewritten as:
+<blockquote><pre>
+&lt;telnet server=&quot;localhost&quot;&gt;
+   &lt;read&gt;ogin:&lt;/read&gt;
+   &lt;write&gt;bob&lt;/write&gt;
+   &lt;read&gt;assword:&lt;/read&gt;
+   &lt;write&gt;badpass&lt;/write&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+   &lt;write&gt;ls&lt;/write&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+
+A timeout can be specified at the &lt;telnet&gt; level or at the &lt;read&gt; level. 
+This will connect, issue a sleep command that is suppressed from displaying and wait 
+10 seconds before quitting.
+<blockquote><pre>
+&lt;telnet userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; timeout=&quot;20&quot;&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+   &lt;write echo=&quot;false&quot;&gt;sleep 15&lt;/write&gt;
+   &lt;read timeout=&quot;10&quot;&gt;/home/bob&lt;/read&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+
+The task can be used with other ports as well:
+<blockquote><pre>
+&lt;telnet port=&quot;80&quot; server=&quot;localhost&quot; timeout=&quot;20&quot;&gt;
+   &lt;read/&gt;
+   &lt;write&gt;GET / http/0.9&lt;/write&gt;
+   &lt;write/&gt;
+   &lt;read timeout=&quot;10&quot;&gt;&amp;lt;/HTML&amp;gt;&lt;/read&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+<p>
+To use this task against the WinNT telnet service, you need to configure the service to use 
+classic authentication rather than NTLM negotiated authentication. 
+This can be done in the Telnet Server Admin app: 
+select "display/change registry settings", then "NTLM", then set the value of NTLM to 1.
+</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/test.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/test.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/test.html	(revision 14989)
@@ -0,0 +1,79 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Test Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="test">Test</a></h2>
+<h3>Description</h3>
+<p>This is a primitive task to execute a unit test in the org.apache.testlet framework.</p>
+<p><strong>This task is deprectated as the Testlet framework has been
+abandoned in favor of JUnit by the Avalon community.</strong></p>
+<p><strong>Note:</strong> This task depends on external libraries not included
+in the Ant distribution.  See <a href="../install.html#librarydependencies">
+Library Dependencies</a> for more information.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">showSuccess</td>
+    <td valign="top">a boolean value indicating whether tests should display a 
+    message on success
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">showBanner</td>
+    <td valign="top">a boolean value indicating whether a banner should be displayed 
+    when starting testlet engine
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceShowTrace</td>
+    <td valign="top">a boolean indicating that a stack trace is displayed on any failure
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">showTrace</td>
+    <td valign="top">a boolean indicating that a stack trace is displayed on 
+    error (but not normal failure)
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+The user can also specify the nested &lt;classpath&gt; element which defines classpath 
+in which the task is executed. The user also specifies a subelement per testlet executed
+which has content that specifies tasklet classname.</p>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;test showSuccess=&quot;false&quot; showBanner=&quot;false&quot; showTrace=&quot;true&quot; forceShowTrace=&quot;true&quot;&gt;
+   &lt;classpath refid=&quot;test.classpath&quot;/&gt;
+   &lt;testlet&gt;org.foo.MyTestlet&lt;/testlet&gt;
+   &lt;testlet&gt;org.foo.MyOtherTestlet&lt;/testlet&gt;
+&lt;/test&gt;
+</pre>
+</blockquote>
+The above will run the testlets org.foo.MyTestlet and org.foo.MyOtherTestlet
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/translate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/translate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/translate.html	(revision 14989)
@@ -0,0 +1,168 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Translate Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="translate">Translate</a></h2>
+<h3>Description</h3>
+<p>Identifies keys in files delimited by special tokens
+and translates them with values read from resource bundles.
+</p>
+<p>
+A resource bundle contains locale-specific key-value pairs.
+A resource bundle is a hierarchical set of property files.
+A bundle name makes up its base family name.  Each file that
+makes up this bundle has this name plus its locale.  For example,
+if the resource bundle name is MyResources, the file that contains
+German text will take the name MyResources_de.  In addition to
+language, country and variant are also used to form the files in
+the bundle.
+</p>
+<p>
+The resource bundle lookup searches for resource files with various
+suffixes on the basis of (1) the desired locale and (2) the default
+locale (basebundlename), in the following order from lower-level
+(more specific) to parent-level (less specific):
+</p>
+<pre>
+basebundlename + &quot;_&quot; + language1 + &quot;_&quot; + country1 + &quot;_&quot; + variant1
+basebundlename + &quot;_&quot; + language1 + &quot;_&quot; + country1
+basebundlename + &quot;_&quot; + language1
+basebundlename
+basebundlename + &quot;_&quot; + language2 + &quot;_&quot; + country2 + &quot;_&quot; + variant2
+basebundlename + &quot;_&quot; + language2 + &quot;_&quot; + country2
+basebundlename + &quot;_&quot; + language2
+</pre>
+<p>
+The file names generated thus are appended with the string &quot;.properties&quot;
+to make up the file names that are to be used.
+</p>
+<p>
+File encoding is supported.  The encoding scheme of the source files,
+destination files and the bundle files can be specified.
+
+Destination files can be explicitly overwritten using the
+<var>forceoverwrite</var> attribute.  If <var>forceoverwrite</var>
+is false, the destination file is overwritten only if either the
+source file or any of the files that make up the bundle have been
+modified after the destination file was last modified.
+</p>
+<p>
+<em>New in Ant 1.6:</em><br/>
+Line endings of source files are preserved in the translated files.
+</p>
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select files to
+translate.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">Destination directory where destination files are
+      to be created.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">starttoken</td>
+    <td valign="top">The starting token to identify keys.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">endtoken</td>
+    <td valign="top">The ending token to identify keys.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">bundle</td>
+    <td valign="top">Family name of resource bundle.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">bundlelanguage</td>
+    <td valign="top">
+        Locale specific language of resource bundle.  Defaults to
+        default locale's language.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bundlecountry</td>
+    <td valign="top">
+        Locale specific country of resource bundle.  Defaults to
+        default locale's country.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bundlevariant</td>
+    <td valign="top">
+        Locale specific variant of resource bundle.  Defaults to
+        the default variant of the country and language being used.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcencoding</td>
+    <td valign="top">Source file encoding scheme.  Defaults to
+    system default file encoding.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">destencoding</td>
+    <td valign="top">Destination file encoding scheme.  Defaults to
+    source file encoding.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bundleencoding</td>
+    <td valign="top">Resource Bundle file encoding scheme.  Defaults to
+    source file encoding.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer. Defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSets</a> are used to select files that
+ contain keys for which value translated files are to be generated.
+</p>
+<h3>Examples</h3>
+<p><b>Translate source file encoded in english into its japanese
+equivalent using a resource bundle encoded in japanese.
+</b></p>
+<pre>
+  &lt;translate toDir=&quot;$(dest.dir}/ja&quot;
+        starttoken=&quot;#&quot;
+        endtoken=&quot;#&quot;
+        bundle=&quot;resource/BaseResource&quot;
+        bundlelanguage=&quot;ja&quot;
+        forceoverwrite=&quot;yes&quot;
+        srcencoding=&quot;ISO8859_1&quot;
+        destencoding=&quot;SJIS&quot;
+        bundleencoding=&quot;SJIS&quot;&gt;
+        &lt;fileset dir=&quot;${src.dir}&quot;&gt;
+            &lt;include name=&quot;**/*.jsp&quot;/&gt;
+        &lt;/fileset&gt;
+  &lt;/translate&gt;
+</pre>
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/vbc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/vbc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/vbc.html	(revision 14989)
@@ -0,0 +1,490 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Vbc
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Vbc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">This task compiles Visual Basic.NET source into executables or modules.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        This task compiles Visual Basic.NET source into executables or modules. The task requires vbc.exe on the execute path, unless it or an equivalent program is specified in the <tt>executable</tt> parameter <p> All parameters are optional: &lt;vbc/&gt; should suffice to produce a debug build of all *.vb files. <p> The task is a directory based task, so attributes like <tt>includes=&quot;**\/*.vb&quot;</tt> and <tt>excludes=&quot;broken.vb&quot;</tt> can be used to control the files pulled in. By default, all *.vb files from the project folder down are included in the command. When this happens the destFile -if not specified- is taken as the first file in the list, which may be somewhat hard to control. Specifying the output file with <tt>destfile</tt> is prudent. </p> <p> Also, dependency checking only works if destfile is set. As with &lt;csc&gt; nested <tt>src</tt> filesets of source, reference filesets, definitions and resources can be provided. <p> Example </p> <pre>&lt;vbc optimize=&quot;true&quot; debug=&quot;false&quot; warnLevel=&quot;4&quot; targetType=&quot;exe&quot; definitions=&quot;RELEASE&quot; excludes=&quot;src/unicode_class.vb&quot; mainClass = &quot;MainApp&quot; destFile=&quot;NetApp.exe&quot; optionExplicit=&quot;true&quot; optionCompare=&quot;text&quot; references="System.Xml,System.Web.Xml" &gt; &lt;reference file="${testCSC.dll}" /&gt; &lt;define name="RELEASE" /&gt; &lt;define name="DEBUG" if="debug.property"/&gt; &lt;define name="def3" unless="def2.property"/&gt; &lt;/vbc&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="24">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">imports</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Declare global imports for namespaces in referenced metadata files.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optioncompare</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Specify binary- or text-style string comparisons. Defaults to "binary"</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optionexplicit</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether to require explicit declaration of variables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optionstrict</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Enforce strict language semantics.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">removeintchecks</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether to remove integer checks. Default false.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">rootnamespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Specifies the root namespace for all type declarations.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+<short-description><![CDATA[Add a define to the list of definitions.]]></short-description>
+<description>
+            <![CDATA[add a define to the list of definitions]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+<short-description><![CDATA[Add a new reference fileset to the compilation.]]></short-description>
+<description>
+            <![CDATA[add a new reference fileset to the compilation]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+<short-description><![CDATA[Link or embed a resource.]]></short-description>
+<description>
+            <![CDATA[link or embed a resource]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+<short-description><![CDATA[Add a new source directory to the compile.]]></short-description>
+<description>
+            <![CDATA[add a new source directory to the compile]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/vss.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/vss.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/vss.html	(revision 14989)
@@ -0,0 +1,810 @@
+<html>
+<head>
+<title>Microsoft Visual SourceSafe(VSS) Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+<h2>Microsoft Visual SourceSafe Tasks User Manual</h2>
+<p>by</p>
+<ul>
+    <li>Craig Cottingham</li>
+    <li>Andrew Everitt</li>
+    <li>Balazs Fejes 2</li>
+    <li><a href="mailto:Glenn_Twiggs@bmc.com">Glenn_Twiggs@bmc.com</a></li>
+    <li>Martin Poeschl (<a href="mailto:mpoeschl@marmot.at">mpoeschl@marmot.at</a>)</li>
+    <li>Phillip Wells</li>
+    <li>Jon Skeet (<a href="mailto:jon.skeet@peramon.com">jon.skeet@peramon.com</a>)</li>
+    <li>Nigel Magnay (<a href="mailto:nigel.magnay@parsec.co.uk">nigel.magnay@parsec.co.uk</a>)</li>
+    <li>Gary S. Weaver</li>
+    <li>Jesse Stockall</li>
+ </ul>
+<p>$Date$</p>
+<hr>
+<h2>Contents</h2>
+<ul>
+    <li><a href="#intro">Introduction</a></li>
+    <li><a href="#tasks">The Tasks</a></li>
+</ul>
+<br>
+<h2><a name="intro">Introduction</a></h2>
+<p>These tasks provide an interface to the
+<a href="http://msdn.microsoft.com/ssafe/default.asp" target="_top">Microsoft Visual SourceSafe</a> SCM.
+The <code>org.apache.tools.ant.taskdefs.optional.vss</code> package consists of a simple framework to support
+vss functionality as well as some Ant tasks encapsulating frequently used vss commands.
+Although it is possible to use these commands on the desktop,
+they were primarily intended to be used by automated build systems.</p>
+<p>
+If you get a CreateProcesss IOError=2 when running these, it means
+that ss.exe was not found. Check to see if you can run it from the
+command line -you may need to alter your path, or set the <tt>ssdir</tt>
+property.
+<h2><a name="tasks">The Tasks</a></h2>
+
+<table border="0" cellspacing="0" cellpadding="3">
+    <tr>
+        <td><a href="#vssget">vssget</a></td>
+        <td>Retrieves a copy of the specified VSS file(s).</td>
+    </tr>
+    <tr>
+        <td><a href="#vsslabel">vsslabel</a></td>
+        <td>Assigns a label to the specified version or current version of a file or project.</td>
+    </tr>
+    <tr>
+        <td><a href="#vsshistory">vsshistory</a></td>
+        <td>Shows the history of a file or project in VSS.</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscheckin">vsscheckin</a></td>
+        <td>Updates VSS with changes made to a checked out file, and unlocks the VSS master copy.</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscheckout">vsscheckout</a></td>
+        <td>Copies a file from the current project to the current folder, for the purpose of editing.</td>
+    </tr>
+    <tr>
+        <td><a href="#vssadd">vssadd</a></td>
+        <td>Adds a new file into the VSS Archive</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscp">vsscp</a></td>
+        <td>Change the current project being used in VSS</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscreate">vsscreate</a></td>
+        <td>Creates a project in VSS.</td>
+    </tr>
+</table>
+
+<hr>
+<h2>Task Descriptions</h2>
+
+<!-- VSSGET -->
+
+<h2><a name="vssget">VssGet</a></h2>
+<h3>Description</h3>
+Task to perform GET commands to Microsoft Visual SourceSafe.
+<p>If you specify two or more attributes from version, date and
+label only one will be used in the order version, date, label.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>ss.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false; default false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false; default false. Note however that in the SourceSafe UI
+     , there is a setting accessed via Tools/Options/GeneralTab called
+     &quot;Act on projects recursively&quot;.  If this setting is checked,
+     then the recursive attribute is effectively ignored, and the get
+     will always be done recursively
+     </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>version</td>
+     <td>a version number to get</td>
+     <td rowspan="3">No, only one of these allowed</td>
+  </tr>
+  <tr>
+     <td>date</td>
+     <td>a date stamp to get at</td>
+  </tr>
+  <tr>
+     <td>label</td>
+     <td>a label to get for</td>
+  </tr>
+  <tr>
+     <td>quiet</td>
+     <td>suppress output (off by default)</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>What to respond with (sets the -I option). By default, -I- is
+     used; values of Y or N will be appended to this.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>writablefiles</td>
+    <td>Behavior when local files are writable. Valid options are: <code>replace</code>, 
+        <code>skip</code> and <code>fail</code>; Defaults to <code>fail</code>
+        <br><code>skip</code> implies <code>failonerror=false</code></td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>filetimestamp</td>
+    <td>Set the behavior for timestamps of local files. Valid options are <code>current</code>, 
+        <code>modified</code>, or <code>updated</code>. Defaults to <code>current</code>.</td> 
+    <td>No</td>
+  </tr>
+</table>
+<p>Note that only one of version, date or label should be specified</p>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vssget localPath=&quot;C:\mysrc\myproject&quot;
+        recursive=&quot;true&quot;
+        label=&quot;Release1&quot;
+        login=&quot;me,mypassword&quot;
+        vsspath=&quot;$/source/aProject&quot;
+        writable=&quot;true&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a get on the VSS-Project <i>$/source/myproject</i> using the username
+<i>me</i> and the password <i>mypassword</i>. It will recursively get the files
+which are labeled <i>Release1</i> and write them to the local directory
+<i>C:\mysrc\myproject</i>. The local files will be writable.</p>
+<hr>
+
+<!-- VSSLABEL -->
+
+<h2><a name="vsslabel">VssLabel</a></h2>
+<h3>Description</h3>
+Task to perform LABEL commands to Microsoft Visual SourceSafe.
+<p>Assigns a label to the specified version or current version of a file or
+project.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <th>Attribute</th>
+     <th>Values</th>
+     <th>Required</th>
+   </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srssafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+   <tr>
+      <td>label</td>
+      <td>A label to apply to the hierarchy</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>version</td>
+      <td>An existing file or project version to label. By default the current
+      version is labelled.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>The comment to use for this label. Empty or '-' for no comment.</td>
+      <td>No</td>
+   </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>What to respond with (sets the -I option). By default, -I- is
+     used; values of Y or N will be appended to this.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsslabel vsspath=&quot;$/source/aProject&quot;
+          login=&quot;me,mypassword&quot;
+          label=&quot;Release1&quot;/&gt;
+</pre>
+</blockquote>
+<p>Labels the current version of the VSS project <i>$/source/aProject</i> with
+the label <i>Release1</i> using the username <i>me</i> and the password
+<i>mypassword</i>.
+</p>
+<blockquote>
+<pre>
+&lt;vsslabel vsspath=&quot;$/source/aProject/myfile.txt&quot;
+          version=&quot;4&quot;
+          label=&quot;1.03.004&quot;/&gt;
+</pre>
+</blockquote>
+<p>Labels version 4 of the VSS file <i>$/source/aProject/myfile.txt</i> with the
+label <i>1.03.004</i>. If this version already has a label, the operation (and
+the build) will fail.
+</p>
+<hr>
+
+<!-- VSSHISTORY -->
+
+<h2><a name="vsshistory">VssHistory</a></h2>
+<h3>Description</h3>
+Task to perform HISTORY commands to Microsoft Visual SourceSafe.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srssafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>fromDate</td>
+    <td>Start date for comparison</td>
+    <td>See below</td>
+  </tr>
+  <tr>
+    <td>toDate</td>
+    <td>End date for comparison</td>
+    <td>See below</td>
+  </tr>
+  <tr>
+    <td>dateFormat</td>
+    <td>Format of dates in fromDate and toDate. Used when calculating dates with
+      the numdays attribute. This string uses the formatting rules of SimpleDateFormat.
+      Defaults to DateFormat.SHORT.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>fromLabel</td>
+    <td>Start label for comparison</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>toLabel</td>
+    <td>Start label for comparison</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>numdays</td>
+    <td>The number of days for comparison.</td>
+    <td>See below</td>
+  </tr>
+  <tr>
+    <td>output</td>
+    <td>File to write the diff.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>recursive</td>
+    <td>true or false</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>style</td>
+    <td>brief, codediff, default or nofile. The default is default.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>user</td>
+    <td>Name the user whose changes we would like to see</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h4>Specifying the time-frame</h4>
+<p>There are different ways to specify what time-frame you wish to evaluate:</p>
+<ul>
+  <li>Changes between two dates: Specify both <code>fromDate</code> and <code>toDate</code> </li>
+  <li>Changes before a date: Specify <code>toDate</code></li>
+  <li>Changes after a date: Specify <code>fromDate</code></li>
+  <li>Changes X Days before a date: Specify <code>toDate</code> and (negative!) <code>numDays</code></li>
+  <li>Changes X Days after a date: Specify <code>fromDate</code> and <code>numDays</code></li>
+</ul>
+
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>
+&lt;vsshistory vsspath=&quot;$/myProject&quot; recursive=&quot;true&quot;
+            fromLabel=&quot;Release1&quot;
+            toLabel=&quot;Release2&quot;/&gt;
+</pre>
+</blockquote>
+<p>Shows all changes between &quot;Release1&quot; and &quot;Release2&quot;.</p>
+
+<blockquote>
+  <pre>
+&lt;vsshistory vsspath=&quot;$/myProject&quot; recursive=&quot;true&quot;
+            fromDate=&quot;01.01.2001&quot;
+            toDate=&quot;31.03.2001&quot;/&gt;
+</pre>
+</blockquote>
+<p>Shows all changes between January 1st 2001 and March 31st 2001 (in Germany, date must be specified according to your locale).</p>
+
+<blockquote>
+  <pre>
+&lt;tstamp&gt;
+  &lt;format property=&quot;to.tstamp&quot; pattern=&quot;M-d-yy;h:mma&quot; /&gt;
+&lt;/tstamp&gt;
+
+&lt;vsshistory vsspath=&quot;$/myProject&quot; recursive=&quot;true&quot;
+            numDays=&quot;-14&quot;
+            dateFormat=&quot;M-d-yy;h:mma&quot;
+            toDate=&quot;${to.tstamp}&quot;/&gt;
+</pre>
+</blockquote>
+<p>Shows all changes in the 14 days before today.</p>
+<hr>
+
+<!-- VSSCHECKIN -->
+
+<h2><a name="vsscheckin">VssCheckin</a></h2>
+<h3>Description</h3>
+Task to perform CHECKIN commands to Microsoft Visual SourceSafe.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srssafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>comment</td>
+     <td>Comment to use for the files that where checked in.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>'Y', 'N' or empty. Specify how to reply to questions from VSS.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscheckin vsspath=&quot;$/test/test*&quot;
+            localpath=&quot;D:\build\&quot;
+            comment=&quot;Modified by automatic build&quot;/&gt;
+</pre>
+</blockquote>
+<p>Checks in the file(s) named <i>test*</i> in the project <i>$/test</i> using
+the local directory <i>D:\build</i>.</p>
+<hr>
+
+<!-- VSSCHECKOUT -->
+
+<h2><a name="vsscheckout">VssCheckout</a></h2>
+<h3>Description</h3>
+Task to perform CHECKOUT commands to Microsoft Visual SourceSafe.
+<p>If you specify two or more attributes from version, date and
+label only one will be used in the order version, date, label.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srssafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>version</td>
+     <td>a version number to get</td>
+     <td rowspan="3">No, only one of these allowed</td>
+  </tr>
+  <tr>
+     <td>date</td>
+     <td>a date stamp to get at</td>
+  </tr>
+  <tr>
+     <td>label</td>
+     <td>a label to get for</td>
+  </tr>
+  <tr>
+    <td>writablefiles</td>
+    <td>Behavior when local files are writable. Valid options are: <code>replace</code>, 
+        <code>skip</code> and <code>fail</code>; Defaults to <code>fail</code>
+        <br><code>skip</code> implies <code>failonerror=false</code></td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>filetimestamp</td>
+    <td>Set the behavior for timestamps of local files. Valid options are <code>current</code>, 
+        <code>modified</code>, or <code>updated</code>. Defaults to <code>current</code>.</td> 
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>getlocalcopy</td>
+    <td>Set the behavior to retrieve local copies of the files. Defaults to true.</td> 
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscheckout vsspath=&quot;$/test&quot;
+             localpath=&quot;D:\build&quot;
+             recursive=&quot;true&quot;
+             login=&quot;me,mypass&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a recursive checkout of the project <i>$/test</i> to the directory D:\build.
+</p>
+<hr>
+
+<!-- VSSADD -->
+
+<h2><a name="vssadd">VssAdd</a></h2>
+<h3>Description</h3>
+Task to perform ADD commands to Microsoft Visual SourceSafe.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Specify the local file(s) to add to VSS</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srssafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>comment</td>
+     <td>Comment to use for the files that where checked in.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>'Y', 'N' or empty. Specify how to reply to questions from VSS.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vssadd localpath=&quot;D:\build\build.00012.zip&quot;
+            comment=&quot;Added by automatic build&quot;/&gt;
+</pre>
+</blockquote>
+<p>Add the file named build.00012.zip into the project current working
+directory (see vsscp).</p>
+<hr>
+
+<!-- VSSCP -->
+
+<h2><a name="vsscp">VssCp</a></h2>
+<h3>Description</h3>
+<p>Task to perform CP (Change Project) commands to Microsoft Visual SourceSafe.</p>
+<p>This task is typically used before a VssAdd in order to set the target project</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project you wish to
+         make the current project.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srssafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscp vsspath=&quot;$/Projects/ant&quot;/&gt;
+</pre>
+</blockquote>
+<p>Sets the current VSS project to <i>$/Projects/ant</i>.</p>
+<hr>
+
+<!-- VSSCREATE -->
+
+ <h2><a name="vsscreate">VssCreate</a></h2>
+ <h3>Description</h3>
+ Task to perform CREATE commands to Microsoft Visual Source Safe.
+ <p>Creates a new project in VSS.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <th>Attribute</th>
+    <th>Values</th>
+    <th>Required</th>
+  </tr>
+  <tr>
+    <td>login</td>
+    <td>username,password</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>vsspath</td>
+    <td>SourceSafe path of project to be created</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>ssdir</td>
+    <td>directory where <code>ss.exe</code> resides. By default the task expects it to be in the PATH.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>quiet</td>
+    <td>suppress output (off by default)</td>
+    <td>No</td>
+   </tr>
+  <tr>
+    <td>failOnError</td>
+    <td>fail if there is an error creating the project (true by default)</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>autoresponse</td>
+    <td>What to respond with (sets the -I option). By default, -I- is used; values of Y or N will be appended to this.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>The comment to use for this label. Empty or '-' for no comment.</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscreate vsspath=&quot;$/existingProject/newProject&quot;/&gt;
+</pre>
+</blockquote>
+<p>Creates the VSS-Project <i>$/existingProject/newProject</i>.</p>
+<hr>
+
+<!-- Footer -->
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/wljspc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/wljspc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/wljspc.html	(revision 14989)
@@ -0,0 +1,85 @@
+<html>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+<head><title>WLJSPC Task</title></head>
+<body>
+<h2>wljspc</h2>
+<h3>Description</h3>
+<p>Class to precompile JSP's using weblogic's jsp compiler (weblogic.jspc)</p>
+Tested only on Weblogic 4.5.1 - NT4.0 and Solaris 5.7,5.8<br>
+<h3>Parameters</h3>
+<table border="1" cellPadding="2" cellSpacing="0">
+  <tbody>
+    <tr>
+      <th>Attribute</th>
+      <th>Values</th>
+      <th>Required</th>
+    </tr>
+    <tr>
+      <td>src</td>
+      <td>oot of source tree for JSP, ie, the document root for your weblogic server</td>
+      <td>Yes</td>
+    </tr>
+    <tr>
+      <td>
+dest</td>
+      <td> root of destination directory, what you have set as WorkingDir in the weblogic properties</td>
+      <td>Yes</td>
+    </tr>
+    <tr>
+      <td>
+package</td>
+      <td> start package name under which your JSP's would be compiled</td>
+      <td>Yes</td>
+    </tr>
+    <tr>
+      <td>
+classpath</td>
+      <td>Class path to use when compiling jsp's</td>
+      <td>Yes</td>
+    </tr>
+  </tbody>
+</table>
+<p>
+<br>
+
+A classpath should be set which contains the weblogic classes as well as all application classes<br>
+referenced by the JSP. The system classpath is also appended when the jspc is called, so you may<br>
+choose to put everything in the classpath while calling Ant. However, since presumably the JSP's will reference<br>
+classes being build by Ant, it would be better to explicitly add the classpath in the task<br>
+<br>
+The task checks timestamps on the JSP's and the generated classes, and compiles<br>
+only those files that have changed.<br>
+<br>
+It follows the weblogic naming convention of putting classes in<br>
+<b> _dirName/_fileName.class for dirname/fileName.jsp   </b><br>
+<br>
+</p>
+<h3><br>
+Example<br>
+</h3>
+<p>
+<pre>
+&lt;target name="jspcompile" depends="compile"&gt;
+  &lt;wljspc src="c:\\weblogic\\myserver\\public_html" dest="c:\\weblogic\\myserver\\serverclasses" package="myapp.jsp"&gt
+    &lt;classpath&gt;
+      &lt;pathelement location="${weblogic.classpath}"/&gt;
+      &lt;pathelement path="${compile.dest}"/&gt;
+    &lt;/classpath&gt;
+  &lt;/wljspc&gt;
+&lt;/target&gt;
+</pre>
+
+</p>
+
+<h3>Limitations</h3>
+<ul>
+<li>This works only on weblogic 4.5.1</li>
+<li>It compiles the files thru the Classic compiler only.</li>
+<li>Since it is my experience that weblogic jspc throws out of memory error on being given too
+many files at one go, it is called multiple times with one jsp file each.</li>
+</ul>
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/wsdltodotnet.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/wsdltodotnet.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/wsdltodotnet.html	(revision 14989)
@@ -0,0 +1,231 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Wsdltodotnet
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Wsdltodotnet
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Converts a WSDL file or URL resource into a .NET language.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Converts a WSDL file or URL resource into a .NET language. Why add a wrapper to the MS WSDL tool? So that you can verify that your web services, be they written with Axis or anyone else's SOAP toolkit, work with .NET clients. This task is dependency aware when using a file as a source and destination; so if you &lt;get&gt; the file (with <code>usetimestamp="true"</code>) then you only rebuild stuff when the WSDL file is changed. Of course, if the server generates a new timestamp every time you ask for the WSDL, this is not enough...use the &lt;filesmatch&gt; &lt;condition&gt; to to byte for byte comparison against a cached WSDL file then make the target conditional on that test failing. See "Creating an XML Web Service Proxy", "wsdl.exe" docs in the framework SDK documentation
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Name of the file to generate. Required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="8">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra WSDL.EXE options which aren't explicitly supported by the ant wrapper task; optional</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether or not a failure should halt the build. Optional - default is <code>true</code>.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">language</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the language; one of "CS", "JS", or "VB" optional, default is CS for C# source</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace to place the source in. optional; default ""</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">server</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">flag to enable server side code generation; optional, default=false</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">The local WSDL file to parse; either url or srcFile is required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">url</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the URL to fetch. Fetching is by wsdl.exe; Ant proxy settings are ignored; either url or srcFile is required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/xmlvalidate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/xmlvalidate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTasks/xmlvalidate.html	(revision 14989)
@@ -0,0 +1,246 @@
+<html>
+
+<head>
+<title>XMLValidate Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="xmlvalidate">XMLValidate</a></h2>
+<h3>Description</h3>
+
+<p>This task checks that XML files are valid (or only well formed). The
+task uses the SAX2 parser implementation provided by JAXP by default
+(probably the one that is used by Ant itself), but one can specify any
+SAX1/2 parser if needed.</p>
+
+<p>This task supports the use of nested
+  <li><a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a> elements</li>
+  <li><tt>&lt;dtd&gt;</tt> elements which are used to resolve DTDs and entities</li>
+  <li><tt>&lt;attribute&gt;</tt> elements which are used to set features on the parser.
+      These can be any number of
+      <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a>
+      or other features that your parser may support.</li>
+  <li><tt>&lt;property&gt;</tt> elements, containing string properties
+</p>
+
+<p><b>Warning</b> : JAXP creates by default a non namespace aware parser.
+The <tt>"http://xml.org/sax/features/namespaces"</tt> feature is set
+by default to <tt>false</tt> by the JAXP implementation used by ant. To validate
+a document containing namespaces,
+set the namespaces feature to <tt>true</tt> explicitly by nesting the following element:
+<pre>
+  &lt;attribute name="http://xml.org/sax/features/namespaces" value="true"/&gt;
+</pre>
+If you are using for instance a <tt>xsi:noNamespaceSchemaLocation</tt> attribute in your XML files,
+you will need this namespace support feature.
+</p>
+<p>If you are using a parser not generated by JAXP, by using the <tt>classname</tt> attribute of xmlvalidate, this warning
+may not apply.</p>
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file(s) you want to check. (optionally can use an embedded fileset)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">lenient</td>
+    <td valign="top">
+      if true, only check the XML document is well formed
+        (ignored if the specified parser is a SAX1 parser)
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the parser to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">where to find the parser class. Optionally can use an embedded <tt>&lt;classpath&gt;</tt> element.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">fails on a error if set to true (defaults to true).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">warn</td>
+    <td valign="top">log parser warn events.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<a name="nested"></a><h3>Nested Elements</h3>
+<h4>dtd</h4>
+<p>
+<tt>&lt;dtd&gt;</tt> is used to specify different locations for DTD resolution.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">Public ID of the DTD to resolve</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">Location of the DTD to use, which can be a file,
+    a resource, or a URL</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a>
+element is used to perform entity resolution.</p>
+<h4>attribute</h4>
+<p>The <tt>&lt;attribute&gt;</tt> element is used to set parser features.<br>
+Features usable with the xerces parser are defined here :
+ <a href="http://xml.apache.org/xerces-j/features.html">Setting features</a><br>
+
+SAX features are defined here:
+ <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a><br>
+ </p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The boolean value of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+<h4>property</h4>
+<p>The <tt>&lt;property&gt;</tt> element is used to set properties.
+These properties are defined here for the xerces XML parser implementation :
+ <a href="http://xml.apache.org/xerces-j/properties.html">XML Parser properties</a>
+Properties can be used to set the schema used to validate the XML file.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The string value of the property</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+
+<h3>Examples</h3>
+<pre>
+&lt;xmlvalidate file="toto.xml"/&gt;
+</pre>
+Validate toto.xml
+<pre>
+&lt;xmlvalidate failonerror="no" lenient="yes" warn="yes"
+             classname="org.apache.xerces.parsers.SAXParser"&gt;
+             classpath="lib/xerces.jar"&gt;
+  &lt;fileset dir="src" includes="style/*.xsl"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+Validate all .xsl files in src/style, but only warn if there is an error, rather than
+halt the build.
+<pre>
+
+&lt;xmlvalidate file="struts-config.xml" warn="false"&gt;
+  &lt;dtd publicId="-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
+       location="struts-config_1_0.dtd"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+
+Validate a struts configuration, using a local copy of the DTD. 
+<pre> 
+&lt;xmlvalidate failonerror="no"&gt;
+  &lt;fileset dir="${project.dir}" includes="**/*.xml"/&gt;
+  &lt;xmlcatalog refid="mycatalog"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+
+Scan all XML files in the project, using a predefined catalog to map URIs to local files.
+<pre>
+&lt;xmlvalidate failonerror="no"&gt;
+  &lt;fileset dir="${project.dir}" includes="**/*.xml"/&gt;
+  &lt;xmlcatalog&gt;
+       &lt;dtd
+         publicId=&quot;-//ArielPartners//DTD XML Article V1.0//EN&quot;
+         location=&quot;com/arielpartners/knowledgebase/dtd/article.dtd&quot;/&gt;
+  &lt;/xmlcatalog&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+Scan all XML files in the project, using the catalog defined inline.
+
+<pre>
+&lt;xmlvalidate failonerror="yes" lenient="no" warn="yes"&gt;
+  &lt;fileset dir="xml" includes="**/*.xml"/&gt;
+  &lt;attribute name="http://xml.org/sax/features/validation" value="true"/&gt;
+  &lt;attribute name="http://apache.org/xml/features/validation/schema"  value="true"/&gt;
+  &lt;attribute name="http://xml.org/sax/features/namespaces" value="true"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+Validate all .xml files in xml directory with the parser configured to perform schema validation. Note: The parser must support the
+<pre>http://apache.org/xml/features/validation/schema</pre> feature.
+
+<br>
+<pre>
+<!-- Converts path to URL format -->
+&lt;pathconvert dirsep="/" property="xsd.file"&gt;
+&lt;path&gt;
+   &lt;pathelement location="xml/doc.xsd"/&gt;
+&lt;/path&gt;
+&lt;/pathconvert&gt;
+
+&lt;xmlvalidate file="xml/endpiece-noSchema.xml" lenient="false"
+  failonerror="true" warn="true"&gt;
+  &lt;attribute name="http://apache.org/xml/features/validation/schema"
+  value="true"/&gt;
+  &lt;attribute name="http://xml.org/sax/features/namespaces" value="true"/&gt;
+  &lt;property
+  name="http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
+  value="${xsd.file}"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+<br>
+Validate the file xml/endpiece-noSchema.xml against the schema xml/doc.xsd.
+<br>
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTypes/classfileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTypes/classfileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTypes/classfileset.html	(revision 14989)
@@ -0,0 +1,105 @@
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>ClassFileSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+<h2><a name="fileset">ClassFileSet</a></h2>
+<p>A classfileset is a specialised type of fileset which, given a set of 
+&quot;root&quot; classes, will include all of the class files upon which the 
+root classes depend. This is typically used to create a jar with all of the
+required classes for a particular application.
+</p>
+<p>
+classfilesets are typically used by reference. They are declared with an
+&quot;id&quot; value and this is then used as a reference where a normal fileset
+is expected.
+</p>
+<p>
+This type requires the <code>jakarta-BCEL</code> library.
+</p>
+
+
+<h3>Attributes</h3>
+<p>The class fileset support the following attributes in addition
+to those supported by the 
+<a href="../CoreTypes/fileset.html">standard fileset</a>:
+</p>
+ 
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">rootclass</td>
+    <td valign="top">A single root class name</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<h4>Root</h4>
+<p>
+When more than one root class is required, multiple nested &lt;root&gt; elements
+may be used
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">The fully qualified name of the root class</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>RootFileSet</h4>
+<p>
+A root fileset is used to add a set of root classes from a fileset. In this case the entries in 
+the fileset are expected to be Java class files. The name of the Java class is determined by the 
+relative location of the classfile in the fileset. So, the file 
+<code>org/apache/tools/ant/Project.class</code> corresponds to the Java class
+<code>org.apache.tools.ant.Project</code>.</p>
+
+<h4>Examples</h4>
+<blockquote><pre>
+&lt;classfileset id=&quot;reqdClasses" dir=&quot;${classes.dir}&quot;&gt;
+  &lt;root classname=&quot;org.apache.tools.ant.Project&quot; /&gt;
+&lt;/classfileset&gt;
+</pre></blockquote>
+
+<p>This example creates a fileset containing all the class files upon which the 
+<code>org.apache.tools.ant.Project</code> class depends. This fileset could 
+then be used to create a jar. 
+</p>
+
+<blockquote><pre>
+&lt;jar destfile=&quot;minimal.jar&quot;&gt;
+  &lt;fileset refid=&quot;reqdClasses&quot;/&gt;
+&lt;/jar&gt;
+</pre></blockquote>
+
+<blockquote><pre>
+&lt;classfileset id=&quot;reqdClasses&quot; dir=&quot;${classes.dir}&quot;&gt;
+  &lt;rootfileset dir=&quot;${classes.dir}&quot; includes=&quot;org/apache/tools/ant/Project*.class&quot;/&gt;
+&lt;/classfileset&gt;
+</pre></blockquote>
+
+<p>This example constructs the classfileset using all the class with names starting with Project 
+in the org.apache.tools.ant package</p> 
+
+<hr>
+<p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTypes/extension.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTypes/extension.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTypes/extension.html	(revision 14989)
@@ -0,0 +1,100 @@
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Extension Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+<h2><a name="fileset">Extension</a></h2>
+<p>Utility type that represents either an available "Optional Package"
+ (formerly known as "Standard Extension") as described in the manifest
+ of a JAR file, or the requirement for such an optional package.</p>
+<p>Note that this type
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+
+<h3>Attributes</h3>
+<p>The extension type supports the following attributes</a>:
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">extensionName</td>
+    <td valign="top">The name of extension</td>
+    <td valign="top" align="center">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">specificationVersion</td>
+    <td valign="top">The version of extension specification (Must be in
+    dewey decimal aka dotted decimal notation. 3.2.4)</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">specificationVendor</td>
+    <td valign="top">The specification vendor</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationVersion</td>
+    <td valign="top">The version of extension implementation (Must be in
+    dewey decimal aka dotted decimal notation. 3.2.4)</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationVendor</td>
+    <td valign="top">The implementation vendor</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationVendorId</td>
+    <td valign="top">The implementation vendor ID</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationURL</td>
+    <td valign="top">The url from which to retrieve extension.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+</table>
+
+<h4>Examples</h4>
+<blockquote><pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com/myExt.jar&quot;/&gt;
+</pre></blockquote>
+
+<p>Fully specifiec extension object.</p>
+
+<blockquote><pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+</pre></blockquote>
+
+<p>Extension object that just species the specification details.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTypes/extensionset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTypes/extensionset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/OptionalTypes/extensionset.html	(revision 14989)
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>ExtensionSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+<h2><a>ExtensionSet</a></h2>
+<p>Utility type that represents a set of Extensions.</p>
+<p>Note that this type
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+
+<h3>Nested Elements</h3>
+
+<h4>extension</h4>
+<p><a href="extension.html">Extension</a> object to add to set.</p>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s all files contained
+ contained within set that are jars and implement an extension are added
+ to extension set.</p>
+
+<h4>LibFileSet</h4>
+ <p>All files contained contained within set that are jars and implement 
+ an extension are added to extension set. However the extension information 
+ may be modified by attributes of libfileset</p>
+
+<h4>Examples</h4>
+<blockquote><pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com/myExt.jar&quot;/&gt;
+
+&lt;libfileset id="lfs"
+               includeUrl="true"
+               includeImpl="false"
+               dir="tools/lib"&gt;
+  &lt;include name="*.jar"/&gt;
+&lt;/libfileset&gt;
+
+&lt;extensionSet id="exts"&gt;
+  &lt;libfileset dir="lib"&gt;
+    &lt;include name="*.jar"/&gt;
+  &lt;/libfileset&gt;
+  &lt;libfileset refid="lfs"/&gt;
+  &lt;extension refid="e1"/&gt;
+&lt;/extensionSet&gt;
+
+</pre></blockquote>
+
+<hr>
+<p align="center">Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/antexternal.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/antexternal.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/antexternal.html	(revision 14989)
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>InputHandler</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>Using Ant Tasks Outside of Ant</h1>
+
+<h2>Rationale</h2>
+
+<p>Ant provides a rich set of tasks for buildfile creators and
+administrators.  But what about programmers?  Can the functionality
+provided by Ant tasks be used in java programs?</p>
+
+<p>Yes, and its quite easy.  Before getting into the details, however, 
+we should mention the pros and cons of this approach:
+
+<h3>Pros</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+<td><b>Robust</b></td>
+<td>
+Ant tasks are very robust.  They have been banged on by many people.
+Ant tasks have been used in many different contexts, and have
+therefore been instrumented to take care of a great many boundary
+conditions and potentially obscure errors.
+</td>
+</tr>
+<tr>
+<td><b>Cross Platform</b></td>
+<td>
+Ant tasks are cross platform.  They have been tested on all of the
+volume platforms, and several rather unusual ones (Netware and OS/390, to
+name a few).
+</td>
+</tr>
+<tr>
+<td><b>Community Support</b></td>
+<td>
+Using Ant tasks means you have less of your own code to support.  Ant
+code is supported by the entire Apache Ant community.
+</td>
+</tr>
+</table>
+
+<h3>Cons</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+<td><b>Dependency on Ant Libraries</b></td>
+<td>
+Obviously, if you use an Ant task in your code, you will have to add
+"ant.jar" to your path.  Of course, you could use a code optimizer to
+remove the unnecessary classes, but you will still probably require a
+chunk of the Ant core.
+</td>
+</tr>
+<tr>
+<td><b>Loss of Flexibility</b></td>
+<td>
+At some point, if you find yourself having to modify the Ant code, it
+probably makes more sense to "roll your own."  Of course, you can
+still steal some code snippets and good ideas.  This is the beauty of
+open source!
+</td>
+</tr>
+</table>
+
+
+<h2>Example</h2>
+
+<p>Let's say you want to unzip a zip file programmatically from java
+into a certain directory.  Of course you could write your own routine
+to do this, but why not use the Ant task that has already been written?</p>
+
+<p>In my example, I wanted to be able to unzip a file from within an
+XSLT Transformation.  XSLT Transformers can be extended by plugging in
+static methods in java.  I therefore need a function something like
+this:</p>
+
+<pre>
+/**
+ * Unzip a zip file into a given directory.
+ *
+ * @param zipFilepath A pathname representing a local zip file
+ * @param destinationDir where to unzip the archive to
+ */
+ static public void unzip(String zipFilepath, String destinationDir)
+</pre>
+
+<p>
+The Ant task to perform this function is
+<code>org.apache.tools.ant.taskdefs.Expand</code>.  All we have to do
+is create a dummy Ant <code>Project</code> and <code>Target</code>,
+set the <code>Task</code> parameters that would normally be set in a
+buildfile, and call <code>execute()</code>.</p>
+
+<p>First, let's make sure we have the proper includes:</p>
+
+<pre>
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Target;
+import org.apache.tools.ant.taskdefs.Expand;
+import java.io.File;
+</pre>
+
+<p>The function call is actually quite simple:</p>
+
+<pre>
+static public void unzip(String zipFilepath, String destinationDir) {
+
+    final class Expander extends Expand {
+        public Expander() {
+ 	    project = new Project();
+	    project.init();
+	    taskType = "unzip";
+	    taskName = "unzip";
+	    target = new Target();
+	}	
+    }
+    Expander expander = new Expander();
+    expander.setSrc(new File(zipfile));
+    expander.setDest(new File(destdir));
+    expander.execute();
+</pre>
+
+<p>In actual practice, you will probably want to add your own error
+handling code and you may not want to use a local inner class.
+However, the point of the example is to show how an Ant task can be
+called programmatically in relatively few lines of code.</p>
+
+<p>The question you are probably asking yourself at this point is:
+<i>How would I know which classes and methods have to be called in
+order to set up a dummy Project and Target?</i> The answer is: you
+don't.  Ultimately, you have to be willing to get your feet wet and
+read the source code.  The above example is merely designed to whet
+your appetite and get you started.  Go for it!</p>
+
+<hr>
+<p align="center">Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/anttaskslist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/anttaskslist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/anttaskslist.html	(revision 14989)
@@ -0,0 +1,25 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Ant Tasks</h3>
+<a href="tasksoverview.html" target="mainFrame">Overview of Ant Tasks</a><br>
+<a href="coretasklist.html" target="navFrame"><b>Core Tasks</b></a><br>
+<a href="optionaltasklist.html" target="navFrame">Optional Tasks</a><br>
+&nbsp;&nbsp;<a href="install.html#librarydependencies" target="mainFrame">
+Library Dependencies</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/base_task_classes.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/base_task_classes.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/base_task_classes.html	(revision 14989)
@@ -0,0 +1,88 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Tasks Desinged for Extension</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>Tasks Designed for Extension</h1>
+These classes are designed to be extended.  Always start here when writing your own task.
+
+<table border="1" cellpadding="2" cellspacing="0">
+<thead>
+<tr>
+<th>
+Class
+</th>
+<th>
+Description
+</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/Task.html">Task</a>
+</td>
+<td>
+Base class for all tasks.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/AbstractCvsTask.html">AbstractCvsTask</a>
+</td>
+<td>
+Another task can extend this with some customized output processing
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/JDBCTask.html">JDBCTask</a>
+</td>
+<td>
+Handles JDBC configuration needed by SQL type tasks.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/MatchingTask.html">MatchingTask</a>
+</td>
+<td>
+This is an abstract task that should be used by all those tasks that require to include or exclude files based on pattern matching.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/Pack.html">Pack</a>
+</td>
+<td>
+Abstract Base class for pack tasks.
+</td>
+</tr>
+
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/Unpack.html">Unpack</a>
+</td>
+<td>
+Abstract Base class for unpack tasks.
+</td>
+</tr>
+
+</tbody>
+</table>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/conceptstypeslist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/conceptstypeslist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/conceptstypeslist.html	(revision 14989)
@@ -0,0 +1,57 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Concepts</h3>
+<a href="sysclasspath.html">build.sysclasspath</a><br>
+<a href="CoreTasks/common.html">Common Attributes</a><br>
+
+<h3>Core Types</h3>
+<a href="CoreTypes/assertions.html">Assertions Type</a><br>
+<a href="CoreTypes/description.html">Description Type</a><br>
+<a href="dirtasks.html">Directory-based Tasks</a><br>
+<a href="CoreTypes/dirset.html">DirSet</a><br>
+<a href="CoreTypes/filelist.html">FileList</a><br>
+<a href="CoreTypes/fileset.html">FileSet</a><br>
+<a href="CoreTypes/mapper.html">File Mappers</a><br>
+<a href="CoreTypes/filterchain.html">FilterChains and FilterReaders</a><br>
+<a href="CoreTypes/filterset.html">FilterSet</a><br>
+<a href="CoreTypes/patternset.html">PatternSet</a><br>
+<a href="using.html#path">Path-like Structures</a><br>
+<a href="CoreTypes/permissions.html">Permissions</a><br>
+<a href="CoreTypes/propertyset.html">PropertySet</a><br>
+<a href="CoreTypes/redirector.html">I/O Redirectors</a><br>
+<a href="CoreTypes/selectors.html">Selectors</a><br>
+<a href="CoreTypes/xmlcatalog.html">XMLCatalog</a><br>
+<a href="CoreTypes/zipfileset.html">ZipFileSet</a><br>
+
+<h3>Optional Types</h3>
+<a href="OptionalTypes/classfileset.html">Class Fileset</a><br>
+<a href="OptionalTypes/extension.html">Extension Package</a><br>
+<a href="OptionalTypes/extensionset.html">Set of Extension Packages</a><br>
+
+<h3>Namespace</h3>
+<a href="CoreTypes/namespace.html">Namespace Support</a><br>
+<h3>Antlib</h3>
+<a href="CoreTypes/antlib.html">Antlib</a><br>
+<a href="CoreTypes/antlib.html#antlibnamespace">Antlib namespace</a><br>
+<a href="CoreTypes/antlib.html#currentnamespace">Current namespace</a><br>
+                                            
+
+<h3>Custom Components</h3>
+<a href="CoreTypes/custom-programming.html">Custom Components</a><br>
+<a href="CoreTypes/custom-programming.html#customconditions">Conditions</a><br>
+<a href="CoreTypes/custom-programming.html#customselectors">Selectors</a><br>
+<a href="CoreTypes/custom-programming.html#filterreaders">FilterReaders</a><br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/coretasklist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/coretasklist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/coretasklist.html	(revision 14989)
@@ -0,0 +1,106 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<a href="optionaltasklist.html" target="navFrame">Optional Tasks</a><br>
+<a href="tasksoverview.html" target="mainFrame">Overview of Ant Tasks</a><br>
+<a href="conceptstypeslist.html" target="navFrame">Concepts and Types</a><br>
+
+<h3>Core Tasks</h3>
+<a href="CoreTasks/ant.html">Ant</a><br>
+<a href="CoreTasks/antcall.html">AntCall</a><br>
+<a href="CoreTasks/antstructure.html">AntStructure</a><br>
+<a href="CoreTasks/apply.html">Apply/<i>ExecOn</i></a><br>
+<a href="CoreTasks/available.html">Available</a><br>
+<a href="CoreTasks/basename.html">Basename</a><br>
+<a href="CoreTasks/buildnumber.html">BuildNumber</a><br>
+<a href="CoreTasks/unpack.html">BUnzip2</a><br>
+<a href="CoreTasks/pack.html">BZip2</a><br>
+<a href="CoreTasks/checksum.html">Checksum</a><br>
+<a href="CoreTasks/chmod.html">Chmod</a><br>
+<a href="CoreTasks/concat.html">Concat</a><br>
+<a href="CoreTasks/condition.html">Condition</a><br>
+&nbsp;&nbsp;<a href="CoreTasks/conditions.html">Supported conditions</a><br>
+<a href="CoreTasks/copy.html">Copy</a><br>
+<a href="CoreTasks/copydir.html"><i>Copydir</i></a><br>
+<a href="CoreTasks/copyfile.html"><i>Copyfile</i></a><br>
+<a href="CoreTasks/cvs.html">Cvs</a><br>
+<a href="CoreTasks/changelog.html">CvsChangeLog</a><br>
+<a href="CoreTasks/cvsversion.html">CvsVersion</a><br>
+<a href="CoreTasks/cvspass.html">CVSPass</a><br>
+<a href="CoreTasks/cvstagdiff.html">CvsTagDiff</a><br>
+<a href="CoreTasks/defaultexcludes.html">Defaultexcludes</a><br>
+<a href="CoreTasks/delete.html">Delete</a><br>
+<a href="CoreTasks/deltree.html"><i>Deltree</i></a><br>
+<a href="CoreTasks/dependset.html">Dependset</a><br>
+<a href="CoreTasks/dirname.html">Dirname</a><br>
+<a href="CoreTasks/ear.html">Ear</a><br>
+<a href="CoreTasks/echo.html">Echo</a><br>
+<a href="CoreTasks/exec.html">Exec</a><br>
+<a href="CoreTasks/fail.html">Fail</a><br>
+<a href="CoreTasks/filter.html">Filter</a><br>
+<a href="CoreTasks/fixcrlf.html">FixCRLF</a><br>
+<a href="CoreTasks/genkey.html">GenKey</a><br>
+<a href="CoreTasks/get.html">Get</a><br>
+<a href="CoreTasks/unpack.html">GUnzip</a><br>
+<a href="CoreTasks/pack.html">GZip</a><br>
+<a href="CoreTasks/import.html">Import</a><br>
+<a href="CoreTasks/input.html">Input</a><br>
+<a href="CoreTasks/jar.html">Jar</a><br>
+<a href="CoreTasks/java.html">Java</a><br>
+<a href="CoreTasks/javac.html">Javac</a><br>
+<a href="CoreTasks/javadoc.html">Javadoc/<i>Javadoc2</i></a><br>
+<a href="CoreTasks/loadfile.html">LoadFile</a><br>
+<a href="CoreTasks/loadproperties.html">LoadProperties</a><br>
+<a href="CoreTasks/mail.html">Mail</a><br>
+<a href="CoreTasks/macrodef.html">MacroDef</a><br>
+<a href="CoreTasks/manifest.html">Manifest</a><br>
+<a href="CoreTasks/mkdir.html">Mkdir</a><br>
+<a href="CoreTasks/move.html">Move</a><br>
+<a href="CoreTasks/nice.html">Nice</a><br>
+<a href="CoreTasks/parallel.html">Parallel</a><br>
+<a href="CoreTasks/patch.html">Patch</a><br>
+<a href="CoreTasks/pathconvert.html">PathConvert</a><br>
+<a href="CoreTasks/presetdef.html">PreSetDef</a><br>
+<a href="CoreTasks/property.html">Property</a><br>
+<a href="CoreTasks/recorder.html">Record</a><br>
+<a href="CoreTasks/rename.html"><i>Rename</i></a><br>
+<a href="CoreTasks/replace.html">Replace</a><br>
+<a href="CoreTasks/rmic.html">Rmic</a><br>
+<a href="CoreTasks/sequential.html">Sequential</a><br>
+<a href="CoreTasks/signjar.html">SignJar</a><br>
+<a href="CoreTasks/sleep.html">Sleep</a><br>
+<a href="CoreTasks/sql.html">Sql</a><br>
+<a href="CoreTasks/style.html">Style</a><br>
+<a href="CoreTasks/subant.html">Subant</a><br>
+<a href="CoreTasks/sync.html">Sync</a><br>
+<a href="CoreTasks/tar.html">Tar</a><br>
+<a href="CoreTasks/taskdef.html">Taskdef</a><br>
+<a href="CoreTasks/tempfile.html">Tempfile</a><br>
+<a href="CoreTasks/touch.html">Touch</a><br>
+<a href="CoreTasks/tstamp.html">TStamp</a><br>
+<a href="CoreTasks/typedef.html">Typedef</a><br>
+<a href="CoreTasks/unzip.html">Unjar</a><br>
+<a href="CoreTasks/unzip.html">Untar</a><br>
+<a href="CoreTasks/unzip.html">Unwar</a><br>
+<a href="CoreTasks/unzip.html">Unzip</a><br>
+<a href="CoreTasks/uptodate.html">Uptodate</a><br>
+<a href="CoreTasks/waitfor.html">Waitfor</a><br>
+<a href="CoreTasks/war.html">War</a><br>
+<a href="CoreTasks/whichresource.html">WhichResource</a><br>
+<a href="CoreTasks/xmlproperty.html">XmlProperty</a><br>
+<a href="CoreTasks/style.html">Xslt</a><br>
+<a href="CoreTasks/zip.html">Zip</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/cover.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/cover.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/cover.html	(revision 14989)
@@ -0,0 +1,42 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant 1.6.2 User Manual</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#FFFFFF">
+<img src="../images/ant_logo_large.gif" width="190" height="120">
+  <h1>Apache Ant 1.6.2 Manual</h1>
+  <p align="left">This is the manual for version 1.6.2 of
+  <a href="http://ant.apache.org/index.html">Apache Ant</a>. 
+    If your version 
+    of Ant (as verified with <tt>ant -version</tt>) is older or newer than this 
+    version then this is not the correct manual set. Please use the documentation 
+    appropriate to your current version. Also, if you are using a version
+    older than the most recent release, we recommend an upgrade to fix bugs
+    as well as provide new functionality. </p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+<hr>
+<p>
+This set of documents is reposted from the Ant1.6.2 downloadable manual so users of AntInstaller have the exact documents
+that are relevant to the specific Ant version used in the current AntInstaller download. <br><br>
+I hope this is not illegal bearing in mind the above &copy;, presuamably copyright is reserverd for copyleft.<br><br>
+This set of documents has been modified by AntInstaller for the following reasons. 
+<ul>
+<li>Stylesheet edited for AntInstaller's Colors and fonts.</li>
+<li>Very minor HTML fixes</li>
+<li>Stylesheets links added where missing.</li>
+<li>Added links back the AntInstaller home page.</li>
+<li>Commented out some links for items not relevant to AntInstaller (such as running and installing Ant)</li>
+</ul>
+There have been no changes to the content of the documents.<br><br>
+Current official Ant documents are available <a target="_top" alt="Official Ant Documents" href="http://ant.apache.org/manual/index.html">here</a>
+
+</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/credits.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/credits.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/credits.html	(revision 14989)
@@ -0,0 +1,57 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual - Credits</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<div align="center">
+<h1>Apache Ant User Manual</h1>
+<p>by</p>
+</div>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
+  <li>Nicola Ken Barozzi (<a href="mailto:nicolaken@apache.org">nicolaken@apache.org</a>)</li>
+  <li>Jacques Bergeron (<a href="mailto:jacques.bergeron@dogico.com">jacques.bergeron@dogico.com</a>)</li>
+  <li>Stefan Bodewig (<a href="mailto:stefan.bodewig@freenet.de">stefan.bodewig@freenet.de</a>)</li>
+  <li>Patrick Chanezon (<a href="mailto:chanezon@netscape.com">chanezon@netscape.com</a>)</li>
+  <li>James Duncan Davidson (<a href="mailto:duncan@x180.com">duncan@x180.com</a>)</li>
+  <li>Tom Dimock (<a href="mailto:tad1@cornell.edu">tad1@cornell.edu</a>)</li>
+  <li>Peter Donald (<a href="mailto:donaldp@apache.org">donaldp@apache.org</a>)</li>
+  <li>dIon Gillard (<a href="mailto:dion@apache.org">dion@apache.org</a>)</li>
+  <li>Erik Hatcher (<a href="mailto:ehatcher@apache.org">ehatcher@apache.org</a>)</li>
+  <li>Diane Holt (<a href="mailto:holtdl@yahoo.com">holtdl@yahoo.com</a>)</li>
+  <li>Bill Kelly (<a href="mailto:bill.kelly@softwired-inc.com">bill.kelly@softwired-inc.com</a>)</li>
+  <li>Arnout J. Kuiper (<a href="mailto:ajkuiper@wxs.nl">ajkuiper@wxs.nl</a>)</li>
+  <li>Antoine Lévy-Lambert</li>
+  <li>Conor MacNeill</li>
+  <li>Jan Matèrne</li>
+  <li>Stefano Mazzocchi (<a href="mailto:stefano@apache.org">stefano@apache.org</a>)</li>
+  <li>Erik Meade (<a href="mailto:emeade@geekfarm.org">emeade@geekfarm.org</a>)</li>
+  <li>Peter Reilly</li>
+  <li>Sam Ruby (<a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a>)</li>
+  <li>Nico Seessle (<a href="mailto:nico@seessle.de">nico@seessle.de</a>)</li>
+  <li>Jon S. Stevens (<a href="mailto:jon@latchkey.com">jon@latchkey.com</a>)</li>
+  <li>Wolf Siberski</li>
+  <li>Magesh Umasankar</li>
+  <li>Roger Vaughn (<a href="mailto:rvaughn@seaconinc.com">rvaughn@seaconinc.com</a>)</li>
+  <li>Dave Walend (<a href="mailto:dwalend@cs.tufts.edu">dwalend@cs.tufts.edu</a>)</li>
+  <li>Phillip Wells (<a href="mailto:philwells@rocketmail.com">philwells@rocketmail.com</a>)</li>
+  <li>Christoph Wilhelms</li>
+  <li>Craeg Strong (<a href="mailto:cstrong@arielpartners.com">cstrong@arielpartners.com</a>)</li>
+</ul>
+
+<center>
+<p>Version: 1.6.2<br>
+$Id$</p>
+</center>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/develop.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/develop.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/develop.html	(revision 14989)
@@ -0,0 +1,496 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Writing Your Own Task</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>Developing with Ant</h1>
+
+<h2><a name="writingowntask">Writing Your Own Task</a></h2>
+<p>It is very easy to write your own task:</p>
+<ol>
+  <li>Create a Java class that extends <code>org.apache.tools.ant.Task</code>
+      or <a href="base_task_classes.html">another class</a> that was desgined to be extended.</li>
+  <li>For each attribute, write a <i>setter</i> method. The setter method must be a
+    <code>public void</code> method that takes a single argument. The
+    name of the method must begin with <code>set</code>, followed by the
+    attribute name, with the first character of the name in uppercase, and the rest in
+
+    lowercase<a href="#footnote-1"><sup>*</sup></a>.  That is, to support an attribute named
+    <code>file</code> you create a method <code>setFile</code>.
+    Depending on the type of the argument, Ant will perform some
+    conversions for you, see <a href="#set-magic">below</a>.</li>
+
+  <li>If your task shall contain other tasks as nested elements (like
+  <a href="CoreTasks/parallel.html"><code>parallel</code></a>), your
+  class must implement the interface
+  <code>org.apache.tools.ant.TaskContainer</code>.  If you do so, your
+  task can not support any other nested elements.  See 
+  <a href="#taskcontainer">below</a>.</li>
+
+<li>If the task should support character data (text nested between the
+start end end tags), write a <code>public void addText(String)</code>
+method.  Note that Ant does <strong>not</strong> expand properties on
+the text it passes to the task.</li>
+
+<li>For each nested element, write a <i>create</i>, <i>add</i> or
+<i>addConfigured</i> method.  A create method must be a
+<code>public</code> method that takes no arguments and returns an
+<code>Object</code> type. The name of the create method must begin
+with <code>create</code>, followed by the element name. An add (or
+addConfigured) method must be a <code>public void</code> method that
+takes a single argument of an <code>Object</code> type with a
+no-argument constructor.  The name of the add (addConfigured) method
+must begin with <code>add</code> (<code>addConfigured</code>),
+followed by the element name.  For a more complete discussion see 
+<a href="#nested-elements">below</a>.</li>
+
+<li>Write a <code>public void execute</code> method, with no arguments, that
+throws a <code>BuildException</code>. This method implements the task
+itself.</li>
+</ol>
+
+<hr>
+<p><a name="footnote-1">*</a> Actually the case of the letters after
+the first one doesn't really matter to Ant, using all lower case is a
+good convention, though.</p>
+
+<h3>The Life-cycle of a Task</h3>
+<ol>
+  <li>The task gets instantiated using a no-argument constructor, at parser
+    time. This means even tasks that are never executed get
+    instantiated.</li>
+
+  <li>The task gets references to its project and location inside the
+    buildfile via its inherited <code>project</code> and
+    <code>location</code> variables.</li>
+
+  <li>If the user specified an <code>id</code> attribute to this task,
+    the project
+    registers a reference to this newly created task, at parser
+    time.</li>
+
+  <li>The task gets a reference to the target it belongs to via its
+    inherited <code>target</code> variable.</li>
+
+  <li><code>init()</code> is called at parser time.</li>
+
+  <li>All child elements of the XML element corresponding to this task
+    are created via this task's <code>createXXX()</code> methods or
+    instantiated and added to this task via its <code>addXXX()</code>
+    methods, at parser time.</li>
+
+  <li>All attributes of this task get set via their corresponding
+    <code>setXXX</code> methods, at runtime.</li>
+
+  <li>The content character data sections inside the XML element
+    corresponding to this task is added to the task via its
+    <code>addText</code> method, at runtime.</li>
+
+  <li>All attributes of all child elements get set via their corresponding
+    <code>setXXX</code> methods, at runtime.</li>
+
+  <li><a name="execute"><code>execute()</code></a> is called at runtime. While the above initialization
+    steps only occur once, the execute() method may be
+    called more than once, if the task is invoked more than once. For example,
+    if <code>target1</code> and <code>target2</code> both depend
+    on <code>target3</code>, then running
+    <code>'ant target1 target2'</code> will run all tasks in
+    <code>target3</code> twice.</li>
+</ol>
+
+<a name="set-magic"></a><h3>Conversions Ant will perform for attributes</h3>
+
+<p>Ant will always expand properties before it passes the value of an
+attribute to the corresponding setter method.</p>
+
+<p>The most common way to write an attribute setter is to use a
+<code>java.lang.String</code> argument.  In this case Ant will pass
+the literal value (after property expansion) to your task.  But there
+is more!  If the argument of you setter method is</p>
+
+<ul>
+
+  <li><code>boolean</code>, your method will be passed the value
+  <i>true</i> if the value specified in the build file is one of
+  <code>true</code>, <code>yes</code>, or <code>on</code> and
+  <i>false</i> otherwise.</li>
+
+  <li><code>char</code> or <code>java.lang.Character</code>, your
+  method will be passed the first character of the value specified in
+  the build file.</li>
+
+  <li>any other primitive type (<code>int</code>, <code>short</code>
+  and so on), Ant will convert the value of the attribute into this
+  type, thus making sure that you'll never receive input that is not a
+  number for that attribute.</li>
+
+  <li><code>java.io.File</code>, Ant will first determine whether the
+  value given in the build file represents an absolute path name.  If
+  not, Ant will interpret the value as a path name relative to the
+  project's basedir.</li>
+
+  <li><code>org.apache.tools.ant.types.Path</code>, Ant will tokenize
+  the value specified in the build file, accepting <code>:</code> and
+  <code>;</code> as path separators.  Relative path names will be
+  interpreted as relative to the project's basedir.</li>
+
+  <li><code>java.lang.Class</code>, Ant will interpret the value
+  given in the build file as a Java class name and load the named
+  class from the system class loader.</li>
+
+  <li>any other type that has a constructor with a single
+  <code>String</code> argument, Ant will use this constructor to
+  create a new instance from the value given in the build file.</li>
+
+  <li>A subclass of
+  <code>org.apache.tools.ant.types.EnumeratedAttribute</code>, Ant
+  will invoke this classes <code>setValue</code> method.  Use this if
+  your task should support enumerated attributes (attributes with
+  values that must be part of a predefined set of values).  See
+  <code>org/apache/tools/ant/taskdefs/FixCRLF.java</code> and the
+  inner <code>AddAsisRemove</code> class used in <code>setCr</code>
+  for an example.</li>
+
+</ul>
+
+<p>What happens if more than one setter method is present for a given
+attribute?  A method taking a <code>String</code> argument will always
+lose against the more specific methods.  If there are still more
+setters Ant could chose from, only one of them will be called, but we
+don't know which, this depends on the implementation of your Java
+virtual machine.</p>
+
+<a name="nested-elements"></a><h3>Supporting nested elements</h3>
+
+<p>Let's assume your task shall support nested elements with the name
+<code>inner</code>.  First of all, you need a class that represents
+this nested element.  Often you simply want to use one of Ant's
+classes like <code>org.apache.tools.ant.types.FileSet</code> to
+support nested <code>fileset</code> elements.</p>
+
+<p>Attributes of the nested elements or nested child elements of them
+will be handled using the same mechanism used for tasks (i.e. setter
+methods for attributes, addText for nested text and
+create/add/addConfigured methods for child elements).</p>
+
+<p>Now you have a class <code>NestedElement</code> that is supposed to
+be used for your nested <code>&lt;inner&gt;</code> elements, you have
+three options:</p>
+
+<ol>
+  <li><code>public NestedElement createInner()</code></li>
+  <li><code>public void addInner(NestedElement anInner)</code></li>
+  <li><code>public void addConfiguredInner(NestedElement anInner)</code></li>
+</ol>
+
+<p>What is the difference?</p>
+
+<p>Option 1 makes the task create the instance of
+<code>NestedElement</code>, there are no restrictions on the type.
+For the options 2 and 3, Ant has to create an instance of
+<code>NestedInner</code> before it can pass it to the task, this
+means, <code>NestedInner</code> must have a <code>public</code> no-arg
+  constructor or a <code>public</code> one-arg constructor
+  taking a Project class as a parameter.
+This is the only difference between options 1 and 2.</p>
+
+<p>The difference between 2 and 3 is what Ant has done to the object
+before it passes it to the method.  <code>addInner</code> will receive
+an object directly after the constructor has been called, while
+<code>addConfiguredInner</code> gets the object <em>after</em> the
+attributes and nested children for this new object have been
+handled.</p>
+
+<p>What happens if you use more than one of the options?  Only one of
+the methods will be called, but we don't know which, this depends on
+the implementation of your Java virtual machine.</p>
+
+  <a name="nestedtype"></a><h3>Nested Types</h3>
+If your task needs to nest an arbitary type that has been defined
+  using &lt;typedef&gt; you have two options.
+  <ol>
+    <li><code>public void add(Type type)</code></li>
+    <li><code>public void addConfigured(Type type)</code></li>
+  </ol>
+  The difference between 1 and 2 is the same as between 2 and 3 in the
+  previous section.
+  <p>
+    For example suppose one wanted to handle objects object of type
+    org.apache.tools.ant.taskdefs.condition.Condition, one may
+    have a class:
+  </p>
+  <blockquote>
+  <pre>
+public class MyTask extends Task {
+    private List conditions = new ArrayList();
+    public void add(Condition c) {
+        conditions.add(c);
+    }
+    public void execute() {
+     // iterator over the conditions
+    }
+}
+  </pre>
+  </blockquote>
+  <p>
+    One may define and use this class like this:
+  </p>
+  <blockquote>
+    <pre>
+&lt;taskdef name="mytask" classname="MyTask" classpath="classes"/&gt;
+&lt;typedef name="condition.equals"
+         classname="org.apache.tools.ant.taskdefs.conditions.Equals"/&gt;
+&lt;mytask&gt;
+    &lt;condition.equals arg1="${debug}" arg2="true"/&gt;
+&lt;/mytask&gt;
+    </pre>
+  </blockquote>
+  <p>
+    A more complicated example follows:
+  </p>
+  <blockquote>
+    <pre>
+public class Sample {
+    public static class MyFileSelector implements FileSelector {
+         public void setAttrA(int a) {}
+         public void setAttrB(int b) {}
+         public void add(Path path) {}
+         public boolean isSelected(File basedir, String filename, File file) {
+             return true;
+         }
+     }
+
+    interface MyInterface {
+        void setVerbose(boolean val);
+    }        
+
+    public static class BuildPath extends Path {
+        public BuildPath(Project project) {
+            super(project);
+        }
+        
+        public void add(MyInterface inter) {}
+        public void setUrl(String url) {}
+    }
+
+    public static class XInterface implements MyInterface {
+        public void setVerbose(boolean x) {}
+        public void setCount(int c) {}
+    }
+}
+    </pre>
+  </blockquote>
+  <p>
+    This class defines a number of static classes that implement/extend
+    Path, MyFileSelector and MyInterface. These may be defined and used
+    as follows:
+  </p>
+  <pre>
+    <blockquote>
+&lt;typedef name="myfileselector" classname="Sample$MyFileSelector"
+         classpath="classes" loaderref="classes"/&gt;
+&lt;typedef name="buildpath" classname="Sample$BuildPath"
+         classpath="classes" loaderref="classes"/&gt;
+&lt;typedef name="xinterface" classname="Sample$XInterface"
+         classpath="classes" loaderref="classes"/&gt;
+
+&lt;copy todir="copy-classes"&gt;
+   &lt;fileset dir="classes"&gt;
+      &lt;myfileselector attra="10" attrB="-10"&gt;
+         &lt;buildpath path="." url="abc"&gt;
+            &lt;xinterface count="4"/&gt;
+         &lt;/buildpath&gt;
+      &lt;/myfileselector&gt;
+   &lt;/fileset&gt;
+&lt;/copy&gt;
+    </blockquote>
+  </pre>
+<a name="taskcontainer"></a><h3>TaskContainer</h3>
+
+<p>The <code>TaskContainer</code> consists of a single method,
+<code>addTask</code> that basically is the same as an <a
+href="#nested-elements">add method</a> for nested elements.  The task
+instances will be configured (their attributes and nested elements
+have been handled) when your task's <code>execute</code> method gets
+invoked, but not before that.</p>
+
+<p>When we <a href="#execute">said</a> <code>execute</code> would be
+called, we lied ;-).  In fact, Ant will call the <code>perform</code>
+method in <code>org.apache.tools.ant.Task</code>, which in turn calls
+<code>execute</code>.  This method makes sure that <a
+href="#buildevents">Build Events</a> will be triggered.  If you
+execute the task instances nested into your task, you should also
+invoke <code>perform</code> on these instances instead of
+<code>execute</code>.</p>
+
+<h3>Example</h3>
+<p>Let's write our own task, which prints a message on the
+<code>System.out</code> stream.
+The
+task has one attribute, called <code>message</code>.</p>
+<blockquote>
+<pre>
+package com.mydomain;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+public class MyVeryOwnTask extends Task {
+    private String msg;
+
+    // The method executing the task
+    public void execute() throws BuildException {
+        System.out.println(msg);
+    }
+
+    // The setter for the &quot;message&quot; attribute
+    public void setMessage(String msg) {
+        this.msg = msg;
+    }
+}
+</pre>
+</blockquote>
+<p>It's really this simple ;-)</p>
+<p>Adding your task to the system is rather simple too:</p>
+<ol>
+  <li>Make sure the class that implements your task is in the classpath when
+    starting Ant.</li>
+  <li>Add a <code>&lt;taskdef&gt;</code> element to your project.
+    This actually adds your task to the system.</li>
+  <li>Use your task in the rest of the buildfile.</li>
+</ol>
+
+
+<h3>Example</h3>
+<blockquote>
+<pre>
+&lt;?xml version=&quot;1.0&quot;?&gt;
+
+&lt;project name=&quot;OwnTaskExample&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
+  &lt;taskdef name=&quot;mytask&quot; classname=&quot;com.mydomain.MyVeryOwnTask&quot;/&gt;
+
+  &lt;target name=&quot;main&quot;&gt;
+    &lt;mytask message=&quot;Hello World! MyVeryOwnTask works!&quot;/&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+</blockquote>
+<h3>Example 2</h3>
+To use a task directly from the buildfile which created it, place the
+<code>&lt;taskdef&gt;</code> declaration inside a target
+<i>after the compilation</i>. Use the <code>classpath</code> attribute of
+<code>&lt;taskdef&gt;</code> to point to where the code has just been
+compiled.
+<blockquote>
+<pre>
+&lt;?xml version=&quot;1.0&quot;?&gt;
+
+&lt;project name=&quot;OwnTaskExample2&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;build&quot; &gt;
+    &lt;mkdir dir=&quot;build&quot;/&gt;
+    &lt;javac srcdir=&quot;source&quot; destdir=&quot;build&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;declare&quot; depends=&quot;build&quot;&gt;
+    &lt;taskdef name=&quot;mytask&quot;
+        classname=&quot;com.mydomain.MyVeryOwnTask&quot;
+        classpath=&quot;build&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;main&quot; depends=&quot;declare&quot;&gt;
+    &lt;mytask message=&quot;Hello World! MyVeryOwnTask works!&quot;/&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+</blockquote>
+
+
+<p>Another way to add a task (more permanently), is to add the task name and
+implementing class name to the <code>default.properties</code> file in the
+<code>org.apache.tools.ant.taskdefs</code>
+package. Then you can use it as if it were a built-in task.</p>
+
+<hr>
+<a name="buildevents"></a><h2>Build Events</h2>
+<P>Ant is capable of generating build events as it performs the tasks necessary to build a project.
+Listeners can be attached to Ant to receive these events. This capability could be used, for example,
+to connect Ant to a GUI or to integrate Ant with an IDE.
+</P>
+<p>To use build events you need to create an ant <code>Project</code> object. You can then call the
+<code>addBuildListener</code> method to add your listener to the project. Your listener must implement
+the <code>org.apache.tools.antBuildListener</code> interface. The listener will receive BuildEvents
+for the following events</P>
+<ul>
+<li>Build started</li>
+<li>Build finished</li>
+<li>Target started</li>
+<li>Target finished</li>
+<li>Task started</li>
+<li>Task finished</li>
+<li>Message logged</li>
+</ul>
+
+<p>If the build file invokes another build file via <a
+href="CoreTasks/ant.html">&lt;ant&gt;</a> or <a
+href="CoreTasks/subant.html">&lt;subant&gt;</a> or uses <a
+href="CoreTasks/antcall.html">&lt;antcall&gt;</a>, you are creating a
+new Ant "project" that will send target and task level events of its
+own but never sends build started/finished events.  Ant 1.6.2
+introduces an extension of the BuildListener interface named
+SubBuildListener that will receive two new events for</p>
+<ul>
+<li>SubBuild started</li>
+<li>SubBuild finished</li>
+</ul>
+<p>If you are interested in those events, all you need to do is to
+implement the new interface instead of BuildListener (and register the
+listener, of course).</p>
+
+<p>
+If you wish to attach a listener from the command line you may use the
+<code>-listener</code> option. For example:</p>
+<blockquote>
+  <pre>ant -listener org.apache.tools.ant.XmlLogger</pre>
+</blockquote>
+<p>will run Ant with a listener that generates an XML representation of the build progress. This
+listener is included with Ant, as is the default listener, which generates the logging to standard output.</p>
+
+<p><b>Note: </b>A listener must not access System.out and System.err directly since ouput on 
+these streams is redirected by Ant's core to the build event system. Accessing these 
+streams can cause an infinite loop in Ant. Depending on the version of Ant, this will
+either cause the build to terminate or the Java VM to run out of Stack space. A logger, also, may 
+not access System.out and System.err directly. It must use the streams with which it has
+been configured.
+</p>
+
+<hr>
+<a name="integration"></a><h2>Source code integration</h2>
+
+
+The other way to extend Ant through Java is to make changes to existing tasks, which is positively encouraged.
+Both changes to the existing source and new tasks can be incorporated back into the Ant codebase, which
+benefits all users and spreads the maintenance load around.
+<p>
+
+Please consult the
+<a href="http://jakarta.apache.org/site/getinvolved.html">Getting Involved</a> pages on the Jakarta web site
+for details on how to fetch the latest source and how to submit changes for reincorporation into the
+source tree.
+<p>
+Ant also has some
+<a href="http://ant.apache.org/ant_task_guidelines.html">task guidelines</a>
+which provides some advice to people developing and testing tasks. Even if you intend to
+keep your tasks to yourself, you should still read this as it should be informative.
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/developlist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/developlist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/developlist.html	(revision 14989)
@@ -0,0 +1,28 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Developing with Ant</h3>
+
+<a href="../ant_in_anger.html">Ant in Anger</a><br>
+<a href="../ant_task_guidelines.html">Ant Task Guidelines</a><br>
+<a href="develop.html#writingowntask">Writing Your Own Task</a><br>
+<a href="base_task_classes.html">Tasks Designed for Extension</a><br>
+<a href="develop.html#buildevents">Build Events</a><br>
+<a href="develop.html#integration">Source-code Integration</a><br>
+<a href="inputhandler.html">InputHandler</a><br>
+<a href="antexternal.html">Using Ant Tasks Outside of Ant</a><br>
+<br>
+<a href="tutorial-writing-tasks.html">Tutorial: Writing Tasks</a><br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/dirtasks.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/dirtasks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/dirtasks.html	(revision 14989)
@@ -0,0 +1,279 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Directory-based Tasks</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="directorybasedtasks">Directory-based Tasks</a></h2>
+<p>Some tasks use directory trees for the actions they perform.
+For example, the <a href="CoreTasks/javac.html">javac</a> task, which
+compiles a directory tree with <code>.java</code> files into
+<code>.class</code> files, is one of these directory-based tasks. Because
+some of these tasks do so much work with a directory tree, the task itself
+can act as an implicit <a href="CoreTypes/fileset.html">FileSet</a>.</p>
+<p>Whether the fileset is implicit or not, it can often be very useful to
+work on a subset of the directory tree. This section describes how you can
+select a subset of such a directory tree when using one of these
+directory-based tasks.</p>
+<p>Ant gives you two ways to create a subset of files in a fileset, both of
+which can be used at the same time:</p>
+<ul>
+  <li>Only include files and directories that match any
+    <code>include</code> patterns and do not match any
+    <code>exclude</code> patterns in a given
+    <a href="CoreTypes/patternset.html">PatternSet</a>.</li>
+  <li>Select files based on selection criteria defined by a collection of
+    <a href="CoreTypes/selectors.html">selector</a> nested elements.</li>
+</ul>
+<h3><a name="patternset">Patternset</a></h3>
+
+<p>We said that Directory-based tasks can sometimes act as an implicit
+<a href="CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>,
+but in addition to that, a FileSet acts as an implicit
+<a href="CoreTypes/patternset.html"><code>&lt;patternset&gt;</code></a>.</p>
+
+<p>The inclusion and exclusion elements of the implicit PatternSet can be
+specified inside the directory-based task (or explicit fileset) via
+either:</p>
+<ul>
+  <li>the attributes <code>includes</code> and
+    <code>excludes</code>.</li>
+  <li>nested elements <code>&lt;include&gt;</code> and
+    <code>&lt;exclude&gt;</code>.</li>
+  <li>external files specified with the attributes
+    <code>includesfile</code> and <code>excludesfile</code>.</li>
+  <li>external files specified with the nested elements
+    <code>&lt;includesfile&gt;</code> and <code>&lt;excludesfile&gt;</code>.
+  </li>
+</ul>
+When dealing with an external file, each line of the file
+is taken as a pattern that is added to the list of include or exclude
+patterns.</p>
+
+<p>When both inclusion and exclusion are used, only files/directories that
+match at least one of the include patterns and don't match any of the
+exclude patterns are used. If no include pattern is given, all files
+are assumed to match the include pattern (with the possible exception of
+the default excludes).</p>
+
+<h4><a name="patterns">Patterns</a></h4>
+
+<p>As described earlier, patterns are used for the inclusion and exclusion
+of files. These patterns look very much like the patterns used in DOS and
+UNIX:</p>
+<p>'*' matches zero or more characters, '?' matches one character.</p>
+<p><b>Examples:</b></p>
+<p>
+<code>*.java</code>&nbsp;&nbsp;matches&nbsp;&nbsp;<code>.java</code>,
+<code>x.java</code> and <code>FooBar.java</code>, but
+not <code>FooBar.xml</code> (does not end with <code>.java</code>).</p>
+<p>
+<code>?.java</code>&nbsp;&nbsp;matches&nbsp;&nbsp;<code>x.java</code>,
+<code>A.java</code>, but not <code>.java</code> or <code>xyz.java</code>
+(both don't have one character before <code>.java</code>).</p>
+<p>
+Combinations of <code>*</code>'s and <code>?</code>'s are allowed.</p>
+<p>Matching is done per-directory. This means that first the first directory in
+the pattern is matched against the first directory in the path to match. Then
+the second directory is matched, and so on. For example, when we have the pattern
+<code>/?abc/*/*.java</code>
+and the path <code>/xabc/foobar/test.java</code>,
+the first <code>?abc</code> is matched with <code>xabc</code>,
+then <code>*</code> is matched with <code>foobar</code>,
+and finally <code>*.java</code> is matched with <code>test.java</code>.
+They all match, so the path matches the pattern.</p>
+<p>To make things a bit more flexible, we add one extra feature, which makes it
+possible to match multiple directory levels. This can be used to match a
+complete directory tree, or a file anywhere in the directory tree.
+To do this, <code>**</code>
+must be used as the name of a directory.
+When <code>**</code> is used as the name of a
+directory in the pattern, it matches zero or more directories.
+For example:
+<code>/test/**</code> matches all files/directories under <code>/test/</code>,
+such as <code>/test/x.java</code>,
+or <code>/test/foo/bar/xyz.html</code>, but not <code>/xyz.xml</code>.</p>
+<p>There is one &quot;shorthand&quot; - if a pattern ends
+with <code>/</code>
+or <code>\</code>, then <code>**</code>
+is appended.
+For example, <code>mypackage/test/</code> is interpreted as if it were
+<code>mypackage/test/**</code>.</p>
+<p><b>Example patterns:</b></p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><code>**/CVS/*</code></td>
+    <td valign="top">Matches all files in <code>CVS</code>
+      directories that can be located
+      anywhere in the directory tree.<br>
+      Matches:
+      <pre>
+      CVS/Repository
+      org/apache/CVS/Entries
+      org/apache/jakarta/tools/ant/CVS/Entries
+      </pre>
+      But not:
+      <pre>
+      org/apache/CVS/foo/bar/Entries (<code>foo/bar/</code>
+      part does not match)</td>
+      </pre>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/jakarta/**</code></td>
+    <td valign="top">Matches all files in the <code>org/apache/jakarta</code>
+      directory tree.<br>
+      Matches:
+      <pre>
+      org/apache/jakarta/tools/ant/docs/index.html
+      org/apache/jakarta/test.xml
+      </pre>
+      But not:
+      <pre>
+      org/apache/xyz.java
+      </pre>
+      (<code>jakarta/</code> part is missing).</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/**/CVS/*</code></td>
+    <td valign="top">Matches all files in <code>CVS</code> directories
+      that are located anywhere in the directory tree under
+      <code>org/apache</code>.<br>
+      Matches:
+      <pre>
+      org/apache/CVS/Entries
+      org/apache/jakarta/tools/ant/CVS/Entries
+      </pre>
+      But not:
+      <pre>
+      org/apache/CVS/foo/bar/Entries
+      </pre>
+      (<code>foo/bar/</code> part does not match)</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>**/test/**</code></td>
+    <td valign="top">Matches all files that have a <code>test</code>
+        element in their path, including <code>test</code> as a filename.</td>
+  </tr>
+</table>
+<p>When these patterns are used in inclusion and exclusion, you have a powerful
+way to select just the files you want.</p>
+
+<h3><a name="selectors">Selectors</a></h3>
+<p>The <a href="CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>,
+whether implicit or explicit in the
+directory-based task, also acts as an
+<a href="CoreTypes/selectors.html#andselect"><code>&lt;and&gt;</code></a>
+selector container. This can be used to create arbitrarily complicated
+selection criteria for the files the task should work with. See the
+<a href="CoreTypes/selectors.html">Selector</a> documentation for more
+information.</p>
+
+<h3><a name="tasklist">Standard Tasks/Filesets</a></h3>
+<p>Many of the standard tasks in ant take one or more filesets which follow
+the rules given here. This list, a subset of those, is a list of standard ant
+tasks that can act as an implicit fileset:</p>
+<ul>
+  <li><a href="CoreTasks/checksum.html">&lt;checksum&gt;</a></li>
+  <li><a href="CoreTasks/copydir.html">&lt;copydir&gt;</a> (deprecated)</li>
+  <li><a href="CoreTasks/delete.html">&lt;delete&gt;</a></li>
+  <li><a href="CoreTasks/dependset.html">&lt;dependset&gt;</a></li>
+  <li><a href="CoreTasks/fixcrlf.html">&lt;fixcrlf&gt;</a></li>
+  <li><a href="CoreTasks/javac.html">&lt;javac&gt;</a></li>
+  <li><a href="CoreTasks/replace.html">&lt;replace&gt;</a></li>
+  <li><a href="CoreTasks/rmic.html">&lt;rmic&gt;</a></li>
+  <li><a href="CoreTasks/style.html">&lt;style&gt; (aka &lt;xslt&gt;)</a></li>
+  <li><a href="CoreTasks/tar.html">&lt;tar&gt;</a></li>
+  <li><a href="CoreTasks/zip.html">&lt;zip&gt;</a></li>
+  <li><a href="OptionalTasks/ejb.html#ddcreator">&lt;ddcreator&gt;</a></li>
+  <li><a href="OptionalTasks/ejb.html#ejbjar">&lt;ejbjar&gt;</a></li>
+  <li><a href="OptionalTasks/ejb.html#ejbc">&lt;ejbc&gt;</a></li>
+  <li><a href="OptionalTasks/cab.html">&lt;cab&gt;</a></li>
+  <li><a href="OptionalTasks/icontract.html">&lt;icontract&gt;</a></li>
+  <li><a href="OptionalTasks/native2ascii.html">&lt;native2ascii&gt;</a></li>
+  <li><a href="OptionalTasks/netrexxc.html">&lt;netrexxc&gt;</a></li>
+  <li>
+    <a href="OptionalTasks/renameextensions.html">&lt;renameextensions&gt;</a>
+  </li>
+  <li><a href="OptionalTasks/depend.html">&lt;depend&gt;</a></li>
+  <li><a href="OptionalTasks/dotnet.html">&lt;ilasm&gt;</a></li>
+  <li><a href="OptionalTasks/dotnet.html">&lt;csc&gt;</a></li>
+  <li><a href="OptionalTasks/dotnet.html">&lt;vbc&gt;</a></li>
+  <li><a href="OptionalTasks/translate.html">&lt;translate&gt;</a></li>
+  <li>
+    <a href="Integration/VAJAntTool.html#vajexport">&lt;vajexport&gt;</a>
+  </li>
+  <li>&lt;image&gt;</li>
+  <li><a href="OptionalTasks/jlink.html">&lt;jlink&gt;</a> (deprecated)</li>
+  <li><a href="OptionalTasks/jspc.html">&lt;jspc&gt;</a></li>
+  <li><a href="OptionalTasks/wljspc.html">&lt;wljspc&gt;</a></li>
+</ul>
+
+<h3><a name="examples">Examples</a></h3>
+<pre>
+&lt;copy todir=&quot;${dist}&quot;&gt;
+  &lt;fileset dir=&quot;${src}&quot;
+           includes=&quot;**/images/*&quot;
+           excludes=&quot;**/*.gif&quot;
+  /&gt;
+&lt;/copy&gt;</pre>
+<p>This copies all files in directories called <code>images</code> that are
+located in the directory tree defined by <code>${src}</code> to the
+destination directory defined by <code>${dist}</code>,
+but excludes all <code>*.gif</code> files from the copy.</p>
+<pre>
+&lt;copy todir=&quot;${dist}&quot;&gt;
+  &lt;fileset dir=&quot;${src}&quot;&gt;
+    &lt;include name=&quot;**/images/*&quot;/&gt;
+    &lt;exclude name=&quot;**/*.gif&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/copy&gt;
+</pre>
+<p> The same as the example above, but expressed using nested elements.</p>
+
+<pre>
+&lt;delete dir=&quot;${dist}&quot;&gt;
+    &lt;include name=&quot;**/images/*&quot;/&gt;
+    &lt;exclude name=&quot;**/*.gif&quot;/&gt;
+&lt;/delete&gt;
+</pre>
+<p>Deleting the original set of files, the <code>delete</code> task can act
+as an implicit fileset.</p>
+
+<h3><a name="defaultexcludes">Default Excludes</a></h3>
+<p>There are a set of definitions that are excluded by default from all
+directory-based tasks. They are:</p>
+<pre>
+     **/*~
+     **/#*#
+     **/.#*
+     **/%*%
+     **/._*
+     **/CVS
+     **/CVS/**
+     **/.cvsignore
+     **/SCCS
+     **/SCCS/**
+     **/vssver.scc
+     **/.svn
+     **/.svn/**
+     **/.DS_Store
+</pre>
+<p>If you do not want these default excludes applied, you may disable
+them with the <code>defaultexcludes=&quot;no&quot;</code>
+attribute.</p>
+
+<p>This is the default list, note that you can modify the list of
+default excludes by using the <a
+href="CoreTasks/defaultexcludes.html">defaultexcludes</a> task.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All
+rights Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/feedback.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/feedback.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/feedback.html	(revision 14989)
@@ -0,0 +1,61 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual - Feedback</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h1><a name="feedback">Feedback</a> and Troubleshooting</h1>
+<p>If things do not work, especially simple things like <tt>ant -version</tt>, 
+  then something is wrong with your configuration. Before filing bug reports and 
+  emailing all the ant mailing lists</p>
+<ol>
+  <li>Check your environment variables. Are ANT_HOME and JAVA_HOME correct? If 
+    they have quotes or trailing slashes, remove them.</li>
+  <li>Unset CLASSPATH; if that is wrong things go horribly wrong. Ant does not 
+    need the CLASSPATH variable defined to anything to work.</li>
+  <li>Make sure there are no versions of crimson.jar or other XML parsers in JRE/ext</li>
+  <li>Is your path correct? is Ant on it? What about JDK/bin? have you tested 
+    this? If you are using Jikes, is it on the path? A createProcess error (especially 
+    with ID=2 on windows) usually means executable not found on the path.</li>
+  <li>Which version of ant are you running? Other applications distribute a copy 
+    -it may be being picked up by accident.</li>
+  <li>If a task is failing to run is optional.jar in ANT_HOME/lib? Are there any 
+    libraries which it depends on missing?</li>
+  <li>If a task doesn't do what you expect, run <tt>ant -verbose</tt> or <tt>ant 
+    -debug</tt> to see what is happening</li>
+</ol>
+<p>If you can't fix your problem, start with the <a href="http://ant.apache.org/mail.html" target="_top">Ant 
+  User Mailing List</a> . These are other ant users who will help you learn to 
+  use ant. If they cannot fix it then someone may suggest filing a bug report, 
+  which will escalate the issue. Remember of course, that support, like all open 
+  source development tasks, is voluntary. If you haven't invested time in helping 
+  yourself by following the steps above, it is unlikely that anyone will invest 
+  the time in helping you. </p>
+<p>Also, if you don't understand something, the <a href="http://ant.apache.org/mail.html" target="_top">Ant 
+  User Mailing List</a> is the place to ask questions. Not the developer list, 
+  nor the individuals whose names appears in the source and documentation. If 
+  they answered all such emails, nobody would have any time to improve ant. </p>
+<p>To provide feedback on this software, please subscribe to the <a href="http://ant.apache.org/mail.html" target="_top">Ant 
+  User Mailing List</a> </p>
+
+<p>If you want to contribute to Ant or stay current with the latest
+development, join the
+<a href="http://ant.apache.org/mail.html" target="_top">Ant Development Mailing List</a>
+</p>
+<p>Archives of both lists can be found at <a
+href="http://archive.covalent.net/" target="_top">http://archive.covalent.net/</a>. Many
+thanks to Covalent Technologies. A searchable archive can be found at <a
+href="http://marc.theaimsgroup.com" target="_top">http://marc.theaimsgroup.com</a>. If
+you know of any additional archive sites, please report them to the
+lists.</p>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/ide.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/ide.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/ide.html	(revision 14989)
@@ -0,0 +1,97 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>IDE Integration</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>IDE Integration</h3>
+<p>
+All the modern Java IDEs support Ant almost out of the box.
+</p>
+
+<ul>
+  <li>
+    <a href="Integration/Antidote.html">
+      Antidote (in development)
+    </a>
+  </li>
+  <li>
+    <a href="http://antrunner.sourceforge.net/">
+      AntRunner For JBuilder (unbundled)
+    </a>
+  </li>
+  <li>
+    <a href="Integration/jext-plugin.html">
+      AntWork Plugin for the Jext - Java Text Editor (unbundled)
+    </a>
+  </li>
+  <li>
+    <a href="http://jdee.sunsite.dk/">
+      JDEE (Java Development Environment for Emacs)
+    </a> has built-in text ANT integration: selection of target through text
+    field, execution, hyperlink to compilation errors. Installation: built-in
+    JDEE 2.2.8 or later. Configuration: through customize menu
+    "Jde Build Function"
+  </li>
+  <li>
+    <a href="http://www.intellij.com/idea/">
+      IDEA
+    </a> has built-in GUI ANT integration: GUI selection of targets, execution,
+    hyperlink to compilation errors
+  </li>
+  <li>
+    <a href="http://ant.netbeans.org/">
+      NetBeans
+    </a>
+    NetBeans 3.4 has very good Ant integration indeed.
+  </li>
+  <li>
+    <a href="http://jedit.org/">
+      jEdit
+    </a>
+    jEdit is an open source java IDE with some great plugins for Java dev, a
+    good XML editor and the Antfarm plugin to execute targets in a build
+    file.
+  </li>
+  <li>
+    <a href="http://eclipse.org/">
+      Eclipse
+    </a>
+    Eclipse is IBM's counterpoint to NetBeans; an open source IDE with
+    Java and Ant support.
+  </li>
+  <li>
+    <a href="Integration/VAJAntTool.html">
+      VisualAge for Java</a>
+  </li>
+  <li>
+    <a href="http://www7b.software.ibm.com/wsdd/library/techarticles/0203_searle/searle1.html">
+      WebSphere Studio Application Developer
+    </a>
+  </li>
+  <li>
+    <a href="http://www.borland.com/jbuilder/pdf/jb9_feamatrix.pdf">
+      JBuilder 9 Personal
+    </a>
+    JBuilder supports Ant with the following features. Add Ant nodes to
+    projects and execute Ant targets from within JBuilder. Add custom Ant-based
+    build tasks with custom Ant libraries to run Ant from within JBuilder.
+    Rapid navigation from Ant build error messages to source files.
+    Customize build menu and toolbar with custom build targets.
+  </li>
+</ul>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/index.html	(revision 14989)
@@ -0,0 +1,19 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+<link rel="SHORTCUT ICON" href="favicon.ico" />
+</head>
+
+<frameset cols="26%,74%">
+<frame src="toc.html" name="navFrame">
+<frame src="cover.html" name="mainFrame">
+</frameset>
+<noframes>
+<H2>Apache Ant User Manual</H2>
+
+<a href="toc.html">Apache Ant User Manual</a></noframes>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/inputhandler.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/inputhandler.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/inputhandler.html	(revision 14989)
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>InputHandler</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>InputHandler</h1>
+
+<h2>Overview</h2>
+
+<p>When a task wants to prompt a user for input, it doesn't simply
+read the input from the console as this would make it impossible to
+embed Ant in an IDE.  Instead it asks an implementation of the
+<code>org.apache.tools.ant.input.InputHandler</code> interface to
+prompt the user and hand the user input back to the task.</p>
+
+<p>To do this, the task creates an <code>InputRequest</code> object
+and passes it to the <code>InputHandler</code> Such an
+<code>InputRequest</code> may know whether a given user input is valid
+and the <code>InputHandler</code> is supposed to reject all invalid
+input.</p>
+
+<p>Exactly one <code>InputHandler</code> instance is associated with
+every Ant process, users can specify the implementation using the
+<code>-inputhandler</code> command line switch.</p>
+
+<h2>InputHandler</h2>
+
+<p>The <code>InputHandler</code> interface contains exactly one
+method</p>
+
+<pre>
+    void handleInput(InputRequest request) 
+        throws org.apache.tools.ant.BuildException;
+</pre>
+
+<p>with some pre- and postconditions.  The main postcondition is that
+this method must not return unless the <code>request</code> considers
+the user input valid, it is allowed to throw an exception in this
+situation.</p>
+
+<p>Ant comes with two built-in implementations of this interface:</p>
+
+<h3><a name="defaulthandler">DefaultInputHandler</a></h3>
+
+<p>This is the implementation you get, when you don't use the
+<code>-inputhandler</code> command line switch at all.  This
+implementation will print the prompt encapsulated in the
+<code>request</code> object to Ant's logging system and re-prompt for
+input until the user enters something that is considered valid input
+by the <code>request</code> object.  Input will be read from the
+console and the user will need to press the Return key.</p>
+
+<h3>PropertyFileInputHandler</h3>
+
+<p>This implementation is useful if you want to run unattended build
+processes.  It reads all input from a properties file and makes the
+build fail if it cannot find valid input in this file.  The name of
+the properties file must be specified in the Java system property
+<code>ant.input.properties</code>.</p>
+
+<p>The prompt encapsulated in a <code>request</code> will be used as
+the key when looking up the input inside the properties file.  If no
+input can be found, the input is considered invalid and an exception
+will be thrown.</p>
+
+<p><strong>Note</strong> that <code>ant.input.properties</code> must
+be a Java system property, not an Ant property.  I.e. you cannot
+define it as a simple parameter to <code>ant</code>, but you can
+define it inside the <code>ANT_OPTS</code> environment variable.</p>
+
+<h2>InputRequest</h2>
+
+<p>Instances of <code>org.apache.tools.ant.input.InputRequest</code>
+encapsulate the information necessary to ask a user for input and
+validate this input.</p>
+
+<p>The instances of <code>InputRequest</code> itself will accept any
+input, but subclasses may use stricter validations.
+<code>org.apache.tools.ant.input.MultipleChoiceInputRequest</code>
+should be used if the user input must be part of a predefined set of
+choices.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/install.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/install.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/install.html	(revision 14989)
@@ -0,0 +1,483 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Installing Ant</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>Installing Ant</h1>
+<h2><a name="getting">Getting Ant</a></h2>
+<h3>Binary Edition</h3>
+<p>The latest stable version of Ant is available from the Ant web page <a
+href="http://ant.apache.org/">http://ant.apache.org/</a>.
+
+If you like living on the edge, you can download the latest version from <a
+href="http://cvs.apache.org/builds/ant/nightly/">http://cvs.apache.org/builds/ant/nightly/</a>.</p>
+<h3>Source Edition</h3>
+
+<p>If you prefer the source edition, you can download the source for the latest Ant release from <a href="http://ant.apache.org/srcdownload.cgi">http://ant.apache.org/srcdownload.cgi</a>.
+
+Again, if you prefer the edge, you can access
+the code as it is being developed via CVS. The Jakarta website has details on
+<a href="http://jakarta.apache.org/site/cvsindex.html" target="_top">accessing CVS</a>. Please checkout the
+ant module.
+
+See the section <a href="#buildingant">Building Ant</a> on how to
+build Ant from the source code.
+You can also access the
+<a href="http://cvs.apache.org/viewcvs/ant/" target="_top">
+Ant CVS repository</a> on-line. </p>
+
+<hr>
+<h2><a name="sysrequirements">System Requirements</a></h2>
+Ant has been used successfully on many platforms, including Linux,
+commercial flavours of Unix such as Solaris and HP-UX,
+Windows 9x and NT, OS/2 Warp, Novell Netware 6 and MacOS X.
+<p>
+To build and use Ant, you must have a JAXP-compliant XML parser installed and
+available on your classpath.</p>
+<p>
+The binary distribution of Ant includes the latest version of the
+<a href="http://xml.apache.org/xerces2-j/index.html">Apache Xerces2</a> XML parser.
+Please see
+<a href="http://java.sun.com/xml/" target="_top">http://java.sun.com/xml/</a>
+for more information about JAXP.
+If you wish to use a different JAXP-compliant parser, you should remove
+<code>xercesImpl.jar</code> and <code>xml-apis.jar</code>
+from Ant's <code>lib</code> directory.
+
+You can then either put the jars from your preferred parser into Ant's
+<code>lib</code> directory or put the jars on the system classpath.</p>
+
+<p>
+For the current version of Ant, you will also need a JDK installed on
+your system, version 1.2 or later.
+</p><p>
+<strong>Note: </strong>The Microsoft JVM/JDK is not supported.
+</p>
+<p>
+<strong>Note #2: </strong>If a JDK is not present, only the JRE runtime, then many tasks will not work.
+</p>
+<hr>
+<h2><a name="installing">Installing Ant</a></h2>
+<p>The binary distribution of Ant consists of the following directory layout:
+<pre>
+  ant
+   +--- bin  // contains launcher scripts
+   |
+   +--- lib  // contains Ant jars plus necessary dependencies
+   |
+   +--- docs // contains documentation
+   |      +--- ant2    // a brief description of ant2 requirements
+   |      |
+   |      +--- images  // various logos for html documentation
+   |      |
+   |      +--- manual  // Ant documentation (a must read ;-)
+   |
+   +--- etc // contains xsl goodies to:
+            //   - create an enhanced report from xml output of various tasks.
+            //   - migrate your build files and get rid of 'deprecated' warning
+            //   - ... and more ;-)
+</pre>
+
+Only the <code>bin</code> and <code>lib</code> directories are
+required to run Ant.
+
+To install Ant, choose a directory and copy the distribution
+file there. This directory will be known as ANT_HOME.
+</p>
+
+<table width="80%">
+<tr>
+  <td colspan="2">
+    <b>Windows 95, Windows 98 &amp; Windows ME Note:</b>
+  </td>
+</tr>
+<tr>
+  <td width="5%">&nbsp;</td>
+  <td><i>
+On these systems, the script used to launch Ant will have
+problems if ANT_HOME is a long filename (i.e. a filename which is not
+of the format known as &quot;8.3&quot;). This is due to
+limitations in the OS's handling of the <code>&quot;for&quot;</code>
+batch-file statement. It is recommended, therefore, that Ant be
+installed in a <b>short</b>, 8.3 path, such as C:\Ant. </i>
+  </td>
+</tr>
+<tr>
+  <td width="5%">&nbsp;</td>
+  <td>
+    <p>On these systems you will also need to configure more environment
+       space to cater for the environment variables used in the Ant lauch script.
+       To do this, you will need to add or update the following line in
+       the <code>config.sys</code> file
+    </p>
+    <p><code>shell=c:\command.com c:\ /p /e:32768</code></p>
+  </td>
+</tr>
+</table>
+
+<h3>Setup</h3>
+<p>
+Before you can run ant there is some additional set up you
+will need to do:</p>
+<ul>
+<li>Add the <code>bin</code> directory to your path.</li>
+<li>Set the <code>ANT_HOME</code> environment variable to the
+directory where you installed Ant.  On some operating systems the ant
+wrapper scripts can guess <code>ANT_HOME</code> (Unix dialects and
+Windows NT/2000) - but it is better to not rely on this behavior.</li>
+<li>Optionally, set the <code>JAVA_HOME</code> environment variable
+(see the <a href="#advanced">Advanced</a> section below).
+This should be set to the directory where your JDK is installed.</li>
+</ul>
+<p><strong>Note:</strong> Do not install Ant's ant.jar file into the lib/ext
+directory of the JDK/JRE. Ant is an application, whilst the extension
+directory is intended for JDK extensions. In particular there are security
+restrictions on the classes which may be loaded by an extension.</p>
+
+<h3><a name="optionalTasks">Optional Tasks</a></h3>
+<p>Ant supports a number of optional tasks. An optional task is a task which
+typically requires an external library to function. The optional tasks are
+packaged together with the core Ant tasks.</p>
+
+<p>The external libraries required by each of the optional tasks is detailed
+in the <a href="#librarydependencies">Library Dependencies</a> section. These external
+libraries may either be placed in Ant's lib directory, where they will be picked up
+automatically, or made available on the system CLASSPATH environment variable.
+</p>
+
+<h3>Windows and OS/2</h3>
+<p>Assume Ant is installed in <code>c:\ant\</code>. The following sets up the
+environment:</p>
+<pre>set ANT_HOME=c:\ant
+set JAVA_HOME=c:\jdk1.2.2
+set PATH=%PATH%;%ANT_HOME%\bin</pre>
+
+<h3>Unix (bash)</h3>
+<p>Assume Ant is installed in <code>/usr/local/ant</code>. The following sets up
+the environment:</p>
+<pre>export ANT_HOME=/usr/local/ant
+export JAVA_HOME=/usr/local/jdk-1.2.2
+export PATH=${PATH}:${ANT_HOME}/bin</pre>
+
+<h3>Unix (csh)</h3>
+<pre>setenv ANT_HOME /usr/local/ant
+setenv JAVA_HOME /usr/local/jdk-1.2.2
+set path=( $path $ANT_HOME/bin )</pre>
+
+
+<h3><a name="advanced">Advanced</a></h3>
+
+<p>There are lots of variants that can be used to run Ant. What you need is at
+least the following:</p>
+<ul>
+<li>The classpath for Ant must contain <code>ant.jar</code> and any jars/classes
+needed for your chosen JAXP-compliant XML parser.</li>
+<li>When you need JDK functionality
+(such as for the <a href="CoreTasks/javac.html">javac</a> task or the
+<a href="CoreTasks/rmic.html">rmic</a> task), then for JDK 1.1, the <code>classes.zip</code>
+file of the JDK must be added to the classpath; for JDK 1.2 or JDK 1.3, <code>tools.jar</code>
+must be added. The scripts supplied with Ant,
+in the <code>bin</code> directory, will add
+the required JDK classes automatically, if the <code>JAVA_HOME</code>
+environment variable is set.</li>
+
+<li>When you are executing platform-specific applications, such as the
+<a href="CoreTasks/exec.html">exec</a> task or the
+<a href="CoreTasks/cvs.html">cvs</a> task, the property <code>ant.home</code>
+must be set to the directory containing where you installed Ant. Again
+this is set by the Ant scripts to the value of the ANT_HOME environment
+variable.</li>
+</ul>
+The supplied ant shell scripts all support an <tt>ANT_OPTS</tt>
+environment variable which can be used to supply extra options
+to ant. Some of the scripts also read in an extra script stored
+in the users home directory, which can be used to set such options. Look
+at the source for your platform's invocation script for details.
+
+<hr>
+<h2><a name="buildingant">Building Ant</a></h2>
+<p>To build Ant from source, you can either install the Ant source distribution
+or checkout the ant module from CVS.</p>
+<p>Once you have installed the source, change into the installation
+directory.</p>
+
+<p>Set the <code>JAVA_HOME</code> environment variable
+to the directory where the JDK is installed.
+See <a href="#installing">Installing Ant</a>
+for examples on how to do this for your operating system. </p>
+
+<p>Make sure you have downloaded any auxiliary jars required to
+build tasks you are interested in. These should either be available
+on the CLASSPATH or added to the <code>lib</code>
+directory.
+See <a href="#librarydependencies">Library Dependencies</a>
+for a list of jar requirements for various features.
+Note that this will make the auxiliary jars
+available for the building of Ant only. For running Ant you will
+still need to
+make the jars available as described under
+<a href="#installing">Installing Ant</a>.</p>
+
+<p>Your are now ready to build Ant:</p>
+<blockquote>
+  <p><code>build -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
+  <p><code>build.sh -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
+</blockquote>
+
+<p>This will create a binary distribution of Ant in the directory you specified.</p>
+
+<p>The above action does the following:</p>
+<ul>
+
+<li>If necessary it will bootstrap the Ant code. Bootstrapping involves the manual
+compilation of enough Ant code to be able to run Ant. The bootstrapped Ant is
+used for the remainder of the build steps. </li>
+
+<li>Invokes the bootstrapped Ant with the parameters passed to the build script. In
+this case, these parameters define an Ant property value and specify the &quot;dist&quot; target
+in Ant's own <code>build.xml</code> file.</li>
+</ul>
+
+<p>On most occasions you will not need to explicitly bootstrap Ant since the build
+scripts do that for you. If however, the build file you are using makes use of features
+not yet compiled into the bootstrapped Ant, you will need to manually bootstrap.
+Run <code>bootstrap.bat</code> (Windows) or <code>bootstrap.sh</code> (UNIX)
+to build a new bootstrap version of Ant.</p>
+
+If you wish to install the build into the current <code>ANT_HOME</code>
+directory, you can use:
+<blockquote>
+  <p><code>build install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
+  <p><code>build.sh install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
+</blockquote>
+
+You can avoid the lengthy Javadoc step, if desired, with:
+<blockquote>
+  <p><code>build install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
+  <p><code>build.sh install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
+</blockquote>
+This will only install the <code>bin</code> and <code>lib</code> directories.
+<p>Both the <code>install</code> and
+<code>install-lite</code> targets will overwrite
+the current Ant version in <code>ANT_HOME</code>.</p>
+
+<hr>
+<h2><a name="librarydependencies">Library Dependencies</a></h2>
+<p>The following libraries are needed in your CLASSPATH or in the
+install directory's <code>lib</code> directory if you are using the
+indicated feature. Note that only one of the regexp libraries is
+needed for use with the mappers
+(and Java 1.4 and higher includes a regexp implementation which
+Ant will find automatically).
+You will also need to install the
+Ant optional jar containing the task definitions to make these
+tasks available. Please refer to the <a href="#optionalTasks">
+Installing Ant / Optional Tasks</a> section above.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Jar Name</b></td>
+    <td><b>Needed For</b></td>
+    <td><b>Available At</b></td>
+  </tr>
+  <tr>
+    <td>An XSL transformer like Xalan or XSL:P</td>
+    <td>style task</td>
+    <td>
+    <b>If you use JDK 1.4, an XSL transformer is already included, so you need not do anything special.</b><br>
+    <ul><li>XALAN : <a href="http://xml.apache.org/xalan-j/index.html"
+    target="_top">http://xml.apache.org/xalan-j/index.html</a></li>
+    <li>XSL:P : used to live at <a href="http://www.clc-marketing.com/xslp/"
+    target="_top">http://www.clc-marketing.com/xslp/</a>, but the link
+    doesn't work any longer and we are not aware of a replacement site.</li></ul>
+    </td>
+  </tr>
+  <tr>
+    <td>jakarta-regexp-1.3.jar</td>
+    <td>regexp type with mappers</td>
+    <td><a href="http://jakarta.apache.org/regexp/" target="_top">http://jakarta.apache.org/regexp/</a></td>
+  </tr>
+  <tr>
+    <td>jakarta-oro-2.0.7.jar</td>
+    <td>regexp type with mappers and the perforce tasks<br>
+    To use the FTP task,
+you need jakarta-oro 2.0.1 or later, and <a href="#commons-net">commons-net</a></td>
+    <td><a href="http://jakarta.apache.org/oro/" target="_top">http://jakarta.apache.org/oro/</a></td>
+  </tr>
+  <tr>
+    <td>junit.jar</td>
+    <td>junit tasks</td>
+    <td><a href="http://www.junit.org/" target="_top">http://www.junit.org/</a></td>
+  </tr>
+  <tr>
+    <td>xalan.jar</td>
+    <td>junitreport task</td>
+    <td><a href="http://xml.apache.org/xalan-j/" target="_top">http://xml.apache.org/xalan-j/</a></td>
+  </tr>
+  <tr>
+    <td>stylebook.jar</td>
+    <td>stylebook task</td>
+    <td>CVS repository of <a href="http://xml.apache.org/" target="_top">http://xml.apache.org/</a></td>
+  </tr>
+  <tr>
+    <td>testlet.jar</td>
+    <td><strong>deprecated</strong> test task</td>
+    <td>Build from the gzip compress tar archive in <a
+    href="http://avalon.apache.org/historiccvs/testlet/"
+    target="_top">http://avalon.apache.org/historiccvs/testlet/</a></td>
+  </tr>
+  <tr>
+    <td>antlr.jar</td>
+    <td>antlr task</td>
+    <td><a href="http://www.antlr.org/" target="_top">http://www.antlr.org/</a></td>
+  </tr>
+  <tr>
+    <td >bsf.jar</td>
+    <td>script task<br/>
+    <strong>Note</strong>: Ant 1.6 and later require Apache BSF, not
+    the IBM version.  I.e. you need BSF 2.3.0-rc1 or later.</td>
+    <td><a href="http://jakarta.apache.org/bsf/" target="_top">http://jakarta.apache.org/bsf/</a></td>
+  </tr>
+  <tr>
+    <td>netrexx.jar</td>
+    <td>netrexx task, Rexx with the script task</td>
+    <td><a href="http://www2.hursley.ibm.com/netrexx/" target="_top">
+        http://www2.hursley.ibm.com/netrexx/</a></td>
+  </tr>
+  <tr>
+    <td>js.jar</td>
+    <td>Javascript with script task<br/>
+    If you use Apache BSF 2.3.0-rc1, you must use rhino 1.5R3 - later
+    versions of BSF work with 1.5R4 as well.</td>
+    <td><a href="http://www.mozilla.org/rhino/" target="_top">http://www.mozilla.org/rhino/</a></td>
+  </tr>
+  <tr>
+    <td>jython.jar</td>
+    <td>Python with script task</td>
+    <td><a href="http://jython.sourceforge.net/" target="_top">http://jython.sourceforge.net/</a></td>
+  </tr>
+  <tr>
+    <td>jpython.jar</td>
+    <td>Python with script task <b>deprecated, jython is the prefered engine</b></td>
+    <td><a href="http://www.jpython.org/" target="_top">http://www.jpython.org/</a></td>
+  </tr>
+  <tr>
+    <td>jacl.jar and tcljava.jar</td>
+    <td>TCL with script task</td>
+    <td><a href="http://www.scriptics.com/software/java/" target="_top">http://www.scriptics.com/software/java/</a></td>
+  </tr>
+  <tr>
+    <td>BeanShell JAR(s)</td>
+    <td>BeanShell with script task.
+      <br/>
+    <strong>Note</strong>: Ant 1.6 and later require BeanShell version 1.3 or
+      later</td>
+    <td><a href="http://www.beanshell.org/" target="_top">http://www.beanshell.org/</a></td>
+  </tr>
+  <tr>
+    <td>jruby.jar</td>
+    <td>Ruby with script task</td>
+    <td><a href="http://jruby.sourceforge.net/" target="_top">http://jruby.sourceforge.net/</a></td>
+  </tr>
+  <tr>
+    <td>judo.jar</td>
+    <td>Judoscript with script task</td>
+    <td><a href="http://www.judoscript.com/index.html" target="_top">http://www.judoscript.com/index.html</a></td>
+  </tr>
+  <tr>
+    <td>commons-logging.jar</td>
+    <td>CommonsLoggingListener</td>
+    <td><a href="http://jakarta.apache.org/commons/logging/index.html"
+           target="_top">http://jakarta.apache.org/commons/logging/index.html</a></td>
+  </tr>
+  <tr>
+    <td>log4j.jar</td>
+    <td>Log4jListener</td>
+    <td><a href="http://jakarta.apache.org/log4j/docs/index.html"
+           target="_top">http://jakarta.apache.org/log4j/docs/index.html</a></td>
+  </tr>
+  <tr>
+    <td><a name="commons-net">commons-net.jar</td>
+    <td>ftp, rexec and telnet tasks<br>
+    jakarta-oro 2.0.1 or later is required in any case together with commons-net.<br>
+    For all users, a minimum version of commons-net of 1.2.2 is recommended.  Earlier 
+    versions did not support autodetection of system type or had significant bugs.
+    </td>
+    <td><a href="http://jakarta.apache.org/commons/net/index.html"
+           target="_top">http://jakarta.apache.org/commons/net/index.html</a></td>
+  </tr>
+  <tr>
+    <td>bcel.jar</td>
+    <td>classfileset data type,
+        JavaClassHelper used by the ClassConstants filter reader and
+        optionally used by ejbjar for dependency determination
+    </td>
+    <td><a href="http://jakarta.apache.org/bcel/" target="_top">http://jakarta.apache.org/bcel/</a></td>
+  </tr>
+  <tr>
+    <td>mail.jar</td>
+    <td>Mail task with Mime encoding, and the MimeMail task</td>
+    <td><a href="http://java.sun.com/products/javamail/"
+        target="_top">http://java.sun.com/products/javamail/</a></td>
+  </tr>
+  <tr>
+    <td>jsse.jar</td>
+    <td>
+Support for SMTP over TLS/SSL <br/>
+in the Mail task<br/>
+Already included in jdk 1.4</td>
+    <td><a href="http://java.sun.com/products/jsse/"
+        target="_top">http://java.sun.com/products/jsse/</a></td>
+  </tr>
+  <tr>
+    <td>activation.jar</td>
+    <td>Mail task with Mime encoding, and the MimeMail task</td>
+    <td><a href="http://java.sun.com/products/javabeans/glasgow/jaf.html"
+        target="_top">http://java.sun.com/products/javabeans/glasgow/jaf.html</a></td>
+  </tr>
+  <tr>
+    <td>jdepend.jar</td>
+    <td>jdepend task</td>
+    <td><a href="http://www.clarkware.com/software/JDepend.html"
+        target="_top">http://www.clarkware.com/software/JDepend.html</a></td>
+  </tr>
+  <tr>
+    <td>resolver.jar <b>1.1beta or later</b></td>
+    <td>xmlcatalog datatype <em>only if support for external catalog files is desired</em></td>
+    <td><a href="http://xml.apache.org/commons/"
+    target="_top">http://xml.apache.org/commons/</a>.</td>
+  </tr>
+  <tr>
+    <td>jsch.jar</td>
+    <td>sshexec and scp tasks</td>
+    <td><a href="http://www.jcraft.com/jsch/index.html"
+        target="_top">http://www.jcraft.com/jsch/index.html</a></td>
+  </tr>
+  <tr>
+    <td>JAI - Java Advanded Imaging</td>
+    <td>image task</td>
+    <td><a href="http://java.sun.com/products/java-media/jai/"
+        target="_top">http://java.sun.com/products/java-media/jai/</a></td>
+  </tr>
+  <tr>
+    <td>IContract</td>
+    <td>icontract task<br/>
+    Warning : the icontract jar file contains also antlr classes.<br/>
+    To make the antlr task work properly, remove antlr/ANTLRGrammarParseBehavior.class
+    from the icontract jar file installed under $ANT_HOME/lib.</td>
+    <td><a href="http://www.reliable-systems.com/tools/"
+    target="_top">http://www.reliable-systems.com/tools/</a></td>
+  </tr>
+</table>
+<br>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/installlist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/installlist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/installlist.html	(revision 14989)
@@ -0,0 +1,26 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Installing Ant</h3>
+<p><a href="install.html#getting">Getting Ant</a><br>
+  <a href="install.html#sysrequirements">System Requirements</a><br>
+  <a href="install.html#installing">Installing Ant</a><br>
+  <a href="install.html#buildingant">Building Ant</a><br>
+  <a href="install.html#librarydependencies">Library Dependencies</a><br>
+  <a href="platform.html">Platform Specific Issues</a><br>
+</p>
+<p><br>
+</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/intro.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/intro.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/intro.html	(revision 14989)
@@ -0,0 +1,55 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual - Introduction</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1><a name="introduction">Introduction</a></h1>
+<p>Apache Ant is a Java-based build tool. In theory, it is kind of like
+<i>make</i>, without <i>make</i>'s wrinkles.</p>
+<h3>Why?</h3>
+<p>Why another build tool when there is already
+<i>make</i>,
+<i>gnumake</i>,
+<i>nmake</i>,
+<i>jam</i>,
+and
+others? Because all those tools have limitations that Ant's original author
+couldn't live with when developing software across multiple platforms.
+Make-like
+tools are inherently shell-based: they evaluate a set of dependencies,
+then execute commands not unlike what you would issue on a shell.
+This means that you
+can easily extend these tools by using or writing any program for the OS that
+you are working on; however, this also means that you limit yourself to the OS,
+or at least the OS type, such as Unix, that you are working on.</p>
+<p>Makefiles are inherently evil as well. Anybody who has worked on them for any
+time has run into the dreaded tab problem. &quot;Is my command not executing
+because I have a space in front of my tab?!!&quot; said the original author of
+Ant way too many times. Tools like Jam took care of this to a great degree, but
+still have yet another format to use and remember.</p>
+<p>Ant is different. Instead of a model where it is extended with shell-based
+commands, Ant is extended using Java classes. Instead of writing shell commands,
+the configuration files are XML-based, calling out a target tree where various
+tasks get executed. Each task is run by an object that implements a particular
+Task interface.</p>
+<p>Granted, this removes some of the expressive power that is inherent in being
+able to construct a shell command such as
+<nobr><code>`find . -name foo -exec rm {}`</code></nobr>, but it
+gives you the ability to be cross-platform - to work anywhere and
+everywhere. And
+hey, if you really need to execute a shell command, Ant has an
+&lt;exec&gt; task that
+allows different commands to be executed based on the OS it is executing
+on.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/listeners.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/listeners.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/listeners.html	(revision 14989)
@@ -0,0 +1,346 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Listeners &amp; Loggers</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>Listeners &amp; Loggers</h1>
+
+<h2><a name="Overview">Overview</a></h2>
+
+<p>Ant has two related features to allow the build process to be monitored:
+listeners and loggers.</p>
+
+<h3><a name="Listeners">Listeners</a></h3>
+
+<p>A listener is alerted of the following events:</p>
+
+<ul>
+  <li>build started</li>
+  <li>build finished</li>
+  <li>target started</li>
+  <li>target finished</li>
+  <li>task started</li>
+  <li>task finished</li>
+  <li>message logged</li>
+</ul>
+
+<h3><a name="Loggers">Loggers</a></h3>
+
+<p>Loggers extend the capabilities of listeners and add the following features:</p>
+
+<ul>
+  <li>Receives a handle to the standard output and error print streams and
+  therefore can log information to the console or the -logfile specified file.</li>
+  <li>Logging level (-quiet, -verbose, -debug) aware</li>
+  <li>Emacs-mode aware</li>
+</ul>
+
+<h2><a name="builtin">Built-in Listeners/Loggers</a></h2>
+
+<table border="1" cellspacing="1" width="100%" id="AutoNumber1">
+  <tr>
+    <td width="33%">Classname</td>
+    <td width="33%">Description</td>
+    <td width="34%">Type</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#DefaultLogger">org.apache.tools.ant.DefaultLogger</a></code></td>
+    <td width="33%">The logger used implicitly unless overridden with the
+    <code>-logger</code> command-line switch.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#NoBannerLogger">
+    org.apache.tools.ant.NoBannerLogger</a></code></td>
+    <td width="33%">This logger omits output of empty target output.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#MailLogger">
+    org.apache.tools.ant.listener.MailLogger</a></code></td>
+    <td width="33%">Extends DefaultLogger such that output is still generated
+    the same, and when the build is finished an e-mail can be sent.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#AnsiColorLogger">
+    org.apache.tools.ant.listener.AnsiColorLogger</a></code></td>
+    <td width="33%">Colorifies the build output.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#Log4jListener">
+    org.apache.tools.ant.listener.Log4jListener</a></code></td>
+    <td width="33%">Passes events to Log4j for highly customizable logging.</td>
+    <td width="34%">BuildListener</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#XmlLogger">org.apache.tools.ant.XmlLogger</a></code></td>
+    <td width="33%">Writes the build information to an XML file.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+</table>
+<h3><a name="DefaultLogger">DefaultLogger</a></h3>
+
+<p>Simply run Ant normally, or:</p>
+
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.DefaultLogger</code></p>
+
+</blockquote>
+
+<h3><a name="NoBannerLogger">NoBannerLogger</a></h3>
+
+<p>Removes output of empty target output.</p>
+
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.NoBannerLogger</code></p>
+
+</blockquote>
+
+<h3><a name="MailLogger">MailLogger</a></h3>
+
+<p>The MailLogger captures all output logged through DefaultLogger (standard Ant
+output) and will send success and failure messages to unique e-mail lists, with
+control for turning off success or failure messages individually.</p>
+<p>Properties controlling the operation of MailLogger:</p>
+<table border="1" cellspacing="1" width="100%" id="AutoNumber2">
+  <tr>
+    <th width="337">Property</th>
+    <th width="63%">Description</th>
+    <th width="63%">Required</th>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.mailhost </td>
+    <td width="63%">Mail server to use</td>
+    <td width="63%">No, default &quot;localhost&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.port </td>
+    <td width="63%">SMTP Port for the Mail server</td>
+    <td width="63%">No, default &quot;25&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.user</td>
+    <td width="63%">user name for SMTP auth</td>
+    <td width="63%">Yes, if SMTP auth is required on your SMTP server<br/>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.password</td>
+    <td width="63%">password for SMTP auth</td>
+    <td width="63%">Yes, if SMTP auth is required on your SMTP server<br/>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.ssl</td>
+    <td width="63%">on or true if ssl is needed<br/>
+    This feature requires JavaMail</td>
+    <td width="63%">
+    no</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.from</td>
+    <td width="63%">Mail &quot;from&quot; address</td>
+    <td width="63%">Yes, if mail needs to be sent</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.replyto</td>
+    <td width="63%">Mail &quot;replyto&quot; address(es), comma-separated</td>
+    <td width="63%">No</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.failure.notify </td>
+    <td width="63%">Send build failure e-mails?</td>
+    <td width="63%">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.success.notify </td>
+    <td width="63%">Send build success e-mails?</td>
+    <td width="63%">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.failure.to </td>
+    <td width="63%">Address(es) to send failure messages to, comma-separated</td>
+    <td width="63%">Yes, if failure mail is to be sent</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.success.to </td>
+    <td width="63%">Address(es) to send success messages to, comma-separated</td>
+    <td width="63%">Yes, if success mail is to be sent</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.failure.subject </td>
+    <td width="63%">Subject of failed build</td>
+    <td width="63%">No, default &quot;Build Failure&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.success.subject </td>
+    <td width="63%">Subject of successful build</td>
+    <td width="63%">No, default &quot;Build Success&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.properties.file </td>
+    <td width="63%">Filename of properties file that will override other values.</td>
+    <td width="63%">No</td>
+  </tr>
+</table>
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.listener.MailLogger</code></p>
+
+</blockquote>
+
+<h3><a name="AnsiColorLogger">AnsiColorLogger</a></h3>
+
+<p>The AnsiColorLogger adds color to the standard Ant output
+by prefixing and suffixing ANSI color code escape sequences to
+it.  It is just an extension of <a href="#DefaultLogger">DefaultLogger</a>
+and hence provides all features that DefaultLogger does.</p>
+<p>AnsiColorLogger differentiates the output by assigning
+different colors depending upon the type of the message.</p>
+<p>If used with the -logfile option, the output file
+will contain all the necessary escape codes to
+display the text in colorized mode when displayed
+in the console using applications like cat, more, etc.</p>
+<p>This is designed to work on terminals that support ANSI
+color codes.  It works on XTerm, ETerm, Win9x Console
+(with ANSI.SYS loaded.), etc.</p>
+<p><Strong>NOTE:</Strong>
+It doesn't work on WinNT even when a COMMAND.COM console loaded with
+ANSI.SYS is used.</p>
+<p>If the user wishes to override the default colors
+with custom ones, a file containing zero or more of the
+custom color key-value pairs must be created.  The recognized keys
+and their default values are shown below:</p><code><pre>
+AnsiColorLogger.ERROR_COLOR=2;31
+AnsiColorLogger.WARNING_COLOR=2;35
+AnsiColorLogger.INFO_COLOR=2;36
+AnsiColorLogger.VERBOSE_COLOR=2;32
+AnsiColorLogger.DEBUG_COLOR=2;34</pre></code>
+<p>Each key takes as value a color combination defined as
+<b>Attribute;Foreground;Background</b>.  In the above example, background
+value has not been used.</p>
+<p>This file must be specfied as the value of a system variable
+named ant.logger.defaults and passed as an argument using the -D
+option to the <b>java</b> command that invokes the Ant application.
+An easy way to achieve this is to add -Dant.logger.defaults=
+<i>/path/to/your/file</i> to the ANT_OPTS environment variable.
+Ant's launching script recognizes this flag and will pass it to
+the java command appropriately.</p>
+<p>Format:</p><pre>
+AnsiColorLogger.*=Attribute;Foreground;Background
+
+Attribute is one of the following:
+0 -&gt; Reset All Attributes (return to normal mode)
+1 -&gt; Bright (Usually turns on BOLD)
+2 -&gt; Dim
+3 -&gt; Underline
+5 -&gt; link
+7 -&gt; Reverse
+8 -&gt; Hidden
+
+Foreground is one of the following:
+30 -&gt; Black
+31 -&gt; Red
+32 -&gt; Green
+33 -&gt; Yellow
+34 -&gt; Blue
+35 -&gt; Magenta
+36 -&gt; Cyan
+37 -&gt; White
+
+Background is one of the following:
+40 -&gt; Black
+41 -&gt; Red
+42 -&gt; Green
+43 -&gt; Yellow
+44 -&gt; Blue
+45 -&gt; Magenta
+46 -&gt; Cyan
+47 -&gt; White</pre>
+
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.listener.AnsiColorLogger</code></p>
+
+</blockquote>
+
+<h3><a name="Log4jListener">Log4jListener</a></h3>
+
+<p>Passes build events to Log4j, using the full classname's of the generator of
+each build event as the category:</p>
+
+<ul>
+  <li>build started / build finished - org.apache.tools.ant.Project</li>
+  <li>target started / target finished - org.apache.tools.ant.Target</li>
+  <li>task started / task finished - the fully qualified classname of the task</li>
+  <li>message logged - the classname of one of the above, so if a task logs a
+  message, its classname is the category used, and so on.</li>
+</ul>
+
+<p>All start events are logged as INFO.&nbsp; Finish events are either logged as
+INFO or ERROR depending on whether the build failed during that stage. Message
+events are logged according to their Ant logging level, mapping directly to a
+corresponding Log4j level.</p>
+
+<blockquote>
+
+<p><code>ant -listener org.apache.tools.ant.listener.Log4jListener</code></p>
+
+</blockquote>
+
+<h3><a name="XmlLogger">XmlLogger</a></h3>
+
+<p>Writes all build information out to an XML file named log.xml, or the value
+of the <code>XmlLogger.file</code> property if present, when used as a
+listener. When used as a logger, it writes all output to either the
+console or to the value of <code>-logfile</code>. Whether used as a listener
+or logger, the output is not generated until the build is complete, as it
+buffers the information in order to provide timing information for task,
+targets, and the project.
+<p>
+By default the XML file creates
+a reference to an XSLT file "log.xsl" in the current directory; look in
+ANT_HOME/etc for one of these. You can set the property
+<code>ant.XmlLogger.stylesheet.uri</code> to provide a uri to a style sheet.
+this can be a relative or absolute file path, or an http URL.
+If you set the property to the empty string, "", no XSLT transform
+is declared at all.
+
+
+
+
+</p>
+
+<blockquote>
+
+<p><code>ant -listener org.apache.tools.ant.XmlLogger</code><br/>
+<code>ant -logger org.apache.tools.ant.XmlLogger -verbose -logfile build_log.xml</code></p>
+
+</blockquote>
+
+<h2><a name="dev">Writing your own</a></h2>
+
+<p>See the <a href="develop.html#buildevents">Build Events</a> section for
+developers.</p>
+
+<p>Notes:</p>
+
+<ul>
+  <li>A listener or logger should not write to standard output or error - Ant
+  captures these internally and may cause an infinite loop.</li>
+</ul>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/optionaltasklist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/optionaltasklist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/optionaltasklist.html	(revision 14989)
@@ -0,0 +1,84 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<a href="coretasklist.html" target="navFrame"><b>Core Tasks</b></a><br>
+<a href="tasksoverview.html" target="mainFrame">Overview of Ant Tasks</a><br>
+<a href="conceptstypeslist.html" target="navFrame">Concepts and Types</a><br>
+
+<h3>Optional Tasks</h3>
+<a href="OptionalTasks/dotnet.html">.NET Tasks</a><br>
+<a href="OptionalTasks/antlr.html">ANTLR</a><br>
+<a href="OptionalTasks/attrib.html">Attrib</a><br>
+<a href="OptionalTasks/cab.html">Cab</a><br>
+<a href="OptionalTasks/chgrp.html">Chgrp</a><br>
+<a href="OptionalTasks/chown.html">Chown</a><br>
+<a href="OptionalTasks/clearcase.html">Clearcase Tasks</a><br>
+<a href="OptionalTasks/ccm.html">Continuus/Synergy Tasks</a><br>
+<a href="OptionalTasks/depend.html">Depend</a><br>
+<a href="OptionalTasks/ejb.html">EJB Tasks</a><br>
+<a href="OptionalTasks/echoproperties.html">Echoproperties</a><br>
+<a href="OptionalTasks/ftp.html">FTP</a><br>
+<a href="OptionalTasks/icontract.html">IContract</a><br>
+<a href="OptionalTasks/image.html">Image</a><br>
+<a href="OptionalTasks/jarlib-available.html">Jarlib-available</a><br>
+<a href="OptionalTasks/jarlib-display.html">Jarlib-display</a><br>
+<a href="OptionalTasks/jarlib-manifest.html">Jarlib-manifest</a><br>
+<a href="OptionalTasks/jarlib-resolve.html">Jarlib-resolve</a><br>
+<a href="OptionalTasks/javacc.html">JavaCC</a><br>
+<a href="OptionalTasks/javah.html">Javah</a><br>
+<a href="OptionalTasks/jspc.html">JspC</a><br>
+<a href="OptionalTasks/jdepend.html">JDepend</a><br>
+<a href="OptionalTasks/jjdoc.html">JJDoc</a><br>
+<a href="OptionalTasks/jjtree.html">JJTree</a><br>
+<a href="OptionalTasks/jlink.html"><i>Jlink</i></a><br>
+<a href="OptionalTasks/jpcoverage.html">JProbe Coverage</a><br>
+<a href="OptionalTasks/junit.html">JUnit</a><br>
+<a href="OptionalTasks/junitreport.html">JUnitReport</a><br>
+<a href="OptionalTasks/mmetrics.html">Metamata Metrics</a><br>
+<a href="OptionalTasks/maudit.html">Metamata Audit</a><br>
+<a href="OptionalTasks/mimemail.html"><i>MimeMail</i></a><br>
+<a href="OptionalTasks/mparse.html">MParse</a><br>
+<a href="OptionalTasks/native2ascii.html">Native2Ascii</a><br>
+<a href="OptionalTasks/netrexxc.html">NetRexxC</a><br>
+<a href="OptionalTasks/perforce.html">Perforce Tasks</a><br>
+<a href="OptionalTasks/propertyfile.html">PropertyFile</a><br>
+<a href="OptionalTasks/pvcstask.html">Pvcs</a><br>
+<a href="OptionalTasks/renameextensions.html"><i>RenameExtensions</i></a><br>
+<a href="OptionalTasks/replaceregexp.html">ReplaceRegExp</a><br>
+<a href="OptionalTasks/rexec.html">RExec</a><br>
+<a href="OptionalTasks/rpm.html">Rpm</a><br>
+<a href="OptionalTasks/serverdeploy.html">ServerDeploy</a><br>
+<a href="OptionalTasks/setproxy.html">Setproxy</a><br>
+<a href="OptionalTasks/scp.html">Scp</a><br>
+<a href="OptionalTasks/script.html">Script</a><br>
+<a href="OptionalTasks/scriptdef.html">Scriptdef</a><br>
+<a href="OptionalTasks/sound.html">Sound</a><br>
+<a href="OptionalTasks/sos.html">SourceOffSite</a><br>
+<a href="OptionalTasks/splash.html">Splash</a><br>
+<a href="OptionalTasks/sshexec.html">Sshexec</a><br>
+<a href="OptionalTasks/starteam.html">Starteam Tasks</a><br>
+<a href="OptionalTasks/stylebook.html">Stylebook</a><br>
+<a href="OptionalTasks/symlink.html">Symlink</a><br>
+<a href="OptionalTasks/telnet.html">Telnet</a><br>
+<a href="OptionalTasks/test.html">Test</a><br>
+<a href="OptionalTasks/translate.html">Translate</a><br>
+<a href="Integration/VAJAntTool.html#tasks">Visual Age for Java Tasks</a><br>
+<a href="OptionalTasks/vss.html#tasks">Microsoft Visual SourceSafe Tasks</a><br>
+<a href="OptionalTasks/wljspc.html">Weblogic JSP Compiler</a><br>
+<a href="OptionalTasks/xmlvalidate.html">XmlValidate</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/platform.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/platform.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/platform.html	(revision 14989)
@@ -0,0 +1,112 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Platform Issues</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<h1>Platform Issues</h1>
+
+
+<h2>Unix</h2>
+
+<ul>
+<li> You should use a GNU version of <tt>tar</tt> to untar the ant source tree,
+if you have downloaded this as a tar file.
+</li>
+<li> Ant does not preserve file permissions when a file is copied, moved or 
+archived, because Java does not let it read or write the permissions.
+ Use <tt>&lt;chmod&gt;</tt> to set permissions, and when creating a 
+tar archive, use the <tt>mode</tt> attribute of <tt>&lt;tarfileset&gt;</tt>
+to set the permissions in the tar file, or &lt;apply&gt; the real tar program.
+</li>
+<li> Ant is not symbolic link aware in moves, deletes and when recursing down a tree
+of directories to build up a list of files. Unexpected things can happen.
+</ul>
+
+<h2>Microsoft Windows</h2>
+
+Windows 9x (win95, win98, win98SE and winME) has a batch file system which
+does not work fully with long file names, so we recommend that ant and the JDK
+are installed into directories without spaces, and with 8.3 filenames. 
+The Perl and Python launcher scripts do not suffer from this limitation.
+
+<p>
+All versions of windows are usually case insensitive, although mounted 
+file systems (Unix drives, Clearcase views) can be case sensitive underneath,
+confusing patternsets. 
+
+<p>
+Ant can often not delete a directory which is open in an Explorer window. 
+There is nothing we can do about this short of spawning a program to kill
+the shell before deleting directories.  
+
+<h2>Cygwin</h2>
+
+Cygwin is not really an operating system; rather it is an application suite 
+running under Windows and providing some UNIX like functionality. AFAIK, Sun did 
+not create any specific Java Development Kit or Java Runtime Environment for 
+cygwin. See this link : 
+<a href="http://www.inonit.com/cygwin/faq/">http://www.inonit.com/cygwin/faq/</a> . 
+Only Windows path 
+names are supported by JDK and JRE tools under Windows or cygwin. Relative path 
+names such as "src/org/apache/tools" are supported, but Java tools do not 
+understand /cygdrive/c to mean c:\.
+<p>
+The utility cygpath (used industrially in the ant script to support cygwin) can 
+convert cygwin path names to Windows.
+You can use the <exec/> task in ant to convert cygwin paths to Windows path, for 
+instance like that :
+<pre>
+&lt;property name=&quot;some.cygwin.path&quot; value=&quot;/cygdrive/h/somepath&quot;/&gt;
+&lt;exec executable=&quot;cygpath&quot; outputproperty=&quot;windows.pathname&quot;&gt;
+   &lt;arg value=&quot;--windows&quot;/&gt;
+   &lt;arg value=&quot;${some.cygwin.path}&quot;/&gt;
+&lt;/exec&gt;
+&lt;echo message=&quot;${windows.pathname}&quot;/&gt;
+</pre>
+
+<h2>Apple MacOS X</h2>
+
+MacOS X is the first of the Apple platforms that Ant supports completely;
+it is treated like any other Unix. 
+
+<h2>Novell Netware</h2>
+
+<p>To give the same level of sophisticated control as Ant's startup scripts on other platforms, it was decided to make the main ant startup on NetWare be via a Perl Script, "runant.pl".  This is found in the bin directory (for instance - bootstrap\bin or dist\bin).</p>
+
+<p>One important item of note is that you need to set up the following to run ant:</p>
+<ul><li><code>CLASSPATH</code> - put ant.jar, xercesImpl.jar, xml-apis.jar and any other needed jars on the system classpath.</li>
+   <li><code>ANT_OPTS</code> - On NetWare, <code>ANT_OPTS</code> needs to include a parameter of the form, <nobr>"-envCWD=<code>ANT_HOME</code>"</nobr>, with <code>ANT_HOME</code> being the fully expanded location of Ant, <b>not</b> an environment variable.  This is due to the fact that the NetWare System Console has no notion of a current working directory.</li>
+</ul>
+<p>It is suggested that you create up an ant.ncf that sets up these parameters, and calls <code>perl ANT_HOME/dist/bin/runant.pl</code></p>
+<p>The following is an example of such an NCF file(assuming ant is installed in <nobr>'sys:/apache-ant/'):</nobr></p>
+<code>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=SYS:/apache-ant/bootstrap/lib/ant.jar<br />
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xercesImpl.jar <br />
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xml-apis.jar <br />
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/optional/junit.jar <br />
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/bootstrap/lib/optional.jar <br />
+<br />
+   &nbsp;&nbsp;&nbsp;setenv ANT_OPTS=-envCWD=sys:/apache-ant <br />
+   &nbsp;&nbsp;&nbsp;envset ANT_OPTS=-envCWD=sys:/apache-ant <br />
+   &nbsp;&nbsp;&nbsp;setenv ANT_HOME=sys:/apache-ant/dist/lib <br />
+   &nbsp;&nbsp;&nbsp;envset ANT_HOME=sys:/apache-ant/dist/lib <br />
+<br />
+   &nbsp;&nbsp;&nbsp;perl sys:/apache-ant/dist/bin/runant.pl <br />
+</code>
+
+<p>Ant works on JVM version 1.3 or higher.  You may have some luck running it on JVM 1.2, but serious problems have been found running Ant on JVM 1.1.7B.  These problems are caused by JVM bugs that will not be fixed.</p>
+<p>JVM 1.3 is supported on Novell NetWare versions 5.1 and higher.</p>
+
+
+<h2>Other platforms</h2>
+Support for other platforms is not guaranteed to be complete, as certain 
+techniques to hide platform details from build files need to be written and
+tested on every particular platform. Contributions in this area are welcome.
+
+<hr>
+<p align="center">Copyright &copy; 2002-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/running.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/running.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/running.html	(revision 14989)
@@ -0,0 +1,475 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Running Apache Ant</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h1>Running Ant</h1>
+<h2><a name="commandline">Command Line</a></h2>
+<p> If you've installed Ant as described in the
+<a href="install.html"> Installing Ant</a> section,
+running Ant from the command-line is simple: just type
+<code>ant</code>.</p>
+<p>When no arguments are specified, Ant looks for a <code>build.xml</code>
+file in the current directory and, if found, uses that file as the
+build file and runs the target specified in the <code>default</code>
+attribute of the <code>&lt;project&gt;</code> tag.
+To make Ant use
+a build file other than <code>build.xml</code>, use the command-line
+option <nobr><code>-buildfile <i>file</i></code></nobr>,
+where <i>file</i> is the name of the build file you want to use.</p>
+If you use the <nobr><code>-find [<i>file</i>]</code></nobr> option,
+Ant will search for a build file first in the current directory, then in
+the parent directory, and so on, until either a build file is found or the root
+of the filesystem has been reached. By default, it will look for a build file
+called <code>build.xml</code>. To have it search for a build file other
+than <code>build.xml</code>, specify a file argument.
+<strong>Note:</strong> If you include any other flags or arguments
+on the command line after
+the <nobr><code>-find</code></nobr> flag, you must include the file argument
+for the <nobr><code>-find</code></nobr> flag, even if the name of the
+build file you want to find is <code>build.xml</code>.
+
+<p>You can also set <a href="using.html#properties">properties</a> on the
+command line.  This can be done with
+the <nobr><code>-D<i>property</i>=<i>value</i></code></nobr> option,
+where <i>property</i> is the name of the property,
+and <i>value</i> is the value for that property. If you specify a
+property that is also set in the build file
+(see the <a href="CoreTasks/property.html">property</a> task),
+the value specified on the
+command line will override the value specified in the
+build file.
+Defining properties on the command line can also be used to pass in
+the value of environment variables - just pass
+<nobr><code>-DMYVAR=%MYVAR%</code></nobr> (Windows) or
+<nobr><code>-DMYVAR=$MYVAR</code></nobr> (Unix)
+to Ant. You can then access
+these variables inside your build file as <code>${MYVAR}</code>.
+You can also access environment variables using the
+<a href="CoreTasks/property.html"> property</a> task's
+<code>environment</code> attribute.
+</p>
+
+<p>Options that affect the amount of logging output by Ant are:
+<nobr><code>-quiet</code></nobr>,
+which instructs Ant to print less
+information to the console;
+<nobr><code>-verbose</code></nobr>, which causes Ant to print
+additional information to the console; and <nobr><code>-debug</code></nobr>,
+which causes Ant to print considerably more additional information.
+</p>
+
+<p>It is also possible to specify one or more targets that should be executed.
+When omitted, the target that is specified in the
+<code>default</code> attribute of the
+<a href="using.html#projects"><code>project</code></a> tag is
+used.</p>
+
+<p>The <nobr><code>-projecthelp</code></nobr> option prints out a list
+of the build file's targets. Targets that include a
+<code>description</code> attribute are listed as &quot;Main targets&quot;,
+those without a <code>description</code> are listed as
+&quot;Subtargets&quot;, then the &quot;Default&quot; target is listed.
+
+<h3><a name="options">Command-line Options Summary</a></h3>
+<pre>ant [options] [target [target2 [target3] ...]]
+Options:
+  -help, -h              print this message
+  -projecthelp, -p       print project help information
+  -version               print the version information and exit
+  -diagnostics           print information that might be helpful to
+                         diagnose or report problems.
+  -quiet, -q             be extra quiet
+  -verbose, -v           be extra verbose
+  -debug, -d             print debugging information
+  -emacs, -e             produce logging information without adornments
+  -lib &lt;path&gt;            specifies a path to search for jars and classes
+  -logfile &lt;file&gt;        use given file for log
+    -l     &lt;file&gt;                ''
+  -logger &lt;classname&gt;    the class which is to perform logging
+  -listener &lt;classname&gt;  add an instance of class as a project listener
+  -noinput               do not allow interactive input
+  -buildfile &lt;file&gt;      use given buildfile
+    -file    &lt;file&gt;              ''
+    -f       &lt;file&gt;              ''
+  -D&lt;property&gt;=&lt;value&gt;   use value for given property
+  -keep-going, -k        execute all targets that do not depend
+                         on failed target(s)
+  -propertyfile &lt;name&gt;   load all properties from file with -D
+                         properties taking precedence
+  -inputhandler &lt;class&gt;  the class which will handle input requests
+  -find &lt;file&gt;           (s)earch for buildfile towards the root of
+    -s  &lt;file&gt;           the filesystem and use it
+</pre>
+<p>For more information about <code>-logger</code> and
+<code>-listener</code> see
+<a href="listeners.html">Loggers &amp; Listeners</a>.
+<p>For more information about <code>-inputhandler</code> see
+<a href="inputhandler.html">InputHandler</a>.
+
+<h3><a name="libs">Library Directories</a></h3>
+<p>
+Prior to Ant 1.6, all jars in the ANT_HOME/lib would be added to the CLASSPATH
+used to run Ant. This was done in the scripts that started Ant. From Ant 1.6,
+two directories are scanned by default and more can be added as required. The
+default directories scanned are ANT_HOME/lib and a user specific directory,
+${user.home}/.ant/lib. This arrangement allows the Ant installation to be
+shared by many users while still allowing each user to deploy additional jars.
+Such additional jars could be support jars for Ant's optional tasks or jars
+containing third-party tasks to be used in the build. It also allows the main Ant
+installation to be locked down which will please system adminstrators.
+</p>
+
+<p>
+Additional directories to be searched may be added by using the -lib option.
+The -lib option specifies a search path. Any jars or classes in the directories
+of the path will be added to Ant's classloader. The order in which jars are
+added to the classpath is as follows
+</p>
+
+<ul>
+  <li>-lib jars in the order specified by the -lib elements on the command line</li>
+  <li>jars from ${user.home}/.ant/lib</li>
+  <li>jars from ANT_HOME/lib</li>
+</ul>
+
+<p>
+Note that the CLASSPATH environment variable is passed to Ant using a -lib
+option. Ant itself is started with a very minimalistic classpath.
+</p>
+
+<p>
+The location of ${user.home}/.ant/lib is somewhat dependent on the JVM. On Unix
+systems ${user.home} maps to the user's home directory whilst on recent
+versions of Windows it will be somewhere such as
+C:\Documents&nbsp;and&nbsp;Settings\username\.ant\lib. You should consult your
+JVM documentation for more details.
+</p>
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>ant</pre>
+</blockquote>
+<p>runs Ant using the <code>build.xml</code> file in the current directory, on
+the default target.</p>
+<blockquote>
+  <pre>ant -buildfile test.xml</pre>
+</blockquote>
+<p>runs Ant using the <code>test.xml</code> file in the current directory, on
+the default target.</p>
+<blockquote>
+  <pre>ant -buildfile test.xml dist</pre>
+</blockquote>
+<p>runs Ant using the <code>test.xml</code> file in the current directory, on
+the target called <code>dist</code>.</p>
+<blockquote>
+  <pre>ant -buildfile test.xml -Dbuild=build/classes dist</pre>
+</blockquote>
+<p>runs Ant using the <code>test.xml</code> file in the current directory, on
+the target called <code>dist</code>, setting the <code>build</code> property
+to the value <code>build/classes</code>.</p>
+
+<blockquote>
+  <pre>ant -lib /home/ant/extras</pre>
+</blockquote>
+<p>runs Ant picking up additional task and support jars from the
+/home/ant/extras location
+</p>
+
+<h3><a name="files">Files</a></h3>
+
+<p>The Ant wrapper script for Unix will source (read and evaluate) the
+file <code>~/.antrc</code> before it does anything. On Windows, the Ant
+wrapper batch-file invokes <code>%HOME%\antrc_pre.bat</code> at the start and
+<code>%HOME%\antrc_post.bat</code> at the end.  You can use these
+files, for example, to set/unset environment variables that should only be
+visible during the execution of Ant.  See the next section for examples.</p>
+
+<h3><a name="envvars">Environment Variables</a></h3>
+
+<p>The wrapper scripts use the following environment variables (if
+set):</p>
+
+<ul>
+  <li><code>JAVACMD</code> - full path of the Java executable.  Use this
+  to invoke a different JVM than <code>JAVA_HOME/bin/java(.exe)</code>.</li>
+
+  <li><code>ANT_OPTS</code> - command-line arguments that should be
+  passed to the JVM. For example, you can define system properties or set
+  the maximum Java heap size here.</li>
+
+  <li><code>ANT_ARGS</code> - Ant command-line arguments. For example,
+  set <code>ANT_ARGS</code> to point to a different logger, include a
+  listener, and to include the <code>-find</code> flag.</li>
+  <strong>Note:</strong> If you include <code>-find</code>
+  in <code>ANT_ARGS</code>, you should include the name of the build file
+  to find, even if the file is called <code>build.xml</code>.
+</ul>
+
+<h3><a name="sysprops">Java System Properties</a></h3>
+<p>Some of Ants core classes ant tasks can be configured via system properties.</p>
+<p>So here the result of a search through the codebase. Because system properties are
+available via Project instance, I searched for them with a
+<pre>
+    grep -r -n "getPropert" * > ..\grep.txt
+</pre>
+command. After that I filtered out the often-used but not-so-important values (most of them
+read-only values): <i>path.separator, ant.home, basedir, user.dir, os.name, ant.file,
+line.separator, java.home, java.version, java.version, user.home, java.class.path</i><br>
+And I filtered out the <i>getPropertyHelper</i> access.</p>
+<table border="1">
+<tr>
+  <th>property name</th>
+  <th>valid values /default value</th>
+  <th>description</th>
+</tr>
+<tr>
+  <td><code>ant.input.properties</code></td>
+  <td>filename (required)</td>
+  <td>Name of the file holding the values for the
+      <a href="inputhandler.html">PropertyFileInputHandler</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.logger.defaults</code></td>
+  <!-- add the blank after the slash, so the browser can do a line break -->
+  <td>filename (optional, default '/org/ apache/ tools/ ant/ listener/ defaults.properties')</td>
+  <td>Name of the file holding the color mappings for the
+      <a href="listeners.html#AnsiColorLogger">AnsiColorLogger</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.netrexxc.*</code></td>
+  <td>several formats</td>
+  <td>Use specified values as defaults for <a href="OptionalTasks/netrexxc.html">netrexxc</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.PropertyHelper</code></td>
+  <td>ant-reference-name (optional)</td>
+  <td>Specify the PropertyHelper to use. The object must be of the type
+      org.apache.tools.ant.PropertyHelper. If not defined an object of
+      org.apache.tools.ant.PropertyHelper will be used as PropertyHelper.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.regexp.regexpimpl</code></td>
+  <td>classname</td>
+  <td>classname for a RegExp implementation; if not set Ant tries to
+      find another (Jdk14, Oro...);
+      <a href="CoreTypes/mapper.html#regexp-mapper">RegExp-Mapper</a>
+      "Choice of regular expression implementation"
+  </td>
+</tr>
+<tr>
+  <td><code>ant.reuse.loader</code></td>
+  <td>boolean</td>
+  <td>allow to reuse classloaders
+      used in org.apache.tools.ant.util.ClasspathUtil
+  </td>
+</tr>
+<tr>
+  <td><code>ant.XmlLogger.stylesheet.uri</code></td>
+  <td>filename (default 'log.xsl')</td>
+  <td>Name for the stylesheet to include in the logfile by
+      <a href="listeners.html#XmlLogger">XmlLogger</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler</code></td>
+  <td>name</td>
+  <td>Specify the default compiler to use.
+      see <a href="CoreTasks/javac.html">javac</a>,
+      <a href="OptionalTasks/ejb.html#ejbjar_weblogic">EJB Tasks</a>
+      (compiler attribute),
+      <a href="OptionalTasks/icontract.html">IContract</a>,
+      <a href="OptionalTasks/javah.html">javah</a>
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.emacs</code></td>
+  <td>boolean (default false)</td>
+  <td>Enable emacs-compatible error messages.
+      see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.fulldepend</code></td>
+  <td>boolean (default false)</td>
+  <td>Enable full dependency checking
+      see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.jvc.extensions</code></td>
+  <td>boolean (default true)</td>
+  <td>enable Microsoft extensions of their java compiler
+      see <a href="CoreTasks/javac.html">javac</a> "Jvc Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.pedantic</code></td>
+  <td>boolean (default false)</td>
+  <td>Enable pedantic warnings.
+      see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.warnings</code></td>
+  <td>Deprecated flag</td>
+  <td> see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes" </td>
+</tr>
+<tr>
+  <td><code>build.rmic</code></td>
+  <td>name</td>
+  <td>control the <a href="CoreTasks/rmic.html">rmic</a> compiler </td>
+</tr>
+<tr>
+  <td><code>build.sysclasspath</code></td>
+  <td>"only", something else</td>
+  <td>only: current threads get the actual class loader
+      (AntClassLoader.setThreadContextLoader()).
+      else: use core loader as default (ComponentHelper.initTasks()). Disable
+      changing the classloader (oata.taskdefs.Classloader.execute() experimental
+      task).
+      <!-- somewhere documented in the manual?? -->
+  </td>
+</tr>
+<tr>
+  <td><code>file.encoding</code></td>
+  <td>name of a supported character set (e.g. UTF-8, ISO-8859-1, US-ASCII)</td>
+  <td>use as default character set of email messages; use as default for source-, dest- and bundleencoding
+      in <a href="OptionalTasks/translate.html">translate</a> <br>
+      see JavaDoc of <a target="_blank" href="http://java.sun.com/j2se/1.4.2/docs/api/java/nio/charset/Charset.html">java.nio.charset.Charset</a>
+      for more information about character sets (not used in Ant, but has nice docs).
+  </td>
+</tr>
+<tr>
+  <td><code>jikes.class.path</code></td>
+  <td>path</td>
+  <td>The specified path is added to the classpath if jikes is used as compiler.</td>
+</tr>
+<tr>
+  <td><code>MailLogger.properties.file, MailLogger.*</code></td>
+  <td>filename (optional, defaults derived from Project instance)</td>
+  <td>Name of the file holding properties for sending emails by the
+      <a href="listeners.html#MailLogger">MailLogger</a>. Override properties set
+      inside the buildfile or via command line.
+  </td>
+</tr>
+<tr>
+  <td><code>org.apache.tools.ant.ProjectHelper</code></td>
+  <!-- add the blank after the slash, so the browser can do a line break -->
+  <td>classname (optional, default 'org. apache. tools. ant. ProjectHelper')</td>
+  <td>specifies the classname to use as ProjectHelper. The class must extend
+      org.apache.tools.ant.ProjectHelper.
+  </td>
+</tr>
+<tr>
+  <td><code>p4.port, p4.client, p4.user</code></td>
+  <td>several formats</td>
+  <td>Specify defaults for port-, client- and user-setting of the
+      <a href="OptionalTasks/perforce.html">perforce</a> tasks.
+  </td>
+</tr>
+<tr>
+  <td><code>websphere.home
+  <td>path</td>
+  <td>Points to home directory of websphere.
+      see <a href="OptionalTasks/ejb.html#ejbjar_websphere">EJB Tasks</a>
+  </td>
+</tr>
+<tr>
+  <td><code>XmlLogger.file
+  <td>filename (default 'log.xml')</td>
+  <td>Name for the logfile for <a href="listeners.html#MailLogger">MailLogger</a>.
+  </td>
+</tr>
+</table>
+
+<h2><a name="cygwin">Cygwin Users</a></h2>
+<p>The Unix launch script that come with Ant works correctly with Cygwin. You
+should not have any problems launching Ant form the Cygwin shell. It is important
+to note however, that once Ant is runing it is part of the JDK which operates as
+a native Windows application. The JDK is not a Cygwin executable, and it therefore
+has no knowledge of the Cygwin paths, etc. In particular when using the &lt;exec&gt;
+task, executable names such as &quot;/bin/sh&quot; will not work, even though these
+work from the Cygwin shell from which Ant was launched. You can use an executable
+name such as &quot;sh&quot; and rely on that command being available in the Windows
+path.
+</p>
+
+<h2><a name="os2">OS/2 Users</a></h2>
+<p>The OS/2 lanuch script was developed so as it can perform complex task. It has two parts:
+<code>ant.cmd</code> which calls Ant and <code>antenv.cmd</code> which sets environment for Ant.
+Most often you will just call <code>ant.cmd</code> using the same command line options as described
+above. The behaviour can be modified by a number of ways explained below.</p>
+
+<p>Script <code>ant.cmd</code> first verifies whether the Ant environment is set correctly. The
+requirements are:</p>
+<ol>
+<li>Environment variable <code>JAVA_HOME</code> is set.</li>
+<li>Environment variable <code>ANT_HOME</code> is set.</li>
+<li>environment variable <code>CLASSPATH</code> is set and contains at least one element from
+<code>JAVA_HOME</code> and at least one element from <code>ANT_HOME</code>.</li>
+</ol>
+
+<p>If any of these conditions is violated, script <code>antenv.cmd</code> is called. This script
+first invokes configuration scripts if there exist: the system-wide configuration
+<code>antconf.cmd</code> from the <code>%ETC%</code> directory and then the user comfiguration
+<code>antrc.cmd</code> from the <code>%HOME%</code> directory. At this moment both
+<code>JAVA_HOME</code> and <code>ANT_HOME</code> must be defined because <code>antenv.cmd</code>
+now adds <code>classes.zip</code> or <code>tools.jar</code> (depending on version of JVM) and
+everything from <code>%ANT_HOME%\lib</code> except <code>ant-*.jar</code> to
+<code>CLASSPATH</code>. Finally <code>ant.cmd</code> calls per-directory configuration
+<code>antrc.cmd</code>. All settings made by <code>ant.cmd</code> are local and are undone when the
+script ends. The settings made by <code>antenv.cmd</code> are persistent during the lifetime of the
+shell (of course unless called automaticaly from <code>ant.cmd</code>). It is thus possible to call
+<code>antenv.cmd</code> manually and modify some settings before calling <code>ant.cmd</code>.</p>
+
+<p>Scripts <code>envset.cmd</code> and <code>runrc.cmd</code> perform auxilliary tasks. All scripts
+have some documentation inside.</p>
+
+<h2><a name="viajava">Running Ant via Java</a></h2>
+<p>If you have installed Ant in the do-it-yourself way, Ant can be started
+with two entry points:</p>
+<blockquote>
+  <pre>java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre>
+</blockquote>
+
+<blockquote>
+  <pre>java -Dant.home=c:\ant org.apache.tools.ant.launch.Launcher [options] [target]</pre>
+</blockquote>
+
+<p>
+The first method runs Ant's traditional entry point. The second method uses
+the Ant Launcher introduced in Ant 1.6. The former method does not support
+the -lib option and all required classes are loaded from the CLASSPATH. You must
+ensure that all required jars are available. At a minimum the CLASSPATH should
+include:
+</p>
+
+<ul>
+<li><code>ant.jar</code> and <code>ant-launcher.jar</code></li>
+<li>jars/classes for your XML parser</li>
+<li>the JDK's required jar/zip files</li>
+</ul>
+
+<p>
+The latter method supports the -lib option and will load jars from the
+specified ANT_HOME. You should start the latter with the most minimal
+classpath possible, generally just the ant-launcher.jar.
+</p>
+
+<br>
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/runninglist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/runninglist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/runninglist.html	(revision 14989)
@@ -0,0 +1,26 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Running Ant</h3>
+<a href="running.html#commandline">Command Line</a><br>
+&nbsp;&nbsp;<a href="running.html#options">Options</a><br>
+&nbsp;&nbsp;<a href="running.html#libs">Library Directories</a><br>
+&nbsp;&nbsp;<a href="running.html#files">Files</a><br>
+&nbsp;&nbsp;<a href="running.html#envvars">Environment Variables</a><br>
+&nbsp;&nbsp;<a href="running.html#sysprops">Java System Properties</a><br>
+&nbsp;&nbsp;<a href="running.html#cygwin">Cygwin Users</a><br>
+&nbsp;&nbsp;<a href="running.html#os2">OS/2 Users</a><br>
+<a href="running.html#viajava">Running Ant via Java</a><br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/stylesheets/antmanual.css
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/stylesheets/antmanual.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/stylesheets/antmanual.css	(revision 14989)
@@ -0,0 +1,145 @@
+/* 
+ * Copyright  2003-2004 Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ * 
+ */
+body {
+ font-family:Verdana,Helvetica,Arial;
+	font-size:12px;   
+	color:WindowText;
+	background-color:ButtonHighlight;
+	margin:0px;
+	padding:4px;
+	border:0px;
+}
+img{
+	border:0px;
+}
+p{
+	padding-left:5px;
+	padding-right:2px;
+	padding-top:1px;
+	padding-bottom:1px;
+}
+table{
+	border:1px;
+	border-color:ThreeDLightShadow;
+	border-style:solid;
+}
+td {
+	font-family:Verdana,Helvetica,Arial;
+	font-size:12px;   
+	border:1px;
+	border-color:ThreeDLightShadow;
+	border-style:solid;
+}
+th {
+	font-family:Verdana,Helvetica,Arial;
+	font-size:14px;   
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:5px;
+	padding-right:2px;
+	border:1px;
+	border-color:ThreeDLightShadow;
+	border-style:solid;
+	text-align:left;
+}
+a{
+	color:WindowText;
+	text-decoration: underline; 
+	padding-left:5px;
+	padding-right:4px;
+	font-family:Verdana,Helvetica,Arial;
+}
+
+a:hover { 
+	padding-left:4px;
+	padding-right:5px;
+	padding-top:1px;
+	padding-bottom:0px;
+	color:Highlight;
+	font-family:Verdana,Helvetica,Arial;
+	text-decoration: underline; 
+}
+h1 a{
+	color:HighlightText;
+}
+h2 a{
+	color:HighlightText;
+}
+h3 a{
+	color:HighlightText;
+}
+h1 a:hover{
+	color:HighlightText;
+}
+h2 a:hover{
+	color:HighlightText;
+}
+h3 a:hover{
+	color:HighlightText;
+}
+h1{
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:8px; padding-right:2px; padding-top:1px; padding-bottom:1px;
+	border-top:0px; border-bottom:2px; border-left:0px; border-right:0px;
+	border-style:solid;
+	border-color:Highlight;
+}
+h2{
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:8px; padding-right:2px; padding-top:1px; padding-bottom:1px;
+	border-top:0px; border-bottom:2px; border-left:0px; border-right:0px;
+	border-style:solid;
+	border-color:Highlight;
+}
+h3{
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:8px; padding-right:2px; padding-top:1px; padding-bottom:1px;
+	border-top:0px; border-bottom:2px; border-left:0px; border-right:0px;
+	border-style:solid;
+	border-color:Highlight;
+}
+
+img.but{
+	border:0px;
+	border-style:solid;
+	padding-top:3px; padding-bottom:3px; padding-left:3px; padding-right:3px;
+	margin-top:3px; margin-bottom:3px; margin-left:8px; margin-right:3px;
+}
+a:hover img.but{
+	border-top:1px; border-bottom:1px; border-left:1px; border-right:1px;
+	border-style:solid;
+	border-top-color:ThreeDHighlight;
+	border-bottom-color:ButtonShadow;
+	border-left-color:ThreeDHighlight;
+	border-right-color:ButtonShadow;
+	padding-top:3px; padding-bottom:3px; padding-left:3px; padding-right:3px;
+	margin-top:1px; margin-bottom:3px; margin-left:6px; margin-right:3px;
+}
+a:active img.but{
+	border-top:1px; border-bottom:1px; border-left:1px; border-right:1px;
+	border-style:inset;
+	border-top-color:ThreeDHighlight;
+	border-bottom-color:ButtonShadow;
+	border-left-color:ThreeDHighlight;
+	border-right-color:ButtonShadow;
+	padding-top:3px; padding-bottom:3px; padding-left:3px; padding-right:3px;
+	margin-top:0px; margin-bottom:3px; margin-left:5px; margin-right:3px;
+}
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/sysclasspath.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/sysclasspath.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/sysclasspath.html	(revision 14989)
@@ -0,0 +1,60 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>build.sysclasspath</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="sysclasspath">build.sysclasspath</a></h2>
+<p>The value of the build.sysclasspath property
+control how the system classpath, ie. the classpath in effect when
+Ant is run, affects the behaviour of classpaths in Ant.
+The default behavior varies from Ant to Ant task.</p>
+
+The values and their meanings are:
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+<td align="left" valign="top">only</td>
+<td>Only the system classpath is used and classpaths specified in build files,
+etc are ignored. This situation could be considered as the person running
+the build file knows more about the environment than the person writing the
+build file
+</td>
+</tr>
+
+<tr>
+<td align="left" valign="top">ignore</td>
+<td>
+The system classpath is ignored. This situation is the reverse of the
+above. The person running the build trusts the build file writer to get the
+build file right
+</td>
+</tr>
+
+<tr>
+<td align="left" valign="top">last</td>
+<td>
+The classpath is concatenated to any specified classpaths at the end. This
+is a compromise, where the build file writer has priority.
+</td>
+</tr>
+
+<tr>
+<td align="left" valign="top">first</td>
+<td>
+Any specified classpaths are concatenated to the system classpath. This is
+the other form of compromise where the build runner has priority.
+</td>
+</tr>
+</table>
+
+<hr>
+<p align="center">Copyright &copy; 2001-2002,2004 The Apache Software Foundation. All rights
+Reserved.</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/tasksoverview.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/tasksoverview.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/tasksoverview.html	(revision 14989)
@@ -0,0 +1,1272 @@
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Overview of Ant Tasks</title>
+  <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+<h2><a name="top"></a>Overview of Ant Tasks</h2>
+
+<p>Given the large number of tasks available with Ant, it may be
+difficult to get an overall view of what each task can do.  The following
+tables provide a short description of each task and a link to the complete
+documentation.</p>
+
+<a href="#archive">Archive Tasks</a><br>
+<a href="#audit">Audit/Coverage Tasks</a><br>
+<a href="#compile">Compile Tasks</a><br>
+<a href="#deploy">Deployment Tasks</a><br>
+<a href="#doc">Documentation Tasks</a><br>
+<a href="#ejb">EJB Tasks</a><br>
+<a href="#exec">Execution Tasks</a><br>
+<a href="#file">File Tasks</a><br>
+<a href="#extensions">Java2 Extensions Tasks</a><br>
+<a href="#log">Logging Tasks</a><br>
+<a href="#mail">Mail Tasks</a><br>
+<a href="#misc">Miscellaneous Tasks</a><br>
+<a href="#net">.NET Tasks</a><br>
+<a href="#preproc">Pre-process Tasks</a><br>
+<a href="#prop">Property Tasks</a><br>
+<a href="#remote">Remote Tasks</a><br>
+<a href="#scm">SCM Tasks</a><br>
+<a href="#testing">Testing Tasks</a><br>
+<a href="#vaj">Visual Age for Java Tasks</a><br>
+
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="archive">Archive Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th nowrap>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unpack.html">BUnzip2</a></td>
+    <td><p>Expands a file packed using GZip or BZip2.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/pack.html">BZip2</a></td>
+    <td><p>Packs a file using the GZip or BZip2 algorithm. This task
+     does not do any dependency checking; the output file is always
+     generated</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/cab.html">Cab</a></td>
+    <td><p>Creates Microsoft CAB archive files. It is invoked
+     similar to the <a href="CoreTasks/jar.html">Jar</a> or
+     <a href="CoreTasks/zip.html">Zip</a> tasks. This task will work on
+     Windows using the external <i>cabarc</i> tool (provided by Microsoft),
+     which must be located in your executable path.</p></td>
+   </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/ear.html">Ear</a></td>
+    <td><p>An extension of the <a href="CoreTasks/jar.html">Jar</a> task with
+     special treatment for files that should end up in an
+     Enterprise Application archive.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/gunzip.html">GUnzip</a></td>
+    <td><p>Expands a GZip file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/gzip.html">GZip</a></td>
+    <td><p>GZips a set of files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/jar.html">Jar</a></td>
+    <td><p>Jars a set of files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jlink.html">Jlink</a></td>
+    <td><p><i>Deprecated.</i> Use the <code>zipfileset</code>
+     and <code>zipgroupfileset</code> attributes of the
+     <a href="CoreTasks/jar.html">Jar</a> or
+     <a href="CoreTasks/zip.html">Zip</a> tasks instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/manifest.html">Manifest</a></td>
+    <td><p>Creates a manifest file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/rpm.html">Rpm</a></td>
+    <td><p>Invokes the <i>rpm</i> executable to build a Linux installation
+     file. This task currently only works on Linux or other Unix platforms
+     with RPM support.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/signjar.html">SignJar</a></td>
+    <td><p>Signs a jar or zip file with the <i>javasign</i>
+     command-line tool.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/tar.html">Tar</a></td>
+    <td><p>Creates a tar archive.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unzip.html">Unjar</a></td>
+    <td><p>Unzips a jarfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/untar.html">Untar</a></td>
+    <td><p>Untars a tarfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unzip.html">Unwar</a></td>
+    <td><p>Unzips a warfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unzip.html">Unzip</a></td>
+    <td><p>Unzips a zipfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/war.html">War</a></td>
+    <td><p>An extension of the <a href="CoreTasks/jar.html">Jar</a> task
+     with special treatment for files that should end up in the
+     <code>WEB-INF/lib</code>, <code>WEB-INF/classes</code>, or
+     <code>WEB-INF</code> directories of the Web Application Archive.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/zip.html">Zip</a></td>
+    <td><p>Creates a zipfile.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="audit">Audit/Coverage Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jdepend.html">JDepend</a></td>
+    <td><p>Invokes the <a href="http://www.clarkware.com/software/JDepend.html">
+     JDepend</a> parser. This parser &quot;traverses a set of Java source-file
+     directories and generates design-quality metrics for each Java
+     package&quot;.</p></td>
+   </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jpcoverage.html">JProbe</a></td>
+    <td><p>These tasks run the tools from the
+     <a href="http://www.sitraka.com">JProbe</a> suite. This task was written
+      using JProbe Suite Server Side 3.0.</p></td>
+    </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/mmetrics.html">MMetrics</a></td>
+    <td><p>Computes the metrics of a set of Java source files, using the
+     <a href="http://www.webgain.com/products/quality_analyzer/">
+     Metamata Metrics/WebGain Quality Analyzer</a> source-code analyzer,
+     and writes the results to an XML file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/maudit.html">Maudit</a></td>
+    <td><p>Performs static analysis on a set of Java source-code and
+     byte-code files, using the
+     <a href="http://www.webgain.com/products/quality_analyzer/">
+     Metamata Metrics/WebGain Quality Analyzer</a> source-code
+     analyzer.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="compile">Compile Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/depend.html">Depend</a></td>
+    <td><p>Determines which classfiles are out-of-date with respect to their
+     source, removing the classfiles of any other classes that depend on the
+     out-of-date classes, forcing the re-compile of the removed classfiles.
+     Typically used in conjunction with the
+     <a href="CoreTasks/javac.html">Javac</a> task.</p></td>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/javac.html">Javac</a></td>
+    <td><p>Compiles the specified source file(s) within the running
+     (Ant) VM, or in another VM if the <code>fork</code> attribute is
+     specified.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jspc.html">JspC</a></td>
+    <td><p>Runs the JSP compiler. It can be used to precompile JSP pages
+     for fast initial invocation of JSP pages, deployment on a server without
+     the full JDK installed, or simply to syntax-check the pages without
+     deploying them. The <a href="CoreTasks/javac.html">Javac</a> task
+     can be used to compile the generated Java source.
+     (For Weblogic JSP compiles,
+     see the <a href="OptionalTasks/wljspc.html">Wljspc</a> task.)</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/netrexxc.html">NetRexxC</a></td>
+    <td><p>Compiles a
+     <a href="http://www2.hursley.ibm.com/netrexx" target="_top">NetRexx</a>
+     source tree within the running (Ant) VM.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/rmic.html">Rmic</a></td>
+    <td><p>Runs the <i>rmic</i> compiler on the specified file(s).</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/wljspc.html">Wljspc</a></td>
+    <td><p>Compiles JSP pages using Weblogic's JSP compiler,
+     <i>weblogic.jspc</i>. (For non-Weblogic JSP compiles, see the
+     <a href="OptionalTasks/jspc.html">JspC</a> task.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="deploy">Deployment Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/serverdeploy.html">ServerDeploy</a></td>
+    <td><p>Task to run a &quot;hot&quot; deployment tool for vendor-specific
+     J2EE server.
+    </p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="doc">Documentation Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/javadoc.html">Javadoc/<i>Javadoc2</i></a></td>
+    <td><p>Generates code documentation using the <i>javadoc</i> tool.
+     The Javadoc2 task is deprecated; use the Javadoc task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/stylebook.html">Stylebook</a></td>
+    <td><p>Executes the Apache Stylebook documentation generator.
+     Unlike the command-line version of this tool, all three arguments
+     are required to run the Stylebook task.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="ejb">EJB Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/ejb.html">EJB Tasks</a></td>
+    <td><p>(See the documentation describing the EJB tasks.)</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="exec">Execution Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/ant.html">Ant</a></td>
+    <td><p>Runs Ant on a supplied buildfile, optionally
+     passing properties (with possibly new values).
+     This task can be used to build sub-projects.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/antcall.html">AntCall</a></td>
+    <td><p>Runs another target within the same buildfile, optionally
+     passing properties (with possibly new values).</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/apply.html">Apply/<i>ExecOn</i></a></td>
+    <td><p>Executes a system command. When the <code>os</code> attribute is
+     specified, the command is only executed when Ant is run on one
+     of the specified operating systems.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/dependset.html">Dependset</a></td>
+    <td><p>This task compares a set of source files with a set of target
+     files.  If any of the source files is newer than any of
+     the target files, all the target files are removed. </p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/exec.html">Exec</a></td>
+    <td><p>Executes a system command. When the <code>os</code> attribute
+     is specified, the command is only executed when Ant is run on one of
+     the specified operating systems.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/java.html">Java</a></td>
+    <td><p>Executes a Java class within the running (Ant) VM, or in
+     another VM if the <code>fork</code> attribute is specified.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/parallel.html">Parallel</a></td>
+    <td><p>A container task that can contain other Ant tasks.
+     Each nested task specified within the <code>&lt;parallel&gt;</code>
+     tag will be executed in its own thread.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sequential.html">Sequential</a></td>
+    <td><p>A container task that can contain other Ant tasks.
+     The nested tasks are simply executed in sequence. Its primary use is
+     to support the sequential execution of a subset of tasks within
+     the <code>&lt;parallel&gt;</code> tag.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sleep.html">Sleep</a></td>
+    <td><p> A task for suspending execution for a specified period of time.
+     Useful when a build or deployment process requires an interval between
+     tasks.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/subant.html">Subant</a></td>
+    <td><p> Calls a given target for all defined sub-builds. This is an extension of ant for bulk project execution.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/waitfor.html">Waitfor</a></td>
+    <td><p>Blocks execution until a set of specified conditions become true.
+     This task is intended to be used with the
+     <a href="CoreTasks/parallel.html">Parallel</a> task to synchronize
+     a set of processes.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="file">File Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/attrib.html">Attrib</a></td>
+    <td><p>Changes the permissions and/or attributes of a file or all
+    files inside the specified directories. Currently, it has effect
+    only under Windows.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/checksum.html">Checksum</a></td>
+    <td><p>Generates a checksum for a file or set of files. This task can
+     also be used to perform checksum verifications.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/chgrp.html">Chgrp</a></td>
+    <td><p>Changes the group ownership of a file or all files inside
+    the specified directories. Currently, it has effect only under
+    Unix.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/chmod.html">Chmod</a></td>
+    <td><p>Changes the permissions of a file or all files inside the
+     specified directories. Currently, it has effect only under Unix.
+     The permissions are also UNIX style, like the arguments for the
+    <i>chmod</i> command.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/chown.html">Chown</a></td>
+    <td><p>Changes the owner of a file or all files inside the
+    specified directories. Currently, it has effect only under
+    Unix.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/concat.html">Concat</a></td>
+    <td><p>Concatenates multiple files into a single one or to Ant's
+     logging system.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/copy.html">Copy</a></td>
+    <td><p>Copies a file or Fileset to a new file or directory.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/copydir.html"><i>Copydir</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the
+     <a href="CoreTasks/copy.html">Copy</a> task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/copyfile.html"><i>Copyfile</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the
+     <a href="CoreTasks/copy.html">Copy</a> task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/delete.html">Delete</a></td>
+    <td><p>Deletes either a single file, all files and sub-directories
+     in a specified directory, or a set of files specified by one or more
+     <a href="CoreTypes/fileset.html">FileSet</a>s.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/deltree.html"><i>Deltree</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the
+     <a href="CoreTasks/delete.html">Delete</a> task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/filter.html">Filter</a></td>
+    <td><p>Sets a token filter for this project, or reads multiple token
+     filters from a specified file and sets these as filters. Token filters
+     are used by all tasks that perform file-copying operations.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/fixcrlf.html">FixCRLF</a></td>
+    <td><p>Modifies a file to add or remove tabs, carriage returns, linefeeds,
+     and EOF characters.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/get.html">Get</a></td>
+    <td><p>Gets a file from a URL.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/mkdir.html">Mkdir</a></td>
+    <td><p>Creates a directory. Non-existent parent directories are created,
+     when necessary.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/move.html">Move</a></td>
+    <td><p>Moves a file to a new file or directory, or a set(s) of file(s) to
+     a new directory.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/patch.html">Patch</a></td>
+    <td><p>Applies a &quot;diff&quot; file to originals.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/rename.html"><i>Rename</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the <a href="CoreTasks/move.html">Move</a>
+    task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/renameextensions.html">
+     <i>RenameExtensions</i></a></td>
+    <td><p><i>Deprecated</i>. Use the <a href="CoreTasks/move.html">Move</a>
+     task with a <a href="CoreTypes/mapper.html#glob-mapper">glob mapper</a>
+     instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/replace.html">Replace</a></td>
+    <td><p>Replace is a directory-based task for replacing the occurrence
+     of a given string with another string in selected file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/replaceregexp.html">
+     ReplaceRegExp</a></td>
+    <td><p>Directory-based task for replacing the occurrence of a given
+     regular expression with a substitution pattern in a file or set of
+     files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sync.html">Sync</a></td>
+    <td><p>Synchronize two directory trees.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/tempfile.html">Tempfile</a></td>
+    <td><p>Generates a name for a new temporary file and sets the specified
+     property to that name.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/touch.html">Touch</a></td>
+    <td><p>Changes the modification time of a file and possibly creates it at
+     the same time.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="extensions">Java2 Extensions Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-available.html">Jarlib-available</a></td>
+    <td><p>Check whether an extension is present in a FileSet or an
+      ExtensionSet. If the extension is present, the specified property is
+     set.</p>
+    </td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-display.html">Jarlib-display</a></td>
+    <td><p>Display the &quot;Optional Package&quot; and
+      &quot;Package Specification&quot; information contained within the
+      specified jars.</p>
+    </td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-manifest.html">Jarlib-manifest</a></td>
+    <td><p>Task to generate a manifest that declares all the dependencies
+      in manifest. The dependencies are determined by looking in the
+      specified path and searching for Extension/&quot;Optional Package&quot;
+      specifications in the manifests of the jars.</p>
+    </td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-resolve.html">Jarlib-resolve</a></td>
+    <td><p>Try to locate a jar to satisfy an extension, and place the
+      location of the jar into the specified property.</p>
+    </td>
+  </tr>
+</table>
+
+<p></p>
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="log">Logging Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/recorder.html">Record</a></td>
+    <td><p>Runs a listener that records the logging output of the
+     build-process events to a file. Several recorders can exist
+     at the same time. Each recorder is associated with a file.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="mail">Mail Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/mail.html">Mail</a></td>
+    <td><p>A task to send SMTP email.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/mimemail.html">MimeMail</a></td>
+    <td><p><i>Deprecated</i>. Use the <a href="CoreTasks/mail.html">Mail</a>
+     task instead.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="misc">Miscellaneous Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/defaultexcludes.html">Defaultexcludes</a></td>
+    <td><p>Modify the list of default exclude patterns from within
+    your build file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/echo.html">Echo</a></td>
+    <td><p>Echoes text to <code>System.out</code> or to a file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/fail.html">Fail</a></td>
+    <td><p>Exits the current build by throwing a BuildException,
+     optionally printing additional information.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/genkey.html">GenKey</a></td>
+    <td><p>Generates a key in keystore.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/input.html">Input</a></td>
+    <td><p>Allows user interaction during the build process by displaying a
+     message and reading a line of input from the console.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/script.html">Script</a></td>
+    <td><p>Executes a script in a
+     <a href="http://jakarta.apache.org/bsf/"
+      target="_top">Apache BSF</a>-supported language.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sound.html">Sound</a></td>
+    <td><p>Plays a sound file at the end of the build, according to whether
+     the build failed or succeeded.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/splash.html">Splash</a></td>
+    <td><p>Displays a splash screen.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sql.html">Sql</a></td>
+    <td><p>Executes a series of SQL statements via JDBC to a database.
+     Statements can either be read in from a text file using the
+     <code>src</code> attribute, or from between the enclosing SQL
+     tags.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/taskdef.html">Taskdef</a></td>
+    <td><p>Adds a task definition to the current project, such that this
+     new task can be used in the current project.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/tstamp.html">TStamp</a></td>
+    <td><p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and
+     <code>TODAY</code> properties in the current project, based on
+     the current date and time.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/typedef.html">Typedef</a></td>
+    <td><p>Adds a data-type definition to the current project, such that this
+     new type can be used in the current project.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/xmlvalidate.html">XmlValidate</a></td>
+    <td><p>Checks that XML files are valid (or only well-formed). This task
+     uses the XML parser that is currently used by Ant by default, but any SAX1/2
+     parser can be specified, if needed.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="net">.NET Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/dotnet.html">.NET Tasks</a></td>
+    <td><p>(See the documentation describing the .NET tasks.)</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="preproc">Pre-process Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/antlr.html">ANTLR</a></td>
+    <td><p>Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a>
+     Translator generator on a grammar file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/antstructure.html">AntStructure</a></td>
+    <td><p>Generates a DTD for Ant buildfiles that contains information
+     about all tasks currently known to Ant.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/icontract.html">IContract</a></td>
+    <td><p>Instruments Java classes using the
+     <a href="http://www.reliable-systems.com/tools/">iContract</a> DBC
+     preprocessor. This task can generate a properties file for
+     <a href="http://home.sol.no/~hellesoy/icplus.html">iControl</a>,
+     a graphical user interface that lets you turn on/off assertions.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/import.html">Import</a></td>
+    <td><p>Import another build file and potentially override targets
+    in it with targets of your own.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/javacc.html">JavaCC</a></td>
+    <td><p>Invokes the
+     <a HREF="http://javacc.dev.java.net/" target="_top">
+     JavaCC</a> compiler-compiler on a grammar file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/javah.html">Javah</a></td>
+    <td><p>Generates JNI headers from a Java class.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jjdoc.html">JJDoc</a></td>
+    <td><p>Invokes the <a href="http://javacc.dev.java.net/">
+     JJDoc</a> documentation generator for the JavaCC compiler-compiler.
+     JJDoc takes a JavaCC parser specification and produces documentation
+     for the BNF grammar.  It can operate in three modes, determined by
+     command line options. This task only invokes JJDoc if the grammar file
+     is newer than the generated BNF grammar documentation.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jjtree.html">JJTree</a></td>
+    <td><p>Invokes the <a href="http://javacc.dev.java.net/">
+     JJTree</a> preprocessor for the JavaCC compiler-compiler. It inserts
+     parse-tree building actions at various places in the JavaCC source that
+     it generates. The output of JJTree is run through JavaCC to create the
+     parser. This task only invokes JJTree if the grammar file is newer than
+     the generated JavaCC file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/macrodef.html">Macrodef</a></td>
+    <td><p>Define a new task as a macro built-up upon other tasks.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/mparse.html">MParse</a></td>
+    <td><p>Invokes the Metamata <a HREF="http://www.metamata.com/parse.html">
+     MParse</a> compiler-compiler on a grammar file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/native2ascii.html">
+     Native2Ascii</a></td>
+    <td><p>Converts files from native encodings to ASCII with escaped Unicode.
+      A common usage is to convert source files maintained in a native
+      operating system encoding to ASCII, prior to compilation.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/presetdef.html">Presetdef</a></td>
+    <td><p>Define a new task by instrumenting an existing task with
+    default values for attributes or child elements.</p>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/translate.html">Translate</a></td>
+    <td><p>Identifies keys in files, delimited by special tokens, and
+     translates them with values read from resource bundles.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/style.html">Xslt/Style</a></td>
+    <td><p>Processes a set of documents via XSLT.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="prop">Property Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/available.html">Available</a></td>
+    <td><p>Sets a property if a specified file, directory, class in the
+     classpath, or JVM system resource is available at runtime.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/basename.html">Basename</a></td>
+    <td><p>Sets a property to the last element of a specified path.
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/buildnumber.html">BuildNumber</a></td>
+    <td><p>Task that can be used to track build numbers.
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/condition.html">Condition</a></td>
+    <td><p>Sets a property if a certain condition holds true - this is a
+     generalization of <a href="CoreTasks/available.html">Available</a> and
+     <a href="CoreTasks/uptodate.html">Uptodate</a>.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/dirname.html">Dirname</a></td>
+    <td><p>Sets a property to the value of the specified file up to,
+     but not including, the last path element.
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/echoproperties.html">Echoproperties</a><br>
+
+    </td>
+    <td><p>Lists the current properties.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/loadfile.html">LoadFile</a></td>
+    <td><p>Loads a file into a property.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/loadproperties.html">LoadProperties</a></td>
+    <td><p>Load a file's contents as Ant properties. This task is
+     equivalent to using <code>&lt;property file=&quot;...&quot;/&gt;</code>
+     except that it supports nested <code>&lt;filterchain&gt;</code> elements,
+     and it cannot be specified outside a target.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/pathconvert.html">PathConvert</a></td>
+    <td><p>Converts a nested path, path reference, filelist reference, or
+     fileset reference to the form usable on a specified platform and/or
+     to a list of items separated by the specified separator and stores
+     the result in the specified property.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/property.html">Property</a></td>
+    <td><p>Sets a property (by name and value), or set of properties
+     (from a file or resource) in the project.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/propertyfile.html">
+     PropertyFile</a></td>
+    <td><p>Creates or modifies property files. Useful when wanting to make
+     unattended modifications to configuration files for application
+     servers and applications. Typically used for things such as
+     automatically generating a build number and saving it to a build
+     properties file, or doing date manipulation.<p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/uptodate.html">Uptodate</a></td>
+    <td><p>Sets a property if a given target file is newer than a set of
+     source files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/whichresource.html">Whichresource</a></td>
+    <td><p>Find a class or resource.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/xmlproperty.html">XmlProperty</a></td>
+    <td><p>Loads property values from a well-formed XML file.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="remote">Remote Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/ftp.html">FTP</a></td>
+    <td><p>Implements a basic FTP client that can send, receive,
+     list, and delete files, and create directories.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/rexec.html">Rexec</a></td>
+    <td><p>Task to automate a remote rexec session.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/scp.html">Scp</a></td>
+    <td><p>Copy files to or from a remote server using SSH.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/setproxy.html">setproxy</a></td>
+    <td><p>Sets Java's web proxy properties, so that tasks and code run
+ in the same JVM can have through-the-firewall access to remote web sites.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sshexec.html">Sshexec</a></td>
+    <td><p>Execute a command on a remote server using SSH.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/telnet.html">Telnet</a></td>
+    <td><p>Task to automate a remote <i>telnet</i> session. This task uses
+     nested <code>&lt;read&gt;</code> and <code>&lt;write&gt;</code> tags
+     to indicate strings to wait for and specify text to send.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="scm">SCM Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/cvs.html">Cvs</a></td>
+    <td><p>Handles packages/modules retrieved from a
+     <a href="http://www.cvshome.org/" target="_top">CVS</a>
+     repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/changelog.html">CvsChangeLog</a></td>
+    <td><p>Generates an XML report of the changes recorded in a
+     <a href="http://www.cvshome.org/" target="_top">CVS</a>
+     repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/cvspass.html">CVSPass</a></td>
+    <td><p>Adds entries to a .cvspass file. Adding entries to this file
+     has the same affect as a <i>cvs login</i> command.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/cvstagdiff.html">CvsTagDiff</a></td>
+    <td><p>Generates an XML-formatted report file of the changes between
+    two tags or dates recorded in a <a href="http://www.cvshome.org/"
+    target="_top">CVS</a> repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/clearcase.html">ClearCase</a></td>
+    <td><p>Tasks to perform the ClearCase cleartool <i>checkin</i>, <i>checkout</i>,
+     <i>uncheckout</i>, <i>update</i>, <i>lock</i>, <i>unlock</i>, <i>mklbtype</i>, <i>rmtype</i>, <i>mklabel</i>, <i>mkattr</i>, <i>mkdir</i>, <i>mkelem</i>, and <i>mkbl</i> commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/ccm.html">Continuus/Synergy</a></td>
+    <td><p>Tasks to perform the Continuus <i>ccmcheckin</i>,
+     <i>ccmcheckout</i>, <i>ccmcheckintask</i>, <i>ccmreconfigure</i>, and
+     <i>ccmcreateTask</i> commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/vss.html">
+     Microsoft Visual SourceSafe</a></td>
+    <td><p>Tasks to perform the Visual SourceSafe <i>vssget</i>,
+     <i>vsslabel</i>, <i>vsshistory</i>, <i>vsscheckin</i>,
+     <i>vsscheckout</i>, <i>vssadd</i>, <i>vsscp</i>, and <i>vsscreate</i>
+     commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/perforce.html">Perforce</a></td>
+    <td><p>Tasks to perform the Perforce <i>p4sync</i>, <i>p4change</i>,
+     <i>p4edit</i>, <i>p4submit</i>, <i>p4have</i>, <i>p4label</i>,
+     <i>p4counter</i>, <i>p4reopen</i>, <i>p4revert</i>, and <i>p4add</i>
+     commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/pvcstask.html">Pvcs</a></td>
+    <td><p>Allows the user extract the latest edition of the source code
+     from a PVCS repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sos.html">SourceOffSite</a></td>
+    <td><p>Tasks to perform the SourceOffSite <i>sosget</i>, <i>soslabel</i>,
+     <i>soscheckin</i>, and <i>soscheckout</i> commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/starteam.html">StarTeam</a></td>
+    <td><p>Tasks to perform the StarTeam <i>stcheckout</i>, <i>stcheckin</i>,
+     <i>stlabel</i>, and <i>stlist</i> commands. The
+     <a href="OptionalTasks/starteam.html#starteam">Starteam</a> task
+     is deprecated; use
+     <a href="OptionalTasks/starteam.html#stcheckout">STCheckout</a>
+     instead.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="testing">Testing Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/junit.html">Junit</a></td>
+    <td><p>Runs tests from the <a href="http://www.junit.org">Junit</a>
+     testing framework. This task has been tested with JUnit 3.0 up to
+     JUnit 3.7; it won't work with versions prior to JUnit 3.0.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/junitreport.html">JunitReport</a></td>
+    <td><p>Merges the individual XML files generated by the
+     <a href="OptionalTasks/junit.html">Junit</a> task and applies a
+     stylesheet on the resulting merged document to provide a browsable
+     report of the testcases results.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/test.html">Test</a></td>
+    <td><p>Executes a unit test in the <code>org.apache.testlet</code>
+     framework.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<th align="left">
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="vaj">Visual Age for Java Tasks</a></th>
+</font>
+<font size="-1" face="arial,helvetica,sanserif">
+<th align="right"><a href="#top">[Back to top]</a></th>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <th nowrap>Task Name</th>
+    <th>Description</th>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="Integration/VAJAntTool.html">
+     Visual Age for Java Tasks</a></td>
+    <td><p>(See the documentation describing the Visual Age for Java
+     tasks.)</p></td>
+  </tr>
+</table>
+
+
+<hr>
+<p align="center">Copyright &copy; 2001-2004 The Apache Software Foundation.
+All rights Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/toc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/toc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/toc.html	(revision 14989)
@@ -0,0 +1,31 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2>Table of Contents</h2>
+<a href="intro.html">Introduction</a><br>
+<!--a href="installlist.html" target="navFrame">Installing Ant</a><br-->
+<a href="usinglist.html" target="navFrame">Using Ant</a><br>
+<!--a href="runninglist.html" target="navFrame">Running Ant</a><br-->
+<a href="anttaskslist.html" target="navFrame"><b>Ant Tasks</b></a><br>
+<a href="conceptstypeslist.html" target="navFrame">Concepts and Types</a><br>
+<!--a href="listeners.html" target="mainFrame">Loggers &amp; Listeners</a><br-->
+<a href="ide.html" target="navFrame">Editor/IDE Integration</a><br>
+<a href="developlist.html" target="navFrame">Developing with Ant</a><br>
+<a href="api/index.html" target="_top">Ant API</a><br>
+<a href="LICENSE">License</a><br>
+<a href="feedback.html">Feedback and Troubleshooting</a><br>
+<br>
+<a href="credits.html">Authors</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/tutorial-writing-tasks.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/tutorial-writing-tasks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/tutorial-writing-tasks.html	(revision 14989)
@@ -0,0 +1,760 @@
+<html>
+<head>
+  <title>Tutorial: Writing Tasks</title>
+  <meta name="author" content="Jan Matï¿œne">
+  <style type="text/css">
+  <!--
+  .code { background: #EFEFEF; margin-top: }
+  .output { color: #FFFFFF; background: #837A67; }
+  -->
+  </style>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+<body>
+<h1>Tutorial: Writing Tasks</h1>
+
+<p>This document provides a step by step tutorial for writing
+tasks.</p>
+<h2>Content</h2>
+<p><ul>
+<li><a href="#buildenvironment">Set up the build environment</a></li>
+<li><a href="#write1">Write the Task</a></li>
+<li><a href="#use1">Use the Task</a></li>
+<li><a href="#TaskAdapter">Integration with TaskAdapter</a></li>
+<li><a href="#derivingFromTask">Deriving from Ant's Task</a></li>
+<li><a href="#attributes">Attributes</a></li>
+<li><a href="#NestedText">Nested Text</a></li>
+<li><a href="#NestedElements">Nested Elements</a></li>
+<li><a href="#complex">Our task in a little more complex version</a></li>
+<li><a href="#TestingTasks">Test the Task</a></li>
+<li><a href="#resources">Resources</a></li>
+</ul></p>
+
+<a name="buildenvironment"></a>
+<h2>Set up the build environment</h2>
+<p>Ant builds itself, we are using Ant too (why we would write
+a task if not? :-) therefore we should use Ant for our build.<p>
+<p>We choose a directory as root directory. All things will be done
+here if I say nothing different. I will reference this directory
+as <i>root-directory</i> of our project. In this root-directory we
+create a text file names <i>build.xml</i>. What should Ant do for us?
+<ul>
+<li>compiles my stuff</li>
+<li>make the jar, so that I can deploy it</li>
+<li>clean up everything</li>
+</ul>
+So the buildfile contains three targets.
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?>
+&lt;project name="MyTask" basedir="." default="jar">
+
+    &lt;target name="clean" description="Delete all generated files">
+        &lt;delete dir="classes"/>
+        &lt;delete file="MyTasks.jar"/>
+    &lt;/target>
+
+    &lt;target name="compile" description="Compiles the Task">
+        &lt;javac srcdir="src" destdir="classes"/>
+    &lt;/target>
+
+    &lt;target name="jar" description="JARs the Task">
+        &lt;jar destfile="MyTask.jar" basedir="classes"/>
+    &lt;/target>
+
+&lt;/project>
+</pre>
+
+This buildfile uses often the same value (src, classes, MyTask.jar), so we should rewrite that
+using &lt;property>s. On second there are some handicaps: &lt;javac> requires that the destination
+directory exists; a call of "clean" with a non existing classes directory will fail; "jar" requires
+the execution of some steps bofore. So the refactored code is:
+
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="MyTask" basedir="." default="jar"&gt;
+
+    <b>&lt;property name="src.dir" value="src"/&gt;</b>
+    <b>&lt;property name="classes.dir" value="classes"/&gt;</b>
+
+    &lt;target name="clean" description="Delete all generated files"&gt;
+        &lt;delete dir="<b>${classes.dir}</b>" <b>failonerror="false"</b>/&gt;
+        &lt;delete file="<b>${ant.project.name}.jar</b>"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile" description="Compiles the Task"&gt;
+        <b>&lt;mkdir dir="${classes.dir}"/&gt;</b>
+        &lt;javac srcdir="<b>${src.dir}</b>" destdir="${classes.dir}"/&gt;
+    &lt;/target>
+
+    &lt;target name="jar" description="JARs the Task" <b>depends="compile"</b>&gt;
+        &lt;jar destfile="${ant.project.name}.jar" basedir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre>
+<i>ant.project.name</i> is one of the
+<a href="http://ant.apache.org/manual/using.html#built-in-props" target="_blank">
+build-in properties [1]</a> of Ant.
+
+
+<a name="write1"></a>
+<h2>Write the Task</h2>
+
+Now we write the simplest Task - a HelloWorld-Task (what else?). Create a text file
+<i>HelloWorld.java</i> in the src-directory with:
+<pre class="code">
+public class HelloWorld {
+    public void execute() {
+        System.out.println("Hello World");
+    }
+}
+</pre>
+and we can compile and jar it with <tt>ant</tt> (default target is "jar" and via
+its <i>depends</i>-clause the "compile" is executed before).
+
+
+
+<a name="use1"></a>
+<h2>Use the Task</h2>
+<p>But after creating the jar we want to use our new Task. Therefore we need a
+new target "use". Before we can use our new task we have to declare it with
+<a href="http://ant.apache.org/manual/CoreTasks/taskdef.html" target="_blank">
+&lt;taskdef> [2]</a>. And for easier process we change the default clause:
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?>
+&lt;project name="MyTask" basedir="." default="<b>use</b>">
+
+    ...
+
+    <b>&lt;target name="use" description="Use the Task" depends="jar">
+        &lt;taskdef name="helloworld" classname="HelloWorld" classpath="${ant.project.name}.jar"/>
+        &lt;helloworld/>
+    &lt;/target></b>
+
+&lt;/project>
+</pre>
+
+Important is the <i>classpath</i>-attribute. Ant searches in its /lib directory for
+tasks and our task isn't there. So we have to provide the right location. </p>
+
+<p>Now we can type in <tt>ant</tt> and all should work ...
+<pre class="output">
+Buildfile: build.xml
+
+compile:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes
+    [javac] Compiling 1 source file to C:\tmp\anttests\MyFirstTask\classes
+
+jar:
+      [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar
+
+use:
+[helloworld] Hello World
+
+BUILD SUCCESSFUL
+Total time: 3 seconds
+</pre>
+
+
+
+<a name="TaskAdapter"></a>
+<h2>Integration with TaskAdapter</h2>
+<p>Our class has nothing to do with Ant. It extends no superclass and implements
+no interface. How does Ant know to integrate? Via name convention: our class provides
+a method with signature <tt>public void execute()</tt>. This class is wrapped by Ant's
+<tt>org.apache.tools.ant.TaskAdapter</tt> which is a task and uses reflection for
+setting a reference to the project and calling the <i>execute()</i> method.</p>
+
+<p><i>Setting a reference to the project</i>? Could be interesting. The Project class
+gives us some nice abilities: access to Ant's logging facilities getting and setting
+properties and much more. So we try to use that class:
+<pre class="code">
+import org.apache.tools.ant.Project;
+
+public class HelloWorld {
+
+    private Project project;
+
+    public void setProject(Project proj) {
+        project = proj;
+    }
+
+    public void execute() {
+        String message = project.getProperty("ant.project.name");
+        project.log("Here is project '" + message + "'.", Project.MSG_INFO);
+    }
+}
+</pre>
+and the execution with <tt>ant</tt> will show us the expected
+<pre class="output">
+use:
+Here is project 'MyTask'.
+</pre></p>
+
+
+<a name="derivingFromTask"></a>
+<h2>Deriving from Ant's Task</h2>
+<p>Ok, that works ... But usually you will extend <tt>org.apache.tools.ant.Task</tt>.
+That class is integrated in Ant, get's the project-reference, provides documentation
+fiels, provides easier access to the logging facility and (very useful) gives you
+the exact location where <i>in the buildfile</i> this task instance is used.</p>
+
+<p>Oki-doki - let's us use some of these:
+<pre class="code">
+import org.apache.tools.ant.Task;
+
+public class HelloWorld extends Task {
+    public void execute() {
+        // use of the reference to Project-instance
+        String message = getProject().getProperty("ant.project.name");
+
+        // Task's log method
+        log("Here is project '" + message + "'.");
+
+        // where this task is used?
+        log("I am used in: " +  getLocation() );
+    }
+}
+</pre>
+which gives us when running
+<pre class="output">
+use:
+[helloworld] Here is project 'MyTask'.
+[helloworld] I am used in: C:\tmp\anttests\MyFirstTask\build.xml:23:
+</pre>
+
+
+<a name="attributes"></a>
+<h2>Attributes</h2>
+<p>Now we want to specify the text of our message (it seems that we are
+rewriting the &lt;echo/> task :-). First we well do that with an attribute.
+It is very easy - for each attribute provide a <tt>public void set&lt;attributename>(&lt;type>
+newValue)</tt> method and Ant will do the rest via reflection.</p>
+<pre class="code">
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.BuildException;
+
+public class HelloWorld extends Task {
+
+    String message;
+    public void setMessage(String msg) {
+        message = msg;
+    }
+
+    public void execute() {
+        if (message==null) {
+            throw new BuildException("No message set.");
+        }
+        log(message);
+    }
+
+}
+</pre>
+<p>Oh, what's that in execute()? Throw a <i>BuildException</i>? Yes, that's the usual
+way to show Ant that something important is missed and complete build should fail. The
+string provided there is written as build-failes-message. Here it's necessary because
+the log() method can't handle a <i>null</i> value as parameter and throws a NullPointerException.
+(Of course you can initialize the <i>message</i> with a default string.)</p>
+
+<p>After that we have to modify our buildfile:
+<pre class="code">
+    &lt;target name="use" description="Use the Task" depends="jar">
+        &lt;taskdef name="helloworld"
+                 classname="HelloWorld"
+                 classpath="${ant.project.name}.jar"/>
+        &lt;helloworld <b>message="Hello World"</b>/>
+    &lt;/target>
+</pre>
+That's all.</p>
+
+<p>Some background for working with attributes: Ant supports any of these datatypes as
+arguments of the set-method:<ul>
+<li>elementary data type like <i>int</i>, <i>long</i>, ...</li>
+<li>its wrapper classes like <i>java.lang.Integer</i>, <i>java.lang.Long</i>, ...</li>
+<li><i>java.lang.String</i></li>
+<li>some more classes (e.g. <i>java.io.File</i>; see
+    <a href="http://ant.apache.org/manual/develop.html#set-magic">Manual
+    'Writing Your Own Task' [3]</a>)</li>
+</ul>
+Before calling the set-method all properties are resolved. So a <tt>&lt;helloworld message="${msg}"/></tt>
+would not set the message string to "${msg}" if there is a property "msg" with a set value.
+
+
+<a name="NestedText"></a>
+<h2>Nested Text</h2>
+<p>Maybe you have used the &lt;echo> task in a way like <tt>&lt;echo>Hello World&lt;/echo></tt>.
+For that you have to provide a <tt>public void addText(String text)</tt> method.
+<pre class="code">
+...
+public class HelloWorld extends Task {
+    ...
+    public void addText(String text) {
+        message = text;
+    }
+    ...
+}
+</pre>
+But here properties are <b>not</b> resolved! For resolving properties we have to use
+Project's <tt>replaceProperties(String propname) : String</tt> method which takes the
+property name as argument and returns its value (or ${propname} if not set).</p>
+
+
+<a name="NestedElements"></a>
+<h2>Nested Elements</h2>
+<p>There are several ways for inserting the ability of handling nested elements. See
+the <a href="http://ant.apache.org/manual/develop.html#nested-elements">Manual [4]</a> for other.
+We use the first way of the three described ways. There are several steps for that:<ol>
+<li>We create a class for collecting all the infos the nested element should contain.
+  This class is created by the same rules for attributes and nested elements
+  as for the task (set&lt;attributename>() methods). </li>
+<li>The task holds multiple instances of this class in a list.</li>
+<li>A factory method instantiates an object, saves the reference in the list
+  and returns it to Ant Core.</li>
+<li>The execute() method iterates over the list and evaluates its values.</li>
+</li></p>
+<pre class="code">
+import java.util.Vector;
+import java.util.Iterator;
+...
+    public void execute() {
+        if (message!=null) log(message);
+        for (Iterator it=messages.iterator(); it.hasNext(); ) {      <b>// 4</b>
+            Message msg = (Message)it.next();
+            log(msg.getMsg());
+        }
+    }
+
+
+    Vector messages = new Vector();                                  <b>// 2</b>
+
+    public Message createMessage() {                                 <b>// 3</b>
+        Message msg = new Message();
+        messages.add(msg);
+        return msg;
+    }
+
+    public class Message {                                           <b>// 1</b>
+        public Message() {}
+
+        String msg;
+        public void setMsg(String msg) { this.msg = msg; }
+        public String getMsg() { return msg; }
+    }
+...
+</pre>
+<p>Then we can use the new nested element. But where is xml-name for that defined?
+The mapping XML-name : classname is defined in the factory method:
+<tt>public <i>classname</i> create<i>XML-name</i>()</tt>. Therefore we write in
+the buildfile
+<pre class="code">
+        &lt;helloworld>
+            &lt;message msg="Nested Element 1"/>
+            &lt;message msg="Nested Element 2"/>
+        &lt;/helloworld>
+</pre>
+
+
+<a name="complex"></a>
+<h2>Our task in a little more complex version</h2>
+<p>For recapitulation now a little refactored buildfile:
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?>
+&lt;project name="MyTask" basedir="." default="use">
+
+    &lt;property name="src.dir" value="src"/>
+    &lt;property name="classes.dir" value="classes"/>
+
+    &lt;target name="clean" description="Delete all generated files">
+        &lt;delete dir="${classes.dir}" failonerror="false"/>
+        &lt;delete file="${ant.project.name}.jar"/>
+    &lt;/target>
+
+    &lt;target name="compile" description="Compiles the Task">
+        &lt;mkdir dir="${classes.dir}"/>
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}"/>
+    &lt;/target>
+
+    &lt;target name="jar" description="JARs the Task" depends="compile">
+        &lt;jar destfile="${ant.project.name}.jar" basedir="${classes.dir}"/>
+    &lt;/target>
+
+
+    &lt;target name="use.init"
+            description="Taskdef the HelloWorld-Task"
+            depends="jar">
+        &lt;taskdef name="helloworld"
+                 classname="HelloWorld"
+                 classpath="${ant.project.name}.jar"/>
+    &lt;/target>
+
+
+    &lt;target name="use.without"
+            description="Use without any"
+            depends="use.init">
+        &lt;helloworld/>
+    &lt;/target>
+
+    &lt;target name="use.message"
+            description="Use with attribute 'message'"
+            depends="use.init">
+        &lt;helloworld message="attribute-text"/>
+    &lt;/target>
+
+    &lt;target name="use.fail"
+            description="Use with attribute 'fail'"
+            depends="use.init">
+        &lt;helloworld fail="true"/>
+    &lt;/target>
+
+    &lt;target name="use.nestedText"
+            description="Use with nested text"
+            depends="use.init">
+        &lt;helloworld>nested-text&lt;/helloworld>
+    &lt;/target>
+
+    &lt;target name="use.nestedElement"
+            description="Use with nested 'message'"
+            depends="use.init">
+        &lt;helloworld>
+            &lt;message msg="Nested Element 1"/>
+            &lt;message msg="Nested Element 2"/>
+        &lt;/helloworld>
+    &lt;/target>
+
+
+    &lt;target name="use"
+            description="Try all (w/out use.fail)"
+            depends="use.without,use.message,use.nestedText,use.nestedElement"
+    />
+
+&lt;/project>
+</pre>
+
+And the code of the task:
+<pre class="code">
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.BuildException;
+import java.util.Vector;
+import java.util.Iterator;
+
+/**
+ * The task of the tutorial.
+ * Print a message or let the build fail.
+ * @author Jan Matï¿œne
+ * @since 2003-08-19
+ */
+public class HelloWorld extends Task {
+
+
+    /** The message to print. As attribute. */
+    String message;
+    public void setMessage(String msg) {
+        message = msg;
+    }
+
+    /** Should the build fail? Defaults to <i>false</i>. As attribute. */
+    boolean fail = false;
+    public void setFail(boolean b) {
+        fail = b;
+    }
+
+    /** Support for nested text. */
+    public void addText(String text) {
+        message = text;
+    }
+
+
+    /** Do the work. */
+    public void execute() {
+        // handle attribute 'fail'
+        if (fail) throw new BuildException("Fail requested.");
+
+        // handle attribute 'message' and nested text
+        if (message!=null) log(message);
+
+        // handle nested elements
+        for (Iterator it=messages.iterator(); it.hasNext(); ) {
+            Message msg = (Message)it.next();
+            log(msg.getMsg());
+        }
+    }
+
+
+    /** Store nested 'message's. */
+    Vector messages = new Vector();
+
+    /** Factory method for creating nested 'message's. */
+    public Message createMessage() {
+        Message msg = new Message();
+        messages.add(msg);
+        return msg;
+    }
+
+    /** A nested 'message'. */
+    public class Message {
+        // Bean constructor
+        public Message() {}
+
+        /** Message to print. */
+        String msg;
+        public void setMsg(String msg) { this.msg = msg; }
+        public String getMsg() { return msg; }
+    }
+
+}
+</pre>
+
+And it works:
+<pre class="output">
+C:\tmp\anttests\MyFirstTask>ant
+Buildfile: build.xml
+
+compile:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes
+    [javac] Compiling 1 source file to C:\tmp\anttests\MyFirstTask\classes
+
+jar:
+      [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar
+
+use.init:
+
+use.without:
+
+use.message:
+[helloworld] attribute-text
+
+use.nestedText:
+[helloworld] nested-text
+
+use.nestedElement:
+[helloworld]
+[helloworld]
+[helloworld]
+[helloworld]
+[helloworld] Nested Element 1
+[helloworld] Nested Element 2
+
+use:
+
+BUILD SUCCESSFUL
+Total time: 3 seconds
+C:\tmp\anttests\MyFirstTask>ant use.fail
+Buildfile: build.xml
+
+compile:
+
+jar:
+
+use.init:
+
+use.fail:
+
+BUILD FAILED
+C:\tmp\anttests\MyFirstTask\build.xml:36: Fail requested.
+
+Total time: 1 second
+C:\tmp\anttests\MyFirstTask>
+</pre>
+Next step: test ...
+
+
+
+<a name="TestingTasks"></a>
+<h2>Test the Task</h2>
+<p>We have written a test already: the use.* tasks in the buildfile. But its
+difficult to test that automatically. Common (and in Ant) used is JUnit for
+that. For testing tasks Ant provides a baseclass <tt>org.apache.tools.ant.BuildFileTest</tt>.
+This class extends <tt>junit.framework.TestCase</tt> and can therefore be integrated
+into the unit tests. But this class provides some for testing tasks useful methods:
+initialize Ant, load a buildfile, execute targets,
+expecting BuildExceptions with a specified text, expect a special text
+in the output log ... </p>
+
+<p>In Ant it is usual that the testcase has the same name as the task with a prepending
+<i>Test</i>, therefore we will create a file <i>HelloWorldTest.java</i>. Because we
+have a very small project we can put this file into <i>src</i> directory (Ant's own
+testclasses are in /src/testcases/...). Because we have already written our tests
+for "hand-test" we can use that for automatic tests, too. But there is one little
+problem we have to solve: all test supporting classes are not part of the binary
+distribution of Ant. So you can build the special jar file from source distro with
+target "test-jar" or you can download a nightly build from
+<a href="http://gump.covalent.net/jars/latest/ant/ant-testutil.jar">
+http://gump.covalent.net/jars/latest/ant/ant-testutil.jar [5]</a>.</p>
+
+<p>For executing the test and creating a report we need the optional tasks &lt;junit>
+and &lt;junitreport>. So we add to the buildfile:
+<pre class="code">
+...
+<font color="#9F9F9F">&lt;project name="MyTask" basedir="." </font>default="test"<font color="#9F9F9F">&gt;</font>
+...
+    &lt;property name="ant.test.lib" value="ant-testutil.jar"/>
+    &lt;property name="report.dir"   value="report"/>
+    &lt;property name="junit.out.dir.xml"  value="${report.dir}/junit/xml"/>
+    &lt;property name="junit.out.dir.html" value="${report.dir}/junit/html"/>
+
+    &lt;path id="classpath.run">
+        &lt;path path="${java.class.path}"/>
+        &lt;path location="${ant.project.name}.jar"/>
+    &lt;/path>
+
+    &lt;path id="classpath.test">
+        &lt;path refid="classpath.run"/>
+        &lt;path location="${ant.test.lib}"/>
+    &lt;/path>
+
+    &lt;target name="clean" description="Delete all generated files">
+        &lt;delete failonerror="false" includeEmptyDirs="true">
+            &lt;fileset dir="." includes="${ant.project.name}.jar"/>
+            &lt;fileset dir="${classes.dir}"/>
+            &lt;fileset dir="${report.dir}"/>
+        &lt;/delete>
+    &lt;/target>
+
+    <font color="#9F9F9F">&lt;target name="compile" description="Compiles the Task">
+        &lt;mkdir dir="${classes.dir}"/>
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}" </font>classpath="${ant.test.lib}"<font color="#9F9F9F">/>
+    &lt;/target></font>
+...
+    &lt;target name="junit" description="Runs the unit tests" depends="jar">
+        &lt;delete dir="${junit.out.dir.xml}" />
+        &lt;mkdir  dir="${junit.out.dir.xml}" />
+        &lt;junit printsummary="yes" haltonfailure="no">
+            &lt;classpath refid="classpath.test"/>
+            &lt;formatter type="xml"/>
+            &lt;batchtest fork="yes" todir="${junit.out.dir.xml}">
+                &lt;fileset dir="${src.dir}" includes="**/*Test.java"/>
+            &lt;/batchtest>
+        &lt;/junit>
+    &lt;/target>
+
+    &lt;target name="junitreport" description="Create a report for the rest result">
+        &lt;mkdir dir="${junit.out.dir.html}" />
+        &lt;junitreport todir="${junit.out.dir.html}">
+            &lt;fileset dir="${junit.out.dir.xml}">
+                &lt;include name="*.xml"/>
+            &lt;/fileset>
+            &lt;report format="frames" todir="${junit.out.dir.html}"/>
+        &lt;/junitreport>
+    &lt;/target>
+
+    &lt;target name="test"
+            depends="junit,junitreport"
+            description="Runs unit tests and creates a report"
+    />
+...
+</pre></p>
+
+<p>Back to the <i>src/HelloWorldTest.java</i>. We create a class extending
+<i>BuildFileTest</i> with String-constructor (JUnit-standard), a <i>setUp()</i>
+method initializing Ant and for each testcase (targets use.*) a <i>testXX()</i>
+method invoking that target.
+<pre class="code">
+import org.apache.tools.ant.BuildFileTest;
+
+public class HelloWorldTest extends BuildFileTest {
+
+    public HelloWorldTest(String s) {
+        super(s);
+    }
+
+    public void setUp() {
+        // initialize Ant
+        configureProject("build.xml");
+    }
+
+    public void testWithout() {
+        executeTarget("use.without");
+        assertEquals("Message was logged but should not.", getLog(), "");
+    }
+
+    public void testMessage() {
+        // execute target 'use.nestedText' and expect a message
+        // 'attribute-text' in the log
+        expectLog("use.message", "attribute-text");
+    }
+
+    public void testFail() {
+        // execute target 'use.fail' and expect a BuildException
+        // with text 'Fail requested.'
+        expectBuildException("use.fail", "Fail requested.");
+    }
+
+    public void testNestedText() {
+        expectLog("use.nestedText", "nested-text");
+    }
+
+    public void testNestedElement() {
+        executeTarget("use.nestedElement");
+        assertLogContaining("Nested Element 1");
+        assertLogContaining("Nested Element 2");
+    }
+}
+</pre></p>
+
+<p>When starting <tt>ant</tt> we'll get a short message to STDOUT and
+a nice HTML-report.
+<pre class="output">
+C:\tmp\anttests\MyFirstTask>ant
+Buildfile: build.xml
+
+compile:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes
+    [javac] Compiling 2 source files to C:\tmp\anttests\MyFirstTask\classes
+
+jar:
+      [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar
+
+junit:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\report\junit\xml
+    [junit] Running HelloWorldTest
+    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 2,334 sec
+
+
+
+junitreport:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\report\junit\html
+[junitreport] Using Xalan version: Xalan Java 2.4.1
+[junitreport] Transform time: 661ms
+
+test:
+
+BUILD SUCCESSFUL
+Total time: 7 seconds
+C:\tmp\anttests\MyFirstTask>
+</pre></p>
+
+
+<a name="resources"></a>
+<h2>Resources</h2>
+<p>This tutorial and its resources are available via
+<a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22570">BugZilla [6]</a>.
+The ZIP provided there contains<ul>
+<li>this tutorial</li>
+<li>the buildfile (last version)</li>
+<li>the source of the task (last version)</li>
+<li>the source of the unit test (last version)</li>
+<li>the ant-testutil.jar (nightly build of 2003-08-18)</li>
+<li>generated classes</li>
+<li>generated jar</li>
+<li>generated reports</li>
+</ul>
+The last sources and the buildfile are also available
+<a href="tutorial-writing-tasks-src.zip">here [7]</a> inside the manual.
+</p>
+
+
+Used Links:<br/>
+&nbsp;&nbsp;[1] <a href="http://ant.apache.org/manual/using.html#built-in-props">http://ant.apache.org/manual/using.html#built-in-props</a><br>
+&nbsp;&nbsp;[2] <a href="http://ant.apache.org/manual/CoreTasks/taskdef.html">http://ant.apache.org/manual/CoreTasks/taskdef.html</a><br>
+&nbsp;&nbsp;[3] <a href="http://ant.apache.org/manual/develop.html#set-magic">http://ant.apache.org/manual/develop.html#set-magic</a><br>
+&nbsp;&nbsp;[4] <a href="http://ant.apache.org/manual/develop.html#nested-elements">http://ant.apache.org/manual/develop.html#nested-elements</a><br>
+&nbsp;&nbsp;[5] <a href="http://gump.covalent.net/jars/latest/ant/ant-testutil.jar">http://gump.covalent.net/jars/latest/ant/ant-testutil.jar</a><br>
+&nbsp;&nbsp;[6] <a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22570">http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22570</a><br>
+&nbsp;&nbsp;[7] <a href="tutorial-writing-tasks-src.zip">tutorial-writing-tasks-src.zip</a><br>
+
+<hr>
+<p align="center">Copyright &copy; 2003-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/using.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/using.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/using.html	(revision 14989)
@@ -0,0 +1,556 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Writing a Simple Buildfile</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>Using Ant</h1>
+<h2><a name="buildfile">Writing a Simple Buildfile</a></h2>
+<p>Ant's buildfiles are written in XML. Each buildfile contains one project
+and at least one (default) target. Targets contain task elements.
+Each task element of the buildfile can have an <code>id</code> attribute and
+can later be referred to by the value supplied to this. The value has
+to be unique. (For additional information, see the
+<a href="#tasks"> Tasks</a> section below.)</p>
+<h3><a name="projects">Projects</a></h3>
+<p>A <i>project</i> has three attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the project.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">default</td>
+    <td valign="top">the default target to use when no target is supplied.</td>
+    <td align="center" valign="top"><!-- No.  No target will be run if omitted.--> Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the base directory from which all path calculations are
+      done. This attribute might be overridden by setting
+      the &quot;basedir&quot;
+      property beforehand. When this is done, it must be omitted in the
+      project tag. If neither the attribute nor the property have
+      been set, the parent directory of the buildfile will be used.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>Optionally, a description for the project can be provided as a
+top-level <code>&lt;description&gt;</code> element (see the <a
+href="CoreTypes/description.html">description</a> type).</p>
+
+<p>Each project defines one or more <i>targets</i>.
+A target is a set of <i>tasks</i> you want
+to be executed. When starting Ant, you can select which target(s) you
+want to have executed. When no target is given,
+the project's default is used.</p>
+
+<h3><a name="targets">Targets</a></h3>
+<p>A target can depend on other targets. You might have a target for compiling,
+for example, and a target for creating a distributable. You can only build a
+distributable when you have compiled first, so the distribute target
+<i>depends on</i> the compile target. Ant resolves these dependencies.</p>
+<p>It should be noted, however, that Ant's <code>depends</code> attribute
+only specifies the <i>order</i> in which targets should be executed - it
+does not affect whether the target that specifies the dependency(s) gets
+executed if the dependent target(s) did not (need to) run.
+</p>
+<p>Ant tries to execute the targets in the <code>depends</code>
+attribute in the order
+they appear (from left to right). Keep in mind that it is possible that a target
+can get executed earlier when an earlier target depends on it:</p>
+<blockquote>
+<pre>&lt;target name=&quot;A&quot;/&gt;
+&lt;target name=&quot;B&quot; depends=&quot;A&quot;/&gt;
+&lt;target name=&quot;C&quot; depends=&quot;B&quot;/&gt;
+&lt;target name=&quot;D&quot; depends=&quot;C,B,A&quot;/&gt;</pre>
+</blockquote>
+<p>Suppose we want to execute target D. From its
+<code>depends</code> attribute, you
+might think that first target C, then B and then A is executed.
+Wrong! C depends on B, and B depends on A, so first A is executed, then B, then C, and finally D.</p>
+<p>In a chain of dependencies stretching back from a given target such
+as D above, each target gets executed only once, even when more than
+one target depends on it. Thus, executing the D target will first
+result in C being called, which in turn will first call B, which in
+turn will first call A. After A, then B, then C have executed,
+execution returns to the dependency list of D, which will <u>not</u>
+call B and A, since they were already called in process of dependency
+resolution for C and B respectively as dependencies of D. Had no such
+dependencies been discovered in processing C and B, B and A would
+have been executed after C in processing D's dependency list.</p>
+<p>A target also has the ability to perform its execution if (or
+unless) a property has been set. This allows, for example, better
+control on the building process depending on the state of the system
+(java version, OS, command-line property defines, etc.).  To make a target
+<i>sense</i> this property, you should add the <code>if</code> (or
+<code>unless</code>) attribute with the name of the property that the target
+should react to. <strong>Note:</strong> Ant will only check whether
+the property has been set, the value doesn't matter.  A property set
+to the empty string is still an existing property.  For example:</p>
+<blockquote>
+  <pre>&lt;target name=&quot;build-module-A&quot; if=&quot;module-A-present&quot;/&gt;</pre>
+  <pre>&lt;target name=&quot;build-own-fake-module-A&quot; unless=&quot;module-A-present&quot;/&gt;</pre>
+</blockquote>
+<p>In the first example, if the <code>module-A-present</code>
+property is set (to any value), the target will be run. In the second
+example, if the <code>module-A-present</code> property is set
+(again, to any value), the target will not be run.
+</p>
+<p>If no <code>if</code> and no <code>unless</code> attribute is present,
+the target will always be executed.</p>
+<p>The optional <code>description</code> attribute can be used to provide a one-line description of this target, which is printed by the
+<nobr><code>-projecthelp</code></nobr> command-line option. Targets
+without such a description are deemed internal and will not be listed,
+unless either the <nobr><code>-verbose</code></nobr> or
+<nobr><code>-debug</code></nobr> option is used.
+</p>
+<p>It is a good practice to place your <a
+href="CoreTasks/tstamp.html">tstamp</a> tasks in a so-called
+<i>initialization</i> target, on which
+all other targets depend. Make sure that target is always the first one in
+the depends list of the other targets. In this manual, most initialization targets
+have the name <code>&quot;init&quot;</code>.</p>
+<p>If the depends attribute and the if/unless attribute are set, the depends attribute is
+executed first.</p>
+<p>A target has the following attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the target.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">depends</td>
+    <td valign="top">a comma-separated list of names of targets on which this
+      target depends.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">the name of the property that must be set in order for this
+      target to execute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">the name of the property that must not be set in order
+      for this target to execute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">a short description of this target's function.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+</p>
+
+<p>A target name can be any alphanumeric string valid in the encoding of the XML
+file. The empty string &quot;&quot; is in this set, as is
+comma &quot;,&quot; and space &quot; &quot;.
+Please avoid using these, as they will not be supported in future Ant versions
+because of all the confusion they cause. IDE support of unusual target names,
+or any target name containing spaces, varies with the IDE.</p>
+
+<p>Targets beginning with a hyphen such as <code>&quot;-restart&quot;</code>
+are valid, and can be used
+to name targets that should not be called directly from the command line.</p>
+
+<h3><a name="tasks">Tasks</a></h3>
+<p>A task is a piece of code that can be executed.</p>
+<p>A task can have multiple attributes (or arguments, if you prefer). The value
+of an attribute might contain references to a property. These references will be
+resolved before the task is executed.</p>
+<p>Tasks have a common structure:</p>
+<blockquote>
+  <pre>&lt;<i>name</i> <i>attribute1</i>=&quot;<i>value1</i>&quot; <i>attribute2</i>=&quot;<i>value2</i>&quot; ... /&gt;</pre>
+</blockquote>
+<p>where <i>name</i> is the name of the task,
+<i>attributeN</i> is the attribute name, and
+<i>valueN</i> is the value for this attribute.</p>
+<p>There is a set of <a href="coretasklist.html" target="navFrame">built-in tasks</a>, along with a
+number of
+<a href="optionaltasklist.html" target="navFrame"> optional tasks</a>, but it is also very
+easy to <a href="develop.html#writingowntask">write your own</a>.</p>
+<p>All tasks share a task name attribute. The value of
+this attribute will be used in the logging messages generated by
+Ant.</p>
+Tasks can be assigned an <code>id</code> attribute:
+<blockquote>
+<pre>&lt;<i>taskname</i> id="<i>taskID</i>" ... /&gt;</pre>
+</blockquote>
+where <i>taskname</i> is the name of the task, and <i>taskID</i> is
+a unique identifier for this task.
+You can refer to the
+corresponding task object in scripts or other tasks via this name.
+For example, in scripts you could do:
+<blockquote>
+<pre>
+&lt;script ... &gt;
+  task1.setFoo("bar");
+&lt;/script&gt;
+</pre>
+</blockquote>
+to set the <code>foo</code> attribute of this particular task instance.
+In another task (written in Java), you can access the instance via
+<code>project.getReference("task1")</code>.
+<p>
+Note<sup>1</sup>: If &quot;task1&quot; has not been run yet, then
+it has not been configured (ie., no attributes have been set), and if it is
+going to be configured later, anything you've done to the instance may
+be overwritten.
+</p>
+<p>
+Note<sup>2</sup>: Future versions of Ant will most likely <i>not</i>
+be backward-compatible with this behaviour, since there will likely be no
+task instances at all, only proxies.
+</p>
+
+<h3><a name="properties">Properties</a></h3>
+<p>A project can have a set of properties. These might be set in the buildfile
+by the <a href="CoreTasks/property.html">property</a> task, or might be set outside Ant. A
+property has a name and a value; the name is case-sensitive. Properties may be used in the value of
+task attributes. This is done by placing the property name between
+&quot;<code>${</code>&quot; and &quot;<code>}</code>&quot; in the
+attribute value. For example,
+if there is a &quot;builddir&quot; property with the value
+&quot;build&quot;, then this could be used in an attribute like this:
+<code>${builddir}/classes</code>.
+This is resolved at run-time as <code>build/classes</code>.</p>
+
+<h3><a name="built-in-props">Built-in Properties</a></h3>
+<p>Ant provides access to all system properties as if they had been
+defined using a <code>&lt;property&gt;</code> task.
+For example, <code>${os.name}</code> expands to the
+name of the operating system.</p>
+<p>For a list of system properties see
+<a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/System.html#getProperties()">the Javadoc of System.getProperties</a>.
+</p>
+<p>In addition, Ant has some built-in properties:</p>
+<pre>
+basedir             the absolute path of the project's basedir (as set
+                    with the basedir attribute of &lt;project&gt;).
+ant.file            the absolute path of the buildfile.
+ant.version         the version of Ant
+ant.project.name    the name of the project that is currently executing;
+                    it is set in the name attribute of &lt;project&gt;.
+ant.java.version    the JVM version Ant detected; currently it can hold
+                    the values &quot;1.1&quot;, &quot;1.2&quot;, &quot;1.3&quot; and &quot;1.4&quot;.
+</pre>
+
+<a name="example"></a><h3>Example Buildfile</h3>
+<pre>
+&lt;project name=&quot;MyProject&quot; default=&quot;dist&quot; basedir=&quot;.&quot;&gt;
+    &lt;description&gt;
+        simple example build file
+    &lt;/description&gt;
+  &lt;!-- set global properties for this build --&gt;
+  &lt;property name=&quot;src&quot; location=&quot;src&quot;/&gt;
+  &lt;property name=&quot;build&quot; location=&quot;build&quot;/&gt;
+  &lt;property name=&quot;dist&quot;  location=&quot;dist&quot;/&gt;
+
+  &lt;target name=&quot;init&quot;&gt;
+    &lt;!-- Create the time stamp --&gt;
+    &lt;tstamp/&gt;
+    &lt;!-- Create the build directory structure used by compile --&gt;
+    &lt;mkdir dir=&quot;${build}&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;compile&quot; depends=&quot;init&quot;
+        description=&quot;compile the source &quot; &gt;
+    &lt;!-- Compile the java code from ${src} into ${build} --&gt;
+    &lt;javac srcdir=&quot;${src}&quot; destdir=&quot;${build}&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;dist&quot; depends=&quot;compile&quot;
+        description=&quot;generate the distribution&quot; &gt;
+    &lt;!-- Create the distribution directory --&gt;
+    &lt;mkdir dir=&quot;${dist}/lib&quot;/&gt;
+
+    &lt;!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file --&gt;
+    &lt;jar jarfile=&quot;${dist}/lib/MyProject-${DSTAMP}.jar&quot; basedir=&quot;${build}&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;clean&quot;
+        description=&quot;clean up&quot; &gt;
+    &lt;!-- Delete the ${build} and ${dist} directory trees --&gt;
+    &lt;delete dir=&quot;${build}&quot;/&gt;
+    &lt;delete dir=&quot;${dist}&quot;/&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+
+<p>Notice that we are declaring properties outside any target.  As of
+Ant 1.6 all tasks can be declared outside targets (earlier version
+only allowed <tt>&lt;property&gt;</tt>,<tt>&lt;typedef&gt;</tt> and
+<tt>&lt;taskdef&gt;</tt>).  When you do this they are evaluated before
+any targets are executed.  Some tasks will generate build failures if
+they are used outside of targets as they may cause infinite loops
+otherwise (<code>&lt;antcall&gt;</code> for example).</p>
+
+<p>
+We have given some targets descriptions; this causes the <tt>projecthelp</tt>
+invocation option to list them as public targets with the descriptions; the
+other target is internal and not listed.
+<p>
+Finally, for this target to work the source in the <tt>src</tt> subdirectory
+should be stored in a directory tree which matches the package names. Check the
+<tt>&lt;javac&gt;</tt> task for details.
+
+<a name="filters"></a><h3>Token Filters</h3>
+<p>A project can have a set of tokens that might be automatically expanded if
+found when a file is copied, when the filtering-copy behavior is selected in the
+tasks that support this. These might be set in the buildfile
+by the <a href="CoreTasks/filter.html">filter</a> task.</p>
+<p>Since this can potentially be a very harmful behavior,
+the tokens in the files <b>must</b>
+be of the form <code>@</code><i>token</i><code>@</code>, where
+<i>token</i> is the token name that is set
+in the <code>&lt;filter&gt;</code> task. This token syntax matches the syntax of other build systems
+that perform such filtering and remains sufficiently orthogonal to most
+programming and scripting languages, as well as with documentation systems.</p>
+<p>Note: If a token with the format <code>@</code><i>token</i><code>@</code>
+is found in a file, but no
+filter is associated with that token, no changes take place;
+therefore, no escaping
+method is available - but as long as you choose appropriate names for your
+tokens, this should not cause problems.</p>
+<p><b>Warning:</b> If you copy binary files with filtering turned on, you can corrupt the
+files. This feature should be used with text files <em>only</em>.</p>
+
+<a name="path"></a><h3>Path-like Structures</h3>
+<p>You can specify <code>PATH</code>- and <code>CLASSPATH</code>-type
+references using both
+&quot;<code>:</code>&quot; and &quot;<code>;</code>&quot; as separator
+characters. Ant will
+convert the separator to the correct character of the current operating
+system.</p>
+<p>Wherever path-like values need to be specified, a nested element can
+be used. This takes the general form of:</p>
+<pre>
+    &lt;classpath&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+      &lt;pathelement location=&quot;lib/helper.jar&quot;/&gt;
+    &lt;/classpath&gt;
+</pre>
+<p>The <code>location</code> attribute specifies a single file or
+directory relative to the project's base directory (or an absolute
+filename), while the <code>path</code> attribute accepts colon-
+or semicolon-separated lists of locations. The <code>path</code>
+attribute is intended to be used with predefined paths - in any other
+case, multiple elements with <code>location</code> attributes should be
+preferred.</p>
+<p>As a shortcut, the <code>&lt;classpath&gt;</code> tag
+supports <code>path</code> and
+<code>location</code> attributes of its own, so:</p>
+<pre>
+    &lt;classpath&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+    &lt;/classpath&gt;
+</pre>
+<p>can be abbreviated to:</p>
+<pre>
+    &lt;classpath path=&quot;${classpath}&quot;/&gt;
+</pre>
+<p>In addition, <a href="CoreTypes/dirset.html">DirSet</a>s,
+<a href="CoreTypes/fileset.html">FileSet</a>s, and
+<a href="CoreTypes/filelist.html">FileList</a>s
+can be specified via nested <code>&lt;dirset&gt;</code>,
+<code>&lt;fileset&gt;</code>, and <code>&lt;filelist&gt;</code>
+elements, respectively. <em>Note</em>: The order in which the files
+building up a FileSet are added to the path-like structure is not
+defined.</p>
+<pre>
+    &lt;classpath&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+      &lt;fileset dir=&quot;lib&quot;&gt;
+        &lt;include name=&quot;**/*.jar&quot;/&gt;
+      &lt;/fileset&gt;
+      &lt;pathelement location=&quot;classes&quot;/&gt;
+      &lt;dirset dir=&quot;${build.dir}&quot;&gt;
+        &lt;include name=&quot;apps/**/classes&quot;/&gt;
+        &lt;exclude name=&quot;apps/**/*Test*&quot;/&gt;
+      &lt;/dirset&gt;
+      &lt;filelist refid=&quot;third-party_jars&quot;/&gt;
+    &lt;/classpath&gt;
+</pre>
+<p>This builds a path that holds the value of <code>${classpath}</code>,
+followed by all jar files in the <code>lib</code> directory,
+the <code>classes</code> directory, all directories named
+<code>classes</code> under the <code>apps</code> subdirectory of
+<code>${build.dir}</code>, except those
+that have the text <code>Test</code> in their name, and
+the files specified in the referenced FileList.</p>
+<p>If you want to use the same path-like structure for several tasks,
+you can define them with a <code>&lt;path&gt;</code> element at the
+same level as <i>target</i>s, and reference them via their
+<i>id</i> attribute - see <a href="#references">References</a> for an
+example.</p>
+<p>A path-like structure can include a reference to another path-like
+structure via nested <code>&lt;path&gt;</code> elements:</p>
+<pre>
+    &lt;path id=&quot;base.path&quot;&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+      &lt;fileset dir=&quot;lib&quot;&gt;
+        &lt;include name=&quot;**/*.jar&quot;/&gt;
+      &lt;/fileset&gt;
+      &lt;pathelement location=&quot;classes&quot;/&gt;
+    &lt;/path&gt;
+
+    &lt;path id=&quot;tests.path&quot;&gt;
+      &lt;path refid=&quot;base.path&quot;/&gt;
+      &lt;pathelement location=&quot;testclasses&quot;/&gt;
+    &lt;/path&gt;
+</pre>
+ The shortcuts previously mentioned for <code>&lt;classpath&gt;</code> are also valid for <code>&lt;path&gt;</code>.For example:
+<pre>
+    &lt;path id=&quot;base.path&quot;&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+    &lt;/path&gt;
+</pre>
+can be written as:
+<pre>
+    &lt;path id=&quot;base.path&quot; path=&quot;${classpath}&quot;/&gt;
+</pre>
+
+<h3><a name="arg">Command-line Arguments</a></h3>
+<p>Several tasks take arguments that will be passed to another
+process on the command line. To make it easier to specify arguments
+that contain space characters, nested <code>arg</code> elements can be used.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">a single command-line argument; can contain space
+      characters.</td>
+    <td align="center" rowspan="5">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The name of a file as a single command-line
+      argument; will be replaced with the absolute filename of the file.</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">A string that will be treated as a path-like
+      string as a single command-line argument; you can use <code>;</code>
+      or <code>:</code> as
+      path separators and Ant will convert it to the platform's local
+      conventions.</td>
+  </tr>
+  <tr>
+    <td valign="top">pathref</td>
+    <td valign="top"><a href="#references">Reference</a> to a path
+      defined elsewhere.  Ant will convert it to the platform's local
+      conventions.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+    <td valign="top">a space-delimited list of command-line arguments.</td>
+  </tr>
+</table>
+
+<p>It is highly recommended to avoid the <code>line</code> version
+when possible.  Ant will try to split the command line in a way
+similar to what a (Unix) shell would do, but may create something that
+is very different from what you expect under some circumstances.</p>
+
+<h4>Examples</h4>
+<blockquote><pre>
+  &lt;arg value=&quot;-l -a&quot;/&gt;
+</pre></blockquote>
+<p>is a single command-line argument containing a space character.</p>
+<blockquote><pre>
+  &lt;arg line=&quot;-l -a&quot;/&gt;
+</pre></blockquote>
+<p>represents two separate command-line arguments.</p>
+<blockquote><pre>
+  &lt;arg path=&quot;/dir;/dir2:\dir3&quot;/&gt;
+</pre></blockquote>
+<p>is a single command-line argument with the value
+<code>\dir;\dir2;\dir3</code> on DOS-based systems and
+<code>/dir:/dir2:/dir3</code> on Unix-like systems.</p>
+
+<h3><a name="references">References</a></h3>
+<p>The <code>id</code> attribute of the buildfile's elements can be
+used to refer to them. This can be useful if you are going to replicate
+the same snippet of XML over and over again - using a
+<code>&lt;classpath&gt;</code> structure more than once, for
+example.</p>
+<p>The following example:</p>
+<blockquote><pre>
+&lt;project ... &gt;
+  &lt;target ... &gt;
+    &lt;rmic ...&gt;
+      &lt;classpath&gt;
+        &lt;pathelement location=&quot;lib/&quot;/&gt;
+        &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
+        &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
+      &lt;/classpath&gt;
+    &lt;/rmic&gt;
+  &lt;/target&gt;
+
+  &lt;target ... &gt;
+    &lt;javac ...&gt;
+      &lt;classpath&gt;
+        &lt;pathelement location=&quot;lib/&quot;/&gt;
+        &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
+        &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
+      &lt;/classpath&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>could be rewritten as:</p>
+<blockquote><pre>
+&lt;project ... &gt;
+  &lt;path id=&quot;project.class.path&quot;&gt;
+    &lt;pathelement location=&quot;lib/&quot;/&gt;
+    &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
+    &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
+  &lt;/path&gt;
+
+  &lt;target ... &gt;
+    &lt;rmic ...&gt;
+      &lt;classpath refid=&quot;project.class.path&quot;/&gt;
+    &lt;/rmic&gt;
+  &lt;/target&gt;
+
+  &lt;target ... &gt;
+    &lt;javac ...&gt;
+      &lt;classpath refid=&quot;project.class.path&quot;/&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>All tasks that use nested elements for <a
+href="CoreTypes/patternset.html">PatternSet</a>s, <a href="CoreTypes/fileset.html">FileSet</a>s,
+<a href="CoreTypes/zipfileset.html">ZipFileSet</a>s  or
+<a href="#path">path-like structures</a> accept references to these
+structures as well.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000-2004 The Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.2/manual/usinglist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/manual/usinglist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/manual/usinglist.html	(revision 14989)
@@ -0,0 +1,29 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Using Ant</h3>
+<a href="using.html#buildfile">Writing a Simple Buildfile</a><br>
+&nbsp;&nbsp;<a href="using.html#projects">Projects</a><br>
+&nbsp;&nbsp;<a href="using.html#targets">Targets</a><br>
+&nbsp;&nbsp;<a href="using.html#tasks">Tasks</a><br>
+&nbsp;&nbsp;<a href="using.html#properties">Properties</a><br>
+&nbsp;&nbsp;<a href="using.html#built-in-props">Built-in Properties</a><br>
+&nbsp;&nbsp;<a href="using.html#example">Example Buildfile</a><br>
+&nbsp;&nbsp;<a href="using.html#filters">Token Filters</a><br>
+&nbsp;&nbsp;<a href="using.html#path">Path-like Structures</a><br>
+&nbsp;&nbsp;<a href="using.html#arg">Command-line Arguments</a><br>
+&nbsp;&nbsp;<a href="using.html#references">References</a><br>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/mission.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/mission.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/mission.html	(revision 14989)
@@ -0,0 +1,263 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Apache Ant Mission</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                              <span class="sel">Apache Ant Mission</span>
+                              </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Apache Ant Mission</h1>
+            <h3 class="section">
+      <a name="Board Resolution"></a>
+      Board Resolution
+    </h3>
+                        <p>Apache Ant is a project of the <a href="http://www.apache.org/">Apache Software Foundation</a>.  It
+    started as a subproject of the <a href="http://jakarta.apache.org/">Apache Jakarta Project</a>.</p>
+                                <p>This is the board resolution (from the <a href="http://www.apache.org/foundation/records/minutes/2002/board_minutes_2002_11_18.txt">minutes</a>)
+    that created the Apache Ant project:</p>
+                                <pre class="code">
+7.D. Resolution [R3] to create the Ant PMC
+
+WHEREAS, the Board of Directors deems it to be in the best
+interests of the Foundation and consistent with the
+Foundation's purpose to establish a Project Management
+Committee charged with the creation and maintenance of
+open-source software related to the Apache Ant build tool, for
+distribution at no charge to the public.
+
+NOW, THEREFORE, BE IT RESOLVED, that a Project Management
+Committee (PMC), to be known as the &quot;Apache Ant PMC&quot;, be and
+hereby is established pursuant to Bylaws of the Foundation; and
+be it further
+
+RESOLVED, that the Apache Ant PMC be and hereby is responsible
+for the creation and maintenance of the Ant build system and
+related software components, based on software licensed to the
+Foundation; and be it further
+
+RESOLVED, that the office of &quot;Vice President, Apache Ant&quot; be
+and hereby is created, the person holding such office to serve
+at the direction of the Board of Directors as the chair of the
+Apache Ant PMC, and to have primary responsibility for
+management of the projects within the scope of responsibility
+of the Apache Ant PMC; and be it further
+
+RESOLVED, that the persons listed immediately below be and
+hereby are appointed to serve as the initial members of the
+Apache Ant PMC:
+
+   Bruce Atherton
+   Stephane Bailliez
+   Stefan Bodewig
+   Erik Hatcher
+   Diane Holt
+   Donald Leslie
+   Steve Loughran
+   Conor MacNeill
+   Costin Manolache
+   Sam Ruby
+   Jon Skeet
+   Magesh Umasankar
+   Christoph Wilhelms
+
+NOW, THEREFORE, BE IT FURTHER RESOLVED, that Conor MacNeill be
+and hereby is appointed to the office of Vice President, Apache
+Ant, to serve in accordance with and subject to the direction
+of the Board of Directors and the Bylaws of the Foundation
+until death, resignation, retirement, removal or
+disqualification, or until a successor is appointed; and be it
+further
+
+RESOLVED, that the initial Apache Ant PMC be and hereby is
+tasked with the creation of a set of bylaws intended to
+encourage open development and increased participation in the
+Apache Ant Project.
+
+By Unanimous Vote, Resolution R3 was approved. The Ant PMC is
+hereby created.
+    </pre>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/page.css
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/page.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/page.css	(revision 14989)
@@ -0,0 +1,192 @@
+body {
+    background-color: #FFFFFF;
+    color: #000000;
+    margin: 0px 0px 0px 0px;
+    font-family: Verdana, Helvetica, sans-serif;
+    font-size : 90%;
+}
+
+a:link { color: #0F3660; }
+a:visited { color: #009999; }
+a:active { color: #000066; }
+a:hover { color: #000066; }
+
+.menucontainer {
+    float: left;
+    background-color: #4C6C8F;
+    margin: 0px 5px;
+    width: 250px;
+}
+
+.menu {
+    font-size : 90%;
+    padding: 3px 8px 5px 3px;
+    border-right: 1px solid #294563;
+    border-left: 1px solid #294563;
+}
+
+.menu a:link { color: #FFFFFF;  text-decoration : none;  }
+.menu a:visited { color: #FFFFFF; text-decoration : none; }
+.menu a:hover { color: #FFCC00; text-decoration : none; }
+.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
+.menu li  { list-style-image: url('images/label.gif'); font-weight : bold; }
+.menu ul ul li .sel { list-style-image: url('images/current.gif'); font-weight : normal; }
+.menu ul ul li  { list-style-image: url('images/page.gif'); font-weight : normal; }
+
+.menuheader {
+    color: #CFDCED;
+}
+
+.sel {
+    color: #ffcc00;
+}
+
+.tab { font-size : 85%; border: 0; background-color: #294563;}
+.tab a:link {   text-decoration : none;  }
+.tab a:visited { text-decoration : none; color: #2A4A6D }
+.tab a:hover { color: #000066; }
+
+table .title { background-color: #FFFFFF; width:100%; border: 0px; }
+.dida { font-size: 80%; }
+
+.pre { white-space: pre;}
+.nowrap { white-space: nowrap;}
+
+.main {
+    margin-left: 280px;
+    margin-right: 5px;
+}
+
+.content {
+    padding: 5px 5px 5px 10px;
+    font : small Verdana, Helvetica, sans-serif;
+    font-size : 90%;
+}
+
+.content .ForrestTable { width: 100%; background-color: #7099C5; color: #ffffff; font-size : 90%;}
+.content .ForrestTable caption { text-align: left; color: black; font-weight: bold; }
+.content .ForrestTable th { text-align: center; }
+.content .ForrestTable td { background-color: #f0f0ff; color: black; }
+
+.content .externals { width: 80%; background-color: #7099C5; color: #ffffff; font-size : 90%;}
+.content .externals caption { text-align: left; color: black; font-weight: bold; }
+.content .externals th { width: 120px; text-align: right; }
+.content .externals td { background-color: #f0f0ff; color: black; }
+
+
+
+.frame { margin: 5px 20px 5px 20px; font-size: 90%; }
+.frame .content { margin: 0px; }
+
+.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
+.note .label { background-color: #7099C5; color: #ffffff; }
+
+.warning { border: solid 1px #D00000; background-color: #fff0f0; }
+.warning .label { background-color: #D00000; color: #ffffff; }
+
+.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
+.fixme .label { background-color: #C6C600; color: #ffffff; }
+
+.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
+.codefrag {	font-family: "Courier New", Courier, monospace; }
+
+.highlight { background-color: yellow; }
+
+.minitoc {margin: 5px 5px 5px 40px;}
+
+.dtdElement { width: 100%;	font-size: 90%; background-color : #ffffff; }
+
+.dtdTag {    color: #990000; text-transform : uppercase;  font-style : normal;  font-size : 120%;  font-weight : bold; }
+
+.section {
+    font-family: Verdana, Helvetica, sans-serif;
+    background-color: #294563;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+    margin-top: 20px;
+    clear: right;
+}
+
+.subsection {
+    font-family: arial,helvetica,sanserif;
+    background-color: #4C6C8F;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+    clear: right;
+}
+
+.toc {
+    font-family: arial,helvetica,sanserif;
+    background-color: #4C6C8F;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+}
+
+.faq {
+    font-family: arial,helvetica,sanserif;
+    background-color: #4C6C8F;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+}
+
+.navpath {
+    font-family: arial,helvetica,sanserif;
+    background-color: #CFDCED;
+    padding: 2px 6px;
+    margin: 0px 0px 0px 0px;
+    font-size: 90%;
+    border-bottom: 2px solid #4C6C8F;
+}
+
+.title {
+    font-family: Verdana, Helvetica, sans-serif;
+}
+
+.copyright {
+    font-family: arial,helvetica,sanserif;
+    font-size: 90%;
+    background-color: #CFDCED;
+    clear: both;
+    text-align: center;
+    margin: 0px;
+    border-top: thin solid #4C6C8F;
+}
+
+.bluebar {
+    padding: 5px 5px 5px 10px;
+    background-color: #4C6C8F;
+    margin: 0px;
+}
+
+.lightbluebar {
+    padding: 5px 5px 5px 10px;
+    background-color: #CFDCED;
+    margin: 0px;
+    border-top: 1px solid #294563;
+    border-bottom: 1px solid #294563;
+}
+
+.logobar {
+    background-color: #294563;
+    padding-right: 10px;
+    margin: 0px;
+}
+
+.searchcaption {
+    color: #FFFFFF;
+    text-align: left;
+    font-family: arial,helvetica,sanserif;
+    font-size: 90%;
+    background-color: #4C6C8F;
+    margin: 0px;
+}
+
+@media print {
+   .menu {
+     display: none;
+   }
+}
Index: /release-kits/shared/ant-installer/web/manual1.6.2/problems.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/problems.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/problems.html	(revision 14989)
@@ -0,0 +1,463 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Having Problems?</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Conor MacNeill">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                              <span class="sel">Having Problems?</span>
+                              </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Having Problems?</h1>
+            <h3 class="section">
+      <a name="Having Problems?"></a>
+      Having Problems?
+    </h3>
+                        <p>
+           This page details some steps you can take to try and resolve
+           any problems you may be having with Ant. If you find you can't
+           resolve the problem, then this page will help you collect some of
+           the relevant information to provide in a bug report. This information
+           will help the Ant developers understand and resolve the problem.
+           Of course, not all the steps here will make sense for every problem
+           you may encounter - these are just some suggestions to point
+           you in the right direction.
+        </p>
+                                      <h4 class="subsection">
+        <a name="Read the Manual"></a>
+        Read the Manual
+      </h4>
+                        <p>
+            The first step to take when you have a problem with Ant is to read
+            the <a href="manual/index.html">manual</a> entry for the task or
+            concept that is giving you trouble. In particular, check the
+            meaning of a task's attributes and nested elements. Perhaps an
+            attribute is available that would provide the behavior you require.
+            If you have problems with the manual itself, you can submit a
+            documentation bug report (see below) to help us improve the Ant
+            documentation.
+         </p>
+                                                    <h4 class="subsection">
+        <a name="Examine Debug Output"></a>
+        Examine Debug Output
+      </h4>
+                        <p>
+            If you're still having a problem, the next step is to try and
+            gather additional information about what Ant is doing.
+            Try running Ant with the <code>verbose</code> flag:
+            <br /><br />
+            <font face="verdana" size="-1">ant -verbose</font>
+            <br /><br />
+            or
+            <br /><br />
+            <font face="verdana" size="-1">ant -v</font>
+            <br /><br />
+           
+            This will produce output that starts like the following:</p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+Ant version 1.4.1 compiled on October 11 2001<br />
+Buildfile: build.xml<br />
+Detected Java version: 1.3 in: D:\usr\local\java\jdk13\jre<br />
+Detected OS: Windows NT<br />
+parsing buildfile D:\ant\build.xml
+with URI = file:D:/ant/build.xml<br />
+Project base dir set to: D:\ant<br />
+  [property] Loading Environment env.<br />
+  [property] Loading D:\ant\conf.properties<br />
+Build sequence for target 'debug' is [debug]<br />
+Complete build sequence is [debug, gensrc, compile, jar, test]<br />
+. . .<br />
+
+      </td>
+      </tr>
+        </table>
+                                <p>
+              You should be able to see from the trace more about what Ant
+              is doing and why it's taking a particular course of action.
+              If you need even more information, you can use the
+              <code>-debug</code> flag rather than
+              <code>-verbose</code>.
+              This will generally produce so much
+              output that you may want to save the output to a file and
+              analyze it in an editor. You can save the output using the
+              <code>-logfile &lt;filename&gt;</code> flag, or
+              using redirection.
+           </p>
+                                <p>
+              Once you have all this debug information, how can you use it
+              to solve your problem?  That will depend on the task in question
+              and the nature of your problem. Each task logs different aspects
+              of its operation, but it should give you an idea of what is going
+              on. For example, the <code>&lt;javac&gt;</code> task logs the
+              reasons why it
+              chooses to compile particular class files and not others, along
+              with which compiler it is using and the arguments it will pass
+              to that compiler. The following partial trace shows why
+              <code>&lt;javac&gt;</code> is adding one class file but
+              skipping another.
+              This is followed by which compiler it will be using, the
+              arguments that will get passed to the compiler,
+              and a list of all the class files to be compiled. 
+           </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+[javac] Test.java omitted as D:\classes\Test.class is up to date.<br />
+[javac] Unset.java added as D:\classes\Unset.class is outdated.<br />
+[javac] Compiling 1 source file to D:\classes<br />
+[javac] Using classic compiler<br />
+[javac] Compilation args: -d D:\classes -classpath D:\classes;<br />
+D:\jdk118\classes.zip; -sourcepath D:\src\java -g:none<br />
+[javac] File to be compiled:<br />
+D:\src\java\Unset.java<br />
+
+      </td>
+      </tr>
+        </table>
+                                <p>
+              In many cases, Ant tasks are wrappers around OS commands or
+              other Java classes. In debug mode, many of these tasks will
+              print out the equivalent command line, as the
+              <code>&lt;javac&gt;</code> task
+              output does. If you are having a problem, it is often useful to
+              run the command directly from the command line, in the same way
+              Ant is running it, and see if the problem occurs from there
+              as well. The problem may be in the command that is being run,
+              or it may be in the way the Ant task is running the command.
+              You can also see the effect of changing attribute values on the
+              generated command line. This can help you to understand whether
+              you are using the correct attributes and values.
+            </p>
+                                                    <h4 class="subsection">
+        <a name="Has It Been Fixed?"></a>
+        Has It Been Fixed?
+      </h4>
+                        <p>
+            After examining the debug output, if you still believe that the
+            problem you are having is caused by Ant, chances are that someone
+            else may have already encountered this problem, and perhaps it has
+            been fixed. The next step, therefore, may be to try a nightly build
+            of Ant to see if the problem has been fixed. Nightly builds for Ant
+            are available from the 
+            <a href="http://cvs.apache.org/builds/ant/nightly/">
+            Ant web site</a>. While Ant nightly builds are typically quite
+            stable and are used by
+            <a href="http://cvs.apache.org/builds/gump/latest/">Gump</a>
+            to build many other Jakarta projects, these builds should
+            nonetheless be treated as experimental. Note that nightly builds
+            do not build many of the optional tasks the come with Ant.
+            A snapshot of these optional tasks is occasionally uploaded to
+            the nightly download
+            <a href="http://cvs.apache.org/builds/ant/nightly/optional/">
+            area</a>. However, even this snapshot does not contain every
+            optional task.
+        </p>
+                                                    <h4 class="subsection">
+        <a name="Has It Been Reported?"></a>
+        Has It Been Reported?
+      </h4>
+                        <p>
+            If the current nightly build doesn't resolve your problem, it is
+            possible that someone else has reported the issue. It is time to
+            look at the <a href="http://issues.apache.org/bugzilla/">
+            Apache Bug Database</a>.  This system is easy to use, and it will
+            let you search the <a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Ant&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_id">
+            currently open</a> and resolved bugs to see if your problem has
+            already been reported. If your problem has been reported, you can
+            see whether any of the developers have commented, suggesting
+            workarounds, or the reason for the bug, etc. Or you may have
+            information to add (see about creating and modifying bug reports
+            below), in which case, go right ahead and add the information.
+            If you don't have any additional information, you may just want
+            to vote for this bug, and perhaps
+            add yourself to the <code>CC</code> list to follow the progress
+            of this bug.
+         </p>
+                                                    <h4 class="subsection">
+        <a name="Filing a Bug Report"></a>
+        Filing a Bug Report
+      </h4>
+                        <p>
+            By this time, you may have decided that there is an unreported
+            bug in Ant. You have a few choices at this point. You can send
+            an email to the <code>user</code> mailing list
+            to see if
+            others have encountered your issue and find out how they may
+            have worked around it. If after some discussion, you feel it
+            is time to create
+            a bug report, this is a simple operation in the bug database.
+            Please try to provide as much information as possible in order
+            to assist the developers in resolving the bug. Please try to enter
+            correct values for the various inputs when creating the bug, such
+            as which version of Ant you are running, and on which platform,
+            etc. Once the bug is created, you can also add attachments to
+            the bug report. 
+         </p>
+                                <p> 
+            What information should you include in your bug report? The
+            easiest bugs to fix are those that are most easily reproducible,
+            so it is really helpful if you can produce a small test case that
+            exhibits the problem. In this case, you would attach the build file
+            and any other files necessary to reproduce the problem, probably
+            packed together in an archive. If you can't produce a test case,
+            you should try to include a snippet from your build file and the
+            relevant sections from the verbose or debug output from Ant. Try
+            to include the header information where Ant states the version,
+            the OS and VM information, etc. As debug output is likely to be
+            very large, it's best to remove any output that is not
+            relevant. Once the bug is entered into the bug database, you
+            will be kept informed by email about progress on the bug. If
+            you receive email asking for further information, please try to
+            respond, as it will aid in the resolution of your bug.
+         </p>
+                                                    <h4 class="subsection">
+        <a name="Asking for an Enhancement"></a>
+        Asking for an Enhancement
+      </h4>
+                        <p>
+            Sometimes, you may find that Ant just doesn't do what you need it
+            to. It isn't a bug, as such, since Ant is working the way it is
+            supposed to work. Perhaps it is some additional functionality for
+            a task that hasn't been thought of yet, or maybe a completely new
+            task. For these situations, you will
+            want to raise an <i>enhancement request</i>. Enhancement requests
+            are managed using the same Apache Bug Database described above.
+            These are just a different type of bug report. If you look in the
+            bug database, you will see that one of the severity settings for
+            a bug is "Enhancement". Just fill the bug report in,
+            set the severity of the bug to "Enhancement", and 
+            state in the description how you would like to have Ant enhanced.
+            Again, you should first check whether there are any existing
+            enhancment requests that cover your needs. If so, just add your
+            vote to these.
+         </p>
+                                                    <h4 class="subsection">
+        <a name="Fixing the Bug"></a>
+        Fixing the Bug
+      </h4>
+                        <p>
+            If you aren't satisfied with just filing a bug report, you can
+            try to find the cause of the problem and provide a fix yourself.
+            The best way to do that is by working with the latest code from CVS.
+            Alternatively, you can work with the source code available from the
+            <a href="http://ant.apache.org/srcdownload.cgi">
+            source distributions</a>. If you
+            are going to tackle the problem at this level, you may want to
+            discuss some details first on the <code>dev</code>
+            mailing list. Once you have a fix for the problem, you may submit
+            the fix as a <i>patch</i> to either the
+            <code>dev</code> mailing
+            list, or enter the bug database as described above and attach the
+            patch to the bug report. Using the bug database has the advantage
+            of being able to track the progress of your patch.
+         </p>
+                                <p>
+            If you have a patch to submit and are sending it to the
+            <code>dev</code> mailing list,
+            prefix "[PATCH]"
+            to your message subject. Please include any relevant bug numbers.
+            Patch files should be created with the <code>-u</code>
+            option of the
+            <code>diff</code> or <code>cvs diff</code> command. For
+            example:<br /><br />
+            <font face="verdana" size="-1">
+            diff -u Javac.java.orig Javac.java &gt; javac.diffs<br /><br />
+            </font>
+            or, if you have source from CVS:<br /><br />
+            <font face="verdana" size="-1">
+            cvs diff -u Javac.java &gt; javac.diffs<br /><br />
+            </font>
+           
+           Note: You should give your patch files meaningful names. 
+           This makes it easier for developers who need to apply a number
+           of different patch files.
+        </p>
+                              
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/projects.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/projects.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/projects.html	(revision 14989)
@@ -0,0 +1,987 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Related Projects</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                              <span class="sel">Related Projects</span>
+                              </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Related Projects</h1>
+            <h3 class="section">
+      <a name="Related Projects"></a>
+      Related Projects
+    </h3>
+                        <p>Nothing listed here is directly supported by the Ant
+      developers, if you encounter any problems with them, please use
+      the contact information.</p>
+                                      <h4 class="subsection">
+        <a name="AndroMDA"></a>
+        AndroMDA
+      </h4>
+                        <p>AndroMDA is a code generator tool that follows the Model
+        Driven Architecture (MDA) paradigm. It takes a UML model from
+        a CASE-tool and generates classes and deployable components
+        (J2EE or other) specific for your application
+        architecture.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4.1 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.andromda.org/">http://www.AndroMDA.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=73047">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="AntContrib"></a>
+        AntContrib
+      </h4>
+                        <p>The Ant-Contrib project is a collection of user supplied
+        task (like an <code>&lt;if&gt;</code> task) and a development
+        playground for experimental tasks like a C/C++ compilation
+        task for different compilers.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4.1 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant-contrib.sourceforge.net/">http://ant-contrib.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=36177">project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation license
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Antelope"></a>
+        Antelope
+      </h4>
+                        <p>A GUI for running Ant and editing build files, can run as
+        stand-alone or as a plugin to jEdit. In addition to running
+        targets, Antelope can generate performance statistics and can
+        trace/display a target's execution path without actually
+        executing the target.</p>
+                                <p>Includes several additional tasks: Assert, If/Else,
+        Try/Catch/Finally, Switch, Variable, Stopwatch, Limit, Math,
+        Post, SSH, SCP, AntFetch, AntCallBack.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and higher.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antelope.tigris.org/">http://antelope.tigris.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:daleanson@users.sourceforge.net">Dale Anson</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="AntHill"></a>
+        AntHill
+      </h4>
+                        <p>Anthill is a build tool that promotes a controlled build
+        process by ensuring that every build reflects the source
+        repository contents and tagging the repository with a unique
+        build number after every build. Anthill also encourages the
+        sharing of knowledge within an organization by automatically
+        updating a project intranet site with artifacts from the
+        latest build.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.3, is compatible with Ant 1.3 to 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.urbancode.com/projects/anthill/">http://www.urbancode.com/projects/anthill/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mbz@urbancode.com">Maciej Zawadzki</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Mozilla-like license
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Antworks"></a>
+        Antworks
+      </h4>
+                        <p>The antworks project is a set of tools and standardized targets that
+        greatly simplifies using ant in your project.</p>
+                                <p>
+            The driver behind antworks is Importer. Importer is an extension to the
+            ant import task that will download and
+            cache an ant build.xml file and it's associated resources called
+            antlets.  Antlets are available for Java compiling
+            and packaging,  JUnit, Forrest, J2EE and
+            <a href="http://antworks.sourceforge.net/antlets/">more</a>.
+            </p>
+                                <p>
+            See the <a href="http://antworks.sourceforge.net/start.html ">Getting Started</a>
+            guide for more information.
+            </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antworks.sourceforge.net/">http://antworks.sourceforge.net/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://lists.sourceforge.net/lists/listinfo/antworks-developers">Antworks Developers mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache License 2.0
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="BuildMonkey"></a>
+        BuildMonkey
+      </h4>
+                        <p>BuildMonkey is a Web-based automated build dashboard, with upload
+           capability and google web search. It schedules the running of Ant
+           build scripts - checking sources out of CM - and makes the results
+           available centrally.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.4 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.buildmonkey.com">http://www.buildmonkey.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jb@buildmonkey.com">jb@buildmonkey.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware, commercial/support licences available
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="CruiseControl"></a>
+        CruiseControl
+      </h4>
+                        <p>CruiseControl is a tool for setting up a continuous build
+        process.  CruiseControl provides an Ant wrapper and a set of
+        tasks to automate the checkout/build/test cycle. CruiseControl
+        also comes bundled with a servlet for viewing the status of
+        the current build, as well as previous build results.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cruisecontrol.sourceforge.net/">http://cruisecontrol.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cruisecontrol.sourceforge.net/contact.html">Project Mailing Lists and Administrators</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Release 1.0 has been licensed under the GNU General Public
+            License.  Starting with release 1.1 the license has been
+            changed to a BSD-like license.
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Invicta"></a>
+        Invicta
+      </h4>
+                        <p>Invicta is a build management tool. Using simple project definition files,
+        it generates powerful build scripts (such as ANT) while hiding their
+        complexity. Invicta is a modular framework that allows developing additional
+        components and output types.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://invicta.sf.net/">http://invicta.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://invicta.sf.net/contact.html">Project Mailing Lists and Administrators</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL.
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="JAM - JavaGen Ant Modules"></a>
+        JAM - JavaGen Ant Modules
+      </h4>
+                        <p>JAM is a modular Ant toolkit for developing and testing Java/J2EE
+        applications. JAM supports EJB and Servlet/JSP development using XDoclet,
+        JUnit, Cactus, Maven, Castor and MDA/UML code generation on various J2EE
+        servers including JBoss.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.javagen.com/jam.jsp">http://www.javagen.com/jam.jsp</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.javagen.com/feedback.do">Feedback</a> <br />
+                <a href="http://www.javagen.com/bugs.do">Bug Reports</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Krysalis Centipede"></a>
+        Krysalis Centipede
+      </h4>
+                        <p>The Centipede admin told us, that that project
+           "is no more" and that "Antworks has taken it place."
+        </p>
+                                                    <h4 class="subsection">
+        <a name="luntbuild"></a>
+        luntbuild
+      </h4>
+                        <p>Luntbuild is an open source build automation and management
+        tool based on Apache Ant. Builds are setup through concepts of
+        projects, views, schedules, modules, etc. All configurations
+        and monitoring tasks is performed from a clean web
+        interface. It supports schedules builds, force builds,
+        rebuilds, clean build, increment build, etc.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.x
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sourceforge.net/projects/luntbuild/">http://www.sourceforge.net/projects/luntbuild/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/luntbuild/">luntbuild project page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Opensource
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="NAnt"></a>
+        NAnt
+      </h4>
+                        <p>NAnt is a .NET based build tool. In theory it is kind of
+        like make without make's wrinkles. In practice it's a lot like
+        Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          compatible in spirit.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://nant.sourceforge.net/">http://nant.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=31650">project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Rant"></a>
+        Rant
+      </h4>
+                        <p>Rant stands for Remote Ant. It is a distributed build
+        system that allows an Ant build file to launch builds on other
+        systems and receive exceptions should they occur.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/remoteant/">http://sourceforge.net/projects/remoteant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cnelson@einnovation.com">Chris Nelson</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Savant"></a>
+        Savant
+      </h4>
+                        <p>Savant helps simplify builds and codebases by handling the
+        resolution of project dependencies automatically. Savant supports
+        Maven style dependency downloads and various other methods of
+        retrieving dependencies, including fetching files from CVS modules.
+        Savant goes a step further than other dependency solutions and provides
+        the means for multiple internal projects to build each other in order
+        to resolve inter-project dependencies.</p>
+                                <p>Savant can be used via various Ant types and tasks as well as used
+        from any Java application including those that do not make use of Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.inversoft.com">http://www.inversoft.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.inversoft.com/contact.html">http://www.inversoft.com/contact.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="XML Publication"></a>
+        XML Publication
+      </h4>
+                        <p>XML Publication is a set of tools to generate Web pages
+        from desktop documents or other structured documents using
+        XSLT and Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://XMLpublication.org/">http://XMLpublication.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jmvanel@free.fr">Jean-Marc Vanel</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License.
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="yEd"></a>
+        yEd
+      </h4>
+                        <p>yEd is a freeware multi-purpose graph and diagram editor
+        that runs on the Java 2 platform. It provides an import filter
+        for Ant build scripts that makes it possible to conveniently
+        display and browse the dependenies between the different targets
+        of the build file. This is especially useful for debugging and
+        understanding large build files.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.x
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.yworks.com/products/yed/">http://www.yworks.com/products/yed/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.yworks.com/en/company_contact.htm">yWorks Support</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+        </table>
+                              
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.2/resources.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.2/resources.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.2/resources.html	(revision 14989)
@@ -0,0 +1,1169 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Resources</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                              <span class="sel">Resources</span>
+                              </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./cvs.html">CVS Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement">Enhancement Requests</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Resources</h1>
+            <h3 class="section">
+      <a name="FAQs"></a>
+      FAQs
+    </h3>
+                              <h4 class="subsection">
+        <a name="At Ant's website"></a>
+        At Ant's website
+      </h4>
+                        <p>Starting with the release of Ant 1.4 the Ant's FAQ is
+        bundled with the distribution, the most recent version can
+        always be found at the website.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          FAQ:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="faq.html">http://ant.apache.org/faq.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="jGuru"></a>
+        jGuru
+      </h4>
+                        <p>jGuru hosts an interactive Ant discussion forum and FAQ system</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Forum:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.jguru.com/forums/home.jsp?topic=Ant">http://www.jguru.com/forums/home.jsp?topic=Ant</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          FAQ:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.jguru.com/faq/home.jsp?topic=Ant">http://www.jguru.com/faq/home.jsp?topic=Ant</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="FAQ about Borland Application Server tasks"></a>
+        FAQ about Borland Application Server tasks
+      </h4>
+                        <p>Benoit Moussaud, the original author of the Borland
+        Application Server specific <a href="manual/OptionalTasks/ejb.html#ejbtasks">EJB tasks</a> has put
+        together a FAQ for this specific subtask.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          FAQ:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.moussaud.org/ejbjar.html">http://www.moussaud.org/ejbjar.html</a>
+      </td>
+      </tr>
+        </table>
+                                      <h3 class="section">
+      <a name="WIKIs"></a>
+      WIKIs
+    </h3>
+                              <h4 class="subsection">
+        <a name="Apache"></a>
+        Apache
+      </h4>
+                        <p>The ASF provides a Wiki farm for Apache projects.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Main page:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://wiki.apache.org/general">Apache Wiki Farm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant Wiki:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://wiki.apache.org/ant/">Ant Wiki</a>
+      </td>
+      </tr>
+        </table>
+                                      <h3 class="section">
+      <a name="Books"></a>
+      Books
+    </h3>
+                        <p>Listed by descending publication date.</p>
+                                      <h4 class="subsection">
+        <a name="Extreme Programming with Ant"></a>
+        Extreme Programming with Ant
+      </h4>
+                        <p> This book shows how to implement an XP project using Ant 1.5.3, and many other 3rd party tools.  Covers:</p>
+                                <ul>
+               <li>The fundamentals of Ant: concepts, core and optional tasks</li>
+               <li>How to write custom Ant components, including custom Tasks, Loggers, Listeners, Input Handlers, Selectors, Filters, Mappers and Data Types</li>
+               <li>Mitigating risks by creating spike tests with Ant buildfiles</li>
+               <li>Add CVS version control and testing with JUnit</li>
+               <li>Automate nightly builds and reporting</li>
+               <li>Deploy applications dynamically using XDoclet</li>
+               <li>Enforcing Code Standards with Jalopy, PMD, CheckStyle, iContract, JDepend</li>
+               <li>Using Remote Ant (Rant) and CruiseControl</li>
+               <li>Generating project documentation</li>
+               <li>Adapting an XP process for use by other teams or across an enterprise</li>
+               <li>Custom Task examples to generating UML diagrams, creating reports and metrics on-the-fly</li>
+               <li>Follows a case-study of a team that implements an XP Project</li>
+            </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Glenn Niemeyer and Jeremy Poteet
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sams.com/catalog/product.asp?product_id=%7BFB825A48-BC04-4C55-BD8C-DF93C6BBF920%7D">http://www.sams.com/catalog/product.asp?product_id=%7BFB825A48-BC04-4C55-BD8C-DF93C6BBF920%7D</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Ant. Das Java-Build-Tool in der Praxis"></a>
+        Ant. Das Java-Build-Tool in der Praxis
+      </h4>
+                        <p>A German language book on Ant that covers Ant 1.5.
+        This is the original description:</p>
+                                <pre class="code">
+        Das Build-Tool Ant ist das Open-Source-Werkzeug, das den Entwicklungsprozess einer Java-
+        oder J2EE-Anwendung wesentlich vereinfacht. Gesteuert durch XML-basierte Skripte fï¿œhrt es
+        nahezu alle Aufgaben aus, die nach dem Kodieren einer Anwendung anfallen.</pre>
+                                <p>Some topics:</p>
+                                <ul>
+                <li>creating archives (zip, jar)</li>
+                <li>call the java compiler</li>
+                <li>edit property files</li>
+                <li>file operation</li>
+                <li>source code control systems</li>
+            </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Bernd Matzke
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.addison-wesley.de/main/main.asp?page=home/bookdetails&amp;ProductID=13459">http://www.addison-wesley.de/main/main.asp?page=home/bookdetails&amp;ProductID=13459</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Java Development with Ant"></a>
+        Java Development with Ant
+      </h4>
+                        <p>Covers Ant 1.5, including:</p>
+                                <ul>
+                <li>The new Ant 1.5 features</li>
+                <li>Ant's datatypes and property handling</li>
+                <li>JUnit testing and reporting</li>
+                <li>Continuous integration techniques</li>
+                <li>XDoclet for attribute-oriented programming</li>
+                <li>EJB generation, building, and packaging</li>
+                <li>Writing and testing native code</li>
+                <li>Building Web Services with Apache Axis</li>
+                <li>Deploying your system to multiple remote servers</li>
+                <li>Using and writing
+                    <ul>
+                        <li>Loggers</li>
+                        <li>Listeners</li>
+                        <li>Selectors</li>
+                        <li>Custom tasks</li>
+                    </ul>
+                </li>
+            </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Erik Hatcher and Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.manning.com/antbook/">http://www.manning.com/antbook/</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Ant: The Definitive Guide"></a>
+        Ant: The Definitive Guide
+      </h4>
+                        <p>Covers Ant release 1.4.1.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Jesse E. Tilly and Eric M. Burke
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.oreilly.com/catalog/anttdg/">http://www.oreilly.com/catalog/anttdg/</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Ant. Kurz und Gut."></a>
+        Ant. Kurz und Gut.
+      </h4>
+                        <p>A German language short reference for Ant that covers Ant
+        1.4.  This is the original description:</p>
+                                <pre class="code">
+  Ant kurz &amp; gut enthält eine vollständige Referenz der Built-in Tasks
+  und ihrer jeweiligen Attribute sowie kurze Beispiele für ihre Verwendung.
+  Daneben bietet das Buch eine knappe Einführung in die Arbeit mit Ant und
+  eine Erläuterung der Ant-Basiselemente (Projekte, Properties, Targets und Tasks).
+  Behandelt werden außerdem grundlegende Konzepte wie Filesets, Patternsets und
+  Pfadstrukturen, das Schreiben eigener Tasks, die Aufruf-Syntax und Optional Tasks. </pre>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Stefan Edlich
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.amazon.de/exec/obidos/ASIN/3897212412/">http://www.amazon.de/exec/obidos/ASIN/3897212412/</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Java Tools for eXtreme Programming"></a>
+        Java Tools for eXtreme Programming
+      </h4>
+                        <p>This book covers the following XP subjects:</p>
+                                <ul>
+                <li>Automated unit and functional testing</li>
+                <li>Continuous integration through build and deployment automation</li>
+                <li>The value of refactoring and continuous integration</li>
+                <li>How Ant, JUnit, JUnitPerf, Cactus, HTTPUnit, and JMeter
+                can be used to achieve the goals of the XP methodology</li>
+            </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Richard Hightower and Nicholas Lesiecki
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.wiley.com/cda/product/0,,047120708X,00.html">http://www.wiley.com/cda/product/0,,047120708X,00.html</a>
+      </td>
+      </tr>
+        </table>
+                                      <h3 class="section">
+      <a name="Articles and Presentations"></a>
+      Articles and Presentations
+    </h3>
+                        <p>The following sections list articles and presentations
+      written about Apache Ant.  If you've written something that
+      should be included, please post it to one of the mailing
+      lists.</p>
+                        <h3 class="section">
+      <a name="Articles"></a>
+      Articles
+    </h3>
+                              <h4 class="subsection">
+        <a name="Managing Build Complexity with Apache Ant 1.6"></a>
+        Managing Build Complexity with Apache Ant 1.6
+      </h4>
+                        <p>As Apache Ant is applied to increasingly difficult tasks,
+        its users are creating more complex and less legible build
+        files. This is due, in part, to the limited tools for
+        decomposition and code reuse within previous versions of
+        Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Geoffrey Wiseman
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sys-con.com/story/?storyid=45078&amp;DE=1">http://www.sys-con.com/story/?storyid=45078&amp;DE=1</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="New Ant 1.6 Features for Big Projects"></a>
+        New Ant 1.6 Features for Big Projects
+      </h4>
+                        <p>This article describes the &lt;macrodef&gt;, &lt;import&gt;
+          and &lt;subant&gt; tasks in detail and shows how they help in
+          building bigger systems.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Stefan Bodewig
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://otn.oracle.com/pub/articles/bodewig_ant1.6.html">http://otn.oracle.com/pub/articles/bodewig_ant1.6.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Programmieren für Ant"></a>
+        Programmieren für Ant
+      </h4>
+                        <p>This article describes the main topics of programming your own tasks.
+        Description is done on five examples.</p>
+                                <p>This article is written in German and published in
+        <a href="http://www.sigs-datacom.de/sd/publications/js/index.htm">Java-Spektrum</a>
+        5/2004.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Bernd Matzke
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sigs-datacom.de/sd/news/document?PID=216">http://www.sigs-datacom.de/sd/news/document?PID=216</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Ant in Anger: Using Ant in a Production Development System"></a>
+        Ant in Anger: Using Ant in a Production Development System
+      </h4>
+                        <p>This document describes strategies and some basic examples of how to
+        use Ant in larger team development projects.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:steve_l@iseran.com">Steve Loughran</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="ant_in_anger.html">http://ant.apache.org/ant_in_anger.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Ant Task Guidelines"></a>
+        Ant Task Guidelines
+      </h4>
+                        <p>This document describes how to write custom Ant tasks, and how to submit
+        them to potentially be included in Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:steve_l@iseran.com">Steve Loughran</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="ant_task_guidelines.html">http://ant.apache.org/ant_task_guidelines.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Build a Better Robot with Ant"></a>
+        Build a Better Robot with Ant
+      </h4>
+                        <p>This article describes the gory details of writing custom
+           Ant tasks.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Erik Hatcher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.fawcette.com/javapro/2003_02/magazine/features/ehatcher/">http://www.fawcette.com/javapro/2003_02/magazine/features/ehatcher/l</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Automating the build and test process"></a>
+        Automating the build and test process
+      </h4>
+                        <p>This article demonstrates an approach to the automated build and test process. Working with Ant 1.3 and the JUnit test framework, it shows how to automate a process that captures pertinent information about each test suite run, generates an attractive report, and e-mails the report.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:ehatcher@apache.org">Erik Hatcher</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ibm.com/developerworks/java/library/j-junitmail/">http://www.ibm.com/developerworks/java/library/j-junitmail/</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Incremental development with Ant and JUnit"></a>
+        Incremental development with Ant and JUnit
+      </h4>
+                        <p>This article explores the benefits of unit testing with Ant and
+        JUnit, detailing how to develop automated unit tests and integrate them
+        into your build process.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:malcolm@nuearth.com">Malcolm Davis</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java">http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Automate your build process using Java and Ant"></a>
+        Automate your build process using Java and Ant
+      </h4>
+                        <p>This article provides an introduction to using Ant with some basic
+        examples and by highlighting some of the important tasks.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:michael.cymerman@javaworld.com">Michael Cymerman</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html">http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Short tutorial in Cactus' (formerly J2EEUnit)       documentation"></a>
+        Short tutorial in Cactus' (formerly J2EEUnit)       documentation
+      </h4>
+                        <p>There is a short tutorial on how to use Ant in Cactus'
+        documentation.  It has a slant towards build files that will be used
+        with Cactus.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Cactus development team
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jakarta.apache.org/cactus/howto_ant_primer.html">http://jakarta.apache.org/cactus/howto_ant_primer.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Developing custom Ant tasks with VisualAge for Java"></a>
+        Developing custom Ant tasks with VisualAge for Java
+      </h4>
+                        <p>This article outlines how to integrate Ant into VisualAge for Java,
+        and how to write and debug custom tasks using the IDE and the
+        integrated debugger.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:glenn@somanetworks.com">Glenn McAllister</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Automated builds with VisualAge for Java and Ant"></a>
+        Automated builds with VisualAge for Java and Ant
+      </h4>
+                        <p>This article shows how you can perform command line builds with a
+        VisualAge for Java repository.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:glenn@somanetworks.com">Glenn McAllister</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Ant: A Build Tool from the Jakarta Project"></a>
+        Ant: A Build Tool from the Jakarta Project
+      </h4>
+                        <p>This article is from the "Best Practices" section of
+        Sun's Dot-Com Builder Site.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Laura Geele Wang
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Making a Mountain Out of an Anthill"></a>
+        Making a Mountain Out of an Anthill
+      </h4>
+                        <p>This article is from the June 2001 issue of the Java Developer'
+        Journal.  You need to be a registered JDJ subscriber to view this
+        article.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Neal Ford
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06">http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Using Ant and Weblogic EJBs"></a>
+        Using Ant and Weblogic EJBs
+      </h4>
+                        <p>This article describes how to use Ant to create Weblogic EJBs, and
+        some workarounds for issues you may encounter.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Jesse E. Tilly
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html">http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Using JavaScript with Ant"></a>
+        Using JavaScript with Ant
+      </h4>
+                        <p>A tutorial about using JavaScript and XSLT with Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Dylan Schiemann
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sitepen.com/ant/javascript.html">http://www.sitepen.com/ant/javascript.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Building with Ant"></a>
+        Building with Ant
+      </h4>
+                        <p>Series of articles that describe a framework for web
+        application development based on Ant and JUnit.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:alexc@purpletech.com">Alex Chaffee</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Introduction: <a href="http://softwaredev.earthweb.com/sdtech/article/0,,12065_989631,00.html">http://softwaredev.earthweb.com/sdtech/article/0,,12065_989631,00.html</a><br />
+                Directory Structure: <a href="http://softwaredev.earthweb.com/sdtech/article/0,,12082_994991,00.html">http://softwaredev.earthweb.com/sdtech/article/0,,12082_994991,00.html</a><br />
+                Deployment and Distribution: <a href="http://softwaredev.earthweb.com/sdtech/article/0,,12077_998241,00.html">http://softwaredev.earthweb.com/sdtech/article/0,,12077_998241,00.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Developing with JAXB and Ant"></a>
+        Developing with JAXB and Ant
+      </h4>
+                        <p>Series of articles that shows how to use Ant together with
+        the Java API for XML Binding (JAXB).</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Joseph Shelby
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.onjava.com/pub/a/onjava/2002/03/06/jaxant1.html">http://www.onjava.com/pub/a/onjava/2002/03/06/jaxant1.html</a><br />
+                <a href="http://www.onjava.com/pub/a/onjava/2002/03/13/jaxbant2.html">http://www.onjava.com/pub/a/onjava/2002/03/13/jaxbant2.html</a>
+      </td>
+      </tr>
+        </table>
+                                      <h3 class="section">
+      <a name="Presentations"></a>
+      Presentations
+    </h3>
+                              <h4 class="subsection">
+        <a name="Ant Build Tool"></a>
+        Ant Build Tool
+      </h4>
+                        <p>A PowerPoint presentation on Ant 1.2.  It provides a basic overview
+        of Ant's capabilities.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:chanezon@netscape.com">Patrick Chanezon</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt">http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Ant"></a>
+        Ant
+      </h4>
+                        <p>A detailed Ant 1.3 PowerPoint presentation, made at the St. Louis Java Users Group
+        meeting in March 2001.  Includes a detailed build file and basic
+        descriptions of all the built in and optional tasks.  Updated for Ant 1.4 in October 2001.
+        Available in PDF format now.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Mark Volkmann
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ociweb.com/jnb/files/Ant.pdf">http://www.ociweb.com/jnb/files/Ant.pdf</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="Modern Development Crises"></a>
+        Modern Development Crises
+      </h4>
+                        <p>This presentation is an overview of the current state of software
+        development today.  There are a couple of slides that briefly cover
+        Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:steve_l@iseran.com">Steve Loughran</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.iseran.com/Steve/modern_development_processes.html">http://www.iseran.com/Steve/modern_development_processes.html</a>
+      </td>
+      </tr>
+        </table>
+                                                    <h4 class="subsection">
+        <a name="When Web Services Go Bad"></a>
+        When Web Services Go Bad
+      </h4>
+                        <p>A presentation from the <a href="http://www.sellsbrothers.com/conference/">Web Services
+        DevCon</a> in March 2002.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:steve_l@iseran.com">Steve Loughran</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.iseran.com/Steve/papers/when_web_services_go_bad.html">http://www.iseran.com/Steve/papers/when_web_services_go_bad.html</a>
+      </td>
+      </tr>
+        </table>
+                              
+    </div>
+  </div>
+
+        <p class="copyright">
+        Copyright &copy; 2000-2004&nbsp;The Apache Software Foundation. All rights reserved.
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.6.4/manual/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.4/manual/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.4/manual/index.html	(revision 14989)
@@ -0,0 +1,9 @@
+<html>
+  <head>
+    <title>No manual for this version</title>
+  </head>
+  <body>
+  <h1>No manual for this Ant version</h1>
+  Current official Ant documents are available <a target="_top" alt="Official Ant Documents" href="http://ant.apache.org/manual/index.html">here</a>
+  </body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.6.5/manual/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.6.5/manual/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.6.5/manual/index.html	(revision 14989)
@@ -0,0 +1,9 @@
+<html>
+  <head>
+    <title>No manual for this version</title>
+  </head>
+  <body>
+  <h1>No manual for this Ant version</h1>
+  Current official Ant documents are available <a target="_top" alt="Official Ant Documents" href="http://ant.apache.org/manual/index.html">here</a>
+  </body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/LICENSE	(revision 14989)
@@ -0,0 +1,203 @@
+/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      "License" shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      "Licensor" shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      "Legal Entity" shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      "control" means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      "You" (or "Your") shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      "Source" form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      "Object" form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      "Work" shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      "Derivative Works" shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      "Contribution" shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, "submitted"
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *      "Contributor" shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a "NOTICE" text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an "AS IS" BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets "[]"
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same "printed page" as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] [name of copyright owner]
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   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.
+ */
Index: /release-kits/shared/ant-installer/web/manual1.7.0/ant_in_anger.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/ant_in_anger.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/ant_in_anger.html	(revision 14989)
@@ -0,0 +1,1122 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<head>
+<title>
+    Ant in Anger
+</title>
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+<h1 align="center">Ant in Anger:
+</h1>
+<h2 align="center">
+        Using Apache Ant in a Production Development System
+</h2>
+
+<h4  align="center">
+Steve Loughran<br>
+Last updated 2005-03-16
+</h4>
+
+<a name="introduction">
+
+<h2>Introduction</h2>
+</a>
+
+<a href="http://ant.apache.org/">Apache Ant</a>
+ can be an invaluable tool in a team development process - or it can
+be yet another source of problems in that ongoing crises we call
+development . This
+document contains some strategies and tactics for making the most of
+Ant. It is moderately frivolous in places, and lacks almost any actual
+examples of Ant XML. The lack of examples is entirely deliberate - it
+keeps document maintenance costs down. Most of the concepts covered
+don't need the detail provided by XML representations, as it is the processes we
+are concerned about, not the syntax. Finally, please be aware that the
+comments here are only suggestions which need to be customised to meet
+your own needs, not strict rules about what should and should not be
+done.
+
+<p>
+Firstly, here are some assumptions about the projects which this
+document covers:
+<ul>
+<li> Pretty much pure Java, maybe with some legacy cruft on the edges.
+
+<li> Team efforts, usually with the petulant prima-donnas all us Java
+programmers become once we realise how much in demand we are.
+
+<li> A fairly distributed development team - spread across locations and
+maybe time zones.
+
+<li> Separate sub projects - from separate beans in a big
+enterprise application to separate enterprise applications which need to
+be vaguely aware of each other.
+
+<li> Significant mismatch between expectations and time available to
+deliver. 'Last Week' is the ideal delivery date handed down from above,
+late next century the date coming up from below.
+
+<li> Everyone is struggling to keep up with platform and tool evolution.
+
+<li> Extensive use of external libraries, both open and closed source.
+</ul>
+
+What that all means is that there is no time to spend getting things
+right, you don't have that tight control on how the rest of the team
+works and the development process is often more one of chaos minimisation
+than anything else. The role of Ant in such projects is to ensure that
+the build, test and deploy processes run smoothly, leaving you with all
+the other problems.
+
+<a name="core">
+<h2>Core Practices</h2>
+</a>
+<h3>
+Clarify what you want Ant to do</h3>
+
+Ant is not a silver bullet. It is just another rusty bullet in the armory of
+development tools available at your disposal. Its primary purpose is to
+accelerate the construction and deployment of Java projects. You could certainly
+extend Ant to do anything Java makes possible: it is easy to imagine writing an
+image processing task to help in web site deployment by shrinking and
+recompressing jpeg files, for example. But that would be pushing the boundary of
+what Ant is really intended to do - so should be considered with care.
+
+<p>
+Ant is also a great adjunct to an IDE; a way of doing all the housekeeping of
+deployment and for clean, automated builds. But a good modern IDE is a
+productivity tool in its own right - one you should continue to use. Ant
+just lets you give the teams somewhat more freedom in IDE choice - &quot;you can
+use whatever you want in development, but Ant for the deployment
+builds&quot; Now that many modern open source and commercial IDEs
+include Ant support (including jEdit, Forte, Eclipse and IDEA),
+developers can use a great IDE, with Ant providing a rigorous and portable 
+build process integrated into the tool. 
+
+<h3>
+Define standard targets
+</h3>
+
+When you have multiple sub projects, define a standard set of targets.
+Projects with a split between interface and implementation jar files
+could consider <b>impl</b> and <b>intf</b> targets - with separate
+<b>debug-impl</b> and <b>debug-intf</b> targets for the debug version.
+And of course, the ubiquitous <b>clean</b> target.
+
+<p>
+
+With standard target names, it is easy to build encompassing Ant build
+files which just hand off the work to the classes below using the
+<a href="manual/CoreTasks/ant.html">ant</a>
+task. For example. the clean target could be handed down to the <tt>intf</tt> and
+<tt>impl</tt> subdirectories from a parent directory
+
+<pre>&lt;target name=&quot;clean&quot;  depends=&quot;clean-intf, clean-impl&quot;&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;clean-intf&quot; &gt;
+    &lt;ant dir=&quot;intf&quot; target=&quot;clean&quot; /&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;clean-impl&quot;&gt;
+    &lt;ant dir=&quot;impl&quot; target=&quot;clean&quot; /&gt;
+&lt;/target&gt;  </pre>
+
+If you give targets a <tt>description</tt> tag, then calling <tt>ant
+-projecthelp</tt> will list all tasks with their description as 'main targets', and 
+all tasks without a description as subtargets. Describing all your
+entry points is therefore very useful, even before a project becomes big and complicated.
+  
+<h3>
+    Extend Ant through new tasks
+</h3>
+
+If Ant does not do what you want, you can use the
+<a href="manual/CoreTasks/exec.html">exec</a> and
+<a href="manual/CoreTasks/java.html">java</a> tasks or
+<a href="manual/OptionalTasks/script.html">inline scripting</a> to extend it. In a
+project with many <tt>build.xml</tt> files, you soon find that having a single
+central place for implementing the functionality keeps maintenance
+overhead down. Implementing task extensions through Java code seems
+extra effort at first, but gives extra benefits:-
+
+<ul>
+<li>Cross platform support can be added later without changing any
+<tt>build.xml</tt> files</li>
+
+<li>The code can be submitted to the Ant project itself, for other
+people to use and maintain</li>
+
+<li>It keeps the build files simpler</li>
+</ul>
+
+In a way, it is this decoupling of functionality, "the tasks", from
+the declaration of use, "the build file", that has helped Ant succeed.
+If you have to get something complex done in Make or an IDE, you have a
+hairy makefile that everyone is scared of, or an IDE configuration that
+is invariably very brittle. But an Ant task is reusable and shareable
+among all Ant users. Many of the core and optional tasks in Ant today,
+tasks you do or will come to depend on, were written by people trying to
+solve their own pressing problems.
+
+<h3>
+Embrace Automated Testing
+</h3>
+
+<b>(alternatively "recriminate early, recriminate often")</b>
+<p>
+Ant lets you call <a href="manual/OptionalTasks/junit.html">JUnit</a>
+tasks, which unit test the code your team has written. Automated testing
+may seem like extra work at first, but JUnit makes writing unit tests so
+easy that you have almost no reason not to. Invest the time in learning
+how to use JUnit, write the test cases, and integrate them in a 'test'
+target from Ant so that your daily or hourly team build can have the
+tests applied automatically. One of the free to download chapters of
+<a href="http://manning.com/hatcher">Java Development with Ant</a>
+shows you how to use JUnit from inside Ant.  
+
+<p>
+Once you add a way to fetch code from the SCM system, either as an Ant
+task, in some shell script or batch file or via some continuous
+integration tool. the integration test code can be a pure Ant task run
+on any box dedicated to the task. This is ideal for verifying that the
+build and unit tests work on different targets from the usual
+development machines. For example, a Win95/Java1.1 combination could be
+used even though no developer would willingly use that configuration
+given the choice.
+
+<p>
+System tests are harder to automate than unit tests, but if you can
+write java code to stress large portions of the system - even if the code
+can not run as JUnit tasks - then the <a href= "manual/CoreTasks/java.html">java</a>
+task can be used to invoke them. It is best to specify that you want a
+new JVM for these tests, so that a significant crash does not break the
+full build. The Junit extensions such as 
+<a href="http://httpunit.sourceforge.net/">HttpUnit</a> for web pages, and 
+<a href="http://jakarta.apache.org/cactus/">Cactus</a> for J2EE and servlet 
+testing help to expand the testing framework. To test properly you will still
+need to invest a lot of effort in getting these to work with your project, and 
+deriving great unit, system and regression tests - but your customers will love 
+you for shipping software that works.   
+
+<h3>Learn to Use and love the add-ons to Ant</h3>
+The Ant distribution is not the limit of the Ant universe, it is only
+the beginning. Look at the 
+<a href="http://ant.apache.org/external.html">
+External Tools and Tasks page
+</a> for an up to date list. Here are some of them that .
+
+<ul>
+<li>
+<a href="http://checkstyle.sourceforge.net/">Checkstyle</a><br>
+This tool audits your code and generates HTML reports of wherever any
+style rule gets broken. Nobody can hide from the code police now! tip:
+start using this early, so there's less to correct.</li>
+<li>
+<a href="http://ant-contrib.sf.net/">Ant-contrib</a><br>
+This sourceforge project contains helper tasks that are kept separate
+from core Ant for ideological purity; the foreach and trycatch tasks in
+particular. These give you iteration and extra error handling. Also on
+the site is the &lt;cc&gt; task suite, that compile and link native code
+on a variety of platforms.</li>
+<li>
+<a href="http://xdoclet.sourceforge.net/">XDoclet</a>
+XDoclet adds attributed oriented programming to Java. By adding javadoc
+tags to your code you can have XDoclet automatically generate <tt>web.xml</tt>
+descriptors, taglib descriptors, EJB interfaces, JMX interface classes,
+Castor XML/SQL bindings, and many more. The key here is that all those
+fiddly little XML files you need to create, and those interfaces EJB and
+JMX requires to implement, all can be autogenerated from your Java
+code with a few helper attributes. This reduces
+errors and means you can change your code and have the rest of the app
+take its cue from the source. Never do EJB, JMX or webapps without it!
+</li>
+</ul>
+
+<a name="crossplatform">
+<h2>
+Cross Platform Ant
+</h2>
+</a>
+Ant is the best foundation for cross platform Java development and
+testing to date. But if you are not paying attention, it is possible to
+produce build files which only work on one platform - or indeed, one
+single workstation.
+
+<p>
+The common barriers to cross-platform Ant are the use of command line
+tools (exec tasks) which are not portable, path issues, and hard coding
+in the location of things.
+
+<h3>Command Line apps: <a href="manual/CoreTasks/exec.html">Exec</a> /
+ <a href= "manual/CoreTasks/apply.html">Apply</a></h3>
+
+The trouble with external invocation is that not all functions are found
+cross platform, and those that are often have different names - DOS
+descendants often expect <tt>.exe</tt> or <tt>.bat</tt> at the end of files. That can be
+bad if you explicitly include the extension in the naming of the command
+(don't!), good when it lets you keep the unix and DOS versions of an
+executable in the same bin directory of the project without name
+clashes arising.
+
+<p>
+Both the command line invocation tasks let you specify which platform
+you want the code to run on, so you could write different tasks for each
+platform you are targeting. Alternatively, the platform differences
+could be handled inside some external code which Ant calls. This can be
+some compiled down java in a new task, or an external script file.
+
+<h3>Cross platform paths</h3>
+
+Unix paths use forward slashes between directories and a colon to
+split entries. Thus
+<i>"/bin/java/lib/xerces.jar:/bin/java/lib/ant.jar"</i> is
+a path in unix. In Windows the path must use semicolon separators,
+colons being used to specify disk drives, and backslash separators
+<i>"c:\bin\java\lib\xerces.jar;c:\bin\java\lib\ant.jar"</i>.
+<p>
+This difference between platforms (indeed, the whole java classpath
+paradigm) can cause hours of fun.
+
+<p>
+Ant reduces path problems; but does not eliminate them entirely. You
+need to put in some effort too. The rules for handling path names are
+that 'DOS-like pathnames are handled', 'Unix like paths are handled'.
+Disk drives -'C:'- are handled on DOS-based boxes, but placing them in
+the <tt>build.xml</tt> file ruins all chances of portability. Relative file paths
+are much more portable. Semicolons work as path separators - a fact which
+is useful if your Ant invocation wrapper includes a list of jars as a
+defined property in the command line. In the build files you may find it
+better to build a classpath by listing individual files (using location=
+attributes), or by including a fileset of <tt>*.jar</tt> in the classpath
+definition.
+<p>
+There is also the <a
+href="manual/CoreTasks/pathconvert.html">PathConvert</a> task which
+can put a fully resolved path into a property. Why do that? Because then 
+you can use that path in other ways - such as pass it as a parameter to 
+some application you are calling, or use the replace task to patch it
+into a localised shell script or batch file.
+<p>
+Note that DOS descended file systems are case insensitive (apart from
+the obscure aberration of the WinNT POSIX subsystem run against NTFS),
+and that Windows pretends that all file extensions with four or more
+letters are also three letter extensions (try <tt>DELETE *.jav</tt> in your java
+directories to see a disastrous example of this).
+
+<p>
+Ant's policy on case sensitivity is whatever the underlying file system
+implements, and its handling of file extensions is that <tt>*.jav</tt> does not
+find any <tt>.java</tt> files. The Java compiler is of course case sensitive - you can
+not have a class 'ExampleThree' implemented in "examplethree.java".
+
+<p>
+Some tasks only work on one platform - <a href= "manual/CoreTasks/chmod.html">
+Chmod</a> being a classic example. These tasks usually result in just a
+warning message on an unsupported platform - the rest of the target's
+tasks will still be called. Other tasks degrade their functionality on
+platforms or Java versions. In particular, any task which adjusts the
+timestamp of files can not do so properly on Java 1.1. Tasks which can
+do that - <a href="manual/CoreTasks/get.html">Get</a>, <a
+href="manual/CoreTasks/touch.html">Touch</a> and <A href="manual/CoreTasks/unzip.html">
+Unjar/Unwar/Unzip</a> for example, degrade their functionality on
+Java1.1, usually resorting to the current timestamp instead.
+
+<p>
+Finally, Perl makes a good place to wrap up Java invocations cross
+platform, rather than batch files. It is included in most Unix
+distributions, and is a simple download for <a href=
+"http://www.activestate.com/Products/ActivePerl/">Win32 platforms from
+ActiveState</a>. A Perl file with <tt>.pl</tt> extension, the usual Unix
+path to perl on the line 1 comment and marked as executable can be run
+on Windows, OS/2 and Unix and hence called from Ant without issues. The
+perl code can be left to resolve its own platform issues. Don't forget to
+set the line endings of the file to the appropriate platform when you
+redistribute Perl code; <a
+href="manual/CoreTasks/fixcrlf.html">fixCRLF</a> 
+can do that for you.
+
+<a name="team">
+<h2>Team Development Processes</h2>
+</a>
+Even if each team member is allowed their choice of IDE/editor, or even
+OS, you need to set a baseline of functionality on each box. In
+particular, the JDKs and jars need to be in perfect sync. Ideally pick
+the latest stable Java/JDK version available on all developer/target
+systems and stick with it for a while. Consider assigning one person to
+be the contact point for all tools coming in - particularly open source
+tools when a new build is available on a nightly basis. Unless needed,
+these tools should only really be updated monthly, or when a formal
+release is made.
+
+<p>
+Another good tactic is to use a unified directory tree, and add on extra
+tools inside that tree. All references can be made relative to the tree.
+If team members are expected to add a directory in the project to their
+path, then command line tools can be included there - including those
+invoked by Ant exec tasks. Put everything under source code control and
+you have a one stop shop for getting a build/execute environment purely
+from CVS or your equivalent.
+
+<a name="deploying">
+<h2>Deploying with Ant</h2>
+</a>
+One big difference between Ant and older tools such as Make is that the
+processes for deploying Java to remote sites are reasonably well
+evolved in Ant. That is because we all have to do it these days, so
+many people have put in the effort to make the tasks easier.
+<p>
+Ant can <a href="manual/CoreTasks/jar.html">Jar</a>, <a href=
+"manual/CoreTasks/tar.html">Tar</a> or <a
+href="manual/CoreTasks/zip.html">Zip</a> files for deployment, while the
+<a href="manual/CoreTasks/war.html">War</a> task extends the jar task
+for better servlet deployment. 
+<a href ="manual/OptionalTasks/jlink.html">Jlink</a> is a
+jar generation file which lets you merge multiple sub jars. This is
+ideal for a build process in which separate jars are generated by sub
+projects, yet the final output is a merged jar. <a href=
+"manual/OptionalTasks/cab.html">Cab</a> can be used on Win32 boxes to
+build a cab file which is useful if you still have to target IE deployment.
+
+<p>
+The <a href="index.html#ftp">ftp</a> task lets you move stuff up to a
+server. Beware of putting the ftp password in the build file - a property
+file with tight access control is slightly better. The <a href=
+"manual/CoreTasks/fixcrlf.html">FixCRLF</a> task is often a useful interim step if
+you need to to adjust the line endings of files. A
+WebDav task has long been discussed, which would provide a more secure
+upload to web servers, but it is still in the todo list. Rumour has it
+that there is such a task in the jakarta-slide libraries. With MacOS X,
+Linux and Windows XP all supporting WebDAV file systems, you may even be able
+to use <a href="manual/CoreTasks/copy.html">copy</a> to deploy
+though a firewall. 
+
+<p>
+EJB deployment is aided by the <a href="manual/OptionalTasks/ejb.html">ejb</a> tasks,
+while the 
+<a
+href="manual/OptionalTasks/serverdeploy.html">serverdeploy</a>
+suite can deploy to multiple servers. The popularity of Ant has
+encouraged vendors to produce their own deployment tasks which they
+redistribute with their servers. For example, the Tomcat4.1 installation
+includes tasks to deploy, undeploy and reload web applications.
+
+<p>
+Finally, there are of course the fallbacks of just copying files to a
+destination using <a href="manual/CoreTasks/copy.html">Copy</a> and <a href="index.html#copydir">Copydir</a> , or just sending them to a person or
+process using <a href="manual/CoreTasks/mail.html">Mail</a> or the attachment
+aware <a href= "manual/OptionalTasks/mimemail.html">MimeMail</a>.
+In one project our team even used Ant to build CD images through a build followed
+by a long set of Copy tasks, which worked surprisingly well, certainly
+easier than when we mailed them to the free email service on
+myrealbox.com, then pulled them down from the far end's web browser, which we
+were running over WinNT remote desktop connection, that being tunneled
+through SSH.
+
+<a name="directories">
+<h2> Directory Structures</h2>
+</a>
+
+How you structure your directory tree is very dependent upon the
+project. Here are some directory layout patterns which can be used as
+starting points. All the jakarta projects follow a roughly similar
+style, which makes it easy to navigate around one from one project to
+another, and easy to clean up when desired. 
+
+<h3>Simple Project</h3>
+
+The project contains sub directories
+<table width="100%">
+<tr>
+    <td><b>bin</b>
+    </td>
+    <td>common binaries, scripts - put this on the path.
+    </td>
+</tr>
+
+<tr>
+    <td><b>build</b>
+    </td>
+    <td>This is the tree for building; Ant creates it and can empty it
+    in the 'clean' project.
+    </td>
+</tr>
+<tr>
+    <td><b>dist</b>
+    </td>
+    <td>Distribution outputs go in here; the directory is created in Ant
+    and clean empties it out
+    </td>
+</tr>
+<tr>
+    <td><b>doc</b>
+    </td>
+    <td>Hand crafted documentation
+    </td>
+</tr>
+<tr>
+    <td><b>lib</b>
+    </td>
+    <td>Imported Java libraries go in to this directory
+    </td>
+</tr>
+<tr>
+    <td><b>src</b>
+    </td>
+    <td>source goes in under this tree <i>in a hierarchy which matches
+    the package names<i>. The dependency rules of &lt;javac&gt; requires this.  
+    </td>
+</tr>
+</table>
+
+The bin, lib, doc and src directories should be under source code control.
+Slight variations include an extra tree of content to be included in the
+distribution jars - inf files, images, etc. These can go under source
+too, with a <tt>metadata</tt> directory for <tt>web.xml</tt> and similar
+manifests, and a <tt>web</tt> folder for web content - JSP, html, images
+and so on. Keeping the content in this folder (or sub hierarchy)
+together makes it easier to test links before deployment. The actual
+production of a deployment image, such as a war file, can be left to the
+appropriate Ant task: there is no need to completely model your source tree 
+upon the deployment hierarchy. 
+<p> 
+Javadoc output can be
+directed to a <tt>doc/</tt> folder beneath <tt>build/</tt>, or to <tt>doc/javadoc</tt>.
+
+<h3>Interface and Implementation split</h3>
+
+If the interface is split from the implementation code then this can be
+supported with minor changes just by having a separate build path for
+the interface directory - or better still just in the jar construction:
+one jar for interface and one jar for implementation.
+
+<h3>Loosely Coupled Sub Projects</h3>
+
+In the loosely coupled approach multiple projects can have their own
+copy of the tree, with their own source code access rights.
+One difference to consider is only having one instance of the bin and
+lib directories across all projects. This is sometimes good - it helps
+keep copies of xerces.jar in sync, and sometimes bad - it can update
+foundational jar files before unit testing is complete.
+
+<p>
+To still have a single build across the sub projects, use parent
+<tt>build.xml</tt> files which call down into the sub projects.
+<p>
+This style works well if different teams have different code
+access/commitment rights. The risk is that by giving extra leeway to the
+sub projects, you can end up with incompatible source, libraries, build
+processes and just increase your workload and integration grief all round.
+<p>
+The only way to retain control over a fairly loosely integrated
+collection of projects is to have a fully automated  build 
+and test process which verifies that everything is still compatible. Sam
+Ruby runs one for all the apache java libraries and emails everyone when
+something breaks; your own project may be able to make use of 
+<A href="http://cruisecontrol.sourceforge.net/">Cruise Control</a> for
+an automated, continuous, background build process. 
+
+<h3>Integrated sub projects</h3>
+
+Tightly coupled projects have all the source in the same tree; different
+projects own different subdirectories. Build files can be moved down to
+those subdirectories (say <tt>src/com/iseran/core</tt> and <tt>src/com/iseran/extras</tt>),
+or kept at the top - with independent build files named <tt>core.xml</tt> and
+<tt>extras.xml</tt>.
+
+<p>
+This project style works well if everyone trusts each other and the
+sub projects are not too huge or complex. The risk is that a split to a
+more loosely coupled design will become a requirement as the projects
+progress - but by the time this is realised schedule pressure and
+intertwined build files make executing the split well nigh impossible.
+If that happens then just keep with it until there is the time to
+refactor the project directory structures. 
+
+<a name="antupdate">
+<h2>
+    Ant Update Policies
+</h2>
+</a>
+
+Once you start using Ant, you should have a policy on when and how the
+team updates their copies. A simple policy is &quot;every official release
+after whatever high stress milestone has pushed all unimportant tasks
+(like sleep and seeing daylight) on the back burner&quot;. This insulates you
+from the changes and occasional instabilities that Ant goes through
+during development. Its main disadvantage is that it isolates you from
+the new tasks and features that Ant is constantly adding.
+
+<p>
+Often an update will require changes to the <tt>build.xml</tt> files. Most
+changes are intended to be backwards compatible, but sometimes an
+incompatible change turns out to be
+necessary. That is why doing the update in the lull after a big
+milestone is important. It is also why including <tt>ant.jar</tt> and related
+files in the CVS tree helps ensure that old versions of your software
+can be still be built.
+
+<p>
+The most aggressive strategy is to get a weekly or daily snapshot of the
+ant source, build it up and use it. This forces you to tweak the
+<tt>build.xml</tt> files more regularly, as new tasks and attributes can take
+while to stabilise. You really have to want the new features, enjoy
+gratuitous extra work or take pleasure in upsetting your colleagues to
+take this approach.
+
+<p>
+Once you start extending Ant with new tasks, it suddenly becomes much
+more tempting to pull down regular builds. The most recent Ant builds
+are invariably the best platform for writing your extensions, as you
+can take advantage of the regular enhancements to the foundational
+classes. It also prevents you from wasting time working on something
+which has already been done. A newly submitted task to do something
+complex such as talk to EJB engines, SOAP servers or just convert a text
+file to uppercase may be almost exactly what you need - so take it,
+enhance it and offer up the enhancements to the rest of the world. This
+is certainly better than starting work on your 'text case converter'
+task on Ant 0.8 in isolation, announcing its existence six months later
+and discovering that instead of adulation all you get are helpful
+pointers to the existing implementation. The final benefit of being
+involved with the process is that it makes it easier for your tasks to 
+be added with the Ant CVS tree, bringing forward the date when Ant has
+taken on all the changes you needed to make to get your project to work.
+If that happens you can revert to an official Ant release, and get on
+with all the other crises. 
+
+<p>
+You should also get on the <a href =
+"mailto:dev-subscribe@ant.apache.org">dev mailing list
+</a>, as it is where the other developers post their work, problems and
+experience. The volume can be quite high: 40+ messages a day, so
+consider routing it to an email address you don't use for much else. And
+don't make everyone on the team subscribe; it can be too much of a
+distraction.
+
+<a name="install">
+<h2>
+Installing with Ant.
+</h2>
+</a>
+Because Ant can read environment variables, copy, unzip and delete files
+and make java and OS calls, it can be used for simple installation
+tasks. For example, an installer for tomcat could extract the
+environment variable <tt>TOMCAT_HOME</tt>, stop tomcat running, and copy a war
+file to <tt>TOMCAT_HOME/webapps</tt>. It could even start tomcat again, but the
+build wouldn't complete until tomcat exited, which is probably not what
+was wanted. 
+
+<p>
+The advantage of using Ant is firstly that the same install targets
+can be used from your local build files (via an <tt>ant</tt> invocation
+of the <tt>install.xml</tt> file), and secondly that a basic install target is
+quite easy to write. The disadvantages of this approach are that the
+destination must have an up to date version of Ant correctly
+pre-installed, and Ant doesn't allow you to handle failures well - and a
+good installer is all about handling when things go wrong, from files
+being in use to jar versions being different. This means that Ant is not
+suited for shrink wrapped software, but it does work for deployment and
+installation to your local servers.
+
+<p>
+One major build project I was involved in had an Ant install build file
+for the bluestone application server, which would shutdown all four
+instances of the app server on a single machine, copy the new version of
+the war file (with datestamp and buildstamp) to an archive directory,
+clean up the current deployed version of the war and then install the
+new version. Because bluestone restarted JVMs on demand, this script was
+all you needed for web service deployment. On the systems behind the
+firewall, we upped the ante in the deployment process by using the ftp
+task to copy out the war and build files, then the telnet task to
+remotely invoke the build file. The result was we had automated
+recompile and redeploy to local servers from inside our IDE (Jedit) or
+the command line, which was simply invaluable. Imagine pressing a button
+on your IDE toolbar to build, unit test, deploy and then functional test
+your webapp. 
+
+<p>
+One extra trick I added later was a junit test case to run through the
+install check list. With tests to verify access permissions on network
+drives, approximate clock synchronisation between servers, DNS
+functionality, ability to spawn executables and all the other trouble
+spots, the install script could automatically do a system health test
+during install time and report problems. [The same tests could also be
+invoked from a JMX MBean, but that's another story]. 
+
+<p>
+So, Ant is not a substitute for a real installer tool, except in the
+special case of servers you control, but in that context it does let
+you integrate remote installation with your build. 
+
+
+<a name="tips">
+<h2>
+Tips and Tricks</h2>
+</a>
+<dl>
+<dt><b>
+    get
+</b><dd>
+
+The <a href="manual/CoreTasks/get.html">get</a> task can fetch any URL, so be used
+to trigger remote server side code during the build process, from remote
+server restarts to sending SMS/pager messages to the developer
+cellphones.
+
+<dt><b>
+i18n
+</b><dd>
+
+Internationalisation is always trouble. Ant helps here with the <a href=
+"manual/OptionalTasks/native2ascii.html">native2ascii</a> task which can escape out all non
+ascii characters into unicode. You can use this to write java files
+which include strings (and indeed comments) in your own non-ASCII
+language and then use native2ascii to convert to ascii prior to feeding
+through javac. The rest of i18n and l12n is left to you...
+
+<dt><b>
+Use Property Files
+</b><dd>
+
+Use external property files to keep per-user settings out the build
+files - especially passwords. Property files can also be used to
+dynamically set a number of properties based on the value of a single
+property, simply by dynamically generating the property filename from the
+source property. They can also be used as a source of constants across
+multiple build files.
+
+<dt><b>
+Faster compiles with Jikes
+</b><dd>
+
+The <a href="http://jikes.sourceforge.net/">jikes compiler</a> is usually much
+faster than javac, does dependency checking and has better error
+messages (usually). Get it. Then set
+<tt>build.compiler</tt> to "jikes" for it to be used in your build files.
+Doing this explicitly in your build files is a bit dubious as it requires the
+whole team (and sub projects) to be using jikes too - something you can only
+control in small, closed source projects. But if you set 
+<tt>ANT_OPTS&nbsp;=&nbsp;-Dbuild.compiler=jikes</tt>
+in your environment, then all your builds on your system will use 
+Jikes automatically, while others can choose their own compiler, or let
+ant choose whichever is appropriate for the current version of Java.   
+
+<dt><b>
+#include targets to simplify multi <tt>build.xml</tt> projects
+</b><dd>
+
+You can import XML files into a build file using the XML parser itself.
+This lets a multi-project development program share code through reference,
+rather than cut and paste re-use. It also lets one build up a file of
+standard tasks which can be reused over time. Because the import
+mechanism is at a level below which Ant is aware, treat it as
+equivalent to the #include mechanism of the 'legacy' languages C and
+C++.
+
+<p>
+There are two inclusion mechanisms, an ugly one for all parsers and a
+clean one. The ugly method is the only one that was available on Ant1.5 and
+earlier:-
+<pre>
+    &lt;!DOCTYPE project [
+      &lt;!ENTITY propertiesAndPaths SYSTEM &quot;propertiesAndPaths.xml&quot;&gt;
+      &lt;!ENTITY taskdefs SYSTEM &quot;taskdefs.xml&quot;&gt;
+    ]&gt;  
+    
+        &amp;propertiesAndPaths;
+        &amp;taskdefs;
+</pre>
+The cleaner method in Ant1.6 is the <tt>&lt;import&gt;</tt> task that imports
+whole build files into other projects. The entity inclusion example
+could <i>almost</i> be replaced by two import statements:-
+<pre>
+ &lt;import file="propertiesAndPaths.xml"&gt;
+ &lt;import file="taskdefs.xml"&gt;
+</pre>
+
+We say almost as top level declarations (properties and taskdefs) 
+do not get inserted into the XML file exactly where the import statement
+goes, but added to the end of the file. This is because the import process
+takes place after the main build file is parsed, during execution, whereas
+XML entity expansion is handled during the parsing process.
+
+<p>
+The <tt>&lt;import&gt;</tt> task does powerful things, such as let you override targets,
+and use ant properties to name the location of the file to import. Consult the
+<a href="manual/CoreTasks/import.html">documentation</a> for the specifics of
+these features.  
+
+<p>
+Before you go overboard with using XML inclusion, note that the
+<tt>ant</tt> task lets you call any target in any other build
+file - with all your property settings propagating down to that target.
+So you can actually have a suite of utility targets
+- "<tt>deploy-to-stack-a</tt>", "<tt>email-to-team</tt>", "<tt>cleanup-installation</tt>" which can
+be called from any of your main build files, perhaps with subtly changed
+parameters. Indeed, after a couple of projects you may be able to create
+a re-usable core build file which contains the core targets of a basic
+Java development project - compile, debug, deploy - which project specific
+build files call with their own settings. If you can achieve this then
+you are definitely making your way up the software maturity ladder. With
+a bit of work you may progress from being a SEI CMM Level 0 organisation
+&quot;Individual Heroics are not enough&quot; to SEI CMM Level 1, &quot;Projects only
+succeed due to individual heroics&quot;
+
+<p>
+NB, <tt>ant</tt> copies all your properties unless the
+<i>inheritall</i> attribute is set to false. Before that attribute
+existed you had to carefully name all property definitions in all build
+files to prevent unintentional overwriting of the invoked property by
+that of the caller, now you just have to remember to set
+<tt>inheritall="false"</tt> on all uses of the &lt;ant&gt; task.
+
+    
+<dt><b>
+Implement complex Ant builds through XSL
+</b><dd>
+
+XSLT can be used to dynamically generate build.xml files from a source
+xml file, with the <a href="manual/CoreTasks/style.html">xslt</a> task controlling
+the transform. This is the current recommended strategy for creating
+complex build files dynamically. However, its use is still apparently
+quite rare - which means you will be on the bleeding edge of technology.
+
+
+<dt><b>
+Change the invocation scripts
+</b><dd>
+
+By writing your own invocation script - using the DOS, Unix or Perl
+script as a starting point - you can modify Ant's settings and behavior for an
+individual project. For example, you can use an alternate variable to
+<tt>ANT_HOME</tt> as the base, extend the classpath differently, or dynamically
+create a new command line property &quot;<tt>project.interfaces</tt>&quot; from all <tt>.jar</tt>
+files in an interfaces directory.
+
+<p>
+Having a custom invocation script which runs off a CVS controlled
+library tree under <tt>PROJECT_HOME</tt> also lets you control Ant versions
+across the team - developers can have other copies of Ant if they want,
+but the CVS tree always contains the jar set used to build your project.
+
+<p>
+You can also write wrapper scripts which invoke the existing Ant
+scripts. This is an easy way to extend them. The wrapper scripts can add
+extra definitions and name explicit targets, redefine <tt>ANT_HOME</tt> and
+generally make development easier. Note that &quot;ant&quot; in Windows is really
+&quot;ant.bat&quot;, so should be invoked from another batch file with a "CALL
+ant" statement - otherwise it never returns to your wrapper.
+
+
+<dt><b>
+Write all code so that it can be called from Ant
+</b><dd>
+This seems a bit strange and idealistic, but what it means is that you should
+write all your java code as if it may be called as a library at some point in
+future. So do not place calls to <tt>System.exit()</tt> deep in the code - if you
+want to exit a few functions in, raise an exception instead and have
+<tt>main()</tt> deal with it.
+
+<p>
+Moving one step further, consider proving an Ant Task interface to the
+code as a secondary, primary or even sole interface to the
+functionality. Ant actually makes a great bootloader for Java apps as it
+handles classpath setup, and you can re-use all the built in tasks for
+preamble and postamble work. Some projects, such as 
+<a href="http://xdoclet.sf.net">XDoclet</a> only run under Ant, because
+that is the right place to be.
+
+<!-- <dt><b>
+Use Antidote as the invocation tool
+</b><dd>
+Even if you edit Ant files by hand, Antidote makes a good execution tool
+because it eliminates the startup time of the JVM, perhaps even some of
+the XML parsing delays. 
+ -->
+<dt><b>
+Use the replace task to programmatic modify text files in your project.  
+</b><dd>
+Imagine your project has some source files - BAT files, ASPX pages(!), anything
+which needs to be statically customised at compile time for particular
+installations, such driven from some properties of the project such as JVM options, or the URL
+to direct errors too. The replace task can be used to modify files, substituting text and creating
+versions customised for that build or destination. Of course, per-destination customisation
+should be delayed until installation, but if you are using Ant for the remote installation
+that suddenly becomes feasible.     
+
+<dt><b>
+Use the mailing lists
+</b><dd>
+There are two 
+<a href="http://ant.apache.org/mail.html">mailing lists</a> 
+related to Ant, user and developer. Ant user is where <i>all</i>
+questions related to using Ant should go. Installation, syntax, code
+samples, etc - post your questions there or search the archives for 
+whether the query has been posted and answered before. Ant-developer
+is where Ant development takes place - so it is <i>not</i> the place to
+post things like &quot;I get a compilation error when I build my project&quot; or
+&quot;how do I make a zip file&quot;. If you are actually extending Ant, on the other
+hand, it is the ideal place to ask questions about how to add new tasks, make
+changes to existing ones - and to post the results of your work, if you want them
+incorporated into the Ant source tree.  
+</dl>
+
+<a name="puttingtogether">
+    <h2>
+        Putting it all together
+    </h2>
+</a>
+
+What does an Ant build process look like in this world? Assuming a
+single directory structure for simplicity, the build file
+should contain a number of top level targets
+<ul>
+<li>build - do an (incremental) build
+<li>test - run the junit tests
+<li>clean - clean out the output directories
+<li>deploy - ship the jars, wars, whatever to the execution system
+<li>publish - output the source and binaries to any distribution site
+<li>fetch - get the latest source from the cvs tree
+<li>docs/javadocs - do the documentation
+<li>all - clean, fetch, build, test, docs, deploy
+<li>main - the default build process (usually build or build &amp; test)
+</ul>
+Sub projects &quot;web&quot;, &quot;bean-1&quot;, &quot;bean-2&quot; can be given their own build
+files - <tt>web.xml</tt>, <tt>bean-1.xml</tt>, <tt>bean-2.xml</tt> - with the same entry points.
+Extra toplevel tasks related to databases, web site images and the like
+should be considered if they are part of the process.
+
+<p>
+Debug/release switching can be handled with separate initialisation
+targets called before the compile tasks which define the appropriate
+properties. Antcall is the trick here, as it allows you to have two paths
+of property initialisation in a build file.   
+
+<p>
+Internal targets should be used to structure the process
+<ul>
+<li> init - initialise properties, extra-tasks, read in per-user
+property files.
+<li> init-release - initialise release properties
+<li> compile - do the actual compilation
+<li> link/jar - make the jars or equivalent
+<li> staging - any pre-deployment process in which the output is dropped
+    off then tested before being moved to the production site.
+</ul>
+
+The switching between debug and release can be done by making
+init-release conditional on a property, such as <tt>release.build</tt> 
+being set :-
+
+<pre>&lt;target name=&quot;init-release&quot; if=&quot;release.build&quot;&gt;
+    &lt;property name=&quot;build.debuglevel&quot; value=&quot;lines,source&quot;/&gt;    
+  &lt;/target&gt;
+</pre>
+
+You then have dependent targets, such as &quot;compile&quot;, depend on this
+conditional target; there the &quot;default&quot; properties are set, and then the
+property is actually used. Because Ant properties are <i>immutable</i>,
+if the release target was executed its settings will override the
+default values:
+
+<pre>&lt;target name=&quot;compile&quot; depends=&quot;init,init-release&quot;&gt;
+    &lt;property name=&quot;build.debuglevel&quot; value=&quot;lines,vars,source&quot;/&gt; 
+    &lt;echo&gt;debug level=${build.debuglevel}&lt;/echo&gt;
+    &lt;javac destdir=&quot;${build.classes.dir}&quot;
+       debug=&quot;true&quot;
+       debuglevel=&quot;${build.debuglevel}&quot;
+       includeAntRuntime=&quot;false&quot;
+       srcdir=&quot;src&quot;&gt;
+      &lt;classpath refid=&quot;compile.classpath&quot;/&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+</pre>
+
+As a result, we now have a build where the release mode only includes
+the filename and line debug information (useful for bug reports), while
+the development system included variables too. 
+<p>
+It is useful to define a project name property which can be echoed in
+the init task. This lets you work out which Ant file is breaking in a
+multi file build.
+
+<p>
+What goes in to the internal Ant tasks depends on your own projects. One
+very important tactic is &quot;keep path redefinition down through
+references&quot; - you can reuse paths by giving them an ID and then
+referring to them via the &quot;refid&quot; attribute you should only need to
+define a shared classpath once in the file; filesets can be reused
+similarly.
+
+<p>
+Once you have set up the directory structures, and defined the Ant tasks
+it is time to start coding. An early priority must be to set up the
+automated test process, as that not only helps ensures that the code
+works, it verifies that the build process is working.
+
+<p>
+And that's it. The build file shouldn't need changing as new source
+files get added, only when you want to change the deliverables or part
+of the build process. At some point you may want to massively
+restructure the entire build process, restructuring projects and the
+like, but even then the build file you have should act as a foundation
+for a split build file process -just pull out the common properties into
+a properties file all build files read in, keep the target names unified
+and keep going with the project. Restructuring the source code control
+system is often much harder work.
+
+<h2>The Limits of Ant</h2>
+
+Before you start adopting Ant as the sole mechanism for the build
+process, you need to be aware of what it doesn't do.
+<p>
+
+<h3>It's not a scripting language</h3>
+
+Ant lets you declare what you want done, with a bit of testing of the
+platform and class libraries first to enable some platform specific
+builds to take place. It does not let you specify how to handle things
+going wrong (a listener class can do that), or support complex
+conditional statements.
+
+<p>
+If your build needs to handle exceptions then look at the sound listener
+as a simple example of how to write your own listener class. Complex
+conditional statements can be handled by having something else do the
+tests and then build the appropriate Ant task. XSLT can be used for
+this.
+
+<h3>It's not Make</h3>
+
+Some of the features of make, specifically inference rules and
+dependency checking are not included in Ant. That's because they are
+&quot;different&quot; ways of doing a build. Make requires you to state
+dependencies and the build steps, Ant wants you to state tasks and the
+order between them, the tasks themselves can do dependency checking or
+not. A full java build using Jikes is so fast that dependency checking
+is relatively moot, while many of the other tasks (but not all), compare
+the timestamp of the source file with that of the destination file
+before acting.
+
+<h3>It's not meant to be a nice language for humans</h3>
+
+XML isn't a nice representation of information for humans. It's a
+reasonable representation for programs, and text editors and source code
+management systems can all handle it nicely. But a complex Ant file can
+get ugly because XML is a bit ugly, and a complex build is, well,
+complicated. Use XML comments so that the file you wrote last month
+still makes sense when you get back to it, and use Antidote to edit the
+files if you prefer it. 
+
+<h3>Big projects still get complicated fast</h3>
+
+Large software projects create their own complexity, with inter-dependent
+libraries, long test cycles, hard deployment processes and a multitude of
+people each working on their own bit of the solution. That's even before
+the deadlines loom close, the integration problems become insurmountable,
+weekends become indistinguishable from weekdays in terms of workload and 
+half the team stops talking to the other half. Ant may simplify the
+build and test process, and can eliminate the full time &quot;makefile engineer&quot;
+role, but that doesn't mean that someone can stop &quot;owning the build&quot;. 
+Being in charge of the build has to mean more than they type &quot;<tt>ant all</tt>&quot; on
+their system, it means they need to set the standards of what build tools to
+use, what the common targets, what property names and files should be
+and generally oversee the sub projects build processes. On a small project,
+you don't need to do that - but remember: small projects become big projects
+when you aren't looking. If you start off with a little bit of process, then
+you can scale it if needed. If you start with none, by the time you need 
+it will be too late.   
+
+<h3>You still need all the other foundational bits of a software
+project</h3>
+
+If you don't have an source code management system, you are going to end
+up hosed. If you don't have everything under SCM, including web pages,
+dependent jars, installation files, you are still going to end up hosed,
+it's just a question of when it's going to happen.
+CVS is effectively free and works well with Ant, but Sourcesafe, Perforce,
+Clearcase and StarTeam also have Ant tasks. These tasks
+let you have auto-incrementing build counters, and automated file
+update processes. 
+
+<p>
+You also need some kind of change control process, to resist
+uncontrolled feature creep. Bugzilla is a simple and low cost tool for
+this, using Ant and a continuous test process enables a rapid evolution of code
+to adapt to those changes which are inevitable.  
+
+<h2>End piece</h2>
+
+Software development is meant to be fun. Being in the maelstrom of a
+tight project with the stress of integration and trying to code
+everything up for an insane deadline can be fun - it is certainly
+exhilarating. Adding a bit of automation to the process may make things
+less chaotic, and bit less entertaining, but it is a start to putting
+you in control of your development process. You can still have fun, you
+should just have less to worry about, a shorter build/test/deploy cycle
+and more time to spend on feature creep or important things like skiing.
+So get out there and have fun!
+
+<a name="reading">
+<h2>Further Reading</h2>
+</a>
+<ul>
+<li>
+<a
+href="http://www.martinfowler.com/articles/continuousIntegration.html">
+<i>Continuous Integration</i></a>; Martin Fowler. <br>
+A paper on using Ant within a software project
+running a continuous integration/testing process.
+<li><i> Refactoring</i>; Martin Fowler, ISBN: 0201485672 <br>
+    Covers JUnit as well as tactics for making some headway with the mess of
+    code you will soon have.
+
+<li><a href="http://manning.com/hatcher"><i>Java Development with
+Ant</i></a>;
+    Erik Hatcher and Steve Loughran. 
+
+    
+<li>
+<a href="http://www.iseran.com/Steve/papers/when_web_services_go_bad.html">
+    <i>When Web Services Go Bad</i></a>; Steve Loughran.<br>
+    One of the projects this paper is based on.    
+    
+    
+</ul>
+
+<a name="author">
+<h3>About the Author</h3>
+</a>
+
+Steve Loughran is a research scientist at a corporate R&amp;D lab,
+currently on a sabbatical building production web services against
+implausible deadlines for the fun of it. He is also a committer on
+Apache Ant and Apache Axis, and co-author of 
+<a href="http://manning.com/hatcher"><i>Java Development with Ant</i></a>. 
+He thinks that if you liked this document you'll love that book because
+it doesn't just explain Ant, it goes into processes, deployment and best practices
+and other corners of stuff that really make Ant useful. (It would 
+have been easier to just rehash the manual, but that wouldn't have been
+so useful or as much fun).  
+
+<p>
+For questions related to this document, use the Ant mailing list.
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/ant_task_guidelines.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/ant_task_guidelines.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/ant_task_guidelines.html	(revision 14989)
@@ -0,0 +1,508 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html><head>
+<title>
+Apache Ant Task Design Guidelines
+</title>
+</head><body>
+
+<h1>Apache Ant Task Design Guidelines</h1>
+
+This document covers how to write Ant tasks to a standard required to be
+incorporated into the Ant distribution. You may find it useful when
+writing tasks for personal use as the issues it addresses are still
+there in such a case.
+
+<h2>Don't break existing builds</h2>
+
+Even if you find some really hideous problem with Ant, one that is easy to fix,
+if your fix breaks an existing build file then we have problems. Making sure
+that every build file out there still works is one of the goals of all changes.
+As an example of this, Ant 1.5 passes the single dollar sign &quot;$&quot;
+through in strings; Ant 1.4 and before would strip it. To get this fix in we
+first had to write the test suite to expose current behaviour, then change
+something so that single &quot;$&quot; was passed through, but double
+&quot;$$&quot; got mapped to &quot;$&quot; for backwards compatibility.
+
+<h2>Don't break the Java API</h2>
+
+Ant's tasks can be used by third party programs and tasks.
+We cannot make changes that break the API. This includes:
+<ol>
+<li>Moving classes without leaving a backwards-compatible facade.
+<li>Deleting classes.
+<li>Deleting methods or fields, or reducing their accessibility.
+<li>Changing the signature of a <tt>setAttribute(Type)</tt> method. If you need
+to add a restrictive type, add a new attribute, and place it in the source
+<i>above</i> the original. The XML mapper will get the restricted type, old programs
+can still use the old type.
+<li>Don't change semantics. At least, not drastically. All bug fixes are
+implicit changes of semantics, after all.
+</ol>
+
+<h2>Use built in helper classes</h2>
+
+Ant includes helper tasks to simplify much of your work. It is much better to
+use them than roll your own, for development, maintenance and code size reasons.
+
+<h4>Execute</h4>
+
+Execute will spawn off separate programs under all the platforms which
+Ant supports, dealing with Java version issues as well as platform
+issues. Always use this class to invoke other programs.
+
+<h4>Java, ExecuteJava</h4>
+
+These classes can be used to spawn Java programs in a separate VM (they
+use execute) or in the same VM--with or without a different classloader.
+When deriving tasks from this, it often benefits users to permit the
+classpath to be specified, and for forking to be an optional attribute.
+
+<h4>Project and related classes</h4>
+
+Project, FileUtils, JavaEnvUtils all have helper functions to do things like
+touch a file, copy a file and the like. Use these instead of coding them
+yourself or trying to use tasks which may be less stable and fiddlier to use.
+
+<h2>Obey the Sun/Java style guidelines</h2>
+
+The Ant codebase aims to have a single unified coding standard, and that
+standard is the
+<a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">
+Sun Java coding guidelines
+</a>
+<p>
+
+It's not that they are better than any alternatives, but they are a
+standard and they are what is consistently used in the rest of the
+tasks. Code will not be incorporated into the database until it complies
+with these.
+
+<p>
+
+If you are writing a task for your personal or organisational use, you
+are free to use whatever style you like. But using the Sun Java style
+will help you to become comfortable with the rest of the Ant source,
+which may be important.
+
+<p>
+
+One important rule is 'no tabs'. Use four spaces instead. Not two,
+not eight, four. Even if your editor is configured to have a tab of four
+spaces, lots of others aren't. Spaces have more consistency across
+editors and platforms. Some IDEs (JEdit) can highlight tabs, to stop you
+accidentally inserting them.
+<p>
+There is an Ant build file check.xml in the main ant directory with runs 
+  <a href="http://checkstyle.sourceforge.net">checkstyle</a> over
+  Ant's source code.
+
+<h2>Attributes and elements</h2>
+Use the Ant introspection-based mapping of attributes into Java datatypes,
+rather than implementing all your attributes as setFoo(String) and doing
+the mapping to int, boolean or File yourself. This saves work on your part,
+lets Java callers use you in a typesafe manner, and will let the Xdocs
+documentation generator work out what the parameters are.
+
+<p>
+The Ant 1.x tasks are very inconsistent regarding naming of attributes--some
+tasks use <tt>source</tt>, others <tt>src</tt>.
+Here is a list of preferred attribute names:
+<p>
+<table cellpadding="5">
+<tr>
+<td>
+    failonerror
+</td>
+<td>
+    boolean to control whether failure to execute should throw a
+    <tt>BuildException</tt> or just print an error.
+    Parameter validation failures should always throw an error, regardless
+    of this flag.
+</td>
+</tr>
+<tr>
+<td>
+    destdir
+</td>
+<td>
+    destination directory for output
+</td>
+</tr>
+<tr>    
+<td>
+    destfile
+</td>
+<td>
+    destination file for output
+</td>
+</tr>
+<tr>
+<td>
+    srcdir
+</td>
+<td>
+    source directory
+</td>
+</tr>
+<tr>
+<td>
+    srcfile
+</td>
+<td>
+    source file
+</td>
+</tr>
+</table>
+<p>
+Yes, this is a very short list. Try and be vaguely consistent with the core
+tasks, at the very least.
+
+<h2>Support classpaths</h2>
+
+Try and make it possible for people to supply a classpath to your task,
+if you need external libraries, rather than make them add everything to
+the ANT_HOME/lib directory. This lets people keep the external libraries
+in their Ant-based project, rather than force all users to make changes
+to their Ant system configuration.
+
+<h2>Design for controlled re-use</h2>
+
+Keep member variables private. If read access by subclasses is required,
+add accessor methods rather than change the accessiblity of the member.
+This enables subclasses to access the contents, yet still be decoupled 
+from the actual implementation.
+<p>
+
+The other common re-use mechanism in Ant is for one task to create and
+configure another. This is fairly simple. There are facilities available in
+Ant's API to have the tasks instantiated by their familiar names
+(&quot;java&quot;, &quot;exec&quot;, etc.). It is recommended that you
+<b>not</b> use this approach because of the entirely real possibility that a
+user has overridden the name to point to a different class entirely. Use direct
+constructor calls (or reflection) to instantiate your subtask. Since Ant 1.6.3,
+you can call <code>org.apache.tools.ant.Task#bindToOwner()</code>
+to &quot;mask&quot; a helper task as its parent.
+
+<h2>Do your own Dependency Checking</h2>
+
+Make has the edge over Ant in its integrated dependency checking; the
+command line apps make invokes don't need to do their own work. Ant tasks
+do have to do their own dependency work, but if this can be done then
+it can be done well. A good dependency-aware task can work out the dependencies
+without explicit dependency information in the build file, and be smart
+enough to work out the real dependencies, perhaps through a bit of file parsing.
+The <tt>depends</tt> task is the best example of this. Some of the zip/jar
+tasks are pretty good too, as they can update the archive when needed.
+Most tasks just compare source and destination timestamps and work from there.
+Tasks which don't do any dependency checking do not help users as much as
+they can, because their needless work can trickle through the entire build, test
+and deploy process.
+
+<h2>Support Java 1.2 through Java 1.5+</h2>
+
+Ant 1.5 and lower was designed to support Java 1.1. Ant 1.6 and higher
+is designed to support Java 1.2: to build on it, to run on it. Sometimes
+functionality of tasks have to degrade in that environment--usually due to
+library limitations; such behaviour change must always be noted in the
+documentation.
+<p>
+What is problematic is code which is dependent on Java 1.3 features;
+e.g. java.lang.reflect.Proxy, or Java 1.4 features; e.g. java.io.nio.
+Be also aware of extra methods in older classes;
+e.g. StringBuffer#append(StringBuffer). These cannot be used directly
+by any code and still be able to compile and run on a Java 1.2 system.
+If a new method in an existing class is to be used, it must be used via
+reflection and the <tt>NoSuchMethodException</tt> handled somehow.
+<p>
+What if code simply does not work on Java 1.2? It can happen. It will
+probably be OK to have the task as an optional task, with compilation
+restricted to Java 1.3 or later through build.xml modifications.
+Better still, use reflection to link to the classes at run time.
+<p>
+Java 1.4 adds a new optional change to the language itself, the
+<tt>assert</tt> keyword, which is only enabled if the compiler is told
+to compile 1.4 version source. Clearly with the 1.2 compatibility requirement,
+Ant tasks cannot use this keyword. They also need to move away from
+using the JUnit <tt>assert()</tt> method and call <tt>assertTrue()</tt>
+instead.
+<p>
+Java 1.5 adds the <tt>enum</tt> type; again, this must not be used.
+
+<h2>Explicitly Expand properties in nested text</h2>
+
+For historical reasons, <tt>addText(String text)</tt> is called to
+set the task's nested text, without any property expansion taking place.
+Call <tt>Project.replaceProperties()</tt> to do this manually.
+If you forget, you create a problem that is impossible to fix
+without breaking users' build files.
+
+<h2>Refactor</h2>
+
+If the changes made to a task are making it too unwieldy, split it up
+into a cleaner design, refactor the code and submit not just feature
+creep but cleaner tasks. A common design pattern which tends to occur in
+the Ant process is the adoption of the adapter pattern, in which a base
+class (say Javac or Rmic) starts off simply, then gets convoluted with
+support for multiple back ends:  javac, jikes, jvc. A refactoring to
+split the programmable front end from the classes which provide the back
+end cleans up the design and makes it much easier to add new back ends.
+But to carry this off one needs to keep the interface and behaviour of
+the front end identical, and to be sure that no subclasses have been
+accessing data members directly, because these data members may not
+exist in the refactored design. This is why having private data members
+is so important.
+
+<p>
+
+One thing we must not do is move existing tasks around or delete them.
+Remember that Ant has a Java API as well as an XML language. We don't want
+to break that API, or anything that subclasses existing Ant tasks. When
+refactoring, you need to leave facades where the original classes were. so
+existing code does not break.
+
+<h2>Test</h2>
+
+Look in <tt>ant/src/testcases</tt> and you will find JUnit tests for the
+shipping Ant tasks, to see how it is done and what is expected of a new
+task. Most of them are rudimentary, and no doubt you could do better for
+your task--feel free to do so!
+
+<p>
+
+A well written set of test cases will break the Ant task while it is in
+development, until the code is actually complete. And every bug which
+surfaces later should have a test case added to demonstrate the problem,
+and to fix it.
+
+<p>
+
+The test cases are a great way of testing your task during development.
+A simple call to 'build run-test' in the ant source tree will run all ant
+tests, to verify that your changes don't break anything.
+To test a single task, use the one shot <code>ant run-single-test
+-Dtestcase=${testname}</code> where <code>${testname}</code>
+is the name of your test class.
+
+<p>
+
+The test cases are also used by the committers to verify that changes
+and patches do what they say. If you've got test cases it increases your
+credibility significantly. To be precise, we hate submissions without
+test cases, as it means we have to write them ourselves. This is
+something that only gets done if we need the task or it is perceived as
+utterly essential to many users.
+
+<p>
+
+Remember also that Ant 1.x is designed to compile and run on Java 1.2, so
+you should test on Java 1.2 as well as any later version which you use.
+You ought to be able to download an old SDK from Sun for this purpose.
+<p>
+Finally, run a full <code>build test</code> before and after you start
+developing your project, to make sure you haven't broken anything else by
+accident.
+
+<h2>Document</h2>
+
+Without documentation, the task can't be used. So remember to provide a
+succinct and clear html (soon, xml) page describing the task in a similar
+style to that of existing tasks. It should include a list of attributes
+and elements, and at least one working example of the task. Many users
+cut and paste the examples into their build files as a starting point,
+so make the examples practical and test them too.
+<p>
+You can use the xdocs stuff in proposal/xdocs to autogenerate your
+documentation page from the javadocs of the source; this makes life
+easier and will make the transition to a full xdoclet generated
+documentation build process trivial.
+
+<h2>Licensing and Copyright</h2>
+
+Any code submitted to the Apache project must be compatible with the
+Apache Software License, and the act of submission must be viewed as
+an implicit license of the submitted code to the Apache Software
+Foundation.
+
+<p>
+This is important.
+
+<p>
+
+The fairly laissez-faire license of Apache is not currently considered
+compatible with
+either the GPL or the Lesser GPL of the Free Software Foundation--the
+Gnu project. These licenses have stricter terms, &quot;copyleft&quot;,
+which are not in the Apache Software Foundation license.
+This permits people and organisations to build
+commercial and closed source applications atop the Apache libraries and source.
+
+<p>
+
+Because the Gnu GPL license immediately extends to cover any larger
+application (or library, in the case of LGPL) into which it is
+incorporated, the Ant team cannot incorporate any task based upon GPL
+or LGPL source into the Ant codebase. You are free to submit it, but it
+will be politely and firmly rejected.
+
+<p>
+If you link to a GPL or LGPL library, by <code>import</code> or
+reflection, your task must be licensed under the same terms. So tasks
+linking to (L)GPL code can't go into the Apache managed codebase.
+Tasks calling such code can use the 'exec' or 'java' tasks to run the
+programs, as you are just executing them at this point, not linking to
+them.
+<p>
+Even if we cannot include your task into the Apache codebase, we can
+still point to where you host it; just submit a diff to
+xdocs/external.html pointing to your task.
+<p>
+If your task links directly to proprietary code, we have a different
+problem: it is really hard to build the tasks. Please use reflection.
+
+<h3>Don't re-invent the wheel</h3>
+
+We've all done it: written and submitted a task only to discover it
+was already implemented in a small corner of another task, or it has
+been submitted by someone else and not committed. You can avoid this
+by being aware of what is in the latest CVS tree; keep getting the daily
+source updates, look at manual changes and subscribe to the dev
+mailing list.
+
+<p>
+
+If you are thinking of writing a task, posting a note on your thoughts
+to the list can be informative--you will get other peoples' insights and
+maybe some half-written task to do the basics, all without writing a
+line of code.
+
+<h2>Submitting to Ant</h2>
+
+The basic mechanism for submitting an Ant task is to mail it to the
+dev mailing list. It helps to be on this list, as you will see other
+submissions, and any debate about your own submission.
+<p>
+You may create your patch file using either of the following approaches
+(the committers recommend the first):
+<p>
+<ul>
+<li><h3>Approach 1 - The Ant Way</h3>
+<p>
+Use Ant to generate a patch file to Ant:
+<pre class="code">
+ant -f patch.xml
+</pre>
+This will create a file named patch.tar.gz that will contain a unified
+diff of files that have been modified and also include files that have
+been added.  Review the file for completeness and correctness.  This approach
+is recommended because it standardizes the way in which patch files are
+constructed.  It also eliminates the chance of you missing to submit new files
+that constitute part of the patch.
+<p>
+<li><h3>Approach 2 - The Manual Way</h3>
+<p>
+Patches to existing files should be generated with
+<code>svn diff -u filename</code>
+ and save the output to a file. If you want to get
+the changes made to multiple files in a directory , just use <code>cvs
+diff -u</code>.  Then, Tar and GZip the patch file as well as any new files
+that you have added.
+</ul>
+<p>
+The patches should be sent as an attachment to a message titled [PATCH]
+and distinctive one-line summary in the subject of the patch. The
+filename/task and the change usually suffices. It's important to include
+the changes as an attachment, as too many mailers reformat the text
+pasted in, which breaks the patch.
+<p>
+Then you wait for one of the committers to commit the patch, if it is
+felt appropriate to do so. Bug fixes go in quickly, other changes
+often spark a bit of discussion before a (perhaps revised) commit is
+made.
+<p>
+
+New submissions should be proceeded with [SUBMIT]. The mailer-daemon
+will reject any messages over 100KB, so any large update should be
+zipped up. If your submission is bigger than that, why not break it up
+into separate tasks.
+<p>
+
+We also like submissions to be added to
+<a href="http://issues.apache.org/bugzilla/">bugzilla</a>, so that they dont get lost. Please submit them by first filing the report with a
+meaningful name, then adding files as attachments. Use CVS diff files
+please!
+<p>
+
+If you hear nothing after a couple of weeks, remind the mailing list.
+Sometimes really good submissions get lost in the noise of other issues.
+This is particularly the case just prior to a new point release of
+the product. At that time anything other than bug fixes will tend
+to be neglected.
+
+<h2>Checklists</h2>
+
+These are the things you should verify before submitting patches and new
+tasks. Things don't have to be perfect; it may take a couple of
+iterations before a patch or submission is committed, and these items
+can be addressed in the process. But by the time the code is committed,
+everything including the documentation and some test cases will have
+been done, so getting them out the way up front can save time.
+The committers look more favourably on patches and submissions with test
+cases, while documentation helps sell the reason for a task.
+
+<h3>Checklist before submitting a patch</h3>
+<ul>
+<li>Added code complies with style guidelines
+<li>Code compiles and runs on Java 1.2
+<li>New member variables are private, and provide public accessor methods
+	if access is actually needed.
+<li>Existing test cases succeed.
+<li>New test cases written and succeed.
+<li>Documentation page extended as appropriate.
+<li>Example task declarations in the documentation tested.
+<li>Diff files generated using svn diff -u
+<li>Message to dev contains [PATCH], task name and patch reason in
+subject.
+<li>Message body contains a rationale for the patch.
+<li>Message attachment contains the patch file(s).
+</ul>
+
+<h3>Checklist before submitting a new task</h3>
+<ul>
+<li>Java file begins with Apache copyright and license statement.
+<li>Task does not depend on GPL or LGPL code.
+<li>Source code complies with style guidelines
+<li>Code compiles and runs on Java 1.2
+<li>Member variables are private, and provide public accessor methods
+	if access is actually needed.
+<li><i>Maybe</i> Task has failonerror attribute to control failure behaviour
+<li>New test cases written and succeed
+<li>Documentation page written
+<li>Example task declarations in the documentation tested.
+<li>Patch files generated using svn diff -u
+<li>patch files include a patch to defaults.properties to register the
+tasks
+<li>patch files include a patch to coretasklist.html or
+optionaltasklist.html to link to the new task page
+<li>Message to dev contains [SUBMIT] and task name in subject
+<li>Message body contains a rationale for the task
+<li>Message attachments contain the required files -source, documentation,
+test and patches zipped up to escape the HTML filter.
+</ul>
+
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/antnews.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/antnews.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/antnews.html	(revision 14989)
@@ -0,0 +1,536 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - News</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Conor MacNeill">
+  <meta name="email" content="">
+        <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="">
+        <meta name="author" content="Magesh Umasankar">
+  <meta name="email" content="">
+        <meta name="author" content="Antoine Levy-Lambert">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                              <span class="sel">News</span>
+                              </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">News</h1>
+            <h3 class="section">
+      <a name="Ant 1.7.0"></a>
+      Ant 1.7.0
+    </h3>
+                        <h3>December 19, 2006 - Ant 1.7.0 Available</h3>
+                                <p>Apache Ant 1.7.0 is now available for <a href="http://ant.apache.org/bindownload.cgi">download</a>.</p>
+                                <p> Ant 1.7 introduces a resource framework. Some of the core ant 
+    tasks such as &lt;copy/&gt; are now able to process not only file 
+    system resources but also zip entries, tar entries, paths, ... 
+    Resource collections group resources, and can be further 
+    combined with operators such as union and intersection. This 
+    can be extended by custom resources and custom tasks using resources.</p>
+                                <p>
+    Ant 1.7 starts outsourcing of optional tasks to Antlibs. 
+    The .NET antlib in preparation will replace the .NET optional tasks which ship in Ant.
+    Support for the version control system Subversion will be only provided as an antlib to
+    be released shortly. 
+    </p>
+                                <p>Ant 1.7 fixes also a large number of bugs.</p>
+                                <p>Ant 1.7 has some initial support for Java6 features.</p>
+                        <h3 class="section">
+      <a name=".NET Ant Library 1.0Beta1"></a>
+      .NET Ant Library 1.0Beta1
+    </h3>
+                        <h3>November 6, 2006 - Apache .NET Ant Library 1.0 Available</h3>
+                                <p>Apache .NET Ant Library 1.0 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains support for tools like NUnit as well
+    as the "old .NET tasks of Ant's core.  It has been tested
+    Microsoft's frameworks as well as Mono.</p>
+                                <p>For more information see the <a href="antlibs/dotnet/">Antlib's
+    home page</a></p>
+                        <h3 class="section">
+      <a name="AntUnit 1.0Beta2"></a>
+      AntUnit 1.0Beta2
+    </h3>
+                        <h3>October 29, 2006 - Apache AntUnit 1.0Beta2 Available</h3>
+                                <p>Apache AntUnit 1.0Beta1 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains tasks to test Ant tasks using Ant
+    instead of JUnit.  For more information see the <a href="antlibs/antunit/">AntUnit home page</a>.</p>
+                        <h3 class="section">
+      <a name="AntUnit 1.0Beta1"></a>
+      AntUnit 1.0Beta1
+    </h3>
+                        <h3>September 22, 2006 - Apache AntUnit 1.0Beta1 Available</h3>
+                                <p>Apache AntUnit 1.0Beta1 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains tasks to test Ant tasks using Ant
+    instead of JUnit.  For more information see the <a href="antlibs/antunit/">AntUnit home page</a>.</p>
+                        <h3 class="section">
+      <a name=".NET Ant Library 1.0Beta1"></a>
+      .NET Ant Library 1.0Beta1
+    </h3>
+                        <h3>September 13, 2006 - Apache .NET Ant Library 1.0Beta1 Available</h3>
+                                <p>Apache .NET Ant Library 1.0Beta1 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains support for tools like NUnit as well
+    as the "old .NET tasks of Ant's core.  It has been tested
+    Microsoft's frameworks as well as Mono.</p>
+                                <p>For more information see the <a href="antlibs/dotnet/">Antlib's
+    home page</a></p>
+                        <h3 class="section">
+      <a name="Ant 1.6.5"></a>
+      Ant 1.6.5
+    </h3>
+                        <h3>June 2, 2005 - Ant 1.6.5 Available</h3>
+                                <p>Apache Ant 1.6.5 is now available for <a href="http://ant.apache.org/bindownload.cgi">download</a>.</p>
+                                <p>This is a bug fix release.</p>
+                        <h3 class="section">
+      <a name="Ant 1.6.4"></a>
+      Ant 1.6.4
+    </h3>
+                        <h3>May 19, 2005 - Ant 1.6.4 Available</h3>
+                                <p>Apache Ant 1.6.4 is now available for <a href="http://archive.apache.org/dist/ant/">download</a>.</p>
+                                <p>This is a bug fix release.</p>
+                        <h3 class="section">
+      <a name="Ant 1.6.3"></a>
+      Ant 1.6.3
+    </h3>
+                        <h3>April 28, 2005 - Ant 1.6.3 Available</h3>
+                                <p>Apache Ant 1.6.3 is now available for <a href="http://archive.apache.org/dist/ant/">download</a>.</p>
+                                <p>There is a large list of fixed bugs and enhancements.</p>
+                                <p>Some of the bugs affecting the embedded use of Ant are fixed.</p>
+                        <h3 class="section">
+      <a name="Antidote Retired"></a>
+      Antidote Retired
+    </h3>
+                        <h3>April 4th, 2005 - The Apache Ant Project Retires Antidote, the
+    Ant GUI</h3>
+                                <p>The Antidote subproject was once started to provide a GUI for
+    Ant at a time where IDE support for Ant was far from usable.
+    Unfortunately it never attracted a developer community of its
+    own.</p>
+                                <p>At the same time IDE support for Ant has become ubiquitous by
+    now and there is little reason to have a GUI just for Ant.  This
+    makes it even less likely that volunteers will start to spend time
+    working on it.</p>
+                                <p>Antidote's development has been stalled for years now, despite
+    some efforts to rejuvenate it by single developers.  Therefore the
+    Ant developers have chosen to retire Antidote.</p>
+                                <p>Antidote will no longer be developed by the Ant project; its
+    CVS module will be shut down.</p>
+                                <p>If you are interested in Antidote's sources to learn from or
+    build on it, you can find snapshots at <a href="http://archive.apache.org/ant/antidote/">http://archive.apache.org/ant/antidote/</a>.</p>
+                        <h3 class="section">
+      <a name="Ant 1.6.2"></a>
+      Ant 1.6.2
+    </h3>
+                        <h3>July 16, 2004 - Ant 1.6.2 Available</h3>
+                                <p>Apache Ant 1.6.2 available for <a href="http://archive.apache.org/dist/ant/">download</a>.</p>
+                                <p>Nested elements for namespaced tasks and types may belong to the
+Ant default namespace as well as the task's or type's namespace.</p>
+                                <p>All exceptions thrown by tasks are now wrapped in a
+buildexception giving the location in the buildfile of the task.</p>
+                                <p>Ant 1.6.2 fixes a large number of bugs and adds a number of
+features which were asked for by users on Bugzilla.</p>
+                        <h3 class="section">
+      <a name="Wiki Migration"></a>
+      Wiki Migration
+    </h3>
+                        <h3>February 29, 2004</h3>
+                                <p>The Ant Wiki pages have been migrated to their 
+      <a href="http://wiki.apache.org/ant/">new home</a> on the Apache
+      Wiki farm.
+    </p>
+                        <h3 class="section">
+      <a name="Ant 1.6.1"></a>
+      Ant 1.6.1
+    </h3>
+                        <h3>February 12, 2004 - Ant 1.6.1 Available</h3>
+                                <p>Apache Ant 1.6.1 is still available for
+      <a href="http://archive.apache.org/dist/ant/">download</a>.
+     </p>
+                                <p>The ASF Board has approved the new Apache License 2.0.
+    For a copy of that license, please see
+    <a href="http://www.apache.org/licenses/">
+    http://www.apache.org/licenses/</a>.</p>
+                                <p>The Ant 1.6.1 release is delivered with the
+    Apache License 2.0.</p>
+                                <p>Ant 1.6.1 fixes several bugs, most notably the handling
+    of the default namespace for nested elements.</p>
+                                <p>Ant 1.6.1 also introduces initial support for compiling with
+    Java 1.5.</p>
+                        <h3 class="section">
+      <a name="Ant 1.6.0"></a>
+      Ant 1.6.0
+    </h3>
+                        <h3>December 18, 2003 - Ant 1.6.0 Available</h3>
+                                <p>Apache Ant 1.6.0 is still available for
+      <a href="http://archive.apache.org/dist/ant/">download</a>.
+     </p>
+                                <p>As
+    we've already said in the announcements of Ant 1.5.4, this release
+    requires JDK 1.2 or later to run.</p>
+                                <p>Ant 1.6.0 adds a lot of new features, most prominently support
+    for XML namespaces as well as a new concept of Ant libraries that
+    makes use of namespaces to avoid name clashes of custom tasks.
+    For a longer list of fixed bugs and new features see the release
+    notes.</p>
+                                <p>If you find anything that hasn't been covered in the manual (I bet you
+did) or could be explained better, feel free to help us out in the
+<a href="http://wiki.apache.org/ant/NewAntFeaturesInDetail">Wiki</a>.</p>
+                        <h3 class="section">
+      <a name="Ant 1.5.4"></a>
+      Ant 1.5.4
+    </h3>
+                        <h3>August 12, 2003 - Ant 1.5.4 Available</h3>
+                                <p>Apache Ant 1.5.4 is still available for
+     <a href="http://archive.apache.org/dist/ant/">download</a>.
+    </p>
+                                <p>This is a minor bugfix release that fixes a problem with the
+    <code>javah</code> task on JDK 1.4.2 and a couple of bugs in the
+    Visual Age for Java intergration tasks.  If you don't use javah or
+    VAJ, there is no reason to upgrade.</p>
+                                <div class="warning">
+    <div class="label">Note</div>
+    <div class="content">Ant 1.5.4 is the last release that supports
+      JDK 1.1. Ant 1.6.0 requires JDK 1.2 or
+      later.
+    </div>
+    </div>
+                        <h3 class="section">
+      <a name="Java Pro 2003 Readers Choice Award"></a>
+      Java Pro 2003 Readers Choice Award
+    </h3>
+                        <a href="http://www.ftponline.com/javapro/">
+      <img style="padding: 5px" src="images/jp_rcwinner_2003.gif" alt="" border="0" height="80" width="139" align="right" /></a>
+                                <h3>June 11th, 2003: Ant wins a Java Pro readers' choice award</h3>
+                                <p>
+      Ant has won the Java Pro 2003 Readers' Choice Award for 
+    </p>
+                                <p>
+      <strong>Most Valuable Java Deployment Technology</strong>.
+    </p>
+                                <p>
+      Thanks to Java Pro and all its readers. You can read about
+      these 
+      <a href="http://www.ftponline.com/reports/javaone/2003/awards/">awards</a>
+      at the Java Pro website.
+    </p>
+                        <h3 class="section">
+      <a name="JDJ Editors Choice Award"></a>
+      JDJ Editors Choice Award
+    </h3>
+                        <a href="http://sys-con.com/java/article2a.cfm?id=2059&amp;count=1734&amp;tot=6&amp;page=2"><img src="images/JDJEditorsChoiceAward.jpg" alt="" border="0" align="right" /></a>
+                                <h3>June 2003: Ant wins JDJ Editors' Choice Award</h3>
+                                <p>
+"Ant is the hammer of the Java world: without it, civilization might have progressed, but much more slowly than it has. Ant is one of the most useful build tools I have ever had the pleasure to use." - Joe Ottinger
+    </p>
+                        <h3 class="section">
+      <a name="Ant keeps on winning!"></a>
+      Ant keeps on winning!
+    </h3>
+                        <a href="http://www.javaworld.com/"><img src="images/jw_ec_logo_winner2003.gif" alt="" border="0" height="108" width="252" align="right" /></a>
+                                <h3>June 9th, 2003: Ant wins the JavaWorld Editors' Choice Award</h3>
+                                <p>
+    Ant has won the JavaWorld Editors' Choice Award for
+    </p>
+                                <p>
+    <strong>Most Useful Java Community-Developed Technology</strong>
+    </p>
+                                <p>
+    for the second time in a row! Read the
+    <a href="http://www.javaworld.com/javaworld/jw-06-2003/jw-0609-eca.html"> full article</a> -- or jump directly to the bit about
+    <a href="http://www.javaworld.com/javaworld/jw-06-2003/jw-0609-eca-p4.html"> our award</a> <code>:)</code></p>
+                        <h3 class="section">
+      <a name="Ant 1.5.3"></a>
+      Ant 1.5.3
+    </h3>
+                        <h3>April 9, 2003 - Ant 1.5.3 Available</h3>
+                                <p>Apache Ant 1.5.3 is still available for
+     <a href="http://archive.apache.org/dist/ant/">download</a>.
+    </p>
+                        <h3 class="section">
+      <a name="Ant 1.5.2"></a>
+      Ant 1.5.2
+    </h3>
+                        <h3>March 3, 2003 - Ant 1.5.2 Available!</h3>
+                                <p>The final version of Ant 1.5.2 is available for
+     <a href="http://archive.apache.org/dist/ant/">download</a>.
+     If you have any feedback on this release, feel free to join the 
+     discussion on the dev and user mailing lists.
+     </p>
+                        <h3 class="section">
+      <a name="Ant Top Level Project"></a>
+      Ant Top Level Project
+    </h3>
+                        <h3>November 18, 2002</h3>
+                                <p>The Apache board <a href="mission.html">created</a>
+       the Apache Ant top level project. Ant has now migrated from the Jakarta
+       project into an Apache project of its own. This is primarily an
+       organizational change and will not affect the technical aspects of
+       the project. Ant retains a strong association with the Apache
+       Jakarta project. One effect of this change is that the Ant webpage
+       is now located at <a href="http://ant.apache.org/">http://ant.apache.org/</a>
+     </p>
+                        <h3 class="section">
+      <a name="Ant 1.5.1"></a>
+      Ant 1.5.1
+    </h3>
+                        <h3>October 3, 2002 - Ant 1.5.1 Available !</h3>
+                                <p>The final version of Ant 1.5.1 is still available for
+     <a href="http://archive.apache.org/dist/ant/">
+     download</a>. If you have any feedback on this release, feel free to join the 
+     discussion on the ant-dev and ant-user mailing lists.
+     </p>
+                        <h3 class="section">
+      <a name="Ant 1.5"></a>
+      Ant 1.5
+    </h3>
+                        <h3>July 15, 2002 - Fix for Cygwin problem in wrapper script available</h3>
+                                <p>The wrapper script of Ant 1.5 needs to be replaced with a new
+      version for Cygwin users.  See the <a href="faq.html#1.5-cygwin-sh">FAQ</a> for details.</p>
+                                <h3>July 10, 2002 - Ant 1.5 Released!</h3>
+                                <p>The final version of Ant 1.5 is now available for 
+     <a href="http://archive.apache.org/dist/ant/">
+     download</a>. If you have any feedback on this release, feel free to join the 
+     discussion on the ant-dev and ant-user mailing lists.
+     </p>
+                        <h3 class="section">
+      <a name="Ant wins again!"></a>
+      Ant wins again!
+    </h3>
+                        <a href="http://www.sdmagazine.com/"><img src="images/sdm_productivity_award.gif" alt="" border="0" height="108" width="181" align="right" /></a>
+                                <h3>Apr 29, 2002: Ant wins <em>Software Development</em> magazine's
+    2002 Productivity Award.</h3>
+                                <p>
+    Ant has been awarded a <strong>2002 Productivity Award</strong> by
+    <a href="http://www.sdmagazine.com/"><em>Software Development</em></a>
+    magazine.  Read the
+    <a href="http://www.sdmagazine.com/jolts/press_release_4-26-02.htm">
+    press release</a> for more information and the full list of winners.
+    </p>
+                        <h3 class="section">
+      <a name="Ant has won!"></a>
+      Ant has won!
+    </h3>
+                        <a href="http://www.javaworld.com/"><img src="images/jw_ec_logo_winner2002.gif" alt="" border="0" height="108" width="252" align="right" /></a>
+                                <h3>Mar 26, 2002: Ant wins the JavaWorld Editors' Choice
+    Award</h3>
+                                <p>
+    Ant has won the JavaWorld Editors' Choice Award for
+    <strong>Most Useful Java Community-Developed Technology</strong>.
+    Read the
+    <a href="http://www.javaworld.com/javaworld/jw-03-2002/jw-0326-awards.html "> full article</a> -- or jump directly to the bit about
+    <a href="http://www.javaworld.com/javaworld/jw-03-2002/jw-0326-awards-p3.html"> our award</a> <code>:)</code></p>
+                        <h3 class="section">
+      <a name="Java 1.4 Support"></a>
+      Java 1.4 Support
+    </h3>
+                        <h3>Feb 15, 2002: Java 1.4 Support</h3>
+                                <p>
+      Java 1.4 has now been released by Sun. The latest Ant source supports 
+      the new <tt>assert</tt> statement in the compiler task via the <tt>source</tt> 
+      attribute. It also contains a compatibility fix needed for some ant tasks
+      on Java 1.4 over Windows XP. If you have problems running Ant 1.4.1 on WinXP/Java 1.4,
+      please use a recent build or compile your own version from the source tree. 
+    </p>
+                        <h3 class="section">
+      <a name="See our new logo!"></a>
+      See our new logo!
+    </h3>
+                        <h3>Have a look at our new cool logo!</h3>
+                        <h3 class="section">
+      <a name="Ant 1.4.1"></a>
+      Ant 1.4.1
+    </h3>
+                        <h3>11 October 2001 Ant 1.4.1 released !</h3>
+                                <p>Please visit the 
+     <a href="http://archive.apache.org/dist/ant/">
+     download area</a>. 
+     </p>
+                        <h3 class="section">
+      <a name="Best-Practices Profile of Ant at Sun's Dot-Com Builder"></a>
+      Best-Practices Profile of Ant at Sun's Dot-Com Builder
+    </h3>
+                        <p>Sun has released an introductory article on Ant on their
+      Dot-Com Builder site on May 30 2001. See <a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a></p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/breadcrumbs.js
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/breadcrumbs.js	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/breadcrumbs.js	(revision 14989)
@@ -0,0 +1,235 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ *
+ */
+
+/**
+ * This script, when included in a html file, builds a neat breadcrumb trail
+ * based on its url. That is, if it doesn't contains bugs (I'm relatively
+ * sure it does).
+ *
+ * Typical usage:
+ * <script type="text/javascript" language="JavaScript" src="breadcrumbs.js"></script>
+ *
+ *@author     <a href="mailto:leosimons@apache.org">Leo Simons</a> (main author)
+ *@author     <a href="mailto:nicolaken@apache.org">Nicola Ken Barozzi</a> (integration in skin)
+ *@created    July 12, 2002
+ *@version    1.0
+ */
+
+/**
+ * IE 5 on Mac doesn't know Array.push.
+ *
+ * Implement it - courtesy to fritz.
+ */
+var abc	= new Array();
+if (!abc.push) {
+  Array.prototype.push	= function(what){this[this.length]=what}
+}
+
+/* ========================================================================
+	CONSTANTS
+   ======================================================================== */
+
+/**
+ * Two-dimensional array containing extra crumbs to place at the front of
+ * the trail. Specify first the name of the crumb, then the URI that belongs
+ * to it. You'll need to modify this for every domain or subdomain where
+ * you use this script (you can leave it as an empty array if you wish)
+ */
+var PREPREND_CRUMBS = new Array();
+   if(!("apache"=="")){
+     PREPREND_CRUMBS.push( new Array( "apache", "http://www.apache.org/" ) );
+   }
+   if(!("xml.apache"=="")){
+     PREPREND_CRUMBS.push( new Array( "ant.apache", "http://ant.apache.org/" ) );
+   }
+   if(!(""=="")){
+     PREPREND_CRUMBS.push( new Array( "", "" ) );
+   }
+
+/**
+ * String to include between crumbs:
+ */
+var DISPLAY_SEPARATOR = " &gt; ";
+/**
+ * String to include at the beginning of the trail
+ */
+var DISPLAY_PREPREND = "";
+/**
+ * String to include at the end of the trail
+ */
+var DISPLAY_POSTPREND = "";
+
+/**
+ * CSS Class to use for a single crumb:
+ */
+var CSS_CLASS_CRUMB = "breadcrumb";
+
+/**
+ * CSS Class to use for the complete trail:
+ */
+var CSS_CLASS_TRAIL = "breadcrumbTrail";
+
+/**
+ * CSS Class to use for crumb separator:
+ */
+var CSS_CLASS_SEPARATOR = "crumbSeparator";
+
+/**
+ * Array of strings containing common file extensions. We use this to
+ * determine what part of the url to ignore (if it contains one of the
+ * string specified here, we ignore it).
+ */
+var FILE_EXTENSIONS = new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" );
+
+/**
+ * String that separates parts of the breadcrumb trail from each other.
+ * When this is no longer a slash, I'm sure I'll be old and grey.
+ */
+var PATH_SEPARATOR = "/";
+
+/* ========================================================================
+	UTILITY FUNCTIONS
+   ======================================================================== */
+/**
+ * Capitalize first letter of the provided string and return the modified
+ * string.
+ */
+function sentenceCase( string )
+{
+	var lower = string.toLowerCase();
+	return lower.substr(0,1).toUpperCase() + lower.substr(1);
+}
+
+/**
+ * Returns an array containing the names of all the directories in the
+ * current document URL
+ */
+function getDirectoriesInURL()
+{
+	var trail = document.location.pathname.split( PATH_SEPARATOR );
+
+	// check whether last section is a file or a directory
+	var lastcrumb = trail[trail.length-1];
+	for( var i = 0; i < FILE_EXTENSIONS.length; i++ )
+	{
+		if( lastcrumb.indexOf( FILE_EXTENSIONS[i] ) )
+		{
+			// it is, remove it and send results
+			return trail.slice( 1, trail.length-1 );
+		}
+	}
+
+	// it's not; send the trail unmodified
+	return trail.slice( 1, trail.length );
+}
+
+/* ========================================================================
+	BREADCRUMB FUNCTIONALITY
+   ======================================================================== */
+/**
+ * Return a two-dimensional array describing the breadcrumbs based on the
+ * array of directories passed in.
+ */
+function getBreadcrumbs( dirs )
+{
+	var prefix = "/";
+	var postfix = "/";
+
+	// the array we will return
+	var crumbs = new Array();
+
+	if( dirs != null )
+	{
+		for( var i = 0; i < dirs.length; i++ )
+		{
+			prefix += dirs[i] + postfix;
+			crumbs.push( new Array( dirs[i], prefix ) );
+		}
+	}
+
+	// preprend the PREPREND_CRUMBS
+	if(PREPREND_CRUMBS.length > 0 )
+	{
+		return PREPREND_CRUMBS.concat( crumbs );
+	}
+
+	return crumbs;
+}
+
+/**
+ * Return a string containing a simple text breadcrumb trail based on the
+ * two-dimensional array passed in.
+ */
+function getCrumbTrail( crumbs )
+{
+	var xhtml = DISPLAY_PREPREND;
+
+	for( var i = 0; i < crumbs.length; i++ )
+	{
+		xhtml += '<a href="' + crumbs[i][1] + '" >';
+		xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
+		if( i != (crumbs.length-1) )
+		{
+			xhtml += DISPLAY_SEPARATOR;
+		}
+	}
+
+	xhtml += DISPLAY_POSTPREND;
+
+	return xhtml;
+}
+
+/**
+ * Return a string containing an XHTML breadcrumb trail based on the
+ * two-dimensional array passed in.
+ */
+function getCrumbTrailXHTML( crumbs )
+{
+	var xhtml = '<span class="' + CSS_CLASS_TRAIL  + '">';
+	xhtml += DISPLAY_PREPREND;
+
+	for( var i = 0; i < crumbs.length; i++ )
+	{
+		xhtml += '<a href="' + crumbs[i][1] + '" class="' + CSS_CLASS_CRUMB + '">';
+		xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
+		if( i != (crumbs.length-1) )
+		{
+			xhtml += '<span class="' + CSS_CLASS_SEPARATOR + '">' + DISPLAY_SEPARATOR + '</span>';
+		}
+	}
+
+	xhtml += DISPLAY_POSTPREND;
+	xhtml += '</span>';
+
+	return xhtml;
+}
+
+/* ========================================================================
+	PRINT BREADCRUMB TRAIL
+   ======================================================================== */
+
+// check if we're local; if so, only print the PREPREND_CRUMBS
+if( document.location.href.toLowerCase().indexOf( "http://" ) == -1 )
+{
+	document.write( getCrumbTrail( getBreadcrumbs() ) );
+}
+else
+{
+	document.write( getCrumbTrail( getBreadcrumbs( getDirectoriesInURL() ) ) );
+}
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/bugs.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/bugs.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/bugs.html	(revision 14989)
@@ -0,0 +1,344 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Bug database</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Antoine Levy-Lambert">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Bug database</h1>
+            <h3 class="section">
+      <a name="Bug Database"></a>
+      Bug Database
+    </h3>
+                        <p>
+           This page gives you some bookmarks to use the Bugzilla <a href="http://issues.apache.org/bugzilla/">
+            Apache Bug Database</a>.
+         </p>
+                                <p>
+           This link <a href="http://issues.apache.org/">issues.apache.org</a> connects you
+           to the complete list of Apache Bug Database systems.
+         </p>
+                                      <h4 class="subsection">
+        <a name="Has It Been Reported?"></a>
+        Has It Been Reported?
+      </h4>
+                        <p>
+            If the current nightly build doesn't resolve your problem, it is
+            possible that someone else has reported the issue. It is time to
+            look at .  This system is easy to use, and it will
+            let you search the <a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Ant&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_id">
+            currently open</a> and resolved bugs to see if your problem has
+            already been reported. If your problem has been reported, you can
+            see whether any of the developers have commented, suggesting
+            workarounds, or the reason for the bug, etc. Or you may have
+            information to add (see about creating and modifying bug reports
+            below), in which case, go right ahead and add the information.
+            If you don't have any additional information, you may just want
+            to vote for this bug, and perhaps
+            add yourself to the <code>CC</code> list to follow the progress
+            of this bug.
+         </p>
+                                <p><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Ant&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Open Ant bugs by order of priority</a>.</p>
+                                <p><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Ant&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.votes,bugs.priority%2Cbugs.bug_severity&amp;query_based_on=">Open Ant bugs by number of votes</a>.</p>
+                                                          <h4 class="subsection">
+        <a name="Filing a Bug Report"></a>
+        Filing a Bug Report
+      </h4>
+                        <p>
+            Please read our document about <a href="problems.html">problems</a>
+            before deciding that there is an unreported
+            bug in Ant.
+        </p>
+                                <p>
+            You have a few choices at this point. You can send
+            an email to the <code>user</code> mailing list
+            to see if
+            others have encountered your issue and find out how they may
+            have worked around it. If after some discussion, you feel it
+            is time to create
+            a bug report, this is a simple operation in the bug database.
+            Please try to provide as much information as possible in order
+            to assist the developers in resolving the bug. Please try to enter
+            correct values for the various inputs when creating the bug, such
+            as which version of Ant you are running, and on which platform,
+            etc. Once the bug is created, you can also add attachments to
+            the bug report.
+         </p>
+                                <p>
+            What information should you include in your bug report? The
+            easiest bugs to fix are those that are most easily reproducible,
+            so it is really helpful if you can produce a small test case that
+            exhibits the problem. In this case, you would attach the build file
+            and any other files necessary to reproduce the problem, probably
+            packed together in an archive. If you can't produce a test case,
+            you should try to include a snippet from your build file and the
+            relevant sections from the verbose or debug output from Ant. Try
+            to include the header information where Ant states the version,
+            the OS and VM information, etc. As debug output is likely to be
+            very large, it's best to remove any output that is not
+            relevant. Once the bug is entered into the bug database, you
+            will be kept informed by email about progress on the bug. If
+            you receive email asking for further information, please try to
+            respond, as it will aid in the resolution of your bug.
+         </p>
+                                <p>
+            To create the bug report hit this
+            <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">
+            link</a>.
+         </p>
+                                                          <h4 class="subsection">
+        <a name="Asking for an Enhancement"></a>
+        Asking for an Enhancement
+      </h4>
+                        <p>
+            Sometimes, you may find that Ant just doesn't do what you need it
+            to. It isn't a bug, as such, since Ant is working the way it is
+            supposed to work. Perhaps it is some additional functionality for
+            a task that hasn't been thought of yet, or maybe a completely new
+            task. For these situations, you will
+            want to raise an <i>enhancement request</i>. Enhancement requests
+            are managed using the same Apache Bug Database described above.
+            These are just a different type of bug report. If you look in the
+            bug database, you will see that one of the severity settings for
+            a bug is "Enhancement". Just fill the bug report in,
+            set the severity of the bug to "Enhancement", and
+            state in the description how you would like to have Ant enhanced.
+            Again, you should first check whether there are any existing
+            enhancment requests that cover your needs. If so, just add your
+            vote to these.
+         </p>
+                                <p>
+          <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=enhancement">
+          Create an enhancement report</a>
+
+        </p>
+                                                          <h4 class="subsection">
+        <a name="Fixing the Bug"></a>
+        Fixing the Bug
+      </h4>
+                        <p>
+            If you aren't satisfied with just filing a bug report, you can
+            try to find the cause of the problem and provide a fix yourself.
+            The best way to do that is by working with the latest code from Subversion.
+            Alternatively, you can work with the source code available from the
+            <a href="http://ant.apache.org/srcdownload.cgi">
+            source distributions</a>. If you
+            are going to tackle the problem at this level, you may want to
+            discuss some details first on the <code>dev</code>
+            mailing list. Once you have a fix for the problem, you may submit
+            the fix as a <i>patch</i> to either the
+            <code>dev</code> mailing
+            list, or enter the bug database as described above and attach the
+            patch to the bug report. Using the bug database has the advantage
+            of being able to track the progress of your patch.
+         </p>
+                                <p>
+            If you have a patch to submit and are sending it to the
+            <code>dev</code> mailing list,
+            prefix "[PATCH]"
+            to your message subject (this is also a good idea for
+            a subject line in the bug database).
+            Please include any relevant bug numbers.
+            Patch files should be created with the <code>-u</code>
+            option of the
+            <code>diff</code> or <code>svn diff</code> command. For
+            example:<br /><br />
+            <font face="verdana" size="-1">
+            diff -u Javac.java.orig Javac.java &gt; javac.diffs<br /><br />
+            </font>
+            or, if you have source from Subversion:<br /><br />
+            <font face="verdana" size="-1">
+            svn diff Javac.java &gt; javac.diffs<br /><br />
+            </font>
+
+           Note: You should give your patch files meaningful names.
+           This makes it easier for developers who need to apply a number
+           of different patch files.
+        </p>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/bylaws.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/bylaws.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/bylaws.html	(revision 14989)
@@ -0,0 +1,795 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Project Bylaws</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                              <span class="sel">Project Bylaws</span>
+                              </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Project Bylaws</h1>
+            <h3 class="section">
+      <a name="Apache Ant Project Bylaws"></a>
+      Apache Ant Project Bylaws
+    </h3>
+                        <p>
+      This document defines the bylaws under which the Apache Ant project
+      operates. It defines the roles and responsibilities of the
+      project, who may vote, how voting works, how conflicts are resolved,
+      etc.
+    </p>
+                                <p>
+      Ant is a project of the
+      <a href="http://www.apache.org/foundation/">Apache Software
+      Foundation</a>.  The foundation holds the copyright on Apache
+      code including the code in the  Ant codebase. The
+      <a href="http://www.apache.org/foundation/faq.html">foundation FAQ</a>
+      explains the operation and background of the foundation.
+    </p>
+                                <p>
+      Ant is typical of Apache projects in that it operates under a set of
+      principles, known collectively as the "Apache Way". If you are
+      new to Apache development, please refer to the
+      <a href="http://incubator.apache.org">Incubator project</a>
+      for more information on how Apache projects operate. <b>Note:</b> the
+      incubator project has only been recently set up and does not yet explain
+      the Apache Way in great detail.
+    </p>
+                                <ul>
+        <li><a href="#Roles and Responsibilities">Roles and Responsibilities</a></li>
+        <li><a href="#Decision Making">How decisions are made</a></li>
+    </ul>
+                        <h3 class="section">
+      <a name="Roles and Responsibilities"></a>
+      Roles and Responsibilities
+    </h3>
+                        <p>
+      Apache projects define a set of roles with associated rights and
+      responsibilities. These roles govern what tasks an individual may perform
+      within the project. The roles are defined in the following sections
+    </p>
+                                <ul>
+      <li><a href="#Users">Users</a></li>
+      <li><a href="#Developers">Developers</a></li>
+      <li><a href="#Committers">Committers</a></li>
+      <li><a href="#Project Management Committee">
+        Project Management Committee (PMC)</a>
+      </li>
+    </ul>
+                                      <h4 class="subsection">
+        <a name="Users"></a>
+        Users
+      </h4>
+                        <p>
+        The most important participants in the project are people who use our
+        software. The majority of our developers start out as users and guide
+        their development efforts from the user's perspective.
+      </p>
+                                <p>
+        Users contribute to the Apache projects by providing feedback to
+        developers in the form of bug reports and feature suggestions. As
+        well, users participate in the Apache community by helping other users
+        on mailing lists and user support forums.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Developers"></a>
+        Developers
+      </h4>
+                        <p>
+        All of the volunteers who are contributing time, code, documentation,
+        or resources to the Ant Project. A developer that makes sustained,
+        welcome contributions to the project may be invited to become a
+        Committer, though the exact timing of such invitations depends on many
+        factors.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Committers"></a>
+        Committers
+      </h4>
+                        <p>
+        The project's Committers are responsible for the project's technical
+        management. All committers have write access to the project's source
+        repositories. Committers may cast binding votes on any technical
+        discussion regarding the project.
+      </p>
+                                <p>
+        Committer access is by invitation only and must be approved by lazy
+        consensus of the active PMC members. A Committer is considered emeritus
+        by their own declaration or by not contributing in any form to the
+        project for over six months. An emeritus committer may request
+        reinstatement of commit access from the PMC. Such reinstatement is
+        subject to lazy consensus of active PMC members.
+      </p>
+                                <p>
+        Commit access can be revoked by a unanimous vote of all the active
+        PMC members (except the committer in question if they are also a PMC member).
+      </p>
+                                <p>
+        All Apache committers are required to have a signed Contributor License
+        Agreement (CLA) on file with the Apache Software Foundation. There is a
+        <a href="http://www.apache.org/dev/committers.html">Committer FAQ</a>
+        which provides more details on the requirements for Committers
+      </p>
+                                <p>
+        A committer who makes a sustained contribution to the project may be
+        invited to become a member of the PMC. The form of contribution is
+        not limited to code. It can also include code review, helping out
+        users on the mailing lists, documentation, etc.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Project Management Committee"></a>
+        Project Management Committee
+      </h4>
+                        <p>
+        The Project Management Committee (PMC) for Apache Ant was created by a
+        <a href="mission.html">resolution</a> of the board of the Apache
+        Software Foundation on 18<sup>th</sup> November 2002. The PMC is
+        responsible to the board and the ASF for the management and oversight
+        of the Apache Ant codebase. The responsibilities of the PMC include
+      </p>
+                                <ul>
+        <li>Deciding what is distributed as products of the Apache Ant project.
+            In particular all releases must be approved by the PMC
+        </li>
+        <li>Maintaining the project's shared resources, including the codebase
+            repository, mailing lists, websites.
+        </li>
+        <li>Speaking on behalf of the project.
+        </li>
+        <li>Resolving license disputes regarding products of the project
+        </li>
+        <li>Nominating new PMC members and committers
+        </li>
+        <li>Maintaining these bylaws and other guidelines of the project
+        </li>
+      </ul>
+                                <p>
+        Membership of the PMC is by invitation only and must be approved by a
+        lazy consensus of active PMC members. A PMC member is considered
+        "emeritus" by their own declaration or by not contributing in
+        any form to the project for over six months. An emeritus member may
+        request reinstatement to the PMC. Such reinstatement is subject to lazy
+        consensus of the active PMC members. Membership of the PMC can be
+        revoked by an unanimous vote of all the active PMC members other than
+        the member in question.
+      </p>
+                                <p>
+        The chair of the PMC is appointed by the ASF board. The chair is an
+        office holder of the Apache Software Foundation (Vice President,
+        Apache Ant) and has primary responsibility to the board for the
+        management of the projects within the scope of the Ant PMC. The chair
+        reports to the board quarterly on developments within the Ant project.
+        The PMC may consider the position of PMC chair annually and if
+        supported by 2/3 Majority may recommend a new chair to the board.
+        Ultimately, however, it is the board's responsibility who it chooses
+        to appoint as the PMC chair.
+      </p>
+                                            <h3 class="section">
+      <a name="Decision Making"></a>
+      Decision Making
+    </h3>
+                        <p>
+      Within the Ant project, different types of decisions require different
+      forms of approval. For example, the
+      <a href="#Roles and Responsibilities">previous section</a> describes
+      several decisions which require "lazy consensus" approval. This
+      section defines how voting is performed, the types of approvals, and which
+      types of decision require which type of approval.
+    </p>
+                                      <h4 class="subsection">
+        <a name="Voting"></a>
+        Voting
+      </h4>
+                        <p>
+        Decisions regarding the project are made by votes on the primary project
+        development mailing list (dev@ant.apache.org). Where necessary,
+        PMC voting may take place on the private Ant PMC mailing list.
+        Votes are clearly indicated by subject line starting with [VOTE] or
+        [PMC-VOTE]. Votes may contain multiple items for approval and these
+        should be clearly separated. Voting is carried out by replying to the
+        vote mail. Voting may take four flavours
+      </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>+1</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            "Yes," "Agree," or "the action should be
+            performed." In general, this vote also indicates a willingness
+            on the behalf of the voter in "making it happen"
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>+0</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            This vote indicates a willingness for the action under
+            consideration to go ahead. The voter, however will not be able
+            to help.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>-0</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            This vote indicates that the voter does not, in general, agree with
+            the proposed action but is not concerned enough to prevent the
+            action going ahead.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>-1</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            This is a negative vote. On issues where consensus is required,
+            this vote counts as a <strong>veto</strong>. All vetoes must
+            contain an explanation of why the veto is appropriate. Vetoes with
+            no explanation are void. It may also be appropriate for a -1 vote
+            to include an alternative course of action.
+          
+      </td>
+      </tr>
+          </table>
+                                <p>
+        All participants in the Ant project are encouraged to show their
+        agreement with or against a particular action by voting. For technical
+        decisions, only the votes of active committers are binding. Non binding
+        votes are still useful for those with binding votes to understand the
+        perception of an action in the wider Ant community. For PMC decisions,
+        only the votes of PMC members are binding.
+      </p>
+                                <p>
+        Voting can also be applied to changes made to the Ant codebase. These
+        typically take the form of a veto (-1) in reply to the commit message
+        sent when the commit is made.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Approvals"></a>
+        Approvals
+      </h4>
+                        <p>
+        These are the types of approvals that can be sought. Different actions
+        require different types of approvals
+      </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Consensus</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            For this to pass, all voters with binding votes must vote and there
+            can be no binding vetoes (-1). Consensus votes are rarely required
+            due to the impracticality of getting all eligible voters to cast a
+            vote.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Lazy Consensus</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy consensus requires 3 binding +1 votes and no binding vetoes.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Lazy Majority</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            A lazy majority vote requires 3 binding +1 votes and more binding +1
+            votes that -1 votes.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Lazy Approval</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            An action with lazy approval is implicitly allowed unless a -1 vote
+            is received, at which time, depending on the type of action, either
+            lazy majority or lazy consensus approval must be obtained.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>2/3 Majority</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Some actions require a 2/3 majority of active committers or PMC
+            members to pass. Such actions typically affect the foundation
+            of the project (e.g. adopting a new codebase to replace an existing
+            product). The higher threshold is designed to ensure such changes
+            are strongly supported. To pass this vote requires at least 2/3 of
+            binding vote holders to vote +1
+          
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Vetoes"></a>
+        Vetoes
+      </h4>
+                        <p>
+        A valid, binding veto cannot be overruled. If a veto is cast, it must be
+        accompanied by a valid reason explaining the reasons for the veto. The
+        validity of a veto, if challenged, can be confirmed by anyone who has
+        a binding vote. This does not necessarily  signify agreement with the
+        veto - merely that the veto is valid.
+      </p>
+                                <p>
+        If you disagree with a valid veto, you must lobby the person casting
+        the veto to withdraw their veto. If a veto is not withdrawn, the action
+        that has been vetoed must be reversed in a timely manner.
+      </p>
+                                                          <h4 class="subsection">
+        <a name="Actions"></a>
+        Actions
+      </h4>
+                        <p>
+        This section describes the various actions which are undertaken within
+        the project, the corresponding approval required for that action and
+        those who have binding votes over the action.
+      </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Action
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Description
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Approval
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Binding Votes
+      </th>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Code Change</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            A change made to a codebase of the project and committed
+            by a committer. This includes source code, documentation, website
+            content, etc.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy approval and then lazy consensus.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active committers.
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Release Plan</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Defines the timetable and actions for a release. The plan also
+            nominates a Release Manager.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy majority
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active committers
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Product Release</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            When a release of one of the project's products is ready, a vote is
+            required to accept the release as an official release of the
+            project.
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy Majority
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Adoption of New Codebase</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <p>
+            When the codebase for an existing, released product is to be
+            replaced with an alternative codebase. If such a vote fails to
+            gain approval, the existing code base will continue.
+            </p>
+
+            <p>
+            This also covers the creation of new sub-projects
+            within the project
+            </p>
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            2/3 majority
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active committers
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>New Committer</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            When a new committer is proposed for the project
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>New PMC Member</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            When a committer is proposed for the PMC
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Lazy consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>Committer Removal</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <p>When removal of commit privileges is sought.</p>
+            <p><b>Note: </b> Such actions will also be referred to the ASF
+            board by the PMC chair</p>
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members (excluding the committer in question if a
+            member of the PMC).
+          
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>PMC Member Removal</strong>
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <p>When removal of a PMC member is sought.</p>
+            <p><b>Note: </b> Such actions will also be referred to the
+            ASF board by the PMC chair</p>
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Consensus
+          
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            Active PMC members (excluding the member in question).
+          
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Voting Timeframes"></a>
+        Voting Timeframes
+      </h4>
+                        <p>
+        Votes are open for a period of 1 week to allow all active voters
+        time to consider the vote. Votes relating to code changes are not
+        subject to a strict timetable but should be made as timely as possible.
+      </p>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/contributors.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/contributors.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/contributors.html	(revision 14989)
@@ -0,0 +1,516 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Contributors</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                              <span class="sel">Contributors</span>
+                              </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Contributors</h1>
+            <h3 class="section">
+      <a name="Project Management Committee"></a>
+      Project Management Committee
+    </h3>
+                              <h4 class="subsection">
+        <a name="Active Members"></a>
+        Active Members
+      </h4>
+                        <p>
+                <b>Bruce Atherton</b> (bruce at callenish.com - <a href="http://www.callenish.com/~bruce">http://www.callenish.com/~bruce</a>)
+<br />
+Currently a Systems Architect with Avue Technologies, Bruce has been
+working with Java since version 1.0a2. He also claims to be one of the first
+people to mark up a FAQ with HTML, for a web browser of the distant past
+called Cello.
+            </p>
+                                <p>
+                <b>Stephane Bailliez</b><br />
+            </p>
+                                <p>
+                <b>Matt Benson</b><br />
+            </p>
+                                <p>
+                <b>Stefan Bodewig</b> (stefan.bodewig at freenet.de -
+          <a href="http://stefan.samaflost.de/">http://stefan.samaflost.de/</a>)
+<br />
+</p>
+                                <p>
+                <b>Dominique Devienne</b> (ddevienne at apache.org)
+<br />
+Dominique has been involved non-stop with the Ant user community since
+the 1.4 days, trying without success to answer posts as well or as often
+as Diane Holt after she left the user list. He is opinionated, always
+striving for the best possible design. While at Landmark Graphics, he
+designed and implemented large Ant/CppTasks builds for mixed Java/C++ projects.
+            </p>
+                                <p>
+                <b>Erik Hatcher</b> (ehatcher at apache.org)
+<br />
+Erik is the co-author of <a href="http://www.manning.com/hatcher">
+Java Development with Ant</a> and speaks on Ant and other topics at
+<a href="http://www.nofluffjuststuff.com">No Fluff, Just Stuff
+symposiums</a> as well as other venues.  Erik is the President of
+<a href="http://www.ehatchersolutions.com">eHatcher Solutions, Inc</a>.
+</p>
+                                <p>
+                <b>Martijn (J.M.) Kruithof</b> (ant at kruithof xs4all nl)
+<br />
+Martijn Kruithof is a system engineer working with and on Java products
+in a telecommunication network setting.
+</p>
+                                <p>
+                <b>Antoine Levy-Lambert</b> (antoine at apache.org)
+<br />
+Antoine is working as a software engineer for 
+<a href="http://www.arielpartners.com">Ariel Partners</a>.
+He is specialized in builds and automation of deployment processes.
+
+            </p>
+                                <p>
+                <b>Steve Loughran</b><br />
+            </p>
+                                <p>
+                <b>Conor MacNeill</b> (conor at cortexebusiness.com.au)
+<br />
+Conor is a senior developer at Cortex eBusiness, where he develops
+J2EE based systems. In his spare time he helps with the development of
+the Ant build tool.  He is also serving as the Chairman of this PMC.
+</p>
+                                <p>
+				<b>Jan Matèrne</b> (jhm at apache.org)
+<br />
+Jan is consultant for OOA/D in the computer centre of the government
+of Northrhine Westfalia / Germany.
+            </p>
+                                <p>
+                <b>Peter Reilly</b><br />
+            </p>
+                                <p>
+                <b>
+                    <a href="http://www.intertwingly.net/">Sam Ruby</a>
+                </b>
+                (rubys at us.ibm.com)
+<br />
+Sam takes a perverse pleasure in integrating disparate things.  He is
+a member of the <a href="http://www.php.net/credits.php">PHP group</a>, Apache
+<a href="http://xml.apache.org/whoweare.html">XML PMC</a>, Apache
+sponsor for the <a href="http://xml.apache.org/soap">xml-soap</a> subproject
+and convener of <a href="http://www.ecma.ch">ECMA</a> TC39 TG3.
+</p>
+                                <p>
+                <b>Magesh Umasankar</b> (umagesh at apache.org)
+<br />
+Magesh is a lead software developer at
+<a href="http://www.manugistics.com">Manugistics</a>, where
+he is responsible for some of the Revenue Optimization
+solutions.
+</p>
+                                <p>
+                <b>Christoph Wilhelms</b> (christoph.wilhelms at t-online.de)
+<br />
+Christoph works as software engineer at the world's biggest travel company
+<a href="http://www.tui.com">TUI</a>. His passion are all UI related things so
+at the Ant-Project he takes care of Antidote - the Ant GUI.
+            </p>
+                                                          <h4 class="subsection">
+        <a name="Emeritus Members"></a>
+        Emeritus Members
+      </h4>
+                        <p>
+                <b>James Duncan Davidson</b> (duncan at x180.net - <a href="http://x180.net/">http://x180.net/</a>)
+<br />
+
+By day, Duncan works in the Open Source Program Office at Sun
+Microsystems where he helps various Open Source efforts within Sun
+"do the right thing". Previously at Sun he was responsible
+for the Servlet API Specifications 2.1 and 2.2 as well as the Java API
+for XML Parsing 1.0 and was the original author of Tomcat and Ant. He
+was one of the rabble-rousers within Sun that helped make the Jakarta
+Project a reality and served as the first Chairman of the Jakarta PMC.
+</p>
+                                <p>
+                <b>Diane Holt</b><br />
+            </p>
+                                <p>
+                <b>Donald Leslie</b><br />
+            </p>
+                                <p>
+                <b>Costin Monolache</b><br />
+            </p>
+                                <p>
+                <b>Jon Skeet</b><br />
+            </p>
+                                            <h3 class="section">
+      <a name="Committers"></a>
+      Committers
+    </h3>
+                              <h4 class="subsection">
+        <a name="Active Committers"></a>
+        Active Committers
+      </h4>
+                        <p>
+                <b>Steve Cohen</b>
+            </p>
+                                <p>
+                <b>Jose Alberto Fernandez</b>
+            </p>
+                                <p>
+                <b>Jesse Glick</b> (jesse dot glick at sun dot com)
+<br />
+Jesse has been using Java since 1998 and joined Sun Microsystems as
+part of the company that produced the NetBeans IDE. After discovering
+Ant in the 1.2 days, he wrote most of NetBeans' Ant integration.
+Recently he has worked on the NetBeans 4.0 project system, based heavily
+on Ant as a build tool.
+</p>
+                                <p>
+  <b>Kevin Jackson</b> (foamdino at gmail.com)<br />
+</p>
+                                <p>
+   <b>Alexey Solofnenko</b> (trelony at gmail.com)<br />
+</p>
+                                                          <h4 class="subsection">
+        <a name="Emeritus Committers"></a>
+        Emeritus Committers
+      </h4>
+                        <p>
+                <b>Preston Bannister</b><br />
+            </p>
+                                <p>
+                <b>Nick Davis</b><br />
+            </p>
+                                <p>
+                <b>Darrell DeBoer</b><br />
+            </p>
+                                <p>
+                <b>Peter Donald</b> (peter at apache.org)
+<br />
+
+Peter is an avid java developer who is active in the
+<a href="http://jakarta.apache.org/avalon/">Avalon</a> and
+<a href="http://ant.apache.org/">Ant</a> projects.
+In his spare time he develops a distributed virtual environment
+(ie military simulator or 3D game) using java technologies.
+</p>
+                                <p>
+                <b>Danno Ferrin</b> (shemnon at yahoo.com)
+<br />
+Danno has been programming in Java since Summer 96. Danno wrote a JSP
+engine on his own and released it the very same day Jakarta was
+announced at JavaOne. Since then, he decided to join the Jakarta
+project in a spirit of co-operation over competition.
+</p>
+                                <p>
+                <b>Simeon H.K. Fitch</b> (simeon.fitch at mseedsoft.com)
+<br />
+Simeon is owner of Mustard Seed Software, which specializes in developing
+distributed applications and user interfaces for the science, engineering,
+and research oriented clients. He is the lead architect and developer for
+Antidote, the GUI for Ant.
+</p>
+                                <p>
+                <b>Thomas Haas</b> (tha at whitestein.com)
+<br />
+Tom is interested in distributed systems, Java middleware and worked on an
+implementation of the JMS specification. At Whitestein Technologies he is
+working on bringing software agent technology and J2EE together.
+</p>
+                                <p>
+
+                <b>Jason Hunter</b> (jh at servlets.com)
+<br />
+Jason is author of "Java Servlet Programming" (O'Reilly) and publisher
+of <a href="http://www.servlets.com/">http://www.servlets.com/</a>.
+He works at <a href="http://www.collab.net">CollabNet</a>.
+</p>
+                                <p>
+                <b>Justyna Horwat</b> (horwat at apache.org)
+<br />
+</p>
+                                <p>
+                <b>Arun Jamwal</b>
+<br />
+</p>
+                                <p>
+                <b>Arnout J. Kuiper</b> (ajkuiper at planet.nl)
+<br />
+
+Arnout J. Kuiper is a Java Architect with the Sun Java Center at Sun
+Microsystems. His main focus is web-related technologies on the Java
+platform (J2EE, XML, ...).
+</p>
+                                <p>
+                <b>Stefano Mazzocchi</b> (stefano at apache.org)
+<br />
+Stefano is addicted to software design, Java programming and
+open development. In the last 4 years, he has contributed way too much
+time to Apache, expecially on JServ, JMeter, Avalon, JAMES, Ant, Cocoon
+and helping to bring more projects into Apache-land, such as FOP, Batik,
+POI and Xindice. The problem is that he's too picky to be satisfied :-)
+</p>
+                                <p>
+                <b>Glenn McAllister</b> (glenn at somanetworks.com)
+<br />
+Glenn McAllister is a software developer at SOMA Networks, was formerly
+the same at IBM (plus tech writer plus build guy), and does some writing
+on the side for the VADD Technical Journal.
+</p>
+                                <p>
+                <b>Craig McClanahan</b> (Craig.McClanahan at eng.sun.com)
+<br />
+Craig was involved in the Apache JServ project, focused on implementing
+a next generation architecture and feature set for the core servlet
+engine.  He has recently joined Sun as technical lead for the servlet
+and JSP reference implementation.
+          </p>
+                                <p>
+                <b>Adam Murdoch</b>
+<br />
+</p>
+                                <p>
+                <b>Harish Prabhandham</b> (harishp at onebox.com)
+<br />
+Harish is an engineer with the J2EE team at Sun, primarily responsible
+for implementing security in the J2EE Reference Implementation
+(RI). He integrated various technologies including servlet/JSP
+implementations from Tomcat into the J2EE RI. These days, he hacks PHP
+code during the day.
+</p>
+                                <p>
+                <b>Nico Seessle</b><br />
+            </p>
+                                <p>
+                <b>Gal Shachor</b> (shachor at il.ibm.com)
+<br />
+Gal Shachor is a research staff member at IBM. He wrote his first
+Servlet container (ServletExpress) at the beginning of 1997. Later on
+ServletExpress (and Gal) merged into WebSphere, and Gal participated
+in the development of WebSphere 1, 2 and 3.
+</p>
+                                <p>
+                <b>Jon S. Stevens</b> (jon at collab.net)
+<br />
+
+Jon is a Co-Founder of <a href="http://www.clearink.com/">Clear Ink
+Corp</a> and recently left to work on <a href="http://scarab.tigris.org/">Scarab</a> a next generation Open
+Source Java Servlet based Issue/Bug tracking system for <a href="http://www.collab.net/">CollabNet</a>. He is an active developer
+of the <a href="http://java.apache.org/jserv/">Apache JServ Servlet
+Engine</a> for the Apache Web Server and Co-Author of the <a href="http://java.apache.org/ecs/">Element Construction Set</a> as
+well as the web application framework, <a href="http://java.apache.org/turbine/">Turbine</a>.
+</p>
+                                <p>
+                <b>Jesse Stockall</b><br />
+            </p>
+                                <p>
+                <b>James Todd</b> (jwtodd at pacbell.net)
+<br />
+James has developed real time customer oriented apps for roughly 10
+years the last 5 of which have predominately been fully integrated,
+front and back, extraNet implementations which have been based on
+Apache, Java and Tcl.
+</p>
+                                <p>
+                <b>Anil Vijendran</b> (akv at eng.sun.com)
+<br />
+Anil Vijendran is the principal developer of the JSP engine in
+Tomcat. He's done some pretty scary things in his past life --
+implementing the CORBA IDL to C++ 2.0 mapping, skydiving, IDL to Java
+compilers, Object Databases (SIGSEV, you da man!) for C++, Java ORB
+and EJB runtime environments -- in that order.
+</p>
+                                            <h3 class="section">
+      <a name="Logo"></a>
+      Logo
+    </h3>
+                        <p>Ant's logo is the result of a logo contest, it has been
+        designed by</p>
+                                <p>
+                <b>Nick King</b>
+<br />
+</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/external.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/external.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/external.html	(revision 14989)
@@ -0,0 +1,6857 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - External Tools and Tasks</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                              <span class="sel">External Tools and Tasks</span>
+                              </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">External Tools and Tasks</h1>
+            <h3 class="section">
+      <a name="External Tools and Tasks"></a>
+      External Tools and Tasks
+    </h3>
+                        <p>This page lists external resources for Apache Ant: <a href="#Tasks">Tasks</a>, <a href="#Compiler%20Implementations">Compiler Implementations</a>,
+      <a href="#IDE%20and%20Editor%20Integration">IDE integration
+      tools</a>, <a href="#Source%20Control%20ystems">Source Control
+      Systems</a>, loggers, you name it. If you've written
+      something that should be included, please post all relevant
+      information to one of the mailing lists.  For details, see the
+      <a href="faq.html#adding-external-tasks">FAQ</a>.</p>
+                                <p>Nothing listed here is directly supported by the Ant
+      developers (therefore '<i>external</i> tools and tasks'),
+      if you encounter any problems with them, please use
+      the contact information.</p>
+                        <h3 class="section">
+      <a name="Tasks"></a>
+      Tasks
+    </h3>
+                              <h4 class="subsection">
+        <a name="AJC"></a>
+        AJC
+      </h4>
+                        <p><a href="http://www.eclipse.org/aspectj/">AspectJ</a> is an
+          aspect-oriented extension to Java.  This task compiles a
+          source tree using the AspectJ compiler -- AJC.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/aspectj/">http://www.eclipse.org/aspectj/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/aspectj/">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Anakia"></a>
+        Anakia
+      </h4>
+                        <p>Actually, Anakia is more than just an Ant task, it is a an
+        XML transformation tool based on JDOM, Velocity and Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jakarta.apache.org/velocity/anakia.html">http://jakarta.apache.org/velocity/anakia.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jakarta.apache.org/site/mail2.html">Velocity mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Andariel"></a>
+        Andariel
+      </h4>
+                        <p>Andariel is a set of tasks designed to help the generation of HTML
+        (and other markup languages) pages from Ant. Includes a XPath processor,
+        an image information retriever, and others.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.4 and newer
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://andariel.uworks.net/">http://andariel.uworks.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          josep DOT rio AT uworks DOT net
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 1.1
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant2Svg"></a>
+        Ant2Svg
+      </h4>
+                        <p>Ant2Svg creates a graphical representation of an Ant build file.
+        The graphical representation is in the form of a Scalable Vector
+        Graphics (SVG) file that can be displayed in a web browser. This
+        simplified SVG depiction helps the developer understand build file
+        structure and identify extraneous or missing dependencies.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.spiritedsw.com/ant2svg/">http://www.spiritedsw.com/ant2svg/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          loney &lt;at&gt; spiritedsw &lt;dot&gt; com
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache Software License 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="ant4eclipse"></a>
+        ant4eclipse
+      </h4>
+                        <p>ant4eclipse provides a set of Ant tasks to make several
+                configurations from the Eclipse IDE available in Ant
+                buildscripts. The tasks are aimed to avoid redundancy between
+                Eclipse and Ant configurations in order to build small but
+                powerful build systems for the continuous integration
+                process</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant4eclipse.sf.net">http://ant4eclipse.sf.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=137377">
+              ant4eclipse user mailing list</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Sun Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antcount"></a>
+        Antcount
+      </h4>
+                        <p>Antcount is a set of filters that can be used to gather statistics
+           from files or resources. It is mainly used for log files analysis.
+           It allows to:<ul>
+             <li>count inputs (lines, strings)</li>
+             <li>count occurrences of each input</li>
+             <li>calculate average, max and min values of floats in input</li>
+           </ul>
+           Antcount also includes some useful filters to:<ul>
+             <li>stop filtering: read everything but write nothing</li>
+             <li>echo input to the console or to a file. This allows users to create
+                 several files at once</li>
+             <li>split the stream in two for parallel processing</li>
+           </ul>
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.2 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antcount.sourceforge.net/">http://antcount.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antcount.sourceforge.net/contacts.html">Patrick Martin</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntDoc"></a>
+        AntDoc
+      </h4>
+                        <p>AntDoc is a tool that generates HTML documentation from Ant
+        buildfiles; the generated HTML is inspired from what javadoc
+        yields.  AntDocGUI offers a simple Ant target launcher named
+        AntDoc GUI. Ant targets may be launched from the generated
+        AntDoc HTML pages. Integration to various IDEs is in
+        progress.</p>
+                                <p>AntDoc can be run via an Ant task, AntDoc GUI can be run
+        via an Ant task, or via a JVM launch.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antdoc.free.fr/">http://antdoc.free.fr/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Edouard Mercier
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntDoclet"></a>
+        AntDoclet
+      </h4>
+                        <p>AntDoclet is a tool to automatically generate documentation out of
+        your Ant Tasks' source code.</p>
+                                <p>It is implemented as a Javadoc doclet, and generates reference
+        documentation and other deliverables from the source code of your
+        custom Ant Tasks/Types.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6+ (not tested on earlier versions)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antdoclet.neuroning.com/">http://antdoclet.neuroning.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://neuroning.com/">Fernando Dobladez</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Anteater"></a>
+        Anteater
+      </h4>
+                        <p>Anteater is a set of Ant tasks for the functional testing of websites
+          and web services (functional testing being; hit a URL and ensure the
+          response meets certain criteria). Can test HTTP params, response
+          codes, XPath, regexp and Relax NG expressions. Includes HTML reporting
+          (based on junitreport) and a hierarchical grouping system for quickly
+          configuring large test scripts.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://aft.sourceforge.net/">http://aft.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://lists.sourceforge.net/lists/listinfo/aft-devel">developer
+                mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntForm"></a>
+        AntForm
+      </h4>
+                        <p>Provides a java/swing form-based input scheme for
+        configuring ant properties and launching ant targets.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.2.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antforms.sourceforge.net/">http://antforms.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:rene_ghosh@yahoo.com">René Ghosh</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antmerge"></a>
+        Antmerge
+      </h4>
+                        <p>Provides simple inheritance between ant files</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5. Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.russet.org.uk/antmerge.html">http://www.russet.org.uk/antmerge.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:antmerge@russet.org.uk">Phillip Lord</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntPrettyBuild"></a>
+        AntPrettyBuild
+      </h4>
+                        <p>
+          Ant Pretty Build is a tool to easily show and run Ant buildfiles directly from
+        within a browser window. It consists of a single XSL file that will generate,
+        on the fly, in the browser, from the .xml buildfile, a pretty interface showing
+        project name, description, properties and targets, etc. sorted or unsorted,
+          allowing to load/modify/add properties, run the whole project, or run selected
+        set of targets in a specific order, with the ability to modify logger/logfile,
+        mode and add more libs or command line arguments.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          All Ant versions
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antprettybuild.sourceforge.net/">Ant Pretty Build Homepage</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antprettybuild.sourceforge.net">Charbel BITAR</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache License V2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntSpaces"></a>
+        AntSpaces
+      </h4>
+                        <p>AntSpaces provides Ant integration with JavaSpaces. This
+        allows you to coordinate Ant tasks via JavaSpaces, pull out
+        work units from a JavaSpace for distributed Ant tasks to work
+        on, and so forth.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.oopsconsultancy.com/software/antspaces/">http://www.oopsconsultancy.com/software/antspaces/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          antspaces at oopsconsultancy.com
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntTimerTask"></a>
+        AntTimerTask
+      </h4>
+                        <p><a href="http://www.jeckle.de/freeStuff/AntTimerTask/index.html">Timer</a>
+        is task for measuring the time elapsed to complete other
+        tasks</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.jeckle.de/freeStuff/AntTimerTask/index.html">http://www.jeckle.de/freeStuff/AntTimerTask/index.html</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mario@jeckle.de">mario@jeckle.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Lesser GNU Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant Web Start Task"></a>
+        Ant Web Start Task
+      </h4>
+                        <p>Ant Web Start Task is an Ant task allowing developers to
+        package a desktop application as a WAR (Web Application
+        Archive) to be distributed over the net via Java Web Start</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant-jnlp-war.sourceforge.net/">http://ant-jnlp-war.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntXtras"></a>
+        AntXtras
+      </h4>
+                        <p>A collection of powerful Ant extensions components
+        organized into five categories: fixture-control,
+        execution-rules, flow-control, feedback, and helpers.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antxtras.sourceforge.net/">AntXtras Home</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antxtras.sourceforge.net">SSMC</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License (LGPL 2.1)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Build Number"></a>
+        Build Number
+      </h4>
+                        <p> Build Number is a tool to track software artifacts such as files and automatically assign
+        proper version/build numbers to them. It ensures that two different artifacts will have different
+        version/build numbers, but identical artifacts/builds will be assigned the same number. It doesn't
+        take version management away from you and doesn't replace your build process, but rather plugs
+        into the process and introduces version/build number governance by defining who is in charge of
+        which part of version number. With Build Number you are still in charge of the head of the version
+        number. E.g. you may decide to have 4 numbers in your version (major, minor, interface, implementation)
+        and you want to manage the two first numbers (major and minor). Build Number will take care of the
+        tedium of managing the last two numbers (interface and implementation). </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5.4 and 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/products/buildnumber">http://www.hammurapi.biz/products/buildnumber</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/contact.html">Project Contact Page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Checkstyle"></a>
+        Checkstyle
+      </h4>
+                        <p>Checkstyle is a development tool to help programmers write
+        Java code that adheres to a coding standard. Its purpose is to
+        automate the process of checking Java code, and to spare
+        humans of this boring (but important) task.</p>
+                                <p>Checkstyle can be run via an Ant task or a command line
+        utility.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://checkstyle.sourceforge.net/">http://checkstyle.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:checkstyle@puppycrawl.com">Oliver Burn</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Starting with release 2.0 the license is the GNU
+            Lesser General Public License.  Prior releases were under
+            the GNU General Public License.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="ChownTask"></a>
+        ChownTask
+      </h4>
+                        <p>ChownTask is an Ant task to change ownership of files on
+        Unix.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and up
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://sourceforge.net/projects/chowntask/">http://sourceforge.net/projects/chowntask/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:chowntask-users@lists.sourceforge.net">Wilfred Springer</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="CleanImports"></a>
+        CleanImports
+      </h4>
+                        <p>Removes unneeded imports. Formats your import
+        sections. Flags ambiguous imports.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and up
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.cleanimports.tombrus.nl">http://www.cleanimports.tombrus.nl</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cleanimports@tombrus.nl">Tom Brus</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Clover"></a>
+        Clover
+      </h4>
+                        <p>Clover is an Ant-based Code Coverage tool. It can be used
+        seamlessly with Ant-based projects. It provides method,
+        statement, and branch coverage analysis, and has rich
+        reporting in XML, HTML or via a Swing GUI.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 or greater
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.cenqua.com/clover/">http://www.cenqua.com/clover/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:clover-support@cenqua.com">clover-support@cenqua.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial, free licenses available for open source
+            projects.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="CMSDeploy"></a>
+        CMSDeploy
+      </h4>
+                        <p><a href="http://cmsdeploy.sourceforge.net">CMSDeploy</a> is
+        an Apache Ant Task to submit files and templates to Vignette
+        CMS.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cmsdeploy.sourceforge.net">http://cmsdeploy.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:masogato@users.sourceforge.net">masogato@users.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Cocoon Task"></a>
+        Cocoon Task
+      </h4>
+                        <p>This task allows the generation of static web pages and
+        sites using Apache Cocoon in off-line mode.</p>
+                                <p>It allows the configuration information for Cocoon to be
+        included within the Ant build file, and is thus
+        able to take advantage of Ant properties.</p>
+                                <p>The task shares its code with the Cocoon Command Line, which
+        means that this task will instantly take
+        advantage of any new functionality added there.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.3 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cocoon.apache.org/2.1/">http://cocoon.apache.org/2.1/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Documentation:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cocoon.apache.org/2.1/userdocs/offiline/ant.html">http://cocoon.apache.org/2.1/userdocs/offline/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:users.at.cocoon.apache.org">users at cocoon.apache.org</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Configure"></a>
+        Configure
+      </h4>
+                        <p>Recursive build support (call ant on every package level,
+        and only build files in that package or in that package and
+        everything below) with seperation of source and output.</p>
+                                <p>The task generates build files in any subdirectory (except
+        for CVS-directories) for you. Only place one build.xml file in
+        the top and call target 'setup' or
+        'rescan'.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.dsdelft.nl/~lemval/ant/">http://www.dsdelft.nl/~lemval/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:lemval@dsdelft.nl">M.J.P. van Leeuwen</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          License derived from Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="CVSGrab"></a>
+        CVSGrab
+      </h4>
+                        <p>A little CVS client that can be useful when people are
+        behind corporate firewall that blocks any cvs
+        communications. It uses the ViewCVS web interface to access
+        the CVS repository via standard http, and downloads all the
+        files present in it.</p>
+                                <p>It works from the command line or as an Ant task.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cvsgrab.sourceforge.net/">http://cvsgrab.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cvsgrab-users@lists.sourceforge.net">CVSGrab
+            user mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Dependencies"></a>
+        Dependencies
+      </h4>
+                        <p>The dependencies task manages a set of external dependencies which
+            may be downloaded from a remote repository,
+             such as ibiblio.org. Uses a local cache to avoid repeated
+            downloads.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5.1, should work with 1.4+.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.httpunit.org/doc/dependencies.html">http://www.httpunit.org/doc/dependencies.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:russgold@httpunit.org">Russell Gold</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Dependency Finder"></a>
+        Dependency Finder
+      </h4>
+                        <p>Dependency Finder extracts dependencies and OO metrics from
+        Java class files produced by most Java compilers. It can compute
+        API differences between versions;  no sources needed. It includes
+        Ant tasks, web, Swing, and command-line interfaces, with XSL
+        stylesheets for formatting output.</p>
+                                <p>You can use it to extract dependencies between packages, classes,
+        or even methods, or any combination thereof.  You can use Perl
+        regular expressions to filter the information and pinpoint only
+        what you need.  There is even a Web Application version (WAR file)
+        so a whole group of developers can share a common view.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5.3, should work with 1.4+.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://depfind.sourceforge.net/">http://depfind.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jeantessier@users.sourceforge.net">Jean Tessier</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Doxygen task"></a>
+        Doxygen task
+      </h4>
+                        <p>There are two Ant tasks for running the Doxygen
+        documentation system.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.bgw.org/projects/java/ant/">http://www.bgw.org/projects/java/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mortis@voicenet.com">Kyle R. Burton</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                <p>and</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant-doxygen.sourceforge.net/">http://ant-doxygen.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:akkumar@users.sourceforge.net">Karthik A Kumar</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="DTDDoc"></a>
+        DTDDoc
+      </h4>
+                        <p>DTDDoc is here to help you to document your DTD's efficiently. It is a
+        straightforward extension of the javadoc concept to the DTD file format.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dtddoc.sourceforge.net/">http://dtddoc.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=53704">Project Mailing List</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          X11 (Open Source)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="EMMA"></a>
+        EMMA
+      </h4>
+                        <p>EMMA is an open-source toolkit for measuring and reporting
+        Java code coverage. EMMA distinguishes itself from other tools
+        by going after a unique feature combination: support large-scale
+        enterprise software development while keeping individual developers
+        work fast and iterative at the same time.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://emma.sourceforge.net/">http://emma.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:emma-users@lists.sourceforge.net">Mailinglist</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Common Public License 1.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="FMPP"></a>
+        FMPP
+      </h4>
+                        <p>FMPP is a general-purpose text file preprocessor tool that
+        uses FreeMarker templates. It is particularly designed for
+        HTML preprocessor, for the generation of complete (static)
+        homepages: directory structure that contains HTML-s, image
+        files, etc. But of course it can be used to generate source
+        code or whatever text files. FMPP is extendable with Java
+        classes to pull data from any data sources (XML file,
+        database, etc.) and embed the data into the generated
+        files.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://fmpp.sourceforge.net/">http://fmpp.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="GenJar"></a>
+        GenJar
+      </h4>
+                        <p>Builds a JAR file based on class dependencies rather than simply the contents of a directory</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 alpha (built after 2001/08/04) and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://genjar.sourceforge.net/">http://genjar.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jesse_dev@yahoo.com">Jesse Stockall</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Grand"></a>
+        Grand
+      </h4>
+                        <p>Grand is a set of tools to create a visual representation of Ant target
+          dependencies. It works by taking an Ant build file and creating a "dot" file. It
+          differs from the existing tools by relying on the Ant API rather than XML parsing to
+          get the dependencies. It includes many advanced features such as filtering or
+          rendering depending on the target's nature. Also features a SWT based GUI.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ggtools.net/grand/">http://www.ggtools.net/grand/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Christophe Labouisse
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Greebo"></a>
+        Greebo
+      </h4>
+                        <p>Greebo is an Ant-task for downloading dependency files
+        (currently only jars) from a network to a specified directory,
+        much like Maven. It supports multiple local and remote
+        repositories with either flat or maven-like structures. It can
+        read the dependency list from a Maven project file, a
+        maven-like dependency file, or directly from the build.xml
+        file.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://greebo.sourceforge.net/">http://greebo.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=73733">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="GroboUtils CodeCoverage"></a>
+        GroboUtils CodeCoverage
+      </h4>
+                        <p>The CodeCoverage sub-project of GroboUtils provides a 100%
+        pure Java code coverage tool.  It uses pre-execution class file
+        recompilation, and generates XML files containing the coverage
+        statistics.  It does not require any advanced VM setup to generate
+        coverage numbers.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://groboutils.sourceforge.net/codecoverage/">http://groboutils.sourceforge.net/codecoverage/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=22594">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Hammurapi"></a>
+        Hammurapi
+      </h4>
+                        <p>Java code review tool. Performs automated code
+        review. Contains 111 inspectors which check different aspects
+        of code quality including coding standards, EJB, threading,
+        ...</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5.x and 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/products/hammurapi">http://www.hammurapi.biz/products/hammurapi</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/contact.html">Project Contact Page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="HelpStudioAnt"></a>
+        HelpStudioAnt
+      </h4>
+                        <p>This task allows for HelpStudio projects to be created via Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.0 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://helpstudioant.sourceforge.net">http://helpstudioant.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="IDLDepend"></a>
+        IDLDepend
+      </h4>
+                        <p>idldepend is a task that (re)generates Java sources to be
+        created from CORBA/IDL files.</p>
+                                <p>It parses the IDL file and determines the Java files that
+        must be generated, taking in account the modifications that
+        can happen due to command line parameters.  If any of the Java
+        files are missing or older than the source IDL specification,
+        it launches the specified compiler.  The compilers of Orbacus,
+        Jacorb, OpenORB, Orbix2k and Sun'JDK distributions are
+        supported.</p>
+                                <p>To speed up the process and avoid unnecesary re-parsing, it
+        keeps the dependencies in intermediate files.  This task does
+        not launch the javac compiler as well, that is, its output are
+        Java files and not the final bytecode.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://grasia.fdi.ucm.es/~luismi/idldepend/">http://grasia.fdi.ucm.es/~luismi/idldepend/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:luismpena@gmx.net">luismpena@gmx.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          free source, no license restrictions
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Image"></a>
+        Image
+      </h4>
+                        <p>Image task generates and transforms images. It exposes the
+        imaging capability available in Java2D, Java Advanced Imaging,
+        ImageIO, etc., as set of nested elements.</p>
+                                <p>Image transformations such as "resize"
+        (scale),"overlay" (one image on another),
+        "border" (add a border), "text" (text on
+        image), "crop" (a sub-image of a bigger image),
+        "rotate", "grayscale" (change a color
+        image to shades of gray).<br />
+        Now it supports transparency (making images translucent), a
+        bestfit option for Resize, simple support for images within
+        a security-constraint, a preliminary support (if pjatools.jar
+        is available) for saving files as GIF and some other fixes.</p>
+                                <p>IMPORTANT: You will need the PMIW (Poor Man's Imaging Wrapper) jar
+        for all the operations and the pjatools jar for GIF encoding/ saving
+        support.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.mullassery.com/software/ANT/">http://www.mullassery.com/software/ANT/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          pmiw jar
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.mullassery.com/software/PMIW/">http://www.mullassery.com/software/PMIW/</a>
+                (Poor Man's Imaging Wrapper)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          pjatools jar
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eteks.com/pja/en/">http://www.eteks.com/pja/en/</a>
+                (pjatools for GIF encoding support)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.mullassery.com">Abey Mullassery</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Importscrubber"></a>
+        Importscrubber
+      </h4>
+                        <p>Removes unnecessary import statements from a Java source code file.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://importscrubber.sourceforge.net/">http://importscrubber.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:tomcopeland@users.sourceforge.net">Tom Copeland</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="ImTask"></a>
+        ImTask
+      </h4>
+                        <p>ImTask is a task to allow one to send an Instant
+        Message. Currently supports yahoo!, AIM, and Jabber</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://imtask.sourceforge.net/">http://imtask.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:djallstar@users.sourceforge.net">Jon Madison</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Incanto"></a>
+        Incanto
+      </h4>
+                        <p>Ant tasks to provide support for Oracle database tools
+        (such as SQL*Plus, Import, Export)</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://incanto.sourceforge.net/">http://incanto.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:alexrk@users.sourceforge.net">Alexander Karnstedt</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache License, Version 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="IsDirValidator"></a>
+        IsDirValidator
+      </h4>
+                        <p>Checks whether a given directory structure conforms to
+        certain rules that are defined via nested elements of the
+        task.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://isvalidator.sourceforge.net/en/isDirValidator.htm">http://isvalidator.sourceforge.net/en/isDirValidator.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:news@inigoserrano.com">Iñigo Serrano</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ivy"></a>
+        Ivy
+      </h4>
+                        <p>Ivy is a simple yet powerful dependency manager featuring
+        continuous integration, dependencies of dependencies
+        management, multiple repositories including ibiblio and high
+        performance (use of a local cache).</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1 or superior
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ivy.jayasoft.org/">http://ivy.jayasoft.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          contact at jayasoft dot org
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="J2ME Ant Tasks"></a>
+        J2ME Ant Tasks
+      </h4>
+                        <p>There are different sets of tasks to help build <a href="http://java.sun.com/j2me/">Java 2 Platform, Micro
+        Edition</a> (J2ME) applications.</p>
+                                      <h5 class="subsection">
+        <a name="Antenna"></a>
+        *** Antenna ***
+      </h5>
+                        <p>Antenna provides a set of Ant tasks suitable for developing
+          wireless Java applications targeted at the Mobile Information
+          Device Profile (MIDP). With Antenna, you can compile,
+          preverify, package, obfuscate, and run your MIDP applications
+          (aka MIDlets), manipulate Java Application Descriptor (JAD)
+          files, as well as convert JAR files to PRC files designed to
+          run on MIDP for Palm OS. Deployment is supported via a
+          deployment task and a corresponding HTTP servlet for
+          Over-the-Air (OTA) provisioning. A small preprocessor allows
+          to generate different variants of a MIDlet from a single
+          source.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antenna.sourceforge.net/">http://antenna.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:joerg@pleumann.de">Jörg Pleumann</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                    <h5 class="subsection">
+        <a name="Antic"></a>
+        *** Antic ***
+      </h5>
+                        <p>Antic is a freely available task for packaging J2ME
+          applications. It produces both the Jar and Jad files in a
+          single step. This allows *all* entries to be correclty set in
+          the jad file, including the size of the jar file that is
+          produced. This task has been used and tested extensively with
+          Sun's Wireless Toolkit and also the Nokia SDK and
+          emulators.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.smartkey.co.uk/tools/antic/antic.html">http://www.smartkey.co.uk/tools/antic/antic.html</a>
+              
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@smartkey.co.uk">smartkey.co.uk</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                    <h5 class="subsection">
+        <a name="Dave's J2ME Tasks"></a>
+        *** Dave's J2ME Tasks ***
+      </h5>
+                        <p>This set supports CLDC and the K Virtual Machine (KVM):</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.dribin.org/dave/j2me_ant/">http://www.dribin.org/dave/j2me_ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:drib@enteract.com">Dave Dribin</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                    <h5 class="subsection">
+        <a name="J2ME Polish"></a>
+        *** J2ME Polish ***
+      </h5>
+                        <p>J2ME Polish is an Ant-based tool for the creation of
+          MIDP applications. It covers the whole circle of preprocessing, compiling,
+          obfuscation, preverifying, packaging and JAD-creation. J2ME Polish is
+          ideal for creating device optimized applications with its powerful
+          preprocessing capabilities and the integrated device database.
+          With J2ME Polish no hardcoded values are needed and the portability of an
+          application is not sacrificed, even though highly optimized applications are
+          created from a single source.
+          <br />
+          It contains a logging framework and an optional MIDP-compatible GUI
+          which can be designed using the web-standard CSS. With the J2ME Polish GUI
+          you can even use MIDP/2.0 features on MIDP/1.0 phones.
+          </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.j2mepolish.org/">http://www.j2mepolish.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:j2mepolish@enough.de">Enough Software</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License; commercial licenses available
+      </td>
+      </tr>
+          </table>
+                                                    <h5 class="subsection">
+        <a name="Stampysoft's J2ME Tasks"></a>
+        *** Stampysoft's J2ME Tasks ***
+      </h5>
+                        <p>And this set works with the J2ME Wireless Toolkit and MIDP
+          for PalmOS:</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.stampysoft.com/ant/">http://www.stampysoft.com/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jeckels@stampysoft.com">Josh Eckels</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+          </table>
+                                                                        <h4 class="subsection">
+        <a name="Jacson"></a>
+        Jacson
+      </h4>
+                        <p>Jacson is a configurable and plugable tool (much like Ant
+        itself) to create filters for text (line based) files without
+        programming.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Jacson has been used and tested with 1.5.1, should
+            work with 1.4+
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jacson.sourceforge.net/">http://jacson.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jacson-user@lists.sourceforge.de">jacson-user@lists.sourceforge.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Library or Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Jalopy"></a>
+        Jalopy
+      </h4>
+                        <p>An Ant Plug-in for the Java Source Code Formatter
+        Jalopy.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 (or higher)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jalopy.sourceforge.net/">http://jalopy.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jalopy.sf.net/contact.html">http://jalopy.sf.net/contact.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Starting with release 1.0 Beta 6 the license is the
+            BSD License.  Prior releases were under the GNU General
+            Public License.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JarBundler"></a>
+        JarBundler
+      </h4>
+                        <p>JarBundler is a task that generates Mac OS X native Java
+        Application Bundles.  It is fully configurable and can be used
+        to generate Mac OS X application bundles from any supported
+        Java platform, making it ideal for targeting multiple
+        platforms with one build.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.loomcom.com/jarbundler/">http://www.loomcom.com/jarbundler/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:sethm@loomcom.com">Seth Morabito</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JarPatch"></a>
+        JarPatch
+      </h4>
+                        <p>JarPatch is a task that generates a zip file resulting of
+        the diff between the content of 2 jar files.</p>
+                                <p>The resulting diff file can be use as a patch for a
+        previous installation (just ensure that the generated
+        patch.zip file is located on the CLASSPATH before the patched
+        oldJar jar file)</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://perso.club-internet.fr/sjobic/ant/">http://perso.club-internet.fr/sjobic/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:norbert.barbosa@laposte.net">Norbert Barbosa</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Java+ Precompile Task"></a>
+        Java+ Precompile Task
+      </h4>
+                        <p>Java+ is an open source Java preprocessor that adds these
+        features to any Java compiler:</p>
+                                <ul>
+          <li>Multi-line strings with executable inclusions like Perl
+          and Ruby. It eliminates the need for JSP or ASP and their
+          need for Java compilers on deployment servers (a security
+          concern) while adding no overhead in either space or
+          time. </li>
+
+          <li>Optionally supports localization by segregating Java+
+          strings into ResourceBundle files with invarient keys based
+          on the hash code of the strings's value. This is handled
+          automatically and transparently; no intervention is
+          required.</li>
+
+          <li>Fast. Negligible impact on build times. By default,
+          skips inputs whose outputs are up to date to avoid
+          triggering recompilations.</li>
+
+          <li>Pure Java code, portable to any platform, with
+          graphical, shell and ant interfaces.</li>
+
+          <li>Simple, general, recursive, digraph-driven string
+          syntax. Digraph characters are user-selectable.</li>
+        </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://virtualschool.edu/java+/">http://virtualschool.edu/java+/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:bcox@virtualschool.edu">Brad Cox</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Java2Html"></a>
+        Java2Html
+      </h4>
+                        <p>There are two different tools both named Java2HTML that
+        process Java source code and generate syntax highlighted
+        documentation from it.  Both include Ant tasks to run
+        them.</p>
+                                <p>Java2Html library for converting java source files
+        or snipplets to syntax highlighted html, rtf, tex and
+        others.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.java2html.de/">http://www.java2html.de/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:java2html@jave.de">java2html@jave.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                <p>Java2HTML is a simple-to-use tool which converts a bunch of
+        Java Source Code into a colourized and browsable HTML
+        representation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1 onwards
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.java2html.com/java2html_ant_task.html">http://www.java2html.com/java2html_ant_task.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@java2html.com">support@java2html.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          FreeWare
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Javamake"></a>
+        Javamake
+      </h4>
+                        <p>A task to compile Java sources and manage class file
+        dependencies. Functionality is equivalent to that of standard
+        Javac and Depend tasks combined, with improved dependency
+        checking.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.experimentalstuff.com/Technologies/JavaMake/index.html">http://www.experimentalstuff.com/Technologies/JavaMake/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:Mikhail.Dmitriev@eng.sun.com">Mikhail Dmitriev</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="javarec"></a>
+        javarec
+      </h4>
+                        <p>Ant tasks that generate record classes for VisualAge for
+        Java from Cobol copy books.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://glezen.org/javarec/">http://glezen.org/javarec/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:pglezen@us.ibm.com">Paul Glezen</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JCSC"></a>
+        JCSC
+      </h4>
+                        <p>JCSC is a Java Coding Standard Checker which also features
+        the generation of some code metrics. It is a command line tool
+        with an Ant task to scan whole package trees. The result can
+        viewed in an JavaDoc style web page.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant &gt;= 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jcsc.sourceforge.net/">http://jcsc.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:rjocham72@netscape.net">Ralph Jocham</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Jdiff"></a>
+        Jdiff
+      </h4>
+                        <p>A task that generates an HTML report of all the packages, classes,
+        constructors, methods, and fields which have been removed, added or
+        changed in any way, including their documentation, when two APIs are
+        compared. </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <a href="http://javadiff.sourceforge.net/">
+            http://javadiff.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Task Documentation:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+            <a href="http://cvs.sourceforge.net/viewcvs.py/*checkout*/javadiff/jdiff/jdiff.html?rev=HEAD&amp;content-type=text/html#JDiffAntTask">
+            (in CVS)</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JFlex"></a>
+        JFlex
+      </h4>
+                        <p>JFlex is a lexical analyzer generator (also known as
+        scanner generator) for Java, written in Java.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jflex.de/">http://jflex.de/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.jflex.de/mailing.html">jflex-users mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JindentTask"></a>
+        JindentTask
+      </h4>
+                        <p>JindentTask is a very straightforward wrapping of the
+        Jindent tool, a vendor code beautifier. It enables to use
+        Jindent natively from Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://the.edouard.mercier.free.fr/Jindent_content.php">http://the.edouard.mercier.free.fr/Jindent_content.php</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Edouard Mercier
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Jing Task"></a>
+        Jing Task
+      </h4>
+                        <p> Validates XML files against the RELAX NG alternative to XML Schema.
+        The Jing task for Ant allows you to efficiently validate
+        multiple files against multiple RELAX NG patterns and integrate
+        RELAX NG validation with other XML processing.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.thaiopensource.com/relaxng/jing-ant.html">
+            http://www.thaiopensource.com/relaxng/jing-ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="jMetra"></a>
+        jMetra
+      </h4>
+                        <p>jMetra is a tool for collecting code metrics across a
+        project lifecycle and compiling the results into
+        JavaDoc-styled documentation to analyze project metrics over
+        time.  jMetra is best utilized by integrating it with your
+        project's scheduled build process.</p>
+                                <p>It works from the command line or using several provided
+        Ant tasks.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.jmetra.com/">http://www.jmetra.com/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:tnewton@hypercisioninc.com">R Todd Newton
+              </a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial, free licenses for open source projects and
+            evaluations.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JMX4Ant"></a>
+        JMX4Ant
+      </h4>
+                        <p>JMX4Ant provides tasks for integration with JMX (Java Management
+        Extensions). It provides tasks for getting and setting attributes
+        of MBeans, invoking their methods and much more.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://jmx4ant.sourceforge.net/">http://jmx4ant.sourceforge.net/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:bdueck@yahoo.com">Brian Dueck</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 1.1
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JNI"></a>
+        JNI
+      </h4>
+                        <p>
+
+          JNI is a free toolkit that makes easy work of
+          integrating Java and C through the Java Native
+          Interface (JNI). It includes a code generator that
+          generates both Java "proxy" classes to access C
+          "peer" classes, and C "proxy" classes to access
+          Java "peer" classes or interfaces. It also
+          includes a core library with a simplified JVM
+          interface as well as "helper" classes to ease
+          working with the JNI data types. The code
+          generation is driven by an XML project file that
+          can be created with the assistance of the GUI
+          Project Manager. The code generation can be
+          invoked either from Ant or from the
+          GUI. Includes a comprehensive printable PDF User
+          Guide and plenty of examples.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jnipp.sf.net/">http://jnipp.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:ptrewhella@users.sf.net">Phillip E. Trewhella</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JReleaseInfo"></a>
+        JReleaseInfo
+      </h4>
+                        <p>Sometimes you are interested at runtime to have information
+        from build time. This may be the build date, a build number or
+        the version.  The JReleaseInfo Ant Task generates a java
+        source file with getter methods for any desired and provided
+        properties.  Furthermore, it can automatically generate a
+        viewer (which can e.g.  be used as main-class in a library jar
+        file) that shows the included release information.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jreleaseinfo.sourceforge.net/">HomePage on SourceForge</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/jreleaseinfo/">Forums/Tracker on SourceForge</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JRun Ant Tasks"></a>
+        JRun Ant Tasks
+      </h4>
+                        <p>JRun 4 SP1 ships with lib/jrun-ant-tasks.jar, which defines
+        three Ant tasks: jrun, jrunapp, and jrunjmx.  Documentation
+        for the tasks can be found in JRun under
+        docs/ant/jrun.html.</p>
+                                <p>Note that the service pack must be installed on top of an
+        existing JRun 4 installation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dynamic.macromedia.com/bin/MM/software/trial/hwswrec.jsp?product=jrun_sp">http://dynamic.macromedia.com/bin/MM/software/trial/hwswrec.jsp?product=jrun_sp</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:bdeitte@macromedia.com">Brian Deitte</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JudoScript Ant Task"></a>
+        JudoScript Ant Task
+      </h4>
+                        <p>The &lt;judoscript&gt; task is an easy way to embed JudoScript
+           code in the Ant build script. The tag format is quite simple. You can
+           either embed code directly, or can specify an external JudoScript program
+           file as the <code>src</code> attribute value. Parameters can be specified
+           as the <code>params</code> attribute; this is applicable to both embedded
+           code and external files.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.judoscript.com/articles/ant.html">http://www.judoscript.com/articles/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:judoscript@hotmail.com">James Jianbo Huang</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Lesser GNU Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Just4log Ant Task"></a>
+        Just4log Ant Task
+      </h4>
+                        <p>Just4log is a ant task to optimize JVM bytecode with regards
+        for Logs ( be it, Log4j, Apache Commons or JDK 1.4 )
+        It depends on apache BCEL for Bytecode engineering.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.2 or higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://just4log.sourceforge.net">http://just4log.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:lbruand@wanadoo.fr">Lucas Bruand</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache License 1.1.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Kanaputs"></a>
+        Kanaputs
+      </h4>
+                        <p>Kanaputs is a parser for java based scripting. It is an
+        interpreter for Java. With Kanaputs you can use Java as an
+        interpreted language: no more compilation, each instruction is
+        executed when you write it.  It is a small programmation
+        language to make script files above Java.</p>
+                                <p>Kanaputs Ant Task provides a way to add any kind of
+        programmatic features in your Ant script. The code you insert
+        stays OS independent (because Kanaputs uses Java) and is
+        completely integrated with Ant as you can give Ant properties
+        to the Kanaputs code and get back the results in other
+        properties.</p>
+                                <p>Moreover, as you can invoke any kind of Java code with
+        Kanaputs, you can popup windows from your Ant file to ask the
+        user to do a choice.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.kanaputs.org/">http://www.kanaputs.org/</a> <br />
+              <a href="http://www.kanaputs.org/ant.html">http://www.kanaputs.org/ant.html</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:kfra@kanaputs.org">kfra@kanaputs.org</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="LaTeX Task"></a>
+        LaTeX Task
+      </h4>
+                        <p>Simple Task to use (PDF)LaTeX, BibTeX, Makeindex and GlossTeX to
+        create your documentation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.2 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.dokutransdata.de/">http://www.dokutransdata.de/</a><br />
+              <a href="http://www.dokutransdata.de/ant_latex/">http://www.dokutransdata.de/ant_latex/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:jaloma@dokutransdata.de">jaloma@dokutransdata.de</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Macker"></a>
+        Macker
+      </h4>
+                        <p>A build-time architectural testing tool, designed
+        to maintain clean layering / tiering / modularity.
+        Macker works against compiled class files, checking
+        dependencies between classes against a set of
+        pattern-based access rules you specify for your
+        project in an XML rules file.  Macker doesn't presume
+        anything about your architecture -- you write the
+        rules, and Macker keeps you honest about them.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and higher (1.4 untested but may work)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://innig.net/macker/">http://innig.net/macker/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://innig.net/macker/contact.html">Paul Cantrell</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU GPL 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="mtxslt"></a>
+        mtxslt
+      </h4>
+                        <p>The mtxslt (Multi-XSLT) extends the standard Ant "xslt/style" task
+        to make it easy to use multiple XSLT engines during the same build.
+        This is useful for regression testing of XSLT scripts against several
+        engines.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://mtxslt.sourceforge.net/">http://mtxslt.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:abcoates@theOffice.net">Anthony B. Coates</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="nsd2LaTeX Task"></a>
+        nsd2LaTeX Task
+      </h4>
+                        <p>Simple Task to use nsd2ltx to build your Nassi-Shneiderman diagrams.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.2 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.dokutransdata.de/">http://www.dokutransdata.de/</a><br />
+              <a href="http://www.dokutransdata.de/ant_nsd2ltx/">http://www.dokutransdata.de/ant_nsd2ltx/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:jaloma@dokutransdata.de">jaloma@dokutransdata.de</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Nurflugel AntScript Visualizer"></a>
+        Nurflugel AntScript Visualizer
+      </h4>
+                        <p>The Nurflugel AntScript Visualizer takes your build file,
+        finds any imported build files, and shows all relationships
+        between targets, taskdefs, macrodefs, Ant and Antcalls; output
+        options include PDF, SVG, and PNG.  Many options including
+        grouping by build file, inclusion/exclusion of targets,
+        taskdefs, imports, etc.  Installation is via Java WebStart, so
+        you'll always have the freshest version available.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.nurflugel.com/webstart/AntScriptVisualizer/">http://www.nurflugel.com/webstart/AntScriptVisualizer/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          dbullard &lt;at&gt; nurflugel &lt;dot&gt; com (email
+            will receive a challenge to weed out spam)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Orangevolt Ant Tasks"></a>
+        Orangevolt Ant Tasks
+      </h4>
+                        <p>Orangevolt ANT Tasks is a collection of Tasks for Apache
+        Ant.</p>
+                                <p>The Orangevolt Ant Tasks collections provides a bunch of
+        Appplication Deployment related Tasks from windows specific
+        tasks (registry access, executable generation), *nix specific
+        tasks (kde/gnome shortcut generation) to many useful utility
+        tasks like jnlp generation.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/ovanttasks">http://sourceforge.net/projects/ovanttasks</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:info@roxes.com">info@roxes.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="pack"></a>
+        pack
+      </h4>
+                        <p>pack is a task to build the smallest possible JAR to link
+        and run one or more classes.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sadun-util.sourceforge.net/pack.html">http://sadun-util.sourceforge.net/pack.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cristiano@xtractor.com">Cristiano Sadun</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="PCT"></a>
+        PCT
+      </h4>
+                        <p>PCT is a task to compile Progress code, and in a more general
+        way, to deal with Progress procedures and databases.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://pct.sourceforge.net">http://pct.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:justus_phenix@users.sourceforge.net">Gilles QUERRET</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Licence:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="PesterCat Ant Toolkit"></a>
+        PesterCat Ant Toolkit
+      </h4>
+                        <p>PesterCat is a web testing tool that was designed to
+           perform functional testing for web applications. The PesterCat
+           Ant Toolkit contains tasks to playback test scripts and create
+           HTML reports.
+         </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.pestercat.com/">http://www.pestercat.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="PMD"></a>
+        PMD
+      </h4>
+                        <p>PMD checks Java source code for unused variables,
+        unnecessary object creation, etc</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://pmd.sf.net/">http://pmd.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:tcopeland@apache.org">Tom Copeland</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="PRes"></a>
+        PRes
+      </h4>
+                        <p>PRes is short for Property Resources and will generate a Java source
+           file from name=value pair .property files which can be compiled like any
+           other class.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later (may work with earlier)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://mseries.sourceforge.net">http://mseries.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://web.ukonline.co.uk/mseries/contact.html">MSeries</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="ProGuard"></a>
+        ProGuard
+      </h4>
+                        <p><a href="http://proguard.sourceforge.net/">ProGuard</a> is
+        a free Java class file shrinker and obfuscator.  It can detect
+        and remove unused classes, fields, methods, and attributes. It
+        can then rename the remaining classes, fields, and methods
+        using short meaningless names.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5. Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://proguard.sourceforge.net/">http://proguard.sourceforge.net/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://proguard.sourceforge.net/feedback.html">Feedback Page</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="properties2java"></a>
+        properties2java
+      </h4>
+                        <p>Properties2Java is an Ant task for automatic conversion of
+        java ".properties" files to ".java" files extending the
+        java.util.ListResourceBundle.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://properties2java.jayefem.de/">http://properties2java.jayefem.de/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:properties2java@jayefem.de">Jan-Friedrich Mutter</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Purge"></a>
+        Purge
+      </h4>
+                        <p>Purge deletes all but the most recent few files from a fileset.
+        For example: if you have generated files (logs, .ear, .war, .jar
+        etc) accumulating in a directory, the purge task will allow you
+        to delete the older files, keeping just the most recent ones.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.dallaway.com/ant/">http://www.dallaway.com/ant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:purge@dallaway.com">Richard Dallaway</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="RefactorIT"></a>
+        RefactorIT
+      </h4>
+                        <p>RefactorIT includes an Ant task for metrics and audits.
+        RefactorIT is a Java refactoring, audit and metrics tool.
+        It plugs into major Java IDEs, also runs stand-alone with
+        a GUI and a command line interface.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.refactorit.com/">http://www.refactorit.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@refactorit.com">support@refactorit.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial. (Free for accredited open source products, see
+            <a href="http://www.refactorit.com/osc">http://www.refactorit.com/osc</a>.)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Reflectant Task"></a>
+        Reflectant Task
+      </h4>
+                        <p>This is a task for reflection invocation from within ant build file.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/reflectant/">http://sourceforge.net/projects/reflectant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:sv_ant@mail.bg">sv_ant@mail.bg</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="rundoc"></a>
+        rundoc
+      </h4>
+                        <p>A task designed to help with the single-sourcing of program
+        documentation. Rundoc replaces special commands
+        (in the format <i>@@rundoc:command param1 param2...@@</i>) embedded
+        within text files with their output in a
+        specified format. Currently, only Docbook format is supported.</p>
+                                <p>Rundoc was written to keep sample code output in program
+        documentation synchronized with the actual output
+        of the current code, by running the referenced code when the
+        documentation is built.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.6  Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/lab/index.html#rundoc">http://www.martiansoftware.com/lab/index.html#rundoc</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/contact.html">Marty Lamb</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Revised BSD
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="SerialVer"></a>
+        SerialVer
+      </h4>
+                        <p>SerialVer adds the Java serialver functionality to Apache
+        Ant.  This project adds Tasks and FilterReaders to get, to
+        insert and to modify the serialVersionUID in the source code
+        of a serializable class.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://serialver.sourceforge.net/">http://serialver.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://lists.sourceforge.net/lists/listinfo/serialver-development">developer mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Simian"></a>
+        Simian
+      </h4>
+                        <p>Simian (Similarity Analyser) identifies duplication in Java,
+        C#, C, CPP, COBOL, JSP, HTML source code and even plain text files.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.redhillconsulting.com.au/products/simian/">
+            http://www.redhillconsulting.com.au/products/simian/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:simian-user-subscribe@redhillconsulting.com.au">
+            simian-user-subscribe@redhillconsulting.com.au (User Mailinglist)
+            </a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial, Free Licenses available for Non-Commercial Projects
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="SmartAnalyzer"></a>
+        SmartAnalyzer
+      </h4>
+                        <p>Powerful analysis of dependencies between Java classes.
+        Only affected classes will be recompiled and it can be used
+        with any bytecode compiler.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Ant version 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://smartanalyzer.sourceforge.net/">http://smartanalyzer.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/smartanalyzer">support at sourceforge project page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public Licence (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="snip"></a>
+        snip
+      </h4>
+                        <p>A task designed to help with the single-sourcing of program documentation.
+        Snip extracts snippets of text from files, placing them into properties in the Ant project.
+        These properties can then be used by any other Ant task, and are particularly useful when
+        referenced by &lt;filter&gt;s within the &lt;copy&gt; task.</p>
+                                <p>Snip was originally written to keep snippets of sample code in API documentation synchronized
+        with the actual sample classes.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with 1.5.1.  Should work with all versions.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/lab/index.html#snip">http://www.martiansoftware.com/lab/index.html#snip</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.martiansoftware.com/contact.html">Marty Lamb</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Revised BSD
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="SQL Compiler (SQLC)"></a>
+        SQL Compiler (SQLC)
+      </h4>
+                        <p>SQL Compiler (SQLC) compiles database metadata and SQL statements into data access and data transfer classes.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5.4 and 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/products/sqlc">http://www.hammurapi.biz/products/sqlc</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/contact.html">Project Contact Page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="SQLUnit"></a>
+        SQLUnit
+      </h4>
+                        <p>SQLUnit is a regression and unit testing harness for testing
+         database stored procedures. The test suite is written as an XML file.
+         The SQLUnit harness itself is written in Java and uses the JUnit unit
+         testing framework to convert the XML test specifications to JDBC calls
+         and compare the results generated from the calls with the specified
+         results. It also provides the &lt;sqlunit&gt; task to run the tests
+         from a build script.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sqlunit.sourceforge.net">http://sqlunit.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/forum/?group_id=77832">Project forums</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Styler"></a>
+        Styler
+      </h4>
+                        <p>The styler task makes useful combinations of XSLT transformations
+        easy to specify in an Ant build file. Like the built-in Ant task
+        style, styler can apply a single transformation to a set of XML files.
+        But it can also:</p>
+                                <ul>
+          <li>handle multiple transformations, in parallel or pipelined.</li>
+          <li>enable transformations that split or merge files</li>
+          <li>process non-XML files, especially HTML (based on JTidy)</li>
+          <li>apply non-XSLT transformation, especially "regular
+          fragmentations"</li>
+          <li>use any custom XMLReader or XMLFilter class to handle new file
+          formats and transformation techniques.</li>
+        </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.langdale.com.au/styler/">http://www.langdale.com.au/styler/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:adv@langdale.com.au">Arnold deVos</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Syntax"></a>
+        Syntax
+      </h4>
+                        <p>Transforms source files into HTML documents with syntax
+        highlighting. It can handle a variety of source files
+        including Java, HTML, C/C++, SQL, and Java properties.  Colors
+        for elements are specified using cascading style sheets.  The
+        output can be templated for easy integration with a site's
+        look and feel.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ostermiller.org/syntax/ant.html">http://ostermiller.org/syntax/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ostermiller.org/contact.pl?regarding=Syntax+Highlighting">Stephen Ostermiller</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL)
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="TestSetGenerator"></a>
+        TestSetGenerator
+      </h4>
+                        <p>The TestSetGenerator is an ant task for generating property files with
+        testsets based on the results of SQL queries and validation plug-ins. Very
+        usefull when building unit tests that make use of changing datasets. This
+        task is an extension of the Ant SQL task. Hsqldb is used for both the
+        examples and the unittests.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          ANT 1.4 (or later)
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://anttestsetgen.sourceforge.net/">http://anttestsetgen.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:m.c.jansen@planet.nl">m.c.jansen@planet.nl</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Tidy Imports (Tim)"></a>
+        Tidy Imports (Tim)
+      </h4>
+                        <p>Tim is a handy utility that can be executed on the command
+        line or via Ant that automatically formats your import
+        declarations. Tim is capable of removing unused imports,
+        expanding or collapsing imports and even organising them into
+        pre-determined groups.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.chive.com/tim.htm">http://www.chive.com/tim.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@chive.com">support@chive.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="TiniAnt"></a>
+        TiniAnt
+      </h4>
+                        <p>TiniAnt is an Ant task to support building applications for
+        the <a href="http://www.ibutton.com/TINI/">TINI</a>.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 to 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://tiniant.sourceforge.net/">http://tiniant.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:kelly@ad1440.net">Sean Kelly</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD-like license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Transformica"></a>
+        Transformica
+      </h4>
+                        <p>Transformica is a versatile and extensible code generator.
+           Supports multiple source models including database metadata, Java source files, grammar
+           files and custom models.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Tested with Ant 1.5.x and 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/products/transformica">http://www.hammurapi.biz/products/transformica</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/contact.html">Project Contact Page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Venus Application Publisher's (Vamp) Ant Task Suite"></a>
+        Venus Application Publisher's (Vamp) Ant Task Suite
+      </h4>
+                        <p>Venus Application Publisher's (Vamp) Ant Task Suite allows
+        you to sign and package your applications into relocatable Web
+        Archives that you can drop into your web server for
+        single-click launching using Java Web Start or into single
+        Java Archive installers that serve up their content through a
+        built-in, multi-threaded, ultra light-weight web server.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.geocities.com/vamp201/ant.html">http://www.geocities.com/vamp201/ant.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:vamp201@yahoo.com">Gerald Bauer</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Version_Tool"></a>
+        Version_Tool
+      </h4>
+                        <p>A versioning tool for Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant.ryangrier.com/">http://ant.ryangrier.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:version_tool@ryangrier.com">version_tool@ryangrier.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="VPP"></a>
+        VPP
+      </h4>
+                        <p>VPP provides general file preprocessing support based on
+        the Velocity Template Engine.  The core functionality is
+        provided as a filter for use with tasks that supports filter
+        chains.  Also included are replacement tasks for &lt;copy&gt; and
+        &lt;javac&gt; that integrate support for preprocessing.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://vpp.sourceforge.net/">http://vpp.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:vpp-user@lists.sourceforge.net">vpp-user@lists.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="WOProject"></a>
+        WOProject
+      </h4>
+                        <p>WOProject provides a set of tools to work with
+        <a href="http://webobjects.com/">WebObjects 5.1</a>
+        independent from platform and IDE. It significantly
+        improves developer productivity
+        and makes complex project structures more flexible compared to
+        traditional Makefile-based approach.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://objectstyle.org/woproject/">http://objectstyle.org/woproject/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:andrus@objectstyle.org">Andrus Adamchik</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="WSDLValidate"></a>
+        WSDLValidate
+      </h4>
+                        <p>WSDLValidate is, as it sounds, a tool to validate WSDL files.
+        <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/wsvt-home/docs/articles/wsdl20Validator/wsdlvalidateant.html">WSDLValidate</a>
+        is similar in configuration to the optional Ant task <a href="http://ant.apache.org/manual/OptionalTasks/xmlvalidate.html">XMLValidate</a>.
+        WSDLValidate can optionally validate a WSDL document against the <a href="http://www.ws-i.org">WS-I Basic Profile</a>.
+        </p>
+                                <p>WSDLValidate is available as an Ant task, an Eclipse plug-in and a
+        command line utility.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/wsvt">http://www.eclipse.org/wsvt</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.eclipse.org/wsvt">Project newsgroup and
+            mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www-124.ibm.com/developerworks/oss/CPLv1.0.htm">Common Public
+            License (CPL)</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Xcluder"></a>
+        Xcluder
+      </h4>
+                        <p>xcluder is an XML Inclusions (XInclude) task for Apache Ant.
+        Offers the choice of using Xerces or Elliotte Rusty Harold's XOM API.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 or later. XInclude compliance depends on the
+            underlying Xerces or XOM used. Xerces 2.5.0 and above works fine,
+            but please note that 2.6.1 and 2.6.2 processed the
+            http://www.w3.org/2003/XInclude, now obsolete by
+            http://www.w3.org/2001/XInclude used by the latest
+            Candidate Recommendation (13 April 2004).
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/xcluder">http://sourceforge.net/projects/xcluder</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mbatsis@users.sf.net">mbatsis@users.sf.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License (GPL), GNU Library or Lesser
+            General Public License (LGPL)
+            
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XDoclet"></a>
+        XDoclet
+      </h4>
+                        <p>XDoclet is an extended Javadoc Doclet engine for use in Ant.
+           It lets you create custom Javadoc @tags and based on those tags
+           generates source code or other files (such as xml-ish deployment
+           descriptors). Templates and matching tasks are provided to generate
+           EJB and web application deployment descriptors.
+           </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/xdoclet/">http://sourceforge.net/projects/xdoclet/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XInclude"></a>
+        XInclude
+      </h4>
+                        <p><a href="http://www.jeckle.de/freeStuff/xia/index.html">XInclude</a> is
+          a W3C standardized vocabulary for including arbitrary text or XML
+          documents in other XML documents. This task performes the inclusion
+          using an existing XInclude implementation</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.2
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.jeckle.de/freeStuff/xia/index.html">http://www.jeckle.de/freeStuff/xia/index.html</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mario@jeckle.de">mario@jeckle.de</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Lesser GNU Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XMLReleaseNotes (XRN)"></a>
+        XMLReleaseNotes (XRN)
+      </h4>
+                        <p>This framework is a release notes framework that enables to
+        generate textual release notes from an XML file. This is an
+        open framework that enables to integrate the information
+        coming from VSC and bug tracking solutions, for instance.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://xmlreleasenotes.free.fr/">http://xmlreleasenotes.free.fr/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Edouard Mercier
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XmlTask"></a>
+        XmlTask
+      </h4>
+                        <p>XmlTask provides a simple means to modify XML documents
+        without having to learn XSLT. A simple path reference to an
+        XML node specifies the node you want to change, and how you
+        want to allow XML insertion and removal, or attribute
+        changes. The emphasis is on providing the simplest means to
+        perform common XML replacements</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.oopsconsultancy.com/software/xmltask/">http://www.oopsconsultancy.com/software/xmltask/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:xmltask-users@lists.sourceforge.net">xmltask-users at lists.sourceforge.net</a> 
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="yGuard"></a>
+        yGuard
+      </h4>
+                        <p>yGuard is a free Java(TM) Bytecode Obfuscator Task that
+        needs no external script or project files. It can completely
+        be configured and run through the Ant build script. The task
+        supports multiple Jar files at once and makes use of
+        patternsets and regular expressions to specify elements, which
+        should be left unobfuscated.  Additionally it can be used to
+        produce patches for obfuscated applications that have already
+        been deployed.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.yworks.com/en/products_yguard_about.htm">http://www.yworks.com/en/products_yguard_about.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:yguard@yworks.com">yGuard@yWorks.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Library: LGPL, Task: Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Zelix KlassMaster"></a>
+        Zelix KlassMaster
+      </h4>
+                        <p>The task ZKMTask allows the Zelix KlassMaster Java obfuscator to be integrated into an Ant build.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.zelix.com/klassmaster/docs/buildToolApi.html">http://www.zelix.com/klassmaster/docs/buildToolApi.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="Compiler Implementations"></a>
+      Compiler Implementations
+    </h3>
+                              <h4 class="subsection">
+        <a name="Generics (JSR14) Early-Access Compiler Adapter"></a>
+        Generics (JSR14) Early-Access Compiler Adapter
+      </h4>
+                        <p>This is an Ant compiler-adapter that allows you to use the
+        normal <code>&lt;javac&gt;</code> task plus Sun's early-access
+        compiler to compile Generics-enabled Java code.  (This is only
+        necessary until JDK1.5 is released.)</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.madbean.com/blog/3/">http://www.madbean.com/blog/3/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Matt Quail &lt;spud[at]madbean[dot]com&gt;
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Public Domain
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="miniRMI &lt;code&gt;&amp;lt;rmic&amp;gt;&lt;/code&gt; implementation"></a>
+        miniRMI <code>&lt;rmic&gt;</code> implementation
+      </h4>
+                        <p>miniRMI is a freeware opensource library that serves as a
+        lightweight replacement for the original java.rmi packages and
+        is suitable especially for applets. Ant 1.4+
+        <code>&lt;rmic&gt;</code> adapter included.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dione.zcu.cz/~toman40/miniRMI/">http://dione.zcu.cz/~toman40/miniRMI/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:Petr.Toman@pinknet.cz">Petr Toman</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Gnu Lesser Public License
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="IDE and Editor Integration"></a>
+      IDE and Editor Integration
+    </h3>
+                              <h4 class="subsection">
+        <a name="AntFarm"></a>
+        AntFarm
+      </h4>
+                        <p>A plugin that integrates Ant into the jEdit editor.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://plugins.jedit.org/plugins/?AntFarm">http://plugins.jedit.org/plugins/?AntFarm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jedit-devel@lists.sourceforge.net">jEdit developers mailinglist</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntMan"></a>
+        AntMan
+      </h4>
+                        <p>An AddIn that integrates Ant with the JDeveloper IDE</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.erudra.com/antman/index.html">http://www.erudra.com/antman/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:ashok@erudra.com">Ashok Sridhar</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntRunner"></a>
+        AntRunner
+      </h4>
+                        <p>An OpenTool that integrates Ant into the JBuilder IDE
+        (version 5 and later).</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antrunner.sourceforge.net/">http://antrunner.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:dirk.schnelle@web.de">Dirk Schnelle</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntWork"></a>
+        AntWork
+      </h4>
+                        <p>A plugin that integrates Ant into the Jext editor.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and 1.3
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:KHartlage@t-online.de">Klaus Hartlage</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Eclipse"></a>
+        Eclipse
+      </h4>
+                        <p>Eclipse is a universal tool platform with Ant integration.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              Ant 1.3 - 1.4.1
+              Bundles Ant 1.6.2 as of Eclipse 3.0.1 (tested with Ant 1.5.4 - 1.6.2)
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.eclipse.org/">http://www.eclipse.org/</a>
+              or
+              <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-ant-home/index.html">
+                http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-ant-home/index.html
+              </a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="news://news.eclipse.org/eclipse.platform">news://news.eclipse.org/eclipse.platform</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Common Public License Version 1.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Gel"></a>
+        Gel
+      </h4>
+                        <p>Java IDE with support for Ant.  Gel is a native Microsoft
+        Windows software.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.gexperts.com/gel.html">http://www.gexperts.com/gel.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://groups.yahoo.com/group/gelide/">Project Mailing List</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="IntelliJ IDEA 5.0"></a>
+        IntelliJ IDEA 5.0
+      </h4>
+                        <p>Java IDE with refactoring support and Ant integration.
+      The IDE has special editing and navigation support for Ant.
+      </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.intellij.com/idea/">http://www.intellij.com/idea/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@intellij.com">support@intellij.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial; Academic and OpenSource licenses available.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JBuilder"></a>
+        JBuilder
+      </h4>
+                        <p>Borland JBuilder
+        comes with built-in Ant support, including build file editing.
+        Some versions come with Ant debugging support.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Bundles Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.borland.com/jbuilder/index.html">http://www.borland.com/jbuilder/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:customer_service@borland.com">customer_service@borland.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial; foundation edition is free.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JDEE"></a>
+        JDEE
+      </h4>
+                        <p>The Java Development Environment for Emacs (JDEE) supports
+        Apache Ant as one of three built-in ways to build your
+        applications.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jdee.sunsite.dk/">http://jdee.sunsite.dk/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jde-subscribe@sunsite.auc.dk">JDEE Mailing list.</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="NetBeans"></a>
+        NetBeans
+      </h4>
+                        <p>A module that integrates Ant into the NetBeans IDE, as well as derivative products such as Sun Java
+        Studio (formerly Forte for Java and Sun ONE Studio) and Sun Java Studio Creator.
+        This IDE uses Ant as its <i>sole</i> means of building applications,
+        with custom tasks and an Ant-aware editor.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles 1.6.5 for NetBeans 5.0 and 5.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant.netbeans.org/">http://ant.netbeans.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:nbdev@netbeans.org">nbdev@netbeans.org</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Common Development and Distribution License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Optistic IDX Java IDE"></a>
+        Optistic IDX Java IDE
+      </h4>
+                        <p>Java IDE with deep Ant integration. IDX is a native Microsoft Windows program.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.optistic.com/idx">http://optistic.com/idx</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:support@optistic.com">support@optistic.com</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial; Academic and OpenSource licenses available.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Oracle9i JDeveloper"></a>
+        Oracle9i JDeveloper
+      </h4>
+                        <p>Java IDE with support for Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://otn.oracle.com/products/jdev/">http://otn.oracle.com/products/jdev/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jdeveloperbeta_us@oracle.com">jdeveloperbeta_us@oracle.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Virtual Ant"></a>
+        Virtual Ant
+      </h4>
+                        <p>
+          Instead of manually creating build scripts in XML, Virtual Ant provides a fully virtual file system
+          where you can run your tasks in real time and see the results. Everything that you do is recorded and
+          turned into an Ant build script.
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              Ant 1.6.5 onwards
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.placidsystems.com/virtualant/">http://www.placidsystems.com/virtualant/</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="mailto:support@placidsystems.com">support@placidsystems.com</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial; OpenSource licenses available too.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="WebSphere Studio Application Developer"></a>
+        WebSphere Studio Application Developer
+      </h4>
+                        <p>WSAD features Ant integrate by virtue of being built on the Eclipse tools platform.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Article:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www7b.software.ibm.com/wsdd/library/techarticles/0203_searle/searle1.html">Ant Integration Part1</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="Source Control Systems"></a>
+      Source Control Systems
+    </h3>
+                        <p>There are several integration with SCM systems. Some are
+      <a href="manual/tasksoverview.html#scm">built in</a>. But some are available as
+      external libraries. Here a list of task libraries we are aware of:</p>
+                                      <h4 class="subsection">
+        <a name="Surround SCM"></a>
+        Surround SCM
+      </h4>
+                        <p>These are tasks that allow users to access Surround SCM
+         functionality from within Ant build scripts.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.seapine.com/scmresources.php#integration">
+            Surround SCM Resource Center</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:support@seapine.com">Seapine Support</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU Lesser General Public License
+      </td>
+      </tr>
+          </table>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/faq.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/faq.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/faq.html	(revision 14989)
@@ -0,0 +1,2017 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Frequently Asked Questions</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                              <span class="sel">Frequently Asked Questions</span>
+                              </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Frequently Asked Questions</h1>
+    
+        <h3 class="section">Questions</h3>
+                <h4 class="toc">About this FAQ</h4>
+        <ul>
+                <li><a href="#latest-version">
+  Where do I find the latest version of this
+        document?
+      </a></li>
+                <li><a href="#adding-faqs">
+  How can I contribute to this FAQ?
+      </a></li>
+                <li><a href="#creating-faq">
+  How do you create the HTML version of this
+        FAQ?
+      </a></li>
+            </ul>
+                <h4 class="toc">General</h4>
+        <ul>
+                <li><a href="#what-is-ant">
+  What is Apache Ant?
+      </a></li>
+                <li><a href="#ant-name">
+  Why do you call it Ant?
+      </a></li>
+                <li><a href="#history">
+  Tell us a little bit about Ant's history.
+      </a></li>
+            </ul>
+                <h4 class="toc">Installation</h4>
+        <ul>
+                <li><a href="#no-gnu-tar">
+  I get checksum errors when I try to extract the
+      <code>tar.gz</code> distribution file. Why?
+      </a></li>
+                <li><a href="#RedHat_ES_3">
+  How do you get ant-1.6.x (or any version later than
+      1.5.2) to work on on RedHat ES 3?
+      </a></li>
+            </ul>
+                <h4 class="toc">How do I ...</h4>
+        <ul>
+                <li><a href="#implement-os-specific-configuration">
+  How do I realize os--specific configurations?
+      </a></li>
+                <li><a href="#adding-external-tasks">
+  How do I add an external task that I've written to the
+      page "External Tools and Tasks"?
+      </a></li>
+                <li><a href="#create-extensions">
+  How do I create new tasks?
+      </a></li>
+                <li><a href="#passing-cli-args">
+  How do I pass parameters from the command line to my
+        build file?
+      </a></li>
+                <li><a href="#jikes-switches">
+  How can I use Jikes-specific command-line
+        switches?
+      </a></li>
+                <li><a href="#shell-redirect-1">
+  How do I include a &lt; character in my command-line arguments?
+      </a></li>
+                <li><a href="#shell-redirect-2">
+  How do I redirect standard input or standard output
+        in the <code>&lt;exec&gt;</code> task?
+      </a></li>
+                <li><a href="#batch-shell-execute">
+  How do I execute a batch file or shell script from Ant?
+      </a></li>
+                <li><a href="#multi-conditions">
+  I want to execute a particular target only if
+        multiple conditions are true.
+      </a></li>
+                <li><a href="#encoding">
+  How can I include national characters like German
+        umlauts in my build file?
+      </a></li>
+                <li><a href="#use-zip-instead-of-jar">
+  How do I use <code>jar</code>'s <code>M</code> switch?
+      I don't want a MANIFEST.
+      </a></li>
+                <li><a href="#propertyvalue-as-name-for-property">
+  How can I do something like <code>&lt;property name="prop"
+      value="${${anotherprop}}"/&gt;</code> (double expanding the property)?
+      </a></li>
+            </ul>
+                <h4 class="toc">It doesn't work (as expected)</h4>
+        <ul>
+                <li><a href="#genral-advice">
+  General Advice
+      </a></li>
+                <li><a href="#always-recompiles">
+  Why does Ant always recompile all my Java files?
+      </a></li>
+                <li><a href="#defaultexcludes">
+  I've used a <code>&lt;delete&gt;</code> task to
+      delete unwanted SourceSafe control files (CVS files, editor
+      backup files, etc.), but it doesn't seem to work; the files
+      never get deleted. What's wrong?
+      </a></li>
+                <li><a href="#stop-dependency">
+  I have a target I want to skip if a property is set,
+      so I have <code>unless="property"</code> as an attribute
+      of the target, but all the targets this target
+      depends on are still executed. Why?
+      </a></li>
+                <li><a href="#include-order">
+  In my <code>&lt;fileset&gt;</code>, I've put in an
+      <code>&lt;exclude&gt;</code> of all files followed by an
+      <code>&lt;include&gt;</code> of just the files I want, but it
+      isn't giving me any files at all. What's wrong?
+      
+      </a></li>
+                <li><a href="#properties-not-trimmed">
+  <code>ant</code> failed to build my program via javac
+      even when I put the needed jars in an external
+      <code>build.properties</code> file and reference them by
+      <code>pathelement</code> or <code>classpath refid</code>.
+      </a></li>
+                <li><a href="#winzip-lies">
+  Ant creates WAR files with a lower-case
+        <code>web-inf</code> or JAR files with a lower-case
+        <code>meta-inf</code> directory.
+      </a></li>
+                <li><a href="#NoClassDefFoundError">
+  I installed Ant 1.6.x and now get
+        <code>Exception in thread "main" java.lang.NoClassDefFoundError:
+        </code>
+      
+      </a></li>
+                <li><a href="#InstantiationException">
+  I installed Ant 1.6.x and now get
+        <code>java.lang.InstantiationException: org.apache.tools.ant.Main</code>
+      
+      </a></li>
+                <li><a href="#mangled-manifest">
+  
+        Whenever I use the Ant jar or manifest related tasks, long lines in
+        my manifest are wrapped at 70 characters and the resulting jar does
+        not work in my application server. Why does Ant do this?
+      
+      </a></li>
+            </ul>
+                <h4 class="toc">Ant and IDEs/Editors</h4>
+        <ul>
+                <li><a href="#integration">
+  Is Ant supported by my IDE/Editor?
+      </a></li>
+                <li><a href="#emacs-mode">
+  Why doesn't (X)Emacs/vi/MacOS X's project builder
+      correctly parse the error messages generated by Ant?
+      </a></li>
+            </ul>
+                <h4 class="toc">Advanced Issues</h4>
+        <ul>
+                <li><a href="#dtd">
+  Is there a DTD that I can use to validate my build
+      files?
+      </a></li>
+                <li><a href="#xml-entity-include">
+  How do I include an XML snippet in my build file?
+      </a></li>
+                <li><a href="#mail-logger">
+  How do I send an email with the result of my build
+        process?
+      </a></li>
+                <li><a href="#listener-properties">
+  How do I get at the properties that Ant was running
+      with from inside BuildListener?
+      </a></li>
+            </ul>
+                <h4 class="toc">Known Problems</h4>
+        <ul>
+                <li><a href="#remove-cr">
+  &lt;chmod&gt; or &lt;exec&gt; doesn't work in Ant
+        1.3 on Unix
+      </a></li>
+                <li><a href="#javadoc-cannot-execute">
+  JavaDoc failed: java.io.IOException: javadoc: cannot execute
+      </a></li>
+                <li><a href="#delegating-classloader">
+  &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt;
+      </a></li>
+                <li><a href="#delegating-classloader-1.5">
+  &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt; - Ant 1.5.x version
+      </a></li>
+                <li><a href="#delegating-classloader-1.6">
+  &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt; - Ant 1.6.x version
+      </a></li>
+                <li><a href="#winxp-jdk14-ant14">
+  When running Ant 1.4 on Windows XP and JDK 1.4, I get
+      various errors when trying to <code>&lt;exec&gt;</code>, fork
+      <code>&lt;java&gt;</code> or access environment
+      variables.
+      </a></li>
+                <li><a href="#1.5-cygwin-sh">
+  The <code>ant</code> wrapper script of Ant 1.5 fails
+      for Cygwin if <code>ANT_HOME</code> is set to a Windows style
+      path.
+      </a></li>
+                <li><a href="#1.5.2-zip-broken">
+  <code>&lt;zip&gt;</code> is broken in Ant 1.5.2.
+      </a></li>
+                <li><a href="#unknownelement.taskcontainer">
+  
+        Why do my custom task containers see Unknown Elements in Ant 1.6
+        - they worked in Ant 1.5?
+      
+      </a></li>
+                <li><a href="#java.exception.stacktrace">
+  
+        The program I run via &lt;java&gt; throws an exception but I
+        can't seem to get the full stack trace.
+      
+      </a></li>
+                <li><a href="#junit-no-runtime-xml">
+  
+        Using format="xml", &lt;junit&gt; fails with a
+        <code>NoClassDefFoundError</code> if forked.
+      
+      </a></li>
+                <li><a href="#xalan-jdk1.5">
+  
+        <code>&lt;junitreport&gt;</code> doesn't work with JDK 1.5 but
+        worked fine with JDK 1.4.
+      
+      </a></li>
+            </ul>
+    
+      <h3 class="section">Answers</h3>
+                    <p class="faq">
+      <a name="latest-version"></a>
+      Where do I find the latest version of this
+        document?
+    </p>
+                  <p>The latest version can always be found at Ant's homepage
+          <a href="http://ant.apache.org/faq.html">http://ant.apache.org/faq.html</a>.</p>
+                    <p class="faq">
+      <a name="adding-faqs"></a>
+      How can I contribute to this FAQ?
+    </p>
+                  <p>The page you are looking it is generated from
+          <a href="http://svn.apache.org/repos/asf/ant/core/trunk/xdocs/faq.xml">this</a>
+          document.  If you want to add a new question, please submit
+          a patch against this document to one of Ant's mailing lists;
+          hopefully, the structure is self-explanatory.</p>
+                        <p>If you don't know how to create a patch, see the patches
+          section of <a href="http://jakarta.apache.org/site/source.html">this
+          page</a>.</p>
+                    <p class="faq">
+      <a name="creating-faq"></a>
+      How do you create the HTML version of this
+        FAQ?
+    </p>
+                  <p>We use
+        <a href="http://jakarta.apache.org/velocity/anakia.html">Anakia</a>
+        to render the HTML version from the original XML file.</p>
+                        <p>The Velocity stylesheets used to process the XML files can
+        be found in the <code>xdocs/stylesheets</code> subdirectory of
+        Ant's SVN repository - the build file
+        <code>docs.xml</code> at the top level of the ant SVN
+        module (trunk) is used to drive Anakia.</p>
+                        <p>This file assumes that you have the
+        <code>jakarta-site2</code> CVS module checked out as well, but
+        if you follow the instruction from Anakia's homepage, you
+        should get it to work without that.  Just make sure all
+        required jars are in the task's classpath.</p>
+                                <p class="faq">
+      <a name="what-is-ant"></a>
+      What is Apache Ant?
+    </p>
+                  <p> Ant is a Java-based build tool. In theory, it is kind of
+        like Make, without Make's wrinkles and with the full
+        portability of pure Java code.</p>
+                    <p class="faq">
+      <a name="ant-name"></a>
+      Why do you call it Ant?
+    </p>
+                  <p>According to Ant's original author, James Duncan
+        Davidson, the name is an acronym for "Another Neat
+        Tool".</p>
+                        <p>Later explanations go along the lines of "ants
+        do an extremely good job at building things", or
+        "ants are very small and can carry a weight dozens of times
+        their own" - describing what Ant is intended to
+        be.</p>
+                    <p class="faq">
+      <a name="history"></a>
+      Tell us a little bit about Ant's history.
+    </p>
+                  <p>Initially, Ant was part of the Tomcat code base, when it was
+        donated to the Apache Software Foundation. It was
+        created by James Duncan Davidson, who is also the original
+        author of Tomcat. Ant was there to build Tomcat, nothing
+        else.</p>
+                        <p>Soon thereafter, several open source Java projects realized
+        that Ant could solve the problems they had with Makefiles.
+        Starting with the projects hosted at Jakarta and the old Java
+        Apache project, Ant spread like a virus and is now the build
+        tool of choice for a lot of projects.</p>
+                        <p>In January 2000, Ant was moved to a separate CVS module and
+        was promoted to a project of its own, independent of
+        Tomcat, and became Apache Ant.</p>
+                        <p>The first version of Ant that was exposed to a larger audience
+        was the one that shipped with Tomcat's 3.1 release on 19 April
+        2000.  This version has later been referred to as Ant
+        0.3.1.</p>
+                        <p>The first official release of Ant as a stand-alone product was
+        Ant 1.1, released on 19 July 2000.  The complete release
+        history:</p>
+                              <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant Version
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Release Date
+      </th>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          19 July 2000
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.2
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          24 October 2000
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.3
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 March 2001
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 September 2001
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          11 October 2001
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          10 July 2002
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 October 2002
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.2
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          3 March 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.3
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          9 April 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.5.4
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          12 August 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.0
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          18 December 2003
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.1
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          12 February 2004
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.2
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          16 July 2004
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.3
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          28 April 2005
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.4
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          19 May 2005
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6.5
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          2 June 2005
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.7.0
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          19 December 2006
+      </td>
+      </tr>
+          </table>
+                                <p class="faq">
+      <a name="no-gnu-tar"></a>
+      I get checksum errors when I try to extract the
+      <code>tar.gz</code> distribution file. Why?
+    </p>
+                  <p>Ant's distribution contains file names that are longer
+        than 100 characters, which is not supported by the standard
+        tar file format. Several different implementations of tar use
+        different and incompatible ways to work around this
+        restriction.</p>
+                        <p>Ant's &lt;tar&gt; task can create tar archives that use
+        the GNU tar extension, and this has been used when putting
+        together the distribution. If you are using a different
+        version of tar (for example, the one shipping with Solaris),
+        you cannot use it to extract the archive.</p>
+                        <p>The solution is to either install GNU tar, which can be
+        found <a href="http://www.gnu.org/software/tar/tar.html">here</a>,
+        or use the zip archive instead (you can extract it using
+        <code>jar xf</code>).</p>
+                    <p class="faq">
+      <a name="RedHat_ES_3"></a>
+      How do you get ant-1.6.x (or any version later than
+      1.5.2) to work on on RedHat ES 3?
+    </p>
+                  <p>Redhat ES 3.0 comes installed with ant 1.5.2. Even if you
+        have your PATH and ANT_HOME variables set correctly to a later
+        version of ant, you will always be forced to use the
+        preinstalled version.</p>
+                        <p>To use a later version of ant on this OS you could do the
+        following:</p>
+                        <pre class="code">
+$ ant -version
+Apache Ant version 1.5.2-23 compiled on November 12 2003
+$ su -
+# rpm -e ant ant-libs
+# exit
+$ hash -r
+$ ant -version
+Apache Ant version 1.6.2 compiled on July 16 2004
+</pre>
+                                <p class="faq">
+      <a name="implement-os-specific-configuration"></a>
+      How do I realize os--specific configurations?
+    </p>
+                  <p>The core idea is using property files which name accords to the
+        os-name. Then simply use the build-in property <tt>os.name</tt>.</p>
+                        <p>For better use you should also provide a file with defaul values.
+        But be careful with the correct os-names. For test simply &lt;echo&gt;
+        the ${os.name} on all machines and you can be sure to use the right
+        file names.</p>
+                        <pre class="code">
+          &lt;property file=&quot;${os.name}.properties&quot;/&gt;
+          &lt;property file=&quot;default.properties&quot;/&gt;
+</pre>
+                    <p class="faq">
+      <a name="adding-external-tasks"></a>
+      How do I add an external task that I've written to the
+      page "External Tools and Tasks"?
+    </p>
+                  <p>Join and post a message to the dev or user mailing
+        list (one list is enough), including the following
+        information:</p>
+                        <ul>
+          <li>the name of the task/tool</li>
+          <li>a short description of the task/tool</li>
+          <li>a Compatibility: entry stating with which version(s) of
+          Ant the tool/task is compatible to</li>
+          <li>a URL: entry linking to the main page of the tool/task</li>
+          <li>a Contact: entry containing the email address or the URL
+          of a webpage for the person or list to contact for issues
+          related to the tool/task.  <strong>Note that we'll add a
+          link on the page, so any email address added there is not
+          obfuscated and can (and probably will) be abused by robots
+          harvesting websites for addresses to spam.</strong></li>
+          <li>a License: entry containing the type of license for the
+          tool/task</li>
+        </ul>
+                        <p>The preferred format for this information is a patch to <a href="http://svn.apache.org/repos/asf/ant/core/trunk/xdocs/external.xml">this</a>
+        document.</p>
+                        <p>If you have written something bigger than a 'simple plugin' to Ant it
+        may be better to add the link to <a href="projects.html">projects.html</a>.
+        The procedure to add it is the same. The file to patch is <a href="http://svn.apache.org/repos/asf/ant/core/trunk/xdocs/projects.xml">this</a>
+        document. The syntax of that file is the same.</p>
+                    <p class="faq">
+      <a name="create-extensions"></a>
+      How do I create new tasks?
+    </p>
+                  <p>Apart from a lot of information on using Ant, the
+        <a href="manual/index.html">Manual</a> also contains information
+        on how to extend Ant with new tasks. This information
+        can be found under "Developing with Ant".</p>
+                        <p>Chances are that someone else already created the task you
+        want to create, it may be wise to see
+        <a href="external.html">External Tools and Tasks</a> and
+        <a href="projects.html">Related Projects</a> first.</p>
+                    <p class="faq">
+      <a name="passing-cli-args"></a>
+      How do I pass parameters from the command line to my
+        build file?
+    </p>
+                  <p>Use properties. Using <code>ant
+        -D<em>name</em>=<em>value</em></code> lets you define values for
+        properties on the Ant command line. These properties can then be
+        used within your build file as
+        any normal property: <code>${<em>name</em>}</code> will put in
+        <code><em>value</em></code>.</p>
+                    <p class="faq">
+      <a name="jikes-switches"></a>
+      How can I use Jikes-specific command-line
+        switches?
+    </p>
+                  <p>A couple of switches are supported via "magic"
+          properties:</p>
+                              <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          switch
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          property
+      </th>
+                          <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          default
+      </th>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          +E
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.emacs
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          false == not set
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          +P
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.pedantic
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          false == not set
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          +F
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.fulldepend
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          false == not set
+      </td>
+      </tr>
+                  <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <strong>(Only for Ant &lt; 1.4; replaced by the
+                <code><strong>nowarn</strong></code>
+                attribute of the <code><strong>&lt;javac&gt;</strong></code>
+                task after that.)</strong><br />-nowarn
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          build.compiler.warnings
+      </td>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          true == not set
+      </td>
+      </tr>
+          </table>
+                        <p>With Ant &gt;= 1.5, you can also use nested
+          <code>&lt;compilerarg&gt;</code> elements with the
+          <code>&lt;javac&gt;</code> task.</p>
+                    <p class="faq">
+      <a name="shell-redirect-1"></a>
+      How do I include a &lt; character in my command-line arguments?
+    </p>
+                  <p>The short answer is "Use: <code>&amp;lt;</code>".</p>
+                        <p>The long answer is that this probably won't do what you
+        want anyway (see <a href="#shell-redirect-2">the next
+        section</a>).</p>
+                    <p class="faq">
+      <a name="shell-redirect-2"></a>
+      How do I redirect standard input or standard output
+        in the <code>&lt;exec&gt;</code> task?
+    </p>
+                  <p>Say you want to redirect the standard output stream of the
+        <code>m4</code> command to write to a file, something
+        like:</p>
+                        <pre class="code">
+shell-prompt&gt; m4 foo.m4 &gt; foo
+</pre>
+                        <p>and try to translate it into</p>
+                        <pre class="code">
+&lt;exec executable=&quot;m4&quot;&gt;
+  &lt;arg value=&quot;foo.m4&quot;/&gt;
+  &lt;arg value=&quot;&amp;gt;&quot;/&gt;
+  &lt;arg value=&quot;foo&quot;/&gt;
+&lt;/exec&gt;
+</pre>
+                        <p>This will not do what you expect.  The output redirection is
+        performed by your shell, not the command itself, so this
+        should read:</p>
+                        <pre class="code">
+&lt;exec executable=&quot;/bin/sh&quot;&gt;
+  &lt;arg value=&quot;-c&quot; /&gt;
+  &lt;arg value=&quot;m4 foo.m4 &amp;gt; foo&quot; /&gt;
+&lt;/exec&gt;
+</pre>
+                        <p>Note that you must use the <code>value</code> attribute of
+        <code>&lt;arg&gt;</code> in the last element, in order to have
+        the command passed as a single, quoted argument. Alternatively,
+        you can use:</p>
+                        <pre class="code">
+&lt;exec executable=&quot;/bin/sh&quot;&gt;
+  &lt;arg line='-c &quot;m4 foo.m4 &amp;gt; foo&quot;'/&gt;
+&lt;/exec&gt;
+</pre>
+                        <p>Note the double-quotes nested inside the single-quotes.</p>
+                    <p class="faq">
+      <a name="batch-shell-execute"></a>
+      How do I execute a batch file or shell script from Ant?
+    </p>
+                  <p>On native Unix systems, you should be able to run shell scripts
+           directly. On systems running a Unix-type shell (for example, Cygwin
+           on Windows) execute the (command) shell instead - <code>cmd</code>
+           for batch files, <code>sh</code> for shell scripts - then pass the
+           batch file or shell script (plus any arguments to the script)
+           as a single command, using the <code>/c</code> or
+           <code>-c</code> switch, respectively. See
+           <a href="#shell-redirect-2">the above section</a>
+           for example <code>&lt;exec&gt;</code> tasks
+           executing <code>sh</code>. For batch files, use something like:</p>
+                        <pre class="code">
+&lt;exec dir=&quot;.&quot; executable=&quot;cmd&quot; os=&quot;Windows NT&quot;&gt;
+  &lt;arg line=&quot;/c test.bat&quot;/&gt;
+&lt;/exec&gt;
+</pre>
+                    <p class="faq">
+      <a name="multi-conditions"></a>
+      I want to execute a particular target only if
+        multiple conditions are true.
+    </p>
+                  <p>There are actually several answers to this question.</p>
+                        <p>If you have only one set and one unset property to test,
+        you can specify both an <code>if</code> and an <code>unless</code>
+        attribute for the target, and they will act as if they
+        are "anded" together.</p>
+                        <p>If you are using a version of Ant 1.3 or earlier, the
+        way to work with all other cases is to chain targets together
+        to determine the specific state you want to test for.</p>
+                        <p>To see how this works, assume you have three properties:
+        <code>prop1</code>, <code>prop2</code>, and <code>prop3</code>.
+        You want to test that <code>prop1</code> and <code>prop2</code>
+        are set, and that <code>prop3</code> is not. If the condition
+        holds true you want to echo "yes".</p>
+                        <p>Here is the implementation in Ant 1.3 and earlier:</p>
+                        <pre class="code">
+&lt;target name=&quot;cond&quot; depends=&quot;cond-if&quot;/&gt;
+
+&lt;target name=&quot;cond-if&quot; if=&quot;prop1&quot;&gt;
+  &lt;antcall target=&quot;cond-if-2&quot;/&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-if-2&quot; if=&quot;prop2&quot;&gt;
+  &lt;antcall target=&quot;cond-if-3&quot;/&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-if-3&quot; unless=&quot;prop3&quot;&gt;
+  &lt;echo message=&quot;yes&quot;/&gt;
+&lt;/target&gt;
+</pre>
+                        <p>Note: <code>&lt;antcall&gt;</code> tasks do <em>not</em> pass
+        property changes back up to the environment they were called
+        from, so you wouldn't be able to, for example, set a
+        <code>result</code> property in the <code>cond-if-3</code> target,
+        then do
+        <code>&lt;echo message="result is ${result}"/&gt;</code>
+        in the <code>cond</code> target.</p>
+                        <p>Starting with Ant 1.4, you can use the
+        <code>&lt;condition&gt;</code> task.</p>
+                        <pre class="code">
+&lt;target name=&quot;cond&quot; depends=&quot;cond-if,cond-else&quot;/&gt;
+
+&lt;target name=&quot;check-cond&quot;&gt;
+  &lt;condition property=&quot;cond-is-true&quot;&gt;
+    &lt;and&gt;
+      &lt;not&gt;
+        &lt;equals arg1=&quot;${prop1}&quot; arg2=&quot;$${prop1}&quot; /&gt;
+      &lt;/not&gt;
+      &lt;not&gt;
+        &lt;equals arg1=&quot;${prop2}&quot; arg2=&quot;$${prop2}&quot; /&gt;
+      &lt;/not&gt;
+      &lt;equals arg1=&quot;${prop3}&quot; arg2=&quot;$${prop3}&quot; /&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-if&quot; depends=&quot;check-cond&quot; if=&quot;cond-is-true&quot;&gt;
+  &lt;echo message=&quot;yes&quot;/&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;cond-else&quot; depends=&quot;check-cond&quot; unless=&quot;cond-is-true&quot;&gt;
+  &lt;echo message=&quot;no&quot;/&gt;
+&lt;/target&gt;
+</pre>
+                        <p>This version takes advantage of two things:</p>
+                        <ul>
+          <li>If a property <code>a</code> has not been set,
+          <code>${a}</code> will evaluate to <code>${a}</code>.</li>
+
+          <li>To get a literal <code>$</code> in Ant, you have to
+          escape it with another <code>$</code> - this will also break
+          the special treatment of the <code>${</code> sequence.</li>
+        </ul>
+                        <p>Because testing for a literal <code>${property}</code> string
+        isn't all that readable or easy to understand,
+        post-1.4.1 Ant introduces the <code>&lt;isset&gt;</code> element
+        to the <code>&lt;condition&gt;</code> task.</p>
+                        <p>Here is the previous example done using
+        <code>&lt;isset&gt;</code>:</p>
+                        <pre class="code">
+&lt;target name=&quot;check-cond&quot;&gt;
+  &lt;condition property=&quot;cond-is-true&quot;&gt;
+    &lt;and&gt;
+      &lt;isset property=&quot;prop1&quot;/&gt;
+      &lt;isset property=&quot;prop2&quot;/&gt;
+      &lt;not&gt;
+        &lt;isset property=&quot;prop3&quot;/&gt;
+      &lt;/not&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+&lt;/target&gt;
+</pre>
+                        <p>The last option is to use a scripting language to set the
+        properties. This can be particularly handy when you need much
+        finer control than the simple conditions shown here but, of
+        course, comes with the overhead of adding JAR files to support
+        the language, to say nothing of the added maintenance in requiring
+        two languages to implement a single system. See the
+        <a href="manual/OptionalTasks/script.html">
+        <code>&lt;script&gt;</code> task documentation</a> for more
+        details.</p>
+                    <p class="faq">
+      <a name="encoding"></a>
+      How can I include national characters like German
+        umlauts in my build file?
+    </p>
+                  <p>You need to tell the XML parser which character encoding
+        your build file uses, this is done inside the <a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-prolog-dtd">XML
+        declaration</a>.</p>
+                        <p>By default the parser assumes you are using the UTF-8
+        encoding instead of your platform's default.  For most Western
+        European countries you should set the encoding to
+        <code>ISO-8859-1</code>.  To do so, make the very first line
+        of you build file read like</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
+</pre>
+                    <p class="faq">
+      <a name="use-zip-instead-of-jar"></a>
+      How do I use <code>jar</code>'s <code>M</code> switch?
+      I don't want a MANIFEST.
+    </p>
+                  <p>A JAR archive is a ZIP file, so if you don't want a
+        MANIFEST you can simply use <code>&lt;zip&gt;</code>.</p>
+                        <p>If your file names contain national characters you should
+        know that Sun's <code>jar</code> utility like Ant's
+        <code>&lt;jar&gt;</code> uses UTF-8 to encode their names while
+        <code>&lt;zip&gt;</code> uses your platforms default encoding.
+        Use the encoding attribute of <code>&lt;zip&gt;</code> if
+        necessary.</p>
+                    <p class="faq">
+      <a name="propertyvalue-as-name-for-property"></a>
+      How can I do something like <code>&lt;property name="prop"
+      value="${${anotherprop}}"/&gt;</code> (double expanding the property)?
+    </p>
+                  <p>Without any external help you can not.</p>
+                        <p>With &lt;script/&gt;, which needs external libraries, you can do</p>
+                        <pre class="code">
+&lt;script language=&quot;javascript&quot;&gt;
+    propname = project.getProperty(&quot;anotherprop&quot;);
+    project.setNewProperty(&quot;prop&quot;, propname);
+&lt;/script&gt;
+</pre>
+                        <p>With AntContrib (external task library) you can do <code>
+         &lt;propertycopy name="prop" from="${anotherprop}"/&gt;</code>.</p>
+                        <p>With Ant 1.6 you can simulate the AntContribs &lt;propertycopy&gt;
+         and avoid the need of an external library:</p>
+                        <pre class="code">
+&lt;macrodef name=&quot;propertycopy&quot;&gt;
+  &lt;attribute name=&quot;name&quot;/&gt;
+  &lt;attribute name=&quot;from&quot;/&gt;
+  &lt;sequential&gt;
+    &lt;property name=&quot;@{name}&quot; value=&quot;${@{from}}&quot;/&gt;
+  &lt;/sequential&gt;
+&lt;/macrodef&gt;
+</pre>
+                                <p class="faq">
+      <a name="genral-advice"></a>
+      General Advice
+    </p>
+                  <p>There are many reasons why Ant doesn't behave as
+        expected, not all of them are due to Ant bugs.  See our <a href="problems.html">Having Problems?</a> page for hints that
+        may help pinning down the reasons for your problem.</p>
+                    <p class="faq">
+      <a name="always-recompiles"></a>
+      Why does Ant always recompile all my Java files?
+    </p>
+                  <p>In order to find out which files should be compiled, Ant
+        compares the timestamps of the source files to those of the
+        resulting <code>.class</code> files.  Opening all source files
+        to find out which package they belong to would be very
+        inefficient. Instead, Ant expects you to place your
+        source files in a directory hierarchy that mirrors your
+        package hierarchy and to point Ant to the root of this
+        directory tree with the <code>srcdir</code> attribute.</p>
+                        <p>Say you have <code>&lt;javac srcdir="src"
+        destdir="dest"/&gt;</code>.  If Ant finds a file
+        <code>src/a/b/C.java</code>, it expects it to be in package
+        <code>a.b</code> so that the resulting <code>.class</code>
+        file is going to be <code>dest/a/b/C.class</code>.</p>
+                        <p>If your source-tree directory structure does not match your
+        package structure, Ant's heuristic won't work, and
+        it will recompile classes that are up-to-date.  Ant is not the
+        only tool that expects a source-tree layout like this.</p>
+                        <p>If you have Java source files that aren't declared to
+        be part of any package, you can still use the <code>&lt;javac&gt;</code>
+        task to compile these files correctly - just set the
+        <code>srcdir</code> and <code>destdir</code> attributes to
+        the actual directory the source
+        files live in and the directory the class files should go into,
+        respectively.</p>
+                    <p class="faq">
+      <a name="defaultexcludes"></a>
+      I've used a <code>&lt;delete&gt;</code> task to
+      delete unwanted SourceSafe control files (CVS files, editor
+      backup files, etc.), but it doesn't seem to work; the files
+      never get deleted. What's wrong?
+    </p>
+                  <p>This is probably happening because, by default, Ant excludes
+        SourceSafe control files (<code>vssver.scc</code>) and certain other
+        files from FileSets.</p>
+                        <p>Here's what you probably did:</p>
+                        <pre class="code">
+&lt;delete&gt;
+  &lt;fileset dir=&quot;${build.src}&quot; includes=&quot;**/vssver.scc&quot;/&gt;
+&lt;/delete&gt;
+</pre>
+                        <p>You need to switch off the default exclusions,
+           and it will work:</p>
+                        <pre class="code">
+&lt;delete&gt;
+  &lt;fileset dir=&quot;${build.src}&quot; includes=&quot;**/vssver.scc&quot;
+           defaultexcludes=&quot;no&quot;/&gt;
+&lt;/delete&gt;
+</pre>
+                        <p>For a complete listing of the patterns that are excluded
+        by default, see <a href="manual/dirtasks.html#defaultexcludes">the user
+        manual</a>.</p>
+                    <p class="faq">
+      <a name="stop-dependency"></a>
+      I have a target I want to skip if a property is set,
+      so I have <code>unless="property"</code> as an attribute
+      of the target, but all the targets this target
+      depends on are still executed. Why?
+    </p>
+                  <p>The list of dependencies is generated by Ant before any of the
+        targets are run. This allows dependent targets, such as an
+        <code>init</code> target, to set properties that can control the
+               execution of the targets higher in the dependency graph. This
+              is a good thing.</p>
+                        <p>However, when your dependencies break down the
+        higher-level task
+        into several smaller steps, this behaviour becomes
+        counter-intuitive. There are a couple of solutions available:
+        </p>
+                        <ol>
+          <li>Put the same condition on each of the dependent targets.</li>
+
+          <li>Execute the steps using <code>&lt;antcall&gt;</code>,
+          instead of specifying them inside the <code>depends</code>
+          attribute.</li>
+        </ol>
+                    <p class="faq">
+      <a name="include-order"></a>
+      In my <code>&lt;fileset&gt;</code>, I've put in an
+      <code>&lt;exclude&gt;</code> of all files followed by an
+      <code>&lt;include&gt;</code> of just the files I want, but it
+      isn't giving me any files at all. What's wrong?
+      
+    </p>
+                  <p>The order of the <code>&lt;include&gt;</code> and
+        <code>&lt;exclude&gt;</code> tags within a <code>&lt;fileset&gt;</code>
+        is ignored when the FileSet is created. Instead, all of the
+        <code>&lt;include&gt;</code> elements are processed together,
+        followed by all of the <code>&lt;exclude&gt;</code>
+        elements. This means that the <code>&lt;exclude&gt;</code>
+        elements only apply to the file list produced by the
+        <code>&lt;include&gt;</code> elements.</p>
+                        <p>To get the files you want, focus on just the
+        <code>&lt;include&gt;</code> patterns that would be necessary
+        to get them. If you find you need to trim the list that the
+        <code>&lt;include&gt;</code> elements produce, then use
+        <code>&lt;exclude&gt;</code> elements.</p>
+                    <p class="faq">
+      <a name="properties-not-trimmed"></a>
+      <code>ant</code> failed to build my program via javac
+      even when I put the needed jars in an external
+      <code>build.properties</code> file and reference them by
+      <code>pathelement</code> or <code>classpath refid</code>.
+    </p>
+                  <p>When <code>ant</code> loads properties from an external
+        file it doesn't touch the value of properties, trailing blanks
+        will not be trimmed for example.</p>
+                        <p>If the value represents a file path, like a jar needed to
+        compile, the task which requires the value, javac for example
+        would fail to compile since it can't find the file due to
+        trailing spaces.</p>
+                    <p class="faq">
+      <a name="winzip-lies"></a>
+      Ant creates WAR files with a lower-case
+        <code>web-inf</code> or JAR files with a lower-case
+        <code>meta-inf</code> directory.
+    </p>
+                  <p>No it doesn't.</p>
+                        <p>You may have seen these lower-case directory names in
+        WinZIP, but WinZIP is trying to be helpful (and fails).  If
+        WinZIP encounters a filename that is all upper-case, it
+        assumes it has come from an old DOS box and changes the case to
+        all lower-case for you.</p>
+                        <p>If you extract (or just check) the archive with jar, you
+        will see that the names have the correct case.</p>
+                        <p>With WinZIP (version 8.1 at least), this can be corrected in the
+        configuration.  In the Options/Configuration menu, in the View tab, General
+        section, check the "Allow all upper case files names" box.  The META-INF and
+        WEB-INF will look correct.</p>
+                    <p class="faq">
+      <a name="NoClassDefFoundError"></a>
+      I installed Ant 1.6.x and now get
+        <code>Exception in thread "main" java.lang.NoClassDefFoundError:
+        </code>
+      
+    </p>
+                  <p>
+          The cause of this is that there is an old version of ant somewhere in the
+          class path or configuration.
+        </p>
+                        <p>
+          A version of this problem happens with jars that are in the classpath
+          that include an embedded copy of ant classes.
+          An example of this is some copies of weblogic.jar.
+        </p>
+                        <p>
+        One can check if this is the case by doing (on unix/sh):
+        <code><pre>
+        unset CLASSPATH
+        ant -version
+        </pre>
+        </code>
+        </p>
+                    <p class="faq">
+      <a name="InstantiationException"></a>
+      I installed Ant 1.6.x and now get
+        <code>java.lang.InstantiationException: org.apache.tools.ant.Main</code>
+      
+    </p>
+                  <p>
+          The cause of this is that there is an old version of ant somewhere in the
+          class path or configuration.
+        </p>
+                        <p>
+          A version of this problem may be seen on some linux systems.
+          Some linux systems (Fedora Core 2 for example), comes with a version
+          of ant pre-installed. There is a configuration file called
+          <code>/etc/ant.conf</code> which if present, the ant shell
+          script will 'dot' include. On Fedora Core 2, the /etc/ant.conf
+          file resets the <code>ANT_HOME</code> environment variable to
+          <code>/usr/share/ant</code>. This causes the problem that
+          an old version of ant (1.5.x in this cause) will be used
+          with a new version of the ant script file.
+        </p>
+                        <p>
+          One can check if this is the case by doing
+          <code>ant --noconfig -version</code>.
+        </p>
+                    <p class="faq">
+      <a name="mangled-manifest"></a>
+      
+        Whenever I use the Ant jar or manifest related tasks, long lines in
+        my manifest are wrapped at 70 characters and the resulting jar does
+        not work in my application server. Why does Ant do this?
+      
+    </p>
+                  <p>
+          Ant implements the Java
+          <a href="http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html">Jar
+          file specification</a>. Please refer to the notes section where it
+          discusses the maximum allowable length of a line and the concept of
+          continuation characters.
+        </p>
+                        <p>
+          If a jar file produced by Ant does not work in your appserver, and
+          that failure is due to the wrapped manifest, then you need
+          to consult your appserver provider, as it is a bug in their
+          appserver. Far more likely, however, is a problem in your
+          specification of your classpath. It is not Ant's wrapping of your
+          classpath that is the problem.
+        </p>
+                        <p>
+          Do not raise a bug about this issue until you have checked to ensure
+          that the problem is not due to your classpath specification.
+        </p>
+                                <p class="faq">
+      <a name="integration"></a>
+      Is Ant supported by my IDE/Editor?
+    </p>
+                  <p>See the <a href="external.html#IDE and Editor Integration">section
+        on IDE integration</a> on our External Tools and Tasks page.</p>
+                    <p class="faq">
+      <a name="emacs-mode"></a>
+      Why doesn't (X)Emacs/vi/MacOS X's project builder
+      correctly parse the error messages generated by Ant?
+    </p>
+                  <p>Ant adds a "banner" with the name of the current
+        task in front of all logging messages - and there are no built-in
+        regular expressions in your editor that would account for
+        this.</p>
+                        <p>You can disable this banner by invoking Ant with the
+        <code>-emacs</code> switch.  To make Ant autodetect
+        Emacs' compile mode, put this into your
+        <code>.antrc</code> (contributed by Ville Skyttä).</p>
+                        <pre class="code">
+# Detect (X)Emacs compile mode
+if [ &quot;$EMACS&quot; = &quot;t&quot; ] ; then
+  ANT_ARGS=&quot;$ANT_ARGS -emacs&quot;
+  ANT_OPTS=&quot;$ANT_OPTS -Dbuild.compiler.emacs=true&quot;
+fi
+</pre>
+                        <p>Alternatively, you can add the following snippet to your
+        <code>.emacs</code> to make Emacs understand Ant's
+        output.</p>
+                        <pre class="code">
+(require 'compile)
+(setq compilation-error-regexp-alist
+  (append (list
+     ;; works for jikes
+     '(&quot;^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):\\([0-9]+\\):[0-9]+:[0-9]+:&quot; 1 2 3)
+     ;; works for javac
+     '(&quot;^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):&quot; 1 2))
+  compilation-error-regexp-alist))
+</pre>
+                        <p>Yet another alternative that preserves most of Ant's
+        formatting is to pipe Ant's output through the following Perl
+        script by Dirk-Willem van Gulik:</p>
+                        <pre class="code">
+#!/usr/bin/perl
+#
+# May 2001 dirkx@apache.org - remove any
+# [foo] lines from the output; keeping
+# spacing more or less there.
+#
+$|=1;
+while(&lt;STDIN&gt;) {
+        if (s/^(\s+)\[(\w+)\]//) {
+                if ($2 ne $last) {
+                        print &quot;$1\[$2\]&quot;;
+                        $s = ' ' x length($2);
+                } else {
+                        print &quot;$1 $s &quot;;
+                };
+                $last = $2;
+        };
+        print;
+};
+</pre>
+                                <p class="faq">
+      <a name="dtd"></a>
+      Is there a DTD that I can use to validate my build
+      files?
+    </p>
+                  <p>An incomplete DTD can be created by the
+          <code>&lt;antstructure&gt;</code> task - but this one
+          has a few problems:</p>
+                        <ul>
+            <li>It doesn't know about required attributes.  Only
+            manual tweaking of this file can help here.</li>
+
+            <li>It is not complete - if you add new tasks via
+            <code>&lt;taskdef&gt;</code> it won't know about it.  See
+            <a href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html">this
+            page</a> by Michel Casabianca for a solution to this
+            problem.  Note that the DTD you can download at this page
+            is based on Ant 0.3.1.</li>
+
+            <li>It may even be an invalid DTD.  As Ant allows tasks
+            writers to define arbitrary elements, name collisions will
+            happen quite frequently - if your version of Ant contains
+            the optional <code>&lt;test&gt;</code> and
+            <code>&lt;junit&gt;</code> tasks, there are two XML
+            elements named <code>test</code> (the task and the nested child
+            element of <code>&lt;junit&gt;</code>) with different attribute
+            lists.  This problem cannot be solved; DTDs don't give a
+            syntax rich enough to support this.</li>
+          </ul>
+                    <p class="faq">
+      <a name="xml-entity-include"></a>
+      How do I include an XML snippet in my build file?
+    </p>
+                  <p>You can use XML's way of including external files and let
+        the parser do the job for Ant:</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot;?&gt;
+
+&lt;!DOCTYPE project [
+       &lt;!ENTITY common SYSTEM &quot;common.xml&quot;&gt;
+]&gt;
+
+&lt;project name=&quot;test&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;setup&quot;&gt;
+    ...
+  &lt;/target&gt;
+
+  &amp;common;
+
+  ...
+
+&lt;/project&gt;
+</pre>
+                        <p>will literally include the contents of <code>common.xml</code> where
+        you've placed the <code>&amp;common;</code> entity.</p>
+                        <p>(The filename <code>common.xml</code> in this example is resolved
+        relative to the containing XML file by the XML parser. You may also use
+        an absolute <code>file:</code> protocol URI.)</p>
+                        <p>In combination with a DTD, this would look like this:</p>
+                        <pre class="code">
+&lt;!DOCTYPE project PUBLIC &quot;-//ANT//DTD project//EN&quot; &quot;ant.dtd&quot; [
+   &lt;!ENTITY include SYSTEM &quot;header.xml&quot;&gt;
+]&gt;
+</pre>
+                        <p>Starting with Ant 1.6, there is a new
+        <code>&lt;import&gt;</code> task that can (also) be used to
+        include build file fragments.  Unlike the snippets used with
+        entity includes, the referenced files have to be complete Ant
+        build files, though.</p>
+                        <p>The example above would become:</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot;?&gt;
+&lt;project name=&quot;test&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;setup&quot;&gt;
+    ...
+  &lt;/target&gt;
+
+  &lt;import file=&quot;./common.xml&quot;/&gt;
+
+  ...
+
+&lt;/project&gt;
+</pre>
+                        <p>Unlike entity includes, <code>&lt;import&gt;</code> will
+        let you use Ant properties in the file name.</p>
+                    <p class="faq">
+      <a name="mail-logger"></a>
+      How do I send an email with the result of my build
+        process?
+    </p>
+                  <p>If you are using a nightly build of Ant 1.5 after
+        2001-12-14, you can use the built-in MailLogger:</p>
+                        <pre class="code">
+         ant -logger org.apache.tools.ant.listener.MailLogger
+</pre>
+                        <p>See the <a href="http://svn.apache.org/repos/asf/ant/core/trunk/docs/manual/listeners.html">Listeners
+        &amp; Loggers</a> documentation for details on the properties
+        required.</p>
+                        <p>For older versions of Ant, you can use a custom
+        BuildListener that sends out an email
+        in the buildFinished() method.  Will Glozer
+        &lt;will.glozer@jda.com&gt; has written such a listener based
+        on <a href="http://java.sun.com/products/javamail/">JavaMail</a>.
+        The source is:</p>
+                        <pre class="code">
+import java.io.*;
+import java.util.*;
+import javax.mail.*;
+import javax.mail.internet.*;
+import org.apache.tools.ant.*;
+
+/**
+ * A simple listener that waits for a build to finish and sends an email
+ * of the results.  The settings are stored in &quot;monitor.properties&quot; and
+ * are fairly self explanatory.
+ *
+ * @author      Will Glozer
+ * @version     1.05a 09/06/2000
+ */
+public class BuildMonitor implements BuildListener {
+    protected Properties props;
+
+    /**
+     * Create a new BuildMonitor.
+     */
+    public BuildMonitor() throws Exception {
+        props = new Properties();
+        InputStream is = getClass().getResourceAsStream(&quot;monitor.properties&quot;);
+        props.load(is);
+        is.close();
+    }
+
+    public void buildStarted(BuildEvent e) {
+    }
+
+    /**
+     * Determine the status of the build and the actions to follow, now that
+     * the build has completed.
+     *
+     * @param       e       Event describing the build status.
+     */
+    public void buildFinished(BuildEvent e) {
+        Throwable th = e.getException();
+        String status = (th != null) ? &quot;failed&quot; : &quot;succeeded&quot;;
+
+        try {
+            String key = &quot;build.&quot; + status;
+            if (props.getProperty(key + &quot;.notify&quot;).equalsIgnoreCase(&quot;false&quot;)) {
+                    return;
+            }
+
+            Session session = Session.getDefaultInstance(props, null);
+
+            MimeMessage message = new MimeMessage(session);
+            message.addRecipients(Message.RecipientType.TO, parseAddresses(
+                props.getProperty(key + &quot;.email.to&quot;)));
+            message.setSubject(props.getProperty(key + &quot;.email.subject&quot;));
+
+            BufferedReader br = new BufferedReader(new FileReader(
+                props.getProperty(&quot;build.log&quot;)));
+            StringWriter sw = new StringWriter();
+
+            String line = br.readLine();
+            while (line != null) {
+                sw.write(line);
+                sw.write(&quot;\n&quot;);
+                line = br.readLine();
+            }
+            br.close();
+
+            message.setText(sw.toString(), &quot;UTF-8&quot;);
+            sw.close();
+
+            Transport transport = session.getTransport();
+            transport.connect();
+            transport.send(message);
+            transport.close();
+        } catch (Exception ex) {
+            System.out.println(&quot;BuildMonitor failed to send email!&quot;);
+            ex.printStackTrace();
+        }
+    }
+
+    /**
+     * Parse a comma separated list of internet email addresses.
+     *
+     * @param       s       The list of addresses.
+     * @return      Array of Addresses.
+     */
+    protected Address[] parseAddresses(String s) throws Exception {
+        StringTokenizer st = new StringTokenizer(s, &quot;,&quot;);
+        Address[] addrs = new Address[st.countTokens()];
+
+        for (int i = 0; i &lt; addrs.length; i++) {
+            addrs[i] = new InternetAddress(st.nextToken());
+        }
+        return addrs;
+    }
+
+    public void messageLogged(BuildEvent e) {
+    }
+
+    public void targetStarted(BuildEvent e) {
+    }
+
+    public void targetFinished(BuildEvent e) {
+    }
+
+    public void taskStarted(BuildEvent e) {
+    }
+
+    public void taskFinished(BuildEvent e) {
+    }
+}
+</pre>
+                        <p>With a <code>monitor.properties</code> like this:</p>
+                        <pre class="code">
+# configuration for build monitor
+
+mail.transport.protocol=smtp
+mail.smtp.host=&lt;host&gt;
+mail.from=Will Glozer &lt;will.glozer@jda.com&gt;
+
+build.log=build.log
+
+build.failed.notify=true
+build.failed.email.to=will.glozer@jda.com
+build.failed.email.subject=Nightly build failed!
+
+build.succeeded.notify=true
+build.succeeded.email.to=will.glozer@jda.com
+build.succeeded.email.subject=Nightly build succeeded!
+</pre>
+                        <p><code>monitor.properties</code> should be placed right next
+        to your compiled <code>BuildMonitor.class</code>.  To use it,
+        invoke Ant like:</p>
+                        <pre class="code">
+ant -listener BuildMonitor -logfile build.log
+</pre>
+                        <p>Make sure that <code>mail.jar</code> from JavaMail and
+        <code>activation.jar</code> from the
+        <a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">Java
+        Beans Activation Framework</a> are in your <code>CLASSPATH</code>.</p>
+                    <p class="faq">
+      <a name="listener-properties"></a>
+      How do I get at the properties that Ant was running
+      with from inside BuildListener?
+    </p>
+                  <p>You can get at a hashtable with all the properties that Ant
+        has been using through the BuildEvent parameter. For
+        example:</p>
+                        <pre class="code">
+public void buildFinished(BuildEvent e) {
+    Hashtable table = e.getProject().getProperties();
+    String buildpath = (String)table.get(&quot;build.path&quot;);
+    ...
+}
+</pre>
+                        <p>This is more accurate than just reading the same property
+        files that your project does, since it will give the correct
+        results for properties that were specified on the Ant command line.</p>
+                                <p class="faq">
+      <a name="remove-cr"></a>
+      &lt;chmod&gt; or &lt;exec&gt; doesn't work in Ant
+        1.3 on Unix
+    </p>
+                  <p>The <code>antRun</code> script in <code>ANT_HOME/bin</code>
+        has DOS instead of Unix line endings; you must remove the
+        carriage-return characters from this file.  This can be done by
+        using Ant's <code>&lt;fixcrlf&gt;</code> task
+        or something like:</p>
+                        <pre class="code">
+tr -d '\r' &lt; $ANT_HOME/bin/antRun &gt; /tmp/foo
+mv /tmp/foo $ANT_HOME/bin/antRun
+</pre>
+                    <p class="faq">
+      <a name="javadoc-cannot-execute"></a>
+      JavaDoc failed: java.io.IOException: javadoc: cannot execute
+    </p>
+                  <p>There is a bug in the Solaris reference implementation of
+        the JDK (see <a href="http://developer.java.sun.com/developer/bugParade/bugs/4230399.html">http://developer.java.sun.com/developer/bugParade/bugs/4230399.html</a>).
+        This also appears to be true under Linux. Moving the JDK to
+        the front of the PATH fixes the problem.</p>
+                    <p class="faq">
+      <a name="delegating-classloader"></a>
+      &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt;
+    </p>
+                  <p>Starting with Ant 1.7.0, &lt;junit&gt; will honor your
+        nested &lt;classpath&gt;.</p>
+                        <p>These tasks don't ignore your classpath setting, you
+        are facing a common problem with delegating classloaders.</p>
+                        <p>This question collects a common type of problem: A task
+        needs an external library and it has a nested classpath
+        element so that you can point it to this external library, but
+        that doesn't work unless you put the external library
+        into the <code>CLASSPATH</code> or place it in
+        <code>ANT_HOME/lib</code>.</p>
+                        <p>Some background is necessary before we can discuss
+        solutions for <a href="#delegating-classloader-1.5">Ant
+        1.5.x</a> and <a href="#delegating-classloader-1.6">Ant
+        1.6.x</a>.</p>
+                        <p>When you specify a nested <code>&lt;classpath&gt;</code> in
+        Ant, Ant creates a new class loader that uses the path you
+        have specified.  It then tries to load additional classes from
+        this classloader.</p>
+                        <p>In most cases - for example using &lt;style&gt; or
+        &lt;junit&gt; - Ant doesn't load the external library
+        directly, it is the loaded class that does so.</p>
+                        <p>In the case of <code>&lt;junit&gt;</code> it is the task
+        implementation itself and in the case of
+        <code>&lt;style&gt;</code> it is the implementation of the
+        <code>org.apache.tools.ant.taskdefs.XSLTLiaison</code>
+        class.</p>
+                        <p><em>As of Ant 1.7</em> <code>&lt;junit&gt;</code> no longer
+        requires you to have <code>junit.jar</code> in Ant's startup
+        classpath even if <code>ant-junit.jar</code> is present there.</p>
+                        <p>Ant's class loader implementation uses Java's
+        delegation model, see <a href="http://java.sun.com/products/jdk/1.2/docs/api/java/lang/ClassLoader.html">http://java.sun.com/products/jdk/1.2/docs/api/java/lang/ClassLoader.html</a>
+        the paragraph</p>
+                        <blockquote>The <code>ClassLoader</code> class uses a
+        delegation model to search for classes and resources. Each
+        instance of <code>ClassLoader</code> has an associated parent
+        class loader.  When called upon to find a class or resource, a
+        <code>ClassLoader</code> instance will delegate the search for
+        the class or resource to its parent class loader before
+        attempting to find the class or resource itself. The virtual
+        machine's built-in class loader, called the bootstrap
+        class loader, does not itself have a parent but may serve as
+        the parent of a <code>ClassLoader</code>
+        instance.</blockquote>
+                        <p>The possible solutions depend on the version of Ant you
+        use, see the next sections.</p>
+                    <p class="faq">
+      <a name="delegating-classloader-1.5"></a>
+      &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt; - Ant 1.5.x version
+    </p>
+                  <p>Please read <a href="#delegating-classloader">the previous
+        entry</a> before you go ahead.</p>
+                        <p>First of all let's state that Ant's wrapper script
+        (<code>ant</code> or <code>ant.bat</code>) adds all
+        <code>.jar</code> files from <code>ANT_HOME/lib</code> to
+        <code>CLASSPATH</code>, therefore "in
+        <code>CLASSPATH</code>" shall mean "either in your
+        <code>CLASSPATH</code> environment variable or
+        <code>ANT_HOME/lib</code>" for the rest of this
+        answer.</p>
+                        <p>The root of the problem is that the class that needs the
+        external library is on the <code>CLASSPATH</code>.</p>
+                        <p>Let's see what happens when you load the &lt;junit&gt;
+        task.  Ant's class loader will consult the
+        bootstrap class loader first, which tries to load classes from
+        <code>CLASSPATH</code>.  The bootstrap class loader
+        doesn't know anything about Ant's class loader or
+        even the path you have specified.</p>
+                        <p>If the bootstrap class loader can load the class Ant has
+        asked it to load (which it can if <code>optional.jar</code> is
+        part of <code>CLASSPATH</code>), this class will try to load
+        the external library from <code>CLASSPATH</code> as well - it
+        doesn't know anything else - and will not find it unless
+        the library is in <code>CLASSPATH</code> as well.</p>
+                        <p>To solve this, you have two major options:</p>
+                        <ol>
+          <li>put all external libraries you need in
+          <code>CLASSPATH</code> as well this is not what you want,
+          otherwise you wouldn't have found this FAQ entry.</li>
+
+          <li>remove the class that loads the external library from
+          the <code>CLASSPATH</code>.</li>
+        </ol>
+                        <p>The easiest way to do this is to remove
+        <code>optional.jar</code> from <code>ANT_HOME/lib</code>.  If
+        you do so, you will have to <code>&lt;taskdef&gt;</code> all
+        optional tasks and use nested <code>&lt;classpath&gt;</code>
+        elements in the <code>&lt;taskdef&gt;</code> tasks that point
+        to the new location of <code>optional.jar</code>.  Also,
+        don't forget to add the new location of
+        <code>optional.jar</code> to the
+        <code>&lt;classpath&gt;</code> of your
+        <code>&lt;style&gt;</code> or <code>&lt;junit&gt;</code>
+        task.</p>
+                        <p>If you want to avoid to <code>&lt;taskdef&gt;</code> all
+        optional tasks you need, the only other option is to remove
+        the classes that should not be loaded via the bootstrap class
+        loader from <code>optional.jar</code> and put them into a
+        separate archive. Add this separate archive to the
+        <code>&lt;classpath&gt;</code> of your
+        <code>&lt;style&gt;</code> or <code>&lt;junit&gt;</code> task
+        - and make sure the separate archive is not in
+        <code>CLASSPATH</code>.</p>
+                        <p>In the case of <code>&lt;junit&gt;</code> you'd have
+        to remove all classes that are in the
+        <code>org/apache/tools/ant/taskdefs/optional/junit</code>
+        directory, in the <code>&lt;style&gt;</code> case it is one of
+        the <code>*Liaison</code> classes in
+        <code>org/apache/tools/ant/taskdefs/optional</code>.</p>
+                        <p>If you use the option to break up <code>optional.jar</code>
+        for <code>&lt;junit&gt;</code> or remove
+        <code>ant-junit.jar</code>, you still have to use a
+        <code>&lt;taskdef&gt;</code> with a nested
+        <code>&lt;classpath&gt;</code> to define the junit task.</p>
+                    <p class="faq">
+      <a name="delegating-classloader-1.6"></a>
+      &lt;style&gt; or &lt;junit&gt; ignores my
+      &lt;classpath&gt; - Ant 1.6.x version
+    </p>
+                  <p>Please read <a href="#delegating-classloader">the general
+        entry</a> before you go ahead.</p>
+                        <p>The wrapper script of Ant 1.6.x no longer adds the contents
+        of <code>ANT_HOME/lib</code> to <code>CLASSPATH</code>,
+        instead Ant will create a classloader on top of the bootstrap
+        classloader - let's call it the coreloader for the rest of
+        this answer - which holds the contents of
+        <code>ANT_HOME/lib</code>.  Ant's core and its tasks will be
+        loaded through this classloader and not the bootstrap
+        classloader.</p>
+                        <p>This causes some small but notable differences between Ant
+        1.5.x and 1.6.x.  Most importantly, a third-party task that is
+        part of <code>CLASSPATH</code> will no longer work in Ant
+        1.6.x since the task now can't find Ant's classes.  In a sense
+        this is the same problem this entry is about, only
+        <code>ant.jar</code> has become the external library in
+        question now.</p>
+                        <p>This coreloader also holds the contents of
+        <code>~/.ant/lib</code> and any file or directory that has
+        been specified using Ant's <code>-lib</code> command line
+        argument.</p>
+                        <p>Let's see what happens when you load the &lt;junit&gt;
+        task.  Ant's class loader will consult the bootstrap
+        class loader first, which tries to load classes from
+        <code>CLASSPATH</code>.  The bootstrap class loader
+        doesn't know anything about Ant's class loader or
+        even the path you have specified.  If it fails to find the
+        class using the bootstrap classloader it will try the
+        coreloader next.  Again, the coreloader doesn't know anything
+        about your path.</p>
+                        <p>If the coreloader can load the class Ant has asked it to
+        load (which it can if <code>ant-junit.jar</code> is in
+        <code>ANT_HOME/lib</code>), this class will try to load the
+        external library from coreloader as well - it doesn't
+        know anything else - and will not find it unless the library
+        is in <code>CLASSPATH</code> or the coreloader as well.</p>
+                        <p>To solve this, you have the following major options:</p>
+                        <ol>
+          <li>put all external libraries you need in
+          <code>CLASSPATH</code> as well this is not what you want,
+          otherwise you wouldn't have found this FAQ entry.</li>
+
+          <li>put all external libraries you need in
+          <code>ANT_HOME/lib</code> or <code>.ant/lib</code>.  This
+          probably still isn't what you want, but you might reconsider
+          the <code>.ant/lib</code> option.</li>
+
+          <li>Always start Ant with the <code>-lib</code> command line
+          switch and point to your external libraries (or the
+          directories holding them).</li>
+
+          <li>remove the class that loads the external library from
+          the coreloader.</li>
+        </ol>
+                        <p>In Ant 1.6 <code>optional.jar</code> has been split into
+        multiple jars, each one containing classes with the same
+        dependencies on external libraries.  You can move the
+        "offending" jar out of <code>ANT_HOME/lib</code>.  For the
+        <code>&lt;junit&gt;</code> task it would be
+        <code>ant-junit.jar</code> and for <code>&lt;style&gt;</code>
+        it would be <code>ant-trax.jar</code>
+        or <code>ant-xslp.jar</code> - 
+        depending on the processor you use.</p>
+                        <p>If you do so, you will have to <code>&lt;taskdef&gt;</code>
+        all optional tasks that need the external library and use
+        nested <code>&lt;classpath&gt;</code> elements in the
+        <code>&lt;taskdef&gt;</code> tasks that point to the new
+        location of <code>ant-*.jar</code>.  Also, don't forget
+        to add the new location of <code>ant-*.jar</code> to the
+        <code>&lt;classpath&gt;</code> of your
+        <code>&lt;style&gt;</code> or <code>&lt;junit&gt;</code>
+        task.</p>
+                        <p>For example</p>
+                        <pre class="code">
+    &lt;taskdef name=&quot;junit&quot;
+            class=&quot;org.apache.tools.ant.taskdefs.optional.junit.JUnitTask&quot;&gt;
+      &lt;classpath&gt;
+        &lt;pathelement location=&quot;HOME-OF/junit.jar&quot;/&gt;
+        &lt;pathelement location=&quot;NEW-HOME-OF/ant-junit.jar&quot;/&gt;
+      &lt;/classpath&gt;
+    &lt;/taskdef&gt;
+</pre>
+                    <p class="faq">
+      <a name="winxp-jdk14-ant14"></a>
+      When running Ant 1.4 on Windows XP and JDK 1.4, I get
+      various errors when trying to <code>&lt;exec&gt;</code>, fork
+      <code>&lt;java&gt;</code> or access environment
+      variables.
+    </p>
+                  <p>Ant &lt; 1.5 doesn't recognize Windows XP as a flavor
+        of Windows that runs <code>CMD.EXE</code> instead of
+        <code>COMMAND.COM</code>.  JDK 1.3 will tell Ant that Windows
+        XP is Windows 2000 so the problem doesn't show up
+        there.</p>
+                        <p>Apart from upgrading to Ant 1.5 or better, setting the
+        environment variable <code>ANT_OPTS</code> to
+        <code>-Dos.name=Windows_NT</code> prior to invoking Ant has
+        been confirmed as a workaround.</p>
+                    <p class="faq">
+      <a name="1.5-cygwin-sh"></a>
+      The <code>ant</code> wrapper script of Ant 1.5 fails
+      for Cygwin if <code>ANT_HOME</code> is set to a Windows style
+      path.
+    </p>
+                  <p>This problem has been reported only hours after Ant 1.5 has
+        been released, see <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10664">Bug
+        10664</a> and all its duplicates.</p>
+                        <p>A fixed version of the wrapper script can be found <a href="http://ant.apache.org/old-releases/v1.5/errata/">here</a>.
+        Simply replace your script with this version.</p>
+                    <p class="faq">
+      <a name="1.5.2-zip-broken"></a>
+      <code>&lt;zip&gt;</code> is broken in Ant 1.5.2.
+    </p>
+                  <p>Yes, it is.</p>
+                        <p>The problem reported by most people - see <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17648">Bug
+        17648</a> and all its duplicates - is that Ant creates
+        archives that a partially unreadable by WinZIP.  Luckily
+        <code>jar</code> deals with the archives and so the generated
+        jars/wars/ears will most likely work for you anyway.</p>
+                        <p>There are additional problems, see bugs <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17780">Bug
+        17780</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17871">Bug
+        17871</a> and <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18403">Bug
+        18403</a>.  All of them are supposed to be fixed with Ant
+        1.5.3 (and only 18403 should exist in 1.5.3beta1).</p>
+                    <p class="faq">
+      <a name="unknownelement.taskcontainer"></a>
+      
+        Why do my custom task containers see Unknown Elements in Ant 1.6
+        - they worked in Ant 1.5?
+      
+    </p>
+                  <p>
+          The objects added in TaskContainer.addTask(Task task)
+          have changed from  Tasks to UnknownElements.
+        </p>
+                        <p>
+          There was a number of valid reasons for this change. But the backward
+          compatibility problems were not noticed until after Ant 1.6.0 was
+          released.
+        </p>
+                        <p>
+          Your container class will need to be modified to check if the Task
+          is an UnknownElement and call perform on it to
+          convert it to a Task and to execute it.
+          (see apache.tools.ant.taskdefs.Sequential)
+        </p>
+                        <p>
+          If you want to do more processing on the task,
+          you need to use the techniques in apache.tools.ant.taskdefs.Antlib#execute()
+          This does make use of one 1.6 method call (UE#getRealObject()),
+          you need to use UE#getTask() instead - this will
+          return null for non tasks (types like fileset id=x).
+        </p>
+                        <p>
+          So.. iterate over the tasks, if they are UEs, convert them to
+          tasks, using UE#maybeConfigure and UE#getTask()
+        </p>
+                        <pre class="code">
+        for (Iterator i = tasks.iterator(); i.hasNext();) {
+           Task t = (Task) i.next();
+           if (t instanceof UnknownElement) {
+              ((UnknownElement) t).maybeConfigure();
+              t = ((UnknownElement) t).getTask();
+              if (t == null) {
+                  continue;
+              }
+           }
+           // .... original Custom code
+        }
+        </pre>
+                        <p>
+          This approach should work for ant1.5 and ant1.6.
+        </p>
+                    <p class="faq">
+      <a name="java.exception.stacktrace"></a>
+      
+        The program I run via &lt;java&gt; throws an exception but I
+        can't seem to get the full stack trace.
+      
+    </p>
+                  <p>This is a know bug that has been fixed after the release of
+        Ant 1.6.1.</p>
+                        <p>As a workaround, run your &lt;java&gt; task with
+        <code>fork="true"</code> and Ant will display the full
+        trace.</p>
+                    <p class="faq">
+      <a name="junit-no-runtime-xml"></a>
+      
+        Using format="xml", &lt;junit&gt; fails with a
+        <code>NoClassDefFoundError</code> if forked.
+      
+    </p>
+                  <p>The XML formatter needs the <a href="http://www.w3.org/DOM/">DOM classes</a> to work.  If you
+        are using JDK 1.4 or later they are included with your Java
+        Runtime and this problem won't occur.  If you are running JDK
+        1.3 or earlier, the DOM classes have to be on your
+        &lt;junit&gt; task's &lt;classpath&gt;.</p>
+                        <p>Prior to Ant 1.6.0 Ant would include the DOM classes from
+        the XML parser that is used by Ant itself if you set the
+        includeAntRuntime attribute to true (the default).  With Ant
+        1.6.0 this has been changed as this behavior made it
+        impossible to use a different XML parser in your tests.</p>
+                        <p>This means that you have to take care of the DOM classes
+        explicitly starting with Ant 1.6.0.  If you don't need to set
+        up a different XML parser for your tests, the easiest solution
+        is to add</p>
+                        <pre class="code">
+&lt;pathelement path=&quot;${ant.home}/lib/xml-apis.jar:${ant.home}/lib/xercesImpl.jar&quot;/&gt;
+</pre>
+                        <p>to your task's &lt;classpath&gt;.</p>
+                    <p class="faq">
+      <a name="xalan-jdk1.5"></a>
+      
+        <code>&lt;junitreport&gt;</code> doesn't work with JDK 1.5 but
+        worked fine with JDK 1.4.
+      
+    </p>
+                  <p>While JDK 1.4.x contains a version of Xalan-J 2, JDK 1.5
+        (and later?) have <a href="http://java.sun.com/j2se/1.5.0/compatibility.html#4959783">moved
+        to XSLTC</a>.  Since this task uses Xalan's redirect
+        extensions for its internal stylesheet, Ant prior to 1.6.2 didn't support
+        XSLTC.  This means that you have to install <a href="http://xml.apache.org/xalan-j/">Xalan-J 2</a> in order
+        to use this task with JDK 1.5 in older versions of Ant.</p>
+                        <p>Starting with Ant 1.6.2 <code>&lt;junitreport&gt;</code>
+        supports JDK 1.5.</p>
+                    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/index.html	(revision 14989)
@@ -0,0 +1,302 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Welcome</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Conor MacNeill">
+  <meta name="email" content="">
+        <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="stefan.bodewig@freenet.de">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                              <span class="sel">Welcome</span>
+                              </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Welcome</h1>
+            <h3 class="section">
+      <a name="Ant 1.7.0"></a>
+      Ant 1.7.0
+    </h3>
+                        <h3>December 19, 2006 - Ant 1.7.0 Available</h3>
+                                <p>Apache Ant 1.7.0 is now available for <a href="http://ant.apache.org/bindownload.cgi">download</a>.</p>
+                                <p>Ant 1.7 introduces a resource framework. Some of the core ant 
+    tasks such as &lt;copy/&gt; are now able to process not only file 
+    system resources but also zip entries, tar entries, paths, ... 
+    Resource collections group resources, and can be further 
+    combined with operators such as union and intersection. This 
+    can be extended by custom resources and custom tasks using resources.</p>
+                                <p>
+    Ant 1.7 starts outsourcing of optional tasks to Antlibs. 
+    The .NET antlib in preparation will replace the .NET optional tasks which ship in Ant.
+    Support for the version control system Subversion will be only provided as an antlib to
+    be released shortly. 
+    </p>
+                                <p>Ant 1.7 fixes also a large number of bugs.</p>
+                                <p>Ant 1.7 has some initial support for Java6 features.</p>
+                        <h3 class="section">
+      <a name=".NET Ant Library 1.0"></a>
+      .NET Ant Library 1.0
+    </h3>
+                        <h3>November 6, 2006 - Apache .NET Ant Library 1.0 Available</h3>
+                                <p>Apache .NET Ant Library 1.0 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains support for tools like NUnit as well
+    as the "old .NET tasks of Ant's core.  It has been tested
+    Microsoft's frameworks as well as Mono.</p>
+                                <p>For more information see the <a href="antlibs/dotnet/">Antlib's
+    home page</a></p>
+                        <h3 class="section">
+      <a name="AntUnit 1.0Beta2"></a>
+      AntUnit 1.0Beta2
+    </h3>
+                        <h3>October 29, 2006 - Apache AntUnit 1.0Beta2 Available</h3>
+                                <p>Apache AntUnit 1.0Beta1 is now available for <a href="http://ant.apache.org/antlibs/bindownload.cgi">download</a>.</p>
+                                <p>This Ant Library contains tasks to test Ant tasks using Ant
+    instead of JUnit.  For more information see the <a href="antlibs/antunit/">AntUnit home page</a>.</p>
+                        <h3 class="section">
+      <a name="Apache Ant"></a>
+      Apache Ant
+    </h3>
+                        <p>
+Apache Ant is a Java-based build tool. In theory, it is kind of like
+Make, but without Make's wrinkles.
+</p>
+                                <p>
+Why another build tool when there is already <em>make</em>, <em>gnumake</em>,
+<em>nmake</em>, <em>jam</em>, and
+others? Because all those tools have limitations that Ant's original author
+couldn't live with when developing software across multiple platforms. Make-like
+tools are inherently shell-based -- they evaluate a set of dependencies, then
+execute commands not unlike what you would issue in a shell. This means that you
+can easily extend these tools by using or writing any program for the OS that
+you are working on. However, this also means that you limit yourself to the OS,
+or at least the OS type such as Unix, that you are working on.
+</p>
+                                <p>
+Makefiles are inherently evil as well. Anybody who has worked on them for any
+time has run into the dreaded tab problem. "Is my command not executing
+because I have a space in front of my tab!!!" said the original author of
+Ant way too many times. Tools like Jam took care of this to a great degree, but
+still have yet another format to use and remember.
+</p>
+                                <p>
+Ant is different. Instead of a model where it is extended with shell-based
+commands, Ant is extended using Java classes. Instead of writing shell commands,
+the configuration files are XML-based, calling out a target tree where various
+tasks get executed. Each task is run by an object that implements a particular
+Task interface.
+</p>
+                                <p>
+Granted, this removes some of the expressive power that is inherent by being
+able to construct a shell command such as
+<code>`find . -name foo -exec rm {}`</code>, but it
+gives you the ability to be cross platform -- to work anywhere and everywhere.
+And hey, if you really need to execute a shell command, Ant has an
+<code>&lt;exec&gt;</code> task that
+allows different commands to be executed based on the OS that it is executing
+on.
+</p>
+                        <h3 class="section">
+      <a name="Documentation"></a>
+      Documentation
+    </h3>
+                        <p>
+You can view the documentation for the current release (Apache Ant 1.6.5)
+<a href="manual/index.html">online</a>
+</p>
+                                <p>
+Comprehensive documentation is included in the source and binary distributions.
+</p>
+                        <h3 class="section">
+      <a name="Get Involved"></a>
+      Get Involved
+    </h3>
+                        <ul>
+<li><a href="http://jakarta.apache.org/getinvolved/getinvolvedindex.html">Get Involved</a></li>
+<li><a href="mail.html">Join Mailing Lists</a></li>
+<li><a href="http://marc.theaimsgroup.com/?l=ant-dev&amp;r=1&amp;w=2">Search the Dev Mailing List</a>
+</li>
+<li><a href="http://marc.theaimsgroup.com/?l=ant-user&amp;r=1&amp;w=2">Search the User Mailing List</a>
+</li>
+</ul>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/legal.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/legal.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/legal.html	(revision 14989)
@@ -0,0 +1,210 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Legal</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Jon S. Stevens">
+  <meta name="email" content="jon@latchkey.com">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                              <span class="sel">Legal</span>
+                              </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Legal</h1>
+            <h3 class="section">
+      <a name="Legal Stuff They Make Us Say"></a>
+      Legal Stuff They Make Us Say
+    </h3>
+                        <p>All material on this website is Copyright © 1999-2004,
+      The Apache Software Foundation.</p>
+                                <p>Sun, Sun Microsystems, Solaris, Java, JavaServer Web
+      Development Kit, and JavaServer Pages are trademarks or
+      registered trademarks of Sun Microsystems, Inc. UNIX is a
+      registered trademark in the United States and other countries,
+      exclusively licensed through X/Open Company, Ltd.  Windows,
+      WindowsNT, and Win32 are registered trademarks of Microsoft
+      Corp. All other product names mentioned herein and throughout
+      the entire web site are trademarks of their respective
+      owners.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/license.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/license.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/license.html	(revision 14989)
@@ -0,0 +1,484 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - License</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="The Apache Software Foundation">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                              <span class="sel">License</span>
+                              </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">License</h1>
+            <h3 class="section">
+      <a name="The Apache Software License Version 2.0"></a>
+      The Apache Software License Version 2.0
+    </h3>
+                        <p>The Apache Software License Version 2.0 applies 
+    to all releases of Ant starting with ant 1.6.1</p>
+                                <pre class="code">/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      &quot;control&quot; means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      &quot;Source&quot; form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      &quot;Object&quot; form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      &quot;Work&quot; shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      &quot;Contribution&quot; shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
+ *
+ *      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same &quot;printed page&quot; as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+ *   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.
+ */
+    </pre>
+                                <p>You can download the original license file <a href="./LICENSE" target="_new">here.</a></p>
+                                <p>The License is accompanied by a NOTICE</p>
+                                <pre class="code">
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache Ant distribution.                      ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   This product includes also software developed by :
+     - the W3C consortium (http://www.w3c.org) ,
+     - the SAX project (http://www.saxproject.org)
+
+   Please read the different LICENSE files present in the root directory of
+   this distribution.
+
+   The names &quot;Ant&quot; and  &quot;Apache Software Foundation&quot;  must not be used to
+   endorse  or promote  products derived  from this  software without prior
+   written permission. For written permission, please contact
+   apache@apache.org.
+</pre>
+                        <h3 class="section">
+      <a name="The Apache Software License, Version 1.1"></a>
+      The Apache Software License, Version 1.1
+    </h3>
+                        <p> The Apache Software License, Version 1.1, applies to all versions of up to ant 1.6.0 included.</p>
+                                <pre class="code">/*
+ * ============================================================================
+ *                   The Apache Software License, Version 1.1
+ * ============================================================================
+ * 
+ *    Copyright (C) 2000-2003 The Apache Software Foundation. All
+ *    rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 
+ * 1. Redistributions of  source code must  retain the above copyright  notice,
+ *    this list of conditions and the following disclaimer.
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution, if any, must
+ *    include  the following  acknowledgment:  &quot;This product includes  software
+ *    developed  by the  Apache Software Foundation  (http://www.apache.org/).&quot;
+ *    Alternately, this  acknowledgment may  appear in the software itself,  if
+ *    and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names &quot;Ant&quot; and  &quot;Apache Software Foundation&quot;  must not be used to
+ *    endorse  or promote  products derived  from this  software without  prior
+ *    written permission. For written permission, please contact
+ *    apache@apache.org.
+ * 
+ * 5. Products  derived from this software may not  be called &quot;Apache&quot;, nor may
+ *    &quot;Apache&quot; appear  in their name,  without prior written permission  of the
+ *    Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ * APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ * ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ * (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ * This software  consists of voluntary contributions made  by many individuals
+ * on behalf of the  Apache Software Foundation.  For more  information  on the 
+ * Apache Software Foundation, please see &lt;http://www.apache.org/&gt;.
+ *
+ */
+</pre>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/mail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/mail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/mail.html	(revision 14989)
@@ -0,0 +1,282 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Mailing Lists</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                              <span class="sel">Mailing Lists</span>
+                              </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Mailing Lists</h1>
+            <h3 class="section">
+      <a name="Mailing Lists"></a>
+      Mailing Lists
+    </h3>
+                        <p>Please read the <a href="http://jakarta.apache.org/site/mail.html">guidelines of
+      the Jakarta Project</a> before subscribing and posting to any of
+      the lists below.  They apply to Ant's lists as well.</p>
+                                <p>The user and dev list are subscriber only lists, this means
+      you have to subscribe before you can post to the list.  Please
+      note that any HTML parts sent to the lists will be removed by our
+      mailing list software - you shouldn't be sending HTML mails
+      anyway.</p>
+                                <p>To subscribe to a mailinglist use the links below. In your first email you will get some
+      information about working with the list manager <a href="http://www.ezmlm.org/">EZMLM</a>.</p>
+                                      <h4 class="subsection">
+        <a name="User List"></a>
+        User List
+      </h4>
+                        <p>
+          <b>High Traffic</b>
+          <a href="mailto:user-subscribe@ant.apache.org">Subscribe</a>
+          <a href="mailto:user-unsubscribe@ant.apache.org">Unsubscribe</a>
+<!--
+          <a href="http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=user@ant.apache.org">Archive</a>
+-->
+          <a href="http://marc.theaimsgroup.com/?l=ant-user&amp;r=1&amp;w=2">Archive</a>
+        </p>
+                                <p>This list is for developers that are using Ant in their own
+        projects to ask questions, share knowledge, and discuss issues
+        related to using Ant as a build tool.</p>
+                                                          <h4 class="subsection">
+        <a name="Developer List"></a>
+        Developer List
+      </h4>
+                        <p>
+          <b>High Traffic</b>
+          <a href="mailto:dev-subscribe@ant.apache.org">Subscribe</a>
+          <a href="mailto:dev-unsubscribe@ant.apache.org">Unsubscribe</a>
+<!--
+          <a href="http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=dev@ant.apache.org">Archive</a>
+-->
+          <a href="http://marc.theaimsgroup.com/?l=ant-dev&amp;r=1&amp;w=2">Archive</a>
+        </p>
+                                <p>This is the list where participating developers of the Ant
+        build tool meet and discuss issues, code changes/additions,
+        etc. Subscribers to this list get notices of each and every
+        code change, build results, testing notices, etc.</p>
+                                                          <h4 class="subsection">
+        <a name="How to unsubscribe your old email address"></a>
+        How to unsubscribe your old email address
+      </h4>
+                        <p>
+        First, find out the particular email adress to which ezmlm is sending.
+        The email headers are visible in Microsoft Outlook via the messages menu
+        "View | Options".
+        <pre>
+        Microsoft Mail Internet Headers Version 2.0
+        ...
+        List-Unsubscribe: &lt;mailto:user-unsubscribe@ant.apache.org&gt;
+        List-Help: &lt;mailto:user-help@ant.apache.org&gt;
+        List-Post: &lt;mailto:user@ant.apache.org&gt;
+        List-Id: "Ant Users List" &lt;user.ant.apache.org&gt;
+        Reply-To: "Ant Users List" &lt;user@ant.apache.org&gt;
+        Delivered-To: mailing list user@ant.apache.org
+        ...
+        Return-Path: user-return-12345-<i>john=host.domain</i>@ant.apache.org
+        ...
+        </pre>
+        The <i>Return-Path</i> header contains the email address which is subscribed. 
+        </p>
+                                <p> To stop subscription for the address john@host.domain , send an email to <pre>dev-unsubscribe-john=host.domain@ant.apache.org</pre>
+          or to  <pre>user-unsubscribe-john=host.domain@ant.apache.org</pre>.
+        </p>
+                                            <h3 class="section">
+      <a name="Archives"></a>
+      Archives
+    </h3>
+                        <p>These lists are archived at</p>
+                                <ul>
+          <li><a href="http://mail-archives.apache.org/eyebrowse/ViewLists">List Index on mail-archives.apache.org</a></li>
+          <li><a href="http://ant.apache.org/mail/">Full mbox archives of all lists</a></li>
+          <li><a href="http://marc.theaimsgroup.com/">Mailing list Archives</a></li>
+          <li><a href="http://news.gmane.org/gmane.comp.jakarta.ant.devel/">Ant Developer List on gmane</a></li>
+          <li><a href="http://news.gmane.org/gmane.comp.jakarta.ant.user/">Ant User List on gmane</a></li>
+          <li><a href="http://www.nabble.com/Ant---Dev-f108.html">Ant Developer List on nabble</a></li>
+          <li><a href="http://www.nabble.com/Ant---Users-f107.html">Ant User List on nabble</a></li>
+        </ul>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CHANGES
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CHANGES	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CHANGES	(revision 14989)
@@ -0,0 +1,28 @@
+TO mod
+
+toc.html  make Ant Tasks link bold
+anttaskslist.html  make Core Takss link bold
+cover.html  front page 
+
+TO clean
+regexs
+<font[^>]+>  	:replace with nowt
+</font>  		:replace with nowt
+ bgcolor[^>]+  	:replace with nowt
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/CoreTasks/makeurl.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/CoreTasks/subant.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/CoreTasks/tempfile.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/CoreTasks/whichresource.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/sysclasspath.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/base_task_classes.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/tutorial-writing-tasks.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/tutorial-HelloWorldWithAnt.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/credits.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/install.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/OptionalTasks/setproxy.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/OptionalTasks/serverdeploy.html
+file:///home/teknopaul/workspace/apache-ant-1.7.0/docs/manual/OptionalTasks/ejb.html
+
+to change <body up to next > needs blanking
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/ant.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/ant.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/ant.html	(revision 14989)
@@ -0,0 +1,297 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Ant Task</title>
+</head>
+
+<body>
+
+<h2><a name="ant">Ant</a></h2>
+<h3>Description</h3>
+
+<p>Runs Ant on a supplied buildfile. This can be used to build
+subprojects.  <strong>This task must not be used outside of a
+<code>target</code> if it invokes the same build file it is part
+of.</strong></p>
+
+<p>When the <i>antfile</i> attribute is omitted, the file &quot;build.xml&quot;
+in the supplied directory (<i>dir</i> attribute) is used.</p>
+<p>If no target attribute is supplied, the default target of the new project is
+used.</p>
+<p>By default, all of the properties of the current project will be
+available in the new project.  Alternatively, you can set the
+<i>inheritAll</i> attribute to <code>false</code> and only
+&quot;user&quot; properties (i.e., those passed on the command-line)
+will be passed to the new project.  In either case, the set of
+properties passed to the new project will override the properties that
+are set in the new project (See also the <a
+href="property.html">property task</a>).</p>
+
+<p>You can also set properties in the new project from the old project
+by using nested property tags. These properties are always passed
+to the new project and any project created in that project
+regardless of the setting of <i>inheritAll</i>.  This allows you to
+parameterize your subprojects.  Properties defined on the command line
+cannot be overridden by nested <code>&lt;property&gt;</code> elements.</p>
+
+<p>References to data types can also be passed to the new project, but
+by default they are not.  If you set the inheritrefs attribute to
+true, all references will be copied, but they will not override
+references defined in the new project.</p>
+
+<p>Nested <a href="#reference"><i><code>&lt;reference&gt;</code></i></a> elements
+can also be used to copy references from the calling project to the
+new project, optionally under a different id.  References taken from
+nested elements will override existing references that have been
+defined outside of targets in the new project - but not those defined
+inside of targets.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">antfile</td>
+    <td valign="top">the buildfile to use. Defaults to
+      &quot;build.xml&quot;.  This file is expected to be a filename
+      relative to the dir attribute given.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+         <td valign="top">the directory to use as a basedir for the new Ant project.
+      Defaults to the current project's basedir, unless
+      inheritall has been set to false, in which case it doesn't
+      have a default value.  This will override the basedir
+      setting of the called project.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">the target of the new Ant project that should be executed.
+      Defaults to the new project's default target.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Filename to write the ant output to.  This is
+    relative to the value of the dir attribute if it has been set or
+    to the base directory of the current project otherwise.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritAll</td>
+    <td valign="top">If <code>true</code>, pass all properties to the
+      new Ant project.  Defaults to <code>true</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritRefs</td>
+    <td valign="top">If <code>true</code>, pass all references to the
+      new Ant project.  Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>property</h4>
+<p>See the description of the <a href="property.html">property
+task</a>. <br>
+These properties become equivalent to properties you define on
+the command line. These are special properties and they will always get passed
+down, even through additional <code>&lt;*ant*&gt;</code> tasks with inheritall set to
+false (see above). <br>
+Note that the <code>refid</code> attribute points to a
+reference in the calling project, not in the new one.</p>
+
+<h4><a name="reference">reference</a></h4>
+<p>Used to choose references that shall be copied into the new project,
+optionally changing their id.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">The id of the reference in the calling project.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">torefid</td>
+    <td valign="top">The id of the reference in the new project.</td>
+    <td valign="top" align="center">No, defaults to the value of refid.</td>
+  </tr>
+</table>
+
+<h4>propertyset</h4>
+
+<p>You can specify a set of properties to be copied into the new
+project with <a
+href="../CoreTypes/propertyset.html">propertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>target</h4>
+
+<p>You can specify multiple targets using nested <code>&lt;target&gt;</code> elements
+instead of using the target attribute.  These will be executed as if
+Ant had been invoked with a single target whose dependencies are the
+targets so specified, in the order specified.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the called target.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<p><em>since Ant 1.6.3</em>.</p>
+
+<h3>Basedir of the new project</h3>
+
+<p>The basedir value of the new project is affected by the two
+attributes dir and inheritall, see the following table for
+details:</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>dir attribute</b></td>
+    <td valign="top"><b>inheritAll attribute</b></td>
+    <td valign="top"><b>new project's basedir</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value provided</td>
+    <td valign="top">true</td>
+    <td valign="top">value of dir attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">value provided</td>
+    <td valign="top">false</td>
+    <td valign="top">value of dir attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">omitted</td>
+    <td valign="top">true</td>
+    <td valign="top">basedir of calling project (the one whose build
+        file contains the <code>&lt;ant&gt;</code> task).</td>
+  </tr>
+  <tr>
+    <td valign="top">omitted</td>
+    <td valign="top">false</td>
+    <td valign="top">basedir attribute of the <code>&lt;project&gt;</code> element
+        of the new project</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;ant antfile=&quot;subproject/subbuild.xml&quot; target=&quot;compile&quot;/&gt;
+
+&lt;ant dir=&quot;subproject&quot;/&gt;
+
+&lt;ant antfile=&quot;subproject/property_based_subbuild.xml&quot;&gt;
+  &lt;property name=&quot;param1&quot; value=&quot;version 1.x&quot;/&gt;
+  &lt;property file=&quot;config/subproject/default.properties&quot;/&gt;
+&lt;/ant&gt;
+
+&lt;ant inheritAll=&quot;false&quot; antfile=&quot;subproject/subbuild.xml&quot;&gt;
+  &lt;property name=&quot;output.type&quot; value=&quot;html&quot;/&gt;
+&lt;/ant&gt;
+</pre></blockquote>
+
+<p>These lines invoke the same build file:</p>
+<blockquote><pre>
+&lt;ant antfile=&quot;sub1/sub2/build.xml&quot; /&gt;
+&lt;ant antfile=&quot;sub2/build.xml&quot; dir=&quot;sub1&quot; /&gt;
+&lt;ant antfile=&quot;build.xml&quot; dir=&quot;sub1/sub2&quot; /&gt;
+</pre></blockquote>
+
+<p>The build file of the calling project defines some
+<code>&lt;path&gt;</code> elements like this:</p>
+
+<blockquote><pre>
+&lt;path id="path1"&gt;
+    ...
+&lt;/path&gt;
+&lt;path id="path2"&gt;
+    ...
+&lt;/path&gt;
+</pre></blockquote>
+
+<p>and the called build file (<code>subbuild.xml</code>) also defines
+a <code>&lt;path&gt;</code> with the id <code>path1</code>, but
+<code>path2</code> is not defined:</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;true&quot;/&gt;
+</pre></blockquote>
+
+<p>will not override <code>subbuild</code>'s definition of
+<code>path1</code>, but make the parent's definition of
+<code>path2</code> available in the subbuild.</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot;/&gt;
+</pre></blockquote>
+
+<p>as well as</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;/&gt;
+</pre></blockquote>
+
+<p>will neither override <code>path1</code> nor copy
+<code>path2</code>.</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;&gt;
+  &lt;reference refid=&quot;path1&quot;/&gt;
+&lt;/ant&gt;
+</pre></blockquote>
+
+<p>will override <code>subbuild</code>'s definition of
+<code>path1</code>.</p>
+
+<blockquote><pre>
+&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;&gt;
+  &lt;reference refid=&quot;path1&quot; torefid=&quot;path2&quot;/&gt;
+&lt;/ant&gt;
+</pre></blockquote>
+
+<p>will copy the parent's definition of <code>path1</code> into the
+new project using the id <code>path2</code>.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/antcall.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/antcall.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/antcall.html	(revision 14989)
@@ -0,0 +1,191 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>AntCall Task</title>
+</head>
+
+<body>
+
+<h2><a name="antcall">AntCall</a></h2>
+<h3>Description</h3>
+
+<p>Call another target within the same buildfile optionally
+specifying some properties (params in this context).  <strong>This
+task must not be used outside of a <code>target</code>.</strong></p>
+
+<p>By default, all of the properties of the current project will be
+available in the new project.   Alternatively, you can
+set the <i>inheritAll</i> attribute to <code>false</code> and only
+&quot;user&quot; properties (i.e., those passed on the command-line)
+will be passed to the new project.  In either case, the set of
+properties passed to the new project will override the properties that
+are set in the new project (See also the <a href="property.html">property task</a>).</p>
+<p>You can also set properties in the new project from the old project
+by using nested param tags. These properties are always passed
+to the new project and any project created in that project
+regardless of the setting of <i>inheritAll</i>.  This allows you to
+parameterize your subprojects.  Properties defined on the command line
+can not be overridden by nested <code>&lt;param&gt;</code> elements.</p>
+
+<p>Nested <a href="#reference"><i><code>&lt;reference&gt</code>;</i></a> elements can
+be used to copy references from the calling project to the new
+project, optionally under a different id.  References taken from
+nested elements will override existing references that have been
+defined outside of targets in the new project - but not those defined
+inside of targets.</p>
+
+<p>
+When a target is invoked by antcall, all of its dependent targets will
+also be called within the context of any new parameters. For example. if
+the target &quot;doSomethingElse&quot; depended on the target &quot;init&quot;, then the
+<i>antcall</i> of &quot;doSomethingElse&quot; will call &quot;init&quot; during the call.
+Of course, any properties defined in the antcall task or inherited from the calling target
+will be fixed and not overridable in the init task--or indeed in the &quot;doSomethingElse&quot; task.
+</p>
+
+<p>If the build file changes after you've started the build, the
+behavior of this task is undefined.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The target to execute.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritAll</td>
+    <td valign="top">If <code>true</code>, pass all properties to the new Ant
+    project.  Defaults to <code>true</code>.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inheritRefs</td>
+    <td valign="top">If <code>true</code>, pass all references to the
+      new Ant project.  Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Note on <code>inheritRefs</code></h3>
+
+<p><code>&lt;antcall&gt;</code> will not override existing references,
+even if you set <code>inheritRefs</code> to true.  As the called build
+files is the same build file as the calling one, this means it will
+not override any reference set via an <code>id</code> attribute at
+all.  The only references that can be inherited by the child project
+are those defined by nested <code>&lt;reference&gt;</code> elements or
+references defined by tasks directly (not using the <code>id</code>
+attribute).</p>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>param</h4>
+<p>Specifies the properties to set before running the specified target. See <a
+href="property.html">property</a> for usage guidelines.<br>
+These properties become equivalent to properties you define on
+the command line. These are special properties and they will always get passed
+down, even through additional <code>&lt;*ant*&gt;</code> tasks with inheritall set to
+false (see above).
+</p>
+
+<h4><a name="reference">reference</a></h4>
+<p>Used to choose references that shall be copied into the new project,
+optionally changing their id.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">The id of the reference in the calling project.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">torefid</td>
+    <td valign="top">The id of the reference in the new project.</td>
+    <td valign="top" align="center">No, defaults to the value of refid.</td>
+  </tr>
+</table>
+
+<h4>propertyset</h4>
+
+<p>You can specify a set of properties to be copied into the new
+project with <a
+href="../CoreTypes/propertyset.html">propertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>target</h4>
+
+<p>You can specify multiple targets using nested <code>&lt;target&gt;</code> elements
+instead of using the target attribute.  These will be executed as if
+Ant had been invoked with a single target whose dependencies are the
+targets so specified, in the order specified.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the called target.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<p><em>since Ant 1.6.3</em>.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;target name=&quot;default&quot;&gt;
+  &lt;antcall target=&quot;doSomethingElse&quot;&gt;
+    &lt;param name=&quot;param1&quot; value=&quot;value&quot;/&gt;
+  &lt;/antcall&gt;
+&lt;/target&gt;
+
+&lt;target name=&quot;doSomethingElse&quot;&gt;
+  &lt;echo message=&quot;param1=${param1}&quot;/&gt;
+&lt;/target&gt;
+</pre></blockquote>
+<p>Will run the target 'doSomethingElse' and echo 'param1=value'.</p>
+
+<blockquote><pre>
+&lt;antcall ... &gt;
+  &lt;reference refid=&quot;path1&quot; torefid=&quot;path2&quot;/&gt;
+&lt;/antcall&gt;
+</pre></blockquote>
+
+<p>will copy the parent's definition of <code>path1</code> into the
+new project using the id <code>path2</code>.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/antstructure.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/antstructure.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/antstructure.html	(revision 14989)
@@ -0,0 +1,100 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>AntStructure Task</title>
+</head>
+
+<body>
+
+<h2><a name="antstructure">AntStructure</a></h2>
+<h3>Description</h3> 
+
+<p>Generates an DTD for Ant buildfiles which contains information
+about all tasks currently known to Ant.</p>
+
+<p>Actually the DTD will not be a real DTD for buildfiles since Ant's
+usage of XML cannot be captured with a DTD.  Several elements in Ant
+can have different attribute lists depending on the element that
+contains them.  &quot;fail&quot; for example can be <a
+href="fail.html">the task</a> or the nested child element of the <a
+href="../OptionalTasks/sound.html">sound</a> task.  Don't consider the
+generated DTD something to rely upon.</p>
+
+<p>Also note that the DTD generated by this task is incomplete, you can
+always add XML entities using <a
+href="taskdef.html"><code>&lt;taskdef&gt;</code></a> or <a
+href="typedef.html"><code>&lt;typedef&gt;</code></a>. See <a
+href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html"
+target="_top">here</a> for a way to get around this problem.</p>
+<p>This task doesn't know about required attributes, all will be
+listed as <code>#IMPLIED</code>.</p>
+
+<p><em>Since Ant 1.7</em> custom structure printers can be used
+instead of the one that emits a DTD.  In order to plug in your own
+structure, you have to implement the interface
+<code>org.apache.tools.ant.taskdefs.AntStructure.StructurePrinter</code>
+and <code>&lt;typedef&gt; your class and use the new type as a nested
+element of this task - see the example below.</code>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">file to write the DTD to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;antstructure output=&quot;project.dtd&quot; /&gt;
+</pre></blockquote>
+
+<p><b>Emitting your own structure instead of a DTD</b></p>
+
+<p>First you need to implement the interface</p>
+
+<pre>
+package org.example;
+import org.apache.tools.ant.taskdefs.AntStructure;
+public class MyPrinter implements AntStructure.StructurePrinter {
+    ...
+}
+</pre>
+
+<p>and then use it via typedef</p>
+
+<pre>
+  &lt;typedef name="myprinter" classname="org.example.MyPrinter" /&gt;
+  &lt;antstructure output="project.my"&gt;
+    &lt;myprinter /&gt;
+  &lt;/antstructure&gt;
+</pre>
+
+<p>Your own StructurePrinter can accept attributes and nested elements
+just like any other Ant type or task.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/apply.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/apply.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/apply.html	(revision 14989)
@@ -0,0 +1,450 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Apply Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="apply">Apply/<i>ExecOn</i></a></h2>
+<p><i>The name <code>execon</code> is deprecated and only kept for backwards
+compatibility.</i></p>
+<h3>Description</h3>
+<p>Executes a system command. When the <i>os</i> attribute is specified, then
+the command is only executed when Ant is run on one of the specified operating
+systems.</p>
+
+<p>The files and/or directories of a number of <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+&ndash; including but not restricted to
+ <a href="../CoreTypes/fileset.html">FileSet</a>s,
+ <a href="../CoreTypes/dirset.html">DirSet</a>s
+ (<em>since&nbsp;Ant&nbsp;1.6</em>) or
+ <a href="../CoreTypes/filelist.html">FileList</a>s
+ (<em>since&nbsp;Ant&nbsp;1.6</em>)
+&ndash;
+ are passed as arguments to the system command.</p>
+<p>If you specify a nested <a href="../CoreTypes/mapper.html">mapper</a>,
+the timestamp of each source file is compared to the timestamp of a
+target file which is defined by the nested mapper element and searched
+for in the given <i>dest</i>, if specified.</p>
+<p>At least one fileset or filelist is required,
+and you must not specify more than one mapper.</p>
+
+<p>Note that you cannot interact with the forked program, the only way
+to send input to it is via the input and inputstring attributes.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">the command to execute without any command line
+      arguments.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the directory where the command is expected to place
+    target files when it is executed. This attribute is valid only when used
+    in conjunction with a nested mapper; if omitted, the target filenames
+    returned by the mapper will be interpreted as absolute paths.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">spawn</td>
+    <td valign="top">whether or not you want the commands to be spawned.<br>
+    If you spawn a command, its output will not be logged by ant.<br>
+    The input, output, error, and result property settings are not active when spawning a process.<br>
+    <em>since&nbsp;Ant&nbsp;1.6</em>
+    </td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory in which the command should be executed.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">relative</td>
+    <td valign="top">whether the filenames should be passed on the
+      command line as relative pathnames (relative to the base directory
+      of the corresponding fileset/list for source files or the
+      <i>dest</i> attribute for target files).</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">forwardslash</td>
+    <td valign="top">whether the file names should be passed
+      with forward slashes even if the operating system requires other
+      file separator. The option is ignored if the system file separator
+      is a forward slash.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">os</td>
+    <td valign="top">list of Operating Systems on which the command may be
+      executed.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">osfamily</td>
+    <td valign="top">OS family as used in the &lt;os&gt; condition.
+    <em>since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">the file to which the output of the command
+    should be redirected.  If the error stream is not also redirected
+    to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the
+    command should be redirected.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error
+    output in Ant's log and you are redirecting output to a
+    file/property. The error output will not be included in the output
+    file/property. If you redirect error with the &quot;error&quot; or
+    &quot;errorProperty&quot; attributes, this will have no effect.
+    <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">whether output should be appended to or overwrite
+      an existing file.  If you set parallel to false, you will probably
+      want to set this one to true.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">the name of a property in which the output of the
+    command should be stored.  Unless the error stream is redirected
+    to a separate file or stream, this property will include the error
+    output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the
+      command should be stored.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard
+    input is taken. This attribute is mutually exclusive with the
+    inputstring attribute.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+    executed command. This attribute is mutually exclusive with the
+    input attribute.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resultproperty</td>
+    <td valign="top">the name of a property in which the return code
+      of the command should be stored. Only of interest if
+      failonerror=false. If you set parallel to false, only the result
+      of the first execution will be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+      specified time (given in milliseconds).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failifexecutionfails</td>
+    <td valign="top">Stop the build if we can't start the program.
+      Defaults to true. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">skipemptyfilesets</td>
+    <td valign="top">Don't run the command, if no source files have
+      been found or are newer than their corresponding target
+      files.  Despite its name, this attribute applies to filelists as
+      well.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">Run the command only once, appending all files as
+      arguments. If false, command will be executed once for every file.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the names of plain
+      files will be sent to the command. If set to <i>dir</i>, only
+      the names of directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate old environment when new environment
+      variables are specified.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">vmlauncher</td>
+    <td valign="top">Run command using the Java VM's execution facilities
+        where available. If set to false the underlying OS's shell,
+        either directly or through the antRun scripts, will be used.
+        Under some operating systems, this gives access to facilities
+        not normally available through the VM including, under Windows,
+        being able to execute scripts, rather than their associated
+        interpreter.  If you want to specify the name of the
+        executable as a relative path to the directory given by the
+        dir attribute, it may become necessary to set vmlauncher to
+        false as well.</td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">resolveExecutable</td>
+    <td valign="top">When this attribute is true, the name of the
+    executable if resolved firstly against the project basedir and if
+    that does not exist, against the execution directory if
+    specified. On Unix systems, if you only want to allow execution of
+    commands in the user's path, set this to false.
+    <em>since&nbsp;Ant&nbsp;1.6</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited. <em>Since&nbsp;Ant&nbsp;1.6.</em></td>
+    <td align="center" valign="top">No, unlimited by default</td>
+  </tr>
+  <tr>
+    <td valign="top">addsourcefile</td>
+    <td valign="top">Whether source file names should be added to the
+      command automatically. <em>Since&nbsp;Ant&nbsp;1.6.</em></td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      <em>Since&nbsp;Ant&nbsp;1.6.</em></td>
+    <td align="center" valign="top">No, default <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">ignoremissing</td>
+    <td valign="top">Whether to ignore nonexistent files specified
+      via filelists.  <em>Since&nbsp;Ant&nbsp;1.6.2.</em></td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">Whether to bypass timestamp comparisons
+      for target files.  <em>Since&nbsp;Ant&nbsp;1.6.3.</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+<p>You can use any number of nested <code>&lt;fileset&gt;</code>
+elements to define the files for this task and refer to
+<code>&lt;fileset&gt;</code>s defined elsewhere.</p>
+<h4>filelist</h4>
+<p><em>Since&nbsp;Ant&nbsp;1.6</em></p>
+<p>You can use any number of nested <code>&lt;filelist&gt;</code>
+elements to define the files for this task and refer to
+<code>&lt;filelist&gt;</code>s defined elsewhere.</p>
+<h4>dirset</h4>
+<p><em>Since&nbsp;Ant&nbsp;1.6</em></p>
+<p>You can use any number of nested <code>&lt;dirset&gt;</code>
+elements to define the directories for this task and refer to
+<code>&lt;dirset&gt;</code>s defined elsewhere.</p>
+
+<h4>Any other <a href="../CoreTypes/resources.html#collection">Resource
+Collection</a></h4>
+<p><em>since Ant 1.7</em></p>
+<p>You can use any number of nested resource collections.</p>
+
+<h4>mapper</h4>
+<p>A single <code>&lt;mapper&gt;</code> specifies the target files relative
+to the <code>dest</code> attribute for dependency checking. If the
+<code>dest</code> attribute is specified it will be used as a base directory
+for resolving relative pathnames returned by the mapper. At least one
+<code>&lt;fileset&gt;</code> or <code>&lt;filelist&gt;</code> is required.</p>
+<h4>arg</h4>
+<p>Command line arguments should be specified as nested
+<code>&lt;arg&gt;</code> elements. See <a
+href="../using.html#arg">Command line arguments</a>.</p>
+<h4>srcfile</h4>
+<p>By default the file names of the source files will be added to the
+end of the command line (unless you set addsourcefile to
+<code>false</code>). If you need to place it somewhere different,
+use a nested <code>&lt;srcfile&gt;</code> element between your
+<code>&lt;arg&gt;</code> elements to mark the insertion point.</p>
+<h4>targetfile</h4>
+<p><code>&lt;targetfile&gt;</code> is similar to
+<code>&lt;srcfile&gt;</code> and marks the position of the target
+filename on the command line. If omitted, the target filenames will
+not be added to the command line at all. This element can only be
+specified if you also define a nested mapper.</p>
+<h4>env</h4>
+<p>It is possible to specify environment variables to pass to the
+system command via nested <code>&lt;env&gt;</code> elements. See the
+description in the section about <a href="exec.html#env">exec</a></p>
+<h4>redirector</h4>
+<i><b>Since&nbsp;Ant&nbsp;1.6.2</b></i>
+<p>A nested <a href="../CoreTypes/redirector.html">I/O Redirector</a>
+can be specified.  &lt;apply&gt;'s behavior is like that of
+<a href="exec.html#redirector">exec</a> with regard to
+redirectors, with the exception that, in non-<i>parallel</i> mode,
+file mapping will take place with each iteration.  This grants the
+user the capacity to receive input from, and send output to, different
+files for each sourcefile.
+</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;apply executable=&quot;ls&quot;&gt;
+  &lt;arg value=&quot;-l&quot;/&gt;
+  &lt;fileset dir=&quot;/tmp&quot;&gt;
+    &lt;patternset&gt;
+      &lt;exclude name=&quot;**/*.txt&quot;/&gt;
+    &lt;/patternset&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.files&quot;/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+<p>invokes <code>ls -l</code>, adding the absolute filenames of all
+files below <code>/tmp</code> not ending in <code>.txt</code> and all
+files of the FileSet with <code>id</code> <code>other.files</code> to
+the command line.</p>
+<blockquote><pre>
+&lt;apply executable=&quot;somecommand&quot; parallel=&quot;false&quot;&gt;
+  &lt;arg value=&quot;arg1&quot;/&gt;
+  &lt;srcfile/&gt;
+  &lt;arg value=&quot;arg2&quot;/&gt;
+  &lt;fileset dir=&quot;/tmp&quot;/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+<p>invokes <code>somecommand arg1 SOURCEFILENAME arg2</code> for each
+file in <code>/tmp</code> replacing SOURCEFILENAME with the absolute
+filename of each file in turn. If <code>parallel</code> had been set
+to true, SOURCEFILENAME would be replaced with the absolute filenames
+of all files separated by spaces.</p>
+<blockquote><pre>
+&lt;apply executable=&quot;cc&quot; dest=&quot;src/C&quot; parallel=&quot;false&quot;&gt;
+  &lt;arg value=&quot;-c&quot;/&gt;
+  &lt;arg value=&quot;-o&quot;/&gt;
+  &lt;targetfile/&gt;
+  &lt;srcfile/&gt;
+  &lt;fileset dir=&quot;src/C&quot; includes=&quot;*.c&quot;/&gt;
+  &lt;mapper type=&quot;glob&quot; from=&quot;*.c&quot; to=&quot;*.o&quot;/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+<p>invokes <code>cc -c -o TARGETFILE SOURCEFILE</code> for each
+<code>.c</code> file that is newer than the corresponding
+<code>.o</code>, replacing TARGETFILE with the absolute filename of
+the <code>.o</code> and SOURCEFILE with the absolute name of the
+<code>.c</code> file.</p>
+<blockquote><pre>
+&lt;mapper id=&quot;out&quot; type=&quot;glob&quot;
+           from=&quot;src${file.separator}*.file&quot;
+           to=&quot;dest${file.separator}*.out&quot;/&gt;
+
+&lt;apply executable=&quot;processfile&quot; dest=&quot;dest&quot;&gt;
+  &lt;fileset dir=&quot;src&quot; includes=&quot;*.file&quot;/&gt;
+  &lt;mapper refid=&quot;out&quot;/&gt;
+  &lt;redirector&gt;
+    &lt;outputmapper refid=&quot;out&quot;/&gt;
+  &lt;/redirector&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+Applies the fictitious &quot;processfile&quot; executable to all
+files matching <code>*.file</code> in the <code>src</code> directory.
+The <code>out</code> <code>&lt;mapper&gt;</code> has been set up to map
+<code>*.file</code> to <code>*.out</code>, then this <code>&lt;mapper&gt;</code>
+is used to specify <code>targetfile</code>s for this &lt;apply&gt;
+task.  A reference to <code>out</code> is then used as an
+<code>&lt;outputmapper&gt;</code> nested in a <code>&lt;redirector&gt;</code>, which in turn is
+nested beneath this <code>&lt;apply&gt;</code> instance.  This allows us to perform
+dependency checking against output files--the target files in this case.
+<blockquote><pre>
+&lt;apply executable="ls" parallel="true"
+       force="true" dest="${basedir}" append="true" type="both"&gt;
+  &lt;path&gt;
+    &lt;pathelement path="${env.PATH}"/&gt;
+  &lt;/path&gt;
+  &lt;identitymapper/&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+Applies the "ls" executable to all directories in the PATH, effectively
+listing all executables that are available on the PATH.
+
+<blockquote><pre>
+&lt;apply executable="jsmin" addsourcefile="false"&gt;
+    &lt;!-- Collect the JS-files --&gt;
+    &lt;fileset dir="src" includes="*.js"/&gt;
+    &lt;redirector&gt;
+        &lt;!-- redirect STDIN; fileset collects relative to its dir, but we need --&gt;
+        &lt;!-- relative to basedir --&gt;
+        &lt;inputmapper type="glob" from="*" to="src/*"/&gt;
+        &lt;!-- redirect STDOUT to file in dest-dir --&gt;
+        &lt;outputmapper id="out" type="glob" from="*.js" to="dest/*.js"/&gt;
+    &lt;/redirector&gt;
+&lt;/apply&gt;
+</pre></blockquote>
+Conversion of the command <code>jsmin &lt; src/a.js &gt; dest/a.js</code> but for
+all files in the src-directory. Because the filename itself should not be passed
+to the <code>jsmin</code> program, the <code>addsourcefile</code> is set to
+<code>false</code>.
+
+
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/apt.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/apt.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/apt.html	(revision 14989)
@@ -0,0 +1,183 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html lang="en-us"><head>
+<meta http-equiv="Content-Language" content="en-us"><link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Apt Task</title></head>
+
+<body>
+
+<h2><a name="Apt">Apt</a></h2>
+<h3>Description</h3>
+<p>Runs the annotation processor tool (apt), and then optionally compiles
+   the original code, and any generated source code. This task requires Java 1.5.
+   It may work on later versions, but this cannot be confirmed until those
+   versions ship. Be advised that the Apt tool does appear to be an unstable
+   part of the JDK framework, so may change radically in future versions. 
+   In particular it is likely to be obsolete in JDK 6, which can run annotation
+   processors as part of javac.
+   If the &lt;apt&gt; task does break when upgrading JVM, please
+   check to see if there is a more recent version of Ant that tracks
+   any changes.</p>
+
+
+<p>This task inherits from the <a href="javac.html">Javac Task</a>, and thus
+   supports nearly all of the same attributes, and subelements.  
+   There is one special case, the <tt>fork</tt> attribute, which is present
+   but which can only be set to <tt>true</tt>. That is, apt only works as
+   a forked process.
+ </p>
+ <p>
+   In addition, it supports
+   the following addition items:</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody><tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">compile</td>
+    <td valign="top">After running the Apt, should the code be compiled.  (see the
+                     <code>-nocompile</code> flag on the Apt executable)</td>
+    <td align="center" valign="top">No, defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">factory</td>
+    <td valign="top">The fully qualified classname of the AnnotationProcessFactory to be used
+                     to construct annotation processors.  This represents the <code>-factory</code>
+                     command line flag of the Apt executable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">factorypathref</td>
+    <td valign="top">The reference id of the path used to find the classes needed by the
+                     AnnotationProcessorFactory (and the location of the factory itself).
+                     This represents the <code>-factorypath</code> flag on the Apt executable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">preprocessdir</td>
+    <td valign="top">The directory used for preprocessing.  This is the directory where the
+                     generated source code will be place.  This represents the <code>-s</code> flag on
+                     the Apt executable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</tbody></table>
+
+<h3>Parameters specified as nested elements</h3>
+
+
+<h4>factorypath</h4>
+
+<p>You can specify the path used to find the classes needed by the AnnotationProcessorFactory
+   at runtime, using this element.  It is represents as a generic path like structure.  This
+   represents the <code>-factorypath</code> flag on the Apt executable.</p>
+
+
+<h4>option</h4>
+
+<p>Used to represent a generic option to pass to Apt.  This represents the <code>-A</code> flag on the
+   Apt executable.  You can specify zero or more <code>&lt;option&gt;</code> elements.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tbody><tr>
+  <td valign="top" width="12%"><b>Attribute</b></td>
+  <td valign="top" width="78%"><b>Description</b></td>
+  <td valign="top" width="10%"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td align="center">The name of the option</td>
+    <td align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center">The value to set the option to</td>
+    <td align="center">Yes.</td>
+  </tr>
+</tbody></table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;apt srcdir="${src}"
+     destdir="${build}"
+     classpath="xyz.jar"
+     debug="on"
+     compile="true"
+     factory="com.mycom.MyAnnotationProcessorFactory"
+     factorypathref="my.factorypath.id"
+     preprocessdir="${preprocess.dir}"&gt;
+&lt;/apt&gt;
+</pre></blockquote>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores
+the <code>.class</code> files in the <code>${build}</code> directory.
+The classpath used includes <code>xyz.jar</code>, and compiling with
+debug information is on.  It also forces the generated source code to
+be compiled.  The generated source code will be placed in
+<code>${preprocess.dir}</code> directory, using the class
+<code>com.mycom.MyAnnotationProcessorFactory</code> to supply
+AnnotationProcessor instances.</p>
+
+
+<h3>Notes</h3>
+
+<p>
+The inherited "fork" attribute is set to true by default; please do not change it.
+</p>
+
+<p>
+The inherited "compiler" attribute is ignored, as it is forced to use the Apt compiler
+</p>
+
+<p>Using the Apt compiler with the "compile" option set to "true"
+   forces you to use Sun's Apt compiler, which will use the JDK's Javac compiler.
+   If you wish to use another compiler, you will first need run the Apt processor
+   with the "compile" flag set to "false", and then use a
+   <code>&lt;javac&gt;</code> task to compile first your original source code, and then the
+   generated source code:</p>
+
+<blockquote><pre>
+&lt;apt srcdir="${src}"
+     destdir="${build}"
+     classpath="xyz.jar"
+     debug="true"
+     compile="false"
+     factory="com.mycom.MyAnnotationProcessorFactory"
+     factorypathref="my.factorypath.id"
+     preprocessdir="${preprocess.dir}"&gt;
+&lt;/apt&gt;
+
+&lt;javac srcdir="${src}"
+       destdir="${build}"
+       classpath="xyz.jar"
+       debug="on"/&gt;
+
+&lt;javac srcdir="${preprocess.dir}"
+       destdir="${build}"
+       classpath="xyz.jar"
+       debug="true"/&gt;
+</pre></blockquote>
+
+This may involve more build file coding, but the speedup gained from switching
+to jikes may justify the effort.
+<p>
+</p>
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/available.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/available.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/available.html	(revision 14989)
@@ -0,0 +1,160 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Available Task</title>
+</head>
+
+<body>
+
+<h2><a name="available">Available</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a resource is available at runtime. This resource can be a
+file, a directory, a class in the classpath, or a JVM system resource.</p>
+<p>If the resource is present, the property value is set to true by
+default; otherwise, the property is not set. You can set the value to
+something other than the default by specifying the <code>value</code> attribute.</p>
+<p>Normally, this task is used to set properties that are useful to avoid target
+execution depending on system parameters.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to set the property to. Defaults to &quot;true&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">The class to look for in the classpath.</td>
+    <td valign="middle" align="center" rowspan="3">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to look for.</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">The resource to look for in the JVM.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use when looking up <code>classname</code> or <code>resource</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filepath</td>
+    <td valign="top">The path to use when looking up <code>file</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">The type of <code>file</code> to look for, either a directory (<code>type=&quot;dir&quot;</code>) or a file
+      (<code>type=&quot;file&quot;</code>). If not set, the property will be set if the name specified in the <code>file</code>
+      attribute exists as either a file or a directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoresystemclasses</td>
+    <td valign="top">Ignore Ant's runtime classes, using only the specified
+      classpath.  Only affects the "classname" attribute.  Defaults to &quot;false&quot;</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">searchparents</td>
+    <td valign="top">This contains the behaviour of the "file" type.
+      If true, the available task will, when
+      searching for a file, search not only the directories specified but
+      will also search the parent directories of those
+      specified.
+      If false, only the directories specified will be searched.
+      Defaults to "false".
+      <em>Since Ant 1.7</em>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p><code>Available</code>'s <code>classpath</code> attribute is a <a
+href="../using.html#path">path-like structure</a> and can also be set via a nested
+<code>&lt;classpath&gt;</code> element.</p>
+<h4>filepath</h4>
+<p><code>Available</code>'s <code>filepath</code> attribute is a <a
+href="../using.html#path">path-like structure</a> and can also be set via a nested
+<code>&lt;filepath&gt;</code> element.</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;
+</pre></blockquote>
+<p>sets the <code>Myclass.present</code> property to the value &quot;true&quot;
+if the class <code>org.whatever.Myclass</code> is found in Ant's classpath.</p>
+<blockquote><pre>
+&lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
+&lt;available file=&quot;${jaxp.jar}&quot; property=&quot;jaxp.jar.present&quot;/&gt;
+</pre></blockquote>
+<p>sets the <code>jaxp.jar.present</code> property to the value &quot;true&quot;
+if the file <code>./lib/jaxp11/jaxp.jar</code> is found.</p>
+<blockquote><pre>
+&lt;available file=&quot;/usr/local/lib&quot; type=&quot;dir&quot;
+           property=&quot;local.lib.present&quot;/&gt;
+</pre></blockquote>
+<p>sets the <code>local.lib.present</code> property to the value &quot;true&quot;
+if the directory <code>/usr/local/lib</code> is found.</p>
+<blockquote><pre>
+...in project ...
+&lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
+&lt;path id=&quot;jaxp&quot; location=&quot;${jaxp.jar}&quot;/&gt;
+...in target ...
+&lt;available classname=&quot;javax.xml.transform.Transformer&quot;
+           classpathref=&quot;jaxp&quot; property=&quot;jaxp11.present&quot;/&gt;
+</pre></blockquote>
+<p>sets the <code>jaxp11.present</code> property to the value &quot;true&quot;
+if the class <code>javax.xml.transform.Transformer</code> is found in the classpath referenced by <code>jaxp</code> (in this case, <code>./lib/jaxp11/jaxp.jar</code>).
+</p>
+<blockquote><pre>
+&lt;available property=&quot;have.extras&quot; resource=&quot;extratasks.properties&quot;&gt;
+  &lt;classpath&gt;
+    &lt;pathelement location=&quot;/usr/local/ant/extra.jar&quot; /&gt;
+&nbsp;&nbsp;&lt;/classpath&gt;
+&lt;/available&gt;
+</pre></blockquote>
+<p>sets the <code>have.extras</code> property to the value &quot;true&quot;
+if the resource-file <code>extratasks.properties</code> is found.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/basename.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/basename.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/basename.html	(revision 14989)
@@ -0,0 +1,92 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Basename Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Basename</a></h2>
+<h3>Description</h3>
+<p>
+Task to determine the basename of a specified file, optionally minus a
+specified suffix.
+</p>
+<p>
+When this task executes, it will set the specified property to the
+value of the last path element of the specified file. If <code>file</code> is a
+directory, the basename will be the last directory element. If
+<code>file</code> is a full-path, relative-path, or simple filename,
+the basename will be the simple file name, without any directory elements.
+</p>
+<p> 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The path to take the basename of.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">The suffix to remove from the resulting basename
+      (specified either with or without the &quot;<code>.</code>&quot;).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;basename property=&quot;jar.filename&quot; file=&quot;${lib.jarfile}&quot;/&gt;
+</pre></blockquote>
+will set <code>jar.filename</code> to
+<code>myjar.jar</code>, if <code>lib.jarfile</code> is defined as either a
+full-path filename (eg., <code>/usr/local/lib/myjar.jar</code>),
+a relative-path filename (eg., <code>lib/myjar.jar</code>),
+or a simple filename (eg., <code>myjar.jar</code>).
+<blockquote><pre>
+&lt;basename property=&quot;cmdname&quot; file=&quot;D:/usr/local/foo.exe&quot;
+          suffix=&quot;.exe&quot;/&gt;
+</pre></blockquote>
+will set <code>cmdname</code> to <code>foo</code>.
+<blockquote><pre>
+&lt;property environment=&quot;env&quot;/&gt;
+&lt;basename property=&quot;temp.dirname&quot; file=&quot;${env.TEMP}&quot;/&gt;
+</pre></blockquote>
+
+will set <code>temp.dirname</code> to the last directory element of
+the path defined for the <code>TEMP</code> environment variable.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/buildnumber.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/buildnumber.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/buildnumber.html	(revision 14989)
@@ -0,0 +1,74 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>BuildNumber Task</title>
+</head>
+
+<body>
+
+<h2><a name="buildnumber">BuildNumber</a></h2>
+<h3>Description</h3>
+<p>This is a basic task that can be used to track build numbers.</p>
+<p>It will first attempt to read a build number from a file (by default,
+<code>build.number</code> in the current directory), then
+set the property <code>build.number</code> to the value that was read in
+(or to <code>0</code>, if no such value). It will then increment the
+number by one and write it back out to the file.
+(See the
+<a href="../OptionalTasks/propertyfile.html">PropertyFile</a> task
+if you need finer control over things such as the property name or
+the number format.)
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to read and write the build number from/to.</td>
+    <td align="center" valign="top">No; defaults to &quot;build.number&quot;</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;buildnumber/&gt;
+</pre></blockquote>
+
+<p>Read, increment, and write a build number to the default file,
+<code>build.number</code>.</p>
+
+<blockquote><pre>
+&lt;buildnumber file=&quot;mybuild.number&quot;/&gt;
+</pre></blockquote>
+
+<p>Read, increment, and write a build number to the file
+<code>mybuild.number</code>.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/changelog.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/changelog.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/changelog.html	(revision 14989)
@@ -0,0 +1,244 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ChangeLog Task</title>
+</head>
+
+<body>
+
+<h2><a name="changelog">CvsChangeLog</a></h2>
+<h3>Description</h3>
+<p>Generates an XML-formatted report file of the change logs recorded in a
+<a href="http://www.nongnu.org/cvs/" target="_top">CVS</a> repository. </p>
+<p><b>Important:</b> This task needs "cvs" on the path. If it isn't, you will get
+an error (such as error 2 on windows). If <code>&lt;cvs&gt;</code> doesn't work, try to execute cvs.exe
+from the command line in the target directory in which you are working.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td colspan="3">Attributes from parent Cvs task which are meaningful here<br>
+    Since ant 1.6.1</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the <code>CVSROOT</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the <code>CVS_RSH</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port 2401.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file <code>~/.cvspass</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if the command exits with a
+      return code other than <code>0</code>. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tag</td>
+    <td valign="top">query the changelog for a specific branch.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td colspan="3">Specific attributes</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory from which to run the CVS <em>log</em>
+     command.</td>
+    <td align="center" valign="top">No; defaults to ${basedir}.</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file in which to write the change log report.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">usersfile</td>
+    <td valign="top">Property file that contains name-value pairs mapping
+     user IDs and names that should be used in the report in place of
+     the user ID.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">daysinpast</td>
+    <td valign="top">Sets the number of days into the past for which the
+     change log information should be retrieved.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">start</td>
+    <td valign="top">The earliest date from which change logs are to be
+     included in the report.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">end</td>
+    <td valign="top">The latest date to which change logs are to be
+     included in the report.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4><a name="user">user</a></h4>
+<p>The nested <code>&lt;user&gt;</code> element allows you to specify a
+mapping between a user ID as it appears on the CVS server and a name to
+include in the formatted report.
+Anytime the specified user ID has made a change in the repository, the
+<code>&lt;author&gt;</code> tag in the report file will include
+the name specified in <code>displayname</code> rather than the user ID.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">displayname</td>
+    <td valign="top">The name to be used in the CVS change log report.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">userid</td>
+    <td valign="top">The userid of the person as it exists on the CVS server.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+
+<h3>Examples</h3>
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for all the changes that have been made
+under the <code>dve/network</code> directory.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+                daysinpast=&quot;10&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for any changes that were made
+under the <code>dve/network</code> directory in the past 10 days.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+                start=&quot;20 Feb 2002&quot;
+                end=&quot;20 Mar 2002&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for any changes that were made
+between February 20, 2002 and March 20, 2002
+under the <code>dve/network</code> directory.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;
+                start=&quot;20 Feb 2002&quot;
+  /&gt;</pre>
+
+<p>Generates a change log report for any changes that were made
+after February 20, 2002 under the <code>dve/network</code> directory.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
+                destfile=&quot;changelog.xml&quot;&gt;
+       &lt;user displayname=&quot;Peter Donald&quot; userid=&quot;donaldp&quot;/&gt;
+  &lt;/cvschangelog&gt;</pre>
+
+<p>Generates a change log report for all the changes that were made
+under the <code>dve/network</code> directory, substituting the name
+&quot;Peter Donald&quot; in the <code>&lt;author&gt;</code> tags
+anytime it encounters a change made by the user ID &quot;donaldp&quot;.
+It writes these changes into the file <code>changelog.xml</code>.</p>
+
+<p>Generates a change log report on the <code>ANT_16_BRANCH</code>.</p>
+<pre>
+ &lt;cvschangelog dir=&quot;c:/dev/asf/ant.head&quot; passfile=&quot;c:/home/myself/.cvspass&quot;
+                destfile=&quot;changelogant.xml&quot; tag=&quot;ANT_16_BRANCH&quot;/&gt;
+</pre>
+<h4>Generate Report</h4>
+<p>Ant includes a basic XSLT stylesheet that you can use to generate 
+a HTML report based on the xml output. The following example illustrates
+how to generate a HTML report from the XML report.</p>
+
+<pre>
+        &lt;style in="changelog.xml" 
+               out="changelog.html" 
+               style="${ant.home}/etc/changelog.xsl"&gt;
+          &lt;param name="title" expression="Ant ChangeLog"/&gt;
+          &lt;param name="module" expression="ant"/&gt;
+          &lt;param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/&gt;
+        &lt;/style&gt;
+</pre>
+
+<h4>Sample Output</h4>
+<pre>
+&lt;changelog&gt;
+  &lt;entry&gt;
+    &lt;date&gt;2002-03-06&lt;/date&gt;
+    &lt;time&gt;12:00&lt;/time&gt;
+    &lt;author&gt;Peter Donald&lt;/author&gt;
+    &lt;file&gt;
+      &lt;name&gt;org/apache/myrmidon/build/AntlibDescriptorTask.java&lt;/name&gt;
+      &lt;revision&gt;1.3&lt;/revision&gt;
+      &lt;prevrevision&gt;1.2&lt;/prevrevision&gt;
+    &lt;/file&gt;
+    &lt;msg&gt;&lt;![CDATA[Use URLs directly rather than go via a File.
+
+This allows templates to be stored inside jar]]&gt;&lt;/msg&gt;
+  &lt;/entry&gt;
+&lt;/changelog&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/checksum.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/checksum.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/checksum.html	(revision 14989)
@@ -0,0 +1,241 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Checksum Task</title>
+</head>
+
+<body>
+
+<h2><a name="checksum">Checksum</a></h2>
+<h3>Description</h3>
+<p>
+Generates checksum for files.  This task can also be used to
+perform checksum verifications.
+</p>
+
+<p>Note that many popular message digest functions - including MD5 and
+SHA-1 - have been broken recently.  If you are going to use the task
+to create checksums used in an environment where security is
+important, please take some time to investigate the algorithms offered
+by your JCE provider.  Note also that some JCE providers like the one
+by <a href="http://www.bouncycastle.org/">The Legion of the Bouncy
+Castle</a>, the <a href="http://www.gnu.org/software/gnu-crypto/">GNU
+project</a> or <a
+href="http://jce.iaik.tugraz.at/products/01_jce/index.php">the
+Technical University Graz</a> offer more digest algorithms than those
+built-in into your JDK.</p>
+
+<p>
+Warning: the case of the extension is that of the algorithm used.
+If you ask for "SHA1", you get a .SHA1 extension; if you ask for "sha1", you
+get a file ending in .sha1. The Java Crypto Engines are case-insensitive
+in matching algorithms, so choose a name to match your desired output extension,
+or set the <tt>fileext</tt> attribute.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to generate checksum for.</td>
+    <td valign="top" align="center">One of either <var>file</var> or
+    at least one nested (filesystem-only) resource collection.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The root directory where checksums should be written.</td>
+    <td valign="top" align="center">No. If not specified, checksum files
+      will be written to the same directory as the files themselves.
+      <em>since Ant 1.6</em>
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">algorithm</td>
+    <td valign="top">Specifies the algorithm to be used to
+      compute the checksum. Defaults to &quot;MD5&quot;.
+      Other popular algorithms like &quot;SHA&quot; may be used
+      as well.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">provider</td>
+    <td valign="top">Specifies the provider of the algorithm.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fileext</td>
+    <td valign="top">The generated checksum file's name will be the
+    original filename with the fileext added to it.
+    Defaults to a "." and the algorithm name being used.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">This attribute can mean two different things, it
+    depends on the presence of the verifyproperty attribute.<br>
+    <b>If you don't set the verifyproperty attribute</b>, property
+    specifies the name of the property to be set with the generated
+    checksum value.<br>
+    <b>If you set the verifyproperty attribute</b>, property specifies
+    the checksum you expect to be generated (the checksum itself, not
+    a name of a property containing the checksum).<br>
+    This cannot be specified when fileext is being used or when the
+    number of files for which checksums is to be generated is greater
+    than 1.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">Specifies the pattern to use as a pattern
+    suitable for <a
+    href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/MessageFormat.html">MessageFormat</a>
+    where <code>{0}</code> is replaced with the checksum and
+    <code>{1}</code> with the file name.</td>
+    <td valign="top" align="center">No - default is &quot;{0}&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">Specifies the pattern to use as one of a
+    well-known format.  Supported values are &quot;CHECKSUM&quot;
+    (only the checksum itself, the default), &quot;MD5SUM&quot; the
+    format of GNU textutils md5sum and &quot;SVF&quot; the format of
+    *BSDs md5 command.</td>
+    <td valign="top" align="center">No - default is &quot;CHECKSUM&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">totalproperty</td>
+    <td valign="top">If specified, this attribute specifies the name of
+      the property that will hold a checksum of all the checksums and
+      file paths. The individual checksums and the relative paths to the files
+      within the resource collections in which they are defined will be used to
+      compute this checksum. (The file separators in the paths will be
+      converted to '/' before computation to ensure platform portability).
+      <em>since Ant 1.6</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer. Defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verifyproperty</td>
+    <td valign="top">Specifies the name of the property to be set
+    with &quot;true&quot; or &quot;false&quot; depending upon whether
+    the generated checksum matches the existing checksum.  When
+    this is set, the generated checksum is not written to a file or
+    property, but rather, the content of the file or property is used to
+    check against the generated checksum.
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">readbuffersize</td>
+    <td valign="top">The size of the buffer (in bytes) to use when
+    reading a file. Defaults to &quot;8192&quot; - you may get a
+    better performance on big files if you increase this value.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>resource collection</h4>
+ <p>
+ <a href="../CoreTypes/resources.html#collection">Resource collections</a> are
+ used to select files for which checksums should be generated.
+ </p>
+
+<h3>Examples</h3>
+<p><b>Example 1</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot;/&gt;</pre></blockquote>
+Generates a MD5 checksum for foo.bar and stores the checksum in the destination file
+foo.bar.MD5.  foo.bar.MD5 is overwritten only if foo.bar is newer than itself.
+
+<p><b>Example 2</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; forceOverwrite=&quot;yes&quot;/&gt;</pre></blockquote>
+Generates a MD5 checksum for foo.bar and stores the checksum in foo.bar.MD5.
+If foo.bar.MD5 already exists, it is overwritten.
+
+<p><b>Example 3</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; property=&quot;foobarMD5&quot;/&gt;</pre></blockquote>
+Generates a MD5 checksum for foo.bar and stores it in the Project Property foobarMD5.
+
+<p><b>Example 4</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; verifyProperty=&quot;isMD5ok&quot;/&gt;</pre></blockquote>
+Generates a MD5 checksum for foo.bar, compares it against foo.bar.MD5 and sets
+isMD5ok to either true or false, depending upon the result.
+
+<p><b>Example 5</b></p>
+<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; algorithm=&quot;SHA&quot; fileext=&quot;asc&quot;/&gt;</pre></blockquote>
+Generates a SHA checksum for foo.bar and stores the checksum in the destination file
+foo.bar.asc.  foo.bar.asc is overwritten only if foo.bar is newer than itself.
+
+<p><b>Example 6</b></p>
+<blockquote><pre>
+&lt;checksum file=&quot;foo.bar&quot; property=&quot;${md5}&quot; verifyProperty=&quot;isEqual&quot;/&gt;
+</pre></blockquote>
+Generates a MD5 checksum for foo.bar, compares it against the value of the property
+md5, and sets isEqual to either true or false, depending upon the result.
+
+<p><b>Example 7</b></p>
+<blockquote><pre>
+&lt;checksum&gt;
+  &lt;fileset dir=&quot;.&quot;&gt;
+    &lt;include name=&quot;foo*&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/checksum&gt;
+</pre></blockquote>
+Works just like Example 1, but generates a .MD5 file for every file that begins with the name foo.
+
+<p><b>Example 8</b></p>
+<blockquote><pre>
+&lt;condition property=&quot;isChecksumEqual&quot;&gt;
+  &lt;checksum&gt;
+    &lt;fileset dir=&quot;.&quot;&gt;
+      &lt;include name=&quot;foo.bar&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/checksum&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+Works like Example 4, but only sets isChecksumEqual to true, if the
+checksum matches - it will never be set to false.  This example
+demonstrates use with the Condition task.
+
+
+<h3>Note:</h3>
+When working with more than one file, if condition and/or verifyproperty is used,
+the result will be true only if the checksums matched correctly for all files being
+considered.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/chmod.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/chmod.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/chmod.html	(revision 14989)
@@ -0,0 +1,190 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Chmod Task</title>
+</head>
+
+<body>
+
+<h2><a name="chmod">Chmod</a></h2>
+<h3>Description</h3>
+<p>Changes the permissions of a file or all files inside specified
+directories. Right now it has effect only under Unix or NonStop Kernel (Tandem).
+The permissions are also UNIX style, like the argument for the chmod command.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
+tasks</a>, on how the inclusion/exclusion of files works, and how to
+write patterns.</p>
+
+<p>This task holds an implicit <a
+href="../CoreTypes/fileset.html">FileSet</a> and supports all of
+FileSet's attributes and nested elements directly. More sets can be
+specified using nested <code>&lt;fileset&gt;</code> or
+<code>&lt;dirset&gt;</code> (<em>since Ant 1.6</em>) elements. </p>
+
+<p>Starting with Ant 1.6, this task also supports nested <a
+href="../CoreTypes/filelist.html">filelist</a>s.</p>
+
+<p>Starting with Ant 1.7, this task supports arbitrary <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+as nested elements.</p>
+
+<p>By default this task will use a single invocation of the underlying
+chmod command.  If you are working on a large number of files this may
+result in a command line that is too long for your operating system.
+If you encounter such problems, you should set the maxparallel
+attribute of this task to a non-zero value.  The number to use highly
+depends on the length of your file names (the depth of your directory
+tree) and your operating system, so you'll have to experiment a
+little.  POSIX recommends command line length limits of at least 4096
+characters, this may give you an approximation for the number you
+could use as initial value for these experiments.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or single directory of which the permissions 
+      must be changed.</td>
+    <td valign="top" valign="middle" rowspan="2">exactly one of the two or nested <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory which holds the files whose permissions 
+      must be changed.</td>
+  </tr>
+  <tr>
+    <td valign="top">perm</td>
+    <td valign="top">the new permissions.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chmod</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the permissions of
+      plain files are going to be changed. If set to <i>dir</i>, only
+      the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+  <blockquote><pre>
+&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;ugo+rx&quot;/&gt;
+</pre></blockquote>
+<p>makes the &quot;start.sh&quot; file readable and executable for anyone on a
+UNIX system.</p>
+<blockquote><pre>
+&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;700&quot;/&gt;
+</pre></blockquote>
+<p>makes the &quot;start.sh&quot; file readable, writable and executable only for the owner on a
+UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chmod dir=&quot;${dist}/bin&quot; perm=&quot;ugo+rx&quot; 
+       includes=&quot;**/*.sh&quot;/&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
+readable and executable for anyone on a UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chmod perm=&quot;g+w&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those
+below any directory named trial) writable for members of the same
+group on a UNIX system. In addition all files belonging to a FileSet
+with <code>id</code> <code>other.shared.sources</code> get the same
+permissions.</p>
+
+<blockquote>
+<pre>
+&lt;chmod perm=&quot;go-rwx&quot; type=&quot;file&quot;&gt;
+  &lt;fileset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/*.cgi&quot;/&gt;
+    &lt;include name=&quot;**/*.old&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;dirset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/private_*&quot;/&gt;
+  &lt;/dirset&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+
+<p>keeps non-owners from touching cgi scripts, files with a <code>.old</code>
+extension or directories beginning with <code>private_</code>. A directory 
+ending in <code>.old</code> or a file beginning with private_ would remain
+unaffected.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/common.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/common.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/common.html	(revision 14989)
@@ -0,0 +1,59 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Common</title>
+</head>
+
+<body>
+
+<h2><a name="javac">Common Attributes of all Tasks</a></h2>
+<p>All tasks share the following attributes:</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">id</td>
+    <td valign="top">Unique identifier for this task instance, can be
+       used to reference this task in scripts.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">taskname</td>
+    <td valign="top">A different name for this task instance - will
+      show up in the logging output.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">Room for your comments</td>
+    <td valign="top">No</td>
+  </tr>
+</table>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/concat.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/concat.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/concat.html	(revision 14989)
@@ -0,0 +1,294 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+    <head>
+      <meta http-equiv="Content-Language" content="en-us">
+      <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Concat</title>
+    </head>
+
+    <body>
+
+      <h2><a name="Concat">Concat</a></h2>
+
+      <h3>Description</h3>
+
+      <p>
+        Concatenates one or more 
+        <a href="../CoreTypes/resources.html">resource</a>s
+        to a single file or to the console. The destination
+        file will be created if it does not exist.
+      </p>
+
+      <p>
+        <a href="../CoreTypes/resources.html#collection">
+Resource Collection</a>s are used to
+        select which resources are to be concatenated. There is no
+        singular attribute to specify a single resource to cat.
+      </p>
+
+      <h3>Parameters</h3>
+
+      <table border="1" cellpadding="2" cellspacing="0">
+
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+
+        <tr>
+          <td valign="top">destfile</td>
+          <td valign="top">
+            The destination file for the concatenated stream.
+        If not specified the console will be used instead.
+          </td>
+          <td valign="top" align="center">
+            No
+          </td>
+        </tr>
+
+        <tr>
+          <td valign="top">append</td>
+          <td valign="top">
+            Specifies whether or not the file specified by 'destfile'
+            should be appended. Defaults to &quot;no&quot;.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">force</td>
+          <td valign="top">
+            Specifies whether or not the file specified by 'destfile'
+            should be written to even if it is newer than all source files.
+            <em>since Ant 1.6</em>.
+            Defaults to &quot;yes&quot;.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+
+        <tr>
+          <td valign="top">encoding</td>
+          <td valign="top">
+            Specifies the encoding for the input files. Please see <a
+            href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">
+            http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>
+            for a list of possible values. Defaults to the platform's
+            default character encoding.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">outputencoding</td>
+          <td valign="top">
+            The encoding to use when writing the output file
+            <em>since Ant 1.6</em>.
+            Defaults to the value of the encoding attribute
+            if given or the default JVM encoding otherwise.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">fixlastline</td>
+          <td valign="top">
+                 Specifies whether or not to check if
+            each file concatenated is terminated by
+            a new line. If this attribute is &quot;yes&quot;
+            a new line will be appended to the stream if
+            the file did not end in a new line.
+            <em>since Ant 1.6</em>.
+            Defaults to &quot;no&quot;.
+            This attribute does not apply to embedded text.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">eol</td>
+          <td valign="top">
+            Specifies what the end of line character are
+            for use by the fixlastline attribute.
+            <em>since Ant 1.6</em>
+            Valid values for this property are:
+            <ul>
+              <li>cr: a single CR</li>
+              <li>lf: a single LF</li>
+              <li>crlf: the pair CRLF</li>
+              <li>mac: a single CR</li>
+              <li>unix: a single LF</li>
+              <li>dos: the pair CRLF</li>
+            </ul>
+            The default is platform dependent.
+            For Unix platforms, the default is &quot;lf&quot;.
+            For DOS based systems (including Windows),
+            the default is &quot;crlf&quot;.
+            For Mac OS, the default is &quot;cr&quot;.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">binary</td>
+          <td valign="top">
+            <em>since Ant 1.6.2</em>
+            If this attribute is set to true, the task concatenates the files
+            in a byte by byte fashion. If this attribute is false, concat will
+            not normally work for binary files due to character encoding
+            issues.
+            If this option is set to true, the destfile attribute must be
+            set, and the task cannot used nested text.
+            Also the attributes encoding, outputencoding, filelastline
+            cannot be used.
+            The default is false.
+          </td>
+          <td valign="top" align="center">No</td>
+        </tr>
+
+      </table>
+
+      <h3>Parameters specified as nested elements</h3>
+        <h4>Resource Collection</h4>
+        <p><em>since Ant 1.7</em>.</p>
+
+      <p>
+        Any of the various <a href="../CoreTypes/resources.html#collection">
+        Resource Collection</a> types can specify the resources to be
+        concatenated.
+      </p>
+
+      <h4>filterchain</h4>
+        <p><em>since Ant 1.6</em>.</p>
+      <p>The concat task supports nested
+        <a href="../CoreTypes/filterchain.html"> FilterChain</a>s.</p>
+
+      <h4>header, footer</h4>
+        <p><em>since Ant 1.6</em>.</p>
+      <p>Used to prepend or postpend text into the concatenated stream.</p>
+      <p>The text may be in-line or be in a file.</p>
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+        <tr>
+          <td valign="top">filtering</td>
+          <td valign="top">
+            Whether to filter the text provided by this sub element,
+            default is "yes".
+          <td valign="top" align = "center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">file</td>
+          <td valign="top">A file to place at the head or tail of the
+                           concatenated text.
+          <td valign="top" align = "center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">trim</td>
+          <td valign="top">Whether to trim the value, default is "no"</td>
+          <td valign="top" align = "center">No</td>
+        </tr>
+        <tr>
+          <td valign="top">trimleading</td>
+          <td valign="top">
+            Whether to trim leading white space on each line, default is "no"
+          </td>
+          <td valign="top" align = "center">No</td>
+        </tr>
+      </table>
+
+      <h3>Examples</h3>
+
+      <p><b>Concatenate a string to a file:</b></p>
+
+      <pre>
+  &lt;concat destfile=&quot;README&quot;&gt;Hello, World!&lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a series of files to the console:</b></p>
+
+      <pre>
+  &lt;concat&gt;
+    &lt;fileset dir=&quot;messages&quot; includes=&quot;*important*&quot;/&gt;
+  &lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a single file, appending if the destination file exists:</b></p>
+
+      <pre>
+  &lt;concat destfile=&quot;NOTES&quot; append=&quot;true&quot;&gt;
+    &lt;filelist dir=&quot;notes&quot; files=&quot;note.txt&quot;/&gt;
+  &lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a series of files, update the destination
+      file only if is older that all the source files:</b></p>
+
+      <pre>
+  &lt;concat destfile=&quot;${docbook.dir}/all-sections.xml&quot;
+          force=&quot;no&quot;&gt;
+    &lt;filelist dir=&quot;${docbook.dir}/sections&quot;
+         files=&quot;introduction.xml,overview.xml&quot;/&gt;
+    &lt;fileset dir=&quot;${docbook.dir}&quot;
+         includes=&quot;sections/*.xml&quot;
+         excludes=&quot;introduction.xml,overview.xml&quot;/&gt;
+  &lt;/concat&gt;
+      </pre>
+
+      <p><b>Concatenate a series of files, expanding ant properties</b></p>
+        <pre>
+   &lt;concat destfile="${build.dir}/subs"&gt;
+      &lt;path&gt;
+        &lt;fileset dir="${src.dir}" includes="*.xml"/&gt;
+        &lt;pathelement location="build.xml"/&gt;
+      &lt;/path&gt;
+      &lt;filterchain&gt;
+        &lt;expandproperties/&gt;
+      &lt;/filterchain&gt;
+   &lt;/concat&gt;
+        </pre>
+
+      <p><b>Filter the lines containing project from build.xml and output
+           them to report.output, prepending with a header</b></p>
+        <pre>
+   &lt;concat destfile="${build.dir}/report.output"&gt;
+      &lt;header filtering="no" trimleading="yes"&gt;
+          Lines that contain project
+          ==========================
+      &lt;/header&gt;
+      &lt;path path="build.xml"/&gt;
+      &lt;filterchain&gt;
+         &lt;linecontains&gt;
+           &lt;contains value="project"/&gt;
+         &lt;/linecontains&gt;
+      &lt;/filterchain&gt;
+   &lt;/concat&gt;
+        </pre>
+
+      <p><b>Concatenate a number of binary files.</b></p>
+        <pre>
+   &lt;concat destfile="${build.dir}/dist.bin" binary="yes"&gt;
+     &lt;fileset file="${src.dir}/scripts/dist.sh" /&gt;
+     &lt;fileset file="${build.dir}/dist.tar.bz2" /&gt;
+   &lt;/concat&gt;
+        </pre>
+
+      
+
+    </body>
+
+  </html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/condition.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/condition.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/condition.html	(revision 14989)
@@ -0,0 +1,110 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Condition Task</title>
+</head>
+
+<body>
+
+<h2><a name="Condition">Condition</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a certain condition holds true - this is a
+generalization of <a href="available.html">Available</a> and <a
+href="uptodate.html">Uptodate</a>.</p>
+<p>If the condition holds true, the property value is set to true by
+default; otherwise, the property is not set. You can set the value to
+something other than the default by specifying the <code>value</code>
+attribute.</p>
+<p>Conditions are specified as <a href="#nested">nested elements</a>,
+you must specify exactly one condition.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to set the property to. Defaults to
+      &quot;true&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">else</td>
+    <td valign="top">The value to set the property to if the condition
+      evaluates to <i>false</i>. By default the property will remain unset.
+      <em>Since Ant 1.6.3</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3><a name="nested">Parameters specified as nested elements</a></h3>
+<p>All conditions to test are specified as nested elements, for a
+complete list see <a href="conditions.html">here</a>.</p>
+
+<h3>Examples</h3>
+<pre>
+  &lt;condition property=&quot;javamail.complete&quot;&gt;
+    &lt;and&gt;
+      &lt;available classname=&quot;javax.activation.DataHandler&quot;/&gt;
+      &lt;available classname=&quot;javax.mail.Transport&quot;/&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+</pre>
+<p>sets the property <code>javamail.complete</code> if both the
+JavaBeans Activation Framework and JavaMail are available in the
+classpath.</p>
+
+<pre>
+  &lt;condition property=&quot;isMacOsButNotMacOsX&quot;&gt;
+    &lt;and&gt;
+      &lt;os family=&quot;mac&quot;/&gt;
+
+      &lt;not&gt;
+        &lt;os family=&quot;unix&quot;/&gt;
+
+      &lt;/not&gt;
+    &lt;/and&gt;
+  &lt;/condition&gt;
+</pre>
+<p>sets the property <code>isMacOsButNotMacOsX</code> if the current
+operating system is MacOS, but not MacOS X - which Ant considers to be
+in the Unix family as well.</p>
+
+<pre>
+  &lt;condition property=&quot;isSunOSonSparc&quot;&gt;
+    &lt;os name=&quot;SunOS&quot; arch=&quot;sparc&quot;/&gt;
+
+  &lt;/condition&gt;
+</pre>
+<p>sets the property <code>isSunOSonSparc</code> if the current
+operating system is SunOS and if it is running on a sparc architecture.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/conditions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/conditions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/conditions.html	(revision 14989)
@@ -0,0 +1,955 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Conditions Task</title>
+</head>
+
+<body>
+
+<h2><a name="Conditions">Conditions</a></h2>
+  <p>Conditions are nested elements of the 
+<a href="condition.html"><code>&lt;condition&gt;</code></a> and
+<a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.
+    There are core conditions and custom conditions. Custom
+    conditions are described in
+    <a href="../CoreTypes/custom-programming.html#customconditions">
+      Custom Conditions</a>.
+    Core Conditions are described below.
+  </p>
+  <h3><a name="coreconditions">Core Conditions</a></h3>
+
+<p>These are the nested elements that can be used as conditions in the
+<a href="condition.html"><code>&lt;condition&gt;</code></a> and
+<a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.</p>
+
+<h4>not</h4>
+<p>The <code>&lt;not&gt;</code> element expects exactly one other
+condition to be nested into this element, negating the result of the
+condition.  It doesn't have any attributes and accepts all nested
+elements of the condition task as nested elements as well.</p>
+
+<h4>and</h4> <p>
+The <code>&lt;and&gt;</code> element doesn't have any attributes and
+accepts an arbitrary number of conditions as nested elements - all
+nested elements of the condition task are supported.  This condition
+is true if all of its contained conditions are, conditions will be
+evaluated in the order they have been specified in the build file.</p>
+<p>The <code>&lt;and&gt;</code> condition has the same shortcut
+semantics as the Java &amp;&amp; operator, as soon as one of the
+nested conditions is false, no other condition will be evaluated.</p>
+
+<h4>or</h4> <p>
+The <code>&lt;or&gt;</code> element doesn't have any attributes and
+accepts an arbitrary number of conditions as nested elements - all
+nested elements of the condition task are supported.  This condition
+is true if at least one of its contained conditions is, conditions
+will be evaluated in the order they have been specified in the build
+file.</p> <p>The <code>&lt;or&gt;</code> condition has the same
+shortcut semantics as the Java || operator, as soon as one of the
+nested conditions is true, no other condition will be evaluated.</p>
+
+<h4>xor</h4>
+<p>The <code>&lt;xor&gt;</code> element performs an exclusive
+or on all nested elements, similar to the <code>^</code> operator
+in Java. It only evaluates to true if an odd number of nested conditions
+are true. There is no shortcutting of evaluation, unlike the <code>&lt;and&gt;</code>
+and <code>&lt;or&gt;</code> tests.
+It doesn't have any attributes and accepts all nested
+elements of the condition task as nested elements as well.</p>
+
+<h4>available</h4>
+<p>This condition is identical to the <a
+href="available.html">Available</a> task, all attributes and nested
+elements of that task are supported, the property and value attributes
+are redundant and will be ignored.</p>
+
+<h4>uptodate</h4>
+<p>This condition is identical to the <a
+href="uptodate.html">Uptodate</a> task, all attributes and nested
+elements of that task are supported, the property and value attributes
+are redundant and will be ignored.</p>
+
+<h4>os</h4>
+<p>Test whether the current operating system is of a given type.  Each
+defined attribute is tested and the result is true only if <i>all</i>
+the tests succeed.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">family</td>
+    <td valign="top">The name of the operating system family to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the operating system to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">arch</td>
+    <td valign="top">The architecture of the operating system to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">version</td>
+    <td valign="top">The version of the operating system to expect.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>Supported values for the family attribute are:
+<ul>
+  <li>windows (for all versions of Microsoft Windows)</li>
+  <li>dos (for all Microsoft DOS based operating systems including
+    Microsoft Windows and OS/2)</li>
+  <li>mac (for all Apple Macintosh systems)</li>
+  <li>unix (for all Unix and Unix-like operating systems)</li>
+  <li>netware (for Novell NetWare)</li>
+  <li>os/2 (for OS/2)</li>
+  <li>tandem (for HP's NonStop Kernel - formerly Tandem)</li>
+  <li>win9x for Microsoft Windows 95 and 98, ME and CE</li>
+  <li>winnt for Microsoft Windows NT-based systems, including Windows 2000, XP and
+      successors</li>
+  <li>z/os for z/OS and OS/390</li>
+  <li>os/400 for OS/400</li>
+  <li>openvms for OpenVMS</li>
+</ul>
+
+<h4>equals</h4>
+<p>Tests whether the two given Strings are identical</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">arg1</td>
+    <td valign="top">First string to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">arg2</td>
+    <td valign="top">Second string to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Perform a case sensitive comparision.  Default is
+        true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">trim</td>
+    <td valign="top">Trim whitespace from arguments before comparing
+        them.  Default is false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>isset</h4>
+<p>Test whether a given property has been set in this project.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>checksum</h4>
+<p>This condition is identical to the <a href="checksum.html">Checksum</a>
+task, all attributes and nested elements of that task are supported,
+the property and overwrite attributes are redundant and will be
+ignored.</p>
+
+<h4>http</h4>
+<p>The <code>http</code> condition checks for a valid response from a
+web server of the specified url. By default, HTTP responses errors
+of 400 or greater are viewed as invalid.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The full URL of the page to request. The web server must
+      return a status code below the value of <tt>errorsBeginAt</tt></td>
+    <td align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">errorsBeginAt</td>
+    <td valign="top">The lowest HTTP response code that signals an error;
+    by default '400'; server errors, not-authorized, not-found and the like
+    are detected</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h4>socket</h4>
+<p>The <code>socket</code> condition checks for the existence of a
+TCP/IP listener at the specified host and port.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">server</td>
+    <td valign="top">The DNS name or IP address of the server.</td>
+    <td align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">The port number to connect to.</td>
+    <td align="center">Yes.</td>
+  </tr>
+</table>
+
+<h4>filesmatch</h4>
+<p>Test two files for matching. Nonexistence of one file results in "false",
+although if neither exists they are considered equal in terms of content.
+This test does a byte for byte comparision, so test time scales with
+byte size. NB: if the files are different sizes, one of them is missing
+or the filenames match the answer is so obvious the detailed test is omitted.
+
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file1</td>
+    <td valign="top">First file to test</td>
+    <td align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">file2</td>
+    <td valign="top">Second file to test</td>
+    <td align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">textfile</td>
+    <td valign="top">Whether to ignore line endings
+        when comparing files; defaults to <i>false</i>, while
+        <i>true</i> bypasses the size comparison. <b>Since Ant 1.7</b>
+    </td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h4>contains</h4>
+<p>Tests whether a string contains another one.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">string</td>
+    <td valign="top">The string to search in.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">substring</td>
+    <td valign="top">The string to search for.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Perform a case sensitive comparision.  Default is
+        true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>istrue</h4>
+<p>Tests whether a string equals any of the ant definitions of true,
+that is "true","yes", or "on"</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value to test</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;istrue value=&quot;${someproperty}&quot;/&gt;
+&lt;istrue value=&quot;false&quot;/&gt;
+</pre></blockquote>
+
+<h4>isfalse</h4>
+<p>Tests whether a string is not true, the negation of &lt;istrue&gt;
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value to test</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;isfalse value=&quot;${someproperty}&quot;/&gt;
+&lt;isfalse value=&quot;false&quot;/&gt;
+</pre></blockquote>
+
+<h4>isreference</h4>
+
+<p>Test whether a given reference has been defined in this project and
+- optionally - is of an expected type.</p>
+
+<p>This condition has been added in Apache Ant 1.6.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">The id of the reference to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">Name of the data type or task this reference is
+       expected to be.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+  <h4>issigned</h4>
+  <p>
+    Test whether a jarfile is signed.
+    If the name of the
+    signature is passed, the file is checked for presence of that
+    particular signature; otherwise the file is checked for the
+    existence of any signature. It does not perform rigorous
+    signature validation; it only looks for the presence of a signature.
+  </p>
+  <p>
+    This condition was added in Apache Ant 1.7.
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">
+      The jarfile that is to be tested for the presence
+      of a signature.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top"> The signature name to check for.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  </table>
+  <h4>isfileselected</h4>
+  <p>
+    Test whether a file passes an embedded
+    <a href="../CoreTypes/selectors.html">selector</a>.
+  </p>
+  <p>
+    This condition was added in Apache Ant 1.6.3.
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">
+      The file to check if is passes the embedded selector.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">The base directory to use for name based selectors. It this is not set,
+      the project's basedirectory will be used.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  </table>
+  <p>
+    Example usage:
+  </p>
+<blockquote><pre>
+&lt;isfileselected file="a.xml"&gt;
+  &lt;date datetime="06/28/2000 2:02 pm" when="equal"/&gt;
+&lt;/isfileselected&gt;
+</pre></blockquote>
+<h4>typefound</h4>
+
+<p>Test whether a given type is defined, and that
+its implementation class can be loaded. Types include
+tasks, datatypes, scriptdefs, macrodefs and presetdefs.</p>
+
+<p>This condition was added in Apache Ant 1.7.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">name of the type</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">uri</td>
+    <td valign="top">
+      The uri that this type lives in.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+  <p>
+    Example usages:
+  </p>
+<blockquote><pre>
+&lt;typefound name="junit"/&gt;
+&lt;typefound uri="antlib:org.apache.maven.artifact.ant" name="artifact"/&gt;
+</pre></blockquote>
+
+<h4>scriptcondition</h4>
+
+<p>Evaluate a condition based on a script in any
+<a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+  or
+  <a href="https://scripting.dev.java.net">JSR 223</a>
+supported language.
+</p>
+<p>
+See the <a href="../OptionalTasks/script.html">Script</a> task for
+an explanation of scripts and dependencies.
+</p>
+
+<p>This condition was added in Apache Ant 1.7.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">language</td>
+    <td valign="top">script language</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manager</td>
+    <td valign="top">
+      The script engine manager to use.
+      See the <a href="../OptionalTasks/script.html">script</a> task
+      for using this attribute.
+    </td>
+    <td valign="top" align="center">No - default is "auto"</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">default boolean value</td>
+    <td valign="top" align="center">No -default is "false"</td>
+  </tr>  
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">filename of script source</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">setbeans</td>
+    <td valign="top">whether to have all properties, references and targets as
+      global variables in the script.</td>
+    <td valign="top" align="center">No, default is "true".</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">
+      The classpath to pass into the script.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+       <a href="../using.html#references">reference</a> to a path defined elsewhere.
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h5>Parameters specified as nested elements</h5>
+<h6>classpath</h6>
+  <p>
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    for using this nested element.
+  </p>
+<h5>Description</h5>
+<p>
+The script supports script language inline, this script has access to the
+same beans as the <code>&lt;script&gt;</code> task, and to the <code>
+self</code> bean, which refers back to the condition itself. The
+<code>value</code> property of this bean sets the return value:
+</p>
+<p>
+Example:
+</p>
+<blockquote><pre>
+&lt;scriptcondition language=&quot;javascript&quot;
+        value=&quot;true&quot;&gt;
+    self.setValue(false);
+&lt;/scriptcondition&gt;
+</pre></blockquote>
+
+Sets the default value of the condition to true, then in the script, 
+sets the value to false. This condition always evaluates to "false"
+
+<h4>parsersupports</h4>
+
+<p>Tests whether Ant's XML parser supports a given
+feature or property, as per the SAX/JAXP specifications, by
+attempting to set the appropriate property/feature/</p>
+
+<p>This condition was added in Apache Ant 1.7.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">property to set</td>
+    <td valign="top" align="center">one of property or feature</td>
+  </tr>
+  <tr>
+    <td valign="top">feature</td>
+    <td valign="top">feature to set</td>
+    <td valign="top" align="center">one of property or feature</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">string (property) or boolean (feature)</td>
+    <td valign="top" align="center">For property tests, but not for feature tests</td>
+  </tr>
+</table>
+
+<blockquote><pre>
+&lt;parsersupports feature="http://xml.org/sax/features/namespaces"/&gt;
+</pre></blockquote>
+Check for namespace support. All SAX2 parsers should have this.
+<blockquote><pre>
+&lt;or&gt;
+  &lt;parsersupports
+    feature="http://apache.org/xml/features/validation/schema"/&gt;
+  &lt;parsersupports
+    feature="http://java.sun.com/xml/jaxp/properties/schemaSource"/&gt;
+&lt;/or&gt;
+</pre></blockquote>
+
+Check for XML Schema support.
+
+<pre>
+&lt;parsersupports
+  property="http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
+  value="document.xsd"/&gt;
+</pre>
+
+Check for Xerces-specific definition of the location of the no namespace schema.
+
+<h4>isreachable</h4>
+
+<p>Uses Java1.5+ networking APIs to probe for a (remote) system being
+reachable. Exactly what probe mechanisms are used is an implementation
+feature of the JVM. They may include ICMP "ping" packets, UDP or TCP connections
+to port 7 "echo service" or other means. On Java1.4 and earlier, being able
+to resolve the hostname is considered success. This means that if DNS is not
+working or a URL/hostname is bad, the test will fail, but otherwise succeed
+even if the remote host is actually absent.
+
+</p>
+<p>
+This condition turns unknown host exceptions into false conditions. This is
+because on a laptop, DNS is one of the first services when the network goes; you
+are implicitly offline.
+</p>
+<p>
+ If a URL is supplied instead of a host, the hostname is extracted
+ and used in the test - all other parts of the URL are discarded.
+</p>
+<p>
+The test may not work through firewalls, that is, something may be reachable
+using a protocol such as HTTP, while the lower level ICMP packets get dropped
+on the floor. Similarly, a host may detected as reachable with ICMP, but
+not reachable on other ports (i.e. port 80), because of firewalls.
+</p>
+<p>
+
+This condition was added in Apache Ant 1.7.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">host</td>
+    <td valign="top">host to check for</td>
+    <td valign="top" align="center">one of url or host</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">URL containing hostname</td>
+    <td valign="top" align="center">one of url or host</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">timeout in seconds</td>
+    <td valign="top" align="center">no, default is 30s</td>
+  </tr>
+</table>
+
+<blockquote><pre>
+&lt;condition property="offline"&gt;
+  &lt;isreachable url="http://ibiblio.org/maven/" /&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+
+<p>
+Probe for the maven repository being reachable.
+</p>
+
+<blockquote><pre>
+&lt;condition property="offline"&gt;
+  &lt;isreachable host="ibiblio.org" timeout="10" /&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+
+<p>
+Probe for the maven repository being reachable using the hostname, ten second timeout..
+</p>
+
+<h4>length</h4>
+<p>This condition is a facet of the <a href="length.html">Length</a> task.
+  It is used to test the length of a string or one or more files.
+  <b>Since Ant 1.6.3</b>
+</p>
+
+<blockquote><pre>
+&lt;length string=" foo " trim="true" length="3" /&gt;
+</pre></blockquote>
+<p>Verify a string is of a certain length.</p>
+
+<blockquote><pre>
+&lt;length file=&quot;foo&quot; when=&quot;greater&quot; length=&quot;0&quot; /&gt;
+</pre></blockquote>
+<p>Verify that file <i>foo</i> is not empty.</p>
+
+<h4>isfailure</h4>
+
+<p>Test the return code of an executable (see the
+<a href="exec.html">Exec</a> task) for failure. <b>Since Ant 1.7</b></p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">code</td>
+    <td valign="top">The return code to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>resourcecount</h4>
+<p>This condition is a facet of the
+  <a href="resourcecount.html">ResourceCount</a> task.
+  It is used to test the size of a 
+  <a href="../CoreTypes/resources.html#collection">resource collection</a>.
+  <b>Since Ant 1.7</b>
+</p>
+
+<blockquote><pre>
+&lt;resourcecount refid=&quot;myresourcecollection&quot; when=&quot;greater&quot; length=&quot;0&quot; /&gt;
+</pre></blockquote>
+<p>Verify that a resource collection is not empty.</p>
+
+<h4>resourcesmatch</h4>
+<p>Test resources for matching. Nonexistence of one or more resources results in
+"false", although if none exists they are considered equal in terms of content.
+By default this test does a byte for byte comparision, so test time scales with
+byte size. NB: if the files are different sizes, one of them is missing
+or the filenames match the answer is so obvious the detailed test is omitted.
+The resources to check are specified as nested
+<a href="../CoreTypes/resources.html#collection">resource collections</a>,
+meaning that more than two resources can be checked; in this case all resources
+must match. <b>Since Ant 1.7</b>
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">astext</td>
+    <td valign="top">Whether to ignore line endings
+        when comparing resource content; defaults to <i>false</i>,
+        while <i>true</i> bypasses the size comparison.
+    </td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h4>hasmethod</h4>
+
+<p> Tests for a class having a method or field. If the class is not found 
+    or fails to load, the build fails. 
+    
+    <b>Since Ant 1.7</b>
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+        <td width="12%" valign="top"><b>Attribute</b></td>
+        <td width="78%" valign="top"><b>Description</b></td>
+        <td width="10%" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+        <td valign="top">classname</td>
+        <td valign="top">name of the class to load</td>
+        <td align="center">yes</td>
+    </tr>
+    <tr>
+        <td valign="top">field</td>
+        <td valign="top">name of a field to look for</td>
+        <td align="center">one of field or method</td>
+    </tr>
+    <tr>
+        <td valign="top">method</td>
+        <td valign="top">name of a method to look for</td>
+        <td align="center">one of field or method</td>
+    </tr>
+    
+    <tr>
+        <td valign="top">ignoreSystemClasses</td>
+        <td valign="top">should system classes be ignored?</td>
+        <td align="center">No -default is false</td>
+    </tr>
+    <tr>
+        <td valign="top">classpath</td>
+        <td valign="top">a class path</td>
+        <td align="center">No</td>
+    </tr>
+    <tr>
+        <td valign="top">classpathref</td>
+        <td valign="top">reference to a class path</td>
+        <td align="center">No</td>
+    </tr>
+</table>
+
+<p>
+    There is also a nested &lt;classpath&gt; element, which can be used to specify 
+    a classpath.
+</p>
+<blockquote><pre>
+&lt;hasmethod classname="java.util.ArrayList" method="trimToSize"  /&gt;
+</pre></blockquote>
+
+<p>Looks for the method trimToSize in the ArrayList class.</p>
+
+<h4>matches</h4>
+
+<p>
+  Test if the specified string matches the specified regular
+  expression pattern.
+  <b>Since Ant 1.7</b></p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">string</td>
+    <td valign="top">The string to test.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">The regular expression pattern used to test.</td>
+    <td valign="top" align="center">Yes, unless there is a nested
+      <code>&lt;regexp&gt;</code> element.</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Perform a case sensitive match.  Default is
+        true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">multiline</td>
+    <td valign="top">
+      Perform a multi line match.
+      Default is false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">singleline</td>
+    <td valign="top">
+      This allows '.' to match new lines.
+      SingleLine is not to be confused with multiline, SingleLine is a perl
+      regex term, it corresponds to dotall in java regex.
+      Default is false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+  <p>
+    There is also an optional &lt;regexp&gt; element, which can be used to specify
+    a regular expression instead of the "pattern" attribute.
+    See <a href="../CoreTypes/regexp.html">Regexp Type</a> for the description
+    of the nested element regexp and of
+    the choice of regular expression implementation.
+  </p>
+  <p>
+    An example:
+  </p>
+<blockquote><pre>
+&lt;condition property="legal-password"&gt;
+  &lt;matches pattern="[1-9]" string="${user-input}"/&gt;
+&lt;/condition&gt;
+&lt;fail message="Your password should at least contain one number"
+      unless="legal-password"/&gt;
+</pre></blockquote>
+  <p>
+    The following example sets the property "ok" if
+    the property "input" is three characters long, starting
+    with 'a' and ending with 'b'.
+  </p>
+<blockquote><pre>
+&lt;condition property="ok"&gt;
+  &lt;matches string="${input}" pattern="^a.b$"/&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+  <p>
+    The following defines a reference regular expression for
+    matching dates and then uses antunit to check if the
+    property "today" is in the correct format:
+  </p>
+<blockquote><pre>
+&lt;regexp id="date.pattern" pattern="^[0123]\d-[01]\d-[12]\d\d\d$"/&gt;
+
+&lt;au:assertTrue xmlns:au="antlib:org.apache.ant.antunit"&gt;
+  &lt;matches string="${today}"&gt;
+    &lt;regexp refid="date.pattern"/&gt;
+  &lt;/matches&gt;
+&lt;/au:assertTrue&gt;
+</pre></blockquote>
+  <p>
+    The following example shows the use of the singleline and the casesensitive
+    flags.
+  </p>
+<blockquote><pre>
+&lt;au:assertTrue&gt;
+  &lt;matches string="AB${line.separator}C" pattern="^ab.*C$"
+           casesensitive="false"
+           singleline="true"/&gt;
+&lt;/au:assertTrue&gt;
+&lt;au:assertFalse&gt;
+  &lt;matches string="AB${line.separator}C" pattern="^ab.*C$"
+           casesensitive="false"
+           singleline="false"/&gt;
+&lt;/au:assertFalse&gt;
+</pre></blockquote>
+<h4>antversion</h4>
+
+<p>
+  Test the ant version.
+  <b>Since Ant 1.7.0</b></p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">atleast</td>
+    <td valign="top">The version that this at least.
+      The format is major.minor.point.</td>
+    <td valign="top" rowspan="2" align="center">One of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">exactly</td>
+    <td valign="top">The version that this ant is exactly.
+      The format is major.minor.point.</td>
+  </tr>
+</table>
+  <p>
+    An example:
+  </p>
+<blockquote><pre>
+&lt;condition property="ant-is-exact-7"&gt;
+  &lt;antversion exactly="1.7.0"/&gt;
+&lt;/condition&gt;
+</pre></blockquote>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/copy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/copy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/copy.html	(revision 14989)
@@ -0,0 +1,340 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Copy Task</title>
+</head>
+
+<body>
+
+<h2><a name="copy">Copy</a></h2>
+<h3>Description</h3>
+<p>Copies a file or resource collection to a new file or directory.  By default, files are
+only copied if the source file is newer than the destination file,
+or when the destination file does not exist.  However, you can explicitly
+overwrite files with the <code>overwrite</code> attribute.</p>
+
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select a group of files to copy.  To use a
+resource collection, the <code>todir</code> attribute must be set.</p>
+
+<p>
+<strong>Note: </strong>If you employ filters in your copy operation,
+you should limit the copy to text files. Binary files will be corrupted
+by the copy operation.
+This applies whether the filters are implicitly defined by the
+<a href="filter.html">filter</a> task or explicitly provided to the copy
+operation as <a href="../CoreTypes/filterset.html">filtersets</a>.
+  <em>See <a href="#encoding">encoding note</a></em>.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to copy.</td>
+    <td valign="top" align="center">Yes, unless a nested
+    resource collection element is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the copied files the same last modified
+      time as the original source files.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">The file to copy to.</td>
+    <td valign="top" align="center" rowspan="2">With the <code>file</code>
+      attribute, either <code>tofile</code> or <code>todir</code> can be used.
+      With nested resource collection elements, if the number of included files
+      is greater than 1, or if only the <code>dir</code> attribute is
+      specified in the <code>&lt;fileset&gt;</code>, or if the
+      <code>file</code> attribute is also specified, then only
+      <code>todir</code> is allowed.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory to copy to.</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">Indicates whether token filtering using the global
+      build-file filters should take place during the copy.
+      <em>Note</em>: Nested <code>&lt;filterset&gt;</code> elements will
+      always be used, even if this attribute is not specified, or its value is
+      <code>false</code> (<code>no</code>, or <code>off</code>).</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">flatten</td>
+    <td valign="top">Ignore the directory structure of the source files,
+      and copy all files into the directory specified by the <code>todir</code>
+      attribute.  Note that you can achieve the same effect by using a
+      <a href="../CoreTypes/mapper.html#flatten-mapper">flatten mapper</a>.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+     <td valign="top">Copy any empty directories included in the FileSet(s).
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">If false, log a warning message, but do not stop the
+       build, when the file to copy does not exist or one of the nested
+       filesets points to a directory that doesn't exist or an error occurs
+       while copying.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+     <td valign="top">Log the files that are being copied.</td>
+     <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding to assume when filter-copying the
+    files. <em>since Ant 1.5</em>.</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The encoding to use when writing the files.
+    <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to the value of the encoding
+    attribute if given or the default JVM encoding otherwise.</td>
+  </tr>
+  <tr>
+    <td valign="top">enablemultiplemappings</td>
+    <td valign="top">
+      If true the task will process to all the mappings for a
+      given source path. If false the task will only process
+      the first file or directory. This attribute is only relevant
+      if there is a mapper subelement.
+      <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">granularity</td>
+    <td valign="top">The number of milliseconds leeway to give before
+    deciding a file is out of date. This is needed because not every
+    file system supports tracking the last modified time to the
+    millisecond level. Default is 1 second, or 2 seconds on DOS
+    systems.  This can also be useful if source and target files live
+    on separate machines with clocks being out of sync.  <em>since Ant
+    1.6.2</em>.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset or any other resource collection</h4>
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select groups of files to copy.  To use a
+resource collection, the <code>todir</code> attribute must be set.</p>
+<p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
+supported as a nested element.</p>
+
+<h4>mapper</h4>
+ <p>You can define filename transformations by using a nested <a
+ href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
+ <code>&lt;copy&gt;</code> is the <a
+ href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a>.</p>
+  <p>
+    <em>Since Ant 1.6.3</em>,
+    one can use a filenamemapper type in place of the mapper element.
+  </p>
+
+<p>Note that the source name handed to the mapper depends on the
+resource collection you use.  If you use <code>&lt;fileset&gt;</code>
+or any other collection that provides a base directory, the name
+passed to the mapper will be a relative filename, relative to the base
+directory.  In any other case the absolute filename of the source will
+be used.</p>
+
+<h4>filterset</h4>
+ <p><a href="../CoreTypes/filterset.html">FilterSet</a>s are used to replace
+tokens in files that are copied.
+ To use a FilterSet, use the nested <code>&lt;filterset&gt;</code> element.</p>
+
+<h4>filterchain</h4>
+<p>The Copy task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.</p>
+
+<p>
+If <code>&lt;filterset&gt;</code> and <code>&lt;filterchain&gt;</code> elements are used inside the
+same <code>&lt;copy&gt;</code> task, all <code>&lt;filterchain&gt;</code> elements are processed first
+followed by <code>&lt;filterset&gt;</code> elements.
+</p>
+
+<h3>Examples</h3>
+<p><b>Copy a single file</b></p>
+<pre>
+  &lt;copy file=&quot;myfile.txt&quot; tofile=&quot;mycopy.txt&quot;/&gt;
+</pre>
+<p><b>Copy a single file to a directory</b></p>
+<pre>
+  &lt;copy file=&quot;myfile.txt&quot; todir=&quot;../some/other/dir&quot;/&gt;
+</pre>
+<p><b>Copy a directory to another directory</b></p>
+<pre>
+  &lt;copy todir=&quot;../new/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+  &lt;/copy&gt;
+</pre>
+<p><b>Copy a set of files to a directory</b></p>
+<pre>
+  &lt;copy todir=&quot;../dest/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;&gt;
+      &lt;exclude name=&quot;**/*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/copy&gt;
+
+  &lt;copy todir=&quot;../dest/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot; excludes=&quot;**/*.java&quot;/&gt;
+  &lt;/copy&gt;
+</pre>
+<p><b>Copy a set of files to a directory, appending
+<code>.bak</code> to the file name on the fly</b></p>
+<pre>
+  &lt;copy todir=&quot;../backup/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+    &lt;globmapper from=&quot;*&quot; to=&quot;*.bak&quot;/&gt;
+  &lt;/copy&gt;
+</pre>
+
+<p><b>Copy a set of files to a directory, replacing @TITLE@ with Foo Bar
+in all files.</b></p>
+<pre>
+  &lt;copy todir=&quot;../backup/dir&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+    &lt;filterset&gt;
+      &lt;filter token=&quot;TITLE&quot; value=&quot;Foo Bar&quot;/&gt;
+    &lt;/filterset&gt;
+  &lt;/copy&gt;
+</pre>
+
+<p><b>Collect all items from the current CLASSPATH setting into a
+destination directory, flattening the directory structure.</b></p>
+<pre>
+  &lt;copy todir=&quot;dest&quot; flatten=&quot;true&quot;&gt;
+    &lt;path&gt;
+      &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+    &lt;/path&gt;
+  &lt;/copy&gt;
+</pre>
+
+<p><b>Copies some resources to a given directory.</b></p>
+<pre>
+  &lt;copy todir=&quot;dest&quot; flatten=&quot;true&quot;&gt;
+    &lt;resources&gt;
+      &lt;file file=&quot;src_dir/file1.txt&quot;/&gt;
+      &lt;url url=&quot;http://ant.apache.org/index.html&quot;/&gt;
+    &lt;/resources&gt;
+  &lt;/copy&gt;
+</pre>
+
+<p><b>Copies the two newest resources into a destination directory.</b></p>
+<pre>
+  &lt;copy todir=&quot;dest&quot; flatten=&quot;true&quot;&gt;
+    &lt;first count=&quot;2&quot;&gt;
+      &lt;sort&gt;
+        &lt;date xmlns=&quot;antlib:org.apache.tools.ant.types.resources.comparators&quot;/&gt;
+        &lt;resources&gt;
+          &lt;file file=&quot;src_dir/file1.txt&quot;/&gt;
+          &lt;file file=&quot;src_dir/file2.txt&quot;/&gt;
+          &lt;file file=&quot;src_dir/file3.txt&quot;/&gt;
+          &lt;url url=&quot;http://ant.apache.org/index.html&quot;/&gt;
+        &lt;/resources&gt;
+      &lt;/sort&gt;
+    &lt;/first&gt;
+  &lt;/copy&gt;
+</pre>
+
+
+<p><strong>Unix Note:</strong> File permissions are not retained when files
+are copied; they end up with the default <code>UMASK</code> permissions
+instead. This
+is caused by the lack of any means to query or set file permissions in the
+current Java runtimes. If you need a permission-preserving copy function,
+use <code>&lt;exec executable="cp" ... &gt;</code> instead.
+</p>
+
+<p><strong>Windows Note:</strong> If you copy a file to a directory
+where that file already exists, but with different casing,
+the copied file takes on the case of the original. The workaround is to
+<a href="delete.html">delete</a>
+the file in the destination directory before you copy it.
+</p>
+  <p>
+    <strong><a name="encoding">Important Encoding Note:</a></strong>
+    The reason that binary files when filtered get corrupted is that
+    filtering involves reading in the file using a Reader class. This
+    has an encoding specifing how files are encoded. There are a number
+    of different types of encoding - UTF-8, UTF-16, Cp1252, ISO-8859-1,
+    US-ASCII and (lots) others. On Windows the default character encoding
+    is Cp1252, on Unix it is usually UTF-8. For both of these encoding
+    there are illegal byte sequences (more in UTF-8 than for Cp1252).
+  </p>
+  <p>
+    How the Reader class deals with these illegal sequences is up to the
+    implementation
+    of the character decoder. The current Sun Java implemenation is to
+    map them to legal characters. Previous Sun Java (1.3 and lower) threw
+    a MalformedInputException. IBM Java 1.4 also thows this exception.
+    It is the mapping of the characters that cause the corruption.
+  </p>
+  <p>
+    On Unix, where the default is normally UTF-8, this is a <em>big</em>
+    problem, as it is easy to edit a file to contain non US Ascii characters
+    from ISO-8859-1, for example the Danish oe character. When this is
+    copied (with filtering) by Ant, the character get converted to a
+    question mark (or some such thing).
+  </p>
+  <p>
+    There is not much that Ant can do. It cannot figure out which
+    files are binary - a UTF-8 version of Korean will have lots of
+    bytes with the top bit set. It is not informed about illegal
+    character sequences by current Sun Java implementions.
+  </p>
+  <p>
+    One trick for filtering containing only US-ASCII is to
+    use the ISO-8859-1 encoding. This does not seem to contain
+    illegal character sequences, and the lower 7 bits are US-ASCII.
+    Another trick is to change the LANG environment variable from
+    something like "us.utf8" to "us".
+  </p>
+    
+
+
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/copydir.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/copydir.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/copydir.html	(revision 14989)
@@ -0,0 +1,136 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Copydir Task</title>
+</head>
+
+<body>
+
+<h2><a name="copydir">Copydir</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Copy task instead.</i></p>
+<h3>Description</h3>
+<p>Copies a directory tree from the source to the destination.</p>
+<p>It is possible to refine the set of files that are being copied. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>src</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the directory to copy.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the directory to copy to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place during
+      the copy</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">flatten</td>
+    <td valign="top">ignore directory structure of source directory,
+      copy all files into a single directory, specified by the <code>dest</code>
+      attribute (default is <code>false</code>).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">overwrite existing files even if the destination
+      files are newer (default is false).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;copydir src=&quot;${src}/resources&quot;
+           dest=&quot;${dist}&quot;
+  /&gt;</pre>
+<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>.</p>
+<pre>  &lt;copydir src=&quot;${src}/resources&quot;
+           dest=&quot;${dist}&quot;
+           includes=&quot;**/*.java&quot;
+           excludes=&quot;**/Test.java&quot;
+  /&gt;</pre>
+<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
+recursively. All java files are copied, except for files with the name <code>Test.java</code>.</p>
+<pre>  &lt;copydir src=&quot;${src}/resources&quot;
+           dest=&quot;${dist}&quot;
+           includes=&quot;**/*.java&quot;
+           excludes=&quot;mypackage/test/**&quot;/&gt;</pre>
+<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
+recursively. All java files are copied, except for the files under the <code>mypackage/test</code>
+directory.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/copyfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/copyfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/copyfile.html	(revision 14989)
@@ -0,0 +1,73 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Copyfile Task</title>
+</head>
+
+<body>
+
+<h2><a name="copyfile">Copyfile</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Copy task instead.</i></p>
+<h3>Description</h3>
+<p>Copies a file from the source to the destination. The file is only copied if
+the source file is newer than the destination file, or when the destination file
+does not exist.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the filename of the file to copy.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the filename of the file where to copy to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place during
+      the copy</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">overwrite existing files even if the destination
+      files are newer (default is false).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;copyfile src=&quot;test.java&quot; dest=&quot;subdir/test.java&quot;/&gt;</code></p>
+  <p><code>&lt;copyfile src=&quot;${src}/index.html&quot; dest=&quot;${dist}/help/index.html&quot;/&gt;</code></p>
+</blockquote>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvs.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvs.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvs.html	(revision 14989)
@@ -0,0 +1,201 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>CVS Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="cvs">Cvs</a></h2>
+<h3>Description</h3>
+<p>Handles packages/modules retrieved from a
+<a href="http://www.nongnu.org/cvs/" target="_top">CVS</a> repository.</p>
+<p><b>Important:</b> This task needs &quot;<code>cvs</code>&quot; on the path. If it isn't, you will get
+an error (such as error <code>2</code> on windows). If <code>&lt;cvs&gt;</code> doesn't work, try to execute <code>cvs.exe</code>
+from the command line in the target directory in which you are working.
+
+<p><b>CVSNT Note</b>: CVSNT prefers users to store the passwords
+inside the registry.  If the <a href="cvspass.html">cvspass task</a>
+and the passfile attribute don't seem to work for you, the most likely
+reason is that CVSNT ignores your .cvspass file completely.  See <a
+href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21657#c5">bug
+zilla report 21657</a> for recommended workarounds.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">the CVS command to execute.</td>
+    <td align="center" valign="top">No, default &quot;checkout&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top"><code>true</code> or <code>false</code> - if set
+    to true, this is the same as <code>compressionlevel=&quot;3&quot;</code></td>
+    <td align="center" valign="top">No. Defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">compressionlevel</td>
+    <td valign="top">A number between 1 and 9 (corresponding to
+    possible values for CVS' <code>-z#</code> argument). Any
+    other value is treated as <code>compression=&quot;false&quot;</code></td>
+    <td align="center" valign="top">No. Defaults to no compression.</td>
+  </tr>
+
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the <code>CVSROOT</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the <code>CVS_RSH</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the directory where the checked out files should
+    be placed.  Note that this is different from CVS's <code>-d</code> command line
+    switch as Ant will never shorten pathnames to avoid empty
+    directories.</td>
+    <td align="center" valign="top">No, default is project's basedir.</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tag</td>
+    <td valign="top">the tag of the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">date</td>
+    <td valign="top">Use the most recent revision no later than the given date</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">suppress informational messages. This is the same as <code>-q</code> on the command line.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">reallyquiet</td>
+    <td valign="top">suppress all messages. This is the same as
+      <code>-Q</code> on the command line.  <em>since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">noexec</td>
+    <td valign="top">report only, don't change any files.</td>
+    <td align="center" valign="top">No, default to &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">the file to direct standard output from the command.</td>
+    <td align="center" valign="top">No, default output to ANT Log as <code>MSG_INFO</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">the file to direct standard error from the command.</td>
+    <td align="center" valign="top">No, default error to ANT Log as <code>MSG_WARN</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">whether to append output/error when redirecting to a file.</td>
+    <td align="center" valign="top">No, default to &quot;false&quot;.</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port <code>2401</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file <code>~/.cvspass</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if the command exits with a
+      return code other than <code>0</code>. Defaults to &quot;false&quot;</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvs cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+       package=&quot;ant&quot;
+       dest=&quot;${ws.dir}&quot;
+  /&gt;</pre>
+<p>checks out the package/module &quot;ant&quot; from the CVS
+repository pointed to by the <code>cvsRoot</code> attribute, and stores the files in &quot;<code>${ws.dir}</code>&quot;.</p>
+<pre>  &lt;cvs dest=&quot;${ws.dir}&quot; command=&quot;update&quot;/&gt;</pre>
+<p>updates the package/module that has previously been checked out into
+&quot;<code>${ws.dir}</code>&quot;.</p>
+
+<pre>  &lt;cvs command=&quot;-q diff -u -N&quot; output=&quot;patch.txt&quot;/&gt;</pre>
+
+<p>silently (<code>-q</code>) creates a file called <code>patch.txt</code> which contains a unified (<code>-u</code>) diff which includes new files added via &quot;cvs add&quot; (<code>-N</code>) and can be used as input to patch.
+The equivalent, using  <code>&lt;commandline&gt;</code> elements, is:
+</p>
+<pre>
+&lt;cvs output=&quot;patch&quot;&gt;
+    &lt;commandline&gt;
+        &lt;argument value=&quot;-q&quot;/&gt;
+        &lt;argument value=&quot;diff&quot;/&gt;
+        &lt;argument value=&quot;-u&quot;/&gt;
+        &lt;argument value=&quot;-N&quot;/&gt;
+    &lt;/commandline&gt;
+&lt;/cvs&gt;
+</pre>
+or:
+<pre>
+&lt;cvs output=&quot;patch&quot;&gt;
+    &lt;commandline&gt;
+        &lt;argument line=&quot;-q diff -u -N&quot;/&gt;
+    &lt;/commandline&gt;
+&lt;/cvs&gt;
+</pre>
+<p>
+You may include as many <code>&lt;commandline&gt;</code> elements as you like. 
+Each will inherit the <code>failonerror</code>, <code>compression</code>, and other &quot;global&quot; parameters
+from the <code>&lt;cvs&gt;</code> element.
+</p>
+
+
+<pre>  &lt;cvs command=&quot;update -A -d&quot;/&gt;</pre>
+<p>Updates from the head of repository ignoring sticky bits (<code>-A</code>) and creating any new directories as necessary (<code>-d</code>).</p>
+<p>Note: the text of the command is passed to cvs &quot;as-is&quot; so any cvs options should appear
+before the command, and any command options should appear after the command as in the diff example
+above. See <a href="http://ximbiot.com/cvs/wiki/index.php?title=Category:User_Documentation" target="_top">the cvs manual</a> for details,
+specifically the <a href="http://ximbiot.com/cvs/wiki/index.php?title=CVS--Concurrent_Versions_System_v1.12.12.1:_Guide_to_CVS_commands#SEC116" target="_top">Guide to CVS commands</a></p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvspass.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvspass.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvspass.html	(revision 14989)
@@ -0,0 +1,70 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>CVSPass Task</title>
+</head>
+
+<body>
+
+<h2><a name="cvs">cvspass</a></h2>
+<h3>Description</h3>
+<p>Adds entries to a .cvspass file. Adding entries to this file has the same affect as a cvs login command.</p>
+
+<p><b>CVSNT Note</b>: CVSNT prefers users to store the passwords
+inside the registry.  If the task doesn't seem to work for you, the
+most likely reason is that CVSNT ignores your .cvspass file
+completely.  See <a
+href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21657#c5">bug
+zilla report 21657</a> for recommended workarounds.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">cvsroot</td>
+    <td valign="top">the CVS repository to add an entry for.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">Password to be added to the password file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to add the entry to.</td>
+    <td align="center" valign="top">No, default is <code>~/.cvspass</code>.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvspass cvsroot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+       password=&quot;anoncvs&quot;
+  /&gt;</pre>
+<p>Adds an entry into the ~/.cvspass password file.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvstagdiff.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvstagdiff.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvstagdiff.html	(revision 14989)
@@ -0,0 +1,206 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>CvsTagDiff Task</title>
+</head>
+<body>
+<h2><a name="cvstagdiff">CvsTagDiff</a></h2>
+<h3>Description</h3>
+<p>Generates an XML-formatted report file of the changes between two tags or dates recorded in a
+<a href="http://www.nongnu.org/cvs/" target="_top">CVS</a> repository. </p>
+<p><b>Important:</b> This task needs "cvs" on the path. If it isn't, you will get
+an error (such as error 2 on windows). If <code>&lt;cvs&gt;</code> doesn't work, try to execute <code>cvs.exe</code>
+from the command line in the target directory in which you are working.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">startTag</td>
+    <td valign="top">The earliest tag from which diffs are to be
+     included in the report.</td>
+    <td align="center" valign="top" rowspan="2">exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">startDate</td>
+    <td valign="top">The earliest date from which diffs are to be
+     included in the report.<br>
+     accepts all formats accepted by the cvs command for -D date_spec arguments</td>
+  </tr>
+  <tr>
+    <td valign="top">endTag</td>
+    <td valign="top">The latest tag from which diffs are to be
+     included in the report.</td>
+    <td align="center" valign="top" rowspan="2">exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">endDate</td>
+    <td valign="top">The latest date from which diffs are to be
+     included in the report.<br>
+     accepts all formats accepted by the cvs command for -D date_spec arguments</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file in which to write the diff report.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h3>Parameters inherited from the <code>cvs</code> task</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top"><code>true</code>, <code>false</code>, or the number 1-9 (corresponding to possible values for CVS <code>-z#</code> argument). Any other value is treated as false</td>
+    <td align="center" valign="top">No. Defaults to no compression. if passed <code>true</code>, level 3 compression is assumed.</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the CVSROOT variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the CVS_RSH variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to analyze.<br>
+    Since ant 1.6
+    multiple packages separated by spaces are possible.
+    aliases corresponding to different modules are also possible</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">suppress informational messages.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port 2401.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file <code>~/.cvspass</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;cvstagdiff cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+                destfile=&quot;tagdiff.xml&quot;
+                package=&quot;ant&quot;
+                startTag=&quot;ANT_14&quot;
+                endTag=&quot;ANT_141&quot;
+  /&gt;</pre>
+
+<p>Generates a tagdiff report for all the changes that have been made
+in the <code>ant</code> module between the tags <code>ANT_14</code> and <code>ANT_141</code>.
+It writes these changes into the file <code>tagdiff.xml</code>.</p>
+
+<pre>  &lt;cvstagdiff
+                destfile=&quot;tagdiff.xml&quot;
+                package=&quot;ant&quot;
+                startDate=&quot;2002-01-01&quot;
+                endDate=&quot;2002-31-01&quot;
+  /&gt;</pre>
+
+<p>Generates a tagdiff report for all the changes that have been made
+in the <code>ant</code> module in january 2002. In this example <code>cvsRoot</code>
+has not been set. The current <code>cvsRoot</code> will be used (assuming the build is started
+from a folder stored in <code>cvs</code>.
+It writes these changes into the file <code>tagdiff.xml</code>.</p>
+
+<pre>  &lt;cvstagdiff
+                destfile=&quot;tagdiff.xml&quot;
+                package=&quot;ant jakarta-gump&quot;
+                startDate=&quot;2003-01-01&quot;
+                endDate=&quot;2003-31-01&quot;
+  /&gt;</pre>
+
+<p>Generates a tagdiff report for all the changes that have been made
+in the <code>ant</code> and <code>jakarta-gump</code> modules in january 2003.
+In this example <code>cvsRoot</code>
+has not been set. The current <code>cvsRoot</code> will be used (assuming the build is started
+from a folder stored in <code>cvs</code>.
+It writes these changes into the file <code>tagdiff.xml</code>.</p>
+
+<h4>Generate Report</h4>
+<p>Ant includes a basic XSLT stylesheet that you can use to generate 
+a HTML report based on the xml output. The following example illustrates
+how to generate a HTML report from the XML report.</p>
+
+<pre>
+        &lt;style in="tagdiff.xml" 
+               out="tagdiff.html" 
+               style="${ant.home}/etc/tagdiff.xsl"&gt;
+          &lt;param name="title" expression="Ant Diff"/&gt;
+          &lt;param name="module" expression="ant"/&gt;
+          &lt;param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/&gt;
+        &lt;/style&gt;
+</pre>
+
+<h4>Output</h4>
+<p>
+The cvsroot and package attributes of the tagdiff element are new in ant 1.6.<br>
+Notes on entry attributes :
+<table border="1">
+<tr><th>Attribute</th><th>Comment</th></tr>
+<tr><td>name</td><td>when reporting on one package, the package name is removed from the output</td></tr>
+<tr><td>revision</td><td>supplied for files which exist at the end of the reporting period</td></tr>
+<tr><td>prevrevision</td><td>supplied for files which exist at the beginning of the reporting period.<br>
+Old CVS servers do not supply it for deleted files. CVS 1.12.2 supplies it.</td></tr>
+</table>
+</p>
+<pre>
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;tagdiff startTag=&quot;ANT_14&quot; endTag=&quot;ANT_141&quot; 
+cvsroot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot; package=&quot;ant&quot;&gt;
+  &lt;entry&gt;
+    &lt;file&gt;
+      &lt;name&gt;src/main/org/apache/tools/ant/DirectoryScanner.java&lt;/name&gt;
+      &lt;revision&gt;1.15.2.1&lt;/revision&gt;
+      &lt;prevrevision&gt;1.15&lt;/prevrevision&gt;
+    &lt;/file&gt;
+  &lt;/entry&gt;
+&lt;/tagdiff&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvsversion.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvsversion.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/cvsversion.html	(revision 14989)
@@ -0,0 +1,109 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>CVSVersion Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="cvs">CvsVersion</a></h2>
+<h3>Description</h3>
+<p>
+This task allows to retrieve a CVS client and server version.
+  <i>Since Ant 1.6.1.</i>
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td colspan="3">Attributes from parent Cvs task which are meaningful here</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRoot</td>
+    <td valign="top">the <code>CVSROOT</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cvsRsh</td>
+    <td valign="top">the <code>CVS_RSH</code> variable.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">directory containing the checked out version of the project</td>
+    <td align="center" valign="top">No, default is project's basedir.</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">the package/module to check out.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Port used by CVS to communicate with the server.</td>
+    <td align="center" valign="top">No, default port 2401.</td>
+  </tr>
+  <tr>
+    <td valign="top">passfile</td>
+    <td valign="top">Password file to read passwords from.</td>
+    <td align="center" valign="top">No, default file ~/.cvspass.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if the command exits with a
+      return code other than <code>0</code>. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td colspan="3">Specific attributes</td>
+  </tr>
+  <tr>
+    <td valign="top">clientversionproperty</td>
+    <td valign="top">Name of a property where the cvsclient version
+      should be stored</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">serverversionproperty</td>
+    <td valign="top">Name of a property where the cvs server version
+      should be stored</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvsversion cvsRoot=&quot;:pserver:anoncvs@cvs.apache.org:/home/cvspublic&quot;
+       passfile=&quot;/home/myself/.cvspass&quot;
+       serverversionproperty=&quot;apachecvsversion&quot;
+       clientversionproperty=&quot;localcvsversion&quot;
+  /&gt;</pre>
+<p>finds out the cvs client and server versions and stores the versions in the
+properties called apachecvsversion and localcvsversion</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/defaultexcludes.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/defaultexcludes.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/defaultexcludes.html	(revision 14989)
@@ -0,0 +1,107 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>DefaultExcludes Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">DefaultExcludes</a></h2>
+
+<p><em>since Ant 1.6</em></p>
+
+<h3>Description</h3>
+<p>Alters the default excludes for all subsequent processing in the
+build, and prints out the current default excludes if desired.
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">echo</td>
+    <td valign="top">whether or not to print out the default excludes.(defaults to false)</td>
+    <td valign="top" align="center">attribute "true" required if no
+                                    other attribute specified</td>
+  </tr>
+  <tr>
+    <td valign="top">default</td>
+    <td valign="top">go back to hard wired default excludes</td>
+    <td valign="top" align="center">attribute "true" required if no
+    if no other attribute is specified</td>
+  </tr>
+  <tr>
+    <td valign="top">add</td>
+    <td valign="top">the pattern to add to the default excludes</td>
+    <td valign="top" align="center">if no other attribute is specified</td>
+  </tr>
+  <tr>
+    <td valign="top">remove</td>
+    <td valign="top">remove the specified pattern from the default excludes</td>
+    <td valign="top" align="center">if no other attribute is specified</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<p>Print out the default excludes</p>
+
+<pre>  &lt;defaultexcludes echo=&quot;true&quot;/&gt;</pre>
+
+<p>Print out the default excludes and exclude all *.bak files in
+<strong>all</strong> further processing</p>
+
+<pre>  &lt;defaultexcludes echo=&quot;true&quot; add=&quot;**/*.bak&quot;/&gt;</pre>
+
+<p>Silently allow several fileset based tasks to operate on emacs
+backup files and then restore normal behavior</p>
+
+<pre>
+  &lt;defaultexcludes remove=&quot;**/*~&quot;/&gt;
+
+  (do several fileset based tasks here)
+
+  &lt;defaultexcludes default=&quot;true&quot;/&gt;
+</pre>
+
+<h3>Notes</h3>
+By default the pattern <tt>**/.svn</tt> and <tt>**/.svn/**</tt> are set as default 
+excludes. With version 1.3 Subversion supports the 
+<a target="_blank" href="http://subversion.tigris.org/svn_1.3_releasenotes.html">&quot;_svn hack&quot;</a>.
+That means, that the svn-libraries evaluate environment variables and use <i>.svn</i> 
+or <i>_svn</i> directory regarding to that value. We had chosen not to evaluate environment variables to
+get a more reliable build. Instead you have to change the settings by yourself by changing
+the exclude patterns:
+<pre>
+  &lt;defaultexcludes remove=&quot;**/.svn&quot;/&gt;
+  &lt;defaultexcludes remove=&quot;**/.svn/**&quot;/&gt;
+  &lt;defaultexcludes add=&quot;**/_svn&quot;/&gt;
+  &lt;defaultexcludes add=&quot;**/_svn/**&quot;/&gt;
+</pre>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/delete.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/delete.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/delete.html	(revision 14989)
@@ -0,0 +1,196 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Delete Task</title>
+</head>
+
+<body>
+
+<h2><a name="delete">Delete</a></h2>
+<h3>Description</h3>
+<p>Deletes a single file, a specified directory and all its files and
+subdirectories, or a set of files specified by one or more
+<a href="../CoreTypes/resources.html#collection">resource collection</a>s.
+The literal implication of <code>&lt;fileset&gt;</code> is that
+directories are not included; however the removal of empty directories can
+be triggered when using nested filesets by setting the
+<code>includeEmptyDirs</code> attribute to <i>true</i>. Note that this
+attribute is meaningless in the context of any of the various resource
+collection types that <i>do</i> include directories, but that no attempt
+will be made to delete non-empty directories in any case.</p>
+<p>
+If you use this task to delete temporary files created by editors
+and it doesn't seem to work, read up on the
+<a href="../dirtasks.html#defaultexcludes">default exclusion set</a>
+in <strong>Directory-based Tasks</strong>, and see the
+<code>defaultexcludes</code> attribute below.
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to delete, specified as either the simple
+     filename (if the file exists in the current base directory), a
+     relative-path filename, or a full-path filename.</td>
+    <td align="center" valign="middle" rowspan="2">At least one of the two,
+     unless nested resource collections are specified
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to delete, including all its files and
+     subdirectories.<br>
+     <b>Note:</b> <code>dir</code> is <em>not</em> used
+     to specify a directory name for <code>file</code>; <code>file</code>
+     and <code>dir</code> are independent of each other.<br>
+     <b>WARNING:</b> Do <b>not</b> set <code>dir</code> to
+     <code>&quot;.&quot;</code>, <code>&quot;${basedir}&quot;</code>,
+     or the full-pathname equivalent unless you truly <em>intend</em> to
+     recursively remove the entire contents of the current base directory
+     (and the base directory itself, if different from the current working
+     directory).</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to show the name of each deleted file.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</i></td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">If the specified file or directory does not exist,
+     do not display a diagnostic message (unless Ant
+     has been invoked with the <code>-verbose</code> or
+     <code>-debug</code> switches) or modify the exit status to
+     reflect an error.
+     When set to &quot;true&quot;, if a file or directory cannot be deleted,
+     no error is reported. This setting emulates the
+     <code>-f</code> option to the Unix <em>rm</em> command.
+     Setting this to &quot;true&quot; implies setting
+     <code>failonerror</code> to &quot;false&quot;.
+    </td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Controls whether an error (such as a failure to
+    delete a file) stops the build or is merely reported to the screen.
+    Only relevant if <code>quiet</code> is &quot;false&quot;.</td>
+    <td align="center" valign="top">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">includeemptydirs</td>
+    <td valign="top">Whether to delete empty directories
+                     when using filesets.</td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      Comma- or space-separated list of patterns of
+      files that must be deleted. All files are relative to the directory
+      specified in <code>dir</code>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      The name of a file. Each line of
+      this file is taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      Comma- or space-separated list of patterns of
+      files that must be excluded from the deletion list.
+      All files are relative to the directory specified in <code>dir</code>.
+      No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      The name of a file. Each line of
+      this file is taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top"><em>Deprecated.</em>  Use resource collections.
+      Whether to use <a href="../dirtasks.html#defaultexcludes">
+      default excludes.</a></td>
+    <td align="center" valign="top">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">deleteonexit</td>
+    <td valign="top">
+      Indicates whether to use File#deleteOnExit() if there is a
+      failure to delete a file, this causes the jvm to attempt
+      to delete the file when the jvm process is terminating.
+      <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No, default &quot;false&quot;</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;delete file=&quot;/lib/ant.jar&quot;/&gt;</pre>
+<p>deletes the file <code>/lib/ant.jar</code>.</p>
+<pre>  &lt;delete dir=&quot;lib&quot;/&gt;</pre>
+<p>deletes the <code>lib</code> directory, including all files
+and subdirectories of <code>lib</code>.</p>
+
+<pre>  &lt;delete&gt;
+    &lt;fileset dir=&quot;.&quot; includes=&quot;**/*.bak&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes all files with the extension <code>.bak</code> from the current directory
+and any subdirectories.</p>
+
+<pre>  &lt;delete includeEmptyDirs=&quot;true&quot;&gt;
+    &lt;fileset dir=&quot;build&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes all files and subdirectories of <code>build</code>, including
+<code>build</code> itself.</p>
+
+<pre>  &lt;delete includeemptydirs=&quot;true&quot;&gt;
+    &lt;fileset dir=&quot;build&quot; includes=&quot;**/*&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes all files and subdirectories of <code>build</code>, without
+<code>build</code> itself.</p>
+
+<pre>  &lt;delete defaultexcludes=&quot;false&quot;&gt;
+    &lt;fileset dir=&quot;src&quot; includes=&quot;**/.svn&quot;/&gt;
+  &lt;/delete&gt;
+</pre>
+<p>deletes the subversion metadata directories under <code>src</code>. Because <code>.svn</code>
+is on of the <a href="../dirtasks.html#defaultexcludes">default excludes</a> you have to use the 
+<code>defaultexcludes</code> flag, otherwise Ant wont delete these directories and the files in it.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/deltree.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/deltree.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/deltree.html	(revision 14989)
@@ -0,0 +1,56 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Deltree Task</title>
+</head>
+
+<body>
+
+<h2><a name="deltree">Deltree</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Delete task instead.</i></p>
+<h3>Description</h3>
+<p>Deletes a directory with all its files and subdirectories.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory to delete.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;deltree dir=&quot;dist&quot;/&gt;</pre>
+<p>deletes the directory <code>dist</code>, including its files and
+subdirectories.</p>
+<pre>  &lt;deltree dir=&quot;${dist}&quot;/&gt;</pre>
+<p>deletes the directory <code>${dist}</code>, including its files and
+subdirectories.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/dependset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/dependset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/dependset.html	(revision 14989)
@@ -0,0 +1,161 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>DependSet Task</title>
+</head>
+
+<body>
+
+<h2>DependSet</h2>
+
+A task to manage arbitrary dependencies between resources.
+
+<h3>Description</h3>
+
+<p>
+The dependset task compares a set of sources with a set of target
+files.  If any of the sources has been modified more recently than
+any of the target files, all of the target files are removed.
+</p>
+<p>
+Sources and target files are specified via nested
+<a href="../CoreTypes/resources.html#collection">Resource Collection</a>s;
+sources can be resources of any type, while targets are restricted to files
+only. At least one set of sources and one set of targets is required.
+</p>
+<p>
+Use a FileSet when you want to use wildcard include or exclude
+patterns and don't care about missing files.  Use a FileList when you
+want to consider the non-existence of a file as if it were out of
+date.  If there are any non-existing files in any source or target
+FileList, all target files will be removed.
+</p>
+<p>
+DependSet is useful to capture dependencies that are not or cannot be
+determined algorithmically.  For example, the <code>&lt;style&gt;</code> task only
+compares the source XML file and XSLT stylesheet against the target
+file to determined whether to restyle the source.  Using dependset you
+can extend this dependency checking to include a DTD or XSD file as
+well as other stylesheets imported by the main stylesheet.
+</p>
+
+<h3>Parameters</h3>
+
+<p>
+(none)
+</p>
+
+<h3>Parameters Specified as Nested Elements</h3>
+
+<h4>sources</h4>
+
+<p>The <code>&lt;sources&gt;</code> element is a
+<a href="../CoreTypes/resources.html#union">Union</a> into which
+arbitrary resource collections can be nested. <b>Since Ant 1.7</b>
+</p>
+
+<h4>srcfileset</h4>
+
+<p>
+The nested <code>&lt;srcfileset&gt;</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in
+this fileset will be compared against all files included in all of the
+<code>&lt;targetfileset&gt;</code> filesets and <code>&lt;targetfilelist&gt;</code>
+filelists.  Multiple <code>&lt;srcfileset&gt;</code> filesets may be specified.
+</p>
+
+<h4>srcfilelist</h4>
+
+<p>
+The nested <code>&lt;srcfilelist&gt;</code> element specifies a <a
+href="../CoreTypes/filelist.html">FileList</a>. All files included in
+this filelist will be compared against all files included in all of the 
+<code>&lt;targetfileset&gt;</code> filesets and <code>&lt;targetfilelist&gt;</code>
+filelists.  Multiple <code>&lt;srcfilelist&gt;</code> filelists may be specified.
+</p>
+
+<h4>targets</h4>
+
+<p>The <code>&lt;targets&gt;</code> element is a
+<a href="../using.html#path">Path</a> and thus can
+include any filesystem-based resource. <b>Since Ant 1.7</b>
+</p>
+
+<h4>targetfileset</h4>
+
+<p>
+The nested <code>&lt;targetfileset&gt;</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>.  All files included in
+this fileset will be compared against all files included in all of the
+<code>&lt;srcfileset&gt;</code> filesets and <code>&lt;sourcefilelist&gt;</code>
+filelists, and if any are older, they are all deleted.
+Multiple <code>&lt;targetfileset&gt;</code> filesets may be specified.
+</p>
+
+<h4>targetfilelist</h4>
+
+<p>
+The nested <code>&lt;targetfilelist&gt;</code> element specifies a <a
+href="../CoreTypes/filelist.html">FileList</a>.  All files included in
+this filelist will be compared against all files included in all of the
+<code>&lt;srcfileset&gt;</code> filesets and <code>&lt;sourcefilelist&gt;</code>
+filelists, and if any are older, they are all deleted.
+Multiple <code>&lt;targetfilelist&gt;</code> filelists may be specified.
+</p>
+
+<h3>Examples</h3>
+<blockquote> <pre>
+    &lt;dependset&gt;
+       &lt;srcfilelist
+           dir   = &quot;${dtd.dir}&quot;
+           files = &quot;paper.dtd,common.dtd&quot;/&gt;
+       &lt;srcfilelist
+           dir   = &quot;${xsl.dir}&quot;
+           files = &quot;common.xsl&quot;/&gt;
+       &lt;srcfilelist
+           dir   = &quot;${basedir}&quot;
+           files = &quot;build.xml&quot;/&gt;
+       &lt;targetfileset
+           dir      = &quot;${output.dir}&quot;
+           includes = &quot;**/*.html&quot;/&gt;
+    &lt;/dependset&gt;  </pre>
+</blockquote>
+
+<p> 
+In this example derived HTML files in the ${output.dir} directory 
+will be removed if any are out-of-date with respect to:</p>
+<ol>
+<li>the DTD of their source XML files</li>
+<li>a common DTD (imported by the main DTD)</li>
+<li>a subordinate XSLT stylesheet (imported by the main stylesheet), or</li>
+<li>the buildfile</li>
+</ol>
+
+<p>
+If any of the sources in the above example does not exist, all
+target files will also be removed.  To ignore missing sources instead,
+use filesets instead of filelists for the sources.
+</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/diagnostics.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/diagnostics.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/diagnostics.html	(revision 14989)
@@ -0,0 +1,48 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Diagnostics Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Diagnostics</a></h2>
+<h3>Diagnostics</h3>
+<p>
+
+Runs Ant's <code>-diagnostics</code> code inside Ant itself. This is good for 
+debugging Ant's configuration under an IDE. 
+
+<h3>Examples</h3>
+
+<pre>
+    &lt;target name="diagnostics" description="diagnostics"&gt;
+        &lt;diagnostics/&gt;
+    &lt;/target&gt;
+</pre>
+
+<p>
+    Prints out the current diagnostics dump.
+</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/dirname.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/dirname.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/dirname.html	(revision 14989)
@@ -0,0 +1,74 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Dirname Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Dirname</a></h2>
+<h3>Description</h3>
+<p>
+Task to determine the directory path of a specified file.
+</p>
+<p> 
+When this task executes, it will set the specified property to the
+value of the specified file (or directory) up to, but not including,
+the last path element. If the specified file is a path that ends in a
+filename, the filename will be dropped. If the specified file is just
+a filename, the directory will be the current directory.
+</p>
+  <p>
+    <em>Note:</em> This is not the same as the UNIX dirname command, which is
+    defined as "strip non-directory suffix from filename". &lt;dirname&gt;
+    determines the full directory path of the specified file.
+  </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The path to take the dirname of.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;dirname property=&quot;antfile.dir&quot; file=&quot;${ant.file}&quot;/&gt;</pre>
+will set <code>antfile.dir</code> to the directory path for
+<code>${ant.file}</code>.
+<pre>  &lt;dirname property=&quot;foo.dirname&quot; file=&quot;foo.txt&quot;/&gt;</pre>
+will set <code>foo.dirname</code> to the project's basedir.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/ear.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/ear.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/ear.html	(revision 14989)
@@ -0,0 +1,180 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>EAR Task</title>
+</head>
+
+<body>
+
+<h2><a name="ear">Ear</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="jar.html">Jar</a> task with special
+treatment for files that should end up in an Enterprise Application archive.</p>
+<p>(The Ear task is a shortcut for specifying the particular layout of a EAR file. 
+The same thing can be accomplished by using the <i>prefix</i> and <i>fullpath</i>
+attributes of zipfilesets in a Zip or Jar task.)</p>
+<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the Ear task.</p>
+
+<p><b>Please note that the zip format allows multiple files of the same
+fully-qualified name to exist within a single archive.  This has been
+documented as causing various problems for unsuspecting users.  If you wish
+to avoid this behavior you must set the <code>duplicate</code> attribute
+to a value other than its default, <code>&quot;add&quot;</code>.</b></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the EAR file to create.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">appxml</td>
+    <td valign="top">The deployment descriptor to use (META-INF/application.xml).</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">the manifest file to use.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Non-default level at which file compression should be
+    performed. Valid values range from 0 (no compression/fastest) to 9
+    (maximum compression/slowest). <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Nested elements</h3>
+<h4>metainf</h4>
+<p>The nested <code>metainf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>META-INF</code> directory of the ear file. If this
+fileset includes a file named <code>MANIFEST.MF</code>, the file is
+ignored and you will get a warning.</p>
+<h2>Example</h2>
+<pre>
+    &lt;ear destfile=&quot;${build.dir}/myapp.ear&quot; appxml=&quot;${src.dir}/metadata/application.xml&quot;&gt;
+      &lt;fileset dir=&quot;${build.dir}&quot; includes=&quot;*.jar,*.war&quot;/&gt;
+    &lt;/ear&gt;
+</pre>
+
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/echo.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/echo.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/echo.html	(revision 14989)
@@ -0,0 +1,180 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Echo Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Echo</a></h2>
+<h3>Description</h3>
+<p>Echoes a message to the current loggers and listeners which
+means <tt>System.out</tt> unless overridden. A <tt>level</tt>
+can be specified, which controls at what logging level the message is
+filtered at.
+<p>
+The task can also echo to a file, in which case the option to append rather
+than overwrite the file is available, and the <tt>level</tt> option is
+ignored</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">the message to echo.</td>
+    <td valign="top" align="center">No.  Text may also be included in a
+      character section within this element.  If neither is included a 
+      blank line will be emitted in the output.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file to write the message to.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Append to an existing file (or
+      <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html#FileWriter(java.lang.String, boolean)" target="_blank">
+      open a new file / overwrite an existing file</a>)?
+    </td>
+    <td valign="top" align="center">No - default is false.</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Control the level at which this message is reported.
+            One of "error", "warning", "info", "verbose", "debug" (decreasing order)</td>
+    <td valign="top" align="center">No - default is "warning".</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use, default is ""; the local system encoding. <em>since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>
+&lt;echo message=&quot;Hello, world&quot;/&gt;
+</pre>
+<pre>
+&lt;echo message=&quot;Embed a line break:${line.separator}&quot;/&gt;
+</pre>
+<pre>
+&lt;echo&gt;Embed another:${line.separator}&lt;/echo&gt;
+</pre>
+<pre>
+&lt;echo&gt;This is a longer message stretching over
+two lines.
+&lt;/echo&gt;
+</pre>
+<pre>
+&lt;echo&gt;
+This is a longer message stretching over
+three lines; the first line is a blank
+&lt;/echo&gt;
+</pre>
+The newline immediately following the &lt;echo&gt; tag will be part of the output.<br>
+Newlines in character data within the content of an element are not discarded by XML parsers.<br>
+See <a href="http://www.w3.org/TR/2004/REC-xml-20040204/#sec-line-ends">
+W3C Recommendation 04 February 2004 / End of Line handling
+</a> for more details.
+
+<pre>&lt;echo message=&quot;Deleting drive C:&quot; level=&quot;debug&quot;/&gt;</pre>
+A message which only appears in <tt>-debug</tt> mode.
+<pre>&lt;echo level=&quot;error&quot;&gt;
+Imminent failure in the antimatter containment facility.
+Please withdraw to safe location at least 50km away.
+&lt;/echo&gt;
+</pre>
+A message which appears even in <tt>-quiet</tt> mode.
+
+<pre>&lt;echo file="runner.csh" append="false"&gt;#\!/bin/tcsh
+java-1.3.1 -mx1024m ${project.entrypoint} $$*
+&lt;/echo&gt;</pre>
+Generate a shell script by echoing to a file.
+Note the use of a double $ symbol to stop Ant
+filtering out the single $ during variable expansion
+
+<p>Depending on the loglevel Ant runs, messages are print out or silently
+ignored:
+<table>
+<tr>
+  <th>Ant-Statement</th>
+  <th>-quiet, -q</th>
+  <th><i>no statement</th>
+  <th>-verbose, -v</th>
+  <th>-debug, -d</th>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is error message." level="error" /&gt;</pre></td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is warning message." /&gt;</pre></td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is warning message." level="warning" /&gt;</pre></td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is info message." level="info" /&gt;</pre></td>
+  <td align="center">not logged</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is verbose message." level="verbose" /&gt;</pre></td>
+  <td align="center">not logged</td>
+  <td align="center">not logged</td>
+  <td align="center">ok</td>
+  <td align="center">ok</td>
+</tr>
+<tr>
+  <td><pre>&lt;echo message="This is debug message." level="debug" /&gt;</pre></td>
+  <td align="center">not logged</td>
+  <td align="center">not logged</td>
+  <td align="center">not logged</td>
+  <td align="center">ok</td>
+</tr>
+</table>
+
+
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/echoxml.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/echoxml.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/echoxml.html	(revision 14989)
@@ -0,0 +1,65 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>EchoXML Task</title>
+</head>
+
+<body>
+
+<h2>EchoXML</h2>
+<h3>Description</h3>
+<p>Echo nested XML to the console or a file. <b>Since Ant 1.7</b></p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to receive the XML. If omitted nested
+      XML will be echoed to the log.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether to append <code>file</code>, if specified.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+Nested XML content is required.
+
+<h3>Examples</h3>
+<pre>&lt;echoxml file=&quot;subbuild.xml&quot;&gt;
+  &lt;project default=&quot;foo&quot;&gt;
+    &lt;target name=&quot;foo&quot;&gt;
+      &lt;echo&gt;foo&lt;/echo&gt;
+    &lt;/target&gt;
+  &lt;/project&gt;
+&lt;/echoxml&gt;
+</pre>
+<p>Creates an Ant buildfile, <code>subbuild.xml</code>.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/exec.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/exec.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/exec.html	(revision 14989)
@@ -0,0 +1,427 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Exec Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="exec">Exec</a></h2>
+<h3>Description</h3>
+<p>Executes a system command. When the <i>os</i> attribute is specified, then
+the command is only executed when Ant is run on one of the specified operating
+systems.</p>
+
+<p>Note that you cannot interact with the forked program, the only way
+to send input to it is via the input and inputstring attributes. Also note that
+since Ant 1.6, any attempt to read input in the forked program will receive an
+EOF (-1). This is a change from Ant 1.5, where such an attempt would block.</p>
+
+
+
+<h4>Windows Users</h4>
+<p>The <code>&lt;exec&gt;</code> task delegates to <code>Runtime.exec</code> which in turn
+apparently calls <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp">
+<code>::CreateProcess</code></a>. It is the latter Win32 function that defines
+the exact semantics of the call. In particular, if you do not put a file extension
+on the executable, only ".EXE" files are looked for, not ".COM", ".CMD" or other file
+types listed in the environment variable PATHEXT. That is only used by the shell.
+</p>
+  <p>
+    Note that <em>.bat</em> files cannot in general by executed directly.
+    One normally needs to execute the command shell executable <code>cmd</code>
+    using the <code>/c</code> switch.
+  </p>
+  <blockquote>
+<pre>
+&lt;target name="help"&gt;
+  &lt;exec executable="cmd"&gt;
+    &lt;arg value="/c"/&gt;
+    &lt;arg value="ant.bat"/&gt;
+    &lt;arg value="-p"/&gt;
+  &lt;/exec&gt;
+&lt;/target&gt;
+</pre></blockquote>
+
+<h4>Cygwin Users</h4>
+<p>In general the <code>&lt;exec&gt;</code> task will not understand paths such as /bin/sh for
+the executable parameter. This is because the Java VM in which Ant is running is a
+Windows executable and is not aware of Cygwin conventions.
+</p>
+
+<h4>OpenVMS Users</h4>
+<p>The command specified using <code>executable</code> and
+<code>&lt;arg&gt;</code> elements is executed exactly as specified
+inside a temporary DCL script.  This has some implications:
+<ul>
+<li>paths have to be written in VMS style</li>
+<li>if your <code>executable</code> points to a DCL script remember to
+prefix it with an <code>@</code>-sign
+(e.g. <code>executable="@[FOO]BAR.COM"</code>), just as you would in a
+DCL script</li>
+</ul>
+For <code>&lt;exec&gt;</code> to work in an environment with a Java VM
+older than version 1.4.1-2 it is also <i>required</i> that the logical
+<code>JAVA$FORK_SUPPORT_CHDIR</code> is set to <code>TRUE</code> in
+the job table (see the <i>JDK Release Notes</i>).</p>
+
+<p>Please note that the Java VM provided by HP doesn't follow OpenVMS'
+conventions of exit codes.  If you run a Java VM with this task, the
+task may falsely claim that an error occurred (or silently ignore an
+error).  Don't use this task to run <code>JAVA.EXE</code>, use a
+<code>&lt;java&gt;</code> task with the <code>fork</code> attribute
+set to <code>true</code> instead as this task will follow the VM's
+interpretation of exit codes.</p>
+
+<h4>RedHat S/390 Users</h4>
+
+<p>It has been <a
+href="http://listserv.uark.edu/scripts/wa.exe?A1=ind0404&L=vmesa-l#33">reported
+on the VMESA-LISTSERV</a> that shell scripts invoked via the Ant Exec
+task must have their interpreter specified, i.e., the scripts must
+start with something like:
+
+<blockquote>
+<pre>
+#!/bin/bash
+</pre>
+</blockquote>
+
+or the task will fail as follows:
+
+<blockquote>
+<pre>
+[exec] Warning: UNIXProcess.forkAndExec native error: Exec format error
+[exec] Result: 255
+</pre>
+</blockquote>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">the command to execute with all command line
+      arguments. <b>deprecated, use executable and nested
+      <code>&lt;arg&gt;</code> elements instead</b>.</td>
+    <td align="center" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">the command to execute without any command line
+      arguments.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory in which the command should be executed.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">os</td>
+    <td valign="top">list of Operating Systems on which the command may be
+      executed. If the current OS's name is contained in this list, the command will
+      be executed. The OS's name is determined by the Java Virtual machine and is set
+      in the &quot;os.name&quot; system property.
+      </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">osfamily</td>
+    <td valign="top">OS family as used in the &lt;os&gt; condition.
+    <em>since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">spawn</td>
+    <td valign="top">whether or not you want the command to be spawned<br>
+    Default is false.<br>
+    If you spawn a command, its output will not be logged by ant.<br>
+    The input, output, error, and result property settings are not active when spawning a process.<br>
+    <em>since Ant 1.6</em>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output. If the error stream
+      is not also redirected to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the
+    command should be redirected.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error output in Ant's
+                     log and you are redirecting output to a file/property. The error
+                     output will not be included in the output file/property. If you
+                     redirect error with the &quot;error&quot; or &quot;errorProperty&quot;
+                     attributes, this will have no effect.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output and error files should be appended to or overwritten.
+    Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the
+      command should be stored. Unless the error stream is redirected to a separate
+      file or stream, this property will include the error output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the
+      command should be stored.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard input
+                     is taken. This attribute is mutually exclusive with the
+                     inputstring attribute.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+                     executed command. This attribute is mutually exclusive with the
+                     input attribute.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resultproperty</td>
+    <td valign="top">the name of a property in which the return code of the
+      command should be stored. Only of interest if failonerror=false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+      specified time (given in milliseconds).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      return code signaling failure. Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failifexecutionfails</td>
+    <td valign="top">Stop the build if we can't start the program.
+      Defaults to true. </td>
+    <td align="center" valign="top">No</td>
+  </tr>  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate old environment when new environment
+      variables are specified.</td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">vmlauncher</td>
+    <td valign="top">Run command using the Java VM's execution facilities
+        where available. If set to false the underlying OS's shell,
+        either directly or through the antRun scripts, will be used.
+        Under some operating systems, this gives access to facilities
+        not normally available through the VM including, under Windows,
+        being able to execute scripts, rather than their associated
+        interpreter.  If you want to specify the name of the
+        executable as a relative path to the directory given by the
+        dir attribute, it may become necessary to set vmlauncher to
+        false as well.</td>
+    <td align="center" valign="top">No, default is <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">resolveexecutable</td>
+    <td valign="top">When this attribute is true, the name of the executable
+                     is resolved firstly against the project basedir and
+                     if that does not exist, against the execution
+                     directory if specified. On Unix systems, if you only
+                     want to allow execution of commands in the user's path,
+                     set this to false.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">searchpath</td>
+    <td valign="top">When this attribute is true, then
+                     system path environment variables will
+                     be searched when resolving the location
+                     of the executable. <em>since Ant 1.6.3</em></td>
+    <td align="center" valign="top">No, default is <i>false</i></td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;exec dir=&quot;${src}&quot; executable=&quot;cmd.exe&quot; os=&quot;Windows 2000&quot; output=&quot;dir.txt&quot;&gt;
+  &lt;arg line=&quot;/c dir&quot;/&gt;
+&lt;/exec&gt;</pre>
+</blockquote>
+<h3>Parameters specified as nested elements</h3>
+<h4>arg</h4>
+<p>Command line arguments should be specified as nested
+<code>&lt;arg&gt;</code> elements. See <a
+href="../using.html#arg">Command line arguments</a>.</p>
+<h4><a name="env">env</a></h4>
+<p>It is possible to specify environment variables to pass to the
+system command via nested <code>&lt;env&gt;</code> elements.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">key</td>
+    <td valign="top">
+      The name of the environment variable.
+      <br/>
+      <em>Note: (Since Ant 1.7)</em>
+      For windows, the name is case-insensitive.
+    </td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The literal value for the environment variable.</td>
+    <td align="center" rowspan="3">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">The value for a PATH like environment
+      variable. You can use ; or : as path separators and Ant will
+      convert it to the platform's local conventions.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The value for the environment variable. Will be
+      replaced by the absolute filename of the file by Ant.</td>
+  </tr>
+</table>
+<a name="redirector"><h4>redirector</h4></a>
+<i><b>Since Ant 1.6.2</b></i>
+<p>A nested <a href="../CoreTypes/redirector.html">I/O Redirector</a>
+can be specified.  In general, the attributes of the redirector behave
+as the corresponding attributes available at the task level.  The most
+notable peculiarity stems from the retention of the &lt;exec&gt;
+attributes for backwards compatibility.  Any file mapping is done
+using a <CODE>null</CODE> sourcefile; therefore not all
+<a href="../CoreTypes/mapper.html">Mapper</a> types will return
+results.  When no results are returned, redirection specifications
+will fall back to the task level attributes.  In practice this means that
+defaults can be specified for input, output, and error output files.
+</p>
+<h3>Errors and return codes</h3>
+By default the return code of a <code>&lt;exec&gt;</code> is ignored; when you set
+<code>failonerror="true"</code> then any return code signaling failure
+(OS specific) causes the build to fail. Alternatively, you can set
+<code>resultproperty</code> to the name of a property and have it assigned to
+the result code (barring immutability, of course).
+<p>
+If the attempt to start the program fails with an OS dependent error code,
+then <code>&lt;exec&gt;</code> halts the build unless <code>failifexecutionfails</code>
+is set to <code>false</code>. You can use that to run a program if it exists, but
+otherwise do nothing.
+<p>
+What do those error codes mean? Well, they are OS dependent. On Windows
+boxes you have to look at
+<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes__0-499_.asp">
+the documentation</a>; error code 2 means 'no such program', which usually means
+it is not on the path. Any time you see such an error from any Ant task, it is
+usually not an Ant bug, but some configuration problem on your machine.
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;exec executable=&quot;emacs&quot;&gt;
+  &lt;env key=&quot;DISPLAY&quot; value=&quot;:1.0&quot;/&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+<p>starts <code>emacs</code> on display 1 of the X Window System.</p>
+
+<blockquote><pre>
+&lt;property environment=&quot;env&quot;/&gt;
+&lt;exec ... &gt;
+  &lt;env key=&quot;PATH&quot; path=&quot;${env.PATH}:${basedir}/bin&quot;/&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+<p>adds <code>${basedir}/bin</code> to the <code>PATH</code> of the
+system command.</p>
+
+<blockquote><pre>
+&lt;property name="browser" location="C:/Program Files/Internet Explorer/iexplore.exe"/&gt;
+&lt;property name="file" location="ant/docs/manual/index.html"/&gt;
+
+&lt;exec executable="${browser}" spawn="true"&gt;
+    &lt;arg value="${file}"/&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+<p>Starts the <i>${browser}</i> with the specified <i>${file}</i> and end the
+Ant process. The browser will remain.</p>
+
+<blockquote><pre>
+&lt;exec executable=&quot;cat&quot;&gt;
+    &lt;redirector outputproperty=&quot;redirector.out&quot;
+                errorproperty=&quot;redirector.err&quot;
+                inputstring=&quot;blah before blah&quot;&gt;
+        &lt;inputfilterchain&gt;
+            &lt;replacestring from=&quot;before&quot; to=&quot;after&quot;/&gt;
+        &lt;/inputfilterchain&gt;
+        &lt;outputmapper type=&quot;merge&quot; to=&quot;redirector.out&quot;/&gt;
+        &lt;errormapper type=&quot;merge&quot; to=&quot;redirector.err&quot;/&gt;
+    &lt;/redirector&gt;
+&lt;/exec&gt;
+</pre></blockquote>
+
+Sends the string &quot;blah before blah&quot; to the &quot;cat&quot; executable,
+using an <a href="../CoreTypes/filterchain.html">&lt;inputfilterchain&gt;</a>
+to replace &quot;before&quot; with &quot;after&quot; on the way in.
+Output is sent to the file &quot;redirector.out&quot; and stored
+in a property of the same name.  Similarly, error output is sent to
+a file and a property, both named &quot;redirector.err&quot;.
+
+
+<p><b>Note:</b> do not try to specify arguments using
+a simple arg-element and separate them by spaces. This results in
+only a single argument containing the entire string.</p>
+<p>
+<b>Timeouts: </b> If a timeout is specified, when it is reached the
+sub process is killed and a message printed to the log. The return
+value of the execution will be "-1", which will halt the build if
+<tt>failonerror=true</tt>, but be ignored otherwise.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/fail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/fail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/fail.html	(revision 14989)
@@ -0,0 +1,129 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Fail Task</title>
+</head>
+
+<body>
+
+<h2><a name="fail">Fail</a></h2>
+<h3>Description</h3>
+<p>Exits the current build (just throwing a BuildException), optionally printing additional information.</p>
+<p>The message of the Exception can be set via the message attribute
+or character data nested into the element.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">A message giving further information on why the build exited</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only fail if a property of the given name exists
+      in the current project</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only fail if a property of the given name doesn't
+      exist in the current project</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">status</td>
+    <td valign="top">Exit using the specified status code;
+      assuming the generated Exception is not caught, the
+      JVM will exit with this status. <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<p>As an alternative to the <i>if</i>/<i>unless</i> attributes,
+  conditional failure can be achieved using a single nested
+  <code>&lt;condition&gt;</code> element, which should contain exactly one
+  core or custom condition.  For information about conditions, see
+  <a href="conditions.html">here</a>.<br><b>Since Ant 1.6.2</b>
+</p>
+
+<h3>Examples</h3>
+<pre>  &lt;fail/&gt;</pre>
+<p>will exit the current build with no further information given.</p>
+<pre>
+BUILD FAILED
+
+build.xml:4: No message
+</pre>
+
+<pre>  &lt;fail message=&quot;Something wrong here.&quot;/&gt;</pre>
+<p>will exit the current build and print something
+  like the following to wherever your output goes:
+</p>
+<pre>
+BUILD FAILED
+
+build.xml:4: Something wrong here.
+</pre>
+
+<pre>  &lt;fail&gt;Something wrong here.&lt;/fail&gt;</pre>
+<p>will give the same result as above.</p>
+
+<pre>  &lt;fail unless=&quot;thisdoesnotexist&quot;/&gt;</pre>
+<p>will exit the current build and print something
+  like the following to wherever your output goes:
+</p>
+<pre>
+BUILD FAILED
+
+build.xml:2: unless=thisdoesnotexist
+</pre>
+
+Using a condition to achieve the same effect:
+
+<pre>
+  &lt;fail&gt;
+     &lt;condition&gt;
+       &lt;not&gt;
+         &lt;isset property=&quot;thisdoesnotexist&quot;/&gt;
+       &lt;/not&gt;
+     &lt;/condition&gt;
+   &lt;/fail&gt;
+</pre>
+
+<p>Output:</p>
+<pre>
+BUILD FAILED
+
+build.xml:2: condition satisfied
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/filter.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/filter.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/filter.html	(revision 14989)
@@ -0,0 +1,79 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Filter Task</title>
+</head>
+
+<body>
+
+<h2><a name="filter">Filter</a></h2>
+<h3>Description</h3>
+<p>Sets a token filter for this project or read multiple token filter from
+an input file and sets these as filters.
+Token filters are used by all tasks that perform file copying operations
+through the Project commodity methods. See the warning
+<a href="../using.html#filters"><em>here</em></a> before using.</p>
+<p>Note 1: the token string must not contain the separators chars (@).<br>
+Note 2: Either token and value attributes must be provided, or only the
+filtersfile attribute.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">token</td>
+    <td valign="top">the token string without @</td>
+    <td align="center" valign="top">Yes*</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the string that should be put to replace the token when the 
+      file is copied</td>
+    <td align="center" valign="top">Yes*</td>
+  </tr>
+  <tr>
+    <td valign="top">filtersfile</td>
+    <td valign="top">The file from which the filters must be read. This file must be a formatted as a property file. </td>
+    <td align="center" valign="top">Yes*</td>
+  </tr>
+</table>
+<p>* see notes 1 and 2 above parameters table.</p>
+<h3>Examples</h3>
+<pre>  &lt;filter token=&quot;year&quot; value=&quot;2000&quot;/&gt;
+  &lt;copy todir=&quot;${dest.dir}&quot; filtering=&quot;true&quot;&gt;
+    &lt;fileset dir=&quot;${src.dir}&quot;/&gt;
+  &lt;/copy&gt;</pre> 
+<p>will copy recursively all the files from the <i>src.dir</i> directory into
+the <i>dest.dir</i> directory replacing all the occurrences of the string <i>@year@</i>
+with <i>2000.</i></p>
+<pre>  &lt;filter filtersfile=&quot;deploy_env.properties&quot;/&gt;</pre>
+will read all property entries from the <i>deploy_env.properties</i> file
+and set these as filters.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/fixcrlf.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/fixcrlf.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/fixcrlf.html	(revision 14989)
@@ -0,0 +1,327 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FixCRLF Task</title>
+</head>
+
+<body>
+
+<h2><a name="fixcrlf">FixCRLF</a></h2>
+<h3>Description</h3>
+  <p>
+    Adjusts a text file to local conventions.
+  </p>
+
+  <p>
+    The set of files to be adjusted can be refined with the
+    <i>includes</i>, <i>includesfile</i>, <i>excludes</i>,
+    <i>excludesfile</i> and <i>defaultexcludes</i>
+    attributes. Patterns provided through the <i>includes</i> or
+    <i>includesfile</i> attributes specify files to be
+    included. Patterns provided through the <i>exclude</i> or
+    <i>excludesfile</i> attribute specify files to be
+    excluded. Additionally, default exclusions can be specified with
+    the <i>defaultexcludes</i> attribute. See the section on <a
+    href="../dirtasks.html#directorybasedtasks">directory-based
+    tasks</a>, for details of file inclusion/exclusion patterns
+    and their usage.
+  </p>
+
+  <p>
+    This task forms an implicit
+    <a href="../CoreTypes/fileset.html">FileSet</a> and
+    supports all attributes of <code>&lt;fileset&gt;</code>
+    (<code>dir</code> becomes <code>srcdir</code>) as well as the nested
+    <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+    <code>&lt;patternset&gt;</code> elements.
+  </p>
+
+  <p>
+    The output file is only written if it is a new file, or if it
+    differs from the existing file.  This prevents spurious
+    rebuilds based on unchanged files which have been regenerated
+    by this task.
+  </p>
+
+  <p>
+    Since <b>Ant 1.7</b>, this task can be used in a
+    <a href="../CoreTypes/filterchain.html">filterchain</a>.
+  </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="center" rowspan="2"><b>Attribute</b></td>
+    <td valign="center" rowspan="2"><b>Description</b></td>
+    <td align="center" valign="top" colspan="2"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="center"><b>As Task</b></td>
+    <td valign="center"><b>As Filter</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">Where to find the files to be fixed up.</td>
+    <td valign="top" align="center" rowspan="2">One of these</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">Name of a single file to fix. <b>Since Ant 1.7</b></td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">destDir</td>
+    <td valign="top">Where to place the corrected files.  Defaults to
+      srcDir (replacing the original file).</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern.</td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.
+    </td>
+    <td valign="top" align="center">No</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the files.</td>
+    <td align="center">No; defaults to default JVM encoding.</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The encoding to use when writing the files.
+                     <b>Since Ant 1.7</b></td>
+    <td align="center">No; defaults to the value of the encoding attribute.</td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Whether to preserve the last modified
+                     date of source files. <b>Since Ant 1.6.3</b></td>
+    <td align="center">No; default is <i>false</i></td>
+    <td bgcolor="#CCCCCC">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">eol</td>
+    <td valign="top">
+      Specifies how end-of-line (EOL) characters are to be
+      handled.  The EOL characters are CR, LF and the pair CRLF.
+      Valid values for this property are:
+      <ul>
+        <li>asis: leave EOL characters alone</li>
+        <li>cr: convert all EOLs to a single CR</li>
+        <li>lf: convert all EOLs to a single LF</li>
+        <li>crlf: convert all EOLs to the pair CRLF</li>
+        <li>mac: convert all EOLs to a single CR</li>
+        <li>unix: convert all EOLs to a single LF</li>
+        <li>dos: convert all EOLs to the pair CRLF</li>
+      </ul>
+      Default is based on the platform on which you are running this task.
+      For Unix platforms (including Mac OS X), the default is &quot;lf&quot;.
+      For DOS-based systems (including Windows), the default is
+      &quot;crlf&quot;.
+      For Mac environments other than OS X, the default is &quot;cr&quot;.
+      <p>
+        This is the preferred method for specifying EOL.  The
+        &quot;<i><b>cr</b></i>&quot; attribute (see below) is
+        now deprecated.
+      </p>
+      <p>
+        <i>N.B.</i>: One special case is recognized. The three
+        characters CR-CR-LF are regarded as a single EOL.
+        Unless this property is specified as &quot;asis&quot;,
+        this sequence will be converted into the specified EOL
+        type.
+      </p>
+    </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cr</td>
+    <td valign="top">
+      <i><b>Deprecated.</b></i> Specifies how CR characters are
+      to be handled at end-of-line (EOL).  Valid values for this
+      property are:
+      <ul>
+        <li>asis: leave EOL characters alone.</li>
+        <li>
+          add: add a CR before any single LF characters. The
+          intent is to convert all EOLs to the pair CRLF.
+        </li>
+        <li>
+          remove: remove all CRs from the file.  The intent is
+          to convert all EOLs to a single LF.
+        </li>
+      </ul>
+      Default is based on the platform on which you are running
+      this task.  For Unix platforms, the default is &quot;remove&quot;.
+      For DOS based systems (including Windows), the default is
+      &quot;add&quot;.
+      <p>
+        <i>N.B.</i>: One special case is recognized. The three
+        characters CR-CR-LF are regarded as a single EOL.
+        Unless this property is specified as &quot;asis&quot;,
+        this sequence will be converted into the specified EOL
+        type.
+      </p>
+    </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">javafiles</td>
+    <td valign="top">
+      Used only in association with the
+      &quot;<i><b>tab</b></i>&quot; attribute (see below), this
+      boolean attribute indicates whether the fileset is a set
+      of java source files
+      (&quot;yes&quot;/&quot;no&quot;). Defaults to
+      &quot;no&quot;.  See notes in section on &quot;tab&quot;.
+    </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tab</td>
+    <td valign="top">Specifies how tab characters are to be handled.  Valid
+      values for this property are:
+      <ul>
+      <li>add: convert sequences of spaces which span a tab stop to tabs</li>
+      <li>asis: leave tab and space characters alone</li>
+      <li>remove: convert tabs to spaces</li>
+      </ul>
+      Default for this parameter is &quot;asis&quot;.
+      <p>
+        <i>N.B.</i>: When the attribute
+        &quot;<i><b>javafiles</b></i>&quot; (see above) is
+        &quot;true&quot;, literal TAB characters occurring
+        within Java string or character constants are never
+        modified.  This functionality also requires the
+        recognition of Java-style comments.
+      </p>
+      <p>
+  	<i>N.B.</i>: There is an incompatibility between this
+  	and the previous version in the handling of white
+  	space at the end of lines.  This version does
+  	<i><b>not</b></i> remove trailing whitespace on lines.
+      </p>
+    </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tablength</td>
+    <td valign="top">TAB character interval. Valid values are between
+      2 and 80 inclusive.  The default for this parameter is 8.</td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">eof</td>
+    <td valign="top">Specifies how DOS end of file (control-Z) characters are
+      to be handled.  Valid values for this property are:
+      <ul>
+      <li>add: ensure that there is an EOF character at the end of the file</li>
+      <li>asis: leave EOF characters alone</li>
+      <li>remove: remove any EOF character found at the end</li>
+      </ul>
+      Default is based on the platform on which you are running this task.
+      For Unix platforms, the default is remove.  For DOS based systems
+      (including Windows), the default is asis.
+      </td>
+    <td valign="top" align="center" colspan="2">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fixlast</td>
+    <td valign="top">Whether to add a missing EOL to the last line
+                     of a processed file. <b>Since Ant 1.6.1</b></td>
+    <td align="center" colspan="2">No; default is <i>true</i></td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>&lt;fixcrlf srcdir=&quot;${src}&quot; includes=&quot;**/*.sh&quot;
+         eol=&quot;lf&quot; eof=&quot;remove&quot; /&gt;</pre>
+<p>Replaces EOLs with LF characters and removes eof characters from
+  the shell scripts.  Tabs and spaces are left as is.</p>
+<pre>&lt;fixcrlf srcdir=&quot;${src}&quot;
+         includes=&quot;**/*.bat&quot; eol=&quot;crlf&quot; /&gt;</pre>
+<p>Replaces all EOLs with cr-lf pairs in the batch files.
+  Tabs and spaces are left as is.
+  EOF characters are left alone if run on
+  DOS systems, and are removed if run on Unix systems.</p>
+<pre>&lt;fixcrlf srcdir=&quot;${src}&quot;
+         includes=&quot;**/Makefile&quot; tab=&quot;add&quot; /&gt;</pre>
+<p>Sets EOLs according to local OS conventions, and
+  converts sequences of spaces and tabs to the minimal set of spaces and
+  tabs which will maintain spacing within the line.  Tabs are
+  set at 8 character intervals.  EOF characters are left alone if
+  run on DOS systems, and are removed if run on Unix systems.
+  Many versions of make require tabs prior to commands.</p>
+  <pre>&lt;fixcrlf srcdir=&quot;${src}&quot; includes=&quot;**/*.java&quot;
+         tab=&quot;remove&quot; tablength=&quot;3&quot;
+         eol=&quot;lf&quot; javafiles=&quot;yes&quot; /&gt;</pre>
+<p>
+  Converts all EOLs in the included java source files to a
+  single LF.  Replace all TAB characters except those in string
+  or character constants with spaces, assuming a tab width of 3.
+  If run on a unix system, any CTRL-Z EOF characters at the end
+  of the file are removed.  On DOS/Windows, any such EOF
+  characters will be left untouched.
+</p>
+<pre>&lt;fixcrlf srcdir=&quot;${src}&quot;
+         includes=&quot;**/README*&quot; tab=&quot;remove&quot; /&gt;</pre>
+<p>Sets EOLs according to local OS conventions, and
+  converts all tabs to spaces, assuming a tab width of 8.
+  EOF characters are left alone if run on
+  DOS systems, and are removed if run on Unix systems.
+  You never know what editor a user will use to browse READMEs.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/genkey.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/genkey.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/genkey.html	(revision 14989)
@@ -0,0 +1,125 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GenKey Task</title>
+</head>
+
+<body>
+
+<h2><a name="genkey">GenKey</a></h2>
+<h3>Description</h3>
+<p>Generates a key in a keystore. </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">alias</td>
+    <td valign="top">the alias to add under</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">storepass</td>
+    <td valign="top">password for keystore integrity. Must
+	be at least 6 characters long</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">keystore</td>
+    <td valign="top">keystore location</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">storetype</td>
+    <td valign="top">keystore type</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keypass</td>
+    <td valign="top">password for private key (if different)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sigalg</td>
+    <td valign="top">the algorithm to use in signing</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keyalg</td>
+    <td valign="top">the method to use when generating name-value pair</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">(true | false) verbose output when signing</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dname</td>
+    <td valign="top">The distinguished name for entity</td>
+    <td valign="top" align="center">Yes if dname element unspecified</td>
+  </tr>
+  <tr>
+    <td valign="top">validity</td>
+    <td valign="top">(integer) indicates how many days certificate is valid</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keysize</td>
+    <td valign="top">(integer) indicates the size of key generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p>Alternatively you can specify the distinguished name by creating a
+sub-element named dname and populating it with param elements that
+have a name and a value. When using the subelement it is automatically
+encoded properly and commas (&quot;<code>,</code>&quot;) are replaced
+with &quot;<code>\,</code>&quot;.</p>
+
+<p>The following two examples are identical: </p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;genkey alias=&quot;apache-group&quot; storepass=&quot;secret&quot; 
+  dname=&quot;CN=Ant Group, OU=Jakarta Division, O=Apache.org, C=US&quot;/&gt;
+</pre></blockquote>
+
+<blockquote>
+  <pre>
+&lt;genkey alias=&quot;apache-group&quot; storepass=&quot;secret&quot; &gt;
+  &lt;dname&gt;
+    &lt;param name=&quot;CN&quot; value=&quot;Ant Group&quot;/&gt;
+    &lt;param name=&quot;OU&quot; value=&quot;Jakarta Division&quot;/&gt;
+    &lt;param name=&quot;O&quot;  value=&quot;Apache.Org&quot;/&gt;
+    &lt;param name=&quot;C&quot;  value=&quot;US&quot;/&gt;
+  &lt;/dname&gt;
+&lt;/genkey&gt;</pre>
+</blockquote>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/get.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/get.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/get.html	(revision 14989)
@@ -0,0 +1,125 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Get Task</title>
+</head>
+
+<body>
+
+<h2><a name="get">Get</a></h2>
+<h3>Description</h3>
+<p>Gets a file from a URL. When the verbose option is &quot;on&quot;, this task
+displays a '.' for every 100 Kb retrieved. Any URL schema supported by
+the runtime is valid here, including http:, ftp: and jar:; 
+https: is only valid if the appropriate support is added to the pre-1.4 Java
+runtimes. 
+ 
+</p>
+The <i>usetimestamp</i> option enables you to control downloads so that the remote file is
+only fetched if newer than the local copy. If there is no local copy, the download always takes 
+place. When a file is downloaded, the timestamp of the downloaded file is set to the remote timestamp,
+if  the JVM is Java1.2 or later. 
+NB: This timestamp facility only works on downloads using the HTTP protocol. 
+<p>
+A username and password can be specified, in which case basic 'slightly encoded
+plain text' authentication is used. This is only secure over an HTTPS link.
+</p>
+<p>
+<b>Proxies</b>. Since Ant1.7, Ant running on Java1.5 or later defaults to 
+    <a href="../proxy.html">using
+    the proxy settings of the operating system</a>. There is also the  
+ <a href="../OptionalTasks/setproxy.html">&lt;setproxy&gt;</a> task for
+    earlier Java versions. With proxies turned on, <code>&lt;get&gt;</code> requests against
+    localhost may not work as expected, if the request is relayed to the proxy.
+    The <code>-noproxy</code> option can be used to turn this feature off.
+</p>
+ 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the URL from which to retrieve a file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the file where to store the retrieved file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">show verbose progress information (&quot;on&quot;/&quot;off&quot;).</td>
+    <td align="center" valign="top">No; default "false"</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoreerrors</td>
+    <td valign="top">Log errors but don't treat as fatal.</td>
+    <td align="center" valign="top">No; default "false"</td>
+  </tr>
+  <tr>
+    <td valign="top">usetimestamp</td>
+    <td valign="top">conditionally download a file based on the timestamp of the
+    local copy. HTTP only</td>
+    <td align="center" valign="top">No; default "false"</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">username for 'BASIC' http authentication</td>
+    <td align="center" valign="top">if password is set</td>
+  </tr>  
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">password: required </td>
+    <td align="center" valign="top">if username is set</td>
+  </tr>  
+
+</table>
+<h3>Examples</h3>
+<pre>  &lt;get src=&quot;http://ant.apache.org/&quot; dest=&quot;help/index.html&quot;/&gt;</pre>
+<p>Gets the index page of http://ant.apache.org/, and stores it in the file <code>help/index.html</code>.</p>
+
+<pre>  &lt;get src=&quot;http://www.apache.org/dist/ant/KEYS&quot; 
+    dest=&quot;KEYS&quot; 
+    verbose=&quot;true&quot;
+    usetimestamp=&quot;true&quot;/&gt;</pre>
+<p>
+Gets the PGP keys of Ant's (current and past) release managers, if the local copy
+is missing or out of date. Uses the verbose option 
+for progress information.
+</p>
+
+<pre>  &lt;get src=&quot;https://insecure-bank.org/statement/user=1214&quot; 
+    dest=&quot;statement.html&quot; 
+    username="1214";
+    password="secret"/&gt;</pre>
+<p>
+Fetches some file from a server with access control. Because https is being used the
+fact that basic auth sends passwords in plaintext is moot.
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/gunzip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/gunzip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/gunzip.html	(revision 14989)
@@ -0,0 +1,29 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GUnZip Task</title>
+</head>
+
+<body>
+This document's new home is <A HREF="unpack.html">here</A>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/gzip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/gzip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/gzip.html	(revision 14989)
@@ -0,0 +1,29 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GZip Task</title>
+</head>
+
+<body>
+This document's new home is <A HREF="pack.html">here</A>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/import.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/import.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/import.html	(revision 14989)
@@ -0,0 +1,173 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Import Task</title>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+<body>
+  <h2><a name="import">Import</a></h2>
+  <h3>Description</h3>
+  <p>
+    Imports another build file into the current project.
+  </p>
+  <p>
+    On execution it will read another Ant file into
+    the same Project. This means that it basically works like the 
+    <a href="http://ant.apache.org/faq.html#xml-entity-include">Entity
+      Includes as explained in the Ant FAQ</a>, as if the imported file was
+    contained in the importing file, minus the top <code>&lt;project&gt;</code>
+    tag.
+  </p>
+  <p>
+    The import task may only be used as a top-level task. This means that
+    it may not be used in a target.
+  </p>
+  <p>
+There are two further functional aspects that pertain to this task and
+that are not possible with entity includes:
+<ul>
+  <li>target overriding</li>
+  <li>special properties</li>
+</ul>
+  </p>
+<h4>Target overriding</h4>
+
+<p>If a target in the main file is also present in at least one of the
+imported files, the one from the main file takes precedence.</p>
+
+<p>So if I import for example a <i>docsbuild.xml</i> file named <b>builddocs</b>,
+that contains a &quot;<b>docs</b>&quot; target, I can redefine it in my main
+buildfile and that is the one that will be called. This makes it easy to
+keep the same target name, so that the overriding target is still called
+by any other targets--in either the main or imported buildfile(s)--for which
+it is a dependency, with a different implementation. The target from <i>docsbuild.xml</i> is
+made available by the name &quot;<b>builddocs</b><b>.docs</b>&quot;.
+This enables the new implementation to call the old target, thus
+<i>enhancing</i> it with tasks called before or after it.</p>
+
+<h4>Special Properties</h4>
+
+<p>Imported files are treated as they are present in the main
+buildfile. This makes it easy to understand, but it makes it impossible
+for them to reference files and resources relative to their path.
+Because of this, for every imported file, Ant adds a property that
+contains the path to the imported buildfile. With this path, the
+imported buildfile can keep resources and be able to reference them
+relative to its position.</p>
+
+<p>So if I import for example a <i>docsbuild.xml</i> file named <b>builddocs</b>,
+I can get its path as <b>ant.file.builddocs</b>, similarly to the <b>ant.file</b>
+property of the main buildfile.</p>
+
+<p>Note that &quot;builddocs&quot; is not the filename, but the name attribute
+present in the imported project tag.</p>
+  <p>
+    If import file does not have a name attribute, the ant.file.projectname
+    property will not be set.
+  </p>
+
+<h4>Resolving files against the imported file</h4>
+
+<p>Suppose your main build file called <code>importing.xml</code>
+imports a build file <code>imported.xml</code>, located anywhere on
+the file system, and <code>imported.xml</code> reads a set of
+properties from <code>imported.properties</code>:</p>
+
+<pre>&lt;!-- importing.xml --&gt;
+&lt;project name="importing" basedir="." default="..."&gt;
+&nbsp; &lt;import file="${path_to_imported}/imported.xml"/&gt;
+&lt;/project&gt;
+
+&lt;!-- imported.xml --&gt;
+&lt;project name="imported" basedir="." default="..."&gt;
+&nbsp; &lt;property file="imported.properties"/&gt;
+&lt;/project&gt;
+</pre>
+
+<p>This snippet however will resolve <code>imported.properties</code>
+against the basedir of <code>importing.xml</code>, because the basedir
+of <code>imported.xml</code> is ignored by Ant. The right way to use
+<code>imported.properties</code> is:</p>
+
+<pre>
+&lt;!-- imported.xml --&gt;
+&lt;project name="imported" basedir="." default="..."&gt;
+&nbsp; &lt;dirname property="imported.basedir" file="${ant.file.imported}"/&gt;
+&nbsp; &lt;property file="${imported.basedir}/imported.properties"/&gt;
+&lt;/project&gt;
+</pre>
+
+<p>As explained above <code>${ant.file.imported}</code> stores the
+path of the build script, that defines the project called
+<code>imported</code>, (in short it stores the path to
+<code>imported.xml</code>) and <a
+href="dirname.html"><code>&lt;dirname&gt;</code></a> takes its
+directory. This technique also allows <code>imported.xml</code> to be
+used as a standalone file (without being imported in other
+project).</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody>
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">
+        file
+      </td>
+      <td valign="top">
+        The file to import. If this is a relative file name, the file name will be resolved
+        relative to the <i>importing</i> file. <b>Note</b>, this is unlike most other
+        ant file attributes, where relative files are resolved relative to ${basedir}.
+      </td>
+      <td valign="top" align="center">Yes</td>
+    </tr>
+    <tr>
+      <td valign="top">
+        optional
+      </td>
+      <td valign="top">
+        If true, do not stop the build if the file does not exist,
+        default is false.
+      </td>
+      <td valign="top" align="center">No</td>
+    </tr>
+  </tbody>
+</table>
+
+<h3>Examples</h3>
+<pre>&nbsp; &lt;import file=&quot;../common-targets.xml&quot;/&gt;
+</pre>
+
+<p>Imports targets from the common-targets.xml file that is in a parent
+directory.</p>
+
+<pre>&nbsp; &lt;import file=&quot;${deploy-platform}.xml&quot;/&gt;
+</pre>
+
+<p>Imports the project defined by the property deploy-platform</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/input.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/input.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/input.html	(revision 14989)
@@ -0,0 +1,195 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Input Task</title>
+</head>
+
+<body>
+
+<h2><a name="input">Input</a></h2>
+<h3>Description</h3>
+
+<p>Allows user interaction during the build process by prompting for
+input.  To do so, it uses the configured 
+<a href="../inputhandler.html">InputHandler</a>.</p>
+
+<p>The prompt can be set via the message attribute or as character
+data nested into the element.</p>
+
+<p>Optionally a set of valid input arguments can be defined via the
+validargs attribute. Input task will not accept a value that doesn't match
+one of the predefined.</p>
+
+<p>Optionally a property can be created from the value entered by the
+user. This property can then be used during the following build
+run. Input behaves according to <a href="property.html">property
+task</a> which means that existing properties cannot be overriden.
+Since Ant 1.6, <code>&lt;input&gt;</code> will not prompt for input if
+a property should be set by the task that has already been set in the
+project (and the task wouldn't have any effect).</p>
+
+<p>A regular complaint about this task is that it echoes characters to the
+console, this is a critical security defect, we must fix it immediately, etc, etc.
+We know it leaves something to be desired, but the problem is Java, not Ant.
+There is nothing we can do to stop the console echoing. </p>
+
+<p>
+IDE behaviour depends upon the IDE: some hang waiting for input, some let you
+type it in. For this situation, place the password in a (secured) property
+file and load in before the input task.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">the Message which gets displayed to the user
+    during the build run.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">validargs</td>
+    <td valign="top">comma separated String containing valid input
+    arguments. If set, input task will reject any input not defined
+    here.  Validargs are compared case sensitive. If you want 'a' and
+    'A' to be accepted you will need to define both arguments within
+    validargs.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">addproperty</td>
+    <td valign="top">the name of a property to be created from
+    input. Behaviour is equal to <a href="property.html">property
+    task</a> which means that existing properties cannot be
+    overridden.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultvalue</td>
+    <td valign="top">Defines the default value of the property to be
+    created from input.  Property value will be set to default if no
+    input is received.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters Specified as Nested Elements</h3>
+<h4>Handler</h4>
+<p>Since <b>Ant 1.7</b>, a nested &lt;handler&gt; element can be used to
+specify an InputHandler, so that different InputHandlers may be used
+among different Input tasks.
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">one of "default","propertyfile", or "greedy".
+    </td>
+    <td align="center" valign="top" rowspan="3">One of these</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">Reference to an <code>InputHandler</code>
+        defined elsewhere in the project.
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">The name of an <code>InputHandler</code> subclass.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use with <i>classname</i>.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The refid of a classpath to use with <i>classname</i>.</td>
+    <td valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">loaderref</td>
+    <td valign="top">The refid of a classloader to use with <i>classname</i>.
+    </td>
+    <td valign="top">No</td>
+  </tr>
+</table>
+<br />
+The classpath can also be specified by means of one or more nested
+&lt;classpath&gt; elements.</p>
+
+<h3>Examples</h3>
+<pre>  &lt;input/&gt;</pre>
+<p>Will pause the build run until return key is pressed when using the
+<a href="../inputhandler.html#defaulthandler">default
+InputHandler</a>, the concrete behavior is defined by the InputHandler
+implementation you use.</p>
+<pre>  &lt;input&gt;Press Return key to continue...&lt;/input&gt;</pre>
+<p>Will display the message &quot;Press Return key to
+continue...&quot; and pause the build run until return key is pressed
+(again, the concrete behavior is implementation dependent).</p>
+<pre>  &lt;input
+    message=&quot;Press Return key to continue...&quot;
+  /&gt;</pre>
+<p>Will display the message &quot;Press Return key to
+continue...&quot; and pause the build run until return key is pressed
+(see above).</p>
+<pre>
+  &lt;input
+    message=&quot;All data is going to be deleted from DB continue (y/n)?&quot;
+    validargs=&quot;y,n&quot;
+    addproperty=&quot;do.delete&quot;
+  /&gt;
+  &lt;condition property=&quot;do.abort&quot;&gt;
+    &lt;equals arg1=&quot;n&quot; arg2=&quot;${do.delete}&quot;/&gt;
+  &lt;/condition&gt;
+  &lt;fail if=&quot;do.abort&quot;&gt;Build aborted by user.&lt;/fail&gt;
+</pre>
+<p>Will display the message &quot;All data is going to be deleted from
+DB continue (y/n)?&quot; and require 'y' to continue build or 'n' to
+exit build with following message &quot;Build aborted by
+user.&quot;.</p>
+<pre>  &lt;input
+    message=&quot;Please enter db-username:&quot;
+    addproperty=&quot;db.user&quot;
+  /&gt;</pre>
+<p>Will display the message &quot;Please enter db-username:&quot; and set the
+property <code>db.user</code> to the value entered by the user.</p>
+
+<pre>  &lt;input
+    message=&quot;Please enter db-username:&quot;
+    addproperty=&quot;db.user&quot;
+    defaultvalue=&quot;Scott-Tiger&quot;
+  /&gt;</pre>
+<p>Same as above, but will set <code>db.user</code> to the value
+<i>Scott- Tiger</i> if the user enters no value (simply types
+&lt;return&gt;).</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/jar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/jar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/jar.html	(revision 14989)
@@ -0,0 +1,408 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Jar Task</title>
+</head>
+
+<body>
+
+<h2><a name="jar">Jar</a></h2>
+<h3>Description</h3>
+<p>Jars a set of files.</p>
+<p>The <i>basedir</i> attribute is the reference directory from where to jar.</p>
+<p>Note that file permissions will not be stored in the resulting jarfile.</p>
+<p>It is possible to refine the set of files that are being jarred. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>basedir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>You can also use nested file sets for more flexibility, and specify
+multiple ones to merge together different trees of files into one JAR.
+The extended fileset and groupfileset child elements from the zip task are
+also available in the jar task.
+See the <a href="zip.html">Zip</a> task for more details and examples.</p>
+<p>If the manifest is omitted, a simple one will be supplied by Ant.</p>
+
+<p>The <code>update</code> parameter controls what happens if the JAR
+file already exists. When set to <code>yes</code>, the JAR file is
+updated with the files specified. When set to <code>no</code> (the
+default) the JAR file is overwritten. An example use of this is
+provided in the <a href="zip.html">Zip task documentation</a>.  Please
+note that ZIP files store file modification times with a granularity
+of two seconds.  If a file is less than two seconds newer than the
+entry in the archive, Ant will not consider it newer.</p>
+
+<p>The <code>whenmanifestonly</code> parameter controls what happens when no
+files, apart from the manifest file, or nested services, match.
+If <code>skip</code>, the JAR is not created and a warning is issued.
+If <code>fail</code>, the JAR is not created and the build is halted with an error.
+If <code>create</code>, (default) an empty JAR file (only containing a manifest and services)
+is created.</p>
+
+<p>(The Jar task is a shortcut for specifying the manifest file of a JAR file.
+The same thing can be accomplished by using the <i>fullpath</i>
+attribute of a zipfileset in a Zip task. The one difference is that if the
+<i>manifest</i> attribute is not specified, the Jar task will
+include an empty one for you.)</p>
+
+<p>Manifests are processed by the Jar task according to the
+<a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html">Jar file specification.</a>
+Note in particular that this may result in manifest lines greater than 72 bytes
+being wrapped and continued on the next line.
+</p>
+
+<p><b>Please note that the zip format allows multiple files of the same
+fully-qualified name to exist within a single archive.  This has been
+documented as causing various problems for unsuspecting users.  If you wish
+to avoid this behavior you must set the <code>duplicate</code> attribute
+to a value other than its default, <code>"add"</code>.</b></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the JAR file to create.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">the manifest file to use.  This can be either the location of a manifest, or the name of a jar added through a fileset.  If its the name of an added jar, the task expects the manifest to be in the jar at META-INF/MANIFEST.MF</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesetmanifest</td>
+    <td valign="top">behavior when a Manifest is found in a zipfileset or zipgroupfileset file is found.  Valid values are &quot;skip&quot;, &quot;merge&quot;, and &quot;mergewithoutmain&quot;.  &quot;merge&quot; will merge all of the manifests together, and merge this into any other specified manifests.  &quot;mergewithoutmain&quot; merges everything but the Main section of the manifests.  Default value is &quot;skip&quot;.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">whenmanifestonly</td>
+    <td valign="top">behavior when no files match.  Valid values are &quot;fail&quot;, &quot;skip&quot;, and &quot;create&quot;.  Default is &quot;create&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">index</td>
+    <td valign="top">whether to create an <A
+    HREF="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#JAR%20Index">index
+    list</A> to speed up classloading.  This is a JDK 1.3+ specific
+    feature.  Unless you specify additional jars with nested <a
+    href="#indexjars"><code>indexjars</code></a> elements, only the
+    contents of this jar will be included in the index.  Defaults to
+    false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifestencoding</td>
+    <td valign="top">The encoding used to read the JAR manifest, when a manifest file is specified.</td>
+    <td valign="top" align="center">No, defaults to the platform encoding.</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Non-default level at which file compression should be
+    performed. Valid values range from 0 (no compression/fastest) to 9
+    (maximum compression/slowest). <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested elements</h3>
+<h4>metainf</h4>
+<p>The nested <code>metainf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>META-INF</code> directory of the jar file. If this
+fileset includes a file named <code>MANIFEST.MF</code>, the file is
+ignored and you will get a warning.</p>
+
+<h4>manifest</h4>
+<p>The manifest nested element allows the manifest for the Jar file to
+be provided inline in the build file rather than in an external
+file. This element is identical to the
+<a href="manifest.html">manifest</a> task, but the file and mode
+attributes must be omitted.</p>
+<p>
+If both an inline manifest and an external file are both specified, the
+manifests are merged.
+</p>
+
+<p>When using inline manifests, the Jar task will check whether the manifest
+contents have changed (i.e. the manifest as specified is different in any way
+from the manifest that exists in the Jar, if it exists.
+If the manifest values have changed the jar will be updated or rebuilt, as
+appropriate.
+</p>
+
+<a name="indexjars"><h4>indexjars</h4></a>
+
+<p><em>since ant 1.6.2</em></p>
+
+<p>The nested <code>indexjars</code> element specifies a <a
+href="../using.html#path">PATH like structure</a>.  Its content is
+completely ignored unless you set the index attribute of the task to
+true.</p>
+
+<p>The index created by this task will contain indices for the
+archives contained in this path, the names used for the archioves
+depend on your manifest:</p>
+<ul>
+  <li>If the generated jar's manifest contains no Class-Path
+  attribute, the file name without any leading directory path will be
+  used and all parts of the path will get indexed.</li>
+  <li>If the manifest contains a Class-Path attribute, this task will
+  try to guess which part of the Class-Path belongs to a given
+  archive.  If it cannot guess a name, the archive will be skipped,
+  otherwise tha name listed inside the Class-PAth attribute will be
+  used.</li>
+</ul>
+
+<p>This task will not create any index entries for archives that are
+empty or only contain files inside the META-INF directory.</p>
+<a name="service"><h4>service</h4></a>
+
+<p><em>since ant 1.7.0</em></p>
+
+<p>
+  The nested <code>service</code> element specifies a service.
+  Services are described by
+  <a href="http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider">http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider</a>.
+  The approach is to have providers JARs include files named by the service
+  provided, for example,
+  META-INF/services/javax.script.ScriptEngineFactory
+  which can include implementation class names, one per line (usually just one per JAR).
+
+  The name of the
+  service is set by the "type" attribute. The classname implementing
+  the service is the the "provider" attribute, or it one wants to
+  specify a number of classes that implement the service, by
+  "provider" nested elements.
+</p>
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">The name of the service.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">provider</td>
+    <td valign="top">
+      The classname of the class implemening the service.
+    </td>
+    <td valign="top" align="center">Yes, unless there is a nested
+      <code>&lt;provider&gt;</code> element.</td>
+  </tr>
+</table>
+  <p>
+    The provider classname is specified either by the "provider" attribute, or
+    by a nested &lt;provider&gt; element, which has a single "classname" attribute.
+    If a JAR file has more that one implementation of the service, a number of
+    nested &lt;provider&gt; elements may be used.
+  </p>
+<h3>Examples</h3>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot; basedir=&quot;${build}/classes&quot;/&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory.</p>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot;
+       basedir=&quot;${build}/classes&quot;
+       excludes=&quot;**/Test.class&quot;
+  /&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Files
+with the name <code>Test.class</code> are excluded.</p>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot;
+       basedir=&quot;${build}/classes&quot;
+       includes=&quot;mypackage/test/**&quot;
+       excludes=&quot;**/Test.class&quot;
+  /&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Only
+files under the directory <code>mypackage/test</code> are used, and files with
+the name <code>Test.class</code> are excluded.</p>
+<pre>  &lt;jar destfile=&quot;${dist}/lib/app.jar&quot;&gt;
+    &lt;fileset dir=&quot;${build}/classes&quot;
+             excludes=&quot;**/Test.class&quot;
+    /&gt;
+    &lt;fileset dir=&quot;${src}/resources&quot;/&gt;
+  &lt;/jar&gt;</pre>
+<p>jars all files in the <code>${build}/classes</code> directory and also
+in the <code>${src}/resources</code> directory together into a file
+called <code>app.jar</code> in the <code>${dist}/lib</code> directory.
+Files with the name <code>Test.class</code> are excluded.
+If there are files such as <code>${build}/classes/mypackage/MyClass.class</code>
+and <code>${src}/resources/mypackage/image.gif</code>, they will appear
+in the same directory in the JAR (and thus be considered in the same package
+by Java).</p>
+
+<pre>  &lt;jar destfile=&quot;test.jar&quot; basedir=&quot;.&quot;&gt;
+    &lt;include name=&quot;build&quot;/&gt;
+    &lt;manifest&gt;
+      &lt;attribute name=&quot;Built-By&quot; value=&quot;${user.name}&quot;/&gt;
+      &lt;section name=&quot;common/class1.class&quot;&gt;
+        &lt;attribute name=&quot;Sealed&quot; value=&quot;false&quot;/&gt;
+      &lt;/section&gt;
+    &lt;/manifest&gt;
+  &lt;/jar&gt;</pre>
+<p>
+This is an example of an inline manifest specification. Note that the Built-By
+attribute will take the value of the Ant property ${user.name}. The manifest
+produced by the above would look like this:
+</p>
+<pre><code>Manifest-Version: 1.0
+Built-By: conor
+Created-By: Apache Ant 1.6.5
+
+Name: common/MyClass.class
+Sealed: false</code></pre>
+
+
+<p>
+  The following shows how to create a jar file specifing a service
+  with an implementation of the JDK6 scripting interface:
+</p>
+<blockquote><pre>&lt;jar jarfile="pinky.jar"&gt;
+  &lt;fileset dir="build/classes"/&gt;
+  &lt;service type="javax.script.ScriptEngineFactory"
+           provider="org.acme.PinkyLanguage"/&gt;
+&lt;/jar&gt;
+</pre></blockquote>
+<p>
+  The following shows how to create a jar file specifing a service
+  with two implementations of the JDK6 scripting interface:
+</p>
+<blockquote><pre>
+&lt;jar jarfile="pinkyandbrain.jar"&gt;
+  &lt;fileset dir="classes"/&gt;
+  &lt;service type="javax.script.ScriptEngineFactory"&gt;
+    &lt;provider classname="org.acme.PinkyLanguage"/&gt;
+    &lt;provider classname="org.acme.BrainLanguage"/&gt;
+  &lt;/service&gt;
+&lt;/jar&gt;
+</pre></blockquote>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/java.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/java.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/java.html	(revision 14989)
@@ -0,0 +1,395 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Java Task</title>
+</head>
+
+<body>
+
+<h2><a name="java">Java</a></h2>
+<h3>Description</h3>
+<p>Executes a Java class within the running (Ant) VM or forks another VM if
+specified.</p>
+<p>
+If odd things go wrong when you run this task, set fork="true" to use a new
+JVM.
+
+<p>As of Ant 1.6.3, you can interact with a forked VM, as well as
+sending input to it via the <code>input</code> and <code>inputstring</code>
+attributes.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the Java class to execute.</td>
+    <td align="center" valign="top">Either <tt>jar</tt> or <tt>classname</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">jar</td>
+    <td valign="top">the location of the jar file to execute (must have a
+    Main-Class entry in the manifest). Fork must be set to true if this option is selected.
+    See notes below for more details.
+    </td>
+    <td align="center" valign="top">Either <tt>jar</tt> or <tt>classname</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">args</td>
+    <td valign="top">the arguments for the class that is
+      executed. <b>deprecated, use nested <code>&lt;arg&gt;</code>
+      elements instead.</b></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use, given as <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">if enabled triggers the class execution in another VM
+      (disabled by default)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">spawn</td>
+    <td valign="top">if enabled allows to start a process which will outlive ant.<br>
+    Requires fork=true, and not compatible
+    with timeout, input, output, error, result attributes.<br>
+      (disabled by default)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvm</td>
+    <td valign="top">the command used to invoke the Java Virtual Machine,
+      default is 'java'.  The command is resolved by java.lang.Runtime.exec().
+      Ignored if fork is disabled.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmargs</td>
+    <td valign="top">the arguments to pass to the forked VM (ignored
+      if fork is disabled). <b>deprecated, use nested
+      <code>&lt;jvmarg&gt;</code> elements instead.</b></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Max amount of memory to allocate to the forked VM
+      (ignored if fork is disabled)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0. Default is "false" (see <a href="#failonerror">note</a>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resultproperty</td>
+    <td valign="top">The name of a property in which the return code of the
+      command should be stored. Only of interest if failonerror=false
+      and if fork=true.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to invoke the VM in.  (ignored if
+      fork is disabled)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output. If the error stream
+      is not also redirected to a file or property, it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the command should be
+      redirected. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see error output in Ant's
+                     log and you are redirecting output to a file/property. The error
+                     output will not be included in the output file/property. If you
+                     redirect error with the &quot;error&quot; or &quot;errorProperty&quot;
+                     attributes, this will have no effect.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output and error files should be appended to or overwritten.
+    Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the
+      command should be stored. Unless the error stream is redirected to a separate
+      file or stream, this property will include the error output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error of the
+      command should be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard input
+                     is taken. This attribute is mutually exclusive with the
+                     inputstring attribute</td>
+    <td align="center" valign="top">No; default is to take standard input from console
+        (unless <code>spawn="true"</code>)</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+                     executed command. This attribute is mutually exclusive with the
+                     input attribute.</td>
+    <td align="center" valign="top">No; default is to take standard input from console
+        (unless <code>spawn="true"</code>)</td>
+  </tr>
+  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate old environment when new
+      environment variables are specified. Default is &quot;false&quot;
+      (ignored if fork is disabled).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+    specified time (given in milliseconds).  <strong>It is highly
+    recommended to use this feature only if fork is enabled.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">clonevm</td>
+    <td valign="top">If set to true true, then all system properties
+      and the bootclasspath of the forked Java Virtual Machine will be
+      the same as those of the Java VM running Ant.  Default is
+      &quot;false&quot; (ignored if fork is disabled).
+      <em>since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>arg and jvmarg</h4>
+<p>Use nested <code>&lt;arg&gt;</code> and <code>&lt;jvmarg&gt;</code>
+elements to specify arguments for the Java class and the forked VM respectively.
+See <a href="../using.html#arg">Command line arguments</a>.</p>
+<h4>sysproperty</h4>
+<p>Use nested <code>&lt;sysproperty&gt;</code>
+elements to specify system properties required by the class.
+These properties will be made available to the VM during the execution
+of the class (either ANT's VM or the forked VM). The attributes
+for this element are the same as for <a href="exec.html#env">environment
+variables</a>.</p>
+
+<h4>syspropertyset</h4>
+
+<p>You can specify a set of properties to be used as system properties
+with <a href="../CoreTypes/propertyset.html">syspropertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>classpath</h4>
+<p><code>Java</code>'s <i>classpath</i> attribute is a <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<i>classpath</i> element.</p>
+
+<h4>bootclasspath</h4>
+
+<p>The location of bootstrap class files can be specified using this
+<a href="../using.html#path">PATH like structure</a> - will be ignored
+if <i>fork</i> is not <code>true</code> or the target VM doesn't
+support it (i.e. Java 1.1).</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>env</h4>
+<p>It is possible to specify environment variables to pass to the
+forked VM via nested <i>env</i> elements. See the description in the
+section about <a href="exec.html#env">exec</a></p>
+<p>Settings will be ignored if fork is disabled.</p>
+
+<h4>permissions</h4>
+<p>Security permissions can be revoked and granted during the execution of the
+class via a nested <i>permissions</i> element. For more information please
+see <a href="../CoreTypes/permissions.html">permissions</a></p>
+<p>When the permission RuntimePermission exitVM has not been granted (or has
+been revoked) the System.exit() call will be intercepted
+and treated like indicated in <i>failonerror</i>.</p>
+<p>Note:<br>
+If you do not specify permissions,
+a set of default permissions will be added to your Java invocation to make
+sure that the ant run will continue or terminated as indicated by
+<i>failonerror</i>. All permissions not granted per default will be
+checked by whatever security manager was already in place. exitVM will be
+disallowed.
+</p>
+<p>Settings will be ignored if fork is enabled.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>assertions</h4>
+
+<p>You can control enablement of Java 1.4 assertions with an
+<a href="../CoreTypes/assertions.html"><tt>&lt;assertions&gt;</tt></a>
+subelement.</p>
+
+<p>Assertion statements are currently ignored in non-forked mode.</p>
+
+<p><em>since Ant 1.6.</em></p>
+
+<a name="redirector"><h4>redirector</h4></a>
+<i><b>Since Ant 1.6.2</b></i>
+<p>A nested <a href="../CoreTypes/redirector.html">I/O Redirector</a>
+can be specified.  In general, the attributes of the redirector behave
+as the corresponding attributes available at the task level.  The most
+notable peculiarity stems from the retention of the <code>&lt;java&gt;</code>
+attributes for backwards compatibility.  Any file mapping is done
+using a <CODE>null</CODE> sourcefile; therefore not all
+<a href="../CoreTypes/mapper.html">Mapper</a> types will return
+results.  When no results are returned, redirection specifications
+will fall back to the task level attributes.  In practice this means that
+defaults can be specified for input, output, and error output files.
+</p>
+<h3>Errors and return codes</h3>
+By default the return code of a <code>&lt;java&gt;</code> is ignored.
+Alternatively, you can set <code>resultproperty</code> to the name
+of a property and have it assigned to the result code (barring immutability,
+of course).
+When you set <code>failonerror="true"</code>, the only possible value for
+<code>resultproperty</code> is 0. Any non-zero response is treated as an
+error and would mean the build exits.
+<p> Similarly, if <code>failonerror="false"</code> and <code>fork="false"</code>
+, then <code>&lt;java&gt;</code> <b>must</b> return 0 otherwise the build will
+exit, as the class was run by the build JVM.</p>
+
+<h3>JAR file execution</h3>
+
+<p>The parameter of the <tt>jar</tt> attribute is of type <tt>File</tt>;
+that is, the parameter is resolved to an absolute file relative to the
+base directory of the project, <i>not</i> the directory in which the Java
+task is run. If you need to locate a JAR file relative to the directory
+the task will be run in, you need to explicitly create the full path
+to the JAR file.</p>
+<p>When using the <tt>jar</tt> attribute, all classpath settings are 
+ignored according to <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/java.html#-jar">Sun's
+specification</a>. 
+
+
+<h3>Examples</h3>
+<pre>
+       &lt;java classname=&quot;test.Main&quot;&gt;
+         &lt;arg value=&quot;-h&quot;/&gt;
+         &lt;classpath&gt;
+           &lt;pathelement location=&quot;dist/test.jar&quot;/&gt;
+           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/java&gt;
+</pre>
+Run a class in this JVM with a new jar on the classpath
+
+<pre>
+       &lt;java jar=&quot;dist/test.jar&quot;
+           fork="true"
+           failonerror="true"
+           maxmemory="128m"
+           &gt;
+         &lt;arg value=&quot;-h&quot;/&gt;
+         &lt;classpath&gt;
+           &lt;pathelement location=&quot;dist/test.jar&quot;/&gt;
+           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/java&gt;
+</pre>
+Run the JAR test.jar in this project's dist/lib directory.
+using the manifest supplied entry point, forking (as required),
+and with a maximum memory of 128MB. Any non zero return code breaks the build.
+
+<pre>
+       &lt;java
+           dir="${exec.dir}"
+           jar=&quot;${exec.dir}/dist/test.jar&quot;
+           fork="true"
+           failonerror="true"
+           maxmemory="128m"
+           &gt;
+         &lt;arg value=&quot;-h&quot;/&gt;
+         &lt;classpath&gt;
+           &lt;pathelement location=&quot;dist/test.jar&quot;/&gt;
+           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/java&gt;
+</pre>
+Run the JAR dist/test.jar relative to the directory
+<tt>${exec.dir}</tt>, this being the same directory into which the JVM
+is to start up.
+
+<pre>  &lt;java classname=&quot;test.Main&quot;/&gt;</pre>
+Runs a given class with the current classpath.
+
+<pre>
+  &lt;java classname=&quot;test.Main&quot;
+        fork=&quot;yes&quot; &gt;
+    &lt;sysproperty key=&quot;DEBUG&quot; value=&quot;true&quot;/&gt;
+    &lt;arg value=&quot;-h&quot;/&gt;
+    &lt;jvmarg value=&quot;-Xrunhprof:cpu=samples,file=log.txt,depth=3&quot;/&gt;
+  &lt;/java&gt;
+</pre>
+Add system properties and JVM-properties to the JVM as in
+<code>java ="-Xrunhprof:cpu=samples,file=log.txt,depth=3 -DDEBUG=true test.Main</code>
+
+<pre>  &lt;java classname=&quot;ShowJavaVersion&quot; classpath=&quot;.&quot;
+        jvm=&quot;path-to-java14-home/bin/java&quot; fork=&quot;true&quot;
+        taskname=&quot;java1.4&quot; &gt;
+</pre>
+Use a given Java implementation (another the one Ant is currently using) to run the class.
+For documentation in the log <code>taskname</code> is used to change the <code>[java]</code>
+log-prefix to <code>[java1.4]</code>.
+
+
+<p><strong>Note</strong>: you can not specify the (highly deprecated) MSJVM, "jview.exe" as the
+JVM, as it takes different parameters for other JVMs,
+That JVM can be started from <code>&lt;exec&gt;</code> if required.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/javac.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/javac.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/javac.html	(revision 14989)
@@ -0,0 +1,660 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html lang="en-us">
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Javac Task</title>
+</head>
+
+<body>
+
+<h2><a name="javac">Javac</a></h2>
+<h3>Description</h3>
+<p>Compiles a Java source tree.</p>
+<p>The source and destination directory will be recursively scanned for Java
+source files to compile. Only Java files that have no corresponding
+<code>.class</code> file
+or where the class file is older than the
+<code>.java</code> file will be compiled.</p>
+<p>Note: Ant uses only the names of the source and class files to find
+the classes that need a rebuild. It will not scan the source and therefore
+will have no knowledge about nested classes, classes that are named different
+from the source file, and so on. See the
+<a href="../OptionalTasks/depend.html"><code>&lt;depend&gt;</code></a> task
+for dependency checking based on other than just
+existence/modification times.</p>
+<p>When the source files are part of a package, the directory structure of
+the source tree should follow the package
+hierarchy.</p>
+<p>It is possible to refine the set of files that are being compiled.
+This can be done with the <code>includes</code>, <code>includesfile</code>,
+<code>excludes</code>, and <code>excludesfile</code>
+attributes. With the <code>includes</code> or
+<code>includesfile</code> attribute, you specify the files you want to
+have included.
+The <code>exclude</code> or <code>excludesfile</code> attribute is used
+to specify
+the files you want to have excluded. In both cases, the list of files
+can be specified by either the filename, relative to the directory(s) specified
+in the <code>srcdir</code> attribute or nested <code>&lt;src&gt;</code>
+element(s), or by using wildcard patterns. See the section on
+<a href="../dirtasks.html#directorybasedtasks">directory-based tasks</a>,
+for information on how the
+inclusion/exclusion of files works, and how to write wildcard patterns.</p>
+<p>It is possible to use different compilers. This can be specified by
+either setting the global <code>build.compiler</code> property, which will
+affect all <code>&lt;javac&gt;</code> tasks throughout the build, or by
+setting the <code>compiler</code> attribute, specific to the current
+<code>&lt;javac&gt;</code> task.
+<a name="compilervalues">Valid values for either the
+<code>build.compiler</code> property or the <code>compiler</code>
+attribute are:</a></p>
+<ul>
+  <li><code>classic</code> (the standard compiler of JDK 1.1/1.2) &ndash;
+      <code>javac1.1</code> and
+      <code>javac1.2</code> can be used as aliases.</li>
+  <li><code>modern</code> (the standard compiler of JDK 1.3/1.4/1.5/1.6) &ndash;
+      <code>javac1.3</code> and
+      <code>javac1.4</code> and
+      <code>javac1.5</code> and
+      <code>javac1.6</code> can be used as aliases.</li>
+  <li><code>jikes</code> (the <a
+    href="http://jikes.sourceforge.net/" target="_top">Jikes</a>
+    compiler).</li>
+  <li><code>jvc</code> (the Command-Line Compiler from Microsoft's SDK
+      for Java / Visual J++) &ndash; <code>microsoft</code> can be used
+      as an alias.</li>
+  <li><code>kjc</code> (the <a href="http://www.dms.at/kopi/" target="_top">kopi</a>
+    compiler).</li>
+  <li><code>gcj</code> (the gcj compiler from gcc).</li>
+  <li><code>sj</code> (Symantec java compiler) &ndash;
+      <code>symantec</code> can be used as an alias.</li>
+  <li><code>extJavac</code> (run either modern or classic in a JVM of
+      its own).</li>
+</ul>
+<p>The default is <code>javac1.x</code> with <code>x</code> depending
+on the JDK version you use while you are running Ant.
+If you wish to use a different compiler interface than those
+supplied, you can write a class that implements the CompilerAdapter interface
+(<code>package org.apache.tools.ant.taskdefs.compilers</code>). Supply the full
+classname in the <code>build.compiler</code> property or the
+<code>compiler</code> attribute.
+</p>
+<p>The fork attribute overrides the <code>build.compiler</code> property
+or <code>compiler</code> attribute setting and
+expects a JDK1.1 or higher to be set in <code>JAVA_HOME</code>.
+</p>
+<p>You can also use the <code>compiler</code> attribute to tell Ant
+which JDK version it shall assume when it puts together the command
+line switches - even if you set <code>fork=&quot;true&quot;</code>.
+This is useful if you want to run the compiler of JDK 1.1 while you
+current JDK is 1.2+.  If you use
+<code>compiler=&quot;javac1.1&quot;</code> and (for example)
+<code>depend=&quot;true&quot;</code> Ant will use the command line
+switch <code>-depend</code> instead of <code>-Xdepend</code>.</p>
+<p>This task will drop all entries that point to non-existent
+files/directories from the classpath it passes to the compiler.</p>
+<p><strong>Windows Note:</strong>When the modern compiler is used
+in unforked mode on Windows, it locks up the files present in the
+classpath of the <code>&lt;javac&gt;</code> task, and does not release them.
+The side effect of this is that you will not be able to delete or move
+those files later on in the build.  The workaround is to fork when
+invoking the compiler.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcdir</td>
+    <td valign="top">Location of the java files. (See the
+     <a href="#srcdirnote">note</a> below.)</td>
+    <td align="center" valign="top">Yes, unless nested <code>&lt;src&gt;</code> elements are present.</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">Location to store the class files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Comma- or space-separated list of files (may be specified using
+      wildcard patterns) that must be
+      included; all <code>.java</code> files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">The name of a file that contains a list of files to
+      include (may be specified using wildcard patterns).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Comma- or space-separated list of files (may be specified using
+      wildcard patterns) that must be excluded; no files (except default
+      excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">The name of a file that contains a list of files to
+      exclude (may be specified using wildcard patterns).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepath</td>
+    <td valign="top">The sourcepath to use; defaults to the value of the srcdir attribute (or nested <code>&lt;src&gt;</code> elements).
+        To suppress the sourcepath switch, use <code>sourcepath=&quot;&quot;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspath</td>
+    <td valign="top">Location of bootstrap class files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepathref</td>
+    <td valign="top">The sourcepath to use, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspathref</td>
+    <td valign="top">Location of bootstrap class files, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">extdirs</td>
+    <td valign="top">Location of installed extensions.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">Encoding of source files. (Note: gcj doesn't support
+      this option yet.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nowarn</td>
+    <td valign="top">Indicates whether the <code>-nowarn</code> switch
+      should be passed to the compiler; defaults to <code>off</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">Indicates whether source should be compiled with
+    debug information; defaults to <code>off</code>.  If set to
+    <code>off</code>, <code>-g:none</code> will be passed on the
+    command line for compilers that support it (for other compilers, no
+    command line argument will be used).  If set to <code>true</code>,
+    the value of the <code>debuglevel</code> attribute determines the
+    command line argument.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debuglevel</td>
+    <td valign="top">Keyword list to be appended to the <code>-g</code>
+      command-line switch.  This will be ignored by all implementations except
+      <code>modern</code>, <code>classic(ver &gt;= 1.2)</code> and <code>jikes</code>.
+      Legal values are <code>none</code> or a comma-separated list of the
+      following keywords:
+      <code>lines</code>, <code>vars</code>, and <code>source</code>.
+      If <code>debuglevel</code> is not specified, by default,
+      nothing will be
+      appended to <code>-g</code>.  If <code>debug</code> is not turned on,
+      this attribute will be ignored.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">optimize</td>
+    <td valign="top">
+      Indicates whether source should be compiled with
+      optimization; defaults to <code>off</code>. <strong>Note</strong>
+      that this flag is just ignored by Sun's <code>javac</code> starting
+      with JDK 1.3 (since compile-time optimization is unnecessary).
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">deprecation</td>
+    <td valign="top">Indicates whether source should be compiled with
+      deprecation information; defaults to <code>off</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">Generate class files for specific VM version
+    (e.g., <code>1.1</code> or <code>1.2</code>). <b>Note that the
+    default value depends on the JVM that is running Ant.  In
+    particular, if you use JDK 1.4+ the generated classes will not be
+    usable for a 1.1 Java VM unless you explicitly set this attribute
+    to the value 1.1 (which is the default value for JDK 1.1 to
+    1.3).  We highly recommend to always specify this
+    attribute.</b><br>
+    A default value for this attribute can be provided using the magic
+    <a
+    href="../javacprops.html#target"><code>ant.build.javac.target</code></a>
+    property.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Asks the compiler for verbose output; defaults to
+      <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">depend</td> <td valign="top">Enables dependency-tracking
+      for compilers that support this (<code>jikes</code> and
+      <code>classic</code>).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeAntRuntime</td>
+    <td valign="top">Whether to include the Ant run-time libraries in the
+      classpath; defaults to <code>yes</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeJavaRuntime</td>
+    <td valign="top">Whether to include the default run-time
+      libraries from the executing VM in the classpath;
+      defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Whether to execute <code>javac</code> using the
+      JDK compiler externally; defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">Complete path to the <code>javac</code>
+      executable to use in case of <code>fork=&quot;yes&quot;</code>.
+      Defaults to the compiler of the Java version that is currently
+      running Ant.  Ignored if <code>fork=&quot;no&quot;</code>.<br>
+      Since Ant 1.6 this attribute can also be used to specify the
+      path to the executable when using jikes, jvc, gcj or sj.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">memoryInitialSize</td>
+    <td valign="top">The initial size of the memory for the underlying VM,
+      if <code>javac</code> is run externally; ignored otherwise. Defaults
+      to the standard VM memory setting.
+      (Examples: <code>83886080</code>, <code>81920k</code>, or
+      <code>80m</code>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">memoryMaximumSize</td>
+    <td valign="top">The maximum size of the memory for the underlying VM,
+      if <code>javac</code> is run externally; ignored otherwise. Defaults
+      to the standard VM memory setting.
+      (Examples: <code>83886080</code>, <code>81920k</code>, or
+      <code>80m</code>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Indicates whether compilation errors
+        will fail the build; defaults to <code>true</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+
+    <td valign="top">Value of the <code>-source</code> command-line
+    switch; will be ignored by all implementations prior to
+    <code>javac1.4</code> (or <code>modern</code> when Ant is not
+    running in a 1.3 VM) and <code>jikes</code>.<br> If you use this
+    attribute together with <code>jikes</code>, you must make sure
+    that your version of jikes supports the <code>-source</code>
+    switch.  By default, no <code>-source</code> argument will be used
+    at all.<br>
+    <b>Note that the default value depends on the JVM that is running
+    Ant.  We highly recommend to always specify this
+    attribute.</b><br>
+    A default value for this attribute can be provided using the magic
+    <a
+    href="../javacprops.html#source"><code>ant.build.javac.source</code></a>
+    property.</td>
+
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">The compiler implementation to use.
+      If this attribute is not set, the value of the
+      <code>build.compiler</code> property, if set, will be used.
+      Otherwise, the default compiler for the current VM will be used.
+      (See the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">listfiles</td>
+    <td valign="top">Indicates whether the source files to be compiled will
+      be listed; defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tempdir</td>
+    <td valign="top">Where Ant should place temporary files.
+      This is only used if the task is forked and the
+      command line args length exceeds 4k.
+      <em>Since Ant 1.6</em>.</td>
+    <td align="center" valign="top">
+      No; default is <i>java.io.tmpdir</i>.
+    </td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h4><code>src</code>, <code>classpath</code>, <code>sourcepath</code>,
+<code>bootclasspath</code> and <code>extdirs</code></h4>
+<p><code>&lt;javac&gt;</code>'s <code>srcdir</code>, <code>classpath</code>,
+<code>sourcepath</code>, <code>bootclasspath</code>, and
+<code>extdirs</code> attributes are
+<a href="../using.html#path">path-like structures</a>
+and can also be set via nested
+<code>&lt;src&gt;</code>,
+<code>&lt;classpath&gt;</code>,
+<code>&lt;sourcepath&gt;</code>,
+<code>&lt;bootclasspath&gt;</code> and
+<code>&lt;extdirs&gt;</code> elements, respectively.</p>
+
+<h4>compilerarg</h4>
+
+<p>You can specify additional command line arguments for the compiler
+with nested <code>&lt;compilerarg&gt;</code> elements.  These elements
+are specified like <a href="../using.html#arg">Command-line
+Arguments</a> but have an additional attribute that can be used to
+enable arguments only if a given compiler implementation will be
+used.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td>Only pass the specified argument if the chosen
+      compiler implementation matches the value of this attribute.
+      Legal values are the
+      same as those in the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;
+         source=&quot;1.4&quot;
+  /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores
+the <code>.class</code> files in the <code>${build}</code> directory.
+The classpath used includes <code>xyz.jar</code>, and compiling with
+debug information is on. The source level is 1.4,
+so you can use <code>assert</code> statements.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         fork=&quot;true&quot;
+         source=&quot;1.2&quot;
+         target=&quot;1.2&quot;
+  /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores the <code>.class</code> files in the
+<code>${build}</code> directory.  This will fork off the javac
+compiler using the default <code>javac</code> executable.
+The source level is 1.2 (similar to 1.1 or 1.3) and
+the class files should be runnable under JDK 1.2+ as well.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         fork=&quot;java$$javac.exe&quot;
+         source=&quot;1.5&quot;
+  /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores the <code>.class</code> files in the
+<code>${build}</code> directory.  This will fork off the javac
+compiler, using the executable named <code>java$javac.exe</code>.  Note
+that the <code>$</code> sign needs to be escaped by a second one.
+The source level is 1.5, so you can use generics.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
+         excludes=&quot;mypackage/p1/testpackage/**&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;
+  /&gt;</pre>
+<p>compiles <code>.java</code> files under the <code>${src}</code>
+directory, and stores the
+<code>.class</code> files in the <code>${build}</code> directory.
+The classpath used includes <code>xyz.jar</code>, and debug information is on.
+Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are
+used. All files in and below the <code>mypackage/p1/testpackage</code>
+directory are excluded from compilation.
+You didn't specify a source or target level,
+so the actual values used will depend on which JDK you ran Ant with.</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}:${src2}&quot;
+         destdir=&quot;${build}&quot;
+         includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
+         excludes=&quot;mypackage/p1/testpackage/**&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;
+  /&gt;</pre>
+
+<p>is the same as the previous example, with the addition of a second
+source path, defined by
+the property <code>src2</code>. This can also be represented using nested
+<code>&lt;src&gt;</code> elements as follows:</p>
+
+<pre>  &lt;javac destdir=&quot;${build}&quot;
+         classpath=&quot;xyz.jar&quot;
+         debug=&quot;on&quot;&gt;
+    &lt;src path=&quot;${src}&quot;/&gt;
+    &lt;src path=&quot;${src2}&quot;/&gt;
+    &lt;include name=&quot;mypackage/p1/**&quot;/&gt;
+    &lt;include name=&quot;mypackage/p2/**&quot;/&gt;
+    &lt;exclude name=&quot;mypackage/p1/testpackage/**&quot;/&gt;
+  &lt;/javac&gt;</pre>
+
+<p>If you want to run the javac compiler of a different JDK, you
+should tell Ant, where to find the compiler and which version of JDK
+you will be using so it can choose the correct command line switches.
+The following example executes a JDK 1.1 javac in a new process and
+uses the correct command line switches even when Ant is running in a
+Java VM of a different version:</p>
+
+<pre>  &lt;javac srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot;
+         fork=&quot;yes&quot;
+         executable=&quot;/opt/java/jdk1.1/bin/javac&quot;
+         compiler=&quot;javac1.1&quot;
+  /&gt;</pre>
+
+<p><a name="srcdirnote"><b>Note:</b></a>
+If you wish to compile only source files located in certain packages below a
+common root, use the <code>include</code>/<code>exclude</code> attributes
+or <code>&lt;include&gt;</code>/<code>&lt;exclude&gt;</code> nested elements
+to filter for these packages. Do not include part of your package structure
+in the <code>srcdir</code> attribute
+(or nested <code>&lt;src&gt;</code> elements), or Ant will recompile your
+source files every time you run your compile target. See the
+<a href="http://ant.apache.org/faq.html#always-recompiles">Ant FAQ</a>
+for additional information.</p>
+
+<p>
+If you wish to compile only files explicitly specified and disable
+javac's default searching mechanism then you can unset the sourcepath
+attribute:
+<pre>  &lt;javac sourcepath=&quot;&quot; srcdir=&quot;${src}&quot;
+         destdir=&quot;${build}&quot; &gt;
+    &lt;include name="**/*.java"/&gt;
+    &lt;exclude name="**/Example.java"/&gt;
+  &lt;/javac&gt;</pre>
+That way the javac will compile all java source files under &quot;${src}&quot;
+directory but skip the examples. The compiler will even produce errors if some of
+the non-example files refers to them.
+</p>
+
+<p>
+If you wish to compile with a special JDK (another than the one Ant is currently using),
+set the <code>executable</code> and <code>fork</code> attribute. Using <code>taskname</code>
+could show in the log, that these settings are fix.
+<pre>  &lt;javac srcdir=&quot.&quot 
+         destdir=&quot.&quot 
+         executable=&quotpath-to-java14-home/bin/javac&quot 
+         fork=&quottrue&quot
+         taskname=&quotjavac1.4&quot /&gt;</pre>
+</p>
+
+
+<p><b>Note:</b> If you are using Ant on Windows and a new DOS window pops up
+for every use of an external compiler, this may be a problem of the JDK you are
+using.  This problem may occur with all JDKs &lt; 1.2.</p>
+
+<h3>Jikes Notes</h3>
+
+<p>You need Jikes 1.15 or later.</p>
+
+<p>Jikes supports some extra options, which can be set be defining
+the properties shown below prior to invoking the task. The setting
+for each property will be in affect for all <code>&lt;javac&gt;</code>
+tasks throughout the build.
+The Ant developers are aware that
+this is ugly and inflexible &ndash; expect a better solution in the future.
+All the options are boolean, and must be set to <code>true</code> or
+<code>yes</code> to be
+interpreted as anything other than false. By default,
+<code>build.compiler.warnings</code> is <code>true</code>,
+while all others are <code>false</code>.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Property</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Default</b></td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.emacs
+	</td>
+	<td valign="top">
+	Enable emacs-compatible error messages.
+    </td>
+    <td valign="top">
+	<code>false</code>
+	</td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.fulldepend
+	</td>
+	<td valign="top">
+	Enable full dependency checking; see<br>
+	the <code>+F</code> switch in the Jikes manual.
+    </td>
+    <td valign="top">
+	<code>false</code>
+	</td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.pedantic
+	</td>
+	<td valign="top">
+	Enable pedantic warnings.
+    </td>
+    <td valign="top">
+	<code>false</code>
+	</td>
+  </tr>
+  <tr>
+    <td valign="top">
+	build.compiler.warnings<br>
+        <strong>Deprecated</strong>. Use
+  <code>&lt;javac&gt;</code>'s <code>nowarn</code>
+  attribute instead.
+	</td>
+	<td valign="top">
+	Don't disable warning messages.
+    </td>
+    <td valign="top">
+	<code>true</code>
+	</td>
+  </tr>
+</table>
+
+<h3>Jvc Notes</h3>
+
+<p>Jvc will enable Microsoft extensions unless you set the property
+<code>build.compiler.jvc.extensions</code> to false before invoking
+<code>&lt;javac&gt;</code>.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/javadoc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/javadoc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/javadoc.html	(revision 14989)
@@ -0,0 +1,849 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Javadoc Task</title>
+</head>
+
+<body>
+
+<h2><a name="javadoc">Javadoc/<i>Javadoc2</i></a></h2>
+<h3>Description</h3>
+<p>Generates code documentation using the javadoc tool.</p>
+<p>The source directory will be recursively scanned for Java source files to process
+but only those matching the inclusion rules, and not matching the exclusions rules
+will be passed to the javadoc tool. This
+allows wildcards to be used to choose between package names, reducing verbosity
+and management costs over time. This task, however, has no notion of
+&quot;changed&quot; files, unlike the <a href="javac.html">javac</a> task. This means
+all packages will be processed each time this task is run. In general, however,
+this task is used much less frequently.</p>
+<p>This task works seamlessly between different javadoc versions (1.2 and 1.4),
+with the obvious restriction that the 1.4 attributes
+will be ignored if run in a 1.2 VM.</p>
+<p>NOTE: since javadoc calls System.exit(), javadoc cannot be run inside the
+same VM as Ant without breaking functionality. For this reason, this task
+always forks the VM. This overhead is not significant since javadoc is normally a heavy
+application and will be called infrequently.</p>
+<p>NOTE: the packagelist attribute allows you to specify the list of packages to
+document outside of the Ant file. It's a much better practice to include everything
+inside the <code>build.xml</code> file. This option was added in order to make it easier to
+migrate from regular makefiles, where you would use this option of javadoc.
+The packages listed in packagelist are not checked, so the task performs even
+if some packages are missing or broken. Use this option if you wish to convert from
+an existing makefile. Once things are running you should then switch to the regular
+notation. </p>
+
+<p><i><b>DEPRECATION:</b> the javadoc2 task simply points to the javadoc task and it's
+there for back compatibility reasons. Since this task will be removed in future
+versions, you are strongly encouraged to use <a href="javadoc.html">javadoc</a>
+instead.</i></p>
+
+<p>In the table below, 1.2 means available if your current Java VM is
+a 1.2 VM (but not 1.3 or later), 1.4+ for any VM of at least version 1.4, otherwise
+any VM of at least version 1.2 is acceptable. JDK 1.1 is no longer supported.
+If you specify the <code>executable</code> attribute it is up to you
+to ensure that this command supports the attributes you wish to use.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Availability</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepath</td>
+    <td valign="top">Specify where to find source files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" rowspan="3">At least one of the three or nested
+    <code>&lt;sourcepath&gt;</code>, <code>&lt;fileset&gt;</code> or
+    <code>&lt;packageset&gt;</code></td>
+  </tr>
+  <tr>
+    <td valign="top">sourcepathref</td>
+    <td valign="top">Specify where to find source files by <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcefiles</td>
+    <td valign="top">Comma separated list of source files -- see also
+    the nested <code>source</code> element.</td>
+    <td align="center" valign="top">all</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">Destination directory for output files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">Yes, unless a doclet has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Max amount of memory to allocate to the javadoc VM</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">packagenames</td>
+    <td valign="top">Comma separated list of package files (with terminating
+      wildcard) -- see also the nested <code>package</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">packageList</td>
+    <td valign="top">The name of a file containing the packages to process</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">Specify where to find user class files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Bootclasspath</td>
+    <td valign="top">Override location of class files loaded by the bootstrap
+      class loader</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">Specify where to find user class files by <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspathref</td>
+    <td valign="top">Override location of class files loaded by the
+      bootstrap class loader by <a href="../using.html#references">reference</a> to a
+      PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Extdirs</td>
+    <td valign="top">Override location of installed extensions</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Overview</td>
+    <td valign="top">Read overview documentation from HTML file</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">access</td>
+    <td valign="top">Access mode: one of <code>public</code>, <code>protected</code>,
+                     <code>package</code>, or <code>private</code></td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No (default <code>protected</code>)</td>
+  </tr>
+  <tr>
+    <td valign="top">Public</td>
+    <td valign="top">Show only public classes and members</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Protected</td>
+    <td valign="top">Show protected/public classes and members (default)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Package</td>
+    <td valign="top">Show package/protected/public classes and members</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Private</td>
+    <td valign="top">Show all classes and members</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Old</td>
+    <td valign="top">Generate output using JDK 1.1 emulating doclet</td>
+    <td align="center" valign="top">1.2</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Verbose</td>
+    <td valign="top">Output messages about what Javadoc is doing</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Locale</td>
+    <td valign="top">Locale to be used, e.g. en_US or en_US_WIN</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Encoding</td>
+    <td valign="top">Source file encoding name</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Version</td>
+    <td valign="top">Include @version paragraphs</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Use</td>
+    <td valign="top">Create class and package usage pages</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Author</td>
+    <td valign="top">Include @author paragraphs</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Splitindex</td>
+    <td valign="top">Split index into one file per letter</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Windowtitle</td>
+    <td valign="top">Browser window title for the documentation (text)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Doctitle</td>
+    <td valign="top">Include title for the package index(first) page (html-code)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Header</td>
+    <td valign="top">Include header text for each page (html-code)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">Footer</td>
+    <td valign="top">Include footer text for each page (html-code)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bottom</td>
+    <td valign="top">Include bottom text for each page (html-code)</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">link</td>
+    <td valign="top">Create links to javadoc output at the given URL
+    -- see also the nested <code>link</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">linkoffline</td>
+    <td valign="top">Link to docs at <code>&lt;url&gt;</code> using package list at
+    <code>&lt;url2&gt;</code> - separate the URLs by using a space character -- see
+    also the nested <code>link</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">group</td>
+    <td valign="top">Group specified packages together in overview
+    page.  The format is as described <a
+    href="#groupattribute">below</a> -- see also the nested
+    <code>group</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nodeprecated</td>
+    <td valign="top">Do not include @deprecated information</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nodeprecatedlist</td>
+    <td valign="top">Do not generate deprecated list</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">notree</td>
+    <td valign="top">Do not generate class hierarchy</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noindex</td>
+    <td valign="top">Do not generate index</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nohelp</td>
+    <td valign="top">Do not generate help link</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">nonavbar</td>
+    <td valign="top">Do not generate navigation bar</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">serialwarn</td>
+    <td valign="top">Generate warning about @serial tag</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">helpfile</td>
+    <td valign="top">Specifies the HTML help file to use</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">stylesheetfile</td>
+    <td valign="top">Specifies the CSS stylesheet to use</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">charset</td>
+    <td valign="top">Charset for cross-platform viewing of generated
+      documentation</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">docencoding</td>
+    <td valign="top">Output file encoding name</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">doclet</td>
+    <td valign="top">Specifies the class file that starts the doclet
+    used in generating the documentation -- see also the nested
+    <code>doclet</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">docletpath</td>
+    <td valign="top">Specifies the path to the doclet class file that is specified with the -doclet option.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">docletpathref</td>
+    <td valign="top">Specifies the path to the doclet class file that
+      is specified with the -doclet option by <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">additionalparam</td>
+    <td valign="top">Lets you add additional parameters to the javadoc
+    command line. Useful for doclets. Parameters containing spaces
+    need to be quoted using &amp;quot; -- see also the nested
+    <code>arg</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the buildprocess if the command exits with a
+      returncode other than 0.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludepackagenames</td>
+    <td valign="top">comma separated list of packages you don't want
+      docs for -- see also the nested <code>excludepackage</code> element.</td>
+    <td align="center" valign="top">all</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used
+      (<code>yes</code> | <code>no</code>); default excludes are used when omitted.</td>
+    <td align="center" valign="top">all</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">useexternalfile</td>
+    <td valign="top">indicates whether the sourcefile name specified
+      in srcfiles or as nested source elements should be written to a
+      temporary file to make the command line shorter. Also applies to
+      the package names specified via the packagenames attribute or
+      nested package elements.<em>Since Ant 1.7.0</em>, also applies
+      to all the other command line options.
+      (<code>yes</code> | <code>no</code>). Default is no.</td>
+    <td align="center" valign="top">all</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+    <td valign="top">Necessary to enable javadoc to handle assertions
+    present in J2SE v 1.4 source code. Set this to &quot;1.4&quot; to
+    documents code that compiles using <code>&quot;javac -source
+    1.4&quot;</code>.<br>
+    A default value for this attribute can be provided using the magic
+    <a
+    href="../javacprops.html#source"><code>ant.build.javac.source</code></a>
+    property.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">linksource</td>
+    <td valign="top">Generate hyperlinks to source files.
+      <em>since Ant 1.6</em>.
+      (<code>yes</code> | <code>no</code>). Default is no.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">breakiterator</td>
+    <td valign="top">Use the new breakiterator algorithm.
+      <em>since Ant 1.6</em>.
+      (<code>yes</code> | <code>no</code>). Default is no.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noqualifier</td>
+    <td valign="top">Enables the <code>-noqualifier</code> argument -
+      must be <code>all</code> or a colon separated list of packages.
+      <em>since Ant 1.6</em>.</td>
+    <td align="center" valign="top">1.4+</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includenosourcepackages</td>
+    <td valign="top">If set to true, packages that don't contain Java
+      source but a package.html will get documented as well.
+      <em>since Ant 1.6.3</em>.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No (default is <code>false</code>)</td>
+  </tr>
+  <tr>
+    <td valign="top">executable</td>
+    <td valign="top">Specify a particular <code>javadoc</code> executable
+      to use in place of the default binary (found in the same JDK as Ant is running in).
+      <em>since Ant 1.6.3</em>.</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4><a name="groupattribute">Format of the group attribute</a></h4>
+<p>The arguments are comma-delimited. Each single argument is 2
+space-delimited strings, where the first one is the group's title and
+the second one a colon delimited list of packages.</p>
+<p>If you need to specify more than one group, or a group whose title
+contains a comma or a space character, using <a
+href="#groupelement">nested group elements</a> is highly
+recommended.</p>
+<p>E.g.:</p>
+<pre>    group=&quot;XSLT_Packages org.apache.xalan.xslt*,XPath_Packages org.apache.xalan.xpath*&quot;</pre>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>packageset</h4>
+
+<p>A <a href="../CoreTypes/dirset.html">DirSet</a>.  All matched
+directories that contain Java source files will be passed to javadoc
+as package names.  Package names are created from the directory names
+by translating the directory separator into dots.  Ant assumes the
+base directory of the packageset points to the root of a package
+hierarchy.</p>
+
+<p>The <code>packagenames</code>, <code>excludepackagenames</code> and
+<code>defaultexcludes</code> attributes of the task have no effect on
+the nested <code>&lt;packageset&gt;</code> elements.</p>
+
+<h4>fileset</h4>
+
+<p>A <a href="../CoreTypes/fileset.html">FileSet</a>.  All matched
+files will be passed to javadoc as source files.  Ant will
+automatically add the include pattern <code>**/*.java</code> (and
+<code>**/package.html</code> if includenosourcepackages is true) to
+these filesets.</p>
+
+<p>Nested filesets can be used to document sources that are in the
+default package or if you want to exclude certain files from
+documentation.  If you want to document all source files and don't use
+the default package, packagesets should be used instead as this
+increases javadocs performance.</p>
+
+<p>The <code>packagenames</code>, <code>excludepackagenames</code> and
+<code>defaultexcludes</code> attributes of the task have no effect on
+the nested <code>&lt;fileset&gt;</code> elements.</p>
+
+<h4>sourcefiles</h4>
+
+<p>A container for arbitrary file system based <a
+href="../CoreTypes/resources.html#collection">resource
+collections</a>.  All files contained in any of the nested collections
+(this includes nested filesets, filelists or paths) will be passed to
+javadoc as source files.</p>
+
+<h4>package</h4>
+<p>Same as one entry in the list given by <code>packagenames</code>.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The package name (may be a wildcard)</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>excludepackage</h4>
+<p>Same as one entry in the list given by <code>excludepackagenames</code>.</p>
+
+<h5>Parameters</h5>
+Same as for <code>package</code>.
+
+<h4>source</h4>
+<p>Same as one entry in the list given by <code>sourcefiles</code>.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The source file to document</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>doctitle</h4>
+
+<p>Same as the <code>doctitle</code> attribute, but you can nest text
+inside the element this way.</p>
+
+<h4>header</h4>
+
+<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
+
+<h4>footer</h4>
+
+<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
+
+<h4>bottom</h4>
+
+<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
+
+<h4>link</h4>
+<p>Create link to javadoc output at the given URL. This performs the
+same role as the link and linkoffline attributes. You can use either
+syntax (or both at once), but with the nested elements you can easily
+specify multiple occurrences of the arguments.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">href</td>
+    <td valign="top">The URL for the external documentation you wish
+    to link to.  This can be an absolute URL, or a relative file
+    name.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">offline</td>
+    <td valign="top">True if this link is not available online at the time of
+                     generating the documentation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">packagelistLoc</td>
+    <td valign="top">The location to the directory containing the package-list file for
+                     the external documentation</td>
+    <td align="center" valign="top">Only if the offline attribute is true</td>
+  </tr>
+  <tr>
+    <td valign="top">resolveLink</td>
+    <td valign="top">If the link attribute is a relative file name,
+    Ant will first try to locate the file relative to the current
+    project's basedir and if it finds a file there use an absolute URL
+    for the link attribute, otherwise it will pass the file name
+    verbatim to the javadoc command.</td>
+    <td align="center" valign="top">No, default is false.</td>
+  </tr>
+</table>
+
+<h4><a name="groupelement">group</a></h4>
+<p>Separates packages on the overview page into whatever groups you
+specify, one group per table. This performs the same role as the group
+attribute. You can use either syntax (or both at once), but with the
+nested elements you can easily specify multiple occurrences of the
+arguments.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">title</td>
+    <td valign="top">Title of the group</td>
+    <td align="center" valign="top">Yes, unless nested <code>&lt;title&gt;</code> given</td>
+  </tr>
+  <tr>
+    <td valign="top">packages</td>
+    <td valign="top">List of packages to include in that group. Multiple packages are separated with ':'.</td>
+    <td align="center" valign="top">Yes, unless nested <code>&lt;package&gt;</code>s given</td>
+  </tr>
+</table>
+
+<p>The title may be specified as a nested <code>&lt;title&gt;</code> element
+with text contents, and the packages may be listed with nested
+<code>&lt;package&gt;</code> elements as for the main task.</p>
+
+<h4>doclet</h4>
+<p>The doclet nested element is used to specify the doclet that javadoc will
+use to process the input source files. A number of the standard javadoc arguments
+are actually arguments of the standard doclet. If these are specified in the javadoc
+task's attributes, they will be passed to the doclet specified in the
+<code>&lt;doclet&gt;</code> nested element. Such attributes should only be specified,
+therefore, if they can be interpreted by the doclet in use.</p>
+
+<p>If the doclet requires additional parameters, these can be specified with
+<code>&lt;param&gt;</code> elements within the <code>&lt;doclet&gt;</code>
+element. These parameters are restricted to simple strings. An example usage
+of the doclet element is shown below:</p>
+
+<pre>  &lt;javadoc ... &gt;
+     &lt;doclet name=&quot;theDoclet&quot;
+             path=&quot;path/to/theDoclet&quot;&gt;
+        &lt;param name=&quot;-foo&quot; value=&quot;foovalue&quot;/&gt;
+        &lt;param name=&quot;-bar&quot; value=&quot;barvalue&quot;/&gt;
+     &lt;/doclet&gt;
+  &lt;/javadoc&gt;
+</pre>
+
+<h4><a name="tagelement">tag</a></h4>
+
+<p>The tag nested element is used to specify custom tags. This option
+is only available with Java 1.4.</p>
+
+<p>If you want to specify a standard tag using a nested tag element
+because you want to determine the order the tags are output, you must
+not set the description attribute for those tags.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the tag (e.g. <code>todo</code>)</td>
+    <td align="center" valign="top">Yes, unless the <code>dir</code> attribute is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">Description for tag (e.g. <code>To do:</code>)</td>
+    <td align="center" valign="top">No, the name will be used as a description
+      if this is not specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">enabled</td>
+    <td valign="top">Whether or not the tag is enabled (defaults to <code>true</code>)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">scope</td>
+    <td valign="top">Scope for the tag - the elements in which it can be used. This
+    is a comma separated list of some of the elements: <code>overview</code>,
+    <code>packages</code>, <code>types</code>, <code>constructors</code>,
+    <code>methods</code>, <code>fields</code> or the default, <code>all</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">If this attribute is specified, this element will behave as an implicit
+    <a href="../CoreTypes/fileset.html">fileset</a>. The files included by this fileset should
+    contain each tag definition on a separate line, as described in the
+    <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#tag">Javadoc reference guide</a>:
+    <pre>ejb.bean:t:XDoclet EJB Tag
+todo:a:To Do</pre>
+      <b>Note:</b> The  Javadoc reference quide has double quotes around
+the description part of the definition. This will not work when used in
+a file, as the definition is quoted again when given to
+the javadoc program.
+    <br/>
+      <b>Note:</b> If this attribute is specified, all the other attributes in this
+    element will be ignored.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4><a name="tagletelement">taglet</a></h4>
+<p>The taglet nested element is used to specify custom taglets. This option is
+only available with Java 1.4.</p>
+
+<h5>Parameters</h5>
+<table width="90%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the taglet class
+              (e.g. <code>com.sun.tools.doclets.ToDoTaglet</code>)</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">A path specifying the search path for the taglet class
+            (e.g. <code>/home/taglets</code>).
+            The path may also be specified by a nested <code>&lt;path&gt;</code> element</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4>sourcepath, classpath and bootclasspath</h4>
+<p><code>Javadoc</code>'s <i>sourcepath</i>, <i>classpath</i> and
+<i>bootclasspath</i> attributes are <a href="../using.html#path">PATH like
+structure</a> and can also be set via nested <i>sourcepath</i>,
+<i>classpath</i> and <i>bootclasspath</i> elements
+respectively.</p>
+
+<h4>arg</h4>
+
+<p>Use nested <code>&lt;arg&gt;</code> to specify additional
+arguments.  See <a href="../using.html#arg">Command line
+arguments</a>. <em>Since Ant 1.6</em></p>
+
+<h3>Example</h3>
+<pre>  &lt;javadoc packagenames=&quot;com.dummy.test.*&quot;
+           sourcepath=&quot;src&quot;
+           excludepackagenames=&quot;com.dummy.test.doc-files.*&quot;
+           defaultexcludes=&quot;yes&quot;
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;&gt;
+    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+    &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot;/&gt;
+    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+  &lt/javadoc&gt;</pre>
+
+<p>is the same as</p>
+
+<pre>  &lt;javadoc
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;&gt;
+
+    &lt;packageset dir=&quot;src&quot; defaultexcludes=&quot;yes&quot;&gt;
+      &lt;include name=&quot;com/dummy/test/**&quot;/&gt;
+      &lt;exclude name=&quot;com/dummy/test/doc-files/**&quot;/&gt;
+    &lt;/packageset&gt;
+
+    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+    &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot;/&gt;
+    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+  &lt/javadoc&gt;</pre>
+
+<p>or</p>
+
+<pre>  &lt;javadoc
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;&gt;
+
+    &lt;fileset dir=&quot;src&quot; defaultexcludes=&quot;yes&quot;&gt;
+      &lt;include name=&quot;com/dummy/test/**&quot;/&gt;
+      &lt;exclude name=&quot;com/dummy/test/doc-files/**&quot;/&gt;
+    &lt;/fileset&gt;
+
+    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+    &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot;/&gt;
+    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+  &lt/javadoc&gt;</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/length.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/length.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/length.html	(revision 14989)
@@ -0,0 +1,99 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Length Task</title>
+</head>
+
+<body>
+
+<h2><a name="length">Length</a></h2>
+<h3>Description</h3>
+<p>Display or set a property containing length information for
+   a string, a file, or one or more nested
+   <a href="../CoreTypes/resources.html#collection">Resource Collection</a>s.
+   Can also be used as a condition. <b>Since Ant 1.6.3</b></p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The property to set.  If omitted
+      the results are written to the log. Ignored when
+      processing as a condition.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">Single file whose length to report.</td>
+    <td valign="top" align="center" rowspan="2">One of these,
+      or one or more nested filesets</td>
+  </tr>
+  <tr>
+    <td valign="top">string</td>
+    <td valign="top">The string whose length to report.</td>
+  </tr>
+  <tr>
+    <td valign="top">mode</td>
+    <td valign="top">File length mode; when &quot;all&quot; the resulting
+      value is the sum of all included resources' lengths; when &quot;each&quot;
+      the task outputs the absolute path and length of each included resource,
+      one per line. Ignored when processing as a condition.</td>
+    <td valign="top" align="center">No; default is &quot;all&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">trim</td>
+    <td valign="top">Whether to trim when operating on a string.</td>
+    <td valign="top" align="center">No; only valid when string is set</td>
+  </tr>
+  <tr>
+    <td valign="top">length</td>
+    <td valign="top">Comparison length for processing as a condition.</td>
+    <td valign="top" align="center">Yes, in condition mode</td>
+  </tr>
+  <tr>
+    <td valign="top">when</td>
+    <td valign="top">Comparison type: "equal", "eq", "greater", "gt", "less",
+      "lt", "ge" (greater or equal), "ne" (not equal), "le" (less or equal)
+      for use when operating as a condition.</td>
+    <td valign="top" align="center">No; default is "equal"</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>Resource Collections</h4>
+<p>You can include resources via nested
+  <a href="../CoreTypes/resources.html#collection">Resource Collection</a>s.</p>
+<h3>Examples</h3>
+<pre>&lt;length string=&quot;foo&quot; property=&quot;length.foo&quot; /&gt;
+</pre>
+<p>Stores the length of the string &quot;foo&quot; in the property named
+<i>length.foo</i>.</p>
+<pre>&lt;length file=&quot;bar&quot; property=&quot;length.bar&quot; /&gt;
+</pre>
+<p>Stores the length of file &quot;bar&quot; in the property named
+<i>length.bar</i>.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/loadfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/loadfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/loadfile.html	(revision 14989)
@@ -0,0 +1,130 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>LoadFile Task</title>
+</head>
+
+<body>
+
+
+<h2><a name="loadfile">LoadFile</a></h2>
+<h3>Description</h3>
+<p>
+Specialization of <a href="loadresource.html">loadresource</a> that
+works on files exclusively and provides a srcFile attribute for
+convenience.  Unless an encoding is specified, the encoding of the
+current locale is used.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcFile</td>
+    <td valign="top">source file</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">property to save to</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use when loading the file</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Whether to halt the build on failure</td>
+    <td align="center" valign="top">No, default "true"</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">Do not display a diagnostic message (unless Ant has been 
+    invoked with the <code>-verbose</code> or <code>-debug</code>
+    switches) or modify the exit status to reflect an error. Setting this to 
+    "true" implies setting failonerror to "false".
+      <em>Since Ant 1.7.0.</em>
+    </td>
+    <td align="center" valign="top">No, default "false"</td>
+  </tr>
+
+</table>
+<p>
+The LoadFile task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.
+
+<h3>Examples</h3>
+<pre>    &lt;loadfile property="message"
+      srcFile="message.txt"/&gt;
+</pre>
+Load file message.txt into property "message"; an <tt>&lt;echo&gt;</tt>
+can print this.  This is identical to
+<pre>    &lt;loadresource property="message"&gt;
+       &lt;file file="message.txt"/&gt;
+    &lt;/loadresource&gt;
+</pre>
+</p>
+
+<pre>    &lt;loadfile property="encoded-file"
+      srcFile="loadfile.xml"
+      encoding="ISO-8859-1"/&gt;
+</pre>
+Load a file using the latin-1 encoding
+
+<pre>    &lt;loadfile
+      property="optional.value"
+      srcFile="optional.txt"
+      failonerror="false"/&gt;
+</pre>
+Load a file, don't fail if it is missing (a message is printed, though)
+
+<pre>    &lt;loadfile
+      property="mail.recipients"
+      srcFile="recipientlist.txt"&gt;
+      &lt;filterchain&gt;
+        &lt;<a href="../CoreTypes/filterchain.html#striplinebreaks">striplinebreaks</a>/&gt;
+      &lt;/filterchain&gt;
+    &lt;/loadfile&gt;
+</pre>
+Load a property which can be used as a parameter for another task (in this case mail),
+merging lines to ensure this happens.
+
+<pre>    &lt;loadfile
+      property="system.configuration.xml"
+      srcFile="configuration.xml"&gt;
+        &lt;filterchain&gt;
+          &lt;<a href="../CoreTypes/filterchain.html#expandproperties">expandproperties</a>/&gt;
+        &lt;/filterchain&gt;
+    &lt;/loadfile&gt;
+</pre>
+Load an XML file into a property, expanding all properties declared
+in the file in the process.
+
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/loadproperties.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/loadproperties.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/loadproperties.html	(revision 14989)
@@ -0,0 +1,127 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>LoadProperties Task</title>
+</head>
+
+<body>
+
+
+<h2><a name="loadproperties">LoadProperties</a></h2>
+<h3>Description</h3>
+<p>
+Load a file's contents as Ant properties.  This is equivalent
+to <code>&lt;property file|resource=&quot;...&quot;/&gt;</code> except that it
+supports nested <code>&lt;filterchain&gt;</code> elements.
+Also if the file is missing, the build is halted with an error, rather
+than a warning being printed.
+</p>
+
+<p>If you want to simulate <a href="property.html">property</a>'s
+prefix attribute, please use <a
+href="../CoreTypes/filterchain.html#prefixlines">prefixlines</a>
+filter.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcFile</td>
+    <td valign="top">source file</td>
+    <td valign="top" rowspan="2" align="center">One of these or a
+          nested resource</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">the resource name of the property file</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use when loading the file</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up a resource.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use when looking up a resource,
+      given as <a href="../using.html#references">reference</a>
+      to a <code>&lt;path&gt;</code> defined elsewhere..</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as src. <em>Since Ant 1.7</em></p>
+
+<h4><a href="../CoreTypes/filterchain.html">FilterChain</a></h4>
+
+<h4>classpath</h4>
+
+<p>for use with the <i>resource</i> attribute.</p>
+
+<h3>Examples</h3>
+<pre>    &lt;loadproperties srcFile="file.properties"/&gt;
+</pre>
+or
+<pre>
+    &lt;loadproperties&gt;
+      &lt;file file="file.properties"/&gt;
+    &lt;/loadproperties&gt;
+</pre>
+Load contents of file.properties as Ant properties.
+
+<pre>    &lt;loadproperties srcFile="file.properties"&gt;
+      &lt;filterchain&gt;
+        &lt;<a href="../CoreTypes/filterchain.html#linecontains">linecontains</a>&gt;
+          &lt;contains value=&quot;import.&quot;/&gt;
+        &lt;/linecontains&gt;
+      &lt;/filterchain&gt;
+    &lt;/loadproperties&gt;
+</pre>
+Read the lines that contain the string &quot;import.&quot;
+from the file &quot;file.properties&quot; and load them as
+Ant properties.
+
+<pre>
+    &lt;loadproperties&gt;
+      &lt;<a href="../CoreTypes/resources.html#gzipresource">gzipresource</a>&gt;
+        &lt;<a href="../CoreTypes/resources.html#url">url</a> url="http://example.org/url.properties.gz"/&gt;
+      &lt;/gzipresource&gt;
+    &lt;/loadproperties&gt;
+</pre>
+Load contents of http://example.org/url.properties.gz, uncompress it
+on the fly and load the contents as Ant properties.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/loadresource.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/loadresource.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/loadresource.html	(revision 14989)
@@ -0,0 +1,89 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>LoadResource Task</title>
+</head>
+
+<body>
+
+
+<h2><a name="loadresource">LoadResource</a></h2>
+
+<p><em>Since Ant 1.7</em></p>
+
+<h3>Description</h3>
+<p>
+Load a text resource into a single property. Unless an encoding is
+specified, the encoding of the current locale is used.  Resources to
+load are specified as nested <a
+href="../CoreTypes/resources.html">resource</a> elements or single
+element resource collections.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">property to save to</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">encoding to use when loading the resource</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Whether to halt the build on failure</td>
+    <td align="center" valign="top">No, default "true"</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">Do not display a diagnostic message (unless Ant has been 
+    invoked with the <code>-verbose</code> or <code>-debug</code>
+    switches) or modify the exit status to reflect an error. Setting this to 
+    "true" implies setting failonerror to "false".
+    </td>
+    <td align="center" valign="top">No, default "false"</td>
+  </tr>
+</table>
+<p>
+The LoadResource task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.
+
+<h3>Examples</h3>
+<pre>
+&lt;loadresource property="homepage"&gt;
+  &lt;url url="http://ant.apache.org/index.html"/&gt;
+&lt;/loadresource&gt;
+</pre>
+Load the entry point of Ant's homepage into property "homepage"; an
+<tt>&lt;echo&gt;</tt> can print this.
+
+<p>For more examples see the <a href="loadfile.html">loadfile</a> task.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/macrodef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/macrodef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/macrodef.html	(revision 14989)
@@ -0,0 +1,382 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>MacroDef Task</title>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+    <style type="text/css">
+      <!--
+           .code { background: #EFEFEF; margin-top: }
+           -->
+    </style>
+  </head>
+
+  <body>
+
+    <h2><a name="macrodef">MacroDef</a></h2>
+    <h3>Description</h3>
+    <p>
+      This defines a new task using a <code>&lt;sequential&gt;</code>
+      nested task as a template. Nested elements <code>&lt;attribute&gt;</code> and
+      <code>&lt;element&gt;</code> are used to specify attributes and elements of
+      the new task. These get substituted into the <code>&lt;sequential&gt;</code>
+      task when the new task is run.
+    </p>
+    <h3>Note</h3>
+    <p>
+      You can also use <i>prior defined</i> attributes for default-values in
+      other attributes. See the examples.
+    </p>
+    <p>
+      <em>since Ant 1.6</em>
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the new definition.</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">uri</td>
+        <td valign="top">
+          The uri that this definition should live in.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">A description of the macrodef
+          (for documentation purposes only).
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">backtrace</td>
+        <td valign="top">
+          This controls the error traceback if they is an
+          error detected when running the macro. If this is
+          set to true, there will be an error trackback, if false
+          there will not be one. <em>Since Ant 1.7</em>.
+        </td>
+        <td valign="top" align="center">No; default <em>true</em></td>
+      </tr>
+    </table>
+      <h3>Parameters specified as nested elements</h3>
+    <h4>attribute</h4>
+    <p>
+      This is used to specify attributes of the new task. The values
+      of the attributes get substituted into the templated task.
+      The attributes will be required attributes unless a default
+      value has been set.
+    </p>
+    <p>
+      This attribute is placed in the body of the templated
+      task using a notation similar to the ant property notation
+      - @{attribute name}. (May be remembered as "put the substitution
+      AT this location").
+    </p>
+    <p>
+      The escape sequence @@ is used to escape @. This allows @{x} to be
+      placed in the text without substitution of x by using @@{x}.
+      This corresponds to the $$ escape sequence for properties.
+    </p>
+    <p>
+      The case of the attribute is ignored, so @{myAttribute} is treated the
+      same as @{MyAttribute}.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the new attribute</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">default</td>
+        <td valign="top">
+          The default value of the attribute.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">
+          This contains a description of the attribute.
+          <em>since ant 1.6.1</em>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+    <h4>element</h4>
+    <p>
+      This is used to specify nested elements of the new task.
+      The contents of the nested elements of the task instance
+      are placed in the templated task at the tag name.
+    </p>
+    <p>
+      The case of the element name is ignored.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the element</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">optional</td>
+        <td valign="top">
+          If true this nested element is optional. Default is
+          false - i.e the nested element is required in
+          the new task.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">implicit</td>
+        <td valign="top">
+          If true this nested element is implicit. This means that
+          any nested elements of the macrodef instance will be placed
+          in the element indicated by the name of this element.
+          There can only be one element if an element is implicit.
+          The default value is false. <em>since ant 1.6.2</em>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">
+          This contains a description
+          informing the user what the contents of the element are expected to be.
+          <em>since ant 1.6.1</em>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+    <h4>text</h4>
+    <p>
+      This is used to specify the treatment of text contents of the macrodef.
+      If this element is not present, then any nested text in the macro
+      will be an error. If the text element is present, then the name
+      becomes an attribute that gets set to the nested text of the macro.
+      <em>Since ant 1.6.1.</em>
+    </p>
+    <p>
+      The case of the text name is ignored.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of the text attribute</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">optional</td>
+        <td valign="top">
+          If true nested text in the macro is optional, default is "false".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">trim</td>
+        <td valign="top">
+          If true, the nested text is trimmed of white space,
+          default is "false".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">description</td>
+        <td valign="top">
+          This contains a description
+          informing the user what the nested text of the macro is expected
+          to be.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <h3>Examples</h3>
+    <p>
+      The following example defined a task called testing and
+      runs it.
+    </p>
+    <blockquote>
+<pre class=code>
+&lt;macrodef name="testing"&gt;
+   &lt;attribute name="v" default="NOT SET"/&gt;
+   &lt;element name="some-tasks" optional="yes"/&gt;
+   &lt;sequential&gt;
+      &lt;echo&gt;v is @{v}&lt;/echo&gt;
+      &lt;some-tasks/&gt;
+   &lt;/sequential&gt;
+&lt;/macrodef&gt;
+
+&lt;testing v="This is v"&gt;
+   &lt;some-tasks&gt;
+      &lt;echo&gt;this is a test&lt;/echo&gt;
+   &lt;/some-tasks&gt;
+&lt;/testing&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following fragment defines a task called <code>&lt;call-cc&gt;</code> which
+      take the attributes "target", "link" and "target.dir" and the
+      nested element "cc-elements". The body of the task
+      uses the <code>&lt;cc&gt;</code> task from the
+      <a href="http://ant-contrib.sourceforge.net/">ant-contrib</a> project.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="call-cc"&gt;
+   &lt;attribute name="target"/&gt;
+   &lt;attribute name="link"/&gt;
+   &lt;attribute name="target.dir"/&gt;
+   &lt;element name="cc-elements"/&gt;
+   &lt;sequential&gt;
+      &lt;mkdir dir="${obj.dir}/@{target}"/&gt;
+      &lt;mkdir dir="@{target.dir}"/&gt;
+         &lt;cc link="@{link}" objdir="${obj.dir}/@{target}"
+             outfile="@{target.dir}/@{target}"&gt;
+            &lt;compiler refid="compiler.options"/&gt;
+            &lt;cc-elements/&gt;
+         &lt;/cc&gt;
+      &lt;/sequential&gt;
+&lt;/macrodef&gt;
+</pre>
+    </blockquote>
+    <p>
+      This then can be used as follows:
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;call-cc target="unittests" link="executable"
+         target.dir="${build.bin.dir}"&gt;
+   &lt;cc-elements&gt;
+      &lt;includepath location="${gen.dir}"/&gt;
+      &lt;includepath location="test"/&gt;
+      &lt;fileset dir="test/unittest" includes = "**/*.cpp"/&gt;
+      &lt;fileset dir="${gen.dir}" includes = "*.cpp"/&gt;
+      &lt;linker refid="linker-libs"/&gt;
+   &lt;/cc-elements&gt;
+&lt;/call-cc&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following fragment shows &lt;call-cc&gt;, but this time
+      using an implicit element and with the link and target.dir arguments
+      having default values.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="call-cc"&gt;
+   &lt;attribute name="target"/&gt;
+   &lt;attribute name="link" default="executable"/&gt;
+   &lt;attribute name="target.dir" default="${build.bin.dir}"/&gt;
+   &lt;element name="cc-elements" implicit="yes"/&gt;
+   &lt;sequential&gt;
+      &lt;mkdir dir="${obj.dir}/@{target}"/&gt;
+      &lt;mkdir dir="@{target.dir}"/&gt;
+         &lt;cc link="@{link}" objdir="${obj.dir}/@{target}"
+             outfile="@{target.dir}/@{target}"&gt;
+            &lt;compiler refid="compiler.options"/&gt;
+            &lt;cc-elements/&gt;
+         &lt;/cc&gt;
+      &lt;/sequential&gt;
+&lt;/macrodef&gt;
+</pre>
+    </blockquote>
+    <p>
+      This then can be used as follows, note that &lt;cc-elements&gt;
+      is not specified.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;call-cc target="unittests"/&gt;
+   &lt;includepath location="${gen.dir}"/&gt;
+   &lt;includepath location="test"/&gt;
+   &lt;fileset dir="test/unittest" includes = "**/*.cpp"/&gt;
+   &lt;fileset dir="${gen.dir}" includes = "*.cpp"/&gt;
+   &lt;linker refid="linker-libs"/&gt;
+&lt;/call-cc&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following shows the use of the <code>text</code> element.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="echotest"&gt;
+   &lt;text name="text"/&gt;
+   &lt;sequential&gt;
+      &lt;echo&gt;@{text}&lt;/echo&gt;
+   &lt;/sequential&gt;
+&lt;/macrodef&gt;
+&lt;echotest&gt;
+   Hello world
+&lt;/echotest&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following uses a prior defined attribute for setting the
+      default value of another. The output would be
+      <tt>one=test two=test</tt>. If you change the order of lines
+      *1 and *2 the output would be <tt>one=test two=@{one}</tt>,
+      because while processing the <i>two</i>-line the value for
+      <i>one</i> is not set.
+    </p>
+    <blockquote>
+<pre class="code">
+&lt;macrodef name="test"&gt;
+   &lt;attribute name="one"/&gt;                     <b>*1</b>
+   &lt;attribute name="two" default="@{one}"/&gt;    <b>*2</b>
+   &lt;sequential&gt;
+      &lt;echo&gt;one=@{one}   two=@{two}&lt;/echo&gt;
+   &lt;/sequential&gt;
+&lt;/macrodef&gt;
+&lt;test one="test"/&gt;
+</pre>
+    </blockquote>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/mail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/mail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/mail.html	(revision 14989)
@@ -0,0 +1,324 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Mail Task</title>
+</head>
+
+<body>
+
+<h2><a name="mail">Mail</a></h2>
+<h3>Description</h3>
+  <p>
+    A task to send SMTP email.
+  </p>
+  <p>
+    This task can send mail using either plain
+    text, UU encoding, or MIME format mail, depending on what is available.
+  </p>
+  <p>
+    SMTP auth and SSL/TLS require JavaMail and are only available in MIME format.
+  </p>
+  <p>
+    Attachments may be sent using nested
+    <code>&lt;attachments&gt;</code> elements, which are <a
+    href="../using.html#path">path-like structures</a>.  This means
+    any filesystem based <a
+    href="../CoreTypes/resources.html">resource</a> or resource
+    collection can be used to point to attachments.  Prior to Ant 1.7
+    only <code>&lt;fileset&gt;</code> has been supported as a nested
+    element, you can still use this directly without an
+    <code>&lt;attachments&gt;</code> container.
+  </p>
+  <p>
+    <strong>Note:</strong> This task may depend on external libraries
+    that are not included in the Ant distribution. 
+    See <a href="../install.html#librarydependencies">Library Dependencies</a>
+    for more information.
+  </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">Email address of sender.</td>
+    <td align="center" valign="top">Either a <code>from</code> attribute, or a <code>&lt;from&gt;</code>
+    element.</td>
+  </tr>
+  <tr>
+    <td valign="top">replyto</td>
+    <td valign="top">Replyto email address.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tolist</td>
+    <td valign="top">Comma-separated list of recipients.</td>
+    <td align="center" valign="middle" rowspan="3">At least one of these, or the
+       equivalent elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">cclist</td>
+    <td valign="top">Comma-separated list of recipients to carbon copy</td>
+    </tr>
+  <tr>
+    <td valign="top">bcclist</td>
+    <td valign="top">Comma-separated list of recipients to blind carbon copy
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">Message to send in the body of the email.</td>
+    <td align="center" valign="middle" rowspan="2">One of these or a
+    <code>&lt;message&gt;</code> element.</td>
+  </tr>
+  <tr>
+    <td valign="top">messagefile</td>
+    <td valign="top">File to send as the body of the email. Property
+    values in the file will be expanded.</td>
+  </tr>
+      <td valign="top">messagemimetype</td>
+    <td valign="top">The content type of the message.  The default is
+    <code>text/plain</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">files</td>
+    <td valign="top">Files to send as attachments to the email.  Separate multiple
+    file names using a comma or space.  You can also use <code>&lt;fileset&gt;</code>
+    elements to specify files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">flag to indicate whether to halt the build on
+    any error.  The default value is <code>true</code>.</td>
+    <td align="center" valign="top">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">includefilenames</td>
+    <td valign="top">Include filename(s) before file contents.
+    Valid only when the <code>plain</code> encoding is used.  The default
+    value is <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mailhost</td>
+    <td valign="top">Host name of the SMTP server.  The default value is
+    <code>localhost</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mailport</td>
+    <td valign="top">TCP port of the SMTP server.  The default value is 25.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">user</td>
+    <td valign="top">user name for SMTP auth</td>
+    <td valign="center">Yes, if SMTP auth is required on your SMTP server<br></br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">password for SMTP auth</td>
+    <td valign="center">Yes, if SMTP auth is required on your SMTP server<br></br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td valign="top">ssl</td>
+    <td valign="top">"true", "on" or "yes" accepted here<br></br>
+    indicates whether you need TLS/SSL</td>
+    <td valign="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">Specifies the encoding to use for the content of the email.
+    Values are <code>mime</code>, <code>uu</code>, <code>plain</code>, or
+      <code>auto</code>.  The default value is <code>auto</code>.
+      <code>uu</code> or <code>plain</code> are not compatible with SMTP auth</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">charset</td>
+    <td valign="top">Character set of the email.<br>
+    You can also set the charset in the message nested element.<br>
+    These options are mutually exclusive.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">subject</td>
+    <td valign="top">Email subject line.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Note regarding the attributes containing email addresses</h3>
+Since Ant 1.6, the attributes from, replyto, tolist, cclist, bcclist
+can contain email addresses of the form :
+<ul>
+<li>address@xyz.com</li>
+<li>name &lt;address@xyz.com&gt;</li>
+<li>&lt;address@xyz.com&gt; name</li>
+<li>(name) address@xyz.com</li>
+<li>address@xyz.com (name)</li>
+</ul>
+<p>You need to enter the angle brackets as XML entities
+<code>&amp;gt;</code> and <code>&amp;lt;</code>.</p>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>to / cc / bcc / from/ replyto </h4>
+<p>Adds an email address element.  It takes the following attributes:</p>
+
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The display name for the address.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">address</td>
+    <td valign="top">The email address.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>message</h4>
+
+<p>Specifies the message to include in the email body.  It takes the following
+attributes:</p>
+
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The file to use as the message.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mimetype</td>
+    <td valign="top">The content type to use for the message.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">charset</td>
+    <td valign="top">Character set of the message<br>
+    You can also set the charset as attribute of the enclosing mail task.<br>
+    These options are mutually exclusive.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>If the <code>src</code> attribute is not specified, then text can be added
+inside the <code>&lt;message&gt;</code> element. Property expansion will occur
+in the message, whether it is specified as an external file or as text within
+the <code>&lt;message&gt;</code> element.</p>
+
+<h4>header</h4>
+<p><strong>Since Ant 1.7</strong>, arbitrary mail headers can be added by
+  specifying these attributes on one or more nested header elements:</p>
+
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name associated with this mail header.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to assign to this mail header.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<p>It is permissible to duplicate the name attribute amongst multiple headers.
+</p>
+
+<h3>Examples</h3>
+
+<blockquote><pre>
+&lt;mail from=&quot;me&quot;
+      tolist=&quot;you&quot;
+      subject=&quot;Results of nightly build&quot;
+      files=&quot;build.log&quot;/&gt;
+</pre></blockquote>
+
+<p>Sends an email from <i>me</i> to <i>you</i> with a subject of
+<i>Results of nightly build</i> and includes the contents of the file
+<i>build.log</i> in the body of the message.</p>
+
+<blockquote><pre>
+&lt;mail mailhost=&quot;smtp.myisp.com&quot; mailport=&quot;1025&quot; subject=&quot;Test build&quot;&gt;
+  &lt;from address=&quot;config@myisp.com&quot;/&gt;
+  &lt;replyto address=&quot;me@myisp.com&quot;/&gt;
+  &lt;to address=&quot;all@xyz.com&quot;/&gt;
+  &lt;message&gt;The ${buildname} nightly build has completed&lt;/message&gt;
+  &lt;attachments&gt;
+    &lt;fileset dir=&quot;dist&quot;&gt;
+      &lt;include name=&quot;**/*.zip&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/attachments&gt;
+&lt;/mail&gt;
+</pre></blockquote>
+
+<p>Sends an eMail from <i>config@myisp.com</i> to <i>all@xyz.com</i> with a subject of
+<i>Test Build</i>. Replies to this email will go to <i>me@myisp.com</i>.
+Any zip files from the dist directory are attached.&nbsp; The
+task will attempt to use JavaMail and fall back to UU encoding or no encoding in
+that order depending on what support classes are available. <code>${buildname}</code>
+will be replaced with the <code>buildname</code> property's value.</p>
+
+<blockquote><pre>
+&lt;property name=&quot;line2&quot; value=&quot;some_international_message&quot;/&gt;
+&lt;echo message=&quot;${line2}&quot;/&gt;
+
+&lt;mail mailhost=&quot;somehost@xyz.com&quot; mailport=&quot;25&quot; subject=&quot;Test build&quot;  charset=&quot;utf-8&quot;&gt;
+  &lt;from address=&quot;me@myist.com&quot;/&gt;
+  &lt;to address=&quot;all@xyz.com&quot;/&gt;
+  &lt;message&gt;some international text:${line2}&lt;/message&gt;
+&lt;/mail&gt;
+</pre></blockquote>
+
+<p>Sends an eMail from <i>me@myisp.com</i> to <i>all@xyz.com</i> with a subject of
+<i>Test Build</i>, the message body being coded in UTF-8
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/makeurl.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/makeurl.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/makeurl.html	(revision 14989)
@@ -0,0 +1,152 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Makeurl Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+</head>
+
+<body>
+
+<h2><a name="makeurl">Makeurl</a></h2>
+<h3>Description</h3>
+
+<p>This task takes one or more filenames and turns them into URLs, which it then assigns to a property.
+Useful when setting up RMI or JNLP codebases, for example.
+Nested filesets are supported; if present, these are turned into the URLs with the supplied separator between them (default: space).
+<p/>
+<p>Examples:</p>
+<pre>
+&lt;makeurl file="${user.home}/.m2/repository" property="m2.repository.url"/&gt;
+</pre>
+Sets the property <code>m2.repository.url</code> to the file: URL of the local Maven2 repository.
+<pre>
+&lt;makeurl property="codebase"&gt;&lt;fileset dir="lib includes="*.jar"/&gt;&lt;/makeurl&gt;
+</pre>
+Set the property <code>codebase</code> to the three URLs of the files provided as nested elements.
+      </blockquote>
+
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+<a name="attributes"></a>
+          <h3>Parameters</h3>    
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          file
+        </td>
+        <td>
+          name of a file to be converted into a URL
+        </td>
+        <td>
+          File
+        </td>
+        <td>
+          optional, if a nested fileset or path is supplied
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          property
+        </td>
+        <td>
+          name of a property to set to the URL
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          required
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          separator
+        </td>
+        <td>
+          separator for the multi-URL option
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          optional
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          validate
+        </td>
+        <td>
+          validate that every named file exists
+        </td>
+        <td>
+          boolean
+        </td>
+        <td>
+          optional; default: true
+        </td>
+    </tr>
+
+
+        </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <a name="elements"></a>
+          <h3>Parameters as nested elements</h3>
+    <!-- Start Element -->
+          <h4>fileset</h4> (org.apache.tools.ant.types.FileSet)
+
+        <p>A fileset of JAR files to include in the URL list, each separated by the separator.</p>
+
+          <h4>path</h4> (org.apache.tools.ant.types.Path)
+
+        <p>Add a path to the URL. All elements in the path will be converted to individual URL entries.</p>
+
+    <!-- End Element -->
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/manifest.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/manifest.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/manifest.html	(revision 14989)
@@ -0,0 +1,174 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Manifest Task</title>
+</head>
+
+<body>
+
+<h2><a name="manifest">Manifest</a></h2>
+<h3>Description</h3>
+<p>Creates a manifest file.</p>
+
+<p>This task can be used to write a Manifest file, optionally
+replacing or updating an existing file.</p>
+
+
+
+<p>Manifests are processed according to the 
+<a href="http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html">Jar
+file specification.</a>. Specifically, a manifest element consists of
+a set of attributes and sections. These sections in turn may contain
+attributes. Note in particular that this may result in manifest lines
+greater than 72 bytes being wrapped and continued on the next
+line.</p>
+
+<p>
+  The Ant team regularly gets complaints that this task in generating invalid
+  manifests. By and large, this is not the case: we believe that we are following
+  the specification to the letter. The usual problem is that some third party
+  manifest reader is not following the same specification as well as they think
+  they should; we cannot generate invalid manifest files just because one
+  single application is broken. J2ME runtimes appear to be particularly troublesome.
+</p>
+
+<p>
+  If you find that Ant generates manifests incompatible with your runtime, take
+  a manifest it has built, fix it up however you need and switch to using the &lt;zip&gt
+  task to create the JAR, feeding in the hand-crafted manifest.
+</p>
+
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the manifest-file to create/update.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">mode</td>
+    <td valign="top">One of "update" or "replace", default is "replace".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding used to read the existing manifest when updating.</td>
+    <td valign="top" align="center">No, defaults to UTF-8 encoding.</td>
+  </tr>
+</table>
+
+<h3>Nested elements</h3>
+<h4><a name="attribute">attribute</a></h4>
+<p>One attribute for the manifest file.  Those attributes that are
+not nested into a section will be added to the "Main" section.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the attribute.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the value of the attribute.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+
+<h4>section</h4>
+<p>A manifest section - you can nest <a
+href="#attribute">attribute</a> elements into sections.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the section.</td>
+    <td valign="top" align="center">No, if omitted it will be assumed
+       to be the main section.</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;manifest file=&quot;MANIFEST.MF&quot;&gt;
+    &lt;attribute name=&quot;Built-By&quot; value=&quot;${user.name}&quot;/&gt;
+    &lt;section name=&quot;common&quot;&gt;
+      &lt;attribute name=&quot;Specification-Title&quot; value=&quot;Example&quot;/&gt;
+      &lt;attribute name=&quot;Specification-Version&quot; value=&quot;${version}&quot;/&gt;
+      &lt;attribute name=&quot;Specification-Vendor&quot; value=&quot;Example Organization&quot;/&gt;
+      &lt;attribute name=&quot;Implementation-Title&quot; value=&quot;common&quot;/&gt;
+      &lt;attribute name=&quot;Implementation-Version&quot; value=&quot;${version} ${TODAY}&quot;/&gt; 
+      &lt;attribute name=&quot;Implementation-Vendor&quot; value=&quot;Example Corp.&quot;/&gt;
+    &lt;/section&gt;
+    &lt;section name=&quot;common/class1.class&quot;&gt;
+      &lt;attribute name=&quot;Sealed&quot; value=&quot;false&quot;/&gt;
+    &lt;/section&gt;
+  &lt;/manifest&gt;
+</pre>
+
+<p>Creates or replaces the file MANIFEST.MF.  Note that the Built-By
+attribute will take the value of the Ant property ${user.name}.  The
+same is true for the ${version} and ${TODAY} properties.  This example
+produces a MANIFEST.MF that contains 
+<a href="http://java.sun.com/j2se/1.5.0/docs/guide/versioning/">package
+version identification</a> for the package <code>common</code>.</p>
+
+<p>The manifest produced by the above would look like this:</p>
+
+<pre><code>Manifest-Version: 1.0
+Built-By: bodewig
+Created-By: Apache Ant 1.7
+
+Name: common
+Specification-Title: Example
+Specification-Vendor: Example Organization
+Implementation-Vendor: Example Corp.
+Specification-Version: 1.2
+Implementation-Version: 1.2 February 19 2006
+Implementation-Title: common
+
+Name: common/class1.class
+Sealed: false
+
+</code></pre>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/manifestclasspath.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/manifestclasspath.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/manifestclasspath.html	(revision 14989)
@@ -0,0 +1,112 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ManifestClassPath Task</title>
+</head>
+
+<body>
+
+<h2><a name="manifestclasspath">Manifestclasspath</a></h2>
+
+<h3>Description</h3>
+<p>Converts a <a href="../using.html#path">Path</a> into a property
+whose value is appropriate for a <a href="manifest.html">Manifest</a>'s
+<code>Class-Path</code> attribute.</p>
+
+<p>This task is often used to work around command line limitations on Windows
+when using very long class paths when launching an application. The long class
+path normally specified on the command line is replaced by a single (possibly
+empty) jar file which an in-manifest Class-Path attribute whose value lists
+all the jar and zip files the class path should contain. The files referenced
+from this attribute must be found relatively to the jar file itself, usually
+in the same directory. The Java VM automically uses all file entries listed
+in the Class-Path attributes of a jar to locate/load classes. Note though that
+it silently ignores entries for which it cannot find any corresponding file.</p>
+
+<p>Note that the property value created may be longer than a manifest's maximum
+72 characters per line, but will be properly wrapped as per the Jar
+specification by the <code>&lt;manifest&gt;</code> element, where the
+defined property is re-referenced.</p>
+
+<p><em>since Ant 1.7</em></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">the name of the property to set. This property must
+                     not already be set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">jarfile</td>
+    <td valign="top">
+      the filename for the Jar which will contain the manifest that will
+      use the property this task will set. This file need not exist yet,
+      but its parent directory must exist.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">maxParentLevels</td>
+    <td valign="top">
+      The maximum number of parent directories one is allowed to traverse
+      to navigate from the jar file to the path entry. Put differently, the
+      maximum number of .. which is allowed in the relative path from the
+      jar file to a given class path enty. Specify 0 to enforce a path
+      entry to be in the same directory (or one of its sub-directories)
+      as the jar file itself.  Defaults to 2 levels.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p>A <a href="../using#path.html">Path-like</a> element, which can be
+defined in-place, or refer to a path defined elsewhere using the
+<code>&lt;classpath refid="<em>pathid</em>" /&gt;</code> syntax.
+This classpath must not be empty, and is required.</p>
+
+<h3>Examples</h3>
+<div id="example1">
+  <blockquote><pre>
+    &lt;manifestclasspath property="jar.classpath"
+                       jarfile="build/acme.jar"&gt;
+      &lt;classpath refid="classpath" /&gt;
+    &lt;/manifestclasspath&gt;
+  </pre></blockquote>
+  <p>Assuming a path of id "classpath" was already defined, convert this
+  path relatively to the build/ directory that will contain acme.jar, which
+  can later be created with <code>&lt;jar&gt;</code> with a nested 
+  <code>&lt;manifest&gt;</code> element that lists an
+  <code>&lt;attribute name="Class-Path" value="${jar.classpath}" /&gt;</code>.
+  </p>
+</div>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/mkdir.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/mkdir.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/mkdir.html	(revision 14989)
@@ -0,0 +1,52 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Mkdir Task</title>
+</head>
+
+<body>
+
+<h2><a name="mkdir">Mkdir</a></h2>
+<h3>Description</h3>
+<p>Creates a directory. Also non-existent parent directories are created, when
+necessary. Does nothing if the directory already exist.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the directory to create.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>&lt;mkdir dir=&quot;${dist}&quot;/&gt;</pre>
+<p>creates a directory <code>${dist}</code>.</p>
+<pre>&lt;mkdir dir=&quot;${dist}/lib&quot;/&gt;</pre>
+<p>creates a directory <code>${dist}/lib</code>.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/move.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/move.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/move.html	(revision 14989)
@@ -0,0 +1,230 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Move Task</title>
+</head>
+
+<body>
+
+<h2><a name="move">Move</a></h2>
+<h3>Description</h3>
+<p>Moves a file to a new file or directory, or collections of files to
+a new directory.  By default, the
+destination file is overwritten if it already exists.  When <var>overwrite</var> is
+turned off, then files are only moved if the source file is newer than
+the destination file, or when the destination file does not exist.</p>
+
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select a group of files to move.  Only
+file system based resource collections are supported, this includes <a
+href="../CoreTypes/fileset.html">fileset</a>s, <a
+href="../CoreTypes/filelist.html">filelist</a> and <a
+href="../using.html#path">path</a>.  Prior to Ant 1.7 only
+<code>&lt;fileset&gt;</code> has been supported as a nested element.
+To use a resource collection, the <code>todir</code> attribute must be
+set.</p>
+
+<p><b>Since Ant 1.6.3</b>, the <i>file</i> attribute may be used to move
+(rename) an entire directory.  If <i>tofile</i> denotes an existing file, or
+there is a directory by the same name in <i>todir</i>, the action will fail.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory to move</td>
+    <td valign="top" align="center">One of <var>file</var> or
+     at least one nested resource collection element</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the moved files the same last modified
+      time as the original source files.
+      (<em>Note</em>: Ignored on Java 1.1)</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">the file to move to</td>
+    <td valign="top" align="center" rowspan="2">With the <var>file</var> attribute,
+    either <var>tofile</var> or <var>todir</var> can be used.  With nested filesets,
+    if the fileset size is greater than 1 or if the only entry in the fileset is a
+    directory or if the <var>file</var> attribute is already specified, only
+    <var>todir</var> is allowed</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">the directory to move to</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">overwrite existing files even if the destination
+      files are newer (default is &quot;true&quot;)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place during
+      the move.  See the <a href="filter.html">filter</a> task for a description of
+      how filters work.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">flatten</td>
+    <td valign="top">ignore directory structure of source directory,
+      copy all files into a single directory, specified by the <var>todir</var>
+      attribute (default is &quot;false&quot;).Note that you can achieve the
+      same effect by using a <a href="../CoreTypes/mapper.html#flatten-mapper">flatten mapper</a></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+	 <td valign="top">Copy empty directories included with the nested FileSet(s).
+	   Defaults to &quot;yes&quot;.</td>
+	 <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">If false, log a warning message, but do not stop the
+       build, when the file to copy does not exist or one of the nested
+       filesets points to a directory that doesn't exist or an error occurs
+       while moving.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+     <td valign="top">Log the files that are being moved.</td>
+     <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding to assume when filter-copying the
+    files. <em>since Ant 1.5</em>.</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The encoding to use when writing the files.
+    <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to the value of the encoding
+    attribute if given or the default JVM encoding otherwise.</td>
+  </tr>
+  <tr>
+    <td valign="top">enablemultiplemapping</td>
+    <td valign="top">
+      If true the task will process to all the mappings for a
+      given source path. If false the task will only process
+      the first file or directory. This attribute is only relevant
+      if there is a mapper subelement.
+      <em>since Ant 1.6</em>.</td>
+    <td align="center">No - defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">granularity</td>
+    <td valign="top">The number of milliseconds leeway to give before
+    deciding a file is out of date. This is needed because not every
+    file system supports tracking the last modified time to the
+    millisecond level. Default is 0 milliseconds, or 2 seconds on DOS
+    systems.  This can also be useful if source and target files live
+    on separate machines with clocks being out of sync.  <em>since Ant
+    1.6</em>.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>mapper</h4>
+<p>You can define file name transformations by using a nested <a
+href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
+<code>&lt;move&gt;</code> is the <a
+href="../CoreTypes/mapper.html#identity-mapper">identity</a>.</p>
+<p>Note that the source name handed to the mapper depends on the
+resource collection you use.  If you use <code>&lt;fileset&gt;</code>
+or any other collection that provides a base directory, the name
+passed to the mapper will be a relative filename, relative to the base
+directory.  In any other case the absolute filename of the source will
+be used.</p>
+<h4>filterchain</h4>
+<p>The Move task supports nested <a href="../CoreTypes/filterchain.html">
+FilterChain</a>s.</p>
+
+<p>
+If <code>&lt;filterset&gt;</code> and <code>&lt;filterchain&gt;</code> elements are used inside the
+same <code>&lt;move&gt;</code> task, all <code>&lt;filterchain&gt;</code> elements are processed first
+followed by <code>&lt;filterset&gt;</code> elements.
+</p>
+
+<h3>Examples</h3>
+<p><b>Move a single file (rename a file)</b></p>
+<pre>
+  &lt;move file=&quot;file.orig&quot; tofile=&quot;file.moved&quot;/&gt;
+</pre>
+<p><b>Move a single file to a directory</b></p>
+<pre>
+  &lt;move file=&quot;file.orig&quot; todir=&quot;dir/to/move/to&quot;/&gt;
+</pre>
+<p><b>Move a directory to a new directory</b></p>
+<pre>
+  &lt;move todir=&quot;new/dir/to/move/to&quot;&gt;
+    &lt;fileset dir=&quot;src/dir&quot;/&gt;
+  &lt;/move&gt;
+</pre>
+  <i>or, since Ant 1.6.3:</i>
+<pre>
+  &lt;move file=&quot;src/dir&quot; tofile=&quot;new/dir/to/move/to&quot;/&gt;
+</pre>
+<p><b>Move a set of files to a new directory</b></p>
+<pre>
+  &lt;move todir=&quot;some/new/dir&quot;&gt;
+    &lt;fileset dir=&quot;my/src/dir&quot;&gt;
+      &lt;include name=&quot;**/*.jar&quot;/&gt;
+      &lt;exclude name=&quot;**/ant.jar&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/move&gt;
+</pre>
+<p><b>Move a list of files to a new directory</b></p>
+<pre>
+  &lt;move todir=&quot;some/new/dir&quot;&gt;
+    &lt;filelist dir=&quot;my/src/dir&quot;&gt;
+      &lt;file name="file1.txt"/&gt;
+      &lt;file name="file2.txt"/&gt;
+    &lt;/filelist&gt;
+  &lt;/move&gt;
+</pre>
+<p><b>Append <code>&quot;.bak&quot;</code> to the names of all files
+in a directory.</b></p>
+<pre>
+  &lt;move todir=&quot;my/src/dir&quot; includeemptydirs=&quot;false&quot;&gt;
+    &lt;fileset dir=&quot;my/src/dir&quot;&gt;
+      &lt;exclude name=&quot;**/*.bak&quot;/&gt;
+    &lt;/fileset&gt;
+    &lt;mapper type=&quot;glob&quot; from=&quot;*&quot; to=&quot;*.bak&quot;/&gt;
+  &lt;/move&gt;
+</pre>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/nice.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/nice.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/nice.html	(revision 14989)
@@ -0,0 +1,70 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Nice Task</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Nice</a></h2>
+<h3>Description</h3>
+<p>Provide "nice-ness" to the current thread
+   and/or query the current value.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">currentpriority</td>
+    <td valign="top">the name of the property whose value should be
+                     set to the current &quot;nice-ness&quot; level.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newpriority</td>
+    <td valign="top">the value to which the
+                     &quot;nice-ness&quot; level should be set.
+                     Must be a valid Java Thread priority.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>   &lt;nice newpriority=&quot;10&quot;/&gt;</pre>
+Set the Thread priority to 10 (highest).
+<pre>   &lt;nice currentpriority=&quot;priority&quot;/&gt;</pre>
+Store the current Thread priority in the user property "priority".
+<pre>
+   &lt;nice currentpriority=&quot;currentpriority&quot; newpriority=&quot;1&quot;/&gt;
+</pre>
+<p>Set the current Thread priority to 1 (lowest), storing the original
+priority in the user property "currentpriority".  This
+can be used to set the priority back to its original value later.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/pack.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/pack.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/pack.html	(revision 14989)
@@ -0,0 +1,76 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GZip/BZip2 Tasks</title>
+</head>
+
+<body>
+
+<h2><a name="pack">GZip/BZip2</a></h2>
+<h3>Description</h3>
+<p>Packs a resource using the GZip or BZip2 algorithm.
+The output file is only generated if it doesn't exist or the source
+resource is newer.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the file to gzip/bzip.</td>
+    <td align="center" valign="top">Yes, or a nested resource collection.</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the destination file to create.</td>
+    <td align="center" valign="top" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">zipfile</td>
+    <td valign="top">the <i>deprecated</i> old name of destfile.</td>
+  </tr>
+</table>
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as src. <em>Since Ant 1.7</em></p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;gzip src=&quot;test.tar&quot; destfile=&quot;test.tar.gz&quot;/&gt;
+</pre></blockquote>
+<blockquote><pre>
+&lt;bzip2 src=&quot;test.tar&quot; destfile=&quot;test.tar.bz2&quot;/&gt;
+</pre></blockquote>
+<blockquote><pre>
+&lt;gzip destfile=&quot;archive.tar.gz&quot;&gt;
+  &lt;url url="http://example.org/archive.tar"/&gt;
+&lt;/gzip&gt;
+</pre></blockquote>
+<p>downloads <i>http://example.org/archive.tar</i> and compresses it
+to <i>archive.tar.gz</i> in the project's basedir on the fly.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/parallel.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/parallel.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/parallel.html	(revision 14989)
@@ -0,0 +1,200 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Parallel Task</title>
+</head>
+
+<body>
+
+<h2>Parallel</h2>
+<h3>Description</h3>
+<p>Parallel is a container task - it can contain other Ant tasks. Each nested
+task within the parallel task will be executed in its own thread. </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">threadCount</td>
+    <td valign="top">Maximum numbers of thread to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">threadsPerProcessor</td>
+    <td valign="top">Maximum number of threads to use per available processor
+(Requires JDK 1.4)</td>
+    <td align="center" valign="top">No, defers to threadCount</td>
+  </tr>
+  <tr>
+    <td valign="top">pollInterval</td>
+    <td valign="top">Currently has no effect</td>
+    <td align="center" valign="top">No, default is 1000</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Number of milliseconds before execution is terminated</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonany</td>
+    <td valign="top">If any of the nested tasks fails, execution of the task completes
+                     at that point without waiting for any other tasks to complete.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>Parallel tasks have a number of uses in an Ant build file including:</p>
+<ul>
+<li>Taking advantage of available processing resources to reduce build time</li>
+<li>Testing servers, where the server can be run in one thread and the test
+harness is run in another thread.</li>
+</ul>
+
+<p>Care must be taken when using multithreading to ensure the tasks within the
+threads do not interact. For example, two javac compile tasks which write
+classes into the same destination directory may interact where one tries to
+read a class for dependency information while the other task is writing the
+class file. Be sure to avoid these types of interactions within a
+<code>&lt;parallel&gt;</code> task</p>
+
+<p>Any valid Ant task may be embedded within a
+parallel task, including other parallel tasks.</p>
+
+<p>Note that while the tasks within the parallel task are being run, the main
+thread will be blocked waiting for all the child threads to complete. If
+execution is terminated by a timeout or a nested task failure when the failonany
+flag is set, the parallel task will complete without waiting for other nested
+tasks to complete in other threads.
+</p>
+
+<p>If any of the tasks within the <code>&lt;parallel&gt;</code> task fails and failonany is
+not set, the remaining tasks in other threads will continue to run until
+all threads have completed. In this situation, the parallel task will also fail.</p>
+
+<p>The parallel task may be combined with the <a href="sequential.html">
+sequential</a> task to define sequences of tasks to be executed on each thread
+within the parallel block</p>
+
+<p>The threadCount attribute can be used to place a maximum number of available
+threads for the execution.  When not present all child tasks will be executed at
+once.  When present then the maximum number of concurrently executing tasks will
+not exceed the number of threads specified.  Furthermore, each task will be
+started in the order they are given.  But no guarantee is made as to the speed
+of execution or the order of completion of the tasks, only that each will be
+started before the next.<p>
+
+<p>If you are using J2RE 1.4 or later you can also use the threadsPerProcessor
+and the number of available threads will be the stated multiple of the number of
+processors (there is no affinity to a particular processor however).  This will
+override the value in threadCount.  If threadsPerProcessor is specified using
+any version prior to 1.4 then the value in threadCount will be used as is.</p>
+
+<p>When using threadCount and threadsPerProcessor care should be taken to ensure
+that the build does not deadlock.  This can be caused by tasks such as waitFor
+taking up all available threads before the tasks that would unlock the waitfor
+would occur.  This is not a repalcement for Java Language level thread
+semantics and is best used for "embarassingly parallel" tasks.</p>
+
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>daemons</h4>
+<p>
+The parallel task supports a <code>&lt;daemons&gt;</code> nested element. This is a list of tasks
+which are to be run in parallel daemon threads. The parallel task will not wait for
+these tasks to complete. Being daemon threads, however, they will not prevent Ant from
+completing, whereupon the threads are terminated. Failures in daemon threads which
+occur before the parallel task itself finishes will be reported and can cause
+parallel to throw an exception. Failures which occur after parallel has completed are not
+reported.
+</p>
+
+<p>Daemon tasks can be used, for example, to start test servers which might not be easily
+terminated from Ant. By using <code>&lt;daemons&gt;</code> such servers do not halt the build.
+</p>
+
+
+<h3>Examples</h3>
+<pre>
+&lt;parallel&gt;
+  &lt;wlrun ... &gt;
+  &lt;sequential&gt;
+    &lt;sleep seconds=&quot;30&quot;/&gt;
+    &lt;junit ... &gt;
+    &lt;wlstop/&gt;
+  &lt;/sequential&gt;
+&lt;/parallel&gt;
+</pre>
+<p>This example represents a typical pattern for testing a server application.
+In one thread the server is started (the wlrun task). The other thread consists
+of a three tasks which are performed in sequence. The sleep task is used to
+give the server time to come up. Another task which is capable of validating
+that the server is available could be used in place of the sleep task. The
+test harness is then run. Once the tests are complete, the server is stopped
+(using wlstop in this example), allowing both threads to complete. The
+parallel task will also complete at this time and the build will then
+continue.</p>
+
+<pre>
+&lt;parallel&gt;
+  &lt;javac ...&gt; &lt;!-- compiler servlet code --&gt;
+  &lt;wljspc ...&gt; &lt;!-- precompile JSPs --&gt;
+&lt;/parallel&gt;
+</pre>
+
+<p>This example shows two independent tasks being run to achieve better
+resource utilization during the build. In this instance, some servlets are being
+compiled in one thead and a set of JSPs is being precompiled in another. As
+noted above, you need to be careful that the two tasks are independent, both in
+terms of their dependencies and in terms of their potential interactions in
+Ant's external environment.</p>
+
+<pre>
+&lt;parallel threadCount='4'&gt;
+  &lt;ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'&gt;
+    &lt;param name='file' value='one.txt'/&gt;
+  &lt;/ant&gt;
+  &lt;ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'&gt;
+    &lt;param name='file' value='two.txt'/&gt;
+  &lt;/ant&gt;
+  &lt;ant target='TargetThatConsumesLotsOfCPUTimeAndMemory'&gt;
+    &lt;param name='file' value='three.txt'/&gt;
+  &lt;/ant&gt;
+  &lt;!-- repeated about 40 times --&gt;
+&lt;/parallel&gt;
+</pre>
+
+<p>This example represents a typical need for use of the threadCount and
+threadsPerProcessor attributes.  Spinning up all 40 of those tasks could cripple
+the JVM for memory and the CPU for available time.  By limiting the number of
+concurrent executions you can get the task done in about the same assuming
+infinite memory time without needing infinite memory.  This is also a good
+candidiate for use of threadCount (and possibly threadsPerProcessor) because
+each task (in this hypothetical case) is independent and has no dependencies on
+the other tasks.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/patch.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/patch.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/patch.html	(revision 14989)
@@ -0,0 +1,104 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Patch Task</title>
+</head>
+
+<body>
+
+<h2><a name="patch">Patch</a></h2>
+<h3>Description</h3>
+<p>Applies a diff file to originals. ; requires "patch" to be
+ on the execution path.  </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">patchfile</td> 
+    <td valign="top">the file that includes the diff output</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">originalfile</td> 
+    <td valign="top">the file to patch</td>
+    <td align="center" valign="top">No, tries to guess it from the diff 
+      file</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td> 
+    <td valign="top">the file to send the output to instead of
+      patching the file(s) in place.  <em>since Ant 1.6</em></td>
+    <td align="center" valign="top">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">backups</td> 
+    <td valign="top">Keep backups of the unpatched files</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td> 
+    <td valign="top">Work silently unless an error occurs</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">reverse</td> 
+    <td valign="top">Assume patch was created with old and new files 
+      swapped.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignorewhitespace</td> 
+    <td valign="top">Ignore whitespace differences.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strip</td> 
+    <td valign="top">Strip the smallest prefix containing <i>num</i> leading 
+      slashes from filenames.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td> 
+    <td valign="top">The directory in which to run the patch command.</td>
+    <td align="center" valign="top">No, default is the project's basedir.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;patch patchfile=&quot;module.1.0-1.1.patch&quot;/&gt;</pre>
+<p>applies the diff included in <i>module.1.0-1.1.patch</i> to the
+files in base directory guessing the filename(s) from the diff output.</p>
+<pre>  &lt;patch patchfile=&quot;module.1.0-1.1.patch&quot; strip=&quot;1&quot;/&gt;</pre>
+<p>like above but one leading directory part will be removed. i.e. if
+the diff output looked like</p>
+<pre>
+--- a/mod1.0/A	Mon Jun  5 17:28:41 2000
++++ a/mod1.1/A	Mon Jun  5 17:28:49 2000
+</pre> 
+the leading <i>a/</i> will be stripped.
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/pathconvert.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/pathconvert.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/pathconvert.html	(revision 14989)
@@ -0,0 +1,218 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PathConvert Task</title>
+</head>
+
+<body>
+
+<h2><a name="pathconvert">Pathconvert</a></h2>
+<h3>Description</h3>
+<p>Converts nested <a href="../CoreTypes/resources.html#collection">
+ResourceCollection</a>s, or a reference to just one, into a path
+form for a particular platform, optionally storing the result into
+a given property. It can also be used when you need
+to convert a Resource Collection into a list, separated by a given
+character, such as a comma or space, or, conversely, e.g. to convert a list
+of files in a FileList into a path.
+</p>
+<p>Nested <code>&lt;map&gt;</code> elements can be specified to map Windows
+drive letters to Unix paths, and vice-versa.</p>
+<p>More complex transformations can be achieved using a nested
+<a href="../CoreTypes/mapper.html"><code>&lt;mapper&gt;</code></a>
+(since Ant 1.6.2).
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">targetos</td>
+    <td valign="top">
+        The target architecture.  Must be one of 'unix', 'windows', 
+        'netware', 'tandem' or 'os/2'.
+        This is a shorthand mechanism for specifying both
+        <code>pathsep</code> and <code>dirsep</code>
+        according to the specified target architecture.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dirsep</td>
+    <td valign="top">
+       The character(s) to use as the directory separator in the
+       generated paths.
+    </td>
+    <td valign="top" align="center">No, defaults to current JVM <tt>File.separator</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">pathsep</td>
+    <td valign="top">
+       The character(s) to use as the path-element separator in the
+       generated paths.
+    </td>
+    <td valign="top" align="center">No, defaults to current JVM <tt>File.pathSeparator</tt></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property in which to place the converted path.</td>
+    <td valign="top" align="center">No, result will be logged if unset</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">What to convert, given as a
+        <a href="../using.html#references">reference</a> to a
+        <code>&lt;path&gt;</code>, <code>&lt;fileset&gt;</code>,
+        <code>&lt;dirset&gt;</code>, or <code>&lt;filelist&gt;</code>
+        defined elsewhere</td>
+    <td valign="top" align="center">No; if omitted, a nested
+        <code>&lt;path&gt;</code> element must be supplied.</td>
+  </tr>
+    <td valign="top">setonempty</td>
+    <td valign="top">Should the property be set, even if the result
+      is the empty string?
+    <td valign="top" align="center">No; default is &quot;true&quot;.
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>map</h4>
+<p>Specifies the mapping of path prefixes between Unix and Windows.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">
+      The prefix to match.  Note that this value is case-insensitive when
+      the build is running on a Windows platform and case-sensitive 
+      when running on a Unix platform.
+      <em>Since Ant 1.7.0</em>, on Windows this value is also insensitive
+      to the slash style used for directories, one can use '/' or '\'.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">to</td>
+    <td valign="top">The replacement text to use when <code>from</code> is matched.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<p>Each map element specifies a single replacement map to be applied to the elements of
+   the path being processed.  If no map entries are specified, then no path prefix mapping
+   is performed.
+</p>
+<p><strong>Note</strong>: The map elements are applied in the order specified,
+and only the first matching map element is applied.  So, the ordering of
+your map elements can be important, if any <code>from</code> values are
+prefixes of other <code>from</code> values.</i>
+</p>   
+<h4>Resource Collections</h4>
+<p>If the <code>refid</code> attribute is not specified, then one or more
+   nested <a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s must be supplied.</p>
+<h4>mapper</h4>
+<p>A single nested <a href="../CoreTypes/mapper.html">
+<code>&lt;mapper&gt;</code></a> element can be specified
+to perform any of various filename transformations (since Ant 1.6.2).
+</p>
+
+<h3>Examples</h3>
+<p>In the examples below, assume that the <code>${wl.home}</code> property
+has the value
+<code>d:\weblogic</code>, and <code>${wl.home.unix}</code> has the value
+<code>/weblogic</code>.</p>
+<h4>Example 1</h4>
+<pre>
+    &lt;path id="wl.path"&gt;
+      &lt;pathelement location=&quot;${wl.home}/lib/weblogicaux.jar&quot;/&gt;
+      &lt;pathelement location=&quot;${wl.home}/classes&quot;/&gt;
+      &lt;pathelement location=&quot;${wl.home}/mssqlserver4/classes&quot;/&gt;
+      &lt;pathelement location=&quot;c:\winnt\System32&quot;/&gt;
+    &lt;/path&gt;
+    
+    &lt;pathconvert targetos=&quot;unix&quot; property=&quot;wl.path.unix&quot; refid=&quot;wl.path&quot;&gt;
+      &lt;map from=&quot;${wl.home}&quot; to=&quot;${wl.home.unix}&quot;/&gt;
+      &lt;map from=&quot;c:&quot; to=&quot;&quot;/&gt;
+    &lt;/pathconvert&gt;
+</pre>
+<p> will generate the path shown below
+and store it in the property named <code>wl.path.unix</code>.
+</p>   
+<pre>
+/weblogic/lib/weblogicaux.jar:/weblogic/classes:/weblogic/mssqlserver4/classes:/WINNT/SYSTEM32
+</pre>
+
+<h4>Example 2</h4>
+Given a FileList defined as:
+<pre>
+  &lt;filelist id=&quot;custom_tasks.jars&quot;
+        dir=&quot;${env.HOME}/ant/lib&quot;
+        files=&quot;njavac.jar,xproperty.jar&quot;/&gt;
+</pre>
+then:
+<pre>
+    &lt;pathconvert targetos=&quot;unix&quot; property=&quot;custom_tasks.jars&quot; refid=&quot;custom_tasks.jars&quot;&gt;
+      &lt;map from=&quot;${env.HOME}&quot; to=&quot;/usr/local&quot;/&gt;
+    &lt;/pathconvert&gt;
+</pre>
+will convert the list of files to the following Unix path:
+<pre>
+/usr/local/ant/lib/njavac.jar:/usr/local/ant/lib/xproperty.jar
+</pre>
+
+<h4>Example 3</h4>
+<pre>
+    &lt;fileset dir=&quot;${src.dir}&quot; id=&quot;src.files&quot;&gt;
+      &lt;include name=&quot;**/*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  
+    &lt;pathconvert pathsep=&quot;,&quot; property=&quot;javafiles&quot; refid=&quot;src.files&quot;/&gt;
+</pre>
+<p>This example takes the set of files determined by the fileset (all files ending
+in <tt>.java</tt>), joins them together separated by commas, and places the resulting
+list into the property <tt>javafiles</tt>.  The directory separator is not specified, so
+it defaults to the appropriate character for the current platform.  Such a list could
+then be used in another task, like <tt>javadoc</tt>, that requires a comma separated
+list of files.
+</p>
+<h4>Example 4</h4>
+<pre>
+    &lt;pathconvert property="prop" dirsep="|"&gt;
+      &lt;map from="${basedir}/abc/" to=''/&gt;
+      &lt;path location="abc/def/ghi"/&gt;
+    &lt;/pathconvert&gt;
+</pre>
+  <p>
+    This example sets the property "prop" to "def|ghi" on
+    Windows and on Unix.
+  </p>
+</body>
+</html>
+
+ 
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/presetdef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/presetdef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/presetdef.html	(revision 14989)
@@ -0,0 +1,184 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PreSetDef Task</title>
+    <style type="text/css">
+      <!--
+           .code { background: #EFEFEF; margin-top: }
+           -->
+    </style>
+  </head>
+  
+  <body>
+    
+    <h2><a name="presetdef">PreSetDef</a></h2>
+    <h3>Description</h3>
+    <p>
+      The preset definition generates a new definition
+      based on a current definition with some attributes
+      or elements preset.
+    </p>
+    <p>
+      <em>since Ant 1.6</em>
+    </p>
+    <p>
+      The resolution of properties in any of the attributes or
+      nested text takes place with the definition is used and <em>not</em>
+      when the preset definition is defined.
+    </p>
+    <h3>Parameters</h3>
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">the name of the new definition</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">uri</td>
+        <td valign="top">
+          The uri that this definition should live in.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+    <h3>Parameters specified as nested elements</h3>
+    <h4>another type with attributes or elements set</h4>
+    <p>The <code>&lt;presetdef&gt;</code> task takes one nested element as a parameter.
+      This nested element can be any other type or task. The attributes
+      and elements that need to be preset are placed here.
+    </p>
+    
+    <h3>Examples</h3>
+      The following fragment defines a javac task with the debug, deprecation
+      srcdir and destdir
+      attributes set. It also has a src element to source files from a generated
+      directory.
+    <blockquote>
+<pre class="code">
+&lt;presetdef name="my.javac"&gt;
+   &lt;javac debug="${debug}" deprecation="${deprecation}"
+          srcdir="${src.dir}" destdir="${classes.dir}"&gt;
+      &lt;src path="${gen.dir}"/&gt;
+   &lt;/javac&gt;
+&lt;/presetdef&gt;
+</pre>
+    </blockquote>
+      This can be used as a normal javac task - example:
+    <blockquote>
+<pre class="code">
+&lt;my.javac/&gt;
+</pre>
+    </blockquote>
+      The attributes specified in the preset task may be overridden - i.e.
+      they may be seen as optional attributes - example:
+    <blockquote>
+<pre class="code">
+&lt;my.javac srcdir="${test.src}" deprecation="no"/&gt;
+</pre>
+    </blockquote>
+      One may put a presetdef definition in an antlib.
+      For example suppose the jar file antgoodies.jar has
+      the antlib.xml as follows:
+    <blockquote>
+<pre class="code">
+&lt;antlib&gt;
+   &lt;taskdef resource="com/acme/antgoodies/tasks.properties"/&gt;
+   &lt;!-- Implement the common use of the javac command --&gt;
+   &lt;presetdef name="javac"&gt;
+      &lt;javac deprecation="${deprecation}" debug="${debug}"
+             srcdir="src" destdir="classes"/&gt;
+   &lt;/presetdef&gt;
+&lt;/antlib&gt;
+</pre>
+    </blockquote>
+      One may then use this in a build file as follows:
+    <blockquote>
+<pre class="code">
+&lt;project default="example" xmlns:antgoodies="antlib:com.acme.antgoodies"&gt;
+   &lt;target name="example"&gt;
+      &lt;!-- Compile source --&gt;
+      &lt;antgoodies:javac srcdir="src/main"/&gt;
+      &lt;!-- Compile test code --&gt;
+      &lt;antgoodies:javac srcdir="src/test"/&gt;
+   &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+    </blockquote>
+    <p>
+      The following is an example of evaluation of properties when the
+      definition is used:
+    </p>
+     <blockquote>
+<pre class="code">
+&lt;target name="defineandcall"&gt;
+   &lt;presetdef name="showmessage"&gt;
+      &lt;echo&gt;message is '${message}'&lt;/echo&gt;
+   &lt;/presetdef&gt;
+   &lt;showmessage/&gt;
+   &lt;property name="message" value="Message 1"/&gt;
+   &lt;showmessage/&gt;
+   &lt;antcall target="called"&gt;
+      &lt;param name="message" value="Message 2"/&gt;
+   &lt;/antcall&gt;
+&lt;/target&gt;
+&lt;target name="called"&gt;
+   &lt;showmessage/&gt;
+&lt;/target&gt;
+</pre>
+     </blockquote>
+     <p>
+        The command ant defineandcall results in the output:
+     </p>
+     <blockquote>
+<pre class="code">
+defineandcall:
+[showmessage] message is '${message}'
+[showmessage] message is 'Message 1'
+
+called:
+[showmessage] message is 'Message 2'
+</pre>
+     </blockquote>
+<p>
+It is possible to use a trick to evaluate properties when the definition is
+<em>made</em> rather than used. This can be useful if you do not expect some
+properties to be available in child builds run with
+<code>&lt;ant ... inheritall="false"&gt;</code>:
+</p>
+<blockquote><pre class="code">
+&lt;macrodef name="showmessage-presetdef"&gt;
+  &lt;attribute name="messageval"/&gt;
+  &lt;presetdef name="showmessage"&gt;
+    &lt;echo&gt;message is '@{messageval}'&lt;/echo&gt;
+  &lt;/presetdef&gt;
+&lt;/macrodef&gt;
+&lt;showmessage-presetdef messageval="${message}"/&gt;
+</pre></blockquote>
+    <hr></hr>
+    
+  </body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/property.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/property.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/property.html	(revision 14989)
@@ -0,0 +1,216 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Property Task</title>
+</head>
+
+<body>
+
+<h2><a name="property">Property</a></h2>
+<h3>Description</h3>
+<p>Sets a <a href="../using.html#properties">property</a>
+(by name and value), or set of properties (from file or
+resource) in the project.  Properties are case sensitive.</p>
+ Properties are immutable: whoever sets a property first freezes it for the
+ rest of the build; they are most definitely not variables.
+<p>There are six ways to set properties:</p>
+<ul>
+  <li>By supplying both the <i>name</i> and <i>value</i> attribute.</li>
+  <li>By supplying both the <i>name</i> and <i>refid</i> attribute.</li>
+  <li>By setting the <i>file</i> attribute with the filename of the property
+    file to load. This property file has the format as defined by the file used
+    in the class java.util.Properties, with the same rules about how
+    non-ISO8859-1 characters must be escaped.</li>
+  <li>By setting the <i>url</i> attribute with the url from which to load the
+    properties. This url must be directed to a file that has the format as defined
+    by the file used in the class java.util.Properties.</li>
+  <li>By setting the <i>resource</i> attribute with the resource name of the
+    property file to load. A resource is a property file on the current
+    classpath, or on the specified classpath.</li>
+  <li>By setting the <i>environment</i> attribute with a prefix to use.
+    Properties will be defined for every environment variable by
+    prefixing the supplied name and a period to the name of the variable.</li>
+</ul>
+<p>Although combinations of these ways are possible, only one should be used
+at a time. Problems might occur with the order in which properties are set, for
+instance.</p>
+<p>The value part of the properties being set, might contain references to other
+properties. These references are resolved at the time these properties are set.
+This also holds for properties loaded from a property file.</p>
+<p>A list of predefined properties can be found <a
+href="../using.html#built-in-props">here</a>.</p>
+
+<h4>OpenVMS Users</h4>
+<p>With the <code>environment</code> attribute this task will load all defined
+logicals on an OpenVMS system.  Logicals with multiple equivalence names get
+mapped to a property whose value is a comma separated list of all equivalence
+names.  If a logical is defined in multiple tables, only the most local
+definition is available (the table priority order being PROCESS, JOB, GROUP,
+SYSTEM).
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the property to set.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the value of the property.</td>
+    <td valign="middle" align="center" rowspan="3">One of these, when using the
+       name attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">Sets the property to the absolute filename of the
+      given file. If the value of this attribute is an absolute path, it
+      is left unchanged (with / and \ characters converted to the
+      current platforms conventions). Otherwise it is taken as a path
+      relative to the project's basedir and expanded.</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top"><a href="../using.html#references">Reference</a> to an object
+      defined elsewhere. Only yields reasonable results for references
+      to <a href="../using.html#path">PATH like structures</a> or properties.</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">the resource name of the property file.</td>
+    <td valign="middle" align="center" rowspan="4">One of these, when
+      <b>not</b> using the name attribute</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the filename of the property file .</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">the url from which to read properties.</td>
+  </tr>
+  <tr>
+    <td valign="top">environment</td>
+    <td valign="top">the prefix to use when retrieving environment variables. Thus
+    if you specify environment=&quot;myenv&quot; you will be able to access OS-specific
+    environment variables via property names &quot;myenv.PATH&quot; or
+    &quot;myenv.TERM&quot;. Note that if you supply a property name with a final
+    &quot;.&quot; it will not be doubled. ie environment=&quot;myenv.&quot; will still
+    allow access of environment variables through &quot;myenv.PATH&quot; and
+    &quot;myenv.TERM&quot;. This functionality is currently only implemented
+    on select platforms. Feel free to send patches to increase the number of platforms
+    this functionality is supported on ;).<br>
+    Note also that properties are case sensitive, even if the
+    environment variables on your operating system are not, e.g. it
+    will be ${env.Path} not ${env.PATH} on Windows 2000.</td>
+
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up a resource.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use when looking up a resource,
+      given as <a href="../using.html#references">reference</a> to a <code>&lt;path&gt;</code> defined
+      elsewhere..</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">Prefix to apply to properties loaded using <code>file</code>
+    or <code>resource</code>. A "." is appended to the prefix if not specified.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p><code>Property</code>'s <i>classpath</i> attribute is a <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<i>classpath</i> element.</p>
+<h3>Examples</h3>
+<pre>  &lt;property name=&quot;foo.dist&quot; value=&quot;dist&quot;/&gt;</pre>
+<p>sets the property <code>foo.dist</code> to the value &quot;dist&quot;.</p>
+<pre>  &lt;property file=&quot;foo.properties&quot;/&gt;</pre>
+<p>reads a set of properties from a file called &quot;foo.properties&quot;.</p>
+<pre>  &lt;property url=&quot;http://www.mysite.com/bla/props/foo.properties&quot;/&gt;</pre>
+<p>reads a set of properties from the address &quot;http://www.mysite.com/bla/props/foo.properties&quot;.</p>
+<pre>  &lt;property resource=&quot;foo.properties&quot;/&gt;</pre>
+<p>reads a set of properties from a resource called &quot;foo.properties&quot;.</p>
+<p>Note that you can reference a global properties file for all of your Ant
+builds using the following:</p>
+<pre>  &lt;property file=&quot;${user.home}/.ant-global.properties&quot;/&gt;</pre>
+<p>since the &quot;user.home&quot; property is defined by the Java virtual machine
+to be your home directory.  Where the &quot;user.home&quot; property resolves to in
+the file system depends on the operating system version and the JVM implementation.
+On Unix based systems, this will map to the user's home directory. On modern Windows
+variants, this will most likely resolve to the user's directory in the &quot;Documents
+and Settings&quot; folder. Older windows variants such as Windows 98/ME are less
+predictable, as are other operating system/JVM combinations.</p>
+
+<pre>
+  &lt;property environment=&quot;env&quot;/&gt;
+  &lt;echo message=&quot;Number of Processors = ${env.NUMBER_OF_PROCESSORS}&quot;/&gt;
+  &lt;echo message=&quot;ANT_HOME is set to = ${env.ANT_HOME}&quot;/&gt;
+</pre>
+<p>reads the system environment variables and stores them in properties, prefixed with &quot;env&quot;.
+Note that this only works on <em>select</em> operating systems.
+Two of the values are shown being echoed.
+</p>
+
+<h3>Property Files</h3>
+
+As stated, this task will load in a properties file stored in the file
+system, or as a resource on a classpath. Here are some interesting facts
+about this feature
+<ol>
+<li>If the file is not there, nothing is printed except at -verbose log
+level. This lets you have optional configuration files for every
+project, that team members can customize.
+<li>The rules for this format are laid down
+<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream)">by Sun</a>.
+This makes it hard for Team Ant to field bug reports about it.
+<li>Trailing spaces are not stripped. It may have been what you wanted.
+<li>Want unusual characters? Escape them \u0456 or \" style.
+<li>Ant Properties are expanded in the file.
+</ol>
+In-file property expansion is very cool. Learn to use it.
+<p>
+Example:
+<pre>
+build.compiler=jikes
+deploy.server=lucky
+deploy.port=8080
+deploy.url=http://${deploy.server}:${deploy.port}/
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/recorder.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/recorder.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/recorder.html	(revision 14989)
@@ -0,0 +1,172 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Recorder Task</title>
+</head>
+
+<body>
+
+<h2><a name="log">Record</a></h2>
+<h3>Description</h3>
+<p>A recorder is a listener to the current build process that records the
+output to a file.</p>
+
+<p>Several recorders can exist at the same time.  Each recorder is
+associated with a file.  The filename is used as a unique identifier for
+the recorders.  The first call to the recorder task with an unused filename
+will create a recorder (using the parameters provided) and add it to the
+listeners of the build.  All subsequent calls to the recorder task using
+this filename will modify that recorders state (recording or not) or other
+properties (like logging level).</p>
+
+<p>Some technical issues: the file's print stream is flushed for &quot;finished&quot;
+events (buildFinished, targetFinished and taskFinished), and is closed on
+a buildFinished event.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the file this logger is associated with.</td>
+    <td align="center" valign="middle">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">This tells the logger what to do: should it start
+    recording or stop?  The first time that the recorder task is called for
+    this logfile, and if this attribute is not provided, then the default
+    for this attribute is &quot;start&quot;.  If this attribute is not provided on
+    subsequent calls, then the state remains as previous.
+    [Values = {start|stop}, Default = no state change]</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Should the recorder append to a file, or create a new
+    one? This is only applicable the first time this task is called for
+    this file.  [Values = {yes|no}, Default=no]</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">emacsmode</td>
+    <td valign="top">Removes <code>[task]</code> banners like Ant's
+    <code>-emacs</code> command line switch if set to
+    <em>true</em>.</td>
+    <td align="center" valign="middle">no, default is <em>false</em></td>
+  </tr>
+  <tr>
+    <td valign="top">loglevel</td>
+    <td valign="top">At what logging level should this recorder instance
+    record to?  This is not a once only parameter (like <code>append</code>
+    is) -- you can increase or decrease the logging level as the build process
+    continues.  [Values= {error|warn|info|verbose|debug}, Default = no change]
+    </td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p>The following build.xml snippet is an example of how to use the recorder
+to record just the <code>&lt;javac&gt;</code> task:</p>
+<pre>
+    ...
+    &lt;compile &gt;
+        &lt;record name=&quot;log.txt&quot; action=&quot;start&quot;/&gt;
+        &lt;javac ...
+        &lt;record name=&quot;log.txt&quot; action=&quot;stop&quot;/&gt;
+    &lt;compile/&gt;
+    ...
+</pre>
+
+<p>The following two calls to <code>&lt;record&gt;</code> set up two
+recorders: one to file &quot;records-simple.log&quot; at logging level <code>info</code>
+(the default) and one to file &quot;ISO.log&quot; using logging level of
+<code>verbose</code>.</p>
+<pre>
+    ...
+    &lt;record name=&quot;records-simple.log&quot;/&gt;
+    &lt;record name=&quot;ISO.log&quot; loglevel=&quot;verbose&quot;/&gt;
+    ...
+</pre>
+
+<h3>Notes</h3>
+<p>There is some functionality that I would like to be able to add in the
+future.  They include things like the following:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">listener</td>
+    <td valign="top">A classname of a build listener to use from this point
+    on instead of the default listener.</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">includetarget</td>
+    <td valign="top" rowspan=2>A comma-separated list of targets to automatically
+    record.  If this value is &quot;all&quot;, then all targets are recorded.
+    [Default = all]</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludetarget</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">includetask</td>
+    <td valign="top" rowspan=2>A comma-separated list of task to automatically
+    record or not.  This could be difficult as it could conflict with the
+    <code>includetarget/excludetarget</code>.  (e.g.:
+    <code>includetarget=&quot;compile&quot; exlcudetask=&quot;javac&quot;</code>, what should
+    happen?)</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludetask</td>
+    <td align="center" valign="middle">no</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">add greater flexibility to the action attribute.  Things
+    like <code>close</code> to close the print stream.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top"></td>
+    <td valign="top"></td>
+    <td align="center" valign="top"></td>
+  </tr>
+</table>
+
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/rename.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/rename.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/rename.html	(revision 14989)
@@ -0,0 +1,64 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Rename Task</title>
+</head>
+
+<body>
+
+<h2><a name="rename">Rename</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the Move task instead.</i></p>
+<h3>Description</h3>
+<p>Renames a given file.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">file to rename.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">new name of the file.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">Enable replacing of existing file (default: on).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;rename src=&quot;foo.jar&quot; dest=&quot;${name}-${version}.jar&quot;/&gt;</pre> 
+<p>Renames the file <code>foo.jar</code> to <code>${name}-${version}.jar</code> (assuming <code>name</code>
+ and <code>version</code> being predefined properties). If a file named <code>${name}-${version}.jar</code>
+ already exists, it will be removed prior to renaming <code>foo.jar</code>.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/replace.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/replace.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/replace.html	(revision 14989)
@@ -0,0 +1,205 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Replace Task</title>
+</head>
+
+<body>
+
+<h2><a name="replace">Replace</a></h2>
+<h3>Description</h3>
+<p>Replace is a directory based task for replacing the occurrence of a given string with another string 
+in selected file.</p>
+<p>If you want to replace a text that crosses line boundaries, you
+must use a nested <code>&lt;replacetoken&gt;</code> element.</p>
+
+<p>The output file is only written if it differs from the existing
+file.  This prevents spurious rebuilds based on unchanged files which
+have been regenerated by this task.</p> 
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">file for which the token should be replaced.</td>
+    <td align="center" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The base directory to use when replacing a token in 
+      multiple files.</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the files upon which replace operates.</td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+  <tr>
+    <td valign="top">token</td>
+    <td valign="top">the token which must be replaced.</td>
+    <td valign="top" align="center">Yes, unless a nested
+    <code>replacetoken</code> element or the replacefilterfile
+    attribute is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the new value for the token. When omitted, an empty string
+      (&quot;&quot;) is used.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">summary</td>
+    <td valign="top">Indicates whether a summary of the replace operation 
+                     should be produced, detailing how many token occurrences 
+                     and files were processed
+                     </td>
+    <td valign="top" align="center">No, by default no summary is produced</td>
+  </tr>
+  <tr>
+    <td valign="top">propertyFile</td>
+    <td valign="top">valid property file from which properties specified using nested <code>&lt;replacefilter&gt;</code> elements are drawn.</td>
+    <td valign="top" align="center">Yes only if <i>property</i> attribute of <code>&lt;replacefilter&gt;</code> is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">replacefilterfile</td>
+    <td valign="top">valid property file.  Each property will be
+    treated as a replacefilter where <code>token</code> is the name of
+    the property and <code>value</code> is the properties value.
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;replace file=&quot;${src}/index.html&quot; token=&quot;@@@&quot; value=&quot;wombat&quot;/&gt;</pre>
+<p>replaces occurrences of the string &quot;@@@&quot; with the string
+&quot;wombat&quot;, in the file <code>${src}/index.html</code>.</p>
+<h3>Parameters specified as nested elements</h3>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code> as well as the
+nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>If either the text you want to replace or the replacement text
+cross line boundaries, you can use nested elements to specify
+them.</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;replace dir=&quot;${src}&quot; value=&quot;wombat&quot;&gt;
+  &lt;include name=&quot;**/*.html&quot;/&gt;
+  &lt;replacetoken&gt;&lt;![CDATA[multi line
+token]]&gt;&lt;/replacetoken&gt;
+&lt;/replace&gt;
+</pre></blockquote>
+<p>replaces occurrences of the string &quot;multi
+line<i>\n</i>token&quot; with the string &quot;wombat&quot;, in all
+HTML files in the directory <code>${src}</code>.Where <i>\n</i> is
+the platform specific line separator.</p>
+<blockquote><pre>
+&lt;replace file=&quot;${src}/index.html&quot;&gt;
+  &lt;replacetoken&gt;&lt;![CDATA[two line
+token]]&gt;&lt;/replacetoken&gt;
+  &lt;replacevalue&gt;&lt;![CDATA[two line
+token]]&gt;&lt;/replacevalue&gt;
+&lt;/replace&gt;
+</pre></blockquote>
+<h4>replacefilter</h4>
+<p>In addition to allowing for multiple replacements, optional nested <code>&lt;replacefilter&gt;</code> elements allow replacement values to be extracted from a property file. The name of this file is specified using the <code>&lt;replace&gt;</code> attribute <i>propertyFile</i>.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">token</td>
+    <td valign="top">The string to search for.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The replacement string.</td>
+    <td align="center" rowspan="2">Either may be specified, but not both. Both can be omitted, if desired.</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">Name of the property whose value is to serve as the replacement value.</td>
+  </tr>
+</table>
+<p>If neither <i>value</i> nor <i>property</i> is used, the value provided using the <code>&lt;replace&gt;</code> attribute <i>value</i> and/or the <code>&lt;replacevalue&gt;</code> element is used. If no value was specified using either of these options, the token is replaced with an empty string.
+</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;replace 
+    file=&quot;configure.sh&quot;
+    value=&quot;defaultvalue&quot;
+    propertyFile=&quot;source/name.properties&quot;&gt;
+  &lt;replacefilter 
+    token=&quot;@token1@&quot;/&gt;
+  &lt;replacefilter 
+    token=&quot;@token2@&quot; 
+    value=&quot;value2&quot;/&gt;
+  &lt;replacefilter 
+    token=&quot;@token3@&quot; 
+    property=&quot;property.key&quot;/&gt;
+&lt;/replace&gt;
+</pre></blockquote>
+<p>In file <code>configure.sh</code>, replace all instances of &quot;@token1@&quot; with &quot;defaultvalue&quot;, all instances of &quot;@token2@&quot; with &quot;value2&quot;, and all instances of &quot;@token3@&quot; with the value of the property &quot;property.key&quot;, as it appears in property file <code>src/name.properties</code>.</p>
+<p><b>Note:</b> It is possible to use either the <i>token</i>/<code>&lt;replacetoken&gt;</code> and <i>value</i>/<code>&lt;replacevalue&gt;</code> attributes/elements, the nested replacefilter elements, or both in the same operation.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/resourcecount.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/resourcecount.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/resourcecount.html	(revision 14989)
@@ -0,0 +1,82 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ResourceCount Task</title>
+</head>
+
+<body>
+
+<h2><a name="resourcecount">ResourceCount</a></h2>
+<h3>Description</h3>
+<p>Display or set a property containing the size of a nested
+   <a href="../CoreTypes/resources.html#collection">Resource Collection</a>.
+   Can also be used as a condition. <b>Since Ant 1.7</b></p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The property to set. If omitted the results are written
+      to the log. Ignored when processing as a condition.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">A <a href="../using.html#references">reference</a>
+      to a Resource Collection.</td>
+    <td valign="top" align="center">
+      Yes, unless a nested Resource Collection is supplied
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">count</td>
+    <td valign="top">Comparison count for processing as a condition.</td>
+    <td valign="top" align="center">Yes, in condition mode</td>
+  </tr>
+  <tr>
+    <td valign="top">when</td>
+    <td valign="top">Comparison type: "equal", "eq", "greater", "gt", "less",
+      "lt", "ge" (greater or equal), "ne" (not equal), "le" (less or equal)
+      for use when operating as a condition.</td>
+    <td valign="top" align="center">No; default is "equal"</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>Resource Collection</h4>
+<p>A single
+  <a href="../CoreTypes/resources.html#collection">Resource Collection</a>
+should be specified via a nested element or the <code>refid</code> attribute.
+</p>
+<h3>Examples</h3>
+<pre>&lt;resourcecount property=&quot;count.foo&quot;&gt;
+  &lt;filelist dir=&quot;.&quot; files=&quot;foo,bar&quot; /&gt;
+&lt;/resourcecount&gt;
+</pre>
+<p>Stores the number of resources in the specified filelist (two)
+in the property named <i>count.foo</i>.</p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/rmic.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/rmic.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/rmic.html	(revision 14989)
@@ -0,0 +1,272 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Rmic Task</title>
+</head>
+
+<body>
+
+<h2><a name="rmic">Rmic</a></h2>
+<h3>Description</h3>
+<p>Runs the rmic compiler for a certain class.</p>
+<p>Rmic can be run on a single class (as specified with the classname
+attribute) or a number of classes at once (all classes below base that
+are neither _Stub nor _Skel classes).  If you want to rmic a single
+class and this class is a class nested into another class, you have to
+specify the classname in the form <code>Outer$$Inner</code> instead of
+<code>Outer.Inner</code>.</p>
+<p>It is possible to refine the set of files that are being rmiced. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>base</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>It is possible to use different compilers. This can be selected
+with the &quot;build.rmic&quot; property or the <code>compiler</code>
+attribute.
+<a name="compilervalues">Here are the choices</a>:</p>
+<ul>
+  <li>default -the default compiler (kaffe or sun) for the platform.
+  <li>sun (the standard compiler of the JDK)</li>
+  <li>kaffe (the standard compiler of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
+  <li>weblogic</li>
+  <li>forking - the sun compiler forked into a separate process (since Ant 1.7)</li>
+  <li>xnew - the sun compiler forked into a separate process,
+      with the -Xnew option (since Ant 1.7).
+      This is the most reliable way to use -Xnew</li>
+    <li> "" (empty string). This has the same behaviour as not setting the compiler attribute.
+    First the value of <tt>build.rmic</tt> is used if defined, and if not, the default
+    for the platform is chosen. If build.rmic is set to this, you get the default.
+
+</ul>
+
+<p>The <a href="http://dione.zcu.cz/~toman40/miniRMI/">miniRMI</a>
+project contains a compiler implementation for this task as well,
+please consult miniRMI's documentation to learn how to use it.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">base</td>
+    <td valign="top">the location to store the compiled files.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the class for which to run <code>rmic</code>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filtering</td>
+    <td valign="top">indicates whether token filtering should take place</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcebase</td>
+    <td valign="top">Pass the &quot;-keepgenerated&quot; flag to rmic and
+ move the generated source file to the given sourcebase directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">stubversion</td>
+    <td valign="top">Specify the JDK version for the generated stub code.
+ Specify &quot;1.1&quot; to pass the &quot;-v1.1&quot; option to rmic,
+ "1.2" for -v12, compat for -vcompat. <br>
+        Since Ant1.7, if you do not specify a version, and do not ask
+        for iiop or idl files, "compat" is selected.
+ 
+ </td>
+    <td align="center" valign="top">No, default="compat"</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use during compilation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use during compilation, given as <a
+      href="../using.html#references">reference</a> to a PATH defined elsewhere</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verify</td>
+    <td valign="top">check that classes implement Remote before handing them 
+        to rmic (default is false)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">iiop</td>
+    <td valign="top">indicates that portable (RMI/IIOP) stubs should be generated</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">iiopopts</td>
+    <td valign="top">additional arguments for IIOP class generation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">idl</td>
+    <td valign="top">indicates that IDL output files should be generated</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">idlopts</td>
+    <td valign="top">additional arguments for IDL file generation</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">generate debug info (passes -g to rmic). Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeAntRuntime</td> 
+    <td valign="top">whether to include the Ant run-time libraries;
+      defaults to <code>yes</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includeJavaRuntime</td> 
+    <td valign="top">whether to include the default run-time
+      libraries from the executing VM; defaults to <code>no</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">extdirs</td>
+    <td valign="top">location of installed extensions.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">The compiler implementation to use.
+      If this attribute is not set, the value of the
+      <code>build.rmic</code> property, if set, will be used.
+      Otherwise, the default compiler for the current VM will be used.
+      (See the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath and extdirs</h4>
+<p><code>Rmic</code>'s <i>classpath</i> and <i>extdirs</i> attributes are <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<i>classpath</i> and <i>extdirs</i> elements.</p>
+
+<h4>compilerarg</h4>
+
+<p>You can specify additional command line arguments for the compiler
+with nested <code>&lt;compilerarg&gt;</code> elements.  These elements
+are specified like <a href="../using.html#arg">Command-line
+Arguments</a> but have an additional attribute that can be used to
+enable arguments only if a given compiler implementation will be
+used.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td>Only pass the specified argument if the chosen
+      compiler implementation matches the value of this attribute.
+      Legal values are the
+      same as those in the above <a href="#compilervalues">list</a> of valid
+      compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;rmic classname=&quot;com.xyz.FooBar&quot; base=&quot;${build}/classes&quot;/&gt;</pre>
+<p>runs the rmic compiler for the class <code>com.xyz.FooBar</code>. The
+compiled files will be stored in the directory <code>${build}/classes</code>.</p>
+<pre>  &lt;rmic base=&quot;${build}/classes&quot; includes=&quot;**/Remote*.class&quot;/&gt;</pre>
+<p>runs the rmic compiler for all classes with <code>.class</code>
+files below <code>${build}/classes</code> whose classname starts with
+<i>Remote</i>. The compiled files will be stored in the directory
+<code>${build}/classes</code>.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sequential.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sequential.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sequential.html	(revision 14989)
@@ -0,0 +1,55 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Sequential Task</title>
+</head>
+
+<body>
+
+<h2><a name="sequintial">Sequential</a></h2>
+<h3>Description</h3>
+<p>Sequential is a container task - it can contain other Ant tasks. The nested 
+tasks are simply executed in sequence. Sequential's primary use is to support 
+the sequential execution of a subset of tasks within the 
+<a href="parallel.html">parallel</a> task</p>
+
+<p>The sequential task has no attributes and does not support any nested 
+elements apart from Ant tasks. Any valid Ant task may be embedded within the 
+sequential task.</p>
+
+<h3>Example</h3>
+<pre>
+&lt;parallel&gt;
+  &lt;wlrun ... &gt;
+  &lt;sequential&gt;
+    &lt;sleep seconds=&quot;30&quot;/&gt;
+    &lt;junit ... &gt;
+    &lt;wlstop/&gt;
+  &lt;/sequential&gt;
+&lt;/parallel&gt;
+</pre>
+<p>This example shows how the sequential task is used to execute three tasks in
+sequence, while another task is being executed in a separate thread. </p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/signjar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/signjar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/signjar.html	(revision 14989)
@@ -0,0 +1,235 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SignJar Task</title>
+</head>
+
+<body>
+
+<h2><a name="signjar">SignJar</a></h2>
+<h3>Description</h3>
+<p>Signs JAR files with the <tt>jarsigner</tt> command line tool. 
+It will take a named file in the <tt>jar</tt> attribute, and an optional
+<tt>destDir</tt> or <tt>signedJar</tt> attribute. Nested paths are also
+supported; here only an (optional) <tt>destDir</tt> is allowed. If a destination
+directory or explicit JAR file name is not provided, JARs are signed in place.
+</p>
+<p>
+Dependency rules
+</p>
+<ul>
+<li>Nonexistent destination JARs are created/signed</li>
+<li>Out of date destination JARs are created/signed</li>
+<li>If a destination file and a source file are the same,
+and <tt>lazy</tt> is true, the JAR is only signed if it does not 
+contain a signature by this alias.</li>
+<li>If a destination file and a source file are the same,
+and <tt>lazy</tt> is false, the JAR is signed.</li> 
+</ul>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">jar</td>
+    <td valign="top">the jar file to sign</td>
+    <td valign="top" align="center">Yes, unless nested paths have
+      been used.</td>
+  </tr>
+  <tr>
+    <td valign="top">alias</td>
+    <td valign="top">the alias to sign under</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">storepass</td>
+    <td valign="top">password for keystore integrity.</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+  <tr>
+    <td valign="top">keystore</td>
+    <td valign="top">keystore location</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">storetype</td>
+    <td valign="top">keystore type</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keypass</td>
+    <td valign="top">password for private key (if different)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sigfile</td>
+    <td valign="top">name of .SF/.DSA file</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">signedjar</td>
+    <td valign="top">name of signed JAR file. This can only be set when 
+    the <tt>jar</tt> attribute is set.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">(true | false) verbose output when signing</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">internalsf</td>
+    <td valign="top">(true | false) include the .SF file inside the signature
+block</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">sectionsonly</td>
+    <td valign="top">(true | false) don't compute hash of entire manifest</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">lazy</td>
+    <td valign="top">flag to control whether the presence of a signature
+  file means a JAR is signed. This is only used when the target JAR matches
+  the source JAR</td>
+    <td valign="top" align="center">No; default false</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Specifies the maximum memory the jarsigner VM will use. Specified in the
+                     style of standard java memory specs (e.g. 128m = 128 MBytes)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the signed files the same last modified
+      time as the original jar files.</td>
+    <td valign="top" align="center">No; default false.</td>
+  </tr>
+  <tr>
+    <td valign="top">tsaurl</td>
+    <td valign="top">URL for a timestamp authority for timestamped
+    JAR files in Java1.5+</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tsacert</td>
+    <td valign="top">alias in the keystore for a timestamp authority for 
+    timestamped JAR files in Java1.5+</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  
+</table>
+<h3>Parameters as nested elements</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">path of JAR files to sign. <em>since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fileset</td>
+    <td valign="top">fileset of JAR files to sign. </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mapper</td>
+    <td valign="top">A mapper to rename jar files during signing</td>
+    <td valign="top" align="center">No, and only one can be supplied</td>
+  </tr>
+  <tr>
+    <td valign="top">sysproperty</td>
+    <td valign="top">JVM system properties, with the syntax of Ant
+    <a href="exec.html#env">environment variables</a> </td>
+    <td valign="top" align="center">No, and only one can be supplied</td>
+  </tr>
+ </table>
+
+
+<h3>Examples</h3>
+  <blockquote><pre>
+&lt;signjar jar=&quot;${dist}/lib/ant.jar&quot;
+alias=&quot;apache-group&quot; storepass=&quot;secret&quot;/&gt;
+</pre></blockquote>
+<p>
+  signs the ant.jar with alias &quot;apache-group&quot; accessing the
+  keystore and private key via &quot;secret&quot; password.
+</p>
+  <blockquote><pre>
+&lt;signjar destDir="signed"
+    alias="testonly" keystore="testkeystore"
+    storepass="apacheant"
+    preservelastmodified="true"&gt;
+  &lt;path&gt;
+    &lt;fileset dir="dist" includes="**/*.jar" /&gt;
+  &lt;/path&gt;
+  &lt;flattenmapper /&gt;
+&lt;/signjar&gt;
+</pre></blockquote>
+<p>
+Sign all JAR files matching the dist/**/*.jar pattern, copying them to the
+directory "signed" afterwards. The flatten mapper means that they will
+all be copied to this directory, not to subdirectories.
+
+</p>
+  <blockquote><pre>
+&lt;signjar
+    alias="testonly" keystore="testkeystore"
+    storepass="apacheant"
+    lazy="true"
+    &gt;
+  &lt;path&gt;
+    &lt;fileset dir="dist" includes="**/*.jar" /&gt;
+  &lt;/path&gt;
+&lt;/signjar&gt;
+</pre></blockquote>
+<p>
+Sign all the JAR files in dist/**/*.jar <i>in-situ</i>. Lazy signing is used,
+so the files will only be signed if they are not already signed.
+</p>
+<h3>About timestamp signing</h3>
+
+<p>
+Timestamped JAR files are a new feature in Java1.5; a feature supported in Ant since
+Ant 1.7. Ant does not yet support proxy setup for this singing process, and
+the whole TSA feature is not tested yet. Furthermore, the 
+<a href="http://java.sun.com/j2se/1.5.0/docs/guide/security/time-of-signing-beta1.html">
+official TSA documentation</a>
+warns that the API is subject to change. If a future version of Java changes the
+API, Ant will break. It may be possible to hide changes if and when they occur,
+but this can not be guaranteed. 
+</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sleep.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sleep.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sleep.html	(revision 14989)
@@ -0,0 +1,85 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Sleep Task</title>
+</head>
+
+<body>
+
+<h2><a name="sleep">Sleep</a></h2>
+<h3>Description</h3>
+<p> A task for sleeping a short period of time, useful when a build or deployment 
+  process requires an interval between tasks.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr> 
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr> 
+    <td valign="top">hours</td>
+    <td valign="top">hours to to add to the sleep time</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">minutes</td>
+    <td valign="top"> minutes to add to the sleep time</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">seconds</td>
+    <td valign="top">seconds to add to the sleep time</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">milliseconds</td>
+    <td valign="top">milliseconds to add to the sleep time</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr> 
+    <td valign="top">failonerror</td>
+    <td valign="top">flag controlling whether to break the build on an error. 
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>The sleep time is the sum of specified values, hours, minutes seconds and milliseconds. 
+  A negative value can be supplied to any of them provided the total sleep time 
+  is positive</p>
+<p>Note that sleep times are always hints to be interpred by the OS how it feels 
+  - small times may either be ignored or rounded up to a minimum timeslice. Note 
+  also that the system clocks often have a fairly low granularity too, which complicates 
+  measuring how long a sleep actually took.</p>
+<h3>Examples</h3>
+<pre>   &lt;sleep milliseconds=&quot;10&quot;/&gt;</pre>
+Sleep for about 10 mS. 
+<pre>   &lt;sleep seconds=&quot;2&quot;/&gt;</pre>
+Sleep for about 2 seconds. 
+<pre>   &lt;sleep hours=&quot;1&quot; minutes=&quot;-59&quot; seconds=&quot;-58&quot;/&gt;</pre>
+<p>Sleep for one hour less 59:58, or two seconds again </p>
+<pre>   &lt;sleep/&gt;</pre>
+Sleep for no time at all. This may yield the CPU time to another thread or process. 
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sql.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sql.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sql.html	(revision 14989)
@@ -0,0 +1,380 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SQL Task</title>
+</head>
+<body>
+
+<h2><a name="sql">Sql</a></h2>
+<h3>Description</h3>
+<p>Executes a series of SQL statements via JDBC to a database. Statements can 
+either be read in from a text file using the <i>src</i> attribute or from 
+between the enclosing SQL tags.</p>
+
+<p>Multiple statements can be provided, separated by semicolons (or the 
+defined <i>delimiter</i>). Individual lines within the statements can be 
+commented using either --, // or REM at the start of the line.</p>
+
+<p>The <i>autocommit</i> attribute specifies whether auto-commit should be 
+turned on or off whilst executing the statements. If auto-commit is turned 
+on each statement will be executed and committed. If it is turned off the 
+statements will all be executed as one transaction.</p>
+
+<p>The <i>onerror</i> attribute specifies how to proceed when an error occurs 
+during the execution of one of the statements. 
+The possible values are: <b>continue</b> execution, only show the error;
+<b>stop</b> execution and commit transaction;
+and <b>abort</b> execution and transaction and fail task.</p>
+
+<p>
+<b>Proxies</b>. Some JDBC drivers (including the Oracle thin driver), 
+    use the JVM's proxy settings to route their JDBC operations to the database.
+    Since Ant1.7, Ant running on Java1.5 or later defaults to 
+    <a href="../proxy.html">using
+    the proxy settings of the operating system</a>. 
+    Accordingly, the OS proxy settings need to be valid, or Ant's proxy
+    support disabled with <code>-noproxy</code> option.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+  <td width="12%" valign="top">driver</td>
+  <td width="78%" valign="top">Class name of the jdbc driver</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">url</td>
+  <td width="78%" valign="top">Database connection url</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">userid</td>
+  <td width="78%" valign="top">Database user name</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">password</td>
+  <td width="78%" valign="top">Database password</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">src</td>
+  <td width="78%" valign="top">File containing SQL statements</td>
+  <td width="10%" valign="top">Yes, unless statements enclosed within tags</td>
+</tr>
+<tr>
+  <td valign="top">encoding</td>
+  <td valign="top">The encoding of the files containing SQL statements</td>
+  <td align="center">No - defaults to default JVM encoding</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">delimiter</td>
+  <td width="78%" valign="top">String that separates SQL statements</td>
+  <td width="10%" valign="top">No, default &quot;;&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">autocommit</td>
+  <td width="78%" valign="top">Auto commit flag for database connection (default false)</td>
+  <td width="10%" valign="top">No, default &quot;false&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">print</td>
+  <td width="78%" valign="top">Print result sets from the statements (default false)</td>
+  <td width="10%" valign="top">No, default &quot;false&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">showheaders</td>
+  <td width="78%" valign="top">Print headers for result sets from the statements (default true)</td>
+  <td width="10%" valign="top">No, default &quot;true&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">showtrailers</td>
+  <td width="78%" valign="top">Print trailer for number of rows affected (default true)</td>
+  <td width="10%" valign="top">No, default &quot;true&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">output</td>
+  <td width="78%" valign="top">Output file for result sets (defaults to System.out)</td>
+  <td width="10%" valign="top">No (print to System.out by default)</td>
+</tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">whether output should be appended to or overwrite
+    an existing file.  Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+  <td width="12%" valign="top">classpath</td>
+  <td width="78%" valign="top">Classpath used to load driver</td>
+  <td width="10%" valign="top">No (use system classpath)</td>
+</tr>
+  <tr>
+    <td width="12%" valign="top">classpathref</td>
+    <td width="78%" valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+  <td width="10%" valign="top">No (use system classpath)</td>
+  </tr>
+<tr>
+  <td width="12%" valign="top">onerror</td>
+  <td width="78%" valign="top">Action to perform when statement fails: continue, stop, abort</td>
+  <td width="10%" valign="top">No, default &quot;abort&quot;</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">rdbms</td>
+  <td width="78%" valign="top">Execute task only if this rdbms</td>
+  <td width="10%" valign="top">No (no restriction)</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">version</td>
+  <td width="78%" valign="top">Execute task only if rdbms version match</td>
+  <td width="10%" valign="top">No (no restriction)</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">caching</td>
+  <td width="78%" valign="top">Should the task cache loaders and the driver?</td>
+  <td width="10%" valign="top">No (default=true)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">delimitertype</td>
+  <td width="78%" valign="top">Control whether the delimiter will only be recognized on a line by itself.<br>
+    Can be "normal" -anywhere on the line, or "row", meaning it must be on a line by itself</td>
+  <td width="10%" valign="top">No (default:normal)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">keepformat</td>
+  <td width="78%" valign="top">Control whether the format of the sql will be preserved.<br>
+    Usefull when loading packages and procedures.
+  <td width="10%" valign="top">No (default=false)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">escapeprocessing</td>
+  <td width="78%" valign="top">Control whether the Java statement
+    object will perform escape substitution.<br>
+    See <a
+    href="http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Statement.html#setEscapeProcessing(boolean)">Statement's
+    API docs</a> for details.  <em>Since Ant 1.6</em>.
+  <td width="10%" valign="top">No (default=true)</td>
+</tr>
+
+<tr>
+  <td width="12%" valign="top">expandproperties</td>
+  <td width="78%" valign="top">Set to true to turn on property expansion in
+  nested SQL, inline in the task or nested transactions. <em>Since Ant 1.7</em>.
+  <td width="10%" valign="top">No (default=false)</td>
+</tr>
+
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>transaction</h4>
+<p>Use nested <code>&lt;transaction&gt;</code> 
+elements to specify multiple blocks of commands to the executed
+executed in the same connection but different transactions. This
+is particularly useful when there are multiple files to execute
+on the same schema.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">File containing SQL statements</td>
+    <td valign="top" align="center">Yes, unless statements enclosed within tags</td>
+  </tr>
+</table>
+<p>The <code>&lt;transaction&gt;</code> element supports any <a
+href="../CoreTypes/resources.html">resource</a> or single element
+resource collection as nested element to specify the resource
+containing the SQL statements.</p>
+
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or resource
+collection</h4>
+
+<p>You can specify multiple sources via nested resource collection
+elements.  Each resource of the collection will be run in a
+transaction of its own.  Prior to Ant 1.7 only filesets were
+supported.  Use a sort resource collection to get a predictable order
+of transactions. </p>
+
+<h4>classpath</h4>
+<p><code>Sql</code>'s <em>classpath</em> attribute is a <a
+href="../using.html#path">PATH like structure</a> and can also be set via a nested
+<em>classpath</em> element. It is used to load the JDBC classes.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    src=&quot;data.sql&quot;
+/&gt;
+</pre></blockquote>
+
+<p>Connects to the database given in <i>url</i> as the sa user using the 
+org.database.jdbcDriver and executes the SQL statements contained within 
+the file data.sql</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    &gt;
+insert
+into table some_table
+values(1,2,3,4);
+
+truncate table some_other_table;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>Connects to the database given in <i>url</i> as the sa
+ user using the org.database.jdbcDriver and executes the two SQL statements 
+ inserting data into some_table and truncating some_other_table. Ant Properties
+ in the nested text will not be expanded.</p>
+
+<p>Note that you may want to enclose your statements in
+<code>&lt;![CDATA[</code> ... <code>]]&gt;</code> sections so you don't
+need to escape <code>&lt;</code>, <code>&gt;</code> <code>&amp;</code>
+or other special characters. For example:</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    &gt;&lt;![CDATA[
+
+update some_table set column1 = column1 + 1 where column2 &lt; 42;
+
+]]&gt;&lt;/sql&gt;
+</pre></blockquote>
+
+The following command turns property expansion in nested text on (it is off purely for backwards
+compatibility), then creates a new user in the HSQLDB database using Ant properties. 
+
+<blockquote><pre>&lt;sql
+    driver="org.hsqldb.jdbcDriver";
+    url="jdbc:hsqldb:file:${database.dir}"
+    userid="sa"
+    password=""
+    expandProperties="true"
+    &gt;
+  &lt;transaction&gt;
+    CREATE USER ${newuser} PASSWORD ${newpassword}
+  &lt;/transaction&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+
+<p>The following connects to the database given in url as the sa user using 
+the org.database.jdbcDriver and executes the SQL statements contained within 
+the files data1.sql, data2.sql and data3.sql and then executes the truncate 
+operation on <i>some_other_table</i>.</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot; &gt;
+  &lt;transaction  src=&quot;data1.sql&quot;/&gt;
+  &lt;transaction  src=&quot;data2.sql&quot;/&gt;
+  &lt;transaction  src=&quot;data3.sql&quot;/&gt;
+  &lt;transaction&gt;
+    truncate table some_other_table;
+  &lt;/transaction&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following example does the same as (and may execute additional
+SQL files if there are more files matching the pattern
+<code>data*.sql</code>) but doesn't guarantee that data1.sql will be
+run before <code>data2.sql</code>.</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;&gt;
+  &lt;path&gt;
+    &lt;fileset dir=&quot;.&quot;&gt;
+      &lt;include name=&quot;data*.sql&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;path&gt;
+  &lt;transaction&gt;
+    truncate table some_other_table;
+  &lt;/transaction&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following connects to the database given in url as the sa user using the 
+org.database.jdbcDriver and executes the SQL statements contained within the 
+file data.sql, with output piped to outputfile.txt, searching /some/jdbc.jar 
+as well as the system classpath for the driver class.</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    src=&quot;data.sql&quot;
+    print=&quot;yes&quot;
+    output=&quot;outputfile.txt&quot;
+    &gt;
+&lt;classpath&gt;
+	&lt;pathelement location=&quot;/some/jdbc.jar&quot;/&gt;
+&lt;/classpath&gt;
+&lt;/sql&gt;
+</pre></blockquote>
+
+<p>The following will only execute if the RDBMS is &quot;oracle&quot; and the version 
+starts with &quot;8.1.&quot;</p>
+
+<blockquote><pre>&lt;sql
+    driver=&quot;org.database.jdbcDriver&quot;
+    url=&quot;jdbc:database-url&quot;
+    userid=&quot;sa&quot;
+    password=&quot;pass&quot;
+    src=&quot;data.sql&quot;
+    rdbms=&quot;oracle&quot;
+    version=&quot;8.1.&quot;
+    &gt;
+insert
+into table some_table
+values(1,2,3,4);
+
+truncate table some_other_table;
+&lt;/sql&gt;
+</pre></blockquote>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/style.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/style.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/style.html	(revision 14989)
@@ -0,0 +1,485 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XSLT Task</title>
+</head>
+
+<body>
+
+<h2><a name="style">XSLT</a></h2>
+<p><em>The name <code>style</code> is a deprecated name for the same task.</em></p>
+<h3>Description</h3>
+<p>Process a set of documents via XSLT.</p>
+<p>This is useful for building views of XML based documentation,
+or for generating code.</p>
+<p><b>Note:</b> If you are using JDK 1.4 or higher, this task does not require external libraries
+not supplied in the Ant distribution. However, often the built in XSL engine is not as up
+to date as a fresh download, so an update is still highly recommended.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+<p>It is possible to refine the set of files that are being processed. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and supports all
+  attributes of <code>&lt;fileset&gt;</code> (<code>dir</code> becomes <code>basedir</code>)
+  as well as the nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code>
+  and <code>&lt;patternset&gt;</code> elements.</p>
+
+<p><b>Note</b>: Unlike other similar tasks, this task treats
+directories that have been matched by the include/exclude patterns of
+the implicit fileset in a special way.  It will apply the stylesheets
+to all files contain in them as well.  Since the default include
+pattern is <code>**</code> this means it will apply the stylesheet to
+all files.  If you specify an excludes pattern, it may still work on
+the files matched by those patterns because the parent directory has
+been matched.  If this behavior is not what you want, set the
+scanincludedirectories attribute to false.</p>
+
+<p>Starting with Ant 1.7 this task supports nested <a
+href="../CoreTypes/resources.html#collection">resource collection</a>s
+in addition to (or instead of, depending on the useImplicitFileset
+attribute) the implicit fileset formed by this task.</p>
+
+<p>This task supports the use of a nested <code>&lt;param&gt;</code> element which is used to pass values
+  to an <code>&lt;xsl:param&gt;</code> declaration.</p>
+<p>This task supports the use of a nested <a href="../CoreTypes/xmlcatalog.html">xmlcatalog</a>
+element which is used to perform Entity and URI resolution.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">where to find the source XML file, default is the
+      project's basedir.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">directory in which to store the results.</td>
+    <td align="center" valign="top">Yes, unless in and out have been
+      specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">extension</td>
+    <td valign="top">desired file extension to be used for the targets. If not
+      specified, the default is &quot;.html&quot;.  Will be ignored if
+      a nested <code>&lt;mapper&gt;</code> has been specified.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">style</td>
+    <td valign="top">name of the stylesheet to use - given either relative
+      to the project's basedir or as an absolute path.<br/>
+      <br/>
+      Alternatively, a nested element which ant can interpret as a resource
+      can be used to indicate where to find the stylesheet<br/>
+      <em>deprecated variation :</em> <br/>
+      If the stylesheet cannot be found, and if you have specified the
+      attribute basedir for the task, ant will assume that the style
+      attribute is relative to the basedir of the task.
+    </td>
+    <td align="center" valign="top">No, if the location of
+        the stylesheet is specified using a nested &lt;style&gt; element</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up the XSLT
+      processor.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use, given as <a
+      href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">Recreate target files, even if they are newer
+      than their corresponding source files or the stylesheet.</td>
+    <td valign="top" align="center">No; default is false</td>
+  </tr>
+  <tr>
+    <td valign="top">processor</td>
+
+    <td valign="top">name of the XSLT processor to use.
+      Permissible value is :<ul>
+      <li>&quot;trax&quot; for a TraX compliant processor (ie JAXP interface
+      implementation such as Xalan 2 or Saxon)</li></ul>
+      Defaults to trax.
+      <br/>
+      Support for xalan1 has been removed in ant 1.7.
+      </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be included.
+      All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is taken to be
+      an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be excluded.
+      No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is taken to be
+      an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">in</td>
+    <td valign="top">specifies a single XML document to be styled. Should be used
+      with the out attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">out</td>
+    <td valign="top">specifies the output name for the styled result from the
+      in attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">scanincludeddirectories</td>
+    <td valign="top">If any directories are matched by the
+      includes/excludes patterns, try to transform all files in these
+      directories.  Default is <code>true</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">reloadstylesheet</td>
+    <td valign="top">Control whether the stylesheet transformer is created
+    anew for every transform opertaion. If you set this to true, performance may
+    suffer, but you may work around a bug in certain Xalan-J versions.
+    Default is <code>false</code>.  <em>Since Ant 1.5.2</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">useImplicitFileset</td>
+    <td valign="top">Whether the implicit fileset formed by this task
+    shall be used.  If you set this to false you must use nested
+    resource collections - or the in attribute, in which case this
+    attribute has no impact anyway.  Default is <code>true</code>.
+    <em>Since Ant 1.7</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filenameparameter</td>
+    <td valign="top">Specifies a xsl parameter for accessing the name
+    of the current processed file. If not set, the file name is not
+    passed to the transformation.
+    <em>Since Ant 1.7</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filedirparameter</td>
+    <td valign="top">Specifies a xsl parameter for accessing the directory
+    of the current processed file. For files in the current directory a
+    value of '.' will be passed to the transformation.
+    If not set, the directory is not passed to the transformation. 
+    <em>Since Ant 1.7</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any <a href="../CoreTypes/resources.html#collection">resource
+collection</a></h4>
+
+<p><em>since Ant 1.7</em></p>
+
+<p>Use resource collections to specify resources that the stylesheet
+should be applied to.  Use a nested mapper and the task's destdir
+attribute to specify the output files.</p>
+
+<h4>classpath</h4>
+<p>The classpath to load the processor from can be specified via a
+nested <code>&lt;classpath&gt;</code>, as well - that is, a
+<a href="../using.html#path">path</a>-like structure.</p>
+
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html">xmlcatalog</a>
+element is used to perform Entity and URI resolution.</p>
+
+<h4>param</h4>
+<p>Param is used to pass a parameter to the XSL stylesheet.</p>
+<blockquote>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the XSL parameter</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">expression</td>
+    <td valign="top">Text value to be placed into the param.<br>
+    Was originally intended to be an XSL expression.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">The param will only passed if this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">The param will only passed unless this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+</blockquote>
+
+<h4>outputproperty ('trax' processors only)</h4>
+<p>Used to specify how you wish the result tree to be output
+as specified in the <a href="http://www.w3.org/TR/xslt#output">
+XSLT specifications</a>.
+<blockquote>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the property</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value of the property.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</blockquote>
+
+<h4>factory ('trax' processors only)</h4>
+Used to specify factory settings.
+<blockquote>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">fully qualified classname of the
+    transformer factory to use. For example
+      <tt>org.apache.xalan.processor.TransformerFactoryImpl</tt>
+       or <tt>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</tt>
+       or <tt>net.sf.saxon.TransformerFactoryImpl</tt>...
+    </td>
+    <td align="center" valign="top">No. Defaults to the JAXP lookup mechanism.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>attribute </h4>
+<p>Used to specify settings of the processor factory.
+The attribute names and values are entirely processor specific
+so you must be aware of the implementation to figure them out.
+Read the documentation of your processor.
+For example, in Xalan 2.x:
+<ul>
+<li>http://xml.apache.org/xalan/features/optimize (boolean)</li>
+<li>http://xml.apache.org/xalan/features/incremental (boolean)</li>
+<li>...</li>
+</ul>
+And in Saxon 7.x:
+<ul>
+<li>http://saxon.sf.net/feature/allow-external-functions (boolean)</li>
+<li>http://saxon.sf.net/feature/timing (boolean)</li>
+<li>http://saxon.sf.net/feature/traceListener (string)</li>
+<li>http://saxon.sf.net/feature/treeModel (integer)</li>
+<li>http://saxon.sf.net/feature/linenumbering (integer)</li>
+<li>...</li>
+</ul>
+<blockquote>
+<h4>Parameters</h4>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the attribute</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">value of the attribute.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</blockquote>
+</blockquote>
+<h4>mapper</h4>
+
+<p><em>since Ant 1.6.2</em></p>
+
+<p>You can define filename transformations by using a nested <a
+href="../CoreTypes/mapper.html">mapper</a> element. The default mapper
+used by <code>&lt;xslt&gt;</code> removes the file extension from the
+source file and adds the extension specified via the extension
+attribute.</p>
+
+<h4>style</h4>
+
+<p><em>Since Ant 1.7</em></p>
+
+<p>The nested style element can be used to specify your stylesheet in terms
+of Ant's <a href="../CoreTypes/resources.html">resource</a> types.  With
+this element, the stylesheet should be specified as a nested resource or
+single-element collection.  Alternatively, use the <code>refid</code> to
+specify the resource or collection as a reference.</p>
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>
+&lt;style basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+       extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;/&gt;</pre>
+  <h4>Using an xmlcatalog</h4>
+  <pre>
+&lt;xslt basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+      extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;&gt;
+  &lt;xmlcatalog refid=&quot;mycatalog&quot;/&gt;
+&lt;/xslt&gt;
+
+&lt;xslt basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+   extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;&gt;
+   &lt;xmlcatalog&gt;
+       &lt;dtd
+         publicId=&quot;-//ArielPartners//DTD XML Article V1.0//EN&quot;
+         location=&quot;com/arielpartners/knowledgebase/dtd/article.dtd&quot;/&gt;
+   &lt;/xmlcatalog&gt;
+&lt;/xslt&gt;
+</pre>
+  <h4>Using XSL parameters</h4>
+<pre>
+&lt;xslt basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
+      extension=&quot;.html&quot; style=&quot;style/apache.xsl&quot;&gt;
+  &lt;param name=&quot;date&quot; expression=&quot;07-01-2000&quot;/&gt;
+&lt;/xslt&gt;</pre>
+
+  <p>Then if you declare a global parameter &quot;date&quot; with the top-level
+  element &lt;xsl:param name=&quot;date&quot;/&gt;, the variable
+  <code>$date</code> will subsequently have the value 07-01-2000.
+  </p>
+
+  <h4>Using output properties</h4>
+<pre>
+&lt;xslt in=&quot;doc.xml&quot; out=&quot;build/doc/output.xml&quot;
+      style=&quot;style/apache.xsl&quot;&gt;
+  &lt;outputproperty name=&quot;method&quot; value=&quot;xml&quot;/&gt;
+  &lt;outputproperty name=&quot;standalone&quot; value=&quot;yes&quot;/&gt;
+  &lt;outputproperty name=&quot;encoding&quot; value=&quot;iso8859_1&quot;/&gt;
+  &lt;outputproperty name=&quot;indent&quot; value=&quot;yes&quot;/&gt;
+&lt;/xslt&gt;
+</pre>
+
+  <h4>Using factory settings</h4>
+<pre>
+&lt;xslt in=&quot;doc.xml&quot; out=&quot;build/doc/output.xml&quot;
+      style=&quot;style/apache.xsl&quot;&gt;
+  &lt;factory name=&quot;org.apache.xalan.processor.TransformerFactoryImpl&quot;&gt;
+    &lt;attribute name=&quot;http://xml.apache.org/xalan/features/optimize&quot; value=&quot;true&quot;/&gt;
+  &lt;/factory&gt;
+&lt;/xslt&gt;</pre>
+
+  <h4>Using a mapper</h4>
+<pre>
+&lt;xslt basedir=&quot;in&quot; destdir=&quot;out&quot;
+      style=&quot;style/apache.xsl&quot;&gt;
+  &lt;mapper type=&quot;glob&quot; from=&quot;*.xml.en&quot; to=&quot;*.html.en&quot;/&gt;
+&lt;/xslt&gt;</pre>
+
+  <h4>Using a nested resource to define the stylesheet</h4>
+    <pre>
+&lt;xslt in="data.xml" out="${out.dir}/out.xml"&gt;
+    &lt;style&gt;
+        &lt;url url="${printParams.xsl.url}"/&gt;
+    &lt;/style&gt;
+    &lt;param name="set" expression="value"/&gt;
+&lt;/xslt&gt;</pre>
+
+  <h4>Print the current processed file name</h4>
+<pre>
+&lt;project&gt;
+  &lt;xslt style=&quot;printFilename.xsl&quot; destdir=&quot;out&quot; basedir=&quot;in&quot; extension=&quot;.txt&quot;
+        filenameparameter=&quot;filename&quot;
+        filedirparameter=&quot;filedir&quot;
+  /&gt;
+&lt;/project&gt;
+
+&lt;xsl:stylesheet
+  version=&quot;1.0&quot;
+  xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
+
+    &lt;xsl:param name=&quot;filename&quot;&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name=&quot;filedir&quot;&gt;.&lt;/xsl:param&gt;
+
+&lt;xsl:template match=&quot;/&quot;&gt;
+  Current file is &lt;xsl:value-of select=&quot;$filename&quot;/&gt; in directory &lt;xsl:value-of select=&quot;$filedir&quot;/&gt;.
+&lt;/xsl:template&gt;
+
+&lt;/xsl:stylesheet&gt;
+</pre>
+
+</blockquote>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/subant.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/subant.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/subant.html	(revision 14989)
@@ -0,0 +1,419 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+  <title>Subant Task</title>
+</head>
+
+<body>
+
+<h2><a name="subant">Subant Task</a></h2>
+Calls a given target for all defined sub-builds.
+
+          <h3>Description</h3>
+<p>
+            Calls a given target for all defined sub-builds.
+            This is an extension
+            of ant for bulk project execution.
+
+            <strong>This task must not be used outside of a
+                <code>target</code> if it invokes the same build file it is
+                part of.</strong>
+        </p>
+        <p><em>Since Ant 1.6</em></p>
+                              <a name="Use with directories">
+          <strong>Use with directories</strong></a>
+        <p>
+                subant can be used with directory sets to execute a build from different directories.
+                2 different options are offered :
+            </p>
+<ul>
+                <li>
+                    to run the same build file <code>/somepath/otherpath/mybuild.xml</code>
+                    with different base directories, use the genericantfile attribute
+                </li>
+                <li>if you want to run <code>directory1/mybuild.xml</code>, <code>directory2/mybuild.xml</code>, <code>....</code>,
+                    use the antfile attribute. The subant task does not set the base directory for you in this case, because you can specify it in each build file.
+                </li>
+            </ul>
+
+
+ <!-- Ignore -->
+
+
+
+          
+          <h3><a name="attributes">Parameters</a></h3>
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->
+
+    <!-- Attribute Group -->
+        <!-- Attribute -->
+    <tr>
+        <td>
+          antfile
+        </td>
+        <td>
+          Build file name, to use in conjunction with directories.<br> Defaults to "build.xml".<br> If <code>genericantfile</code> is set, this attribute is ignored.
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Optional
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          buildpath
+        </td>
+        <td>
+          Set the buildpath to be used to find sub-projects.
+        </td>
+        <td>
+          Path
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          buildpathref
+        </td>
+        <td>
+          Buildpath to use, by reference.
+        </td>
+        <td>
+          Reference
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          failonerror
+        </td>
+        <td>
+          Sets whether to fail with a build exception on error, or go on.
+        </td>
+        <td>
+          boolean
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          genericantfile
+        </td>
+        <td>
+          Build file path, to use in conjunction with directories.<br> Use <code>genericantfile</code>, in order to run the same build file with different basedirs.<br> If this attribute is set, <code>antfile</code> is ignored.
+        </td>
+        <td>
+          File
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          inheritall
+        </td>
+        <td>
+          Corresponds to
+                        <code>&lt;ant&gt;</code>'s
+                        <code>inheritall</code> attribute but defaults
+                        to false in this task..
+        </td>
+        <td>
+          boolean
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          inheritrefs
+        </td>
+        <td>
+          Corresponds to <code>&lt;ant&gt;</code>'s <code>inheritrefs</code> attribute.
+        </td>
+        <td>
+          boolean
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          output
+        </td>
+        <td>
+          Corresponds to <code>&lt;ant&gt;</code>'s <code>output</code> attribute.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          target
+        </td>
+        <td>
+          
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+
+    <!-- Attribute -->
+    <tr>
+        <td>
+          verbose
+        </td>
+        <td>
+          
+            Enable/ disable log messages showing when each sub-build path is entered/ exited.
+            The default value is false.
+        </td>
+        <td>
+          boolean
+        </td>
+    </tr>
+
+
+     </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+          
+          <h3><a name="elements">Parameters as nested elements</a></h3>
+
+    <!-- Start Element -->
+          <h4>any filesystem based <a href="../CoreTypes/resources.html#collection">resource collection</a></h4>
+        <p>This includes <code>&lt;fileset&gt;</code>,
+        <code>&lt;dirset&gt;</code> and <code>&lt;filelist&gt;</code>
+        which are the nested resource collections supported prior
+        to Ant 1.7.</p>
+
+          <h4>dirset</h4> (org.apache.tools.ant.types.DirSet)
+        
+        <p>Adds a directory set to the implicit build path. <p> <em>Note that the directories will be added to the build path in no particular order, so if order is significant, one should use a file list instead!</em></p>
+          
+          <h4>filelist</h4> (org.apache.tools.ant.types.FileList)
+      <p>
+        Adds an ordered file list to the implicit build path. <p> <em>Note that contrary to file and directory sets, file lists can reference non-existent files or directories!</em></p>
+
+
+          <h4>fileset</h4> (org.apache.tools.ant.types.FileSet)
+      <p>
+        Adds a file set to the implicit build path. <p> <em>Note that the directories will be added to the build path in no particular order, so if order is significant, one should use a file list instead!</em>
+</p>
+
+
+          <h4>property</h4> (org.apache.tools.ant.taskdefs.Property)
+      <p>
+        Corresponds to <code>&lt;ant&gt;</code>'s nested <code>&lt;property&gt;</code> element.
+</p>
+
+
+          <h4>propertyset</h4> (org.apache.tools.ant.types.PropertySet)
+      <p>
+        Corresponds to <code>&lt;ant&gt;</code>'s nested <code>&lt;propertyset&gt;</code> element.
+</p>
+
+
+          <h4>buildpath</h4> (org.apache.tools.ant.types.Path)
+      <p>
+        Creates a nested build path, and add it to the implicit build path.
+</p>
+
+
+          <h4>buildpathelement</h4> (org.apache.tools.ant.types.Path.PathElement)
+      <p>
+        Creates a nested <code>&lt;buildpathelement&gt;</code>, and add it to the implicit build path.
+</p>
+
+
+          <h4>target</h4> (org.apache.tools.ant.taskdefs.Ant.TargetElement)
+      <p>
+        You can specify multiple targets using nested <code>&lt;target&gt;</code> elements
+        instead of using the target attribute.  These will be executed as if
+        Ant had been invoked with a single target whose dependencies are the
+        targets so specified, in the order specified.
+ <!-- Ignore -->
+ <!-- Ignore -->
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+        <tr>
+          <td valign="top">name</td>
+          <td valign="top">The name of the called target.</td>
+          <td valign="top" align="center">Yes</td>
+        </tr>
+      </table>
+      <p><em>since Ant 1.7</em>.</p>
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+<!-- manually written end -->
+
+<h3><a name="examples">Examples</a></h3>
+      <p>
+        <pre>
+        &lt;project name="subant" default="subant1"&gt;
+            &lt;property name="build.dir" value="subant.build"/&gt;
+            &lt;target name="subant1"&gt;
+                &lt;subant target=""&gt;
+                    &lt;property name="build.dir" value="subant1.build"/&gt;
+                    &lt;property name="not.overloaded" value="not.overloaded"/&gt;
+                    &lt;fileset dir="." includes="*/build.xml"/&gt;
+                &lt;/subant&gt;
+            &lt;/target&gt;
+        &lt;/project&gt;
+        </pre>
+<p>
+            this snippet build file will run ant in each subdirectory of the project directory,
+            where a file called build.xml can be found.
+            The property build.dir will have the value subant1.build in the ant projects called by subant.
+        </p>
+<pre>
+          &lt;subant target=""&gt;
+              &lt;propertyset&gt;
+                  &lt;propertyref prefix="toplevel"/&gt;
+                  &lt;mapper type="glob" from="foo*" to="bar*"/&gt;
+              &lt;/propertyset&gt;
+              &lt;fileset dir="." includes="*/build.xml"/&gt;
+          &lt;/subant&gt;
+        </pre>
+<p>
+            this snippet build file will run ant in each subdirectory of the project directory,
+            where a file called build.xml can be found.
+            All properties whose name starts with "foo" are passed, their names are changed to start with "bar" instead
+        </p>
+<pre>
+          &lt;subant target="compile" genericantfile="/opt/project/build1.xml"&gt;
+              &lt;dirset dir="." includes="projects*"/&gt;
+          &lt;/subant&gt;
+        </pre>
+<p>
+            assuming the subdirs of the project dir are called projects1, projects2, projects3
+            this snippet will execute the compile target of /opt/project/build1.xml,
+            setting the basedir to projects1, projects2, projects3
+        </p>
+
+        <!-- manually written -->
+        <p>Now a little more complex - but useful - scenario. Assume that we have
+        a directory structure like this:</p>
+        <pre>
+        root
+          |  common.xml
+          |  build.xml
+          |
+          +-- modules
+                +-- modA
+                |     +-- src
+                +-- modB
+                      +-- src
+
+        <u><b>common.xml:</b></u><br>
+        &lt;project&gt;
+            &lt;property name="src.dir"      value="src"/&gt;
+            &lt;property name="build.dir"    value="build"/&gt;
+            &lt;property name="classes.dir"  value="${build.dir}/classes"/&gt;
+
+            &lt;target name="compile"&gt;
+                &lt;mkdir dir="${classes.dir}"/&gt;
+                &lt;javac srcdir="${src.dir}" destdir="${classes.dir}"/&gt;
+            &lt;/target&gt;
+
+            &lt;!-- more targets --&gt;
+        &lt;/project&gt;
+
+        <u><b>build.xml:</b></u><br>
+        &lt;project&gt;
+
+            &lt;macrodef name="iterate"&gt;
+                &lt;attribute name="target"/&gt;
+                &lt;sequential&gt;
+                    &lt;subant target="@{target}"&gt;
+                        &lt;fileset dir="modules" includes="*/build.xml"/&gt;
+                    &lt;/subant&gt;
+                &lt;/sequential&gt;
+            &lt;/macrodef&gt;
+
+
+            &lt;target name="compile"&gt;
+                &lt;iterate target="compile"/&gt;
+            &lt;/target&gt;
+
+            &lt;!-- more targets --&gt;
+        &lt;/project&gt;
+
+        <u><b>modules/modA/build.xml:</b></u><br>
+        &lt;project name="modA"&gt;
+            &lt;import file="../../common.xml"/&gt;
+        &lt;/project&gt;
+        </pre>
+
+        <p>This results in very small buildfiles in the modules, maintainable
+        buildfile (common.xml) and a clear project structure. Additionally
+        the root buildfile is capable to run the whole build over all
+        modules.
+        </p>
+
+        <pre>
+        &lt;subant failonerror="false"&gt;
+            &lt;fileset dir="." includes="**/build.xml" excludes="build.xml"/&gt;
+            &lt;target name="clean"/&gt;
+            &lt;target name="build"/&gt;
+        &lt;/subant&gt;
+        </pre>
+
+        <p>Does a &quot;clean build&quot; for each subproject.</p>
+        <p><b>Hint:</b> because buildfiles are plain xml, you could generate the
+        masterbuildfile from the common buildfile by using a XSLT transformation:
+        </p>
+
+        <pre>
+        &lt;xslt in=&quot;common.xml&quot;
+              out=&quot;master.xml&quot;
+              style=&quot;${ant.home}/etc/common2master.xsl&quot;
+        /&gt;
+        </pre>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sync.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sync.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/sync.html	(revision 14989)
@@ -0,0 +1,137 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Sync Task</title>
+</head>
+
+<body>
+
+<h2><a name="get">Sync</a></h2>
+<p><em>Since Ant 1.6</em></p>
+<h3>Description</h3>
+
+<p>Synchronize a target directory from the files defined in one or
+more <a href="../CoreTypes/resources.html#collection">Resource Collection</a>s.</p>
+
+<p>Any file in the target directory that has not been matched by at
+least one of the nested resource collections gets removed.  I.e. if you exclude a
+file in your sources and a file of that name is present in the target
+dir, it will get removed from the target.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">the target directory to sync with the resource collections</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>  
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeEmptyDirs</td>
+     <td valign="top">Copy any empty directories included in the resource collection(s).
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">If is set to false, log a warning message, but do not stop the build,
+       when one of the nested filesets points to a directory that
+       doesn't exist.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+     <td valign="top">Log the files that are being copied.</td>
+     <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">granularity</td>
+    <td valign="top">The number of milliseconds leeway to give before
+    deciding a file is out of date. This is needed because not every
+    file system supports tracking the last modified time to the
+    millisecond level. Default is 0 milliseconds, or 2 seconds on DOS
+    systems.  This can also be useful if source and target files live
+    on separate machines with clocks being out of sync.  <em>since Ant
+    1.6.2</em>.</td>
+     <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset or any other resource collection</h4>
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select groups of files to copy.  To use a
+resource collection, the <code>todir</code> attribute must be set.</p>
+<p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
+supported as a nested element.</p>
+
+<h4>preserveInTarget</h4>
+
+<p>Specifies files or directories that should be kept in the target
+directory even if they are not present in one of the source
+directories.</p>
+
+<p>This nested element is like a <a
+href="../CoreTypes/fileset.html">FileSet</a> except that it doesn't
+support the dir attribute and the usedefaultexcludes attribute
+defaults to false.</p>
+
+<h3>Examples</h3>
+
+<blockquote><pre>
+&lt;sync todir=&quot;site&quot;&gt;
+  &lt;fileset dir=&quot;generated-site&quot;/&gt;
+&lt;/sync&gt;
+</pre></blockquote>
+<p>overwrites all files in <em>site</em> with newer files from
+<em>generated-site</em>, deletes files from <em>site</em> that are not
+present in <em>generated-site</em>.</p>
+
+<blockquote><pre>
+&lt;sync todir=&quot;site&quot;&gt;
+  &lt;fileset dir=&quot;generated-site&quot;/&gt;
+  &lt;preserveintarget&gt;
+    &lt;include name=&quot;**/CVS/**&quot;/&gt;
+  &lt;/preserveintarget&gt;
+&lt;/sync&gt;
+</pre></blockquote>
+<p>overwrites all files in <em>site</em> with newer files from
+<em>generated-site</em>, deletes files from <em>site</em> that are not
+present in <em>generated-site</em> but keeps all files in any
+<em>CVS</em> sub-directory.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/tar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/tar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/tar.html	(revision 14989)
@@ -0,0 +1,251 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Tar Task</title>
+</head>
+
+<body>
+
+<h2><a name="tar">Tar</a></h2>
+<h3>Description</h3>
+<p>Creates a tar archive.</p>
+<p>The <i>basedir</i> attribute is the reference directory from where to tar.</p>
+<p>This task is a <a href="../dirtasks.html#directorybasedtasks">directory based task</a>
+and, as such, forms an implicit <a href="../CoreTypes/fileset.html">Fileset</a>. This
+defines which files, relative to the <i>basedir</i>, will be included in the
+archive. The tar task supports all the attributes of Fileset to refine the
+set of files to be included in the implicit fileset.</p>
+
+<p>In addition to the implicit fileset, the tar task supports nested
+      resource collections and a special form of filesets. These
+filesets are extended to allow control over the access mode, username and groupname
+to be applied to the tar entries. This is useful, for example, when preparing archives for
+Unix systems where some files need to have execute permission.</p>
+
+<p>Early versions of tar did not support path lengths greater than 100
+characters. Modern versions of tar do so, but in incompatible ways.
+The behaviour of the tar task when it encounters such paths is
+controlled by the <i>longfile</i> attribute.
+If the longfile attribute is set to <code>fail</code>, any long paths will
+cause the tar task to fail.  If the longfile attribute is set to
+<code>truncate</code>, any long paths will be truncated to the 100 character
+maximum length prior to adding to the archive. If the value of the longfile
+attribute is set to <code>omit</code> then files containing long paths will be
+omitted from the archive.  Either option ensures that the archive can be
+untarred by any compliant version of tar. If the loss of path or file
+information is not acceptable, and it rarely is, longfile may be set to the
+value <code>gnu</code>. The tar task will then produce a GNU tar file which
+can have arbitrary length paths. Note however, that the resulting archive will
+only be able to be untarred with GNU tar.  The default for the longfile
+attribute is <code>warn</code> which behaves just like the gnu option except
+that it produces a warning for each file path encountered that does not match
+the limit.</p>
+
+<p>This task can perform compression by setting the compression attribute to "gzip"
+or "bzip2".</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the tar-file to create.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to tar the files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">longfile</td>
+    <td valign="top">Determines how long files (&gt;100 chars) are to be
+       handled.  Allowable values are &quot;truncate&quot;, &quot;fail&quot;,
+       &quot;warn&quot;, &quot;omit&quot; and &quot;gnu&quot;.  Default is
+       &quot;warn&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top">compression method.  Allowable values are 
+       &quot;none&quot;, &quot;gzip&quot; and &quot;bzip2&quot;.  Default is
+       &quot;none&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+The tar task supports nested <a
+href="../CoreTypes/tarfileset.html">tarfileset</a> elements. These are
+extended <a href="../CoreTypes/fileset.html">FileSets</a> which,
+in addition to the standard elements, support one additional
+attributes
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">preserveLeadingSlashes</td>
+    <td valign="top">Indicates whether leading `/'s should
+    be preserved in the file names. Default is <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4>any other resource collection</h4>
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select groups of files to archive.</p>
+<p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
+supported as a nested element.</p>
+
+<h3>Examples</h3>
+<pre>
+&lt;tar tarfile=&quot;${dist}/manual.tar&quot; basedir=&quot;htdocs/manual&quot;/&gt;
+&lt;gzip zipfile=&quot;${dist}/manual.tar.gz&quot; src=&quot;${dist}/manual.tar&quot;/&gt;</pre>
+<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
+in the <code>${dist}</code>  directory, then applies the gzip task to compress
+it.</p>
+<pre>
+&lt;tar destfile=&quot;${dist}/manual.tar&quot;
+      basedir=&quot;htdocs/manual&quot;
+      excludes=&quot;mydocs/**, **/todo.html&quot;
+/&gt;</pre>
+<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
+in the <code>${dist}</code> directory. Files in the directory <code>mydocs</code>,
+or files with the name <code>todo.html</code> are excluded.</p>
+
+<pre>
+&lt;tar destfile=&quot;${basedir}/docs.tar&quot;&gt;
+  &lt;tarfileset dir=&quot;${dir.src}/docs&quot;
+              fullpath=&quot;/usr/doc/ant/README&quot;
+              preserveLeadingSlashes=&quot;true&quot;&gt;
+    &lt;include name=&quot;readme.txt&quot;/&gt;
+  &lt;/tarfileset&gt;
+  &lt;tarfileset dir=&quot;${dir.src}/docs&quot;
+              prefix=&quot;/usr/doc/ant&quot;
+              preserveLeadingSlashes=&quot;true&quot;&gt;
+    &lt;include name=&quot;*.html&quot;/&gt;
+  &lt;/tarfileset&gt;
+&lt;/tar&gt;</pre>
+
+<p>
+  Writes the file <code>docs/readme.txt</code> as
+  <code>/usr/doc/ant/README</code> into the archive. All
+  <code>*.html</code> files in the <code>docs</code> directory are
+  prefixed by <code>/usr/doc/ant</code>, so for example
+  <code>docs/index.html</code> is written as
+  <code>/usr/doc/ant/index.html</code> to the archive.
+</p>
+
+
+<pre>
+&lt;tar longfile=&quot;gnu&quot;
+     destfile=&quot;${dist.base}/${dist.name}-src.tar&quot; &gt;
+  &lt;tarfileset dir=&quot;${dist.name}/..&quot; mode=&quot;755&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt;
+    &lt;include name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
+    &lt;include name=&quot;${dist.name}/build.sh&quot;/&gt;
+  &lt;/tarfileset&gt;
+  &lt;tarfileset dir=&quot;${dist.name}/..&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt;
+    &lt;include name=&quot;${dist.name}/**&quot;/&gt;
+    &lt;exclude name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
+    &lt;exclude name=&quot;${dist.name}/build.sh&quot;/&gt;
+  &lt;/tarfileset&gt;
+&lt;/tar&gt;
+</pre>
+
+<p>This example shows building a tar which uses the GNU extensions for long paths and
+where some files need to be marked as executable (mode 755)
+and the rest are use the default mode (read-write by owner). The first
+fileset selects just the executable files. The second fileset must exclude
+the executable files and include all others. </p>
+
+
+
+<p><strong>Note: </strong> The tar task does not ensure that a file is only selected
+by one resource collection. If the same file is selected by more than one collection, it will be included in the
+tar file twice, with the same path.</p>
+
+<p><strong>Note:</strong> The patterns in the include and exclude
+elements are considered to be relative to the corresponding dir
+attribute as with all other filesets.  In the example above,
+<code>${dist.name}</code> is not an absolute path, but a simple name
+of a directory, so <code>${dist.name}</code> is a valid path relative
+to <code>${dist.name}/..</code>.</p>
+
+<pre>
+&lt;tar dest="release.tar.gz" compress="gzip"&gt;
+  &lt;zipfileset src="release.zip"/&gt;
+&lt;/tar&gt;
+</pre>
+
+<p>Re-packages a ZIP archive as a GZip compressed tar archive.  If
+Unix file permissions have been stored as part of the ZIP file, they
+will be retained in the resulting tar archive.</p>
+
+  <p><strong>Note:</strong>
+    Please note the tar task creates a tar file, it does not append 
+    to an existing tar file. The existing tar file is replaced instead.
+    As with most tasks in Ant, the task only takes action if the output
+    file (the tar file in this case) is older than the input files, or
+    if the output file does not exist.
+  </p>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/taskdef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/taskdef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/taskdef.html	(revision 14989)
@@ -0,0 +1,43 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>TaskDef Task</title>
+</head>
+
+<body>
+
+<h2><a name="taskdef">Taskdef</a></h2>
+<h3>Description</h3>
+  <p>Adds a task definition to the current project, such that this new task can be
+    used in the current project.</p>
+  <p>This task is a form of <a href="typedef.html">Typedef</a> with the
+    attributes "adapter" and "adaptto" set to the values 
+    "org.apache.tools.ant.TaskAdapter" and "org.apache.tools.ant.Task"
+    respectively.
+<h3>Examples</h3>
+<pre>  &lt;taskdef name=&quot;myjavadoc&quot; classname=&quot;com.mydomain.JavadocTask&quot;/&gt;</pre>
+<p>makes a task called <code>myjavadoc</code> available to Ant. The class <code>com.mydomain.JavadocTask</code>
+implements the task.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/tempfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/tempfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/tempfile.html	(revision 14989)
@@ -0,0 +1,164 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Tempfile
+ Task</title>
+ <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+</head>
+
+<body>
+
+
+            <h2><a name="tempfile">Tempfile Task</a></h2>
+            <br>This task sets a property to the name of a temporary file.
+  
+          
+          <h3><a name="description">Description</a></h3>
+
+<p>
+          This task sets a property to the name of a temporary file.
+          Unlike <code>java.io.File.createTempFile</code>,
+          this task does not actually create the temporary file, but it does guarantee that the
+          file did not exist when the task was executed.
+
+          <p>Examples:
+
+          <pre>&lt;tempfile property="temp.file"/&gt;</pre>
+
+          create a temporary file
+
+          <pre>&lt;tempfile property="temp.file" suffix=".xml"/&gt;</pre>
+
+          create a temporary file with the <code>.xml</code> suffix
+
+          <pre>&lt;tempfile property="temp.file" destDir="build"/&gt;</pre>
+
+          create a temporary file in the <code>build</code> subdirectory
+
+      </blockquote>
+</p>
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+
+
+        
+          
+          <h3><a name="attributes">Parameters</a></h3>
+
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          property
+        </td>
+        <td>
+          Sets the property you wish to assign the temporary file to.
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Required
+        </td>
+    </tr>
+
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          destdir
+        </td>
+        <td>
+          Sets the destination directory. If not set, the basedir directory is used instead.
+        </td>
+        <td>
+          File
+        </td>
+        <td>
+          Optional
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          prefix
+        </td>
+        <td>
+          Sets the optional prefix string for the temp file.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          suffix
+        </td>
+        <td>
+          Sets the optional suffix string for the temp file.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          deleteonexit
+        </td>
+        <td>
+          Whether the temp file will be marked for deletion on normal exit of the Java Virtual Machine (even though the file may never be created); default <em>false</em>. <strong>Since Ant 1.7</strong>
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+          
+          <h3><a name="elements">Parameters as nested elements</a></h3>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/touch.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/touch.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/touch.html	(revision 14989)
@@ -0,0 +1,132 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Touch Task</title>
+</head>
+
+<body>
+
+<h2><a name="touch">Touch</a></h2>
+<h3>Description</h3>
+
+<p>Changes the modification time of a resource and possibly creates it
+at the same time. In addition to working with a single file, this Task
+can also work on <a href="../CoreTypes/resource.html">resource</a> and
+resource collections (which also includes directories).  Prior to Ant
+1.7 only FileSet or <a href="../CoreTypes/filelist.html">Filelist</a>
+(since Ant 1.6) have been supported.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The name of the file.</td>
+    <td valign="top" align="center">Unless a nested resource collection element
+       has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">millis</td>
+    <td valign="top">Specifies the new modification time of the file
+       in milliseconds since midnight Jan 1 1970.</td>
+    <td valign="center" align="center" rowspan="2">No--datetime takes
+       precedence, however if both are omitted the current time is assumed.</td>
+  </tr>
+  <tr>
+    <td valign="top">datetime</td>
+    <td valign="top">Specifies the new modification time of the file.</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">SimpleDateFormat-compatible pattern string.
+       Defaults to MM/DD/YYYY HH:MM AM_or_PM or MM/DD/YYYY HH:MM:SS AM_or_PM.
+       <b>Since Ant 1.6.3</b></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mkdirs</td>
+    <td valign="top">Whether to create nonexistent parent
+       directories when touching new files. <b>Since Ant 1.6.3</b></td>
+    <td valign="top" align="center">No, default <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to log the creation of new files.
+       <b>Since Ant 1.6.3</b></td>
+    <td valign="top" align="center">No, default <i>true</i>.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>any resource collection</h4>
+
+<p>You can use any number of nested resource collection elements to
+define the resource for this task and refer to resources defined
+elsewhere.  <b>Note:</b> resource passed to this task must implement
+the <code>org.apache.tools.ant.types.resources.Touchable</code>
+interface, this is true for all filesystem-based resources like those
+returned by path, fileset ot filelist.</p>
+
+<p>For backwards compatibility directories matched by nested filesets
+will be "touched" as well, use a &lt;type&gt; selector to suppress
+this.  This only applies to filesets nested into the task directly,
+not to filesets nested into a path or any other resource
+collection.</p>
+
+<h4>mapper</h4>
+<p><em>Since Ant 1.6.3,</em> a nested <a href="../CoreTypes/mapper.html">
+    mapper</a> can be specified.  Files specified via nested
+    <code>fileset</code>s, <code>filelist</code>s, or the <code>file</code>
+    attribute are mapped using the specified mapper.  For each file mapped,
+    the resulting files are touched.  If the original file exists its
+    timestamp will be used.  Otherwise the task settings (<code>millis</code>,
+    <code>datetime</code>) take effect.</p>
+<h3>Examples</h3>
+<pre>  &lt;touch file=&quot;myfile&quot;/&gt;</pre>
+<p>creates <code>myfile</code> if it doesn't exist and changes the
+modification time to the current time.</p>
+<pre>  &lt;touch file=&quot;myfile&quot; datetime=&quot;06/28/2000 2:02 pm&quot;/&gt;</pre>
+<p>creates <code>myfile</code> if it doesn't exist and changes the
+modification time to Jun, 28 2000 2:02 pm (14:02 for those used to 24
+hour times).</p>
+<pre>  &lt;touch datetime=&quot;09/10/1974 4:30 pm&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+  &lt;/touch&gt;</pre>
+<p>changes the modification time to Oct, 09 1974 4:30 pm of all files and directories 
+  found in <code>src_dir</code>. </p>
+<pre>  &lt;touch file=&quot;myfile&quot; datetime=&quot;06/28/2000 2:02:17 pm&quot;/&gt;</pre>
+<p>creates <code>myfile</code> if it doesn't exist and changes the
+modification time to Jun, 28 2000 2:02:17 pm (14:02:17 for those used to 24
+hour times), if the filesystem allows a precision of one second - a
+time close to it otherwise.</p>
+<pre>  &lt;touch file=&quot;foo&quot;&gt;
+    &lt;mapper type=&quot;glob&quot; from=&quot;foo&quot; to=&quot;bar&quot; /&gt;
+  &lt;/touch&gt;
+</pre>
+<p>creates <code>bar</code> if it doesn't exist and changes the
+modification time to that of <code>foo</code>.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/tstamp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/tstamp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/tstamp.html	(revision 14989)
@@ -0,0 +1,161 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>TStamp Task</title>
+</head>
+
+<body>
+
+<h2><a name="tstamp">Tstamp</a></h2>
+
+<h3>Description</h3>
+<p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and <code>TODAY</code>
+properties in the current project. By default,
+the <code>DSTAMP</code> property is in the
+format &quot;yyyyMMdd&quot;, <code>TSTAMP</code> is in the
+format &quot;hhmm&quot;, and <code>TODAY</code> is in the
+format &quot;MMMM dd yyyy&quot;. Use the nested <code>&lt;format&gt;</code> element
+to specify a different format.</p>
+
+<p>These properties can be used in the build-file, for instance, to create
+time-stamped filenames, or used to replace placeholder tags inside documents
+to indicate, for example, the release date. The best place for this task is
+probably in an initialization target.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">Prefix used for all properties set. The default is no prefix.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+The Tstamp task supports a <code>&lt;format&gt;</code> nested element that
+allows a property to be set to the current date and time in a given format.
+The date/time patterns are as defined in the Java
+<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html">SimpleDateFormat</a> class.
+The format element also allows offsets to be applied to the time to generate different time values.
+<br><br>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">
+        The property to receive the date/time string in the given pattern.
+    </td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">The date/time pattern to be used. The values are as defined by the Java SimpleDateFormat class.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">timezone</td>
+    <td valign="top">The timezone to use for displaying time. The values are as defined by the Java <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/TimeZone.html">TimeZone</a> class.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">offset</td>
+    <td valign="top">The numeric offset to the current time</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unit</td>
+    <td valign="top">The unit of the offset to be applied to the current time.
+                     Valid Values are
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day</li>
+                        <li>week</li>
+                        <li>month</li>
+                        <li>year</li>
+                     </ul>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">locale</td>
+    <td valign="top">The locale used to create date/time string. The general
+      form is &quot;language, country, variant&quot; but either variant or variant and
+      country may be omitted. For more information please refer to documentation
+      for the
+      <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Locale.html">Locale</a>
+      class.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;tstamp/&gt;
+</pre>
+
+<p>
+sets the standard <code>DSTAMP</code>, <code>TSTAMP</code>,
+and <code>TODAY</code> properties according to the default formats.</p>
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property=&quot;TODAY_UK&quot; pattern=&quot;d-MMMM-yyyy&quot; locale=&quot;en,UK&quot;/&gt;
+  &lt;/tstamp&gt;
+</pre>
+<p>
+sets the standard properties as well as the property
+<code>TODAY_UK</code> with the date/time pattern &quot;d-MMMM-yyyy&quot;
+using English locale (eg. 21-May-2001).</p>
+
+<pre>
+  &lt;tstamp&gt;
+      &lt;format property=&quot;touch.time&quot; pattern=&quot;MM/dd/yyyy hh:mm aa&quot;
+              offset=&quot;-5&quot; unit=&quot;hour&quot;/&gt;
+  &lt;/tstamp&gt;
+</pre>
+<p>
+Creates a timestamp, in the property touch.time, 5 hours before the current time. The format in this example
+is suitable for use with the <code>&lt;touch&gt;</code> task. The standard properties are set also.</p>
+
+<pre>
+  &lt;tstamp prefix="start"/&gt;
+</pre>
+<p>
+Sets three properties with the standard formats, prefixed with "start.":
+<code>start.DSTAMP</code>, <code>start.TSTAMP</code>, and <code>start.TODAY</code>.</p>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/typedef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/typedef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/typedef.html	(revision 14989)
@@ -0,0 +1,241 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Typedef Task</title>
+</head>
+
+<body>
+
+<h2><a name="typedef">Typedef</a></h2>
+<h3>Description</h3>
+  <p>
+    Adds a task or a data type definition to the current project
+    such that this new type or task can be used in the current project.
+  </p>
+  <p>
+    A Task is any class that extends org.apache.tools.ant.Task or
+    can be adapted as a Task using an adapter class.
+  </p>
+  <p>
+    Data types are things like <a href="../using.html#path">paths</a> or
+    <a href="../CoreTypes/fileset.html">filesets</a> that can be defined at
+    the project level and referenced via their ID attribute.
+    Custom data types usually need custom tasks to put them to good use.
+  </p>
+  <p>
+    Two attributes are needed to make a definition: the name that
+    identifies this data type uniquely, and the full name of the class
+    (including its package name) that implements this type.
+  </p>
+  <p>
+    You can also define a group of definitions at once using the file or
+    resource attributes.  These attributes point to files in the format of
+    Java property files or an xml format.
+  </p>
+  <p>
+    For property files each line defines a single data type in the
+    format:</p>
+  <pre>
+    typename=fully.qualified.java.classname
+  </pre>
+    
+  <p>
+    The xml format is described in the
+    <a href="../CoreTypes/antlib.html">Antlib</a> section.
+  </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the data type</td>
+    <td valign="top" align="center">Yes, unless the file or resource type
+      attributes have been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the full class name implementing the data type</td>
+    <td valign="top" align="center">Yes, unless file or resource
+      have been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">Name of the file to load definitions from.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">
+      Name of the resource to load definitions from.
+      If multiple resources by this name are found along the classpath,
+      and the format is "properties", the first resource will be loaded;
+      otherwise all such resources will be loaded.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">The format of the file or resource. The values
+      are "properties" or "xml". If the value is "properties" the file/resource
+      is a property file contains name to classname pairs. If the value
+      is "xml", the file/resource is an xml file/resource structured according
+      to <a href="../CoreTypes/antlib.html">Antlib</a>.
+      The default is "properties" unless the file/resource name ends with
+      ".xml", in which case the format attribute will have the value "xml".
+      <b>since Ant 1.6</b>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td> <td valign="top">the classpath to
+      use when looking up <code>classname</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">
+      a reference to a classpath to use when looking up <code>classname</code>.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">loaderRef</td>
+    <td valign="top">the name of the loader that is
+      used to load the class, constructed from the specified classpath. Use
+      this to allow multiple tasks/types to be loaded with the same loader,
+      so they can call each other. <b>since Ant 1.5</b> </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">onerror</td>
+    <td valign="top">The action to take if there was a failure in defining the
+      type. The values are <i>fail</i>: cause a build exception; <i>report</i>:
+      output a warning, but continue; <i>ignore</i>: do nothing.
+      <b>since Ant 1.6</b>
+      An additional value is <i>failall</i>: cause all behavior of fail,
+      as well as a build exception for the resource or file attribute
+      if the resource or file is not found. <b>since Ant 1.7</b>
+      The default is <i>fail</i>.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">adapter</td>
+    <td valign="top">A class that is used to adapt the defined class to
+      another interface/class. The adapter class must implement the interface
+      "org.apache.tools.ant.TypeAdapter". The adapter class will be used
+      to wrap the defined class unless the defined class implements/extends
+      the class defined by the attribute "adaptto".
+      If "adaptto" is not set, the defined class will always be wrapped.
+      <b>since Ant 1.6</b>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">adaptto</td>
+    <td valign="top">This attribute is used in conjunction with the
+      adapter attribute.
+      If the defined class does not implement/extend the interface/class
+      specified by this attribute, the adaptor class will be used
+      to wrap the class. <b>since Ant 1.6</b>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uri</td>
+    <td valign="top">
+      The uri that this definition should live in.
+      <b>since Ant 1.6</b>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+  <h3>Parameters specified as nested elements</h3>
+  <h4>classpath</h4>
+  <p><code>Typedef</code>'s <i>classpath</i> attribute is a 
+    <a href="../using.html#path">path-like structure</a> and can also be set
+    via a nested <i>classpath</i> element.</p>
+
+<h3>Examples</h3>
+  The following fragment defines define a type called <i>urlset</i>.
+  <pre>
+    &lt;typedef name="urlset" classname="com.mydomain.URLSet"/&gt; </pre>
+  The data type is now available to Ant. The
+  class <code>com.mydomain.URLSet</code> implements this type.</p>
+
+
+  <p>
+    Assuming a class <i>org.acme.ant.RunnableAdapter</i> that
+    extends Task and implements <i>org.apache.tools.ant.TypeAdapter</i>,
+    and in the execute method invokes <i>run</i> on the proxied object,
+    one may use a Runnable class as an Ant task. The following fragment
+    defines a task called <i>runclock</i>.
+  </p>
+  <pre>
+    &lt;typedef name="runclock"
+             classname="com.acme.ant.RunClock"
+             adapter="org.acme.ant.RunnableAdapter"/&gt;
+  </pre>
+
+
+  <p>
+    The following fragment shows the use of the classpathref and
+    loaderref to load up two definitions.
+  </p>
+  <pre>
+    &lt;path id="lib.path"&gt;
+      &lt;fileset dir="lib" includes="lib/*.jar"/&gt;
+    &lt;/path&gt;
+
+    &lt;typedef name="filter1"
+             classname="org.acme.filters.Filter1"
+             classpathref="lib.path"
+             loaderref="lib.path.loader"
+             /&gt;
+    &lt;typedef name="filter2"
+             classname="org.acme.filters.Filter2"
+             loaderref="lib.path.loader"
+             /&gt;
+  </pre>
+  
+  
+  <p>
+    If you want to load an antlib into a special xml-namespace, the <tt>uri</tt> attribute
+    is important:
+  </p>
+  <pre>
+  &lt;project xmlns:antcontrib="antlib:net.sf.antcontrib"&gt;
+     &lt;taskdef uri="antlib:net.sf.antcontrib"
+              resource="net/sf/antcontrib/antlib.xml"
+              classpath="path/to/ant-contrib.jar"/&gt;
+  </pre>
+            
+  
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/unpack.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/unpack.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/unpack.html	(revision 14989)
@@ -0,0 +1,117 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>GUnzip/BUnzip2 Task</title>
+</head>
+
+<body>
+
+<h2><a name="unpack">GUnzip/BUnzip2</a></h2>
+<h3>Description</h3>
+<p>Expands a resource packed using GZip or BZip2.</p>
+
+<p>If <i>dest</i> is a directory the name of the destination file is
+the same as <i>src</i> (with the &quot;.gz&quot; or &quot;.bz2&quot;
+extension removed if present). If <i>dest</i> is omitted, the parent
+dir of <i>src</i> is taken. The file is only expanded if the source
+resource is newer than the destination file, or when the destination file
+does not exist.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">the file to expand.</td>
+    <td align="center" valign="top">Yes, or a nested resource collection.</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">the destination file or directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as src.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;gunzip src=&quot;test.tar.gz&quot;/&gt;
+</pre></blockquote>
+<p>expands <i>test.tar.gz</i> to <i>test.tar</i></p>
+<blockquote><pre>
+&lt;bunzip2 src=&quot;test.tar.bz2&quot;/&gt;
+</pre></blockquote>
+<p>expands <i>test.tar.bz2</i> to <i>test.tar</i></p>
+<blockquote><pre>
+&lt;gunzip src=&quot;test.tar.gz&quot; dest=&quot;test2.tar&quot;/&gt;
+</pre></blockquote>
+<p>expands <i>test.tar.gz</i> to <i>test2.tar</i></p>
+<blockquote><pre>
+&lt;gunzip src=&quot;test.tar.gz&quot; dest=&quot;subdir&quot;/&gt;
+</pre></blockquote>
+<p>expands <i>test.tar.gz</i> to <i>subdir/test.tar</i> (assuming
+subdir is a directory).</p>
+<blockquote><pre>
+&lt;gunzip dest=&quot;.&quot;&gt;
+  &lt;url url="http://example.org/archive.tar.gz"/&gt;
+&lt;/gunzip&gt;
+</pre></blockquote>
+<p>downloads <i>http://example.org/archive.tar.gz</i> and expands it
+to <i>archive.tar</i> in the project's basedir on the fly.</p>
+
+<h3>Related tasks</h3>
+
+<pre>
+&lt;gunzip src="some-archive.gz" dest="some-dest-dir"/&gt;
+</pre>
+
+is identical to
+
+<pre>
+&lt;copy todir="some-dest-dir"&gt;
+  &lt;gzipresource&gt;
+    &lt;file file="some-archive.gz"/&gt;
+  &lt;/gzipresource&gt;
+  &lt;mapper type="glob" from="*.gz" to="*"/&gt;
+&lt;/copy&gt;
+</pre>
+
+<p>The same is also true for <code>&lt;bunzip2&gt;</code> and
+<code>&lt;bzip2resource&gt;</code>.  <code>&lt;copy&gt;</code> offers
+additional features like <a
+href="../CoreTypes/filterchains.html">filtering files</a> on the fly,
+allowing a file to be mapped to multiple destinations, preserving the
+last modified time or a configurable file system timestamp
+granularity.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/untar.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/untar.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/untar.html	(revision 14989)
@@ -0,0 +1,35 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Untar Task</title>
+</head>
+
+<body>
+
+<h2><a name="untar">Untar</a></h2>
+<h3>Description</h3>
+<p>Untars a tarfile.</p>
+
+This document has moved <A HREF="unzip.html">here</A>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/unzip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/unzip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/unzip.html	(revision 14989)
@@ -0,0 +1,178 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Unzip Task</title>
+</head>
+
+<body>
+
+<h2><a name="unzip">Unjar/Untar/Unwar/Unzip</a></h2>
+<h3>Description</h3>
+<p>Unzips a zip-, war-, or jar file.</p>
+<p><a href="../CoreTypes/patternset.html">PatternSet</a>s are used to select files to extract
+<I>from</I> the archive.  If no patternset is used, all files are extracted.
+</p>
+
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s may be used to select archived files to perform
+unarchival upon.  Only file system based resource collections are
+supported by Unjar/Unwar/Unzip, this includes <a
+href="../CoreTypes/fileset.html">fileset</a>, <a
+href="../CoreTypes/filelist.html">filelist</a>, <a
+href="../using.html#path">path</a>, and <a
+href="../CoreTypes/resources.html#files">files</a>.
+Untar supports arbitrary resource collections.
+Prior to Ant 1.7 only fileset has been supported as a nested element.</p>
+
+<p>You can define filename transformations by using a nested <a href="../CoreTypes/mapper.html">mapper</a> element.  The default mapper is the
+<a href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a>.
+</p>
+<p>File permissions will not be restored on extracted files.</p>
+<p>The untar task recognizes the long pathname entries used by GNU tar.<p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">archive file to expand.</td>
+    <td align="center" valign="top">Yes, if filesets are not used.</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">directory where to store the expanded files.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite files, even if they are newer than the
+      corresponding entries in the archive (true or false, default is
+      true).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compression</td>
+    <td valign="top"><b>Note:</b> This attribute is only available for
+    the <code>untar</code> task.<br>
+    compression method.  Allowable values are &quot;none&quot;,
+    &quot;gzip&quot; and &quot;bzip2&quot;.  Default is
+    &quot;none&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top"><b>Note:</b> This attribute is not available for
+    the <code>untar</code> task.<br>
+    The character encoding that has been used for filenames
+    inside the zip file.  For a list of possible values see <a
+    href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.<br>
+    Defaults to &quot;UTF8&quot;, use the magic value
+    <code>native-encoding</code> for the platform's default character
+    encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;unzip src=&quot;${tomcat_src}/tools-src.zip&quot; dest=&quot;${tools.home}&quot;/&gt;
+</pre>
+<p>
+<pre>
+&lt;gunzip src=&quot;tools.tar.gz&quot;/&gt;
+&lt;untar src=&quot;tools.tar&quot; dest=&quot;${tools.home}&quot;/&gt;
+</pre>
+<pre>
+&lt;unzip src=&quot;${tomcat_src}/tools-src.zip&quot;
+       dest=&quot;${tools.home}&quot;&gt;
+    &lt;patternset&gt;
+        &lt;include name=&quot;**/*.java&quot;/&gt;
+        &lt;exclude name=&quot;**/Test*.java&quot;/&gt;
+    &lt;/patternset&gt;
+&lt;/unzip&gt;
+</pre>
+<p>
+<pre>
+&lt;unzip dest=&quot;${tools.home}&quot;&gt;
+    &lt;patternset&gt;
+        &lt;include name=&quot;**/*.java&quot;/&gt;
+        &lt;exclude name=&quot;**/Test*.java&quot;/&gt;
+    &lt;/patternset&gt;
+    &lt;fileset dir=&quot;.&quot;&gt;
+        &lt;include name=&quot;**/*.zip&quot;/&gt;
+        &lt;exclude name=&quot;**/tmp*.zip&quot;/&gt;
+    &lt;/fileset&gt;
+&lt;/unzip&gt;
+</pre>
+<p>
+<pre>
+&lt;unzip src=&quot;apache-ant-bin.zip&quot; dest=&quot;${tools.home}&quot;&gt;
+    &lt;patternset&gt;
+        &lt;include name=&quot;apache-ant/lib/ant.jar&quot;/&gt;
+    &lt;/patternset&gt;
+    &lt;mapper type=&quot;flatten&quot;/&gt;
+&lt;/unzip&gt;
+</pre>
+
+<h3>Related tasks</h3>
+
+<pre>
+&lt;unzip src="some-archive" dest="some-dir"&gt;
+  &lt;patternset&gt;
+    &lt;include name="some-pattern"/&gt;
+  &lt;/patternset&gt;
+  &lt;mapper type=&quot;some-mapper&quot;/&gt;
+&lt;/unzip&gt;
+</pre>
+
+is identical to
+
+<pre>
+&lt;copy todir="some-dir" preservelastmodified="true"&gt;
+  &lt;zipfileset src="some-archive"&gt;
+    &lt;patternset&gt;
+      &lt;include name="some-pattern"/&gt;
+    &lt;/patternset&gt;
+  &lt;/zipfileset&gt;
+  &lt;mapper type=&quot;some-mapper&quot;/&gt;
+&lt;/copy&gt;
+</pre>
+
+<p>The same is also true for <code>&lt;untar&gt;</code> and
+<code>&lt;tarfileset&gt;</code>.  <code>&lt;copy&gt;</code> offers
+additional features like <a href="../CoreTypes/filterchain.html">filtering files</a> on the fly,
+allowing a file to be mapped to multiple destinations or a
+configurable file system timestamp granularity.</p>
+
+<pre>&lt;zip destfile=&quot;new.jar&quot;&gt;
+  &lt;zipfileset src=&quot;old.jar&quot;&gt;
+    &lt;exclude name=&quot;do/not/include/this/class&quot;/&gt;
+  &lt;/zipfileset&gt;
+&lt;/zip&gt;
+</pre>
+<p>&quot;Deletes&quot; files from a zipfile.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/uptodate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/uptodate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/uptodate.html	(revision 14989)
@@ -0,0 +1,172 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Uptodate Task</title>
+</head>
+
+<body>
+
+<h2><a name="uptodate">Uptodate</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a target file or set of target files is more up-to-date
+than a source file or set of source files. A single source file is specified
+using the <code>srcfile</code> attribute. A set of source files is specified
+using the nested <code>&lt;srcfiles&gt;</code>
+elements. These are <a href="../CoreTypes/fileset.html">FileSet</a>s,
+whereas multiple target files are specified using a nested
+<a href="../CoreTypes/mapper.html"><code>&lt;mapper&gt;</code></a> element.</p>
+<p>By default, the value of the property is set to <code>true</code> if
+the timestamp of the source file(s) is not more recent than the timestamp of
+the corresponding target file(s). You can set the value to something other
+than the default by specifying the <code>value</code> attribute.</p>
+<p>If a <code>&lt;srcfiles&gt;</code> element is used, without also specifying
+a <code>&lt;mapper&gt;</code> element, the default behavior is to use a
+<a href="../CoreTypes/mapper.html#merge-mapper">merge mapper</a>, with the
+<code>to</code> attribute set to the value of the
+<code>targetfile</code> attribute.</p>
+<p>Normally, this task is used to set properties that are useful to avoid
+target execution depending on the relative age of the specified files.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of the property to set.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value to set the property to.</td>
+    <td valign="top" align="center">No; defaults to <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">srcfile</td>
+    <td valign="top">The file to check against the target file(s).</td>
+    <td valign="top" align="center">Yes, unless a nested
+    <code>&lt;srcfiles&gt;</code> or <code>&lt;srcresources&gt;</code>
+    element is present.</td>
+  </tr>
+  <tr>
+    <td valign="top">targetfile</td>
+    <td valign="top">The file for which we want to determine the status.</td>
+    <td valign="top" align="center">Yes, unless a nested
+      <code>&lt;mapper&gt;</code> element is present.</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4><a name="srcfiles">srcfiles</a></h4>
+<p>The nested <code>&lt;srcfiles&gt;</code> element allows you to specify a
+set of files to check against the target file(s).</p>
+
+<p><strong>Note:</strong> You can specify either the <code>srcfile</code>
+attribute or nested <code>&lt;srcfiles&gt;</code> elements, but not both.
+
+<h4><a name="srcresources">srcresources</a></h4>
+<p>The nested <code>&lt;srcresources&gt;</code> element is a <a
+href="../CoreTypes/resources.html#union">union</a> and allows you to
+specify a collection of resources to check against the target file(s).
+<em>Since Ant 1.7</em></p>
+
+<h4><a name="mapper">mapper</a></h4>
+<p>The nested <code>&lt;mapper&gt;</code> element allows you to specify
+a set of target files to check for being up-to-date with respect to a
+set of source files.</p>
+   <p>
+      The mapper "to" attribute is relative to the target file, or to
+      the "dir" attribute of the nested srcfiles element.
+   </p>
+  <p>
+    <em>Since Ant 1.6.3</em>,
+    one can use a filenamemapper type in place of the mapper element.
+  </p>
+<h3>Examples</h3>
+<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot; targetfile=&quot;${deploy}\xmlClasses.jar&quot; &gt;
+    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
+  &lt;/uptodate&gt;</pre>
+<p>sets the property <code>xmlBuild.notRequired</code> to <code>true</code>
+if the <code>${deploy}/xmlClasses.jar</code> file is more up-to-date than
+any of the DTD files in the <code>${src}/xml</code> directory.</p>
+<p>This can be written as:</p>
+<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot;&gt;
+    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
+    &lt;mapper type=&quot;merge&quot; to=&quot;${deploy}\xmlClasses.jar&quot;/&gt;
+  &lt;/uptodate&gt;</pre>
+<p>as well.</p>
+<p>
+The <code>xmlBuild.notRequired</code> property can then be used in a
+<code>&lt;target&gt;</code> tag's <code>unless</code> attribute to
+conditionally run that target. For example, running the following target:</p>
+<pre>
+&lt;target name=&quot;xmlBuild&quot; depends=&quot;chkXmlBuild&quot; unless=&quot;xmlBuild.notRequired&quot;&gt;
+  ...
+&lt;/target&gt;
+</pre>
+<p>
+will first run the <code>chkXmlBuild</code> target, which contains
+the <code>&lt;uptodate&gt;</code> task that determines whether
+<code>xmlBuild.notRequired</code> gets set. The property named in
+the <code>unless</code> attribute is then checked for being set/not set.
+If it did get set (ie., the jar file is up-to-date),
+then the <code>xmlBuild</code> target won't be run.
+</p>
+
+<p> The following example shows a single source file being checked
+against a single target file:</p>
+<pre>  &lt;uptodate property=&quot;isUpToDate&quot;
+            srcfile=&quot;/usr/local/bin/testit&quot;
+            targetfile=&quot;${build}/.flagfile&quot;/&gt;
+</pre>
+<p>sets the property <code>isUpToDate</code> to <code>true</code>
+if <code>/usr/local/bin/testit</code> is not newer than
+<code>${build}/.flagfile</code>.</p>
+</p>
+  <p>
+    The following shows usage of a relative mapper.
+  </p>
+  <pre>
+    &lt;uptodate property="checkUptodate.uptodate"&gt;
+      &lt;srcfiles dir="src" includes="*"/&gt;
+      &lt;mapper type="merge" to="../dest/output.done"/&gt;
+    &lt;/uptodate&gt;
+    &lt;echo message="checkUptodate result: ${checkUptodate.uptodate}"/&gt;
+  </pre>
+  <p>
+    The previous example can be a bit confusing, so it may be better to
+    use absolute paths:
+  </p>
+  <pre>
+    &lt;property name="dest.dir" location="dest"/&gt;
+    &lt;uptodate property="checkUptodate.uptodate"&gt;
+      &lt;srcfiles dir="src" includes="*"/&gt;
+      &lt;mapper type="merge" to="${dest.dir}/output.done"/&gt;
+    &lt;/uptodate&gt;
+  </pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/waitfor.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/waitfor.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/waitfor.html	(revision 14989)
@@ -0,0 +1,133 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>WaitFor Task</title>
+</head>
+
+<body>
+
+<h2>Waitfor</h2>
+<h3>Description</h3>
+<p>Blocks execution until a set of specified conditions become true. This is intended
+  to be used with the <a href="parallel.html">parallel</a> task to
+  synchronize a set of processes.</p>
+<p>The conditions to wait for are defined in <a href="waitfor.html#nested">nested elements</a>,
+if multiple conditions are specified, then the task will wait until all conditions are true..</p>
+<p></p>
+<p>If both maxwait and maxwaitunit are not specified, the maxwait is 3 minutes (180000 milliseconds).</p>
+<p>If the <code>timeoutproperty</code> attribute has been set, a
+property of that name will be created if the condition didn't come
+true within the specified time.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">maxwait</td>
+    <td valign="top">The maximum amount of time to wait for all the required conditions
+      to become true before failing the task. Defaults to 180000 maxwaitunits.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxwaitunit</td>
+    <td valign="top">The unit of time that must be used to interpret the value of the
+    maxwait attribute.  Defaults to millisecond.
+                     Valid Values are
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day</li>
+                        <li>week</li>
+                     </ul>
+      </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">checkevery</td>
+    <td valign="top">The amount of time to wait between each test of the conditions.
+      Defaults to 500 checkeveryunits.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">checkeveryunit</td>
+    <td valign="top">The unit of time that must be used to interpret the value of the
+    checkevery attribute.  Defaults to millisecond.
+                     Valid Values are
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day</li>
+                        <li>week</li>
+                     </ul>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeoutproperty</td>
+    <td valign="top">the name of the property to set if maxwait has
+      been exceeded.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+
+<p>The available conditions that satisfy the
+<code>&lt;waitfor&gt;</code> task are the same as those for the
+<a href="condition.html"><code>&lt;condition&gt;</code></a> task. See
+<a href="conditions.html">here</a> for the full list.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;waitfor maxwait="30" maxwaitunit="second"&gt;
+        &lt;available file="errors.log"/&gt;
+&lt;/waitfor&gt;
+</pre></blockquote>
+<p>waits up to 30 seconds for a file called errors.log to appear.</p>
+<blockquote><pre>
+&lt;waitfor maxwait="3" maxwaitunit="minute" checkevery="500"&gt;
+        &lt;http url="http://localhost/myapp/index.html"/&gt;
+&lt;/waitfor&gt;
+</pre></blockquote>
+<p>waits up to 3 minutes (and checks every 500 milliseconds) for a web server on localhost
+  to serve up the specified URL.</p>
+<blockquote><pre>
+&lt;waitfor maxwait="10" maxwaitunit="second"&gt;
+        &lt;and&gt;
+            &lt;socket server="dbserver" port="1521"/&gt;
+            &lt;http url="http://webserver/mypage.html"/&gt;
+        &lt;/and&gt;
+&lt;/waitfor&gt;
+</pre></blockquote>
+<p>waits up to 10 seconds for a server on the dbserver machine to begin listening
+  on port 1521 and for the http://webserver/mypage.html web page
+  to become available.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/war.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/war.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/war.html	(revision 14989)
@@ -0,0 +1,269 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>WAR Task</title>
+</head>
+
+<body>
+
+<h2><a name="war">War</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="jar.html">Jar</a> task with special
+treatment for files that should end up in the
+<code>WEB-INF/lib</code>, <code>WEB-INF/classes</code> or
+<code>WEB-INF</code> directories of the Web Application Archive.</p>
+<p>(The War task is a shortcut for specifying the particular layout of a WAR file.
+The same thing can be accomplished by using the <i>prefix</i> and <i>fullpath</i>
+attributes of zipfilesets in a Zip or Jar task.)</p>
+<p>The extended zipfileset element from the zip task
+    (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>)
+    is available in the War task. The task is also resource-enabled
+    and will add nested resources and resource collections to the archive.</p>
+
+<p>
+    Before Servlet API 2.5/Java EE 5, a WEB-INF/web.xml file was mandatory in a
+    WAR file, so this task failed if the <code>webxml</code> attribute was missing.
+    As the web.xml file is now optional, the <code>webxml</code> attribute may now
+    be made optional. However, as most real web applications do need a web.xml file,
+    it is not optional by default. The task will fail if the file is not
+    included, unless the <code>needxmlfile</code> attribute
+    is set to <code>true</code>. The task
+    will warn if more than one web.xml file is added to the JAR  
+    through the filesets.
+</p>
+
+
+<p><b>Please note that the Zip format allows multiple files of the same
+fully-qualified name to exist within a single archive.  This has been
+documented as causing various problems for unsuspecting users.  If you wish
+to avoid this behavior you must set the <code>duplicate</code> attribute
+to a value other than its default, <code>&quot;add&quot;</code>.</b></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the WAR file to create.</td>
+    <td align="center" valign="top" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">warfile</td>
+    <td valign="top"><i>Deprecated</i> name of the file to create
+    -use <tt>destfile</tt> instead.</td>
+  </tr>
+  <tr>
+    <td valign="top">webxml</td>
+    <td valign="top">The servlet configuration descriptor to use (WEB-INF/web.xml).</td>
+    <td valign="top" align="center">Yes, unless <tt>needxmlfile</tt> is true,
+    the file is pulled in via a nested fileset, or an existing WAR file is
+    being updated.</td>
+  </tr>
+  <tr>
+    <td valign="top">needxmlfile</td>
+    <td valign="top">Flag to indicate whether or not the web.xml file is needed.
+        I=it should be set to false when generating
+        servlet 2.5+ WAR files without a web.xml file.
+        <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No -default "true"</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">the manifest file to use.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Non-default level at which file compression should be
+    performed. Valid values range from 0 (no compression/fastest) to 9
+    (maximum compression/slowest). <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Nested elements</h3>
+<h4>lib</h4>
+<p>The nested <code>lib</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>WEB-INF/lib</code> directory of the war file.</p>
+<h4>classes</h4>
+<p>The nested <code>classes</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>WEB-INF/classes</code> directory of the war file.</p>
+<h4>webinf</h4>
+<p>The nested <code>webinf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>WEB-INF</code> directory of the war file. If this
+fileset includes a file named <code>web.xml</code>, the file is
+ignored and you will get a warning.</p>
+<h4>metainf</h4>
+<p>The nested <code>metainf</code> element specifies a <a
+href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
+end up in the <code>META-INF</code> directory of the war file. If this
+fileset includes a file named <code>MANIFEST.MF</code>, the file is
+ignored and you will get a warning.</p>
+<h3>Examples</h3>
+<p>Assume the following structure in the project's base directory:</p>
+<pre>
+thirdparty/libs/jdbc1.jar
+thirdparty/libs/jdbc2.jar
+build/main/com/myco/myapp/Servlet.class
+src/metadata/myapp.xml
+src/html/myapp/index.html
+src/jsp/myapp/front.jsp
+src/graphics/images/gifs/small/logo.gif
+src/graphics/images/gifs/large/logo.gif
+</pre>
+<p>then the war file <code>myapp.war</code> created with</p>
+<pre>
+&lt;war destfile=&quot;myapp.war&quot; webxml=&quot;src/metadata/myapp.xml&quot;&gt;
+  &lt;fileset dir=&quot;src/html/myapp&quot;/&gt;
+  &lt;fileset dir=&quot;src/jsp/myapp&quot;/&gt;
+  &lt;lib dir=&quot;thirdparty/libs&quot;&gt;
+    &lt;exclude name=&quot;jdbc1.jar&quot;/&gt;
+  &lt;/lib&gt;
+  &lt;classes dir=&quot;build/main&quot;/&gt;
+  &lt;zipfileset dir=&quot;src/graphics/images/gifs&quot;
+              prefix=&quot;images&quot;/&gt;
+&lt;/war&gt;
+</pre>
+<p>will consist of</p>
+<pre>
+WEB-INF/web.xml
+WEB-INF/lib/jdbc2.jar
+WEB-INF/classes/com/myco/myapp/Servlet.class
+META-INF/MANIFEST.MF
+index.html
+front.jsp
+images/small/logo.gif
+images/large/logo.gif
+</pre>
+<p>using Ant's default manifest file. The content of
+<code>WEB-INF/web.xml</code> is identical to
+<code>src/metadata/myapp.xml</code>.</p>
+
+<p>We regulary receive bug reports that this task is creating the WEB-INF
+directory, and thus it is our fault your webapp doesn't work. The cause
+of these complaints lies in WinZip, which turns an all upper-case
+directory into an all lower case one in a fit of helpfulness. Please check that
+<code>jar xvf yourwebapp.war</code> shows the same behaviour before filing another
+report.<br/>
+Winzip has an option allowing all uppercase names (which is off by default!).  It can be enabled by:
+Menu "Options" -> "Configuration",  "View" property/tab page, then "General" group box has an option called "Allow all uppercase file names".
+</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/whichresource.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/whichresource.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/whichresource.html	(revision 14989)
@@ -0,0 +1,147 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Whichresource
+ Task</title>
+ <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+</head>
+
+<body>
+
+  <!-- PAGE HEADER -->
+
+            <h2><a name="whichresource">Whichresource Task</a></h2>
+  
+  <!-- START RIGHT SIDE MAIN BODY -->
+
+          
+          <h3><a name="description">Description</a></h3>
+<p>
+        Find a class or resource on the supplied classpath, or the system classpath if none is supplied. The named property is set if the item can be found. For example <pre> &lt;whichresource resource="/log4j.properties" property="log4j.url" &gt; </pre>
+</p>
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+          
+          <h3><a name="attributes">Parameters</a></h3>
+
+
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          property
+        </td>
+        <td>
+          the property to fill with the URL of the resource or class
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Required
+        </td>
+    </tr>
+
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          class
+        </td>
+        <td>
+          name the class to look for
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Exactly one of these two
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          resource
+        </td>
+        <td>
+          name the resource to look for
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          classpath
+        </td>
+        <td>
+          Set the classpath to be used for this compilation.
+        </td>
+        <td>
+          Path
+        </td>
+        <td>
+          Optional
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+
+          
+          <h3><a name="elements">Parameters as nested elements</a></h3>
+
+    <!-- Start Element -->
+          <h4>classpath</h4> (org.apache.tools.ant.types.Path)
+<p>
+        Adds a path to the classpath.
+</p>
+    <!-- End Element -->
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/xmlproperty.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/xmlproperty.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/xmlproperty.html	(revision 14989)
@@ -0,0 +1,284 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XmlProperty Task</title>
+</head>
+
+<body>
+
+<h2><a name="xmlproperty">XmlProperty</a></h2>
+<h3>Description</h3>
+<p>
+Loads property values from a well-formed xml file. There are no other restrictions
+than "well-formed". You can choose the layout you want. For example this XML property file:
+<pre>
+  &lt;root&gt;
+    &lt;properties&gt;
+      &lt;foo&gt;bar&lt;/foo&gt;
+    &lt;/properties&gt;
+  &lt;/root&gt;
+</pre>
+is roughly equivalent to this Java property file:
+<pre>
+  root.properties.foo = bar
+</pre>
+
+<p>
+By default, this load
+does <em>no</em> processing of the input.  In particular, unlike the
+<a href="property.html">Property task</a>, property references
+(i.e., <samp>${foo}</samp>) are not resolved.
+<p>
+
+<h3><a name="semanticAttributes">Semantic Attributes</a></h3>
+
+Input processing can be enabled by using the <b>semanticAttributes</b>
+attribute.  If this attribute is set to <i>true</i> (its default is
+<i>false</i>), the following processing occurs as the input XML file
+is loaded:
+<ul>
+  <li>Property references are resolved.</li>
+  <li>The following attriubtes are treated differently:
+    <ul>
+      <li><b>id</b>: The property is associated with the given id value.</li>
+      <li><b>location</b>: The property is treated as a file location</li>
+      <li><b>refid</b>: The property is set to the value of the
+          referenced property.</li>
+      <li><b>value</b>: The property is set to the value indicated.</li>
+    </ul>
+  </li>
+  <li><a href="../using.html#path">Path-like Structures</a> can be defined
+      by use of the following attributes:
+    <ul>
+      <li><b>pathid</b>: The given id is used to identify a path.  The
+          nested XML tag name is ignored.  Child elements can be used
+          (XML tag names are ignored) to identify elements of the path.</li>
+    </ul>
+  </li>
+</ul>
+<p>
+For example, with semantic attribute processing enabled, this XML property
+file:
+<pre>
+  &lt;root&gt;
+    &lt;properties&gt;
+      &lt;foo location="bar"/&gt;
+      &lt;quux&gt;${root.properties.foo}&lt;/quux&gt;
+    &lt;/properties&gt;
+  &lt;/root&gt;
+</pre>
+is roughly equivalent to the following fragments in a build.xml file:
+<pre>
+  &lt;property name="root.properties.foo" location="bar"/&gt;
+  &lt;property name="root.properties.quux" value="${root.properties.foo}"/&gt;
+</pre>
+
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The XML file to parse.</td>
+    <td valign="top" align="center">Yes, or a nested resource collection.</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">The prefix to prepend to each property</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepRoot</td>
+    <td valign="top">Keep the xml root tag as the
+                     first value in the property name.</td>
+    <td valign="top" align="center">No, default is <i>true</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">validate</td>
+    <td valign="top">Validate the input file (e.g. by a DTD). Otherwise the XML must only be well-formed.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">collapseAttributes</td>
+    <td valign="top">Treat attributes as nested elements.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">semanticAttributes</td>
+    <td valign="top">Enable special handling of certain attribute names.
+                     See the <a href="#semanticAttributes">Semantic Attributes</a>
+                     section for more information.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeSemanticAttribute</td>
+    <td valign="top">Include the semantic attribute name
+                     as part of the property name.  Ignored if
+                     <i>semanticAttributes</i> is not set to <i>true</i>.
+                     See the <a href="#semanticAttributes">Semantic Attributes</a>
+                     section for more information.</td>
+    <td valign="top" align="center">No, default is <i>false</i>.</td>
+  </tr>
+  <tr>
+    <td valign="top">rootDirectory</td>
+    <td valign="top">The directory to use for resolving file references. Ignored
+                     if <i>semanticAttributes</i> is not set to <i>true</i>.</td>
+    <td valign="top" align="center">No, default is <i>${basedir}</i>.</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a>
+element is used to perform entity resolution.</p>
+
+<h4>any <a href="../CoreTypes/resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as input.</p>
+
+<a name="examples">
+<h3>Examples</h3>
+</a>
+
+<h4>Non-semantic Attributes</h4>
+
+<p>Here is an example xml file that does not have any semantic attributes.</p>
+
+<pre>
+   &lt;root-tag myattr="true"&gt;
+    &lt;inner-tag someattr="val"&gt;Text&lt;/inner-tag&gt;
+    &lt;a2&gt;&lt;a3&gt;&lt;a4&gt;false&lt;/a4&gt;&lt;/a3&gt;&lt;/a2&gt;
+   &lt;/root-tag&gt;
+</pre>
+
+<h5>default loading</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml"/&gt;</pre>
+is equivalent to the following properties:
+<pre>
+   root-tag(myattr)=true
+   root-tag.inner-tag=Text
+   root-tag.inner-tag(someattr)=val
+   root-tag.a2.a3.a4=false
+</pre>
+
+<h5>collapseAttributes=false</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml" collapseAttributes="true"/&gt;</pre>
+is equivalent to the following properties:
+<pre>
+   root-tag.myattr=true
+   root-tag.inner-tag=Text
+   root-tag.inner-tag.someatt=val
+   root-tag.a2.a3.a4=false
+</pre>
+
+<h5>keepRoot=false</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml" keepRoot="false"/&gt;</pre>
+is equivalent to the following properties:
+<pre>
+   inner-tag=Text
+   inner-tag(someattr)=val
+   a2.a3.a4=false
+</pre>
+
+<h4>Semantic Attributes</h4>
+
+<p>Here is an example xml file that has semantic attributes.</p>
+<pre>
+  &lt;root-tag&gt;
+    &lt;version value="0.0.1"/&gt;
+    &lt;build folder="build"&gt;
+      &lt;classes id="build.classes" location="${build.folder}/classes"/&gt;
+      &lt;reference refid="build.classes"/&gt;
+    &lt;/build&gt;
+    &lt;compile&gt;
+      &lt;classpath pathid="compile.classpath"&gt;
+        &lt;pathelement location="${build.classes}"/&gt;
+      &lt;/classpath&gt;
+    &lt;/compile&gt;
+    &lt;run-time&gt;
+      &lt;jars&gt;*.jar&lt;/jars&gt;
+      &lt;classpath pathid="run-time.classpath"&gt;
+        &lt;path refid="compile.classpath"/&gt;
+        &lt;pathelement path="${run-time.jars}"/&gt;
+      &lt;/classpath&gt;
+    &lt;/run-time&gt;
+  &lt;/root-tag&gt;
+</pre>
+
+<h5>default loading (semanticAttributes=true)</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml"
+                semanticAttributes="true"/&gt;</pre>
+is equivalent to the following entries in a build file:
+<pre>
+  &lt;property name="version" value="0.0.1"/&gt;
+  &lt;property name="build.folder" value="build"/&gt;
+  &lt;property name="build.classes" location="${build.folder}/classes" id="build.classes"/&gt;
+  &lt;property name="build.reference" refid="build.classes"/&gt;
+
+  &lt;property name="run-time.jars" value="*.jar/&gt;
+
+  &lt;classpath id="compile.classpath"&gt;
+    &lt;pathelement location="${build.classes}"/&gt;
+  &lt;/classpath&gt;
+
+  &lt;classpath id="run-time.classpath"&gt;
+    &lt;path refid="compile.classpath"/&gt;
+    &lt;pathelement path="${run-time.jars}"/&gt;
+  &lt;/classpath&gt;
+</pre>
+
+<h5>includeSemanticAttribute="true"</h5>
+<p>This entry in a build file:
+<pre>   &lt;xmlproperty file="somefile.xml"
+                semanticAttributes="true"
+                includeSemanticAttribute="true"/&gt;
+</pre>
+is equivalent to the following entries in a build file:
+<pre>
+  &lt;property name="version.value" value="0.0.1"/&gt;
+  &lt;property name="build.folder" value="build"/&gt;
+  &lt;property name="build.classes.location" location="${build.folder}/classes"/&gt;
+  &lt;property name="build.reference.refid" refid="build.location"/&gt;
+
+  &lt;property name="run-time.jars" value="*.jar/&gt;
+
+  &lt;classpath id="compile.classpath"&gt;
+    &lt;pathelement location="${build.classes}"/&gt;
+  &lt;/classpath&gt;
+
+  &lt;classpath id="run-time.classpath"&gt;
+    &lt;path refid="compile.classpath"/&gt;
+    &lt;pathelement path="${run-time.jars}"/&gt;
+  &lt;/classpath&gt;
+</pre>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/zip.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/zip.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTasks/zip.html	(revision 14989)
@@ -0,0 +1,303 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Zip Task</title>
+</head>
+
+<body>
+
+<h2><a name="zip">Zip</a></h2>
+<h3>Description</h3>
+<p>Creates a zipfile.</p>
+<p>The <i>basedir</i> attribute is the reference directory from where to zip.</p>
+<p>Note that file permissions will not be stored in the resulting zipfile.</p>
+<p>It is possible to refine the set of files that are being zipped. This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns. </p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>basedir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>Or, you may place within it nested file sets, or references to file sets.
+In this case <code>basedir</code> is optional; the implicit file set is <i>only used</i>
+if <code>basedir</code> is set. You may use any mixture of the implicit file set
+(with <code>basedir</code> set, and optional attributes like <code>includes</code>
+and optional subelements like <code>&lt;include&gt;</code>); explicit nested
+<code>&lt;fileset&gt;</code> elements so long as at least one fileset total is specified. The ZIP file will
+only reflect the relative paths of files <i>within</i> each fileset. The Zip task and its derivatives know a special form of a fileset named zipfileset that has additional attributes (described below). </p>
+<p>The Zip task also supports the merging of multiple zip files into the zip file. 
+This is possible through either the <i>src</i> attribute of any nested filesets 
+or by using the special nested fileset <i>zipgroupfileset</i>.</p>
+
+<p>The <code>update</code> parameter controls what happens if the ZIP
+file already exists. When set to <code>yes</code>, the ZIP file is
+updated with the files specified. (New files are added; old files are
+replaced with the new versions.) When set to <code>no</code> (the
+default) the ZIP file is overwritten if any of the files that would be
+added to the archive are newer than the entries inside the archive.
+Please note that ZIP files store file modification times with a
+granularity of two seconds.  If a file is less than two seconds newer
+than the entry in the archive, Ant will not consider it newer.</p>
+
+<p>The <code>whenempty</code> parameter controls what happens when no files match.
+If <code>skip</code> (the default), the ZIP is not created and a warning is issued.
+If <code>fail</code>, the ZIP is not created and the build is halted with an error.
+If <code>create</code>, an empty ZIP file (explicitly zero entries) is created,
+which should be recognized as such by compliant ZIP manipulation tools.</p>
+<p>This task will now use the platform's default character encoding
+for filenames - this is consistent with the command line ZIP tools,
+but causes problems if you try to open them from within Java and your
+filenames contain non US-ASCII characters. Use the encoding attribute
+and set it to UTF8 to create zip files that can safely be read by
+Java.</p>
+
+<p>Starting with Ant 1.5.2, <code>&lt;zip&gt;</code> can store Unix permissions
+inside the archive (see description of the filemode and dirmode
+attributes for <a href="../CoreTypes/zipfileset.html">&lt;zipfileset&gt;</a>).
+Unfortunately there is no portable way to store these permissions.
+Ant uses the algorithm used by <a href="http://www.info-zip.org">Info-Zip's</a>
+implementation of the zip and unzip commands - these are the default
+versions of zip and unzip for many Unix and Unix-like systems.</p>
+
+<p><b>Please note that the zip format allows multiple files of the same
+fully-qualified name to exist within a single archive.  This has been
+documented as causing various problems for unsuspecting users.  If you wish
+to avoid this behavior you must set the <code>duplicate</code> attribute
+to a value other than its default, <code>&quot;add&quot;</code>.</b></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">the zip-file to create.</td>
+    <td align="center" valign="top" rowspan="2">Exactly one of the two.</td>
+  </tr>
+  <tr>
+    <td valign="top">zipfile</td>
+    <td valign="top">the <i>deprecated</i> old name of destfile.</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory from which to zip the files.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepcompression</td>
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.  <em>Since Ant
+    1.6</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The character encoding to use for filenames
+    inside the zip file.  For a list of possible values see <a
+    href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.
+    Defaults to the platform's default character encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">whenempty</td>
+    <td valign="top">behavior when no files match.  Valid values are &quot;fail&quot;, &quot;skip&quot;, and &quot;create&quot;.  Default is &quot;skip&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;. The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">roundup</td>
+    <td valign="top">Whether the file modification times will be
+    rounded up to the next even number of seconds.<br>
+    Zip archives store file modification times with a granularity of
+    two seconds, so the times will either be rounded up or down.  If
+    you round down, the archive will always seem out-of-date when you
+    rerun the task, so the default is to round up.  Rounding up may
+    lead to a different type of problems like JSPs inside a web
+    archive that seem to be slightly more recent than precompiled
+    pages, rendering precompilation useless.<br>
+    Defaults to true.  <em>Since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">comment</td>
+    <td valign="top">Comment to store in the archive. <em>Since Ant 1.6.3</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">level</td>
+    <td valign="top">Non-default level at which file compression should be
+    performed. Valid values range from 0 (no compression/fastest) to 9
+    (maximum compression/slowest). <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any resource collection</h4>
+<p><a href="../CoreTypes/resources.html#collection">Resource
+Collection</a>s are used to select groups of files to archive.</p>
+<p>Prior to Ant 1.7 only <code>&lt;fileset&gt;</code> and
+<code>&lt;zipfileset&gt;</code> have been supported as nested elements.</p>
+
+<h4>zipgroupfileset</h4>
+<p>A <code>&lt;zipgroupfileset&gt;</code> allows for multiple zip files to be 
+merged into the archive. Each file found in this fileset is added to the archive 
+the same way that <i>zipfileset src</i> files are added.</p>
+
+
+<h3>Examples</h3>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code>
+in the <code>${dist}</code> directory.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+       update=&quot;true&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code>
+in the <code>${dist}</code> directory. If <code>manual.zip</code>
+doesn't exist, it is created; otherwise it is updated with the
+new/changed files.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+       excludes=&quot;mydocs/**, **/todo.html&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory. Files in the directory <code>mydocs</code>,
+or files with the name <code>todo.html</code> are excluded.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;
+       basedir=&quot;htdocs/manual&quot;
+       includes=&quot;api/**/*.html&quot;
+       excludes=&quot;**/todo.html&quot;
+  /&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory. Only html files under the directory <code>api</code>
+are zipped, and files with the name <code>todo.html</code> are excluded.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;&gt;
+    &lt;fileset dir=&quot;htdocs/manual&quot;/&gt;
+    &lt;fileset dir=&quot;.&quot; includes=&quot;ChangeLog.txt&quot;/&gt;
+  &lt;/zip&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory, and also adds the file <code>ChangeLog.txt</code> in the
+current directory. <code>ChangeLog.txt</code> will be added to the top of the ZIP file, just as if
+it had been located at <code>htdocs/manual/ChangeLog.txt</code>.</p>
+<pre>  &lt;zip destfile=&quot;${dist}/manual.zip&quot;&gt;
+    &lt;zipfileset dir=&quot;htdocs/manual&quot; prefix=&quot;docs/user-guide&quot;/&gt;
+    &lt;zipfileset dir=&quot;.&quot; includes=&quot;ChangeLog27.txt&quot; fullpath=&quot;docs/ChangeLog.txt&quot;/&gt;
+    &lt;zipfileset src=&quot;examples.zip&quot; includes=&quot;**/*.html&quot; prefix=&quot;docs/examples&quot;/&gt;
+  &lt;/zip&gt;</pre>
+<p>zips all files in the <code>htdocs/manual</code> directory into the <code>docs/user-guide</code> directory
+in the archive, adds the file <code>ChangeLog27.txt</code> in the
+current directory as <code>docs/ChangeLog.txt</code>, and includes all the html files in <code>examples.zip</code> 
+under <code>docs/examples</code>.  The archive might end up containing the files:</p>
+<pre>    docs/user-guide/html/index.html
+    docs/ChangeLog.txt
+    docs/examples/index.html
+</pre>
+<p>
+The code
+<pre>
+  &lt;zip destfile=&quot;${dist}/manual.zip&quot;&gt;
+    &lt;zipfileset dir=&quot;htdocs/manual&quot; prefix=&quot;docs/user-guide&quot;/&gt;
+    &lt;zipgroupfileset dir=&quot;.&quot; includes=&quot;examples*.zip&quot;/&gt;
+  &lt;/zip&gt;
+</pre>
+<p>
+<p>zips all files in the <code>htdocs/manual</code> directory into the <code>docs/user-guide</code> directory in the archive and includes all the files in any file that maches <code>examples*.zip</code>, such as all files within <code>examples1.zip</code> or <code>examples_for_brian.zip</code>.
+
+<pre>
+&lt;zip dest="release.zip"&gt;
+  &lt;tarfileset src="release.tar"/&gt;
+&lt;/zip&gt;
+</pre>
+
+<p>Re-packages a TAR archive as a ZIP archive.  If Unix file
+permissions have been stored as part of the TAR file, they will be
+retained in the resulting ZIP archive.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/antlib.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/antlib.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/antlib.html	(revision 14989)
@@ -0,0 +1,267 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>AntLib</title>
+  </head>
+
+  <body>
+    <h2><a name="antlib">Antlib</a></h2>
+
+
+    <h3>Description</h3>
+    <p>
+      An antlib file is an xml file with a root element of "antlib".
+      Antlib's elements are ant definition tasks - like
+      
+      and <a href="../CoreTasks/taskdef.html">Taskdef</a>,
+      or any ant task that extends
+      <code>org.apache.tools.ant.taskdefs.AntlibDefinition</code>.
+    </p>
+    <p>
+        The current set of declarations bundled with Ant that do this are:
+    </p>
+        <ol>
+            <li><a href="../CoreTasks/typedef.html">Typedef</a>
+            </li>
+            <li><a href="../CoreTasks/taskdef.html">Taskdef</a>
+            </li>
+            <li><a href="../CoreTasks/macrodef.html">Macrodef</a>
+            </li>
+            <li><a href="../CoreTasks/presetdef.html">Presetdef</a>
+            </li>
+            <li><a href="../OptionalTasks/scriptdef.html">Scriptdef</a>
+            </li>
+        </ol>
+    <p>
+      A group of tasks and types may be defined together in an antlib
+      file. For example the file <i>sample.xml</i> contains the following:
+    </p>
+    <blockquote>
+      <pre>
+&lt;?xml version="1.0"?&gt;
+&lt;antlib&gt;
+   &lt;typedef name="if" classname="org.acme.ant.If"/&gt;
+   &lt;typedef name="scriptpathmapper"
+            classname="org.acme.ant.ScriptPathMapper"
+            onerror="ignore"/&gt;
+   &lt;macrodef name="print"&gt;
+      &lt;attribute name="file"/&gt;
+      &lt;sequential&gt;
+         &lt;concat taskname="print"&gt;
+            &lt;fileset dir="." includes="@{file}"/&gt;
+         &lt;/concat&gt;
+      &lt;/sequential&gt;
+   &lt;/macrodef&gt;
+&lt;/antlib&gt;
+      </pre>
+    </blockquote>
+    <p>
+      It defines two types or tasks, <i>if</i> and <i>scriptpathmapper</i>.
+      This antlib file may be used in a build script as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef file="sample.xml"/&gt;
+      </pre>
+    </blockquote>
+    <p>
+      The other attributes of <code>&lt;typedef&gt;</code> may be used as well.
+      For example, assuming that the <i>sample.xml</i> is in a jar
+      file <i>sample.jar</i> also containing the classes, the
+      following build fragment will define the <i>if</i> and <i>scriptpathmapper</i>
+      tasks/types and place them in the namespace uri <i>samples:/acme.org</i>.
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef resource="org/acme/ant/sample.xml"
+         uri="samples:/acme.org"/&gt;
+      </pre>
+    </blockquote>
+    <p>
+      The definitions may then be used as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;sample:if valuetrue="${props}" xmlns:sample="samples:/acme.org"&gt;
+   &lt;sample:scriptpathmapper language="beanshell"&gt;
+      some bean shell
+   &lt;/sample:scriptpathmapper&gt;
+&lt;/sample:if&gt;
+      </pre>
+    </blockquote>
+
+
+    <h3><a name="antlibnamespace">Antlib namespace</a></h3>
+    <p>
+      The name space URIs with the pattern <b>antlib:<i>java package</i></b>
+      are given special treatment.
+    </p>
+    <p>
+      When ant encounters a element with a namespace URI with this pattern, it
+      will check to see if there is a resource of the name <i>antlib.xml</i> in
+      the package directory in the default classpath.
+    </p>
+    <p>
+      For example, assuming that the file <i>antcontrib.jar</i> has been placed
+      in the directory <i>${ant.home}/lib</i> and it contains the resource
+      <i>net/sf/antcontrib/antlib.xml</i> which has all antcontrib's definitions
+      defined, the following build file will automatically load the antcontrib
+      definitions at location <i>HERE</i>:
+    </p>
+    <blockquote>
+      <pre>
+&lt;project default="deletetest" xmlns:antcontrib="antlib:net.sf.antcontrib"&gt;
+   &lt;macrodef name="showdir"&gt;
+      &lt;attribute name="dir"/&gt;
+      &lt;sequential&gt;
+         &lt;antcontrib:shellscript shell="bash"&gt;  &lt;!-- HERE --&gt;
+            ls -Rl @{dir}
+         &lt;/antcontrib:shellscript&gt;
+      &lt;/sequential&gt;
+   &lt;/macrodef&gt;
+
+   &lt;target name="deletetest"&gt;
+      &lt;delete dir="a" quiet="yes"/&gt;
+      &lt;mkdir dir="a/b"/&gt;
+      &lt;touch file="a/a.txt"/&gt;
+      &lt;touch file="a/b/b.txt"/&gt;
+      &lt;delete&gt;
+         &lt;fileset dir="a"/&gt;
+      &lt;/delete&gt;
+      &lt;showdir dir="a"/&gt;
+   &lt;/target&gt;
+&lt;/project&gt;
+      </pre>
+    </blockquote>
+    <p>
+      The requirement that the resource is in the default classpath
+      may be removed in future versions of Ant.</p>
+    </p>
+
+
+	<h3><a name="loadFromInside">Load antlib from inside of the buildfile</a></h3>
+	<p>
+	  If you want to seperate the antlib from your local Ant installation, e.g. because you 
+	  want to hold that jar in your projects SCM system, you have to specify a classpath, so 
+	  that Ant could find that jar. The best solution is loading the antlib with <tt>&lt;taskdef&gt;</tt>.
+	</p>
+    <blockquote>
+      <pre>
+&lt;project xmlns:<font color="green">antcontrib</font>="<font color="red">antlib:net.sf.antcontrib</font>"&gt;
+   &lt;taskdef uri="<font color="red">antlib:net.sf.antcontrib</font>"
+            resource="net/sf/antcontrib/antlib.xml"
+            classpath="path/to/ant-contrib.jar"/&gt;
+   
+   &lt;target name="iterate"&gt;
+      &lt;<font color="green">antcontrib</font>:for param="file"&gt;
+         &lt;fileset dir="."/&gt;
+         &lt;sequential&gt;
+            &lt;echo message="- @{file}"/&gt;
+         &lt;/sequential&gt;
+      &lt;/antcontrib:for&gt;
+   &lt;/target&gt;
+&lt;/project&gt;
+      </pre>
+    </blockquote>
+
+	
+	
+
+    <h3><a name="currentnamespace">Current namespace</a></h3>
+    <p>
+      Definitions defined in antlibs may be used in antlibs. However
+      the namespace that definitions are placed in are dependent on
+      the <code>&lt;typedef&gt;</code> that uses the antlib. To deal with this
+      problem, the definitions are placed in the namepace URI <i>ant:current</i>
+      for the duration of the antlib execution.
+      For example the following antlib defines the task <code>&lt;if&gt;</code>, the
+      type <code>&lt;isallowed&gt;</code> and a macro
+      <code>&lt;ifallowed&gt;</code> that makes use of the task and type:
+    </p>
+    <blockquote>
+      <pre>
+&lt;antlib xmlns:current="ant:current"&gt;
+   &lt;taskdef name="if" classname="org.acme.ant.If"/&gt;
+   &lt;typedef name="isallowed" classname="org.acme.ant.Isallowed"/&gt;
+   &lt;macrodef name="ifallowed"&gt;
+      &lt;attribute name="action"/&gt;
+      &lt;element name="do"/&gt;
+      &lt;sequential&gt;
+         &lt;current:if&gt;
+            &lt;current:isallowed test="@{action}"/&gt;
+            &lt;current:then&gt;
+               &lt;do/&gt;
+            &lt;/current:then&gt;
+         &lt;/current:if&gt;
+      &lt;/sequential&gt;
+   &lt;/macrodef&gt;
+&lt;/antlib&gt;
+      </pre>
+    </blockquote>
+
+
+    <h3>Other examples and comments</h3>
+    <p>
+      Antlibs may make use of other antlibs.
+    </p>
+    <p>
+      As the names defined in the antlib are in the namespace uri as
+      specified by the calling <code>&lt;typedef&gt;</code> or by automatic element
+      resolution, one may reuse names from core ant types and tasks,
+      provided the caller uses a namespace uri. For example, the
+      following antlib may be used to define defaults for various
+      tasks:
+    </p>
+    <blockquote>
+      <pre>
+&lt;antlib xmlns:antcontrib="antlib:net.sf.antcontrib"&gt;
+   &lt;presetdef name="javac"&gt;
+      &lt;javac deprecation="${deprecation}"
+             debug="${debug}"/&gt;
+   &lt;/presetdef&gt;
+   &lt;presetdef name="delete"&gt;
+      &lt;delete quiet="yes"/&gt;
+   &lt;/presetdef&gt;
+   &lt;presetdef name="shellscript"&gt;
+      &lt;antcontrib:shellscript shell="bash"/&gt;
+   &lt;/presetdef&gt;
+&lt;/antlib&gt;
+      </pre>
+    </blockquote>
+    <p>
+      This may be used as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;project xmlns:local="localpresets"&gt;
+   &lt;typedef file="localpresets.xml" uri="localpresets"/&gt;
+   &lt;local:shellscript&gt;
+      echo "hello world"
+   &lt;/local:shellscript&gt;
+&lt;/project&gt;
+      </pre>
+    </blockquote>
+    
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/assertions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/assertions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/assertions.html	(revision 14989)
@@ -0,0 +1,208 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Assertions type</title>
+</head>
+
+<body>
+
+<h2><a name="assertions">Assertions</a></h2>
+<p>
+The <tt>assertions</tt> type enables or disables the Java 1.4 assertions feature,
+on a whole Java program, or components of a program. It can be used
+in <a href="../CoreTasks/java.html"><code>&lt;java&gt;</code></a> and
+<a href="../OptionalTasks/junit.html"><code>&lt;junit&gt;</code></a> to add extra validation to code.  
+
+<p>
+Assertions are covered in the 
+<a href="http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html">J2SDK 1.4 documentation</a>,
+and the
+<a href="http://java.sun.com/docs/books/jls/assert-spec.html">Java Language Specification</a>.
+
+<p>
+The key points to note are that a <tt>java.lang.AssertionError</tt>
+is thrown when an assertion fails, and that the facility is only available 
+on Java 1.4 and later. To enable assertions one must set <tt>source="1.4"</tt>
+(or later) in <tt>&lt;javac&gt;</tt> when the source is being compiled, and
+that the code must contain <tt>assert</tt> statements to be tested. The
+result of such an action is code that neither compiles or runs on earlier
+versions of Java. For this reason Ant itself currently contains no assertions.
+<p>
+
+When assertions are enabled (or disabled) in a task through nested 
+assertions elements, the class loader or command line is modified with the 
+appropriate options. This means that the JVM executed must be a Java 1.4
+or later JVM, even if there are no assertions in the code. Attempting to
+enable assertions on earlier VMs will result in an "Unrecognized option" 
+error and the JVM will not start.  
+
+<p>
+<h4>Attributes</h4>
+<p>
+
+
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">enableSystemAssertions</td>
+    <td valign="top">Flag to turn system assertions on or off.</td>
+    <td valign="top" align="center">No; default is "unspecified"</td>
+  </tr>
+</table>
+<p>
+When system assertions have been neither enabled nor disabled, then
+the JVM is not given any assertion information - the default action of the
+ current JVMs is to disable system assertions. 
+<p>
+Note also that there is no apparent documentation for what parts of the
+JRE come with useful assertions.
+
+<h3>Nested elements</h3>
+
+<h4>enable</h4>
+<p>
+Enable assertions in portions of code.
+If neither a package nor class is specified, assertions are turned on in <i>all</i> (user) code.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The name of a class on which to enable assertions.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">
+    The name of a package in which to enable assertions on all classes. (Includes subpackages.)
+    Use "<tt>...</tt>" for the anonymous package.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>disable</h4>
+<p>
+Disable assertions in portions of code.
+
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The name of a class on which to disable assertions.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">
+    The name of a package in which to disable assertions on all classes. (Includes subpackages.)
+    Use "<tt>...</tt>" for the anonymous package.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+
+Because assertions are disabled by default, it only makes sense to disable
+assertions where they have been enabled in a parent package.
+
+
+<h3>Examples</h3>
+
+<h5>Example: enable assertions in all user classes</h5>
+
+All classes not in the JRE (i.e. all non-system classes) will have assertions turned on.
+<pre>
+&lt;assertions&gt;
+  &lt;enable/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: enable a single class</h5>
+
+Enable assertions in a class called Test
+<pre>
+&lt;assertions&gt;
+  &lt;enable class="Test"/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: enable a package</h5>
+
+Enable assertions in the <tt>org.apache</tt> package
+and all packages starting with the <tt>org.apache.</tt> prefix
+<pre>
+&lt;assertions&gt;
+  &lt;enable package="org.apache"/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: System assertions</h5>
+
+Example: enable system assertions and assertions in all <tt>org.apache</tt> packages except
+for Ant (but including <tt>org.apache.tools.ant.Main</tt>)
+<pre>
+&lt;assertions enableSystemAssertions="true"&gt;
+  &lt;enable package="org.apache"/&gt;
+  &lt;disable package="org.apache.tools.ant"/&gt;
+  &lt;enable class="org.apache.tools.ant.Main"/&gt;
+&lt;/assertions&gt;
+</pre>
+
+<h5>Example: disabled and anonymous package assertions</h5>
+
+Disable system assertions; enable those in the anonymous package
+<pre>
+&lt;assertions enableSystemAssertions="false"&gt;
+  &lt;enable package="..."/&gt;
+&lt;/assertions&gt;
+</pre>
+
+
+<h5>Example: referenced assertions</h5>
+
+This type is a datatype, so you can declare assertions and use them later
+
+<pre>
+&lt;assertions id="project.assertions"&gt;
+  &lt;enable package="org.apache.test"/&gt;
+&lt;/assertions&gt;
+
+&lt;assertions refid="project.assertions"/&gt;
+</pre>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/custom-programming.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/custom-programming.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/custom-programming.html	(revision 14989)
@@ -0,0 +1,415 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  <head>
+    <meta http-equiv="Content-Language" content="en-us"></meta>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Custom Components</title>
+  </head>
+  <body>
+    <h2>Custom Components</h2>
+    <h3>Overview</h3>
+    <p>
+      Custom components are conditions, selectors, filters and other
+      objects that are defined outside ant core.
+    </p>
+    <p>
+      In Ant 1.6 custom conditions, selectors and filters has
+      been overhauled.
+    </p>
+    <p>
+      It is now possible to define custom conditions, selectors and filters
+      that behave like Ant Core components.
+      This is achieved by allowing datatypes defined in build scripts
+      to be used as custom components if the class of the datatype
+      is compatible, or has been adapted by an adapter class.
+    </p>
+    <p>
+      The old methods of defining custom components are still supported.
+    </p>
+    <h3>Definition and use</h3>
+    <p>
+      A custom component is a normal Java class that implements a particular
+      interface or extends a  particular class, or has been adapted to the
+      interface or class.
+    </p>
+    <p>
+      It is exactly like writing a
+      <a href="../develop.html#writingowntask">custom task</a>.
+      One defines attributes and nested elements by writing <i>setter</i>
+      methods and <i>add</i> methods.
+    </p>
+    <p>
+      After the class has been written, it is added to the ant system
+      by using <code>&lt;typedef&gt;</code>.
+    </p>
+    <h3><a name="customconditions">Custom Conditions</a></h3>
+    <p>
+      Custom conditions are datatypes that implement
+      <code>org.apache.tools.ant.taskdefs.condition.Condition</code>.
+      For example a custom condition that returns true if a
+      string is all upper case could be written as:
+    </p>
+    <blockquote>
+      <pre>
+package com.mydomain;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.taskdefs.condition.Condition;
+
+public class AllUpperCaseCondition implements Condition {
+    private String value;
+
+    // The setter for the "value" attribute
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // This method evaluates the condition
+    public boolean eval() {
+        if (value == null) {
+            throw new BuildException("value attribute is not set");
+        }
+        return value.toUpperCase().equals(value);
+   }
+}
+      </pre>
+    </blockquote>
+
+    <p>
+        Adding the condition to the system is achieved as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef
+    name="alluppercase"
+    classname="com.mydomain.AllUpperCaseCondition"
+    classpath="${mydomain.classes}"/&gt;
+      </pre>
+    </blockquote>
+    <p>
+      This condition can now be used wherever a Core Ant condition
+      is used.
+    </p>
+    <blockquote>
+      <pre>
+&lt;condition property="allupper"&gt;
+   &lt;alluppercase value="THIS IS ALL UPPER CASE"/&gt;
+&lt;/condition&gt;
+      </pre>
+    </blockquote>
+    <h3><a name="customselectors">Custom Selectors</a></h3>
+    <p>
+      Custom selectors are datatypes that implement
+      <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+    </p>
+    <p>There is only one method required.
+      <code>public boolean isSelected(File basedir, String filename,
+        File file)</code>.
+      It returns true
+      or false depending on whether the given file should be
+      selected or not.
+    </p>
+    <p>
+      An example of a custom selection that selects filenames ending
+      in ".java" would be:
+    </p>
+    <blockquote>
+      <pre>
+package com.mydomain;
+import java.io.File;
+import org.apache.tools.ant.types.selectors.FileSelector;
+public class JavaSelector implements FileSelector {
+    public boolean isSelected(File b, String filename, File f) {
+       return filename.toLowerCase().endsWith(".java");
+    }
+}
+      </pre>
+    </blockquote>
+    <p>
+      Adding the selector to the system is achieved as follows:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef
+    name="javaselector"
+    classname="com.mydomain.JavaSelector"
+    classpath="${mydomain.classes}"/&gt;
+      </pre>
+    </blockquote>
+        <p>
+      This selector can now be used wherever a Core Ant selector
+      is used, for example:
+    </p>
+    <blockquote>
+      <pre>
+&lt;copy todir="to"&gt;
+   &lt;fileset dir="src"&gt;
+      &lt;javaselector/&gt;
+   &lt;/fileset&gt;
+&lt;/copy&gt;
+      </pre>
+    </blockquote>
+
+      <p>
+        One may use
+        <code>org.apache.tools.ant.types.selectors.BaseSelector</code>,
+        a convenience class that provides reasonable default
+        behaviour.
+        It has some predefined behaviours you can take advantage
+        of. Any time you encounter a problem when setting attributes or
+        adding tags, you can call setError(String errmsg) and the class
+        will know that there is a problem. Then, at the top of your
+        <code>isSelected()</code> method call <code>validate()</code> and
+        a BuildException will be thrown with the contents of your error
+        message. The <code>validate()</code> method also gives you a
+        last chance to check your settings for consistency because it
+        calls <code>verifySettings()</code>. Override this method and
+        call <code>setError()</code> within it if you detect any
+        problems in how your selector is set up.
+    </p>
+    <p>
+      To write custom selector containers one should extend
+      <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+      Implement the
+      <code>public boolean isSelected(File baseDir, String filename, File file)</code>
+      method to do the right thing. Chances are you'll want to iterate
+      over the selectors under you, so use
+      <code>selectorElements()</code> to get an iterator that will do
+      that.
+    </p>
+    <p>
+      For example to create a selector container that will select files
+      if a certain number of contained selectors select, one could write
+      a selector as follows:
+    </p>
+    <blockquote>
+      <pre>
+public class MatchNumberSelectors extends BaseSelectorContainer {
+    private int number = -1;
+    public void setNumber(int number) {
+        this.number = number;
+    }
+    public void verifySettings() {
+        if (number &lt; 0) {
+           throw new BuildException("Number attribute should be set");
+        }
+    }
+    public boolean isSelected(File baseDir, String filename, File file) {
+        validate();
+        int numberSelected = 0;
+        for (Enumeration e = selectorElements(); e.hasNextElement();) {
+            FileSelector s = (FileSelector) e.nextElement();
+            if (s.isSelected(baseDir, filename, file)) {
+                numberSelected++;
+            }
+        }
+        return numberSelected == number;
+    }
+}
+      </pre>
+    </blockquote>
+    <p>
+      To define and use this selector one could do:
+    </p>
+    <blockquote>
+      <pre>
+&lt;typedef name="numberselected"
+         classname="com.mydomain.MatchNumberSelectors"/&gt;
+...
+&lt;fileset dir="${src.path}"&gt;
+   &lt;numberselected number="2"&gt;
+      &lt;contains text="script" casesensitive="no"/&gt;
+      &lt;size value="4" units="Ki" when="more"/&gt;
+      &lt;javaselector/&gt;
+   &lt;/numberselected&gt;
+&lt;/fileset&gt;
+      </pre>
+    </blockquote>
+    <p>
+      <i>The custom selector</i>
+    </p>
+    <p>
+      The custom selector was the pre ant 1.6 way of defining custom selectors.
+      This method is still supported for backward compatibility.
+    </p>
+    <p>You can write your own selectors and use them within the selector
+      containers by specifying them within the <code>&lt;custom&gt;</code> tag.</p>
+
+        <p>To create a new Custom Selector, you have to create a class that
+        implements
+        <code>org.apache.tools.ant.types.selectors.ExtendFileSelector</code>.
+        The easiest way to do that is through the convenience base class
+        <code>org.apache.tools.ant.types.selectors.BaseExtendSelector</code>,
+        which provides all of the methods for supporting
+        <code>&lt;param&gt;</code> tags. First, override the
+        <code>isSelected()</code> method, and optionally the
+        <code>verifySettings()</code> method. If your custom
+        selector requires parameters to be set, you can also override
+        the <code>setParameters()</code> method and interpret the
+        parameters that are passed in any way you like. Several of the
+        core selectors demonstrate how to do that because they can
+        also be used as custom selectors.</p>
+
+
+    <p>Once that is written, you include it in your build file by using
+      the <code>&lt;custom&gt;</code> tag.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">classname</td>
+        <td valign="top">The name of your class that implements
+          <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">classpath</td>
+        <td valign="top">The classpath to use in order to load the
+          custom selector class. If neither this classpath nor the
+          classpathref are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">classpathref</td>
+        <td valign="top">A reference to a classpath previously
+          defined. If neither this reference nor the
+          classpath above are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is how you use <code>&lt;custom&gt;</code> to
+      use your class as a selector:
+    </p>
+
+    <blockquote><pre>
+&lt;fileset dir="${mydir}" includes="**/*"&gt;
+    &lt;custom classname="com.mydomain.MySelector"&gt;
+        &lt;param name="myattribute" value="myvalue"/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+      </pre></blockquote>
+
+
+    <p>The core selectors that can also be used as custom selectors
+      are</p>
+
+    <ul>
+      <li><a href="selectors.html#containsselect">Contains Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.ContainsSelector</code>
+      </li>
+      <li><a href="selectors.html#dateselect">Date Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DateSelector</code>
+      </li>
+      <li><a href="selectors.html#depthselect">Depth Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DepthSelector</code>
+      </li>
+      <li><a href="selectors.html#filenameselect">Filename Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.FilenameSelector</code>
+      </li>
+      <li><a href="selectors.html#sizeselect">Size Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.SizeSelector</code>
+      </li>
+    </ul>
+
+    <p>Here is the example from the Depth Selector section rewritten
+    to use the selector through <code>&lt;custom&gt;</code>.</p>
+
+    <blockquote><pre>
+&lt;fileset dir="${doc.path}" includes="**/*"&gt;
+    &lt;custom classname="org.apache.tools.ant.types.selectors.DepthSelector"&gt;
+        &lt;param name="max" value="1"/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+      </pre></blockquote>
+
+    <p>Selects all files in the base directory and one directory below
+      that.</p>
+
+    <h3><a name="filterreaders">Custom Filter Readers</a></h3>
+    <p>
+      Custom filter readers selectors are datatypes that implement
+      <code>org.apache.tools.ant.types.filters.ChainableReader</code>.
+    </p>
+    <p>There is only one method required.
+      <code>Reader chain(Reader reader)</code>.
+      This returns a reader that filters input from the specified
+      reader.
+    </p>
+    <p>
+      For example a filterreader that removes every second character
+      could be:
+    </p>
+    <blockquote>
+      <pre>
+public class RemoveOddCharacters implements ChainableReader {
+   public Reader chain(Reader reader) {
+      return new BaseFilterReader(reader) {
+          int count = 0;
+          public int read() throws IOException {
+              while (true) {
+                int c = in.read();
+                if (c == -1) {
+                    return c;
+                }
+                count++;
+                if ((count % 2) == 1) {
+                    return c;
+                }
+              }
+          }
+      }
+   }
+}
+      </pre>
+    </blockquote>
+    <p>
+      For line oriented filters it may be easier to extend
+      <code>ChainableFilterReader</code> an inner class of
+      <code>org.apache.tools.ant.filters.TokenFilter</code>.
+    </p>
+    <p>
+      For example a filter that appends the line number could be
+    </p>
+    <blockquote>
+      <pre>
+public class AddLineNumber extends ChainableReaderFilter {
+   private void lineNumber = 0;
+   public String filter(String string) {
+      lineNumber++;
+      return "" + lineNumber + "\t" + string;
+   }
+}
+      </pre>
+    </blockquote>
+
+
+    <hr></hr>
+  </body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/description.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/description.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/description.html	(revision 14989)
@@ -0,0 +1,46 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="description">Description</a></h2>
+<h3>Description</h3>
+<p>Allows for a description of the project to be specified that
+will be included in the output of the <code>ant &#x2011;projecthelp</code>
+command.</p>
+
+<h3>Parameters</h3>
+<p>(none)</p>
+<h3>Examples</h3>
+<pre>  
+&lt;description&gt;
+This buildfile is used to build the Foo subproject within 
+the large, complex Bar project.
+&lt;/description&gt;
+</pre>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/dirset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/dirset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/dirset.html	(revision 14989)
@@ -0,0 +1,127 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>DirSet Type</title>
+</head>
+
+<body>
+
+<h2><a name="dirset">DirSet</a></h2>
+<p>A DirSet is a group of directories. These directories can be found in a
+directory tree starting in a base directory and are matched by
+patterns taken from a number of <a href="patternset.html">PatternSets</a>
+and <a href="selectors.html">Selectors</a>.
+</p>
+<p>PatternSets can be specified as nested
+<code>&lt;patternset&gt;</code> elements. In addition, DirSet holds
+an implicit PatternSet and supports the nested
+<code>&lt;include&gt;</code>, <code>&lt;includesfile&gt;</code>,
+<code>&lt;exclude&gt;</code> and <code>&lt;excludesfile&gt;</code>
+elements of <code>&lt;patternset&gt;</code> directly, as well as
+<code>&lt;patternset&gt;</code>'s attributes.</p>
+<p>Selectors are available as nested elements within the DirSet.
+If any of the selectors within the DirSet do not select the directory, it
+is not considered part of the DirSet. This makes a DirSet
+equivalent to an <code>&lt;and&gt;</code> selector container.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The root of the directory tree of this DirSet.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">A comma- or space-separated list of patterns of directories that
+     must be included; all directories are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">The name of a file; each line of this file is
+      taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">A comma- or space-separated list of patterns of directories that
+     must be excluded; no directories are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">The name of a file; each line of this file is
+      taken to be an exclude pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Specifies whether case-sensitivity should be applied
+     (<code>true</code>|<code>yes</code>|<code>on</code> or
+     <code>false</code>|<code>no</code>|<code>off</code>).</td>
+    <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">followsymlinks</td>
+    <td valign="top">Shall symbolic links be followed? Defaults to
+      true. See <a href="fileset.html#symlink">fileset's documentation</a>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;dirset dir=&quot;${build.dir}&quot;&gt;
+  &lt;include name=&quot;apps/**/classes&quot;/&gt;
+  &lt;exclude name=&quot;apps/**/*Test*&quot;/&gt;
+&lt;/dirset&gt;
+</pre></blockquote>
+<p>Groups all directories named <code>classes</code> found under the
+<code>apps</code> subdirectory of <code>${build.dir}</code>, except those
+that have the text <code>Test</code> in their name.</p>
+<blockquote><pre>
+&lt;dirset dir=&quot;${build.dir}&quot;&gt;
+  &lt;patternset id=&quot;non.test.classes&quot;&gt;
+    &lt;include name=&quot;apps/**/classes&quot;/&gt;
+    &lt;exclude name=&quot;apps/**/*Test*&quot;/&gt;
+  &lt;/patternset&gt;
+&lt;/dirset&gt;
+</pre></blockquote>
+<p>Groups the same directories as the above example, but also establishes
+a PatternSet that can be referenced in other
+<code>&lt;dirset&gt;</code> elements, rooted at a different directory.</p>
+<blockquote><pre>
+&lt;dirset dir=&quot;${debug_build.dir}&quot;&gt;
+  &lt;patternset refid=&quot;non.test.classes&quot;/&gt;
+&lt;/dirset&gt;
+</pre></blockquote>
+<p>Groups all directories in directory <code>${debug_build.dir}</code>,
+using the same patterns as the above example.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/filelist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/filelist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/filelist.html	(revision 14989)
@@ -0,0 +1,120 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FileList Type</title>
+</head>
+
+<body>
+
+<h2><a name="filelist">FileList</a></h2> 
+
+<p>FileLists are explicitly named lists of files.  Whereas FileSets
+act as filters, returning only those files that exist in the file
+system and match specified patterns, FileLists are useful for
+specifying files that may or may not exist.  Multiple files are
+specified as a list of files, relative to the specified directory,
+with no support for wildcard expansion (filenames with wildcards will be
+included in the list unchanged).
+FileLists can appear inside tasks that support this feature or as stand-alone
+types.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The base directory of this FileList.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">files</td>
+    <td valign="top">The list of file names. This is a list of
+    file name separated by whitespace, or by commas.</td>
+    <td valign="top" align="center">
+      Yes, unless there is a nested file element</td>
+  </tr>
+</table>
+  <h4>Nested Element: file</h4>
+  <p>
+    This represents a file name. The nested element allows filenames containing
+    white space and commas.
+  </p>
+  <p><em>Since Ant 1.6.2</em></p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">name</td>
+      <td valign="top">The name of the file.</td>
+      <td valign="top" align="center">Yes</td>
+    </tr>
+</table>  
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;filelist 
+    id=&quot;docfiles&quot; 
+    dir=&quot;${doc.src}&quot;
+    files=&quot;foo.xml,bar.xml&quot;/&gt; 
+</pre></blockquote>
+
+<p>The files <code>${doc.src}/foo.xml</code> and
+<code>${doc.src}/bar.xml</code>.  Note that these files may not (yet)
+actually exist.
+</p>
+
+<blockquote><pre>
+&lt;filelist 
+    id=&quot;docfiles&quot; 
+    dir=&quot;${doc.src}&quot;
+    files=&quot;foo.xml
+           bar.xml&quot;/&gt; 
+</pre></blockquote>
+
+<p>Same files as the example above.</p>
+
+<blockquote><pre>
+&lt;filelist refid=&quot;docfiles&quot;/&gt; 
+</pre></blockquote>
+
+<p>Same files as the example above.</p>
+
+<blockquote><pre>
+&lt;filelist 
+    id=&quot;docfiles&quot; 
+    dir=&quot;${doc.src}&quot;&gt;
+    &lt;file name="foo.xml"/&gt;
+    &lt;file name="bar.xml"/&gt;
+&lt;/filelist&gt;
+</pre></blockquote>
+
+<p>Same files as the example above.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/fileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/fileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/fileset.html	(revision 14989)
@@ -0,0 +1,171 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FileSet Type</title>
+</head>
+
+<body>
+
+<h2><a name="fileset">FileSet</a></h2>
+<p>A FileSet is a group of files. These files can be found in a
+directory tree starting in a base directory and are matched by
+patterns taken from a number of <a
+href="patternset.html">PatternSets</a> and
+<a href="selectors.html">Selectors</a>.
+<p>PatternSets can be specified as nested
+<code>&lt;patternset&gt;</code> elements. In addition, FileSet holds
+an implicit PatternSet and supports the nested
+<code>&lt;include&gt;</code>, <code>&lt;includesfile&gt;</code>,
+<code>&lt;exclude&gt;</code> and <code>&lt;excludesfile&gt;</code>
+elements of PatternSet directly, as well as PatternSet's
+attributes.</p>
+<p>Selectors are available as nested elements within the FileSet.
+If any of the selectors within the FileSet do not select the file, the
+file is not considered part of the FileSet. This makes a FileSet
+equivalent to an <code>&lt;and&gt;</code> selector container.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">the root of the directory tree of this FileSet.</td>
+    <td valign="middle" align="center" rowspan="2">Either dir or file must be specified</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">shortcut for specifying a single-file fileset</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether <a href="../dirtasks.html#defaultexcludes">default excludes</a> should be used or not
+      (<code>yes | no</code>); default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included; all files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an include pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded; no files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an exclude pattern.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Must the include and exclude patterns be treated in a case sensitive way?
+        Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">followsymlinks</td>
+    <td valign="top">Shall symbolic links be followed? Defaults to
+      true. See the note <a href="#symlink">below</a>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p><a name="symlink"><b>Note</b></a>: All files/directories for which
+the canonical path is different from its path are considered symbolic
+links.  On Unix systems this usually means the file really is a
+symbolic link but it may lead to false results on other
+platforms.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;include name=&quot;**/*.java&quot;/&gt;
+  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups all files in directory <code>${server.src}</code> that are Java
+source files and don't have the text <code>Test</code> in their
+name.</p>
+
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;patternset id=&quot;non.test.sources&quot;&gt;
+    &lt;include name=&quot;**/*.java&quot;/&gt;
+    &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+  &lt;/patternset&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups the same files as the above example, but also establishes
+a PatternSet that can be referenced in other
+<code>&lt;fileset&gt;</code> elements, rooted at a different directory.</p>
+
+<blockquote><pre>
+&lt;fileset dir=&quot;${client.src}&quot; &gt;
+  &lt;patternset refid=&quot;non.test.sources&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups all files in directory <code>${client.src}</code>, using the
+same patterns as the above example.</p>
+
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;filename name=&quot;**/*.java&quot;/&gt;
+  &lt;filename name=&quot;**/*Test*&quot; negate=&quot;true&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups the same files as the top example, but using the
+<code>&lt;filename&gt;</code> selector.</p>
+
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&quot; casesensitive=&quot;yes&quot;&gt;
+  &lt;filename name=&quot;**/*.java&quot;/&gt;
+  &lt;not&gt;
+    &lt;filename name=&quot;**/*Test*&quot;/&gt;
+  &lt;/not&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+<p>Groups the same files as the previous example using a combination of the
+<code>&lt;filename&gt;</code> selector and the <code>&lt;not&gt;</code>
+selector container.</p>
+
+<blockquote><pre>
+&lt;fileset dir="src" includes="main/" /&gt;
+</pre></blockquote>
+<p>Selects all files in <i>src/main</i> (e.g. <i>src/main/Foo.java</i> or 
+<i>src/main/application/Bar.java</i>).</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/filterchain.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/filterchain.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/filterchain.html	(revision 14989)
@@ -0,0 +1,1491 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FilterChains and FilterReaders</title>
+</head>
+
+<body>
+
+<h2>FilterChains and FilterReaders</h2>
+Consider the flexibility of Unix pipes.  If you wanted,
+for example, to copy just those lines that contained the
+string blee from the first 10 lines of a text file 'foo'
+(<em>you wouldn't want to filter a binary file</em>)
+to a file 'bar', you would do something like:<p>
+<code>
+cat foo|head -n10|grep blee &gt; bar
+</code><p>
+Ant was not flexible enough.  There was no way for the
+<code>&lt;copy&gt;</code> task to do something similar.  If you wanted
+the <code>&lt;copy&gt;</code> task to get the first 10 lines, you would have
+had to create special attributes:<p>
+<code>
+&lt;copy file=&quot;foo&quot; tofile=&quot;bar&quot; head=&quot;10&quot; contains=&quot;blee&quot;/&gt;
+</code><p>
+The obvious problem thus surfaced: Ant tasks would not be able
+to accommodate such data transformation attributes as they would
+be endless.  The task would also not know in which order these
+attributes were to be interpreted.  That is, must the task execute the
+contains attribute first and then the head attribute or vice-versa?
+What Ant tasks needed was a mechanism to allow pluggable filter (data
+transformer) chains.  Ant would provide a few filters for which there
+have been repeated requests.  Users with special filtering needs
+would be able to easily write their own and plug them in.<p>
+
+The solution was to refactor data transformation oriented
+tasks to support FilterChains.  A FilterChain is a group of
+ordered FilterReaders.  Users can define their own FilterReaders
+by just extending the java.io.FilterReader class.  Such custom
+FilterReaders can be easily plugged in as nested elements of
+<code>&lt;filterchain&gt;</code> by using <code>&lt;filterreader&gt;</code> elements.
+<p>
+Example:
+<blockquote><pre>
+&lt;copy file=&quot;${src.file}&quot; tofile=&quot;${dest.file}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;your.extension.of.java.io.FilterReader&quot;&gt;
+      &lt;param name=&quot;foo&quot; value=&quot;bar&quot;/&gt;
+    &lt;/filterreader&gt;
+    &lt;filterreader classname=&quot;another.extension.of.java.io.FilterReader&quot;&gt;
+      &lt;classpath&gt;
+        &lt;pathelement path="${classpath}"/&gt;
+      &lt;/classpath&gt;
+      &lt;param name=&quot;blah&quot; value=&quot;blee&quot;/&gt;
+      &lt;param type=&quot;abra&quot; value=&quot;cadabra&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+
+Ant provides some built-in filter readers.  These filter readers
+can also be declared using a syntax similar to the above syntax.
+However, they can be declared using some simpler syntax also.<p>
+Example:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+is equivalent to:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.HeadFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+The following built-in tasks support nested <code>&lt;filterchain&gt;</code> elements.<br>
+<a href="../CoreTasks/concat.html">Concat</a>,<br>
+<a href="../CoreTasks/copy.html">Copy</a>,<br>
+<a href="../CoreTasks/loadfile.html">LoadFile</a>,<br>
+<a href="../CoreTasks/loadproperties.html">LoadProperties</a>,<br>
+<a href="../CoreTasks/move.html">Move</a><br><br>
+
+A FilterChain is formed by defining zero or more of the following
+nested elements.<br>
+<a href="#filterreader">FilterReader</a><br>
+<a href="#classconstants">ClassConstants</a><br>
+<a href="#escapeunicode">EscapeUnicode</a><br>
+<a href="#expandproperties">ExpandProperties</a><br>
+<a href="#headfilter">HeadFilter</a><br>
+<a href="#linecontains">LineContains</a><br>
+<a href="#linecontainsregexp">LineContainsRegExp</a><br>
+<a href="#prefixlines">PrefixLines</a><br>
+<a href="#replacetokens">ReplaceTokens</a><br>
+<a href="#stripjavacomments">StripJavaComments</a><br>
+<a href="#striplinebreaks">StripLineBreaks</a><br>
+<a href="#striplinecomments">StripLineComments</a><br>
+<a href="#tabstospaces">TabsToSpaces</a><br>
+<a href="#tailfilter">TailFilter</a><br>
+<a href="#deletecharacters">DeleteCharacters</a><br>
+<a href="#concatfilter">ConcatFilter</a><br>
+<a href="#tokenfilter">TokenFilter</a><br>
+<a href="../CoreTasks/fixcrlf.html">FixCRLF</a><br>
+
+<h3><a name="filterreader">FilterReader</a></h3>
+
+The filterreader element is the generic way to
+define a filter.  User defined filter elements are
+defined in the build file using this.  Please note that
+built in filter readers can also be defined using this
+syntax.
+
+A FilterReader element must be supplied with a class name as
+an attribute value.  The class resolved by this name must
+extend java.io.FilterReader.  If the custom filter reader
+needs to be parameterized, it must implement
+org.apache.tools.type.Parameterizable.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>classname</td>
+    <td vAlign=top>The class name of the filter reader.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<p>
+<h4>Nested Elements:</h4>
+<code>&lt;filterreader&gt;</code> supports <code>&lt;classpath&gt;</code> and <code>&lt;param&gt;</code>
+as nested elements.  Each <code>&lt;param&gt;</code> element may take in the following
+attributes - name, type and value.
+<p>
+The following FilterReaders are supplied with the default
+distribution.
+
+<h3><a name="classconstants">ClassConstants</a></h3>
+<p>
+  This filters basic constants defined in a Java Class,
+  and outputs them in lines composed of the format <i>name</i>=<i>value</i>.
+  This filter uses the <em>bcel</em> library to understand the Java Class file.
+  See <a href="../install.html#librarydependencies">Library Dependencies</a>.
+<p>
+  <p>
+    <em><b>Important:</b></em>
+    This filter is different from most of the other filters.
+    Most of the filters operate on a sequence of characters.
+    This filter operates on the sequence of bytes that makes up
+    a class. However the bytes arrive to the filter as a sequence
+    of characters. This means that one must be careful on the
+    choice of character encoding to use. Most encoding lose information
+    on conversion from an arbitary sequence of bytes to characters
+    and back again to bytes. In particular the usual default
+    character encodings (CP152 and UTF-8) do.
+    For this reason, <em>since Ant 1.7</em>, the character
+    encoding <b>ISO-8859-1</b> is used to convert from characters back to
+    bytes, so one <b>has</b> to use this encoding for reading the java
+    class file.
+<h4>Example:</h4>
+
+This loads the basic constants defined in a Java class as Ant properties.
+
+<blockquote><pre>
+&lt;loadproperties srcfile="foo.class" encoding="ISO-8859-1"&gt;
+  &lt;filterchain&gt;
+    &lt;classconstants/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</pre></blockquote>
+
+This loads the constants from a Java class file as Ant properties,
+prepending the names with a prefix.
+
+    <blockquote><pre>
+&lt;loadproperties srcfile="build/classes/org/acme/bar.class"
+                encoding="ISO-8859-1"&gt;
+  &lt;filterchain&gt;
+    &lt;classconstants/&gt;
+    &lt;prefixlines prefix="ini."/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</pre></blockquote>
+<h3><a name="escapeunicode">EscapeUnicode</a></h3>
+<p>
+This filter converts its input by changing all non US-ASCII characters
+into their equivalent unicode escape backslash u plus 4 digits.</p>
+
+<p><em>since Ant 1.6</em></p>
+
+<h4>Example:</h4>
+
+This loads the basic constants defined in a Java class as Ant properties.
+<blockquote><pre>
+&lt;loadproperties srcfile=&quot;non_ascii_property.properties&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.EscapeUnicode&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadproperties srcfile=&quot;non_ascii_property.properties&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;escapeunicode/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadproperties&gt;
+</pre></blockquote>
+
+<h3><a name="expandproperties">ExpandProperties</a></h3>
+<p>
+If the data contains data that represents Ant
+properties (of the form ${...}), that is substituted
+with the property's actual value.
+<p>
+<h4>Example:</h4>
+
+This results in the property modifiedmessage holding the value
+&quot;All these moments will be lost in time, like teardrops in the rain&quot;
+<blockquote><pre>
+&lt;echo
+  message=&quot;All these moments will be lost in time, like teardrops in the ${weather}&quot;
+  file=&quot;loadfile1.tmp&quot;
+  /&gt;
+&lt;property name=&quot;weather&quot; value=&quot;rain&quot;/&gt;
+&lt;loadfile property=&quot;modifiedmessage&quot; srcFile=&quot;loadfile1.tmp&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.ExpandProperties&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;echo
+  message=&quot;All these moments will be lost in time, like teardrops in the ${weather}&quot;
+  file=&quot;loadfile1.tmp&quot;
+  /&gt;
+&lt;property name=&quot;weather&quot; value=&quot;rain&quot;/&gt;
+&lt;loadfile property=&quot;modifiedmessage&quot; srcFile=&quot;loadfile1.tmp&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;expandproperties/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="headfilter">HeadFilter</a></h3>
+
+This filter reads the first few lines from the data supplied to it.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>lines</td>
+    <td vAlign=top align="center">Number of lines to be read.
+    Defaults to &quot;10&quot; <br> A negative value means that all lines are
+    passed (useful with <i>skip</i>)</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>skip</td>
+    <td vAlign=top align="center">Number of lines to be skipped (from the beginning).
+    Defaults to &quot;0&quot;</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+<h4>Example:</h4>
+
+This stores the first 15 lines of the supplied data in the property src.file.head
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.HeadFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+This stores the first 15 lines, skipping the first 2 lines, of the supplied data
+in the property src.file.head. (Means: lines 3-17)
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot; skip=&quot;2&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+See the testcases for more examples (<i>src\etc\testcases\filters\head-tail.xml</i> in the
+source distribution).
+
+<h3><a name="linecontains">LineContains</a></h3>
+
+This filter includes only those lines that contain all the user-specified
+strings.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Type</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>contains</td>
+    <td vAlign=top align="center">Substring to be searched for.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>negate</td>
+    <td vAlign=top align="center">Whether to select
+      <i>non-</i>matching lines only. <b>Since Ant 1.7</b></td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+<h4>Example:</h4>
+
+This will include only those lines that contain <code>foo</code> and
+<code>bar</code>.
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContains&quot;&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;foo&quot;/&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;bar&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;linecontains&gt;
+  &lt;contains value=&quot;foo&quot;/&gt;
+  &lt;contains value=&quot;bar&quot;/&gt;
+&lt;/linecontains&gt;
+</pre></blockquote>
+
+Negation:
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContains&quot;&gt;
+  &lt;param type=&quot;negate&quot; value=&quot;true&quot;/&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;foo&quot;/&gt;
+  &lt;param type=&quot;contains&quot; value=&quot;bar&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+<i>or</i>
+<blockquote><pre>
+&lt;linecontains negate=&quot;true&quot;&gt;
+  &lt;contains value=&quot;foo&quot;/&gt;
+  &lt;contains value=&quot;bar&quot;/&gt;
+&lt;/linecontains&gt;
+</pre></blockquote>
+
+<h3><a name="linecontainsregexp">LineContainsRegExp</a></h3>
+
+Filter which includes only those lines that contain the user-specified
+regular expression matching strings.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Type</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>regexp</td>
+    <td vAlign=top align="center">Regular expression to be searched for.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>negate</td>
+    <td vAlign=top align="center">Whether to select
+      <i>non-</i>matching lines only. <b>Since Ant 1.7</b></td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+
+See <a href="regexp.html">Regexp Type</a> for the description of the nested element regexp and of
+the choice of regular expression implementation.
+<h4>Example:</h4>
+
+This will fetch all those lines that contain the pattern <code>foo</code>
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContainsRegExp&quot;&gt;
+  &lt;param type=&quot;regexp&quot; value=&quot;foo*&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;linecontainsregexp&gt;
+  &lt;regexp pattern=&quot;foo*&quot;/&gt;
+&lt;/linecontainsregexp&gt;
+</pre></blockquote>
+
+Negation:
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.LineContainsRegExp&quot;&gt;
+  &lt;param type=&quot;negate&quot; value=&quot;true&quot;/&gt;
+  &lt;param type=&quot;regexp&quot; value=&quot;foo*&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+<i>or</i>
+<blockquote><pre>
+&lt;linecontainsregexp negate=&quot;true&quot;&gt;
+  &lt;regexp pattern=&quot;foo*&quot;/&gt;
+&lt;/linecontainsregexp&gt;
+</pre></blockquote>
+
+<h3><a name="prefixlines">PrefixLines</a></h3>
+
+Attaches a prefix to every line.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>prefix</td>
+    <td vAlign=top align="center">Prefix to be attached to lines.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+<p>
+<h4>Example:</h4>
+
+This will attach the prefix <code>Foo</code> to all lines.
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.PrefixLines&quot;&gt;
+  &lt;param name=&quot;prefix&quot; value=&quot;Foo&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;prefixlines prefix=&quot;Foo&quot;/&gt;
+</pre></blockquote>
+
+<h3><a name="replacetokens">ReplaceTokens</a></h3>
+
+This filter reader replaces all strings that are
+sandwiched between begintoken and endtoken with
+user defined values.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Type</b></td>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>tokenchar</td>
+    <td vAlign=top>begintoken</td>
+    <td vAlign=top>Character marking the
+    beginning of a token.  Defaults to @</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>tokenchar</td>
+    <td vAlign=top>endtoken</td>
+    <td vAlign=top>Character marking the
+    end of a token.  Defaults to @</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>token</td>
+    <td vAlign=top>User defined String.</td>
+    <td vAlign=top>User defined search String.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>propertiesfile</td>
+    <td vAlign=top>Not applicable.</td>
+    <td vAlign=top>Properties file to take tokens from.</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+
+<h4>Example:</h4>
+
+This replaces occurrences of the string &#64;DATE&#64; in the data
+with today's date and stores it in the property ${src.file.replaced}
+<blockquote><pre>
+&lt;tstamp/&gt;
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.replaced}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.ReplaceTokens&quot;&gt;
+      &lt;param type=&quot;token&quot; name=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;tstamp/&gt;
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.replaced}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;replacetokens&gt;
+      &lt;token key=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+    &lt;/replacetokens&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+This will treat each properties file entry in sample.properties as a token/key pair :
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.replaced}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.ReplaceTokens&quot;&gt;
+      &lt;param type=&quot;propertiesfile&quot; value=&quot;sample.properties&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+&lt;/filterchain&gt;
+</pre></blockquote>
+
+<h3><a name="stripjavacomments">StripJavaComments</a></h3>
+
+This filter reader strips away comments from the data,
+using Java syntax guidelines.  This filter does not
+take in any parameters.
+<p>
+<h4>Example:</h4>
+
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${java.src.file}&quot; property=&quot;${java.src.file.nocomments}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripJavaComments&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${java.src.file}&quot; property=&quot;${java.src.file.nocomments}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;stripjavacomments/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="striplinebreaks">StripLineBreaks</a></h3>
+
+This filter reader strips away specific characters
+from the data supplied to it.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>linebreaks</td>
+    <td vAlign=top align="center">Characters that are to
+    be stripped out.  Defaults to &quot;\r\n&quot;</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+<h4>Examples:</h4>
+
+This strips the '\r' and '\n' characters.
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.contents}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripLineBreaks&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.contents}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;striplinebreaks/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+This treats the '(' and ')' characters as line break characters and
+strips them.
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.contents}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripLineBreaks&quot;&gt;
+      &lt;param name=&quot;linebreaks&quot; value=&quot;()&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="striplinecomments">StripLineComments</a></h3>
+
+This filter removes all those lines that begin with strings
+that represent comments as specified by the user.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Type</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>comment</td>
+    <td vAlign=top align="center">Strings that identify a line as a comment
+    when they appear at the start of the line.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+<p>
+<h4>Examples:</h4>
+
+This removes all lines that begin with #, --, REM, rem and //
+<blockquote><pre>
+&lt;filterreader classname=&quot;org.apache.tools.ant.filters.StripLineComments&quot;&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;#&quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;--&quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;REM &quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;rem &quot;/&gt;
+  &lt;param type=&quot;comment&quot; value=&quot;//&quot;/&gt;
+&lt;/filterreader&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;striplinecomments&gt;
+  &lt;comment value=&quot;#&quot;/&gt;
+  &lt;comment value=&quot;--&quot;/&gt;
+  &lt;comment value=&quot;REM &quot;/&gt;
+  &lt;comment value=&quot;rem &quot;/&gt;
+  &lt;comment value=&quot;//&quot;/&gt;
+&lt;/striplinecomments&gt;
+</pre></blockquote>
+
+<h3><a name="tabstospaces">TabsToSpaces</a></h3>
+
+This filter replaces tabs with spaces
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>tablength</td>
+    <td vAlign=top align="center">Defaults to &quot;8&quot;</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+<h4>Examples:</h4>
+
+This replaces tabs in ${src.file} with spaces.
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.notab}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.TabsToSpaces&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.notab}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;tabstospaces/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="tailfilter">TailFilter</a></h3>
+
+This filter reads the last few lines from the data supplied to it.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>lines</td>
+    <td vAlign=top align="center">Number of lines to be read.
+    Defaults to &quot;10&quot; <br> A negative value means that all lines are
+    passed (useful with <i>skip</i>)</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>skip</td>
+    <td vAlign=top align="center">Number of lines to be skipped (from the end).
+    Defaults to &quot;0&quot; </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+
+<h4>Background:</h4>
+With HeadFilter and TailFilter you can extract each part of a text file you want.
+This graphic shows the dependencies:
+
+<table cellSpacing=0 cellPadding=2 border=1>
+<tr>
+ <th> Content </th>
+ <th></th>
+ <th></th>
+ <th></th>
+ <th> Filter </th>
+</tr>
+<tr>
+ <td> Line 1 </td>
+ <td rowspan="2" bgcolor="#C0C0C0">&nbsp;</td>
+ <td rowspan="9" bgcolor="#FF00FF">&nbsp;</td>
+ <td rowspan="4">&nbsp;</td>
+ <td rowspan="11">
+    <table>
+    <tr>
+     <td bgcolor="#C0C0C0">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;headfilter lines="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    <tr>
+     <td bgcolor="#FF00FF">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;tailfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    <tr>
+     <td bgcolor="#008000">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;headfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    <tr>
+     <td bgcolor="#0000FF">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;headfilter lines="-1" skip="2"/&gt;
+    &lt;tailfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    <tr>
+     <td bgcolor="#00FF00">&nbsp;</td>
+     <td><pre>&lt;filterchain&gt;
+    &lt;tailfilter lines="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+    </tr>
+    </table>
+ </td>
+</tr>
+<tr>
+ <td> Line 2 </td>
+</tr>
+<tr>
+ <td> Line 3 </td>
+ <td rowspan="9" bgcolor="#008000">&nbsp;</td>
+</tr>
+<tr>
+ <td> Line 4 </td>
+</tr>
+<tr>
+ <td> Line 5 </td>
+ <td rowspan="3" bgcolor="#0000FF">&nbsp;</td>
+</tr>
+<tr>
+ <td> Lines ... </td>
+</tr>
+<tr>
+ <td> Line 95 </td>
+</tr>
+<tr>
+ <td> Line 96 </td>
+ <td rowspan="4">&nbsp;</td>
+</tr>
+<tr>
+ <td> Line 97 </td>
+</tr>
+<tr>
+ <td> Line 98 </td>
+ <td rowspan="2" bgcolor="#00FF00">&nbsp;</td>
+</tr>
+<tr>
+ <td> Line 99 </td>
+</tr>
+</table>
+
+
+
+<h4>Examples:</h4>
+
+This stores the last 15 lines of the supplied data in the property ${src.file.tail}
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.tail}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.TailFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.tail}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;tailfilter lines=&quot;15&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+
+This stores the last 5 lines of the first 15 lines of the supplied
+data in the property ${src.file.mid}
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.mid}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.HeadFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;15&quot;/&gt;
+    &lt;/filterreader&gt;
+    &lt;filterreader classname=&quot;org.apache.tools.ant.filters.TailFilter&quot;&gt;
+      &lt;param name=&quot;lines&quot; value=&quot;5&quot;/&gt;
+    &lt;/filterreader&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+Convenience method:
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;${src.file.mid}&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;headfilter lines=&quot;15&quot;/&gt;
+    &lt;tailfilter lines=&quot;5&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+
+This stores the last 10 lines, skipping the last 2 lines, of the supplied data
+in the property src.file.head. (Means: if supplied data contains 60 lines,
+lines 49-58 are extracted)
+<blockquote><pre>
+&lt;loadfile srcfile=&quot;${src.file}&quot; property=&quot;src.file.head&quot;&gt;
+  &lt;filterchain&gt;
+    &lt;tailfilter lines=&quot;10&quot; skip=&quot;2&quot;/&gt;
+  &lt;/filterchain&gt;
+&lt;/loadfile&gt;
+</pre></blockquote>
+
+<h3><a name="deletecharacters">DeleteCharacters</a></h3>
+
+  <p>This filter deletes specified characters.</p>
+  <p><em>since Ant 1.6</em></p>
+  <p>This filter is only available in the convenience form.</p>
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>chars</td>
+    <td vAlign=top>
+      The characters to delete. This attribute is
+      <a href="#backslash">backslash enabled</a>.
+    </td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+<p>
+<h4>Examples:</h4>
+
+Delete tabs and returns from the data.
+<blockquote><pre>
+&lt;deletecharacters chars="\t\r"/&gt;
+</pre></blockquote>
+
+<h3><a name="concatfilter">ConcatFilter</a></h3>
+  <p>This filter prepends or appends the content file to the filtered files.</p>
+  <p><em>since Ant 1.6</em></p>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Parameter Name</b></td>
+    <td vAlign=top><b>Parameter Value</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>prepend</td>
+    <td vAlign=top>
+      The name of the file which content should be prepended to the file.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>append</td>
+    <td vAlign=top>
+      The name of the file which content should be appended to the file.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+
+<h4>Examples:</h4>
+
+Do nothing:
+<blockquote><pre>
+&lt;filterchain&gt;
+    &lt;concatfilter/&gt;
+&lt;/filterchain&gt;
+</pre></blockquote>
+
+Adds a license text before each java source:
+<blockquote><pre>
+&lt;filterchain&gt;
+    &lt;concatfilter prepend="apache-license-java.txt"/&gt;
+&lt;/filterchain&gt;
+</pre></blockquote>
+
+
+
+<h3><a name="tokenfilter">TokenFilter</a></h3>
+This filter tokenizes the inputstream into strings and passes these
+strings to filters of strings. Unlike the other filterreaders, this does
+not support params, only convenience methods are implemented.
+The tokenizer and the string filters are defined by nested elements.
+<p><em>since Ant 1.6</em></p>
+<p>
+Only one tokenizer element may be used, the LineTokenizer is the
+default if none are specified.  A tokenizer
+splits the input into token strings and trailing delimiter strings.
+<p>
+There may be zero or more string filters. A string filter processes
+a token and either returns a string or a null.
+It the string is not null it is passed to the next filter. This
+proceeds until all the filters are called.
+If a string is returned after all the filters, the string is
+outputs with its associated token delimitier
+(if one is present).
+The trailing delimiter may be overridden by the <i>delimOutput</i>
+attribute.
+<p>
+<a name="backslash"><em>blackslash interpretation</em></a>
+A number of attributes (including <i>delimOutput</i>) interpret
+backslash escapes. The following are understood: \n, \r, \f, \t
+and \\.
+
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>delimOutput</td>
+    <td vAlign=top>
+     This overrides the tokendelimiter
+        returned by the tokenizer if it is not empty. This
+     attribute is backslash enabled.
+</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<p>
+
+    The following tokenizers are provided by the default distribution.
+    <p>
+        <a href="#linetokenizer">LineTokenizer</a><br>
+        <a href="#filetokenizer">FileTokenizer</a><br>
+        <a href="#stringtokenizer">StringTokenizer</a><br>
+    </p>
+
+    The following string filters are provided by the default distribution.
+    <p>
+        <a href="#replacestring">ReplaceString</a><br>
+        <a href="#containsstring">ContainsString</a><br>
+        <a href="#replaceregex">ReplaceRegex</a><br>
+        <a href="#containsregex">ContainsRegex</a><br>
+        <a href="#trim">Trim</a><br>
+        <a href="#ignoreblank">IgnoreBlank</a><br>
+        <a href="#filterdeletecharacters">DeleteCharacters</a><br>
+    </p>
+
+    The following string filters are provided by the optional distribution.
+    <p>
+        <a href="#scriptfilter">ScriptFilter</a><br>
+    </p>
+
+Some of the filters may be used directly within a filter chain. In this
+case a tokenfilter is created implicitly. An extra attribute "byline"
+is added to the filter to specify whether to use a linetokenizer
+(byline="true") or a filetokenizer (byline="false"). The default
+is "true".
+<p>
+
+<p><b><em><a name="linetokenizer">LineTokenizer</a></em></b></p>
+This tokenizer splits the input into lines.
+The tokenizer delimits lines
+by "\r", "\n" or "\r\n".
+This is the default tokenizer.
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>includeDelims</td>
+    <td vAlign=top>
+      Include the line endings in the token.
+      Default is false.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<h4>Examples:</h4>
+
+Convert input current line endings to unix style line endings.
+<blockquote><pre>
+&lt;tokenfilter delimoutput=&quot;\n&quot;/&gt;
+</pre></blockquote>
+
+
+Remove blank lines.
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;ignoreblank/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="filetokenizer">FileTokenizer</a></em></b></p>
+This tokenizer treats <b>all</b> the input as a token. So be
+careful not to use this on very large input.
+<h4>Examples:</h4>
+
+Replace the first occurrence of package with //package.
+<blockquote><pre>
+&lt;tokenfilter&gt;
+      &lt;filetokenizer/&gt;
+      &lt;replaceregex pattern="([\n\r]+[ \t]*|^[ \t]*)package"
+                    flags="s"
+                    replace="\1//package"/&gt;
+&lt;/tokenfilter&gt;
+</pre></blockquote>
+
+<p><b><em><a name="stringtokenizer">StringTokenizer</a></em></b></p>
+This tokenizer is based on java.util.StringTokenizer.
+It splits up the input into strings separated by white space, or
+by a specified list of delimiting characters.
+If the stream starts with delimiter characters, the first
+token will be the empty string (unless the <i>delimsaretokens</i>
+attribute is used).
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>delims</td>
+    <td vAlign=top>The delimiter characters. White space
+      is used if this is not set. (White space is defined
+      in this case by java.lang.Character.isWhitespace()).
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">delimsaretokens</td>
+    <td valign="top">If this is true,
+      each delimiter character is returned as a token.
+      Default is false.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressdelims</td>
+    <td valign="top">
+      If this is true, delimiters are not returned.
+      Default is false.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>includeDelims</td>
+    <td vAlign=top>
+      Include the delimiters in the token.
+      Default is false.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Surround each non space token with a "[]".
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;stringtokenizer/&gt;
+    &lt;replaceregex pattern="(.+)" replace="[\1]"/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="replacestring">ReplaceString</a></em></b></p>
+This is a simple filter to replace strings.
+This filter may be used directly within a filterchain.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>from</td>
+    <td vAlign=top>The string that must be replaced.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">to</td>
+    <td valign="top">The new value for the replaced string. When omitted
+      an empty string is used.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Replace "sun" with "moon".
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;replacestring from="sun" to="moon"/&gt;
+&lt;/tokenfilter&gt;
+</pre></blockquote>
+
+<p><b><em><a name="containsstring">ContainsString</a></em></b></p>
+This is a simple filter to filter tokens that contains
+a specified string.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>contains</td>
+    <td vAlign=top>The string that the token must contain.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Include only lines that contain "foo";
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;containsstring contains="foo"/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="replaceregex">ReplaceRegex</a></em></b></p>
+This string filter replaces regular expressions.
+This filter may be used directly within a filterchain.
+<p>
+ See <a href="regexp.html#implementation">Regexp Type</a>
+concerning the choice of the implementation.
+</p>
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>pattern</td>
+    <td vAlign=top>The regular expression pattern to match in
+      the token.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>replace</td>
+    <td vAlign=top>The substitution pattern to replace the matched
+      regular expression. When omitted an empty string is used.</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>flags</td>
+    <td vAlign=top>See
+<a href="../OptionalTasks/replaceregexp.html">ReplaceRegexp</a>
+for an explanation of regex flags.</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+<h4>Examples:</h4>
+
+Replace all occurrences of "hello" with "world", ignoring case.
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;replaceregex pattern="hello" replace="world" flags="gi"/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="containsregex">ContainsRegex</a></em></b></p>
+This filters strings that match regular expressions.
+The filter may optionally replace the matched regular expression.
+This filter may be used directly within a filterchain.
+<p>
+See
+<a href="regexp.html#implementation">Regexp Type</a>
+concerning the choice of regular expression implementation.
+</p>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>pattern</td>
+    <td vAlign=top>The regular expression pattern to match in
+      the token.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>replace</td>
+    <td vAlign=top>The substitution pattern to replace the matched
+      regular expression. When omitted the orignal token is returned.
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>flags</td>
+    <td vAlign=top>See
+<a href="../OptionalTasks/replaceregexp.html">ReplaceRegexp</a>
+for an explanation of regex flags.</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Filter lines that contain "hello" or "world", ignoring case.
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;containsregex pattern="(hello|world)" flags="i"/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+This example replaces lines like "SUITE(TestSuite, bits);" with
+"void register_bits();" and removes other lines.
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;containsregex
+        pattern="^ *SUITE\(.*,\s*(.*)\s*\).*"
+        replace="void register_\1();"/&gt;
+&lt;/tokenfilter&gt;
+</pre></blockquote>
+
+<p><b><em><a name="trim">Trim</a></em></b></p>
+This filter trims whitespace from the start and end of
+tokens.
+This filter may be used directly within a filterchain.
+<p><b><em><a name="ignoreblank">IgnoreBlank</a></em></b></p>
+This filter removes empty tokens.
+This filter may be used directly within a filterchain.
+<p><b><em><a name="filterdeletecharacters">DeleteCharacters</a></em></b></p>
+This filter deletes specified characters from tokens.
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>chars</td>
+    <td vAlign=top>The characters to delete. This attribute
+      is backslash enabled.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>Examples:</h4>
+
+Delete tabs from lines, trim the lines and removes empty lines.
+
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;deletecharacters chars="\t"/&gt;
+    &lt;trim/&gt;
+    &lt;ignoreblank/&gt;
+&lt;/tokenfilter&gt;
+
+</pre></blockquote>
+
+<p><b><em><a name="scriptfilter">ScriptFilter</a></em></b></p>
+This is an optional filter that executes a script in a
+<a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+  or
+  <a href="https://scripting.dev.java.net">JSR 223</a>
+supported language.</p>
+See the <a href="../OptionalTasks/script.html">Script</a> task for
+an explanation of scripts and dependencies.
+</p>
+<p>
+The script is provided with an object <i>self</i> that has
+getToken() and setToken(String) methods.
+The getToken() method returns the current token. The setToken(String)
+method replaces the current token.
+</p>
+
+This filter may be used directly within a filterchain.<p>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>language</td>
+    <td vAlign=top> The programming language the script is written in.
+Must be a supported Apache BSF or JSR 223 language</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manager</td>
+    <td valign="top">
+      The script engine manager to use.
+      See the <a href="../OptionalTasks/script.html">script</a> task
+      for using this attribute.
+    </td>
+    <td valign="top" align="center">No - default is "auto"</td>
+  </tr>
+  <tr>
+    <td vAlign=top>src</td>
+    <td vAlign=top>The location of the script as a file, if not inline
+    </td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">setbeans</td>
+    <td valign="top">whether to have all properties, references and targets as
+      global variables in the script.</td>
+    <td valign="top" align="center">No, default is "true".</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">
+      The classpath to pass into the script.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+       <a href="../using.html#references">reference</a> to a path defined elsewhere.
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+  <p>
+    This filter can take a nested &lt;classpath&gt; element.
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    on how to use this element.
+  </p>
+<h4>Examples:</h4>
+
+Convert to uppercase:
+<blockquote><pre>
+&lt;tokenfilter&gt;
+    &lt;scriptfilter language="javascript"&gt;
+        self.setToken(self.getToken().toUpperCase());
+    &lt;/scriptfilter&gt;
+&lt;/tokenfilter&gt;
+</pre></blockquote>
+
+Remove lines containing the string "bad" while
+copying text files:
+  <blockquote>
+    <pre>
+&lt;copy todir="dist"&gt;
+  &lt;fileset dir="src" includes="**/*.txt"/&gt;
+  &lt;filterchain&gt;
+    &lt;scriptfilter language="beanshell"&gt;
+        if (self.getToken().indexOf("bad") != -1) {
+            self.setToken(null);
+        }
+    &lt;/scriptfilter&gt;
+  &lt;/filterchain&gt;
+&lt;/copy&gt;
+    </pre>
+  </blockquote>
+
+<h4>Custom tokenizers and string filters</h4>
+
+Custom string filters and tokenizers may be plugged in by
+extending the interfaces org.apache.tools.ant.filters.TokenFilter.Filter
+and org.apache.tools.ant.util.Tokenizer respectly.
+
+They are defined the build file using <code>&lt;typedef/&gt;</code>. For
+example a string filter that capitalizes words may be declared as:
+<blockquote><pre>
+package my.customant;
+import org.apache.tools.ant.filters.TokenFilter;
+
+public class Capitalize
+    implements TokenFilter.Filter
+{
+    public String filter(String token) {
+        if (token.length() == 0)
+            return token;
+        return token.substring(0, 1).toUpperCase() +
+                token.substring(1);
+   }
+}
+</pre></blockquote>
+
+This may be used as follows:
+<blockquote><pre>
+  &lt;typedef type="capitalize" classname="my.customant.Capitalize"
+           classpath="my.customant.path"/&gt;
+  &lt;copy file="input" tofile="output"&gt;
+    &lt;filterchain&gt;
+      &lt;tokenfilter&gt;
+        &lt;stringtokenizer/&gt;
+        &lt;capitalize/&gt;
+      &lt;/tokenfilter&gt;
+    &lt;/filterchain&gt;
+  &lt;/copy&gt;
+</pre></blockquote>
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/filterset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/filterset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/filterset.html	(revision 14989)
@@ -0,0 +1,181 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FilterSet Type</title>
+</head>
+
+<body>
+<h2><a name="filterset">FilterSet</a></h2>
+
+<p>FilterSets are groups of filters. Filters can be defined as token-value
+pairs 
+or be read in from a file. FilterSets can appear inside tasks that support this 
+feature or at the same level as <code>&lt;target&gt;</code> - i.e., as
+children of 
+<code>&lt;project&gt;</code>.</p>
+
+<p>FilterSets support the <code>id</code> and <code>refid</code>
+attributes.  You can define a FilterSet with an <code>id</code>
+attribute and then refer to that definition from another FilterSet
+with a <code>refid</code> attribute.  It is also possible to nest
+filtersets into filtersets to get a set union of the contained
+filters.</p>
+
+<p>In addition, FilterSets can specify
+<code>begintoken</code> and/or 
+<code>endtoken</code> attributes to define what to match.</p>
+<p>Filtersets are used for doing 
+replacements in tasks such as <code>&lt;copy&gt;</code>, etc.</p>
+
+<p>
+<strong>Note: </strong>When a filterset is used in an operation, the files are 
+processed in text mode and the filters applied line by line. This means that
+the copy operations will typically corrupt binary files. When applying filters
+you should ensure that the set of files being filtered are all text files.
+</p>
+
+<h2>Filterset</h2>
+
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top><b>Default</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>begintoken</td>
+    <td vAlign=top>The string marking the beginning of a token (eg.,
+      <code>&#64;DATE&#64;</code>).</td>
+    <td vAlign=top>@</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>endtoken</td>
+    <td vAlign=top>The string marking the end of a token (eg.,
+      <code>&#64;DATE&#64;</code>).</td>
+    <td vAlign=top>@</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>filtersfile</td>
+    <td vAlign=top>Specify a single filtersfile.</td>
+    <td vAlign=top><i>none</i></td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>recurse</td>
+    <td vAlign=top>Indicates whether the replacement text of tokens
+      should be searched for more tokens. <b>Since Ant 1.6.3</b></td>
+    <td vAlign=top><i>true</i></td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+  <tr>
+    <td vAlign=top>onmissingfiltersfile</td>
+    <td vAlign=top>Indicate behavior when a nonexistent <i>filtersfile</i>
+      is specified.  One of "fail", "warn", "ignore". <b>Since Ant 1.7</b></td>
+    <td vAlign=top>"fail"</td>
+    <td vAlign=top align="center">No</td>
+  </tr>
+</table>
+
+<h2>Filter</h2>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>token</td>
+    <td vAlign=top>The token to replace (eg., <code>&#64;DATE&#64;</code>)</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+  <tr>
+    <td vAlign=top>value</td>
+    <td vAlign=top>The value to replace it with
+     (eg., <code>Thursday, April 26, 2001</code>).</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<h2>Filtersfile</h2>
+<table cellSpacing=0 cellPadding=2 border=1>
+  <tr>
+    <td vAlign=top><b>Attribute</b></td>
+    <td vAlign=top><b>Description</b></td>
+    <td vAlign=top align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td vAlign=top>file</td>
+    <td vAlign=top>A properties file of 
+      name-value pairs from which to load the tokens.</td>
+    <td vAlign=top align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<p>You are copying the <code>version.txt</code> file to the <code>dist</code>
+directory from the <code>build</code> directory 
+but wish to replace the token <code>&#64;DATE&#64;</code> with today's date.</p>
+<blockquote><pre>
+&lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
+  &lt;filterset&gt;
+    &lt;filter token=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+  &lt;/filterset&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+
+<p>You are copying the <code>version.txt</code> file to the <code>dist</code>
+directory from the build directory 
+but wish to replace the token <code>%DATE*</code> with today's date.</p>
+<blockquote><pre>
+&lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
+  &lt;filterset begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
+    &lt;filter token=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+  &lt;/filterset&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+
+<p>Copy all the docs but change all dates and appropriate notices as stored in a file.</p>
+<blockquote><pre>
+&lt;copy toDir=&quot;${dist.dir}/docs&quot;&gt;
+  &lt;fileset dir=&quot;${build.dir}/docs&quot;&gt;
+    &lt;include name=&quot;**/*.html&quot;&gt;
+  &lt;/fileset&gt;
+  &lt;filterset begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
+    &lt;filtersfile file=&quot;${user.dir}/dist.properties&quot;/&gt;
+  &lt;/filterset&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+
+<p>Define a FilterSet and reference it later.</p>
+<blockquote><pre>
+&lt;filterset id=&quot;myFilterSet&quot; begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
+  &lt;filter token=&quot;DATE&quot; value=&quot;${TODAY}&quot;/&gt;
+&lt;/filterset&gt;
+
+&lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
+  &lt;filterset refid=&quot;myFilterSet&quot;/&gt;
+&lt;/copy&gt;
+</pre></blockquote>
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/mapper.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/mapper.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/mapper.html	(revision 14989)
@@ -0,0 +1,840 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Mapper Type</title>
+</head>
+
+<body>
+
+<h2><a name="mapper">Mapping File Names</a></h2>
+<p>Some tasks take source files and create target files. Depending on
+the task, it may be quite obvious which name a target file will have
+(using <a href="../CoreTasks/javac.html">javac</a>, you know there will be
+<code>.class</code> files for your <code>.java</code> files) - in
+other cases you may want to specify the target files, either to help
+Ant or to get an extra bit of functionality.</p>
+<p>While source files are usually specified as <a
+href="fileset.html">fileset</a>s, you don't specify target files directly -
+instead, you tell Ant how to find the target file(s) for one source file. An
+instance of <code>org.apache.tools.ant.util.FileNameMapper</code> is
+responsible for this. It constructs target file names based on rules
+that can be parameterized with <code>from</code> and <code>to</code>
+attributes - the exact meaning of which is implementation-dependent.</p>
+<p>These instances are defined in <code>&lt;mapper&gt;</code> elements
+with the following attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">specifies one of the built-in implementations.</td>
+    <td rowspan="2" align="center" valign="middle">Exactly one of these</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">specifies the implementation by class name.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up
+      <code>classname</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use, given as <a
+      href="../using.html#references">reference</a> to a path defined elsewhere.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">the <code>from</code> attribute for the given
+      implementation.</td>
+    <td align="center" valign="top">Depends on implementation.</td>
+  </tr>
+  <tr>
+    <td valign="top">to</td>
+    <td valign="top">the <code>to</code> attribute for the given
+      implementation.</td>
+    <td align="center" valign="top">Depends on implementation.</td>
+  </tr>
+</table>
+<p>Note that Ant will not automatically convert / or \ characters in
+the <code>to</code> and <code>from</code> attributes to the correct
+directory separator of your current platform.  If you need to specify
+this separator, use <code>${file.separator}</code> instead.
+  For the regexpmapper, <code>${file.separator}</code> will not work,
+as on windows it is the '\' character, and this is an escape character
+for regular expressions, one should use the <code>handledirsep</code> attribute
+instead.
+</p>
+<h3>Parameters specified as nested elements</h3>
+<p>The classpath can be specified via a nested
+<code>&lt;classpath&gt;</code>, as well - that is,
+a <a href="../using.html#path">path</a>-like structure.</p>
+<p><b>Since Ant 1.6.2,</b> nested File Mappers can
+be supplied via either <CODE>&lt;mapper&gt;</CODE> elements or
+<a href="../CoreTasks/typedef.html"><code>&lt;typedef&gt;</code></a>'d
+implementations of <CODE>org.apache.tools.ant.util.FileNameMapper</CODE>.
+If nested File Mappers are specified by either means, the mapper will be
+implicitly configured as a <a href="#composite-mapper">composite mapper</a>.
+</p>
+<hr>
+<h3>The built-in mapper types are:</h3>
+<p>All built-in mappers are case-sensitive.</p>
+<p><b>As of Ant 1.6.2,</b> each of the built-in mapper implementation
+  types is directly accessible using a specific tagname. This makes it
+  possible for filename mappers to support attributes in addition to
+  the generally available <i>to</i> and <i>from</i>.<br>
+  The <code>&lt;mapper type|classname=&quot;...&quot;&gt;</code> usage
+  form remains valid for reasons of backward compatibility.</p>
+<h4><a name="identity-mapper">identity</a></h4>
+<p>The target file name is identical to the source file name. Both
+<code>to</code> and <code>from</code> will be ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;identity&quot;/&gt;
+&lt;identitymapper/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>C.properties</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+  </tr>
+</table>
+<h4><a name="flatten-mapper">flatten</a></h4>
+<p>The target file name is identical to the source file name, with all
+leading directory information stripped off. Both <code>to</code> and
+<code>from</code> will be ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;flatten&quot;/&gt;
+&lt;flattenmapper/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>B.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>C.properties</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>A.properties</code></td>
+  </tr>
+</table>
+<h4><a name="merge-mapper">merge</a></h4>
+<p>The target file name will always be the same, as defined by
+<code>to</code> - <code>from</code> will be ignored.</p>
+<h5>Examples:</h5>
+<blockquote><pre>
+&lt;mapper type=&quot;merge&quot; to=&quot;archive.tar&quot;/&gt;
+&lt;mergemapper to=&quot;archive.tar&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>archive.tar</code></td>
+  </tr>
+</table>
+<h4><a name="glob-mapper">glob</a></h4>
+<p>Both <code>to</code> and <code>from</code> define patterns that may
+contain at most one <code>*</code>. For each source file that matches
+the <code>from</code> pattern, a target file name will be constructed
+from the <code>to</code> pattern by substituting the <code>*</code> in
+the <code>to</code> pattern with the text that matches the
+<code>*</code> in the <code>from</code> pattern. Source file names
+that don't match the <code>from</code> pattern will be ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.java.bak&quot;/&gt;
+&lt;globmapper from=&quot;*.java&quot; to=&quot;*.java.bak&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/B.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type=&quot;glob&quot; from=&quot;C*ies&quot; to=&quot;Q*y&quot;/&gt;
+&lt;globmapper from=&quot;C*ies&quot; to=&quot;Q*y&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>Q.property</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>Qlasses/dir/dir2/A.property</code></td>
+  </tr>
+</table>
+  <p>
+    The globmapper mapper can take the following extra attributes.
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">casesensitive</td>
+      <td valign="top">
+        If this is false, the mapper will ignore case when matching the glob pattern.
+        This attribute can be true or false, the default is true.
+      <em>Since Ant 1.6.3.</em>
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">handledirsep</td>
+      <td valign="top">
+        If this is specified, the mapper will ignore the difference between the normal
+        directory separator characters - \ and /.
+        This attribute can be true or false, the default is false.
+        This attribute is useful for cross-platform build files.
+        <em>Since Ant 1.6.3.</em>
+        <td align="center" valign="top">No</td>
+      </tr>
+    </table>
+    <p>
+      An example:
+    </p>
+    <pre>
+      &lt;pathconvert property="x" targetos="unix"&gt;
+        &lt;path path="Aj.Java"/&gt;
+        &lt;mapper&gt;
+        &lt;chainedmapper&gt;
+          &lt;flattenmapper/&gt;
+          &lt;globmapper from="a*.java" to="*.java.bak" casesensitive="no"/&gt;
+        &lt;/chainedmapper&gt;
+        &lt;/mapper&gt;
+      &lt;/pathconvert&gt;
+      &lt;echo&gt;x is ${x}&lt;/echo&gt;
+    </pre>
+    <p>
+      will output "x is j.java.bak".
+    </p>
+    <p>
+      and
+    </p>
+    <pre>
+      &lt;pathconvert property="x" targetos="unix"&gt;
+        &lt;path path="d/e/f/j.java"/&gt;
+        &lt;mapper&gt;
+          &lt;globmapper from="${basedir}\d/e\*" to="*" ignoredirchar="yes"/&gt;
+        &lt;/mapper&gt;
+      &lt;/pathconvert&gt;
+      &lt;echo&gt;x is ${x}&lt;/echo&gt;
+    </pre>
+    <p>
+      will output "x is f/j.java".
+    </p>
+
+<h4><a name="regexp-mapper">regexp</a></h4>
+<p>Both <code>to</code> and <code>from</code> define regular
+expressions. If the source file name matches the <code>from</code>
+pattern, the target file name will be constructed from the
+<code>to</code> pattern, using <code>\0</code> to <code>\9</code> as
+back-references for the full
+match (<code>\0</code>) or the matches of the subexpressions in
+parentheses.
+Source
+files not matching the <code>from</code> pattern will be ignored.</p>
+<p>Note that you need to escape a dollar-sign (<code>$</code>) with
+another dollar-sign in Ant.</p>
+<p>The regexp mapper needs a supporting library and an implementation
+of <code>org.apache.tools.ant.util.regexp.RegexpMatcher</code> that
+hides the specifics of the library. Ant comes with implementations for
+<a href="http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html"  target="_top">the java.util.regex package of JDK 1.4 or higher</a>,
+<a href="http://jakarta.apache.org/regexp/" target="_top">jakarta-regexp</a> and <a
+href="http://jakarta.apache.org/oro/" target="_top">jakarta-ORO</a>. If you compile
+from sources and plan to use one of them, make sure the libraries are
+in your <code>CLASSPATH</code>. For information about using <a
+href="http://www.cacas.org/~wes/java/" target="_top">gnu.regexp</a> or <a
+href="http://www.crocodile.org/~sts/Rex/" target="_top">gnu.rex</a> with Ant, see <a
+href="http://marc.theaimsgroup.com/?l=ant-dev&m=97550753813481&w=2" target="_top">this</a>
+article.</p>
+<p>This means, you need one of the supported regular expression
+  libraries <strong>and</strong>
+  the corresponding <code>ant-[jakarta-oro, jakarta-regexp, apache-oro, apache-regexp}.jar</code>
+from the Ant release you are using.
+Make sure, both will be loaded from the same
+classpath, that is either put them into your <code>CLASSPATH</code>,
+<code>ANT_HOME/lib</code> directory or a nested
+<code>&lt;classpath&gt;</code> element of the mapper - you cannot have
+<code>ant-[jakarta-oro, jakarta-regexp, apache-oro, apache-regexp].jar</code> in <code>ANT_HOME/lib</code>
+ and the library
+in a nested <code>&lt;classpath&gt;</code>.</p>
+<p>Ant will choose the regular-expression library based on the
+following algorithm:</p>
+<ul>
+<li>If the system property
+<code>ant.regexp.matcherimpl</code> has been set, it is taken as the
+name of the class implementing
+<code>org.apache.tools.ant.util.regexp.RegexpMatcher</code> that
+should be used.</li>
+<li>If it has not been set, first try the JDK 1.4 classes, then
+jakarta-ORO and finally try jakarta-regexp.</li>
+</ul>
+
+<b>Examples:</b>
+<blockquote><pre>
+&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)\.java$$&quot; to=&quot;\1.java.bak&quot;/&gt;
+&lt;regexpmapper from=&quot;^(.*)\.java$$&quot; to=&quot;\1.java.bak&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>A.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/B.java.bak</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)/([^/]+)/([^/]*)$$&quot; to=&quot;\1/\2/\2-\3&quot;/&gt;
+&lt;regexpmapper from=&quot;^(.*)/([^/]+)/([^/]*)$$&quot; to=&quot;\1/\2/\2-\3&quot;/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>foo/bar/bar-B.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>Classes/dir/dir2/dir2-A.properties</code></td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type="regexp" from="^(.*)\.(.*)$$" to="\2.\1"/&gt;
+&lt;regexpmapper from="^(.*)\.(.*)$$&" to="\2.\1"/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>A.java</code></td>
+    <td valign="top"><code>java.A</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo/bar/B.java</code></td>
+    <td valign="top"><code>java.foo/bar/B</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>C.properties</code></td>
+    <td valign="top"><code>properties.C</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
+    <td valign="top"><code>properties.Classes/dir/dir2/A</code></td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;mapper type="regexp" from="^(.*?)(\$$[^/\\\.]*)?\.class$$" to="\1.java"/&gt;
+&lt;regexpmapper from="^(.*?)(\$$[^/\\\.]*)?\.class$$" to="\1.java"/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>ClassLoader.class</code></td>
+    <td valign="top"><code>ClassLoader.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>java/lang/ClassLoader.class</code></td>
+    <td valign="top"><code>java/lang/ClassLoader.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>java\lang\ClassLoader$1.class</code></td>
+    <td valign="top"><code>java\lang\ClassLoader.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>java/lang/ClassLoader$foo$1.class</code></td>
+    <td valign="top"><code>java/lang/ClassLoader.java</code></td>
+  </tr>
+</table>
+  <p>
+    The regexpmapper mapper can take the following extra attributes.
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">casesensitive</td>
+      <td valign="top">
+        If this is false, the mapper will ignore case when matching the pattern.
+        This attribute can be true or false, the default is true.
+      <em>Since Ant 1.6.3.</em>
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">handledirsep</td>
+      <td valign="top">
+        If this is specified, the mapper will treat a \ character in a filename
+        as a / for the purposes of matching.
+        This attribute can be true or false, the default is false.
+        This attribute is useful for cross-platform build files.
+        <em>Since Ant 1.6.3.</em>
+        <td align="center" valign="top">No</td>
+      </tr>
+    </table>
+    <p>
+      An example:
+    </p>
+    <pre>
+      &lt;pathconvert property="x" targetos="unix"&gt;
+        &lt;path path="Aj.Java"/&gt;
+        &lt;chainedmapper&gt;
+          &lt;flattenmapper/&gt;
+          &lt;regexpmapper from="a(.*)\.java" to="\1.java.bak" casesensitive="no"/&gt;
+        &lt;/chainedmapper&gt;
+      &lt;/pathconvert&gt;
+      &lt;echo&gt;x is ${x}&lt;/echo&gt;
+    </pre>
+    <p>
+      will output "x is j.java.bak".
+    </p>
+    <p>
+      and
+    </p>
+    <pre>
+    &lt;pathconvert property="hd.prop" targetos="windows"&gt;
+      &lt;path path="d\e/f\j.java"/&gt;
+      &lt;chainedmapper&gt;
+        &lt;regexpmapper from="${basedir}/d/e/(.*)" to="\1" handledirsep="yes"/&gt;
+      &lt;/chainedmapper&gt;
+    &lt;/pathconvert&gt;
+    </pre>
+    <p>
+      will set <code>hd.prop</code> to "f\j.java".
+    </p>
+<h4><a name="package-mapper">package</a></h4>
+<p>Sharing the same syntax as the <a href="#glob-mapper">glob mapper</a>,
+the package mapper replaces
+directory separators found in the matched source pattern with dots in the target
+pattern placeholder. This mapper is particularly useful in combination
+with <code>&lt;uptodate&gt;</code> and <code>&lt;junit&gt;</code> output.</p>
+<b>Example:</b>
+<blockquote><pre>
+&lt;mapper type="package" from="*Test.java" to="TEST-*Test.xml"/&gt;
+&lt;packagemapper from="*Test.java" to="TEST-*Test.xml"/&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/tools/ant/util/PackageMapperTest.java</code></td>
+    <td valign="top"><code>TEST-org.apache.tools.ant.util.PackageMapperTest.xml</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/tools/ant/util/Helper.java</code></td>
+    <td valign="top">ignored</td>
+  </tr>
+</table>
+<h4><a name="unpackage-mapper">unpackage (since Ant 1.6.0)</a></h4>
+  <p>This mapper is the inverse of the <a href="#package-mapper">package</a> mapper.
+    It replaces the dots in a package name with directory separators. This
+    is useful for matching XML formatter results against their JUnit test
+    test cases. The mapper shares the sample syntax
+    as the <a href="#glob-mapper">glob mapper</a>.
+  </p>
+<b>Example:</b>
+<blockquote><pre>
+&lt;mapper type="unpackage" from="TEST-*Test.xml" to="${test.src.dir}/*Test.java"&gt;
+&lt;unpackagemapper from="TEST-*Test.xml" to="${test.src.dir}/*Test.java"&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file name</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>TEST-org.acme.AcmeTest.xml</code></td>
+    <td valign="top"><code>${test.src.dir}/org/acme/AcmeTest.java</code></td>
+  </tr>
+</table>
+<h4><a name="composite-mapper">composite (since Ant 1.6.2)</a></h4>
+  <p>This mapper implementation can contain multiple nested mappers.
+    File mapping is performed by passing the source filename to each nested
+    <code>&lt;mapper&gt;</code> in turn, returning all results.
+    The <i>to</i> and <i>from</i> attributes are ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;compositemapper&gt;
+  &lt;identitymapper/&gt;
+  &lt;packagemapper from="*.java" to="*"/&gt;
+&lt;/compositemapper&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center" rowspan="2"><code>foo/bar/A.java</code></td>
+    <td valign="top"><code>foo/bar/A.java</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>foo.bar.A</code></td>
+  </tr>
+</table>
+  <p>The composite mapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+<h4><a name="chained-mapper">chained (since Ant 1.6.2)</a></h4>
+  <p>This mapper implementation can contain multiple nested mappers.
+    File mapping is performed by passing the source filename to the first
+    nested mapper, its results to the second, and so on.  The target filenames
+    generated by the last nested mapper comprise the ultimate results of the
+    mapping operation.  The <i>to</i> and <i>from</i> attributes are ignored.</p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;chainedmapper&gt;
+  &lt;flattenmapper/&gt;
+  &lt;globmapper from="*" to="new/path/*"/&gt;
+  &lt;mapper&gt;
+    &lt;globmapper from="*" to="*1"/&gt;
+    &lt;globmapper from="*" to="*2"/&gt;
+  &lt;/mapper&gt;
+&lt;/chainedmapper&gt;
+</pre></blockquote>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center" rowspan="2"><code>foo/bar/A.java</code></td>
+    <td valign="top"><code>new/path/A.java1</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>new/path/A.java2</code></td>
+  </tr>
+  <tr>
+    <td valign="center" rowspan="2"><code>boo/far/B.java</code></td>
+    <td valign="top"><code>new/path/B.java1</code></td>
+  </tr>
+  <tr>
+    <td valign="top"><code>new/path/B.java2</code></td>
+  </tr>
+</table>
+  <p>The chained mapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+
+    <!--                                        -->
+    <!--             Filter Mapper              -->
+    <!--                                        -->
+
+<h4><a name="filter-mapper">filtermapper (since Ant 1.6.3)</a></h4>
+    <p>
+      This mapper implementation applies a <a href="filterchain.html">filterchain</a>
+      to the source file name.
+    </p>
+<b>Examples:</b>
+<blockquote><pre>
+&lt;filtermapper&gt;
+  &lt;replacestring from="\" to="/"/&gt;
+&lt;/filtermapper&gt;
+</pre></blockquote>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center"><code>foo\bar\A.java</code></td>
+    <td valign="top"><code>foo/bar/A.java</code></td>
+  </tr>
+</table>
+<blockquote><pre>
+&lt;filtermapper&gt;
+  &lt;scriptfilter language="beanshell"&gt;
+    self.setToken(self.getToken().toUpperCase());
+  &lt;/scriptfilter&gt;
+&lt;/filtermapper&gt;
+</pre></blockquote>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center"><code>foo\bar\A.java</code></td>
+    <td valign="top"><code>FOO\BAR\A.JAVA</code></td>
+  </tr>
+</table>
+
+  <p>The filtermapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+
+    <!--                                        -->
+    <!--             Script Mapper              -->
+    <!--                                        -->
+
+<h4><a name="script-mapper">scriptmapper (since Ant 1.7)</a></h4>
+<p>
+This mapper executes a script written in <a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+or
+  <a href="https://scripting.dev.java.net">JSR 223</a>
+supported language, once per file to map.</p>
+The script can be declared inline or in a specified file.
+</p>
+<p>
+See the <a href="../OptionalTasks/script.html">Script</a> task for
+an explanation of scripts and dependencies.
+</p>
+
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">language</td>
+      <td valign="top">
+        Scripting language
+      </td>
+      <td align="center" valign="top">Yes</td>
+    </tr>
+    <tr>
+      <td valign="top">manager</td>
+      <td valign="top">
+        The script engine manager to use.
+        See the <a href="../OptionalTasks/script.html">script</a> task
+        for using this attribute.
+      </td>
+      <td valign="top" align="center">No - default is "auto"</td>
+    </tr>
+    <tr>
+      <td valign="top">src</td>
+      <td valign="top">
+        File containing the script
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">setbeans</td>
+      <td valign="top">whether to have all properties, references and targets as
+        global variables in the script.</td>
+      <td valign="top" align="center">No, default is "true".</td>
+    </tr>
+    <tr>
+      <td valign="top">classpath</td>
+      <td valign="top">
+        The classpath to pass into the script.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">classpathref</td>
+      <td valign="top">The classpath to use, given as a
+        <a href="../using.html#references">reference</a> to a path defined elsewhere.
+        <td align="center" valign="top">No</td>
+      </tr>
+    </table>
+  <p>
+    This filename mapper can take a nested &lt;classpath&gt; element.
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    on how to use this element.
+  </p>
+
+<p>
+  <b>Example:</b>
+</p>
+<blockquote><pre>
+&lt;scriptmapper language="javascript"&gt;
+  self.addMappedName(source.toUpperCase());
+  self.addMappedName(source.toLowerCase());
+&lt;/scriptmapper&gt;
+</pre></blockquote>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Source file name</b></td>
+    <td valign="top"><b>Target file names</b></td>
+  </tr>
+  <tr>
+    <td valign="center"><code>foo\bar\A.java</code></td>
+    <td valign="top"><code>FOO\BAR\A.JAVA foo\bar\a.java</code></td>
+  </tr>
+</table>
+
+<p>
+To use this mapper, the scripts need access to the source file,
+and the ability to return multiple mappings. Here are the relevant beans and
+their methods. The script is called once for every source file, with the
+list of mapped names reset after every invocation.
+
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Script bean</b></td>
+      <td valign="top"><b>Description</b></td>
+    </tr>
+    <tr>
+      <td valign="top"><code>source: String</code></td>
+      <td valign="top">
+        The file/path to map
+      </td>
+    </tr>
+    <tr>
+      <td valign="top">self</td>
+      <td valign="top">
+        the scriptmapper itself
+      </td>
+    </tr>
+    <tr>
+      <td valign="top"><code>self.addMappedName(String name)</code></td>
+      <td valign="top">
+        Add a new mapping
+      </td>
+    </tr>
+    <tr>
+      <td valign="top"><code>self.clear()</code></td>
+      <td valign="top">
+        Reset the list of files.
+      </td>
+    </tr>
+    </table>
+
+  <p>The scriptmapper has no corresponding
+    <code>&lt;mapper <b>type</b>&gt;</code> attribute.
+  </p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/namespace.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/namespace.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/namespace.html	(revision 14989)
@@ -0,0 +1,220 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html><head><link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XmlNamespaceSupport</title></head>
+  <body>
+    <h2><a name="namespace">XML Namespace Support</a></h2>
+    Ant 1.6 introduces support for XML namespaces. 
+    <h3>History</h3>
+    
+    <p>
+      All releases of Ant prior to Ant 1.6 do not support XML namespaces.
+      No support basically implies two things here:
+    </p>
+    <ul>
+      <li> Element names correspond to the "qname" of the tags, which is
+        usually the same as the local name. But if the build file writer uses
+        colons in names of defined tasks/types, those become part of the
+        element name. Turning on namespace support gives colon-separated
+        prefixes in tag names a special meaning, and thus build files using
+        colons in user-defined tasks and types will break.
+      </li>
+      <li> Attributes with the names 'xmlns' and 'xmlns:<code>&lt;prefix&gt;</code>'
+        are not treated specially, which means that custom tasks and types have
+        actually been able to use such attributes as parameter names. Again,
+        such tasks/types are going to break when namespace support is enabled
+        on the parser.
+      </li>
+    </ul>
+    <p>Use of colons in element names has been discouraged in the past,
+      and using any attribute starting with "xml" is actually strongly
+      discouraged by the XML spec to reserve such names for future use.
+    </p>
+    <h3>Motivation</h3>
+
+    <p>In build files using a lot of custom and third-party tasks, it is
+      easy to get into name conflicts. When individual types are defined, the
+      build file writer can do some namespacing manually (for example, using
+      "tomcat-deploy" instead of just "deploy"). But when defining whole
+      libraries of types using the <code>&lt;typedef&gt;</code> 'resource' attribute, the
+      build file writer has no chance to override or even prefix the names
+      supplied by the library. </p>
+    <h3>Assigning Namespaces</h3>
+
+    <p>
+      Adding a 'prefix' attribute to <code>&lt;typedef&gt;</code> might have been enough,
+      but XML already has a well-known method for namespacing. Thus, instead
+      of adding a 'prefix' attribute, the <code>&lt;typedef&gt;</code> and <code>&lt;taskdef&gt;</code>
+      tasks get a 'uri' attribute, which stores the URI of the XML namespace
+      with which the type should be associated:
+    </p><pre> &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+ &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+    ...
+ &lt;/my:task&gt;
+</pre>
+    <p>As the above example demonstrates, the namespace URI needs to be
+      specified at least twice: one time as the value of the 'uri' attribute,
+      and another time to actually map the namespace to occurrences of
+      elements from that namespace, by using the 'xmlns' attribute. This
+      mapping can happen at any level in the build file:
+    </p><pre> &lt;project name="test" xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt; 
+   &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+   &lt;my:task&gt;
+     ...
+   &lt;/my:task&gt;
+ &lt;/project&gt;
+</pre>
+    <p>
+      Use of a namespace prefix is of course optional. Therefore
+      the example could also look like this:
+    </p><pre> &lt;project name="test"&gt; 
+   &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+   &lt;task xmlns="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+     ...
+   &lt;/task&gt;
+ &lt;/project&gt;
+</pre>
+    <p>
+      Here, the namespace is set as the default namespace for the <code>&lt;task&gt;</code>
+      element and all its descendants.
+    </p>
+    <h3>Default namespace</h3>
+    <p>
+      The default namespace used by Ant is "antlib:org.apache.tools.ant".
+    </p>
+    <pre>
+&lt;typedef resource="org/example/tasks.properties" uri="antlib:org.apache.tools.ant"/&gt;
+&lt;task&gt;
+      ....
+&lt;/task&gt;
+    </pre>
+
+     
+
+    <h3>Namespaces and Nested Elements</h3>
+
+    <p>
+      Almost always in Ant 1.6, elements nested inside a namespaced
+      element have the same namespace as their parent. So if 'task' in the
+      example above allowed a nested 'config' element, the build file snippet
+      would look like this:
+    </p><pre> &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+ &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;my:config a="foo" b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+    <p>If the element allows or requires a lot of nested elements, the
+      prefix needs to be used for every nested element. Making the namespace
+      the default can reduce the verbosity of the script:
+    </p><pre> &lt;typedef resource="org/example/tasks.properties" uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+          &lt;task xmlns="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+          &lt;config a="foo" b="bar"/&gt;
+   ...
+          &lt;/task&gt;
+        </pre>
+    <p>
+      From Ant 1.6.2, elements nested inside a namespaced element may also be
+      in Ant's default namespace. This means that the following is now allowed:
+    </p>
+    </p><pre> &lt;typedef resource="org/example/tasks.properties"
+   uri="<a href="http://example.org/tasks">http://example.org/tasks</a>"/&gt;
+ &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;config a="foo" b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+      
+    <h3>Namespaces and Attributes</h3>
+
+    <p>
+      Attributes are only used to configure the element they belong to if:
+    </p>
+    <ul>
+      <li> they have no namespace (note that the default namespace does *not* apply to attributes)
+      </li>
+      <li> they are in the same namespace as the element they belong to
+      </li>
+    </ul>
+    <p>
+      Other attributes are simply ignored.
+    </p>
+    <p>
+      This means that both:
+    </p>
+    <p>
+    </p><pre> &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;my:config a="foo" b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+    <p>
+      and
+    </p>
+    <pre> &lt;my:task xmlns:my="<a href="http://example.org/tasks">http://example.org/tasks</a>"&gt;
+   &lt;my:config my:a="foo" my:b="bar"/&gt;
+   ...
+ &lt;/my:task&gt;
+</pre>
+    <p>
+      result in the parameters "a" and "b" being used as parameters to configure the nested "config" element.
+    </p>
+    <p>It also means that you can use attributes from other namespaces
+      to markup the build file with extra metadata, such as RDF and
+      XML-Schema (whether that's a good thing or not). The same is not true
+      for elements from unknown namespaces, which result in a error.
+    </p>
+    <h3>Mixing Elements from Different Namespaces</h3>
+
+    <p>Now comes the difficult part: elements from different namespaces can
+      be woven together under certain circumstances. This has a lot to do
+      with the Ant 1.6
+      <a href="../develop.html#nestedtype">add type introspection rules</a>:
+      Ant types and tasks are now free to accept arbritrary named types as
+      nested elements, as long as the concrete type implements the interface
+      expected by the task/type. The most obvious example for this is the
+      <code>&lt;condition&gt;</code> task, which supports various nested conditions, all
+      of which extend the interface <tt>Condition</tt>. To integrate a
+      custom condition in Ant, you can now simply <code>&lt;typedef&gt;</code> the
+      condition, and then use it anywhere nested conditions are allowed
+      (assuming the containing element has a generic <tt>add(Condition)</tt> or <tt>addConfigured(Condition)</tt> method):
+</p><pre> &lt;typedef resource="org/example/conditions.properties" uri="<a href="http://example.org/conditions">http://example.org/conditions</a>"/&gt;
+ &lt;condition property="prop" xmlns="<a href="http://example.org/conditions">http://example.org/conditions</a>"&gt;
+   &lt;and&gt;
+     &lt;available file="bla.txt"/&gt;
+     &lt;my:condition a="foo"/&gt;
+   &lt;/and&gt;
+ &lt;/condition&gt;
+</pre>
+    <p>
+      In Ant 1.6, this feature cannot be used as much as we'd all like to: a
+      lot of code has not yet been adapted to the new introspection rules,
+      and elements like Ant's built-in conditions and selectors are not
+      really types in 1.6. This is expected to change in Ant 1.7.
+    </p>
+    <h3>Namespaces and Antlib</h3>
+
+    <p>
+      The new <a href="antlib.html">AntLib</a>
+      feature is also very much integrated with the namespace support in Ant
+      1.6. Basically, you can "import" Antlibs simply by using a special
+      scheme for the namespace URI: the <tt>antlib</tt> scheme, which expects the package name in which a special <tt>antlib.xml</tt> file is located.
+    </p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/patternset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/patternset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/patternset.html	(revision 14989)
@@ -0,0 +1,186 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PatternSet Type</title>
+</head>
+
+<body>
+
+<h2><a name="patternset">PatternSet</a></h2>
+<p><a href="../dirtasks.html#patterns">Patterns</a> can be grouped to
+sets and later be referenced by their <code>id</code> attribute. They
+are defined via a <code>patternset</code> element, which can appear
+nested into a <a href="fileset.html">FileSet</a> or a directory-based
+task that constitutes an implicit FileSet. In addition,
+<code>patternset</code>s can be defined as a stand alone element at
+the same level as <code>target</code> &#151; i.e., as children of
+<code>project</code> as well as as children of
+<code>target</code>.</p> <p>Patterns can be specified by nested
+<code>&lt;include&gt;</code>, or <code>&lt;exclude&gt;</code> elements
+or the following attributes.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an include pattern. You can specify more than one
+      include file by using a nested includesfile elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded; no files (except default excludes) are excluded when omitted.</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an exclude pattern. You can specify more than one
+      exclude file by using a nested excludesfile elements.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4><code>include</code> and <code>exclude</code></h4>
+<p>Each such element defines a single pattern for files to include or
+exclude.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the <a href="../dirtasks.html#patterns">pattern</a>
+      to in/exclude.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only use this pattern if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only use this pattern if the named property is
+       <b>not</b> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h4><code>includesfile</code> and <code>excludesfile</code></h4>
+<p>If you want to list the files to include or exclude external to
+your build file, you should use the includesfile/excludesfile
+attributes or elements.  Using the attribute, you can only specify a
+single file of each type, while the nested elements can be specified
+more than once - the nested elements also support if/unless attributes
+you can use to test the existance of a property.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the file holding the patterns to
+      in/exclude.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only read this file if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only read this file if the named property is
+      <b>not</b> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h4><code>patternset</code></h4>
+<p>Patternsets may be nested within one another, adding the nested
+patterns to the parent patternset.</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;patternset id=&quot;non.test.sources&quot;&gt;
+  &lt;include name=&quot;**/*.java&quot;/&gt;
+  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+&lt;/patternset&gt;
+</pre></blockquote>
+<p>Builds a set of patterns that matches all <code>.java</code> files
+that do not contain the text <code>Test</code> in their name. This set
+can be <a href="../using.html#references">referred</a> to via
+<code>&lt;patternset refid=&quot;non.test.sources&quot;/&gt;</code>,
+by tasks that support this feature, or by FileSets.</p>
+<p>Note that while the <code>includes</code> and
+<code>excludes</code> attributes accept
+multiple elements separated by commas or spaces, the nested
+<code>&lt;include&gt;</code> and <code>&lt;exclude&gt;</code> elements expect their name
+attribute to hold a single pattern.</p>
+<p>The nested elements allow you to use if and unless arguments to
+specify that the element should only be used if a property is set, or
+that it should be used only if a property is not set.</p>
+<p>For example</p>
+<blockquote><pre>
+&lt;patternset id=&quot;sources&quot;&gt;
+  &lt;include name=&quot;std/**/*.java&quot;/&gt;
+  &lt;include name=&quot;prof/**/*.java&quot; if=&quot;professional&quot;/&gt;
+  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
+&lt;/patternset&gt;
+</pre></blockquote>
+<p>will only include the files in the sub-directory <em>prof</em> if the property
+<em>professional</em> is set to some value.</p>
+<p>The two sets</p>
+<blockquote><pre>
+&lt;patternset includesfile=&quot;some-file&quot;/&gt;
+</pre></blockquote>
+<p>and</p>
+<blockquote><pre>
+&lt;patternset&gt;
+  &lt;includesfile name=&quot;some-file&quot;/&gt; 
+&lt;patternset/&gt;
+</pre></blockquote>
+<p>are identical.  The include patterns will be read from the file
+<code>some-file</code>, one pattern per line.</p>
+<blockquote><pre>
+&lt;patternset&gt;
+  &lt;includesfile name=&quot;some-file&quot;/&gt; 
+  &lt;includesfile name=&quot;${some-other-file}&quot; 
+                if=&quot;some-other-file&quot;
+  /&gt; 
+&lt;patternset/&gt;
+</pre></blockquote>
+<p>will also read include patterns from the file the property
+<code>some-other-file</code> points to, if a property of that name has
+been defined.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/permissions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/permissions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/permissions.html	(revision 14989)
@@ -0,0 +1,164 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Permissions type</title>
+</head>
+
+<body>
+
+<h2><a name="permissions">Permissions</a></h2>
+<p>
+Permissions represents a set of security permissions granted or revoked to
+a specific part code executed in the JVM where ant is running in.
+The actual Permissions are specified via a set of nested permission items either
+<code>&lt;grant&gt;</code>ed or <code>&lt;revoke&gt;</code>d.</p>
+<p>
+In the base situation a <a href="#baseset">base set</a> of permissions granted. 
+Extra permissions can be
+granted. A granted permission can be overruled by revoking a permission.
+The security manager installed by the permissions will throw an 
+<code>SecurityException</code> if
+the code subject to these permissions try to use an permission that has not been 
+granted or that has been revoked.</p>
+<h3>Nested elements</h3>
+<h4>grant</h4>
+<p>
+Indicates a specific permission is always granted. Its attributes indicate which 
+permissions are granted.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The fully qualified name of the Permission class.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the Permission. The actual contents depends on the
+    Permission class.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">actions</td>
+    <td valign="top">The actions allowed. The actual contents depend on the 
+    Permission class and name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+Implied permissions are granted.
+</p>
+<p>
+Please note that some Permission classes may actually need a name and / or actions in order to function properly. The name and actions are parsed by the actual
+Permission class.
+</p>
+<h4>revoke</h4>
+<p>
+Indicates a specific permission is revoked.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">The fully qualified name of the Permission class.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the Permission. The actual contents depends on the
+    Permission class.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">actions</td>
+    <td valign="top">The actions allowed. The actual contents depend on the 
+    Permission class and name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<p>
+Implied permissions are not resolved and therefore also not revoked.
+</p>
+<p>
+The name can handle the * wildcard at the end of the name, in which case all 
+permissions of the specified class of which the name starts with the specified name
+(excluding the *) are revoked. Note that the - wildcard often supported by the
+granted properties is not supported.
+If the name is left empty all names match, and are revoked.
+If the actions are left empty all actions match, and are revoked.
+</p>
+<h3><a name="baseset">Base set</a></h3>
+A permissions set implictly contains the following permissions:
+<blockquote><pre>
+&lt;grant class=&quot;java.net.SocketPermission&quot; name=&quot;localhost:1024-&quot; actions=&quot;listen&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vendor.url&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.class.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;os.name&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;os.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;os.arch&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;file.encoding&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;file.separator&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;path.separator&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;line.separator&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.specification.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.specification.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.specification.name&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.specification.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.specification.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.specification.name&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.version&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.vendor&quot; actions=&quot;read&quot;&gt;
+&lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;java.vm.name&quot; actions=&quot;read&quot;&gt;
+</blockquote></pre>
+These permissions can be revoked via <code>&lt;revoke&gt;</code> elements if necessary.
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;permissions&gt;
+  &lt;grant class=&quot;java.security.AllPermission&quot;/&gt;
+  &lt;revoke class=&quot;java.util.PropertyPermission&quot;/&gt;
+&lt;/permissions&gt;
+</pre></blockquote>
+<p>
+Grants all permissions to the code except for those handling Properties.
+</p>
+<blockquote><pre>
+&lt;permissions&gt;
+  &lt;grant class=&quot;java.net.SocketPermission&quot; name=&quot;foo.bar.com&quot; action=&quot;connect&quot;/&gt;
+  &lt;grant class=&quot;java.util.PropertyPermission&quot; name=&quot;user.home&quot; action=&quot;read,write&quot;/&gt;
+&lt;/permissions&gt;
+</pre></blockquote>
+<p>
+Grants the base set of permissions with the addition of a SocketPermission to connect
+to foo.bar.com and the permission to read and write the user.home system property.
+</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/propertyset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/propertyset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/propertyset.html	(revision 14989)
@@ -0,0 +1,143 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PropertySet Type</title>
+</head>
+
+<body>
+
+<h2><a name="propertyset">PropertySet</a></h2>
+<p><em>Since Ant 1.6</em></p>
+
+<p>Groups a set of properties to be used by reference in a task that
+supports this.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">dynamic</td>
+    <td valign="top">Whether to reevaluate the set everytime the set
+      is used.  Default is &quot;<code>true</code>&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">negate</td>
+    <td valign="top">Whether to negate results. If
+      &quot;<code>true</code>&quot;, all properties <i>not</i>
+      selected by nested elements will be returned. Default is
+      &quot;<code>false</code>&quot;. <em>Since Ant 1.6.2</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>propertyref</h4>
+
+<p>Selects properties from the current project to be included in the
+set.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Select the property with the given name.</td>
+    <td align="center" valign="top" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">Select the properties whose name starts with the
+      given string.</td>
+  </tr>
+  <tr>
+    <td valign="top">regex</td>
+    <td valign="top">Select the properties that match the given
+      regular expression.  Similar to <a
+      href="mapper.html#regexp-mapper">regexp type mappers</a>, this
+      requires a supported regular expression library.</td>
+  </tr>
+  <tr>
+    <td valign="top">builtin</td>
+    <td valign="top">Selects a builtin set of properties.  Valid
+      values for this attribute are <code>all</code> for all Ant
+      properties, <code>system</code> for the system properties and
+      <code>commandline</code> for all properties specified on the
+      command line when invoking Ant (plus a number of special
+      internal Ant properties).</td>
+  </tr>
+</table>
+
+<h4>propertyset</h4>
+
+<p>A <code>propertyset</code> can be used as the set union of more
+<code>propertyset</code>s.</p>
+
+<p>For example:</p>
+
+<blockquote><pre>
+&lt;propertyset id=&quot;properties-starting-with-foo&quot;&gt;
+  &lt;propertyref prefix=&quot;foo&quot;/&gt;
+&lt;/propertyset&gt;
+&lt;propertyset id=&quot;properties-starting-with-bar&quot;&gt;
+  &lt;propertyref prefix=&quot;bar&quot;/&gt;
+&lt;/propertyset&gt;
+&lt;propertyset id=&quot;my-set&quot;&gt;
+  &lt;propertyset refid=&quot;properties-starting-with-foo&quot;/&gt;
+  &lt;propertyset refid=&quot;properties-starting-with-bar&quot;/&gt;
+&lt;/propertyset&gt;
+</pre></blockquote>
+
+<p>collects all properties whose name starts with either
+&quot;foo&quot; or &quot;bar&quot; in the set named
+&quot;my-set&quot;.</p>
+
+<h4>mapper</h4>
+
+<p>A <a href="mapper.html">mapper</a> - at maximum one mapper can be
+specified.  The mapper is used to change the names of the property
+keys, for example:
+
+<blockquote><pre>
+&lt;propertyset id=&quot;properties-starting-with-foo&quot;&gt;
+  &lt;propertyref prefix=&quot;foo&quot;/&gt;
+  &lt;mapper type=&quot;glob&quot; from=&quot;foo*&quot; to=&quot;bar*&quot;/&gt;
+&lt;/propertyset&gt;
+</pre></blockquote>
+
+<p>collects all properties whose name starts with &quot;foo&quot;, but
+changes the names to start with &quot;bar&quot; instead.</p>
+
+<p>If supplied, the nested mapper will be applied
+subsequent to any negation of matched properties.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/redirector.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/redirector.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/redirector.html	(revision 14989)
@@ -0,0 +1,183 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Redirector Type</title>
+</head>
+
+<body>
+
+<h2><a name="redirector">I/O redirection</a></h2>
+<p>For many tasks, input and output can be defined in a fairly
+straightforward fashion.  The <a href="../CoreTasks/exec.html">exec</a>
+task, used to execute an external process, stands as a very
+basic example.  The executed process may accept input, produce
+output, or do either or both depending upon various circumstances.
+Output may be classified as &quot;output&quot; or as &quot;error
+output.&quot;  The <code>&lt;redirector&gt;</code> type provides a concrete means
+of redirecting input and output featuring the use of
+<a href="./mapper.html">File Mapper</a>s to specify
+source (input) and destination (output/error) files.  <em>Since Ant 1.6.2</em>
+<p>The <code>&lt;redirector&gt;</code> element accepts the following attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which output should be written.
+      If the error stream is not also redirected to a file or property,
+      it will appear in this output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">error</td>
+    <td valign="top">The file to which the standard error of the
+      command should be redirected.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logError</td>
+    <td valign="top">This attribute is used when you wish to see
+      error output in Ant's log and you are redirecting output to
+      a file/property. The error output will not be included in
+      the output file/property. If you redirect error with the
+      <i>error</i> or <i>errorProperty</i> attributes, this will
+      have no effect.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output and error files should be
+      appended to rather than overwritten. Defaults to
+      <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">createemptyfiles</td>
+    <td valign="top">Whether output and error files should be
+      created even when empty.  Defaults to <code>true</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the
+      command should be stored. Unless the error stream is redirected
+      to a separate file or stream, this property will include the
+      error output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property in which the standard error
+      of the command should be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">input</td>
+    <td valign="top">A file from which the executed command's standard input
+      is taken. This attribute is mutually exclusive with the
+      <i>inputstring</i> attribute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputstring</td>
+    <td valign="top">A string which serves as the input stream for the
+      executed command. This attribute is mutually exclusive with the
+      <i>input</i> attribute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">inputencoding</td>
+    <td valign="top">The input encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputencoding</td>
+    <td valign="top">The output encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorencoding</td>
+    <td valign="top">The error encoding.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">alwayslog</td>
+    <td valign="top">Always send to the log in addition to
+        any other destination. <i>Since Ant 1.6.3</i>.
+    </td>
+    <td align="center" valign="top">No, default is <code>false</code></td>
+  </tr>
+  <tr>
+    <td valign="top">loginputstring</td>
+    <td valign="top">Controls the display of <i>inputstring</i>'s value in
+        log messages. Set to <code>false</code> when sending sensitive data
+        (e.g. passwords) to external processes. <i>Since Ant 1.6.3</i>.
+    </td>
+    <td align="center" valign="top">No, default is <code>true</code></td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>inputmapper</h4>
+<p>A single <a href="./mapper.html">File Mapper</a> used to redirect process
+input.  Multiple mapping results should concatenate all mapped files as input.
+Mapping will ordinarily be performed on a task-specified sourcefile;
+consult the documentation of the individual task for more details.
+A nested <code>&lt;inputmapper&gt;</code> is not compatible with either of the
+<i>input</i> or <i>inputstring</i> attributes.</p>
+<h4>outputmapper</h4>
+<p>A single <a href="./mapper.html">File Mapper</a> used to redirect process
+output.  Mapping will ordinarily be performed on a task-specified sourcefile;
+consult the documentation of the individual task for more details.
+A nested <code>&lt;outputmapper&gt;</code> is not compatible with the
+<i>output</i> attribute.</p>
+<h4>errormapper</h4>
+<p>A single <a href="./mapper.html">File Mapper</a> used to redirect error
+output.  Mapping will ordinarily be performed on a task-specified sourcefile;
+consult the documentation of the individual task for more details.
+A nested <code>&lt;errormapper&gt;</code> is not compatible with the
+<i>error</i> attribute.</p>
+<h4>inputfilterchain</h4>
+<p>A <a href="./filterchain.html">FilterChain</a> can be
+applied to the process input.</p>
+<h4>outputfilterchain</h4>
+<p>A <a href="./filterchain.html">FilterChain</a> can be
+applied to the process output.</p>
+<h4>errorfilterchain</h4>
+<p>A <a href="./filterchain.html">FilterChain</a> can be
+applied to the error output.</p>
+<h3>Usage</h3>
+Tasks known to support I/O redirection:
+<ul>
+<li><a href="../CoreTasks/exec.html">Exec</a></li>
+<li><a href="../CoreTasks/apply.html">Apply</a></li>
+<li><a href="../CoreTasks/java.html">Java</a></li>
+</ul>
+<p>The expected behavior of a <code>&lt;redirector&gt;</code> is to a great degree
+dependent on the supporting task.  Any possible points of confusion
+should be noted at the task level.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/regexp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/regexp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/regexp.html	(revision 14989)
@@ -0,0 +1,112 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Regexp Type</title>
+</head>
+
+<body>
+
+<h2><a name="regexp">Regexp</a></h2>
+<p>
+Regexp represents a regular expression.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">regular expression pattern</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+     &lt;regexp id="myregexp" pattern="alpha(.+)beta"/&gt;<br>
+</pre></blockquote>
+<p>
+Defines a regular expression for later use with id myregexp.
+</p>
+<blockquote><pre>
+     &lt;regexp refid="myregexp"/&gt;<br>
+</pre></blockquote>
+<p>
+Use the regular expression with id myregexp.
+</p>
+<h3><a name="implementation">Choice of regular expression implementation</a></h3>
+<p>
+Ant comes with
+wrappers for
+<a href="http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html" target="_top">the java.util.regex package of JDK 1.4</a>,
+<a href="http://jakarta.apache.org/regexp/" target="_top">jakarta-regexp</a>
+and <a href="http://jakarta.apache.org/oro/" target="_top">jakarta-ORO</a>,
+See <a href="../install.html#librarydependencies">installation dependencies</a>
+ concerning the supporting libraries.</p>
+<p>
+The property <code>ant.regexp.regexpimpl</code> governs which regular expression implementation will be chosen.
+Possible values for this property are :
+<ul>
+<li>
+org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
+</li>
+<li>
+org.apache.tools.ant.util.regexp.JakartaOroRegexp
+</li>
+<li>
+org.apache.tools.ant.util.regexp.JakartaRegexpRegexp
+</li>
+</ul>
+It can also be another implementation of the interface <code>org.apache.tools.ant.util.regexp.Regexp</code>.
+If <code>ant.regexp.regexpimpl</code> is not defined, ant checks in the order Jdk14Regexp, JakartaOroRegexp,
+ JakartaRegexp for the availability of the corresponding library. The first of these 3 which is found will be used.</p>
+<p>
+There are cross-platform issues for matches related to line terminator.
+For example if you use $ to anchor your regular expression on the end of a line
+the results might be very different depending on both your platform and the regular
+expression library you use. It is 'highly recommended' that you test your pattern on
+both Unix and Windows platforms before you rely on it.
+<ul>
+    <li>Jakarta Oro defines a line terminator as '\n' and is consistent with Perl.</li>
+    <li>Jakarta RegExp uses a system-dependant line terminator.</li>
+    <li>JDK 1.4 uses '\n', '\r\n', '\u0085', '\u2028', '\u2029' as a default
+    but is configured in the wrapper to use only '\n' (UNIX_LINE)</li>
+</ul>
+<em>We <b>strongly</b> recommend that you use Jakarta Oro.</em>
+</p>
+<h3>Usage</h3>
+The following tasks and types use the Regexp type :
+<ul>
+<li><a href="../OptionalTasks/replaceregexp.html">ReplaceRegExp task</a></li>
+<li><a href="filterchain.html#linecontainsregexp">LineContainsRegexp filter</a></li>
+</ul>
+<p>
+These string filters also use the mechanism of regexp to choose a regular expression implementation :
+</p>
+<ul>
+<li><a href="filterchain.html#containsregex">ContainsRegex string filter</a></li>
+<li><a href="filterchain.html#replaceregex">ReplaceRegex string filter</a></li>
+</ul>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/resources.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/resources.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/resources.html	(revision 14989)
@@ -0,0 +1,841 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Resources and Resource Collections</title>
+</head>
+
+<body>
+
+<h2><a name="resource">Resources</a></h2>
+<p>
+A file-like entity can be abstracted to the concept of a <i>resource</i>.
+In addition to providing access to file-like attributes, a resource
+implementation should, when possible, provide the means to read content
+from and/or write content to the underlying entity. Although the resource
+concept was introduced in <i>Ant 1.5.2</i>, resources are available for
+explicit use beginning in <b>Ant 1.7</b>.
+</p>
+
+<h3>The built-in resource types are:</h3>
+
+<ul>
+  <li><a href="#basic">resource</a> - a basic resource.</li>
+  <li><a href="#bzip2resource">bzip2resource</a> - a BZip2 compressed resource.</li>
+  <li><a href="#file">file</a> - a file.</li>
+  <li><a href="#gzipresource">gzipresource</a> - a GZip compressed resource.</li>
+  <li><a href="#javaresource">javaresource</a> - a resource loadable
+        via a Java classloader.</li>
+  <li><a href="#propertyresource">propertyresource</a> - an Ant property.</li>
+  <li><a href="#string">string</a> - a text string.</li>
+  <li><a href="#tarentry">tarentry</a> - an entry in a tar file.</li>
+  <li><a href="#url">url</a> - a URL.</li>
+  <li><a href="#zipentry">zipentry</a> - an entry in a zip file.</li>
+</ul>
+
+<h4><a name="basic">resource</a></h4>
+
+<p>A basic resource. Other resource types derive from this basic
+type; as such all its attributes are available, though in most cases
+irrelevant attributes will be ignored. This and all resource
+implementations are also usable as single-element
+<a href="#collection">Resource Collections</a>.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of this resource</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">exists</td>
+    <td valign="top">Whether this resource exists</td>
+    <td align="center" valign="top">No, default <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">lastmodified</td>
+    <td valign="top">The last modification time of this resource</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">directory</td>
+    <td valign="top">Whether this resource is directory-like</td>
+    <td align="center" valign="top">No, default <i>false</i></td>
+  </tr>
+  <tr>
+    <td valign="top">size</td>
+    <td valign="top">The size of this resource</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4><a name="file">file</a></h4>
+
+<p>Represents a file accessible via local filesystem conventions.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file represented by this resource</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">The base directory of this resource.  When this
+      attribute is set, attempts to access the name of the resource
+      will yield a path relative to this location.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h4><a name="javaresource">javaresource</a></h4>
+
+<p>Represents a resource loadable via a Java classloader.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the resource.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use when looking up a resource.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">the classpath to use when looking up a resource,
+      given as <a href="../using.html#references">reference</a>
+      to a <code>&lt;path&gt;</code> defined elsewhere..</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">loaderRef</td>
+    <td valign="top">the name of the loader that is
+      used to load the resource, constructed from the specified classpath.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>The classpath can also be specified as nested classpath element,
+where <b>&lt;classpath&gt;</b> is a <a
+href="../using.html#path">path-like</a> structure.</p>
+
+<h4><a name="zipentry">zipentry</a></h4>
+
+<p>Represents an entry in a ZIP archive.  The archive can be specified
+using the archive attribute or a nested single-element resource
+collection.  <code>zipentry</code> only supports file system resources
+as nested elements.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">zipfile or its alias name archive</td>
+    <td valign="top">The zip file containing this resource</td>
+    <td align="center" valign="top">Yes, unless a nested resource
+    collection has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the archived resource</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the zipfile</td>
+    <td align="center" valign="top">No;
+      platform default used if unspecified</td>
+  </tr>
+</table>
+
+<h4><a name="tarentry">tarentry</a></h4>
+
+<p>Represents an entry in a TAR archive.  The archive can be specified
+using the archive attribute or a nested single-element resource
+collection.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">archive</td>
+    <td valign="top">The tar archive containing this resource</td>
+    <td align="center" valign="top">Yes, unless a nested resource
+    collection has been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the archived resource</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4><a name="gzipresource">gzipresource</a></h4>
+
+<p>This is not a stand-alone resource, but a wrapper around another
+resource providing compression of the resource's contents on the fly.
+A single element resource collection must be specified as a nested
+element.</p>
+
+<h4><a name="bzip2resource">bzip2resource</a></h4>
+
+<p>This is not a stand-alone resource, but a wrapper around another
+resource providing compression of the resource's contents on the fly.
+A single element resource collection must be specified as a nested
+element.</p>
+
+<h4><a name="url">url</a></h4>
+
+<p>Represents a URL.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The url to expose</td>
+    <td rowspan="3" align="center" valign="middle">Exactly one of these</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to expose as a file: url</td>
+  </tr>
+</table>
+
+<h4><a name="string">string</a></h4>
+
+<p>Represents a Java String. As such a string is readable but not writable.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The value of this resource</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4><a name="propertyresource">propertyresource</a></h4>
+
+<p>Represents an Ant property.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The property name</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<hr>
+<h2><a name="collection">Resource Collections</a></h2>
+<p>
+A Resource Collection is an abstraction of an entity that groups
+together a number of <a href="#resource">resources</a>. Several of
+Ant's "legacy" datatypes have been modified to behave as Resource Collections:
+<ul>
+  <li><a href="fileset.html">fileset</a>,
+    <a href="dirset.html">dirset</a>,
+    <a href="filelist.html">filelist</a>, and
+    <a href="../using.html#path">path</a>
+    (and derivative types) expose <a href="#file">file</a> resources
+  </li>
+  <li><a href="zipfileset.html">tarfileset</a>
+    can expose <a href="#file">file</a> or <a href="#tarentry">tarentry</a>
+    resources depending on configuration
+  </li>
+  <li><a href="zipfileset.html">zipfileset</a>
+    can expose <a href="#file">file</a> or <a href="#zipentry">zipentry</a>
+    resources depending on configuration
+  </li>
+  <li><a href="propertyset.html">propertyset</a>
+    exposes <a href="#property">property</a> resources
+  </li>
+</ul>
+</p>
+<h3>The additional built-in resource collections are:</h3>
+<ul>
+  <li><a href="#resources">resources</a> - generic resource collection</li>
+  <li><a href="#files">files</a> - collection of files similar to
+    <a href="fileset.html">fileset</a></li>
+  <li><a href="#restrict">restrict</a> - restrict a resource collection
+    to include only resources meeting specified criteria</li>
+  <li><a href="#sort">sort</a> - sorted resource collection</li>
+  <li><a href="#first">first</a> - first <i>n</i> resources from a
+    nested collection</li>
+  <li><a href="#tokens">tokens</a> - <a href="#string">string</a> tokens
+    gathered from a nested collection</li>
+  <li><a href="#union">union</a> - set union of nested resource collections</li>
+  <li><a href="#intersect">intersect</a> - set intersection
+    of nested resource collections</li>
+  <li><a href="#difference">difference</a> - set difference
+    of nested resource collections</li>
+</ul>
+<h4><a name="resources">resources</a></h4>
+<p>A generic resource collection, designed for use with
+  <a href="../using.html#references">references</a>.
+  For example, if a third-party Ant task generates a Resource Collection
+  of an unknown type, it can still be accessed via a
+  <code>&lt;resources&gt;</code> collection. The secondary use of this
+  collection type is as a container of other resource collections,
+  preserving the order of nested collections as well as
+  duplicate resources (contrast with <a href="#union">union</a>).
+</p>
+
+<h4><a name="files">files</a></h4>
+<p>A group of files. These files are matched by <b>absolute</b> patterns
+  taken from a number of <a href="patternset.html">PatternSets</a>.
+  These can be specified as nested <code>&lt;patternset&gt;</code>
+  elements. In addition, <code>&lt;files&gt;</code> holds an implicit
+  PatternSet and supports the nested <code>&lt;include&gt;</code>,
+  <code>&lt;includesfile&gt;</code>, <code>&lt;exclude&gt;</code>
+  and <code>&lt;excludesfile&gt;</code> elements of PatternSet directly,
+  as well as PatternSet's attributes.
+</p>
+<p><a href="selectors.html">File Selectors</a> are available as nested
+  elements. A file must be selected by all selectors in order to be included;
+  <code>&lt;files&gt;</code> is thus equivalent to an
+  <code>&lt;and&gt;</code> file selector container.
+</p>
+<p><b>More simply put</b>, this type is equivalent to a
+  <a href="fileset.html">fileset</a> with no base directory.
+  <b>Please note</b> that without a base directory,
+  filesystem scanning is based entirely on include and exclude patterns.
+  A <a href="selectors.html#filenameselect">filename</a> (or any)
+  selector can <i>only</i> influence the scanning process <i>after</i>
+  the file has been included based on pattern-based selection.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns
+      of files that must be included</td>
+    <td rowspan="2" valign="middle" align="center">At least one of these</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an include pattern.</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns
+      of files that must be excluded</td>
+    <td rowspan="2" valign="top" align="center">No, default none
+      (except default excludes when true)</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file; each line of this file is
+      taken to be an exclude pattern.</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">Whether
+      <a href="../dirtasks.html#defaultexcludes">default excludes</a>
+      should be used</td>
+    <td valign="top" align="center">No, default <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">casesensitive</td>
+    <td valign="top">Whether patterns are case-sensitive</td>
+    <td valign="top" align="center">No, default <i>true</i></td>
+  </tr>
+  <tr>
+    <td valign="top">followsymlinks</td>
+    <td valign="top">Whether to follow symbolic links
+      (see note <a href="#symlink">below</a>)</td>
+    <td valign="top" align="center">No, default <i>true</i></td>
+  </tr>
+</table>
+
+<p><a name="symlink"><b>Note</b></a>: All files/directories for which
+the canonical path is different from its path are considered symbolic
+links.  On Unix systems this usually means the file really is a
+symbolic link but it may lead to false results on other
+platforms.
+</p>
+
+<h4><a name="restrict">restrict</a></h4>
+<p>Restricts another nested resource collection using resource selectors:
+<blockquote>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>A single resource collection is required.</p>
+  <p>Nested resource selectors are used to "narrow down" the included
+    resources. These are patterned after <a href="selectors.html">file
+    selectors</a> but are, unsurprisingly, targeted to resources.
+    Several built-in resource selectors are available in the internal
+    <a href="antlib.html">antlib</a>
+    <code>org.apache.tools.ant.types.resources.selectors</code>:
+  </p>
+
+  <ul>
+    <li><a href="#rsel.name">name</a> - select resources by name.</li>
+    <li><a href="#rsel.exists">exists</a> - select existing resources.</li>
+    <li><a href="#rsel.date">date</a> - select resources by date.</li>
+    <li><a href="#rsel.type">type</a> - select resources by type.</li>
+    <li><a href="#rsel.size">size</a> - select resources by size.</li>
+    <li><a href="#rsel.instanceof">instanceof</a>
+      - select resources by class or Ant datatype.</li>
+    <li><a href="#rsel.and">and</a> - "and" nested resource selectors.</li>
+    <li><a href="#rsel.or">or</a> - "or" nested resource selectors.</li>
+    <li><a href="#rsel.not">not</a> - "not" a nested resource selector.</li>
+    <li><a href="#rsel.none">none</a>
+      - select resources selected by no nested resource selectors.</li>
+    <li><a href="#rsel.majority">majority</a> - select resources selected
+      by a majority of nested resource selectors.</li>
+    <li><a href="selectors.html#modified">modified</a> - select resources which
+      content has changed.</li>
+    <li><a href="selectors.html#containsselect">contains</a> - select resources 
+      containing a particular text string.</li>
+    <li><a href="selectors.html#regexpselect">containsregexp</a> - select
+      resources whose contents match a particular regular expression.</li>
+    <li><a href="#rsel.compare">compare</a> - select resources
+      based on comparison to other resources.</li>
+  </ul>
+
+  <h4><a name="rsel.name">name</a></h4>
+  <p>Selects resources by name.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">name</td>
+      <td valign="top">The name pattern to test</td>
+      <td align="center" valign="top">Yes</td>
+    </tr>
+    <tr>
+      <td valign="top">casesensitive</td>
+      <td valign="top">Whether name comparisons are case-sensitive</td>
+      <td align="center" valign="top">No, default <i>true</i></td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.exists">exists</a></h4>
+  <p>Selects existing resources.</p>
+
+  <h4><a name="rsel.date">date</a></h4>
+  <p>Selects resources by date.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">millis</td>
+      <td valign="top">The comparison date/time in ms since January 1, 1970</td>
+      <td rowspan="2" align="center" valign="middle">One of these</td>
+    </tr>
+    <tr>
+      <td valign="top">datetime</td>
+      <td valign="top">The formatted comparison date/time</td>
+    </tr>
+    <tr>
+      <td valign="top">pattern</td>
+      <td valign="top">SimpleDateFormat-compatible pattern
+        for use with the <code>datetime</code> attribute</td>
+      <td align="center" valign="top">
+        No, default is "MM/DD/YYYY HH:MM AM_or_PM"</td>
+    </tr>
+    <tr>
+      <td valign="top">granularity</td>
+      <td valign="top">The number of milliseconds leeway to use when
+        comparing file modification times. This is needed because not
+        every file system supports tracking the last modified time to
+        the millisecond level.</td>
+      <td align="center" valign="top">No; default varies by platform:
+        FAT filesystems = 2 sec; Unix = 1 sec; NTFS = 1 ms.</td>
+    </tr>
+    <tr>
+      <td valign="top">when</td>
+      <td valign="top">One of "before", "after", "equal"</td>
+      <td align="center" valign="top">No, default "equal"</td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.type">type</a></h4>
+  <p>Selects resources by type (file or directory).</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">type</td>
+      <td valign="top">One of "file", "dir"</td>
+      <td align="center" valign="top">Yes</td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.size">size</a></h4>
+  <p>Selects resources by size.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">size</td>
+      <td valign="top">The size to compare</td>
+      <td align="center" valign="top">Yes</td>
+    </tr>
+    <tr>
+      <td valign="top">when</td>
+      <td valign="top">One of "equal", "eq", "greater", "gt", "less", "lt",
+        "ge" (greater or equal), "ne" (not equal), "le" (less or equal)</td>
+      <td align="center" valign="top">No, default "equal"</td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.instanceof">instanceof</a></h4>
+  <p>Selects resources by type.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">class</td>
+      <td valign="top">The class of which the resource must be an instance</td>
+      <td rowspan="2" align="center" valign="middle">One of these</td>
+    </tr>
+    <tr>
+      <td valign="top">type</td>
+      <td valign="top">The Ant type that must
+        be assignable from the resource</td>
+    </tr>
+    <tr>
+      <td valign="top">uri</td>
+      <td valign="top">The uri in which <i>type</i> must be defined</td>
+      <td valign="top">No</td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.and">and</a></h4>
+  <p>Selects a resource if it is selected by all nested resource selectors.</p>
+
+  <h4><a name="rsel.or">or</a></h4>
+  <p>Selects a resource if it is selected
+    by at least one nested resource selector.</p>
+
+  <h4><a name="rsel.not">not</a></h4>
+  <p>Negates the selection result of the single
+    nested resource selector allowed.</p>
+
+  <h4><a name="rsel.none">none</a></h4>
+  <p>Selects a resource if it is selected
+    by no nested resource selectors.</p>
+
+  <h4><a name="rsel.majority">majority</a></h4>
+  <p>Selects a resource if it is selected
+    by the majority of nested resource selectors.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">allowtie</td>
+      <td valign="top">Whether a tie (when there is an even number
+        of nested resource selectors) is considered a majority</td>
+      <td valign="top">No, default <i>true</i></td>
+    </tr>
+  </table>
+
+  <h4><a name="rsel.compare">compare</a></h4>
+  <p>Selects a resource based on its comparison to one or more "control"
+     resources using nested <a href="#rcmp">resource comparators</a>.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">when</td>
+      <td valign="top">Comparison ("equal"/"eq", "greater"/"gt", "less"/"lt",
+        "le" (less or equal), "ge" (greater or equal), "ne" (not equal).</td>
+      <td valign="top">No, default "equal"</td>
+    </tr>
+    <tr>
+      <td valign="top">against</td>
+      <td valign="top">Quantifier ("all"/"each"/"every", "any"/"some",
+        (exactly) "one", "most"/"majority", "none".</td>
+      <td valign="top">No, default "all"</td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>The resources against which comparisons will be made must be specified
+    using the nested &lt;control&gt; element, which denotes a
+    <a href="#resources">resources</a> collection.</p>
+  <h3>Examples</h3>
+  <p>The following selects files a, b, c, and d:</p>
+  <pre>
+&lt;restrict&gt;
+  &lt;fileset dir="src" includes="a,b,c,d,e,f,g" /&gt;
+  &lt;rsel:compare when="le" against="all"&gt;
+    &lt;control&gt;
+      &lt;resource name="d" /&gt;
+    &lt;/control&gt;
+    &lt;rcmp:name /&gt;
+  &lt;/rsel:compare&gt;
+&lt;/restrict&gt;</pre>
+</blockquote>
+
+<h4><a name="sort">sort</a></h4>
+
+<p>Sorts another nested resource collection according to the resources'
+   natural order, or by one or more nested <a href="#rcmp">resource
+   comparators</a>:</p>
+<blockquote>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>A single resource collection is required.</p>
+  <p>The sort can be controlled and customized by specifying one or more
+    resource comparators. Resources can be sorted according to multiple
+    criteria; the first specified is the "outermost", while the last
+    specified is the "innermost". Several built-in resource comparators
+    are available in the internal <a href="antlib.html">antlib</a>
+    <code>org.apache.tools.ant.types.resources.comparators</code>:
+  </p>
+  <h4><a name="rcmp">Resource Comparators:</a></h4>
+  <ul>
+    <li><a href="#rcmp.name">name</a> - sort resources by name</li>
+    <li><a href="#rcmp.exists">exists</a> - sort resources by existence</li>
+    <li><a href="#rcmp.date">date</a> - sort resources by date</li>
+    <li><a href="#rcmp.type">type</a> - sort resources by type</li>
+    <li><a href="#rcmp.size">size</a> - sort resources by size</li>
+    <li><a href="#rcmp.content">content</a> - sort resources by content</li>
+    <li><a href="#rcmp.reverse">reverse</a> - reverse the natural sort order,
+      or that of a single nested resource comparator</li>
+  </ul>
+
+  <h4><a name="rcmp.name">name</a></h4>
+  <p>Sort resources by name.</p>
+
+  <h4><a name="rcmp.exists">exists</a></h4>
+  <p>Sort resources by existence.
+    Not existing is considered "less than" existing.</p>
+
+  <h4><a name="rcmp.date">date</a></h4>
+  <p>Sort resources by date.</p>
+
+  <h4><a name="rcmp.type">type</a></h4>
+  <p>Sort resources by type (file or directory).
+    Because directories contain files, they are considered "greater".</p>
+
+  <h4><a name="rcmp.size">size</a></h4>
+  <p>Sort resources by size.</p>
+
+  <h4><a name="rcmp.content">content</a></h4>
+  <p>Sort resources by content.</p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">binary</td>
+      <td valign="top">Whether content should be compared in binary mode.
+        If <i>false<i>, content will be compared without regard to
+        platform-specific line-ending conventions.</td>
+      <td valign="top">No, default <i>true</i></td>
+    </tr>
+  </table>
+
+  <h4><a name="rcmp.reverse">reverse</a></h4>
+  <p>Reverse the natural sort order, or that of a single nested comparator.</p>
+
+</blockquote>
+
+<h4><a name="first">first</a></h4>
+<p>Includes the first <i>count</i> resources from a nested resource collection.
+This can be used in conjunction with the <a href="#sort">sort</a> collection,
+for example, to select the first few oldest, largest, etc. resources from a
+larger collection.</p>
+<blockquote>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">count</td>
+      <td valign="top">The number of resources to include</td>
+      <td valign="top" align="center">No, default 1</td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>A single resource collection is required.</p>
+</blockquote>
+
+<h4><a name="tokens">tokens</a></h4>
+<p>Includes the <a href="#string">string</a> tokens gathered from a nested
+ resource collection. Uses the same tokenizers supported by the
+<a href="filterchain.html#tokenfilter">TokenFilter</a>. Hint: imaginative
+  use of this resource collection can implement equivalents for such Unix
+  functions as <code>sort</code>, <code>grep -c</code>, <code>wc</code> and
+  <code>wc -l</code>.</p>
+<blockquote>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">encoding</td>
+      <td valign="top">The encoding of the nested resources</td>
+      <td valign="top" align="center">No, default is platform default</td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+  <h4>Parameters specified as nested elements</h4>
+  <p>A single resource collection is required.</p>
+</blockquote>
+
+<h4><a name="setlogic">Set operations</a></h4>
+<blockquote>
+  <p>The following resource collections implement set operations:</p>
+  <ul>
+    <li><a href="#union">union</a></li>
+    <li><a href="#intersect">intersect</a></li>
+    <li><a href="#difference">difference</a></li>
+  </ul>
+
+  <h4><a name="union">union</a></h4>
+  <p>Union of nested resource collections.</p>
+
+  <h4><a name="intersect">intersect</a></h4>
+  <p>Intersection of nested resource collections.</p>
+
+  <h4><a name="difference">difference</a></h4>
+  <p>Difference of nested resource collections.</p>
+
+  <p>The following attributes apply to all set-operation resource collections:
+  </p>
+  <table border="1" cellpadding="2" cellspacing="0">
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td align="center" valign="top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">cache</td>
+      <td valign="top">Whether to cache results; disabling
+        may seriously impact performance</td>
+      <td valign="top" align="center">No, default <i>true</i></td>
+    </tr>
+  </table>
+</blockquote>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/selectors-program.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/selectors-program.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/selectors-program.html	(revision 14989)
@@ -0,0 +1,264 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  <head>
+    <meta http-equiv="Content-Language" content="en-us">
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Programming Selectors in Ant</title>
+  </head>
+
+  <body>
+    <h2>Programming your own Selectors</h2>
+
+    <h3>Selector Programming API</h3>
+
+    <p>Want to define your own selectors? It's easy!</p>
+
+    <p>First, pick the type of selector that you want to define. There
+    are three types, and a recipe for each one follows. Chances are
+    you'll want to work with the first one, Custom Selectors.</p>
+
+    <ol>
+      <li>Custom Selectors
+
+        <p>This is the category that Ant provides specifically for you to
+        define your own Selectors. Anywhere you want to use your selector
+        you use the <code>&lt;custom&gt;</code> element and specify
+        the class name of your selector within it. See the
+        <a href="selectors.html#customselect">Custom Selectors</a>
+        section of the Selector page for details. The
+        <code>&lt;custom&gt;</code> element can be used anywhere
+        the core selectors can be used. It can be contained within
+        <a href="selectors.html#selectcontainers">Selector Containers</a>,
+        for example.</p>
+
+        <p>To create a new Custom Selector, you have to create a class that
+        implements
+        <code>org.apache.tools.ant.types.selectors.ExtendFileSelector</code>.
+        The easiest way to do that is through the convenience base class
+        <code>org.apache.tools.ant.types.selectors.BaseExtendSelector</code>,
+        which provides all of the methods for supporting
+        <code>&lt;param&gt;</code> tags. First, override the
+        <code>isSelected()</code> method, and optionally the
+        <code>verifySettings()</code> method. If your custom
+        selector requires parameters to be set, you can also override
+        the <code>setParameters()</code> method and interpret the
+        parameters that are passed in any way you like. Several of the
+        core selectors demonstrate how to do that because they can
+        also be used as custom selectors.</p>
+
+      <li>Core Selectors
+
+        <p>These are the selectors used by Ant itself. To implement one of
+        these, you will have to alter some of the classes contained within
+        Ant.</p>
+
+        <ul>
+          <li><p>First, create a class that implements
+            <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+            You can either choose to implement all methods yourself from
+            scratch, or you can extend
+            <code>org.apache.tools.ant.types.selectors.BaseSelector</code>
+            instead, a convenience class that provides reasonable default
+            behaviour for many methods.</p>
+
+            <p>There is only one method required.
+            <code>public boolean isSelected(File basedir, String filename,
+              File file)</code>
+              is the real purpose of the whole exercise. It returns true
+              or false depending on whether the given file should be
+              selected from the list or not.</p>
+
+            <p>If you are using
+            <code>org.apache.tools.ant.types.selectors.BaseSelector</code>
+            there are also some predefined behaviours you can take advantage
+            of. Any time you encounter a problem when setting attributes or
+            adding tags, you can call setError(String errmsg) and the class
+            will know that there is a problem. Then, at the top of your
+            <code>isSelected()</code> method call <code>validate()</code> and
+            a BuildException will be thrown with the contents of your error
+            message. The <code>validate()</code> method also gives you a
+            last chance to check your settings for consistency because it
+            calls <code>verifySettings()</code>. Override this method and
+            call <code>setError()</code> within it if you detect any
+            problems in how your selector is set up.</p>
+
+            <p>You may also want to override <code>toString()</code>.</p>
+
+          <li><p>Put an <code>add</code> method for your selector in
+            <code>org.apache.tools.ant.types.selectors.SelectorContainer</code>.
+            This is an interface, so you will also have to add an implementation
+            for the method in the classes which implement it, namely
+            <code>org.apache.tools.ant.types.AbstractFileSet</code>,
+            <code>org.apache.tools.ant.taskdefs.MatchingTask</code> and
+            <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+            Once it is in there, it will be available everywhere that core
+            selectors are appropriate.</p>
+        </ul>
+
+      <li>Selector Containers
+        <p>Got an idea for a new Selector Container? Creating a new one is
+        no problem:</p>
+        <ul>
+          <li><p>Create a new class that implements
+            <code>org.apache.tools.ant.types.selectors.SelectorContainer</code>.
+            This will ensure that your new
+            Container can access any new selectors that come along. Again, there
+            is a convenience class available for you called
+            <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+            </p>
+          <li><p>Implement the
+            <code>public boolean isSelected(String filename, File file)</code>
+            method to do the right thing. Chances are you'll want to iterate
+            over the selectors under you, so use
+            <code>selectorElements()</code> to get an iterator that will do
+            that.</p>
+          <li><p>Again, put an <code>add</code> method for your container in
+            <code>org.apache.tools.ant.types.selectors.SelectorContainer</code>
+            and its implementations
+            <code>org.apache.tools.ant.types.AbstractFileSet</code> and
+            <code>org.apache.tools.ant.types.selectors.BaseSelectorContainer</code>.
+            </p>
+        </ul>
+    </ol>
+
+    <h3>Testing Selectors</h3>
+
+    <p>For a robust component (and selectors are (Project)Components) tests are
+    necessary. For testing Tasks we use JUnit TestCases - more specific
+    <tt>org.apache.tools.ant.BuildFileTest extends junit.framework.TestCase</tt>.
+    Some of its features like configure the (test) project by reading its buildfile and
+    execute targets we need for selector tests also. Therefore we use that BuildFileTest.
+    But testing selectors requires some more work: having a set of files, instantiate
+    and configure the selector, check the selection work and more. Because we usually
+    extend <tt>BaseExtendSelector</tt> its features have to be tested also (e.g. setError()).
+    </p>
+
+    <p>That's why we have a base class for doing our selector tests:
+    <tt>org.apache.tools.ant.types.selectors.BaseSelectorTest</tt>.</p>
+
+    <p>This class extends TestCase and therefore can included in the set of Ant's
+    unit tests. It holds an instance of preconfigured BuildFileTest. Configuration
+    is done by parsing the src/etc/testcases/types/selectors.xml. BaseSelectorTest
+    then gives us helper methods for handling multiple selections. </p>
+
+    <p>Because the term "testcase" or "testenvironment" are so often used, this
+    special testenvironment got a new name: <i>bed</i>. Like you initialize the
+    test environment by calling setUp() and cleaning by calling tearDown() (<i>or like
+    to make your bed before go sleeping</i>) you have to do that work with your
+    <i>bed</i> by calling <tt>makeBed()</tt> respecitive <tt>cleanupBed()</tt>.</p>
+
+    <p>A usual test scenario is<ol>
+       <li>make the bed</li>
+       <li>instantiate the selector</li>
+       <li>configure the selector</li>
+       <li>let the selector do some work</li>
+       <li>verify the work</li>
+       <li>clean the bed</li>
+       </ol>
+    </p>
+
+    <p>For common way of instantiation you have to override the <tt>getInstance()</tt>
+    simply by returning a new object of your selector. For easier "selection and verification work"
+    BaseSelectorTest provides the method <tt>performTests()</tt> which
+    iterates over all files (and directories) in the String array <tt>filenames</tt>
+    and checks whether the given selector returns the expected result. If an error
+    occurred (especially the selector does not return the expected result) the test
+    fails and the failing filenames are logged.</p>
+
+    <p>An example test would be:<pre>
+package org.apache.tools.ant.types.selectors;
+
+public class MySelectorTest extends BaseSelectorTest {
+
+    public MySelectorTest(String name) {
+        super(name);
+    }
+
+    public BaseSelector getInstance() {
+        return new MySelector();
+    }
+
+    public void testCase1() {
+        try {
+            // initialize test environment 'bed'
+            makeBed();
+
+            // Configure the selector
+            MySelector s = (MySelector)getSelector();
+            s.addParam("key1", "value1");
+            s.addParam("key2", "value2");
+            s.setXX(true);
+            s.setYY("a value");
+
+            // do the tests
+            performTests(s, "FTTTTTTTTTTT");  // First is not selected - rest is
+
+        } finally {
+            // cleanup the environment
+            cleanupBed();
+        }
+    }
+}
+    </pre>
+    As an example of an error JUnit could log<pre>
+    [junit]     FAILED
+    [junit] Error for files: <font color=blue>.;copy.filterset.filtered;tar/gz/asf-logo.gif.tar.gz</font>
+    [junit] expected:&lt;<font color=blue>FTTTFTTTF...</font>&gt; but was:&lt;TTTTTTTTT...&gt;
+    [junit] junit.framework.ComparisonFailure: Error for files: .;copy.filterset.filtered;tar/gz/asf-logo.gif.tar.gz
+    [junit] expected:&lt;FTTTFTTTF...&gt; but was:&lt;TTTTTTTTT...&gt;
+    [junit]     at junit.framework.Assert.assertEquals(Assert.java:81)
+    [junit]     at org.apache.tools.ant.types.selectors.BaseSelectorTest.performTest(BaseSelectorTest.java:194)
+    </pre></p>
+
+    <p>Described above the test class should provide a <tt>getInstance()</tt>
+    method. But that isn't used here. The used <tt>getSelector()</tt> method is
+    implemented in the base class and gives an instance of an Ant Project to
+    the selector. This is usually done inside normal build file runs, but not
+    inside this special environment, so this method gives the selector the
+    ability to use its own Project object (<tt>getProject()</tt>), for example
+    for logging.</p>
+
+
+    <h3>Logging</h3>
+
+    <p>During development and maybe later you sometimes need the output of information.
+    Therefore Logging is needed. Because the selector extends BaseExtendSelector or directly
+    BaseSelector it is an Ant <tt>DataType</tt> and therefore a <tt>ProjectComponent</tt>. <br>
+    That means that you have access to the project object and its logging capability.
+    <tt>ProjectComponent</tt> itself provides <i>log</i> methods which will do the
+    access to the project instance. Logging is therefore done simply with:
+    <pre>
+        log( "message" );
+    </pre>
+    or
+    <pre>
+        log( "message" , loglevel );
+    </pre>
+    where the <tt>loglevel</tt> is one of the values <ul>
+    <li> org.apache.tools.ant.Project.MSG_ERR </li>
+    <li> org.apache.tools.ant.Project.MSG_WARN </li>
+    <li> org.apache.tools.ant.Project.MSG_INFO  (= default) </li>
+    <li> org.apache.tools.ant.Project.MSG_VERBOSE </li>
+    <li> org.apache.tools.ant.Project.MSG_DEBUG </li>
+    </ul>
+    </p>
+
+    
+  </body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/selectors.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/selectors.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/selectors.html	(revision 14989)
@@ -0,0 +1,1527 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  <head>
+    <meta http-equiv="Content-Language" content="en-us">
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Selectors in Ant</title>
+  </head>
+
+  <body>
+    <h2>Selectors</h2>
+
+    <p>Selectors are a mechanism whereby the files that make up a
+    <code>&lt;fileset&gt;</code> can be selected based on criteria
+    other than filename as provided by the <code>&lt;include&gt;</code>
+    and <code>&lt;exclude&gt;</code> tags.</p>
+
+    <h3>How to use a Selector</h3>
+
+    <p>A selector is an element of FileSet, and appears within it. It can
+    also be defined outside of any target by using the <code>&lt;selector&gt;</code> tag
+    and then using it as a reference.
+    </p>
+
+    <p>Different selectors have different attributes. Some selectors can
+    contain other selectors, and these are called
+    <a href="#selectcontainers"><code>Selector Containers</code></a>.
+    There is also a category of selectors that allow
+    user-defined extensions, called
+    <a href="#customselect"><code>Custom Selectors</code></a>.
+    The ones built in to Ant are called
+    <a href="#coreselect"><code>Core Selectors</code></a>.
+    </p>
+
+    <a name="coreselect"></a>
+    <h3>Core Selectors</h3>
+
+    <p>Core selectors are the ones that come standard
+    with Ant. They can be used within a fileset and can be contained
+    within Selector Containers.</p>
+
+    <p>The core selectors are:</p>
+
+    <ul>
+      <li><a href="#containsselect"><code>&lt;contains&gt;</code></a> - Select
+        files that contain a particular text string</li>
+      <li><a href="#dateselect"><code>&lt;date&gt;</code></a> - Select files
+        that have been modified either before or after a particular date
+        and time</li>
+      <li><a href="#dependselect"><code>&lt;depend&gt;</code></a> - Select files
+        that have been modified more recently than equivalent files
+        elsewhere</li>
+      <li><a href="#depthselect"><code>&lt;depth&gt;</code></a> - Select files
+        that appear so many directories down in a directory tree</li>
+      <li><a href="#differentselect"><code>&lt;different&gt;</code></a> - Select files
+        that are different from those elsewhere</li>
+      <li><a href="#filenameselect"><code>&lt;filename&gt;</code></a> - Select
+        files whose name matches a particular pattern. Equivalent to
+        the include and exclude elements of a patternset.</li>
+      <li><a href="#presentselect"><code>&lt;present&gt;</code></a> - Select
+        files that either do or do not exist in some other location</li>
+      <li><a href="#regexpselect"><code>&lt;containsregexp&gt;</code></a> - Select
+        files that match a regular expression</li>
+      <li><a href="#sizeselect"><code>&lt;size&gt;</code></a> - Select files
+        that are larger or smaller than a particular number of bytes.</li>
+      <li><a href="#typeselect"><code>&lt;type&gt;</code></a> - Select files
+        that are either regular files or directories.</li>
+      <li><a href="#modified"><code>&lt;modified&gt;</code></a> - Select files if
+        the return value of the configured algorithm is different from that
+        stored in a cache.</li>
+      <li><a href="#signedselector"><code>&lt;signedselector&gt;</code></a> - Select files if
+        they are signed, and optionally if they have a signature of a certain name.
+      </li>
+      <li><a href="#scriptselector"><code>&lt;scriptselector&gt;</code></a> - 
+        Use a BSF or JSR 223 scripting language to create
+        your own selector
+      </li>
+    </ul>
+
+    <a name="containsselect"></a>
+    <h4>Contains Selector</h4>
+
+    <p>The <code>&lt;contains&gt;</code> tag in a FileSet limits
+    the files defined by that fileset to only those which contain the
+    string specified by the <code>text</code> attribute.
+    .</p>
+    <p>The <code>&lt;contains&gt;</code> selector can be used as a
+      ResourceSelector (see the
+      <a href="resources.html#restrict">&lt;restrict&gt;</a>
+      ResourceCollection).</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">text</td>
+        <td valign="top">Specifies the text that every file must contain
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">casesensitive</td>
+        <td valign="top">Whether to pay attention to case when looking
+          for the string in the <code>text</code> attribute. Default is
+          true.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">ignorewhitespace</td>
+        <td valign="top">Whether to eliminate whitespace before checking
+          for the string in the <code>text</code> attribute. Default is
+          false.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Contains Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*.html&quot;&gt;
+    &lt;contains text=&quot;script&quot; casesensitive=&quot;no&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the HTML files that contain the string
+    <code>script</code>.</p>
+
+
+    <a name="dateselect"></a>
+    <h4>Date Selector</h4>
+
+    <p>The <code>&lt;date&gt;</code> tag in a FileSet will put
+    a limit on the files specified by the include tag, so that tags
+    whose last modified date does not meet the date limits specified
+    by the selector will not end up being selected.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">datetime</td>
+        <td valign="top">Specifies the date and time to test for.
+          Should be in the format MM/DD/YYYY HH:MM AM_or_PM, or
+          an alternative pattern specified via the <i>pattern</i>
+          attribute.
+        </td>
+        <td valign="top" align="center" rowspan="2">At least one of the two.</td>
+      </tr>
+      <tr>
+        <td valign="top">millis</td>
+        <td valign="top">The number of milliseconds since 1970 that should
+          be tested for. It is usually much easier to use the datetime
+          attribute.
+        </td>
+      </tr>
+      <tr>
+        <td valign="top">when</td>
+        <td valign="top">Indicates how to interpret the date, whether
+          the files to be selected are those whose last modified times should
+          be before, after, or equal to the specified value. Acceptable
+          values for this attribute are:
+          <ul>
+            <li>before - select files whose last modified date is before the indicated date
+            <li>after - select files whose last modified date is after the indicated date
+            <li>equal - select files  whose last modified date is this exact date
+          </ul>
+          The default is equal.
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">granularity</td>
+        <td valign="top">The number of milliseconds leeway to use when
+          comparing file modification times. This is needed because not every
+          file system supports tracking the last modified time to the
+          millisecond level. Default is 0 milliseconds, or 2 seconds on DOS systems.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">pattern</td>
+        <td valign="top">The <CODE>SimpleDateFormat</CODE>-compatible pattern
+          to use when interpreting the <i>datetime</i> attribute.
+          <i>Since Ant 1.6.2</i>
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">checkdirs</td>
+        <td valign="top">
+          Indicates whether or not to check dates on directories.
+        </td>
+        <td valign="top" align="center">No, defaults to <i>false</i></td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Date Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${jar.path}&quot; includes=&quot;**/*.jar&quot;&gt;
+    &lt;date datetime=&quot;01/01/2001 12:00 AM&quot; when=&quot;before&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all JAR files which were last modified before midnight
+    January 1, 2001.</p>
+
+
+    <a name="dependselect"></a>
+    <h4>Depend Selector</h4>
+
+    <p>The <code>&lt;depend&gt;</code> tag selects files
+    whose last modified date is later than another, equivalent file in
+    another location.</p>
+
+    <p>The <code>&lt;depend&gt;</code> tag supports the use of a
+    contained <a href="mapper.html"><code>&lt;mapper&gt;</code></a> element
+    to define the location of the file to be compared against. If no
+    <code>&lt;mapper&gt;</code> element is specified, the
+    <code>identity</code> type mapper is used.</p>
+
+    <p>The <code>&lt;depend&gt;</code> selector is case-sensitive.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">targetdir</td>
+        <td valign="top">The base directory to look for the files to compare
+          against. The precise location depends on a combination of this
+          attribute and the <code>&lt;mapper&gt;</code> element, if any.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">granularity</td>
+        <td valign="top">The number of milliseconds leeway to give before
+          deciding a file is out of date. This is needed because not every
+          file system supports tracking the last modified time to the
+          millisecond level. Default is 0 milliseconds, or 2 seconds on DOS systems.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Depend Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${ant.1.5}/src/main&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;depend targetdir=&quot;${ant.1.4.1}/src/main&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the Java source files which were modified in the
+      1.5 release.
+    </p>
+
+
+    <a name="depthselect"></a>
+    <h4>Depth Selector</h4>
+
+    <p>The <code>&lt;depth&gt;</code> tag selects files based on
+    how many directory levels deep they are in relation to the base
+    directory of the fileset.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">min</td>
+        <td valign="top">The minimum number of directory levels below
+          the base directory that a file must be in order to be selected.
+          Default is no limit.
+        </td>
+        <td valign="top" align="center" rowspan="2">At least one of the two.</td>
+      </tr>
+      <tr>
+        <td valign="top">max</td>
+        <td valign="top">The maximum number of directory levels below
+          the base directory that a file can be and still be selected.
+          Default is no limit.
+        </td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Depth Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;depth max=&quot;1&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all files in the base directory and one directory below
+    that.</p>
+
+    <a name="differentselect"></a>
+    <h4>Different Selector</h4>
+
+    <p>The <code>&lt;different&gt;</code> selector will select a file
+    if it is deemed to be 'different' from an equivalent file in
+    another location. The rules for determining difference between
+    the two files are as follows:
+    <ol>
+    <li> If there is no 'other' file, it's different.
+    <li> Files with different lengths are different.
+    <li> If <tt>ignoreFileTimes</tt> is turned off, then differing file
+    timestamps will cause files to be regarded as different.
+    <li> Unless <tt>ignoreContents</tt> is set to true,
+         a byte-for-byte check is run against the two files.
+    </ol>
+
+    This is a useful selector to work with programs and tasks that don't handle
+    dependency checking properly; even if a predecessor task always creates its
+    output files, followup tasks can be driven off copies made with a different
+    selector, so their dependencies are driven on the absolute state of the
+    files, not just a timestamp. For example: anything fetched from a web site,
+    or the output of some program. To reduce the amount of checking, when using
+    this task inside a <code>&lt;copy&gt;</code> task, set
+    <tt>preservelastmodified</tt> to <i>true</i> to propagate the timestamp
+    from the source file to the destination file.<p>
+
+    The <code>&lt;different&gt;</code> selector supports the use of a
+    contained <a href="mapper.html"><code>&lt;mapper&gt;</code></a> element
+    to define the location of the file to be compared against. If no
+    <code>&lt;mapper&gt;</code> element is specified, the
+    <code>identity</code> type mapper is used.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">targetdir</td>
+        <td valign="top">The base directory to look for the files to compare
+          against. The precise location depends on a combination of this
+          attribute and the <code>&lt;mapper&gt;</code> element, if any.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">ignoreFileTimes</td>
+        <td valign="top">Whether to use file times in the comparison or not.
+          Default is true (time differences are ignored).
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">ignoreContents</td>
+        <td valign="top">Whether to do a byte per byte compare.
+          Default is false (contents are compared).
+          Since Ant 1.6.3
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">granularity</td>
+        <td valign="top">The number of milliseconds leeway to give before
+          deciding a file is out of date. This is needed because not every
+          file system supports tracking the last modified time to the
+          millisecond level. Default is 0 milliseconds, or 2 seconds on DOS systems.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Different Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${ant.1.5}/src/main&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;different targetdir=&quot;${ant.1.4.1}/src/main&quot;
+        ignoreFileTimes="true"/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Compares all the Java source files between the 1.4.1 and the 1.5 release
+    and selects those who are different, disregarding file times.
+    </p>
+
+    <a name="filenameselect"></a>
+    <h4>Filename Selector</h4>
+
+    <p>The <code>&lt;filename&gt;</code> tag acts like the
+    <code>&lt;include&gt;</code> and <code>&lt;exclude&gt;</code>
+    tags within a fileset. By using a selector instead, however,
+    one can combine it with all the other selectors using whatever
+    <a href="#selectcontainers">selector container</a> is desired.
+    </p>
+
+    <p>The <code>&lt;filename&gt;</code> selector is
+    case-sensitive.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">name</td>
+        <td valign="top">The name of files to select. The name parameter
+          can contain the standard Ant wildcard characters.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">casesensitive</td>
+        <td valign="top">Whether to pay attention to case when looking
+          at file names. Default is "true".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">negate</td>
+        <td valign="top">Whether to reverse the effects of this filename
+          selection, therefore emulating an exclude rather than include
+          tag. Default is "false".
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Filename Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;filename name=&quot;**/*.css&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the cascading style sheet files.</p>
+
+
+    <a name="presentselect"></a>
+    <h4>Present Selector</h4>
+
+    <p>The <code>&lt;present&gt;</code> tag selects files
+    that have an equivalent file in another directory tree.</p>
+
+    <p>The <code>&lt;present&gt;</code> tag supports the use of a
+    contained <a href="mapper.html"><code>&lt;mapper&gt;</code></a> element
+    to define the location of the file to be tested against. If no
+    <code>&lt;mapper&gt;</code> element is specified, the
+    <code>identity</code> type mapper is used.</p>
+
+    <p>The <code>&lt;present&gt;</code> selector is case-sensitive.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">targetdir</td>
+        <td valign="top">The base directory to look for the files to compare
+          against. The precise location depends on a combination of this
+          attribute and the <code>&lt;mapper&gt;</code> element, if any.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">present</td>
+        <td valign="top">Whether we are requiring that a file is present in
+          the src directory tree only, or in both the src and the target
+          directory tree. Valid values are:
+          <ul>
+            <li>srconly - select files only if they are in the src
+              directory tree but not in the target directory tree
+            <li>both - select files only if they are present both in the
+              src and target directory trees
+          </ul>
+          Default is both. Setting this attribute to &quot;srconly&quot;
+          is equivalent to wrapping the selector in the <code>&lt;not&gt;</code>
+          selector container.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Present Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${ant.1.5}/src/main&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;present present=&quot;srconly&quot; targetdir=&quot;${ant.1.4.1}/src/main&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the Java source files which are new in the
+      1.5 release.
+    </p>
+
+    <a name="regexpselect"></a>
+    <h4>Regular Expression Selector</h4>
+
+    <p>The <code>&lt;containsregexp&gt;</code> tag in a FileSet limits
+    the files defined by that fileset to only those which contain a
+    match to the regular expression specified by the <code>expression</code> attribute.
+    </p>
+    <p>The <code>&lt;containsregexp&gt;</code> selector can be used as a
+      ResourceSelector (see the
+      <a href="resources.html#restrict">&lt;restrict&gt;</a>
+      ResourceCollection).</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">expression</td>
+        <td valign="top">Specifies the regular expression that must
+        match true in every file</td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the regular expression Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;*.txt&quot;&gt;
+    &lt;containsregexp expression=&quot;[4-6]\.[0-9]&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the text files that match the regular expression
+    (have a 4,5 or 6 followed by a period and a number from 0 to 9).
+
+
+    <a name="sizeselect"></a>
+    <h4>Size Selector</h4>
+
+    <p>The <code>&lt;size&gt;</code> tag in a FileSet will put
+    a limit on the files specified by the include tag, so that tags
+    which do not meet the size limits specified by the selector will not
+    end up being selected.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">value</td>
+        <td valign="top">The size of the file which should be tested for.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">units</td>
+        <td valign="top">The units that the <code>value</code> attribute
+          is expressed in. When using the standard single letter SI
+          designations, such as &quot;k&quot;,&quot;M&quot;, or
+          &quot;G&quot;, multiples of 1000 are used. If you want to use
+          power of 2 units, use the IEC standard: &quot;Ki&quot; for 1024,
+          &quot;Mi&quot; for 1048576, and so on. The default is no units,
+          which means the <code>value</code> attribute expresses the exact
+          number of bytes.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">when</td>
+        <td valign="top">Indicates how to interpret the size, whether
+          the files to be selected should be larger, smaller, or equal to
+          that value. Acceptable values for this attribute are:
+          <ul>
+            <li>less - select files less than the indicated size
+            <li>more - select files greater than the indicated size
+            <li>equal - select files this exact size
+          </ul>
+          The default is equal.
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Size Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${jar.path}&quot;&gt;
+  &lt;patternset&gt;
+    &lt;include name=&quot;**/*.jar&quot;/&gt;
+  &lt;/patternset&gt;
+  &lt;size value=&quot;4&quot; units=&quot;Ki&quot; when=&quot;more&quot;/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all JAR files that are larger than 4096 bytes.</p>
+
+    <a name="typeselect"></a>
+    <h4>Type Selector</h4>
+
+    <p>The <code>&lt;type&gt;</code> tag selects files of a certain type:
+    directory or regular.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">type</td>
+        <td valign="top">The type of file which should be tested for.
+            Acceptable values are:
+            <ul>
+                <li>file - regular files</li>
+                <li>dir - directories</li>
+            </ul>
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Type Selector to select only
+    directories in <code>${src}</code></p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${src}&quot;&gt;
+  &lt;type type="dir"/&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>The Type Selector is often used in conjunction with other selectors.
+    For example, to select files that also exist in a <code>template</code>
+    directory, but avoid selecting empty directories, use:
+
+<blockquote><pre>
+&lt;fileset dir="${src}"&gt;
+    &lt;and&gt;
+        &lt;present targetdir="template"/&gt;
+        &lt;type type="file"/&gt;
+    &lt;/and&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+
+    <a name="modified"></a>
+    <h4>Modified Selector</h4>
+    <p>The <code>&lt;modified&gt;</code> selector computes a value for a file, compares that
+    to the value stored in a cache and select the file, if these two values
+    differ.</p>
+    <p>Because this selector is highly configurable the order in which the selection is done
+    is: <ol>
+        <li> get the absolute path for the file </li>
+        <li> get the cached value from the configured cache (absolute path as key) </li>
+        <li> get the new value from the configured algorithm </li>
+        <li> compare these two values with the configured comparator </li>
+        <li> update the cache if needed and requested </li>
+        <li> do the selection according to the comparison result </li>
+        </ol>
+    The comparison, computing of the hashvalue and the store is done by implementation
+    of special interfaces. Therefore they may provide additional parameters.</p>
+
+    <p>The <code>&lt;modified&gt;</code> selector can be used as a
+      ResourceSelector (see the
+      <a href="resources.html#restrict">&lt;restrict&gt;</a>
+      ResourceCollection).
+    In that case it maps simple file resources to files and does its job. If the
+    resource is from another type, the <code>&lt;modified&gt;</code> selector tries
+    to (<b>attention!</b>) copy the content into a local file for computing the
+    hashvalue.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top"> algorithm </td>
+        <td valign="top"> The type of algorithm should be used.
+            Acceptable values are (further information see later):
+            <ul>
+                <li> hashvalue - HashvalueAlgorithm </li>
+                <li> digest - DigestAlgorithm </li>
+                <li> checksum - ChecksumAlgorithm </li>
+            </ul>
+        </td>
+        <td valign="top" align="center"> No, defaults to <i>digest</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> cache </td>
+        <td valign="top"> The type of cache should be used.
+            Acceptable values are (further information see later):
+            <ul>
+                <li> propertyfile - PropertyfileCache </li>
+            </ul>
+        </td>
+        <td valign="top" align="center"> No, defaults to <i>propertyfile</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> comparator </td>
+        <td valign="top"> The type of comparator should be used.
+            Acceptable values are (further information see later):
+            <ul>
+                <li> equal - EqualComparator </li>
+                <li> rule - java.text.RuleBasedCollator
+                  <!-- NOTE -->
+                  <i>(see <a href="#ModSelNote">note</a> for restrictions)</i>
+                </li>
+            </ul>
+        </td>
+        <td valign="top" align="center"> No, defaults to <i>equal</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> algorithmclass </td>
+        <td valign="top"> Classname of custom algorithm implementation. Lower
+          priority than <i>algorithm</i>. </td>
+        <td valign="top" align="center"> No </td>
+      </tr>
+      <tr>
+        <td valign="top"> cacheclass </td>
+        <td valign="top"> Classname of custom cache implementation. Lower
+          priority than <i>cache</i>. </td>
+        <td valign="top" align="center"> No </td>
+      </tr>
+      <tr>
+        <td valign="top"> comparatorclass </td>
+        <td valign="top"> Classname of custom comparator implementation. Lower
+          priority than <i>comparator</i>. </td>
+        <td valign="top" align="center"> No </td>
+      </tr>
+      <tr>
+        <td valign="top"> update </td>
+        <td valign="top"> Should the cache be updated when values differ? (boolean) </td>
+        <td valign="top" align="center"> No, defaults to <i>true</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> seldirs </td>
+        <td valign="top"> Should directories be selected? (boolean) </td>
+        <td valign="top" align="center"> No, defaults to <i>true</i> </td>
+      </tr>
+      <tr>
+        <td valign="top"> selres </td>
+        <td valign="top"> Should Resources whithout an InputStream, and
+           therefore without checking, be selected?  (boolean) </td>
+        <td valign="top" align="center"> No, defaults to <i>true</i>. Only relevant
+           when used as ResourceSelector. </td>
+      </tr>
+      <tr>
+        <td valign="top"> delayupdate </td>
+        <td valign="top"> If set to <i>true</i>, the storage of the cache will be delayed until the
+             next finished BuildEvent; task finished, target finished or build finished,
+             whichever comes first.  This is provided for increased performance.  If set
+             to <i>false</i>, the storage of the cache will happen with each change.  This
+             attribute depends upon the <i>update</i> attribute. (boolean)</td>
+        <td valign="top" align="center"> No, defaults to <i>true</i> </td>
+      </tr>
+    </table>
+
+    <p>These attributes can be set with nested <code>&lt;param/&gt;</code> tags. With <code>&lt;param/&gt;</code>
+    tags you can set other values too - as long as they are named according to
+    the following rules: <ul>
+        <li> <b> algorithm </b>: same as attribute algorithm </li>
+        <li> <b> cache </b>: same as attribute cache </li>
+        <li> <b> comparator </b>: same as attribute comparator </li>
+        <li> <b> algorithmclass </b>: same as attribute algorithmclass </li>
+        <li> <b> cacheclass </b>: same as attribute cacheclass </li>
+        <li> <b> comparatorclass </b>: same as attribute comparatorclass </li>
+        <li> <b> update </b>: same as attribute update </li>
+        <li> <b> seldirs </b>: same as attribute seldirs </li>
+        <li> <b> algorithm.* </b>: Value is transfered to the algorithm via its
+                                   <i>set</i>XX-methods </li>
+        <li> <b> cache.* </b>: Value is transfered to the cache via its
+                                   <i>set</i>XX-methods </li>
+        <li> <b> comparator.* </b>: Value is transfered to the comparator via its
+                                   <i>set</i>XX-methods </li>
+    </ul></p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr><td colspan="2"><font size="+1"><b> Algorithm options</b></font></td></tr>
+      <tr>
+        <td valign="top"><b>Name</b></td>
+        <td valign="top"><b>Description</b></td>
+      </tr>
+      <tr>
+        <td valign="top"> hashvalue </td>
+        <td valign="top"> Reads the content of a file into a java.lang.String
+          and use thats hashValue(). No additional configuration required.
+        </td>
+      </tr>
+      <tr>
+        <td valign="top"> digest </td>
+        <td valign="top"> Uses java.security.MessageDigest. This Algorithm supports
+          the following attributes:
+          <ul>
+            <li><i>algorithm.algorithm</i> (optional): Name of the Digest algorithm
+                (e.g. 'MD5' or 'SHA', default = <i>MD5</i>) </li>
+            <li><i>algorithm.provider</i> (optional): Name of the Digest provider
+                (default = <i>null</i>) </li>
+          </ul>
+        </td>
+      </tr>
+      <tr>
+        <td valign="top"> checksum </td>
+        <td valign="top"> Uses java.util.zip.Checksum. This Algorithm supports
+          the following attributes:
+          <ul>
+            <li><i>algorithm.algorithm</i> (optional): Name of the algorithm
+                (e.g. 'CRC' or 'ADLER', default = <i>CRC</i>) </li>
+          </ul>
+        </td>
+      </tr>
+      <tr><td colspan="2"><font size="+1"><b> Cache options </b></font></td></tr>
+      <tr>
+        <td valign="top"> propertyfile </td>
+        <td valign="top"> Use the java.util.Properties class and its possibility
+          to load and store to file.
+          This Cache implementation supports the following attributes:
+          <ul>
+            <li><i>cache.cachefile</i> (optional): Name of the properties-file
+                (default = <i>cache.properties</i>) </li>
+          </ul>
+        </td>
+      </tr>
+      <tr><td colspan="2"><font size="+1"><b> Comparator options</b></font></td></tr>
+      <tr>
+        <td valign="top"> equal </td>
+        <td valign="top"> Very simple object comparison. </td>
+      </tr>
+      <tr>
+        <td valign="top"> rule </td>
+        <td valign="top"> Uses <i>java.text.RuleBasedCollator</i> for Object
+          comparison.
+          <!-- NOTE -->
+          <i>(see <a href="#ModSelNote">note</a> for restrictions)</i>
+        </td>
+      </tr>
+    </table>
+
+    <p>The <code>&lt;modified&gt;</code> selector supports a nested
+    <code>&lt;classpath&gt;</code> element that represents a <a href="../using.html#path">
+    PATH like structure</a> for finding custom interface implementations. </p>
+
+    <p>Here are some examples of how to use the Modified Selector:</p>
+
+    <blockquote><pre>
+    &lt;copy todir="dest"&gt;
+        &lt;fileset dir="src"&gt;
+            &lt;modified/&gt;
+        &lt;/fileset&gt;
+    &lt;/copy&gt;
+    </pre></blockquote>
+    <p>This will copy all files from <i>src</i> to <i>dest</i> which content has changed.
+    Using an updating PropertyfileCache with cache.properties and
+    MD5-DigestAlgorithm.</p>
+
+    <blockquote><pre>
+    &lt;copy todir="dest"&gt;
+        &lt;fileset dir="src"&gt;
+            &lt;modified update="true"
+                      seldirs="true"
+                      cache="propertyfile"
+                      algorithm="digest"
+                      comparator="equal"&gt;
+                &lt;param name="cache.cachefile"     value="cache.properties"/&gt;
+                &lt;param name="algorithm.algorithm" value="MD5"/&gt;
+            &lt;/modified&gt;
+        &lt;/fileset&gt;
+    &lt;/copy&gt;
+    </pre></blockquote>
+  <p>This is the same example rewritten as CoreSelector with setting the all the values
+  (same as defaults are).</p>
+
+    <blockquote><pre>
+    &lt;copy todir="dest"&gt;
+        &lt;fileset dir="src"&gt;
+            &lt;custom class="org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector"&gt;
+                &lt;param name="update"     value="true"/&gt;
+                &lt;param name="seldirs"    value="true"/&gt;
+                &lt;param name="cache"      value="propertyfile"/&gt;
+                &lt;param name="algorithm"  value="digest"/&gt;
+                &lt;param name="comparator" value="equal"/&gt;
+                &lt;param name="cache.cachefile"     value="cache.properties"/&gt;
+                &lt;param name="algorithm.algorithm" value="MD5"/&gt;
+            &lt;/custom&gt;
+        &lt;/fileset&gt;
+    &lt;/copy&gt;
+    </pre></blockquote>
+  <p>And this is the same rewritten as CustomSelector.</p>
+
+    <blockquote><pre>
+  &lt;target name="generate-and-upload-site"&gt;
+      &lt;echo&gt; generate the site using forrest &lt;/echo&gt;
+      &lt;antcall target="site"/&gt;
+
+      &lt;echo&gt; upload the changed file &lt;/echo&gt;
+      &lt;ftp server="${ftp.server}" userid="${ftp.user}" password="${ftp.pwd}"&gt;
+          &lt;fileset dir="htdocs/manual"&gt;
+              &lt;modified/&gt;
+          &lt;/fileset&gt;
+      &lt;/ftp&gt;
+  &lt;/target&gt;
+    </pre></blockquote>
+  <p>A useful scenario for this selector inside a build environment
+  for homepage generation (e.g. with <a href="http://xml.apache.org/forrest/">
+  Apache Forrest</a>). Here all <b>changed</b> files are uploaded to the server. The
+  CacheSelector saves therefore much upload time.</p>
+
+    <blockquote><pre>
+  &lt;modified cacheclassname="com.mycompany.MyCache"&gt;
+      &lt;classpath&gt;
+          &lt;pathelement location="lib/mycompony-antutil.jar"/&gt;
+      &lt;/classpath&gt;
+  &lt;/modified&gt;
+    </pre></blockquote>
+    <p>Uses <tt>com.mycompany.MyCache</tt> from a jar outside of Ants own classpath
+    as cache implementation</p>
+
+  <a name="ModSelNote"></a>
+  <h4>Note on RuleBasedCollator</h4>
+  <p>The RuleBasedCollator needs a format for its work, but its needed while
+  instantiation. There is a problem in the initialization algorithm for this
+  case. Therefore you should not use this (or tell me the workaround :-).</p>
+
+      <a name="signedselector"></a>
+      <h4>Signed Selector</h4>
+
+      <p>
+        The <code>&lt;signedselector&gt;</code> tag selects signed files and optionaly
+        signed with a certain name.
+      </p>
+      <p>
+        This selector has been added in Apache Ant 1.7.
+      </p>
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+        <tr>
+          <td valign="top">name</td>
+          <td valign="top"> The signature name to check for.</td>
+          <td valign="top" align="center">no</td>
+        </tr>
+      </table>
+
+      <a name="scriptselector"></a>
+      <h4>Script Selector</h4>
+
+      <p>
+        The <code>&lt;scriptselector&gt;</code> element enables you
+        to write a complex selection algorithm in any
+        <a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+        or
+        <a href="https://scripting.dev.java.net">JSR 223</a>
+        supported language.</p>
+        See the <a href="../OptionalTasks/script.html">Script</a> task for
+        an explanation of scripts and dependencies.
+      </p>
+      <p>
+        This selector was added in Apache Ant 1.7.
+      </p>
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Required</b></td>
+        </tr>
+        <tr>
+          <td valign="top">language</td>
+          <td valign="top">language of the script.</td>
+          <td valign="top" align="center">yes</td>
+        </tr>
+        <tr>
+          <td valign="top">manager</td>
+          <td valign="top">
+            The script engine manager to use.
+            See the <a href="../OptionalTasks/script.html">script</a> task
+            for using this attribute.
+          </td>
+          <td valign="top" align="center">No - default is "auto"</td>
+        </tr>
+        <tr>
+          <td valign="top">src</td>
+          <td valign="top">filename of the script</td>
+          <td valign="top" align="center">no</td>
+        </tr>
+        <tr>
+          <td valign="top">setbeans</td>
+          <td valign="top">whether to have all properties, references and targets as
+            global variables in the script.</td>
+          <td valign="top" align="center">No, default is "true".</td>
+        </tr>
+        <tr>
+          <td valign="top">classpath</td>
+          <td valign="top">
+            The classpath to pass into the script.
+          </td>
+          <td align="center" valign="top">No</td>
+        </tr>
+        <tr>
+          <td valign="top">classpathref</td>
+          <td valign="top">The classpath to use, given as a
+            <a href="../using.html#references">reference</a> to a path defined elsewhere.
+            <td align="center" valign="top">No</td>
+          </tr>
+      </table>
+  <p>
+    This selector can take a nested &lt;classpath&gt; element.
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    on how to use this element.
+  </p>
+      <p>
+      If no <code>src</code> attribute is supplied, the script must be nested
+      inside the selector declaration.
+      </p>
+      <p>The embedded script is invoked for every test, with
+         the bean <code>self</code>
+        is bound to the selector. It has an attribute <code>selected</code>
+        must can be set using <code>setSelected(boolean)</code> to select that
+        file.
+
+      <p>
+
+      The following beans are configured for every script, alongside
+      the classic set of project, properties, and targets.
+
+      <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Bean</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td valign="top"><b>Type</b></td>
+        </tr>
+        <tr>
+          <td valign="top">self</td>
+          <td valign="top">selector instance</td>
+          <td valign="top">org.apache.tools.ant.types.optional</td>
+        </tr>
+        <tr>
+          <td valign="top">filename</td>
+          <td valign="top">filename of the selection</td>
+          <td valign="top" >String</td>
+        </tr>
+        <tr>
+          <td valign="top">file</td>
+          <td valign="top">file of the selection</td>
+          <td valign="top" >java.io.File</td>
+        </tr>
+        <tr>
+          <td valign="top">basedir</td>
+          <td valign="top">Fileset base directory</td>
+          <td valign="top" >java.io.File</td>
+        </tr>
+
+      </table>
+      <p>
+      The <code>self</code> bean maps to the selector, which has the following
+      attributes. Only the <code>selected</code> flag is writeable, the rest
+      are read only via their getter methods.
+
+            <table border="1" cellpadding="2" cellspacing="0">
+        <tr>
+          <td valign="top"><b>Attribute</b></td>
+          <td valign="top"><b>Description</b></td>
+          <td align="center" valign="top"><b>Type</b></td>
+        </tr>
+        <tr>
+          <td valign="top">selected</td>
+          <td valign="top">writeable flag to select this file</td>
+          <td valign="top" align="center">boolean</td>
+        </tr>
+        <tr>
+          <td valign="top">filename</td>
+          <td valign="top">filename of the selection</td>
+          <td valign="top" >String</td>
+        </tr>
+        <tr>
+          <td valign="top">file</td>
+          <td valign="top">file of the selection</td>
+          <td valign="top" >java.io.File</td>
+        </tr>
+        <tr>
+          <td valign="top">basedir</td>
+          <td valign="top">Fileset base directory</td>
+          <td valign="top" >java.io.File</td>
+        </tr>
+      </table>
+
+      <p>
+      Example
+      </p>
+<pre>
+    &lt;scriptselector language=&quot;javascript&quot;&gt;
+      self.setSelected(true);
+    &lt;/scriptselector&gt;
+</pre>
+    <p>
+    Selects every file.
+    </p>
+
+<pre>
+    &lt;scriptselector language=&quot;javascript&quot;&gt;
+      self.setSelected((filename.length%2)==0);
+    &lt;/scriptselector&gt;
+</pre>
+Select files whose filename length is even.
+
+    <a name="selectcontainers"></a>
+    <h3>Selector Containers</h3>
+
+    <p>To create more complex selections, a variety of selectors that
+    contain other selectors are available for your use. They combine the
+    selections of their child selectors in various ways.</p>
+
+    <p>The selector containers are:</p>
+
+    <ul>
+      <li><a href="#andselect"><code>&lt;and&gt;</code></a> - select a file only if all
+        the contained selectors select it.
+      <li><a href="#majorityselect"><code>&lt;majority&gt;</code></a> - select a file
+        if a majority of its selectors select it.
+      <li><a href="#noneselect"><code>&lt;none&gt;</code></a> - select a file only if
+        none of the contained selectors select it.
+      <li><a href="#notselect"><code>&lt;not&gt;</code></a> - can contain only one
+        selector, and reverses what it selects and doesn't select.
+      <li><a href="#orselect"><code>&lt;or&gt;</code></a> - selects a file if any one
+        of the contained selectors selects it.
+      <li><a href="#selectorselect"><code>&lt;selector&gt;</code></a> - contains only one
+        selector and forwards all requests to it without alteration, provided
+        that any <code>&quot;if&quot;</code> or
+        <code>&quot;unless&quot;</code> conditions are met. This
+        is the selector to use if you want to define a reference. It is
+        usable as an element of <code>&lt;project&gt;</code>. It is also
+        the one to use if you want selection of files to be dependent on
+        Ant property settings.
+    </ul>
+
+    <p>All selector containers can contain any other selector, including
+    other containers, as an element. Using containers, the selector tags
+    can be arbitrarily deep. Here is a complete list of allowable
+    selector elements within a container:</P>
+
+    <ul>
+      <li><code>&lt;and&gt;</code></li>
+      <li><code>&lt;contains&gt;</code></li>
+      <li><code>&lt;custom&gt;</code></li>
+      <li><code>&lt;date&gt;</code></li>
+      <li><code>&lt;depend&gt;</code></li>
+      <li><code>&lt;depth&gt;</code></li>
+      <li><code>&lt;filename&gt;</code></li>
+      <li><code>&lt;majority&gt;</code></li>
+      <li><code>&lt;none&gt;</code></li>
+      <li><code>&lt;not&gt;</code></li>
+      <li><code>&lt;or&gt;</code></li>
+      <li><code>&lt;present&gt;</code></li>
+      <li><code>&lt;selector&gt;</code></li>
+      <li><code>&lt;size&gt;</code></li>
+    </ul>
+
+    <a name="andselect"></a>
+    <h4>And Selector</h4>
+
+    <p>The <code>&lt;and&gt;</code> tag selects files that are
+    selected by all of the elements it contains. It returns as
+    soon as it finds a selector that does not select the file,
+    so it is not guaranteed to check every selector.
+    </p>
+
+    <p>Here is an example of how to use the And Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${dist}&quot; includes=&quot;**/*.jar&quot;&gt;
+    &lt;and&gt;
+        &lt;size value=&quot;4&quot; units=&quot;Ki&quot; when=&quot;more&quot;/&gt;
+        &lt;date datetime=&quot;01/01/2001 12:00 AM&quot; when=&quot;before&quot;/&gt;
+    &lt;/and&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the JAR file larger than 4096 bytes which haven't been update
+      since the last millenium.
+    </p>
+
+
+    <a name="majorityselect"></a>
+    <h4>Majority Selector</h4>
+
+    <p>The <code>&lt;majority&gt;</code> tag selects files provided
+    that a majority of the contained elements also select it. Ties are
+    dealt with as specified by the <code>allowtie</code> attribute.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">allowtie</td>
+        <td valign="top">Whether files should be selected if there
+          are an even number of selectors selecting them as are
+          not selecting them. Default is true.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+
+    <p>Here is an example of how to use the Majority Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${docs}&quot; includes=&quot;**/*.html&quot;&gt;
+    &lt;majority&gt;
+        &lt;contains text=&quot;project&quot; casesensitive="false"/&gt;
+        &lt;contains text=&quot;taskdef&quot; casesensitive="false"/&gt;
+        &lt;contains text=&quot;IntrospectionHelper&quot; casesensitive="true"/&gt;
+    &lt;/majority&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the HTML files which contain at least two of the three
+    phrases "project", "taskdef", and "IntrospectionHelper" (this last phrase must
+    match case exactly).
+    </p>
+
+
+    <a name="noneselect"></a>
+    <h4>None Selector</h4>
+
+    <p>The <code>&lt;none&gt;</code> tag selects files that are
+    not selected by any of the elements it contains. It returns as
+    soon as it finds a selector that selects the file,
+    so it is not guaranteed to check every selector.
+    </p>
+
+    <p>Here is an example of how to use the None Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${src}&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;none&gt;
+        &lt;present targetdir=&quot;${dest}&quot;/&gt;
+        &lt;present targetdir=&quot;${dest}&quot;&gt;
+            &lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.class&quot;/&gt;
+        &lt;/present&gt;
+    &lt;/none&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects only Java files which do not have equivalent java or
+    class files in the dest directory.
+    </p>
+
+
+    <a name="notselect"></a>
+    <h4>Not Selector</h4>
+
+    <p>The <code>&lt;not&gt;</code> tag reverses the meaning of the
+    single selector it contains.
+    </p>
+
+    <p>Here is an example of how to use the Not Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${src}&quot; includes=&quot;**/*.java&quot;&gt;
+    &lt;not&gt;
+        &lt;contains text=&quot;test&quot;/&gt;
+    &lt;/not&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the files in the src directory that do not contain the
+    string "test".
+    </p>
+
+
+    <a name="orselect"></a>
+    <h4>Or Selector</h4>
+
+    <p>The <code>&lt;or&gt;</code> tag selects files that are
+    selected by any one of the elements it contains. It returns as
+    soon as it finds a selector that selects the file,
+    so it is not guaranteed to check every selector.
+    </p>
+
+    <p>Here is an example of how to use the Or Selector:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${basedir}&quot;&gt;
+    &lt;or&gt;
+        &lt;depth max=&quot;0&quot;/&gt;
+        &lt;filename name="*.png"/&gt;
+        &lt;filename name="*.gif"/&gt;
+        &lt;filename name="*.jpg"/&gt;
+    &lt;/or&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all the files in the top directory along with all the
+    image files below it.
+    </p>
+
+
+    <a name="selectorselect"></a>
+    <h4>Selector Reference</h4>
+
+    <p>The <code>&lt;selector&gt;</code> tag is used to create selectors
+    that can be reused through references. It is the only selector which can
+    be used outside of
+    any target, as an element of the <code>&lt;project&gt;</code> tag. It
+    can contain only one other selector, but of course that selector can
+    be a container.
+    </p>
+
+    <p>The <code>&lt;selector&gt;</code> tag can also be used to select
+    files conditionally based on whether an Ant property exists or not.
+    This functionality is realized using the <code>&quot;if&quot;</code> and
+    <code>&quot;unless&quot;</code> attributes in exactly the same way they
+    are used on targets or on the <code>&lt;include&gt;</code> and
+    <code>&lt;exclude&gt;</code> tags within a
+    <code>&lt;patternset&gt;</code>.</p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">if</td>
+        <td valign="top">Allow files to be selected only if the named
+          property is set.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">unless</td>
+        <td valign="top">Allow files to be selected only if the named
+          property is <b>not</b> set.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is an example of how to use the Selector Reference:</p>
+
+    <blockquote><pre>
+&lt;project default=&quot;all&quot; basedir=&quot;./ant&quot;&gt;
+
+    &lt;selector id=&quot;completed&quot;&gt;
+        &lt;none&gt;
+            &lt;depend targetdir=&quot;build/classes&quot;&gt;
+                &lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.class&quot;/&gt;
+            &lt;/depend&gt;
+            &lt;depend targetdir=&quot;docs/manual/api&quot;&gt;
+                &lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.html&quot;/&gt;
+            &lt;/depend&gt;
+        &lt;/none&gt;
+    &lt;/selector&gt;
+
+    &lt;target&gt;
+        &lt;zip&gt;
+            &lt;fileset dir=&quot;src/main&quot; includes=&quot;**/*.java&quot;&gt;
+                &lt;selector refid=&quot;completed&quot;/&gt;
+            &lt;/fileset&gt;
+        &lt;/zip&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre></blockquote>
+
+    <p>Zips up all the Java files which have an up-to-date equivalent
+    class file and javadoc file associated with them.
+    </p>
+
+    <p>And an example of selecting files conditionally, based on whether
+    properties are set:</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${working.copy}&quot;&gt;
+    &lt;or&gt;
+        &lt;selector if=&quot;include.tests&quot;&gt;
+            &lt;filename name=&quot;**/*Test.class&quot;&gt;
+        &lt;/selector&gt;
+        &lt;selector if=&quot;include.source&quot;&gt;
+            &lt;and&gt;
+                &lt;filename name=&quot;**/*.java&quot;&gt;
+                &lt;not&gt;
+                    &lt;selector unless=&quot;include.tests&quot;&gt;
+                        &lt;filename name=&quot;**/*Test.java&quot;&gt;
+                    &lt;/selector&gt;
+                &lt;/not&gt;
+            &lt;/and&gt;
+        &lt;/selector&gt;
+    &lt;/or&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>A fileset that conditionally contains Java source files and Test
+    source and class files.</p>
+
+    <a name="customselect"></a>
+    <h3>Custom Selectors</h3>
+
+    <p>You can write your own selectors and use them within the selector
+    containers by specifying them within the <code>&lt;custom&gt;</code> tag.</p>
+
+    <p>First, you have to write your selector class in Java. The only
+    requirement it must meet in order to be a selector is that it implements
+    the <code>org.apache.tools.ant.types.selectors.FileSelector</code>
+    interface, which contains a single method. See
+    <a href="selectors-program.html">Programming Selectors in Ant</a> for
+    more information.</p>
+
+    <p>Once that is written, you include it in your build file by using
+    the <code>&lt;custom&gt;</code> tag.
+    </p>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td valign="top"><b>Attribute</b></td>
+        <td valign="top"><b>Description</b></td>
+        <td align="center" valign="top"><b>Required</b></td>
+      </tr>
+      <tr>
+        <td valign="top">classname</td>
+        <td valign="top">The name of your class that implements
+          <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
+        </td>
+        <td valign="top" align="center">Yes</td>
+      </tr>
+      <tr>
+        <td valign="top">classpath</td>
+        <td valign="top">The classpath to use in order to load the
+          custom selector class. If neither this classpath nor the
+          classpathref are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">classpathref</td>
+        <td valign="top">A reference to a classpath previously
+          defined. If neither this reference nor the
+          classpath above are specified, the class will be
+          loaded from the classpath that Ant uses.
+        </td>
+        <td valign="top" align="center">No</td>
+      </tr>
+    </table>
+
+    <p>Here is how you use <code>&lt;custom&gt;</code> to
+    use your class as a selector:
+    </p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${mydir}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;custom classname=&quot;com.mydomain.MySelector&quot;&gt;
+        &lt;param name=&quot;myattribute&quot; value=&quot;myvalue&quot;/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>A number of core selectors can also be used as custom selectors
+    by specifying their attributes using <code>&lt;param&gt;</code> elements. These
+    are</p>
+
+    <ul>
+      <li><a href="#containsselect">Contains Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.ContainsSelector</code>
+      <li><a href="#dateselect">Date Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DateSelector</code>
+      <li><a href="#depthselect">Depth Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.DepthSelector</code>
+      <li><a href="#filenameselect">Filename Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.FilenameSelector</code>
+      <li><a href="#sizeselect">Size Selector</a> with
+        classname <code>org.apache.tools.ant.types.selectors.SizeSelector</code>
+    </ul>
+
+    <p>Here is the example from the Depth Selector section rewritten
+    to use the selector through <code>&lt;custom&gt;</code>.</p>
+
+    <blockquote><pre>
+&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
+    &lt;custom classname=&quot;org.apache.tools.ant.types.selectors.DepthSelector&quot;&gt;
+        &lt;param name=&quot;max&quot; value=&quot;1&quot;/&gt;
+    &lt;/custom&gt;
+&lt;/fileset&gt;
+</pre></blockquote>
+
+    <p>Selects all files in the base directory and one directory below
+    that.</p>
+
+    <p>For more details concerning writing your own selectors, consult
+    <a href="selectors-program.html">Programming Selectors in Ant</a>.</p>
+
+    
+
+  </body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/tarfileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/tarfileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/tarfileset.html	(revision 14989)
@@ -0,0 +1,160 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>TarFileSet Type</title>
+</head>
+<body>
+<h2><a name="fileset">TarFileSet</a></h2>
+
+<p><em>TarFileSet</em> has been added as a stand-alone type in Ant
+1.7.</p>
+
+<p>A <code>&lt;tarfileset&gt;</code> is a special form of a <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code> which can behave in 2
+different ways : <br>
+</p>
+<ul>
+  <li>When the <span style="font-style: italic;">src</span> attribute
+  is used - or a nested resource collection has been specified, the
+  tarfileset is populated with tar entries found in the file <span
+  style="font-style: italic;">src</span>.<br>
+  </li>
+  <li>When the <span style="font-style: italic;">dir</span> attribute
+is used, the tarfileset is populated with filesystem files found under <span
+ style="font-style: italic;">dir</span>.<br>
+  </li>
+</ul>
+<p><code>&lt;tarfileset&gt;</code> supports all attributes of <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code>
+in addition to those listed below.<br>
+</p>
+<p>A tarfileset can be defined with the <span style="font-style:
+italic;">id </span>attribute and referred to with the <span
+style="font-style: italic;">refid</span> attribute.  This is also true
+for tarfileset which has been added in Ant 1.7.<br>
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody>
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td valign="top" align="center"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">prefix</td>
+      <td valign="top">all files in the fileset are prefixed with that 
+path in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">fullpath</td>
+      <td valign="top">the file described by the fileset is placed at  
+that exact location in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">src</td>
+      <td valign="top">may be used in place of the <i>dir</i> attribute
+ to specify a tar file whose contents will be extracted and     included
+in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">filemode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+plain files.  Default is 644.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">dirmode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+directories.  Default is 755.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">username</td>
+      <td valign="top">The username for the tar entry. This is not the same as the UID.
+       </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">group</td>
+      <td valign="top">The groupname for the tar entry. This is not the same as the GID.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">uid</td>
+      <td valign="top">The user identifier (UID) for the tar entry. This is an integer value
+        and is not the same as the username.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">gid</td>
+      <td valign="top">The group identifier (GID) for the tar entry.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+  </tbody>
+</table>
+<p>The <i>fullpath</i> attribute can only be set for filesets that
+represent a single file. The <i>prefix</i> and <i>fullpath</i>
+attributes cannot both be set on the same fileset.</p>
+<p>When using the <i>src</i> attribute, include and exclude patterns
+may be used to specify a subset of the archive for inclusion in the
+archive as with the <i>dir</i> attribute.</p>
+
+<p>Please note that currently only the <a
+href="../CoreTasks/tar.html">tar</a> task uses the permission and
+ownership attributes.</p>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any <a href="resources.html">resource</a> or single element
+resource collection</h4>
+
+<p>The specified resource will be used as src.</p>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+  &lt;copy todir="some-dir"&gt;
+    &lt;tarfileset includes="lib/**"&gt;
+      &lt;bzip2resource&gt;
+        &lt;url url="http://example.org/dist/some-archive.tar.bz2"/&gt;
+      &lt;/bzip2resource&gt;
+    &lt;/tarfileset&gt;
+  &lt;/copy&gt;
+      </pre></blockquote>
+
+<p>downloads the archive some-archive.tar.bz2, uncompresses and
+extracts it on the fly, copies the contents of the lib directory into
+some-dir and discards the rest of the archive.  File timestamps will
+be compared between the archive's entries and files inside the target
+directory, no files get overwritten unless they are out-of-date.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/xmlcatalog.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/xmlcatalog.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/xmlcatalog.html	(revision 14989)
@@ -0,0 +1,306 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XMLCatalog Type</title>
+</head>
+
+<body>
+
+<h2><a name="XMLCatalog">XMLCatalog</a></h2>
+
+<p>An XMLCatalog is a catalog of public resources such as DTDs or
+entities that are referenced in an XML document.  Catalogs are
+typically used to make web references to resources point to a locally
+cached copy of the resource.</p>
+
+<p>This allows the XML Parser, XSLT Processor or other consumer of XML 
+documents
+to efficiently allow a local substitution for a resource available on the 
+web.
+</p>
+<p><b>Note:</b> This task <em>uses, but does not depend on</em> external
+libraries not included in the Ant distribution.  See <a
+  href="../install.html#librarydependencies">Library Dependencies</a> for more
+information.</p>
+<p>This data type provides a catalog of resource locations based
+on the <a
+href="http://oasis-open.org/committees/entity/spec-2001-08-06.html">
+OASIS "Open Catalog" standard</a>.  The catalog entries are used
+both for Entity resolution and URI resolution, in accordance with
+the <code>org.xml.sax.EntityResolver</code> and <code>
+javax.xml.transform.URIResolver</code> interfaces as defined
+in the <a href="http://java.sun.com/xml/jaxp">Java API for XML
+Processing (JAXP) Specification</a>.</p>
+<p>For example, in a <code>web.xml</code> file, the DTD is referenced as:
+<pre>
+&lt;!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN&quot;
+  &quot;http://java.sun.com/j2ee/dtds/web-app_2_2.dtd&quot;&gt;
+</pre>
+The XML processor, without XMLCatalog support, would need to retrieve the 
+DTD from
+the URL specified whenever validation of the document was required.
+</p>
+<p>This can be very time consuming during the build process,
+especially where network throughput is limited.  Alternatively, you
+can do the following:
+<ol>
+<li>Copy <code>web-app_2_2.dtd</code> onto your local disk somewhere (either in the
+filesystem or even embedded inside a jar or zip file on the classpath).</li>
+<li>Create an <code>&lt;xmlcatalog&gt;</code> with a <code>&lt;dtd&gt;</code> 
+element whose <code>location</code> attribute points to the file.</li>
+<li>Success! The XML processor will now use the local copy instead of calling out
+to the internet.</li>
+</ol>
+</p>
+<p>XMLCatalogs can appear inside tasks
+that support this feature or at the same level as <code>target</code>
+- i.e., as children of <code>project</code> for reuse across different 
+tasks,
+e.g. XML Validation and XSLT Transformation.  The XML Validate task
+uses XMLCatalogs for entity resolution.  The XSLT Transformation
+task uses XMLCatalogs for both entity and URI resolution.</p>
+<p>XMLCatalogs are specified as either a reference to another
+XMLCatalog, defined previously in a build file, or as a list of
+<code>dtd</code> or <code>entity</code> locations.  In addition,
+external catalog files may be specified in a nested <code>catalogpath</code> ,
+but they will be ignored unless the resolver library from
+xml-commons is available in the system classpath.  <b>Due to backwards
+incompatible changes in the resolver code after the release of
+resolver 1.0, Ant will not support resolver.jar in version 1.0 - we
+expect a resolver release 1.1 to happen before Ant 1.6 gets
+released.</b>  A separate classpath for entity resolution may be
+specified inline via nested <code>classpath</code> elements; otherwise
+the system classpath is used for this as well.</p>
+<p>XMLCatalogs can also be nested inside other XMLCatalogs.  For
+example, a "superset" XMLCatalog could be made by including several
+nested XMLCatalogs that referred to other, previously defined
+XMLCatalogs.</p>
+<p>Resource locations can be specified either in-line or in
+external catalog file(s), or both.  In order to use an external
+catalog file, the xml-commons resolver library ("resolver.jar")
+must be in your path.  External catalog files may be either <a
+href="http://oasis-open.org/committees/entity/background/9401.html">
+plain text format</a> or <a
+href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">
+XML format</a>.  If the xml-commons resolver library is not found in the
+classpath, external catalog files, specified in <code>catalogpath</code>, 
+will be ignored and a warning
+will be logged.  In this case, however, processing of inline entries will
+proceed normally.</p>
+<p>Currently, only <code>&lt;dtd&gt;</code> and
+<code>&lt;entity&gt;</code> elements may be specified inline; these
+roughly correspond to OASIS catalog entry types <code>PUBLIC</code> and
+<code>URI</code> respectively.  By contrast, external catalog files
+may use any of the entry types defined in the 
+<a href="http://oasis-open.org/committees/entity/spec-2001-08-06.html">
++OASIS specification</a>.</p>
+<h3><a name="ResolverAlgorithm">Entity/DTD/URI Resolution Algorithm</a></h3>
+
+When an entity, DTD, or URI is looked up by the XML processor, the
+XMLCatalog searches its list of entries to see if any match.  That is,
+it attempts to match the <code>publicId</code> attribute of each entry
+with the PublicID or URI of the entity to be resolved.  Assuming a
+matching entry is found, XMLCatalog then executes the following steps:
+
+<h4>1. Filesystem lookup</h4>
+
+<p>The <code>location</code> is first looked up in the filesystem.  If
+the <code>location</code> is a relative path, the ant project basedir
+attribute is used as the base directory.  If the <code>location</code>
+specifies an absolute path, it is used as is.  Once we have an
+absolute path in hand, we check to see if a valid and readable file
+exists at that path.  If so, we are done.  If not, we proceed to the
+next step.</p>
+
+<h4>2. Classpath lookup</h4>
+
+<p>The <code>location</code> is next looked up in the classpath.
+Recall that jar files are merely fancy zip files.  For classpath
+lookup, the <code>location</code> is used as is (no base is
+prepended).  We use a Classloader to attempt to load the resource from
+the classpath.  For example, if hello.jar is in the classpath and it
+contains <code>foo/bar/blat.dtd</code> it will resolve an entity whose
+<code>location</code> is <code>foo/bar/blat.dtd</code>.  Of course, it
+will <em>not</em> resolve an entity whose <code>location</code> is
+<code>blat.dtd</code>.
+
+
+<h4>3a. Apache xml-commons resolver lookup</h4>
+
+<p>What happens next depends on whether the resolver library from
+xml-commons is available on the classpath.  If so, we defer all
+further attempts at resolving to it.  The resolver library supports
+extremely sophisticated functionality like URL rewriting and so on,
+which can be accessed by making the appropriate entries in external
+catalog files (XMLCatalog does not yet provide inline support for all
+of the entries defined in the <a
+href="http://oasis-open.org/committees/entity/spec-2001-08-06.html">OASIS
+standard</a>).</p>
+
+<h4>3. URL-space lookup</h4>
+
+<p>Finally, we attempt to make a URL out of the <code>location</code>.
+At first this may seem like this would defeat the purpose of
+XMLCatalogs -- why go back out to the internet?  But in fact, this can
+be used to (in a sense) implement HTTP redirects, substituting one URL
+for another.  The mapped-to URL might also be served by a local web
+server.  If the URL resolves to a valid and readable resource, we are
+done.  Otherwise, we give up.  In this case, the XML processor will
+perform its normal resolution algorithm.  Depending on the processor
+configuration, further resolution failures may or may not result in
+fatal (i.e. build-ending) errors.</p>
+
+<h3>XMLCatalog attributes</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">id</td>
+    <td valign="top">a unique name for an XMLCatalog, used for referencing 
+the
+    XMLCatalog's contents from another XMLCatalog</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">refid</td>
+    <td valign="top">the <code>id</code> of another XMLCatalog whose 
+contents
+    you would like to be used for this XMLCatalog</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>XMLCatalog nested elements</h3>
+<h4>dtd/entity</h4>
+<p>The <code>dtd</code> and <code>entity</code> elements used to specify
+XMLCatalogs are identical in their structure</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">The public identifier used when defining a dtd or 
+entity,
+    e.g. <code>&quot;-//Sun Microsystems, Inc.//DTD Web Application 
+2.2//EN&quot;</code>
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">The location of the local replacement to be used for 
+the public identifier specified. This may be specified as a file name, 
+resource name found on the classpath, or a URL.  Relative paths will
+be resolved according to the base, which by default is the Ant project
+basedir.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h4>classpath</h4>
+<p>The classpath to use for <a href="#ResolverAlgorithm">entity
+resolution</a>.  The nested <code>&lt;classpath&gt;</code> is a
+<a href="../using.html#path">path</a>-like structure.</p>
+<h4>catalogpath</h4>
+<p>
+The nested <code>catalogpath</code> element is a <a
+href="../using.html#path">path</a>-like structure listing catalog files to
+search.  All files in this path are assumed to be OASIS catalog files, in
+either
+<a href="http://oasis-open.org/committees/entity/background/9401.html">
+plain text format</a> or <a
+href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">
+XML format</a>. Entries specifying nonexistent files will be ignored. If the
+resolver library from xml-commons is not available in the classpath, all
+<code>catalogpaths</code> will be ignored and a warning will be logged.
+</p>
+<h3>Examples</h3>
+<p>Set up an XMLCatalog with a single dtd referenced locally in a user's 
+home 
+directory:</p>
+<blockquote><pre>
+    &lt;xmlcatalog&gt;
+        &lt;dtd 
+            publicId=&quot;-//OASIS//DTD DocBook XML V4.1.2//EN&quot;
+            location=&quot;/home/dion/downloads/docbook/docbookx.dtd&quot;/&gt;
+    &lt;/xmlcatalog&gt;
+</pre></blockquote>
+<p>Set up an XMLCatalog with a multiple dtds to be found either in the
+filesystem (relative to the Ant project basedir) or in the classpath:
+</p>
+<blockquote><pre>
+    &lt;xmlcatalog id=&quot;commonDTDs&quot;&gt;
+        &lt;dtd 
+            publicId=&quot;-//OASIS//DTD DocBook XML V4.1.2//EN&quot;
+            location=&quot;docbook/docbookx.dtd&quot;/&gt;
+        &lt;dtd 
+            publicId=&quot;-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN&quot;
+            location=&quot;web-app_2_2.dtd&quot;/&gt;
+    &lt;/xmlcatalog&gt;
+</pre></blockquote>
+
+<p>Set up an XMLCatalog with a combination of DTDs and entities as
+well as a nested XMLCatalog and external catalog files in both
+formats:</p>
+
+<blockquote><pre>
+    &lt;xmlcatalog id=&quot;allcatalogs&quot;&gt;
+        &lt;dtd 
+            publicId=&quot;-//ArielPartners//DTD XML Article V1.0//EN&quot;
+            location=&quot;com/arielpartners/knowledgebase/dtd/article.dtd&quot;/&gt;
+        &lt;entity 
+            publicId=&quot;LargeLogo&quot;
+            location=&quot;com/arielpartners/images/ariel-logo-large.gif&quot;/&gt;
+        &lt;xmlcatalog refid="commonDTDs"/&gt;
+            &lt;catalogpath&gt;
+                &lt;pathelement location="/etc/sgml/catalog"/&gt;
+                &lt;fileset 
+                    dir=&quot;/anetwork/drive&quot;
+                    includes=&quot;**/catalog&quot;/&gt;
+                &lt;fileset 
+                    dir=&quot;/my/catalogs&quot;
+                    includes=&quot;**/catalog.xml&quot;/&gt;
+            &lt;/catalogpath&gt;
+        &lt;/xmlcatalog&gt;
+    &lt;/xmlcatalog&gt;
+</pre></blockquote>
+<p>To reference the above XMLCatalog in an <code>xslt</code> task:<p>
+<blockquote><pre>
+    &lt;xslt basedir="${source.doc}"
+           destdir="${dest.xdocs}"
+           extension=".xml"
+           style="${source.xsl.converter.docbook}"
+           includes="**/*.xml"
+           force="true"&gt;
+        &lt;xmlcatalog refid=&quot;allcatalogs&quot;/&gt;
+    &lt;/xslt&gt;
+</pre></blockquote>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/zipfileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/zipfileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/CoreTypes/zipfileset.html	(revision 14989)
@@ -0,0 +1,136 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ZipFileSet Type</title>
+</head>
+<body>
+<h2><a name="fileset">ZipFileSet</a></h2>
+
+<p>A <code>&lt;zipfileset&gt;</code> is a special form of a <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code> which can behave in 2
+different ways : <br>
+</p>
+<ul>
+  <li>When the <span style="font-style: italic;">src</span> attribute
+  is used - or a nested resource collection has been specified
+  (<em>since Ant 1.7</em>), the zipfileset is populated with 
+  zip entries found in the file <span style="font-style:
+  italic;">src</span>.<br>
+  </li>
+  <li>When the <span style="font-style: italic;">dir</span> attribute
+is used, the zipfileset is populated with filesystem files found under <span
+ style="font-style: italic;">dir</span>.<br>
+  </li>
+</ul>
+<p><code>&lt;zipfileset&gt;</code> supports all attributes of <code>&lt;<a
+ href="fileset.html">fileset</a>&gt;</code>
+in addition to those listed below.<br>
+</p>
+<p>Since Ant 1.6, a zipfileset can be defined with the <span
+ style="font-style: italic;">id </span>attribute and referred to with
+the <span style="font-style: italic;">refid</span> attribute.<br>
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tbody>
+    <tr>
+      <td valign="top"><b>Attribute</b></td>
+      <td valign="top"><b>Description</b></td>
+      <td valign="top" align="center"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="top">prefix</td>
+      <td valign="top">all files in the fileset are prefixed with that 
+path in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">fullpath</td>
+      <td valign="top">the file described by the fileset is placed at  
+that exact location in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">src</td>
+      <td valign="top">may be used in place of the <i>dir</i> attribute
+ to specify a zip file whose contents will be extracted and     included
+in the archive.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">filemode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+plain files.  Default is 644. <em>since Ant 1.5.2</em>.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">dirmode</td>
+      <td valign="top">A 3 digit octal string, specify the user, group 
+and other modes in the standard Unix fashion.  Only applies to    
+directories.  Default is 755. <em>since Ant 1.5.2</em>.</td>
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">encoding</td>
+      <td valign="top">The character encoding to use for filenames
+      inside the zip file.  For a list of possible values see <a
+      href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.
+      Defaults to the platform's default character encoding.
+      <b>Only supported by zipfileset.</b></td>
+      <td align="center" valign="top">No</td>
+    </tr>
+  </tbody>
+</table>
+<p>The <i>fullpath</i> attribute can only be set for filesets that
+represent a single file. The <i>prefix</i> and <i>fullpath</i>
+attributes cannot both be set on the same fileset.</p>
+<p>When using the <i>src</i> attribute, include and exclude patterns
+may be used to specify a subset of the archive for inclusion in the
+archive as with the <i>dir</i> attribute.</p>
+
+<p>Please note that currently only the <a
+href="../CoreTasks/tar.html">tar</a> and <a
+href="../CoreTaks/zip.html">zip</a> tasks use the permission.</p>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>any file system based <a href="resources.html">resource</a> or
+single element resource collection</h4>
+
+<p>The specified resource will be used as src.</p>
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>  &lt;zip destfile="${dist}/manual.zip"&gt;<br>    &lt;zipfileset dir="htdocs/manual" prefix="docs/user-guide"/&gt;<br>    &lt;zipfileset dir="." includes="ChangeLog27.txt" fullpath="docs/ChangeLog.txt"/&gt;<br>    &lt;zipfileset src="examples.zip" includes="**/*.html" prefix="docs/examples"/&gt;<br>  &lt;/zip&gt;<br></pre>
+  <p>zips all files in the <code>htdocs/manual</code> directory into
+the <code>docs/user-guide</code> directory in the archive, adds the
+file <code>ChangeLog27.txt</code> in the current directory as <code>docs/ChangeLog.txt</code>,
+and includes all the html files in <code>examples.zip</code> under <code>docs/examples</code>.
+The archive might end up containing the files:</p>
+  <code> docs/user-guide/html/index.html<br>
+docs/ChangeLog.txt<br>
+docs/examples/index.html<br>
+  </code></blockquote>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/Integration/Antidote.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/Integration/Antidote.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/Integration/Antidote.html	(revision 14989)
@@ -0,0 +1,113 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd">
+<HTML> 
+  <HEAD> 
+     <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>About Antidote</TITLE> 
+  </HEAD> 
+
+  <BODY> 
+
+    <H1>About Antidote</H1>
+
+    <P>Version 0.1 (2001/02/13)</P>
+
+    <P>Authors: 
+    <A HREF="mailto:simeon@fitch.net">Simeon H.K. Fitch</A>
+    </P>
+
+    <H2>Overview</H2> 
+
+    <P>Antidote is the <A
+    HREF="http://ant.apache.org/index.html">Ant</A> subproject
+    for developing a graphical user interface to facilitate the
+    efficient use of Ant. In general, its purpose is to allow the
+    quick generation, modification, and use of Ant build files,
+    helping the user define a build process and track down build
+    problems. It is not meant to be an IDE, but an enabler for the
+    powerful features available in Ant, particularly for novice
+    users, or users who want a rapid way of controlling their build
+    process.</P>
+
+
+    <H2>Status</H2>
+
+    <P>Antidote is still in the early stages of development, but does
+    have a set of usable features, including:</p>
+    <UL>
+      <LI>Reading Ant build files.</LI>
+      <LI>Selecting targets and executing them.</LI>
+      <LI>Context highlighted build status console.</LI>
+      <LI>Modification of (some) build file components.</LI>
+      <LI>Saving modified build file.</LI>
+    </UL>
+
+    <P>Current development tasks include:</p>
+    <UL>
+      <LI>A more complete set of target and task editing
+      capabilities.</LI>
+      <LI>A wizard for creating basic build files, including importing
+      existing code bases.</LI>
+      <LI>Better build progress monitoring.</LI>
+    </UL>
+
+    <P>The Antidote source distribution comes with requirements and
+    design documentation that better cover the details of application
+    architecture, how to develop against it, and what the long term
+    goals are. Furthermore, there is a <code>TODO</code> file listing
+    the detailed, near-term tasks that need accomplishing.</P>
+
+    <H2>Getting Involved</H2>
+
+    <P>The source code for Antidote is located in a separate Module 
+    (<a href="http://cvs.apache.org/viewcvs/ant-antidote/">ant-antidote</a>) in CVS.
+    All the existing documentation can
+    be found there where new contributors should read:</p>
+    <UL>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/design-overview.html">Design Overview</A></LI> 
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/gui-requirements.html">Feature List</A></LI>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/gui-ideas.txt">Idea Refinement</A></LI>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/new-module-howto.html">New Module HOWTO</A></LI>
+      <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/uml/index.html">Static Class Diagrams</A></LI>
+    </UL>
+
+    <P>Online discussions about Antidote occur on the <A
+    HREF="http://ant.apache.org/mail.html">Ant developer
+    mailing list</A>. The application infrastructure is fairly
+    complete, but there are almost unlimited opportunities for feature
+    contributions.</p>
+
+    <P>Aspiring contributors new to the project should
+    (carefully) read the following for details on the contribution
+    process:</p>
+    <UL>
+      <LI><A
+      HREF="http://jakarta.apache.org/site/getinvolved.html">Get
+      Involved</A></LI>
+      <LI><A
+      HREF="http://ant.apache.org/guidelines.html">Project
+      Guidelines</A></LI>
+      <LI><A HREF="http://jakarta.apache.org/site/source.html">Source
+      Repositories (how to contribute patches)</A></LI>
+    </UL>
+    
+
+    
+
+  </BODY>
+</HTML>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/Integration/jext-plugin.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/Integration/jext-plugin.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/Integration/jext-plugin.html	(revision 14989)
@@ -0,0 +1,56 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Apache AntWork Plugin for the Jext Java Text Editor</title>
+</head>
+<body>
+
+<h1>AntWork Plugin for the Jext Java Text Editor</h1>
+ <a name="authors"></a>by<ul>
+  <li>Klaus Hartlage
+      (<a href="mailto:KHartlage@t-online.de">KHartlage@t-online.de</a>)</li>
+</ul>
+<hr>
+
+<p>You can download the plugin at: <a
+href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a></p>
+
+<h2>Installation instructions from the Readme.txt:</h2>
+
+<p>You have to enable the Jext Console to see the Ant output (menu:
+Edit-&gt;Options... - General Panel), because the Ant messages are
+redirected to the Jext console.</p>
+
+<p>You can configure the Ant call in the Jext menu: Edit-&gt;Options... -
+Plugin Options - Antwork Plugin Panel; here you can set the ant home
+directory and the path to your build file.</p>
+
+<p>You can start AntWork in the menu: Plugins-&gt;Ant-&gt;Work Now!  In the
+appearing dialog box you can enter the target which you want to
+compile.</p>
+
+<p>If a javac error occurs in the ant run an error-list opens within
+Jext. With a double-click on the error-message you jump to the error
+in the specified java text file.</p>
+
+
+</body></html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/LICENSE
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/LICENSE	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/LICENSE	(revision 14989)
@@ -0,0 +1,203 @@
+/*
+ *                                 Apache License
+ *                           Version 2.0, January 2004
+ *                        http://www.apache.org/licenses/
+ *
+ *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *   1. Definitions.
+ *
+ *      "License" shall mean the terms and conditions for use, reproduction,
+ *      and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *      "Licensor" shall mean the copyright owner or entity authorized by
+ *      the copyright owner that is granting the License.
+ *
+ *      "Legal Entity" shall mean the union of the acting entity and all
+ *      other entities that control, are controlled by, or are under common
+ *      control with that entity. For the purposes of this definition,
+ *      "control" means (i) the power, direct or indirect, to cause the
+ *      direction or management of such entity, whether by contract or
+ *      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *      outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *      "You" (or "Your") shall mean an individual or Legal Entity
+ *      exercising permissions granted by this License.
+ *
+ *      "Source" form shall mean the preferred form for making modifications,
+ *      including but not limited to software source code, documentation
+ *      source, and configuration files.
+ *
+ *      "Object" form shall mean any form resulting from mechanical
+ *      transformation or translation of a Source form, including but
+ *      not limited to compiled object code, generated documentation,
+ *      and conversions to other media types.
+ *
+ *      "Work" shall mean the work of authorship, whether in Source or
+ *      Object form, made available under the License, as indicated by a
+ *      copyright notice that is included in or attached to the work
+ *      (an example is provided in the Appendix below).
+ *
+ *      "Derivative Works" shall mean any work, whether in Source or Object
+ *      form, that is based on (or derived from) the Work and for which the
+ *      editorial revisions, annotations, elaborations, or other modifications
+ *      represent, as a whole, an original work of authorship. For the purposes
+ *      of this License, Derivative Works shall not include works that remain
+ *      separable from, or merely link (or bind by name) to the interfaces of,
+ *      the Work and Derivative Works thereof.
+ *
+ *      "Contribution" shall mean any work of authorship, including
+ *      the original version of the Work and any modifications or additions
+ *      to that Work or Derivative Works thereof, that is intentionally
+ *      submitted to Licensor for inclusion in the Work by the copyright owner
+ *      or by an individual or Legal Entity authorized to submit on behalf of
+ *      the copyright owner. For the purposes of this definition, "submitted"
+ *      means any form of electronic, verbal, or written communication sent
+ *      to the Licensor or its representatives, including but not limited to
+ *      communication on electronic mailing lists, source code control systems,
+ *      and issue tracking systems that are managed by, or on behalf of, the
+ *      Licensor for the purpose of discussing and improving the Work, but
+ *      excluding communication that is conspicuously marked or otherwise
+ *      designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *      "Contributor" shall mean Licensor and any individual or Legal Entity
+ *      on behalf of whom a Contribution has been received by Licensor and
+ *      subsequently incorporated within the Work.
+ *
+ *   2. Grant of Copyright License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      copyright license to reproduce, prepare Derivative Works of,
+ *      publicly display, publicly perform, sublicense, and distribute the
+ *      Work and such Derivative Works in Source or Object form.
+ *
+ *   3. Grant of Patent License. Subject to the terms and conditions of
+ *      this License, each Contributor hereby grants to You a perpetual,
+ *      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *      (except as stated in this section) patent license to make, have made,
+ *      use, offer to sell, sell, import, and otherwise transfer the Work,
+ *      where such license applies only to those patent claims licensable
+ *      by such Contributor that are necessarily infringed by their
+ *      Contribution(s) alone or by combination of their Contribution(s)
+ *      with the Work to which such Contribution(s) was submitted. If You
+ *      institute patent litigation against any entity (including a
+ *      cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *      or a Contribution incorporated within the Work constitutes direct
+ *      or contributory patent infringement, then any patent licenses
+ *      granted to You under this License for that Work shall terminate
+ *      as of the date such litigation is filed.
+ *
+ *   4. Redistribution. You may reproduce and distribute copies of the
+ *      Work or Derivative Works thereof in any medium, with or without
+ *      modifications, and in Source or Object form, provided that You
+ *      meet the following conditions:
+ *
+ *      (a) You must give any other recipients of the Work or
+ *          Derivative Works a copy of this License; and
+ *
+ *      (b) You must cause any modified files to carry prominent notices
+ *          stating that You changed the files; and
+ *
+ *      (c) You must retain, in the Source form of any Derivative Works
+ *          that You distribute, all copyright, patent, trademark, and
+ *          attribution notices from the Source form of the Work,
+ *          excluding those notices that do not pertain to any part of
+ *          the Derivative Works; and
+ *
+ *      (d) If the Work includes a "NOTICE" text file as part of its
+ *          distribution, then any Derivative Works that You distribute must
+ *          include a readable copy of the attribution notices contained
+ *          within such NOTICE file, excluding those notices that do not
+ *          pertain to any part of the Derivative Works, in at least one
+ *          of the following places: within a NOTICE text file distributed
+ *          as part of the Derivative Works; within the Source form or
+ *          documentation, if provided along with the Derivative Works; or,
+ *          within a display generated by the Derivative Works, if and
+ *          wherever such third-party notices normally appear. The contents
+ *          of the NOTICE file are for informational purposes only and
+ *          do not modify the License. You may add Your own attribution
+ *          notices within Derivative Works that You distribute, alongside
+ *          or as an addendum to the NOTICE text from the Work, provided
+ *          that such additional attribution notices cannot be construed
+ *          as modifying the License.
+ *
+ *      You may add Your own copyright statement to Your modifications and
+ *      may provide additional or different license terms and conditions
+ *      for use, reproduction, or distribution of Your modifications, or
+ *      for any such Derivative Works as a whole, provided Your use,
+ *      reproduction, and distribution of the Work otherwise complies with
+ *      the conditions stated in this License.
+ *
+ *   5. Submission of Contributions. Unless You explicitly state otherwise,
+ *      any Contribution intentionally submitted for inclusion in the Work
+ *      by You to the Licensor shall be under the terms and conditions of
+ *      this License, without any additional terms or conditions.
+ *      Notwithstanding the above, nothing herein shall supersede or modify
+ *      the terms of any separate license agreement you may have executed
+ *      with Licensor regarding such Contributions.
+ *
+ *   6. Trademarks. This License does not grant permission to use the trade
+ *      names, trademarks, service marks, or product names of the Licensor,
+ *      except as required for reasonable and customary use in describing the
+ *      origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *   7. Disclaimer of Warranty. Unless required by applicable law or
+ *      agreed to in writing, Licensor provides the Work (and each
+ *      Contributor provides its Contributions) on an "AS IS" BASIS,
+ *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *      implied, including, without limitation, any warranties or conditions
+ *      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *      PARTICULAR PURPOSE. You are solely responsible for determining the
+ *      appropriateness of using or redistributing the Work and assume any
+ *      risks associated with Your exercise of permissions under this License.
+ *
+ *   8. Limitation of Liability. In no event and under no legal theory,
+ *      whether in tort (including negligence), contract, or otherwise,
+ *      unless required by applicable law (such as deliberate and grossly
+ *      negligent acts) or agreed to in writing, shall any Contributor be
+ *      liable to You for damages, including any direct, indirect, special,
+ *      incidental, or consequential damages of any character arising as a
+ *      result of this License or out of the use or inability to use the
+ *      Work (including but not limited to damages for loss of goodwill,
+ *      work stoppage, computer failure or malfunction, or any and all
+ *      other commercial damages or losses), even if such Contributor
+ *      has been advised of the possibility of such damages.
+ *
+ *   9. Accepting Warranty or Additional Liability. While redistributing
+ *      the Work or Derivative Works thereof, You may choose to offer,
+ *      and charge a fee for, acceptance of support, warranty, indemnity,
+ *      or other liability obligations and/or rights consistent with this
+ *      License. However, in accepting such obligations, You may act only
+ *      on Your own behalf and on Your sole responsibility, not on behalf
+ *      of any other Contributor, and only if You agree to indemnify,
+ *      defend, and hold each Contributor harmless for any liability
+ *      incurred by, or claims asserted against, such Contributor by reason
+ *      of your accepting any such warranty or additional liability.
+ *
+ *   END OF TERMS AND CONDITIONS
+ *
+ *   APPENDIX: How to apply the Apache License to your work.
+ *
+ *      To apply the Apache License to your work, attach the following
+ *      boilerplate notice, with the fields enclosed by brackets "[]"
+ *      replaced with your own identifying information. (Don't include
+ *      the brackets!)  The text should be enclosed in the appropriate
+ *      comment syntax for the file format. We also recommend that a
+ *      file or class name and description of purpose be included on the
+ *      same "printed page" as the copyright notice for easier
+ *      identification within third-party archives.
+ *
+ *   Copyright [yyyy] [name of copyright owner]
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   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.
+ */
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/BorlandEJBTasks.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/BorlandEJBTasks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/BorlandEJBTasks.html	(revision 14989)
@@ -0,0 +1,143 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Borland EJB Tasks</title>
+</head>
+
+<body>
+
+<h2><a name="log">BorlandDeploy</a>Tool</h2>
+<p>by Benoit Moussaud (<a href="mailto:benoit.moussaud@criltelecom.com">benoit.moussaud@criltelecom.com</a>)</p>
+
+
+<h3>Description</h3>
+<p>The BorlandDeployTool is a vendor specific nested element for the Ejbjar optional task.</p>
+<p>BorlandDeploymentTool is dedicated to the Borland Application Server 4.5.x and Borland
+  Enterprise Server 5.x. It  generates and compiles the stubs and skeletons for all ejb described into the
+  Deployment Descriptor, builds the jar file including the support files and
+  verify whether the produced jar is valid or not.</p>
+
+<p>Benoit Moussaud maintains a separate <a
+href="http://www.moussaud.org/ejbjar.html">FAQ</a> for this task at
+his homepage.</p>
+
+<h3>Borland element</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top" width="63"><b>Attribute</b></td>
+    <td valign="top" width="915"><b>Description</b></td>
+    <td align="center" valign="top" width="62"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">destdir</td>
+    <td valign="top" width="915">The base directory into which the generated borland
+      ready jar files are deposited</td>
+    <td align="center" valign="middle" width="62">yes</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">debug</td>
+    <td valign="top" width="915">If true, turn on the debug mode for each borland
+      tools (java2iiop, iastool ...) default = false</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">verify</td>
+    <td valign="top" width="915">If true, turn on the verification at the end
+      of the jar production (default = false)</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">verifyargs</td>
+    <td valign="top" width="915">extra parameter for verify command</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">suffix</td>
+    <td valign="top" width="915">String value appended to the basename of the
+      deployment descriptor to create the filename of the Borland EJB jar file.</td>
+    <td align="center" valign="middle" width="62">No, defaults to '-ejb.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">basdtd</td>
+    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
+      DTD which covers the Borland specific deployment descriptors.
+      This should not be necessary if you have borland in your classpath. If you
+      do not, you should use a nested
+      <a href="ejb.html#ejbjar-dtd"><code>&lt;dtd&gt;</code></a> element, described
+      in the ejbjar task documentation.</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">ejbdtd</td>
+    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
+      ejb-jar DTD in the class hierarchy. This should not be necessary
+      if you have borland in your classpath. If you do not, you should use a
+      nested <a href="ejb.html#ejbjar-dtd"><code>&lt;dtd&gt;</code></a> element,
+      described in the ejbjar task
+      documentation. </td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">generateclient </td>
+    <td valign="top" width="915">If true, turn on the generation of the corresponding
+      ejbjar (default = false)</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">version</td>
+    <td valign="top" width="915">set the Borland Application Version.
+            <ul>
+              <li>4 means B.A.S (Borland Application Server) 4.x, target will add ejb-inprise.xml file</li>
+              <li>5 means B.E.S (Borland Application Server) 5.x, target will add ejb-borland.xml file</li>
+            </ul>
+          </td>
+    <td align="center" valign="middle" width="62">No, defaults to 4</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">java2iiopParams </td>
+    <td valign="top" width="915">If filled, the params are added to the java2iiop command (ex: -no_warn_missing_define)</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+<p>The following build.xml snippet is an example of how to use Borland element
+  into the ejbjar task</p>
+<pre>    &lt;ejbjar srcdir=&quot;${build.classes}&quot; basejarname=&quot;vsmp&quot; descriptordir=&quot;${rsc.dir}/hrmanager&quot;&gt;
+        &lt;borland destdir=&quot;lib&quot; verify=&quot;on&quot; generateclient=&quot;on&quot; version=&quot;5&quot;&gt;
+          &lt;classpath refid=&quot;classpath&quot;/&gt;
+        &lt;/borland&gt;
+        &lt;include name=&quot;**\ejb-jar.xml&quot;/&gt;
+        &lt;support dir=&quot;${build.classes}&quot;&gt;
+          &lt;include name=&quot;demo\*.class&quot;/&gt;
+          &lt;include name=&quot;demo\helper\*.class&quot;/&gt;
+         &lt;/support&gt;
+     &lt;/ejbjar&gt;</pre>
+<pre>The borland element will generate into the lib dir an ejb jar file using the deployment descriptor placed into the ${rsc.dir}/hrmanager directory.
+The verify phase is turned on and the generate client phase as well.
+</pre>
+
+<h3>&nbsp;</h3>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/BorlandGenerateClient.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/BorlandGenerateClient.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/BorlandGenerateClient.html	(revision 14989)
@@ -0,0 +1,90 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>BorlandGenerateClient Task</title>
+</head>
+
+<body>
+
+<h2><a name="log">BorlandGenerateClient</a></h2>
+<p>by Benoit Moussaud (<a href="mailto:benoit.moussaud@criltelecom.com">benoit.moussaud@criltelecom.com</a>)</p>
+<h3>Description</h3>
+<p>The BorlandGenerateClient is a task dedicated to Borland Application Server
+  v 4.5. It offers to generate the client jar file corresponding to an ejb jar
+  file.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top" width="63"><b>Attribute</b></td>
+    <td valign="top" width="915"><b>Description</b></td>
+    <td align="center" valign="top" width="62"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">ejbjar</td>
+    <td valign="top" width="915">ejb jar file</td>
+    <td align="center" valign="middle" width="62">yes</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">debug</td>
+    <td valign="top" width="915">If true, turn on the debug mode for each borland
+      tools (java2iiop, iastool ...) default = false</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">clientjar</td>
+    <td valign="top" width="915">client jar file name. If missing the client jar
+      file name is build using the ejbjar file name: ejbjar = hellobean-ejb.jar
+      =&gt; hellobean-ejbclient.jar</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">mode</td>
+    <td valign="top" width="915">choose the command launching mode. Two values:
+      java or fork. default = fork. java is not supported for version=5.Possibility to specify a classpath.</td>
+    <td align="center" valign="middle" width="62">no</td>
+  </tr>
+  <tr>
+    <td valign="top" width="63">version</td>
+    <td valign="top" width="915">set the Borland Application Version.
+            <ul>
+              <li>4 means B.A.S (Borland Application Server 4.x)</li>
+              <li>5 means B.E.S (Borland Application Server 5.x)</li>
+            </ul>
+          </td>
+    <td align="center" valign="middle" width="62">No, defaults to 4</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p>The following build.xml snippet is an example of how to use Borland element
+   into the ejbjar task using the java mode.</p>
+<pre>
+&lt;blgenclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot; debug=&quot;true&quot; mode=&quot;fork&quot;&gt; version=&quot;5&quot;&gt;
+    &lt;classpath&gt;
+        &lt;pathelement location=&quot;mymodule.jar&quot;/&gt;
+    &lt;/classpath&gt;
+&lt;/blgenclient&gt;
+</pre>
+<pre>&nbsp;</pre>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/antinstaller.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/antinstaller.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/antinstaller.html	(revision 14989)
@@ -0,0 +1,231 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>AntInstaller Task</title>
+</head>
+
+<body>
+
+<h2><a name="installer">Installer</a></h2>
+<h3>Description</h3>
+<p>An extension of the <a href="../CoreTasks/jar.html">Jar</a> task for creating
+installers.</p>
+<p>This task will correctly package the AntInstaller classes, the Ant classes,
+the antinstall-config.xml, the build.xml file, the default LookAndFeel classes, the button icons
+and create the required MANIFEST.mf to execute the Jar.</p> 
+<p>Nested filesets should
+be used to specify other resources required by the install (e.g. License.txt)
+and the files required to run the application being installed.  </p>
+
+<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the Installer task.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tbody>
+  <tr class="tpheader">
+    <td><b>Attribute</b></td>
+    <td><b>Description</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="file"></a>file</td>
+    <td valign="top">the JAR file to create.</td>
+
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="buildFile"></a>buildFile</td>
+    <td valign="top">The build.xml file to use when AntInstaller is run.</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+
+  <tr>
+    <td valign="top"><a name="installConfig"></a>installConfig</td>
+    <td valign="top">The antinstall-config.xml file to use when AntInstaller is run.</td>
+    <td valign="top" align="center">Yes, unless update is set to true</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="extractType"></a>extractType</td>
+
+    <td valign="top">Either NonExtractor or SelfExtractor.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="antInstallLib"></a>antInstallLib</td>
+    <td valign="top">The location of the AntInstaller jars.</td>
+    <td valign="top" align="center">Yes</td>
+
+  </tr>
+  <tr>
+    <td valign="top"><a name="antLib"></a>antLib</td>
+    <td valign="top">The location of the Ant jars. N.B. Ant 1.6.2 or above is required.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="icons"></a>icons</td>
+
+    <td valign="top">The <a target="_top" href="../../../icons.html">icon set to be used</a>. One of bluecurve, crystalsvg, amaranth, krystaline or eclipse,  new icons can be created and should be packed into a Jar with the name ai-icons-[name].jar with the png files in the resources/icons directory inside the jar.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="validateConfig"></a>validateConfig</td>
+    <td valign="top">when true the AntInstaller config file is validated and errors and 
+		warnings are printed to System.out, defaults to false</td>
+
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="failOnError"></a>failOnError</td>
+    <td valign="top">if a known error is found during validation the build will stop.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+  <tr>
+    <td valign="top"><a name="basedir"></a>basedir</td>
+    <td valign="top">the directory from which to jar the files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="compress"></a>compress</td>
+
+    <td valign="top">Not only store data but also compress them,
+    defaults to true.  Unless you set the <em>keepcompression</em>
+    attribute to false, this will apply to the entire archive, not
+    only the files you've added while updating.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="keepcompression"></a>keepcompression</td>
+
+    <td valign="top">For entries coming from existing archives (like
+    nested <em>zipfileset</em>s or while updating the archive), keep
+    the compression as it has been originally instead of using the
+    <em>compress</em> attribute.  Defaults false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="encoding"></a>encoding</td>
+
+    <td valign="top">The character encoding to use for filenames
+      inside the archive.  Defaults to UTF8. <strong>It is not
+      recommended to change this value as the created archive will most
+      likely be unreadable for Java otherwise.</strong></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="filesonly"></a>filesonly</td>
+    <td valign="top">Store only file entries, defaults to false</td>
+
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+
+    <td valign="top"><a name="includes"></a>includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+
+  </tr>
+  <tr>
+    <td valign="top"><a name="includesfile"></a>includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+
+    <td valign="top"><a name="excludes"></a>excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="excludesfile"></a>excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="defaultexcludes"></a>defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"><a name="manifest"></a>manifest</td>
+    <td valign="top">The manifest file to use if you wish to manually set the MANIFEST.MF (not recommended).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+  <tr>
+    <td valign="top"><a name="update"></a>update</td>
+    <td valign="top">indicates whether to update or overwrite
+      the destination file if it already exists.  Default is &quot;false&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+
+    <td valign="top"><a name="duplicate"></a>duplicate</td>
+    <td valign="top">behavior when a duplicate file is found.  Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;.  The default value is &quot;add&quot;.  </td>
+    <td valign="top" align="center">No</td>
+
+  </tr>
+</tbody>
+</table>
+
+<h3>Examples</h3>
+<p>
+Creates a compressed self-extracting jar, validating the configuration file myprojects-antinstall-config.xml
+</p>
+<pre>
+&lt;installer 
+	file="./MyProject-installer.jar" 
+	compress="true"
+	extractType="SelfExtractor"
+	installConfig="myprojects-antinstall-config.xml"
+	buildFile="myprojects-build.xml"
+	antInstallLib="${AntInstaller.home}/lib"
+	antLib="${AntInstaller.home}/antlib"
+	validateConfig="true"
+	failOnError="true"
+	icons="bluecurve"&gt;
+
+		&lt;!-- 
+			include the images for your installer 
+			and license texts
+		--&gt;
+		&lt;fileset dir="extra-install-classpath" includes="resources/*"/&gt;
+
+		&lt;!-- 
+			add you application binaries and resources 
+			to the installer here, for example
+		--&gt;
+		&lt;fileset dir="myproject" includes="myproject.jar"/&gt;
+		&lt;fileset dir="myproject" includes="myproject.properties"/&gt;
+		&lt;fileset dir="myproject" includes="mydefaultdata/*"/&gt;
+
+&lt;/installer&gt;
+</pre>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/antlr.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/antlr.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/antlr.html	(revision 14989)
@@ -0,0 +1,200 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ANTLR Task</title>
+</head>
+
+<body>
+
+<h2><a name="antlr">ANTLR</a></h2>
+<h3>Description</h3>
+<p>
+  Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a> Translator generator
+  on a grammar file.
+</p>
+<p>
+  To use the ANTLR task, set the <i>target</i> attribute to the name of the
+  grammar file to process.  Optionally, you can also set the
+  <i>outputdirectory</i> to write the generated file to a specific directory.
+  Otherwise ANTLR writes the generated files to the directory containing
+  the grammar file.
+</p>
+<p>
+  This task only invokes ANTLR if the grammar file (or the
+  supergrammar specified by the glib attribute) is newer than the
+  generated files.
+</p>
+<p>Antlr 2.7.1 Note:
+<i>
+  To successfully run ANTLR, your best option is probably to build the whole
+  jar with the provided script <b>mkalljar</b> and drop the resulting jar (about 300KB)
+  into ${ant.home}/lib. Dropping the default jar (70KB) is probably not enough
+  for most needs and your only option will be to add ANTLR home directory
+  to your classpath as described in ANTLR <tt>install.html</tt> document.
+</i>
+</p>
+<p>Antlr 2.7.2 Note:
+<i>
+  Instead of the above, you will need antlrall.jar that can be created
+  by the <b>antlr-all.jar</b> target of the Makefile provided with the
+  download.
+</i>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The grammar file to process.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">outputdirectory</td>
+    <td valign="top">
+      The directory to write the generated files to.  If not set, the files
+      are written to the directory containing the grammar file.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">glib</td>
+    <td valign="top">
+      An optional super grammar file that the target grammar overrides.  This
+      feature is only needed for advanced vocabularies.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">
+      When set to "yes", this flag adds code to the generated parser that will
+      launch the ParseView debugger upon invocation.  The default is "no".
+      <br>
+      Note: ParseView is a separate component that needs to be installed or your
+      grammar will have compilation errors.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">html</td>
+    <td valign="top">
+      Emit an html version of the grammar with hyperlinked actions.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">diagnostic</td>
+    <td valign="top">
+      Generates a text file with debugging information based on the target grammar.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">trace</td>
+    <td valign="top">
+      Forces <b>all</b> rules to call traceIn/traceOut if set to "yes".
+      The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">traceParser</td>
+    <td valign="top">
+      Only forces parser rules to call traceIn/traceOut if set to "yes".
+      The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">traceLexer</td>
+    <td valign="top">
+      Only forces lexer rules to call traceIn/traceOut if set to "yes".
+      The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">traceTreeWalker</td>
+    <td valign="top">
+      Only forces tree walker rules to call traceIn/traceOut if set to
+      "yes".  The default is "no".
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <!--tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run ANTLR in a separate VM.</td>
+    <td align="center" valign="top">No, default is &quot;off&quot;</td>
+  </tr-->
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to invoke the VM in. <!--(ignored if
+      fork is disabled)--></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+
+<p><code>ANTLR</code> supports a nested <code>&lt;classpath&gt;</code>
+element, that represents a <a href="../using.html#path">PATH like
+structure</a>. It is given as a convenience if you have to specify
+the original ANTLR directory. In most cases, dropping the appropriate
+ANTLR jar in the normal Ant lib repository will be enough.</p>
+
+<h4>jvmarg</h4>
+
+<p><!--If fork is enabled, -->Additional parameters may be passed to the new
+VM via nested <code>&lt;jvmarg&gt;</code> attributes, for example:</p>
+
+<pre>
+&lt;antlr target="..."&gt;
+  &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
+  ...
+&lt;/antlr&gt;
+</pre>
+
+<p>would run ANTLR in a VM without JIT.</p>
+
+<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
+href="../using.html#arg">Command line arguments</a>.</p>
+
+<h3>Example</h3>
+<blockquote><pre>
+&lt;antlr
+    target=&quot;etc/java.g&quot;
+    outputdirectory=&quot;build/src&quot;
+/&gt;
+</pre></blockquote>
+<p>
+  This invokes ANTLR on grammar file etc/java.g, writing the generated
+  files to build/src.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/attrib.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/attrib.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/attrib.html	(revision 14989)
@@ -0,0 +1,145 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="attrib">Attrib</a></h2>
+<p><em>Since Ant 1.6.</em></p>
+<h3>Description</h3>
+
+<p>Changes the attributes of a file or all files inside specified
+directories.  Right now it has effect only under Windows. Each of the
+4 possible permissions has its own attribute, matching the arguments
+for the attrib command.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s, 
+<a href="../CoreTypes/dirset.html">DirSet</a>s or <a
+href="../CoreTypes/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
+<code>&lt;filelist&gt;</code> elements.</p>
+
+<p>Starting with Ant 1.7, this task supports arbitrary <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+as nested elements.</p>
+
+<p>By default this task will use a single invocation of the underlying
+attrib command.  If you are working on a large number of files this
+may result in a command line that is too long for your operating
+system.  If you encounter such problems, you should set the
+maxparallel attribute of this task to a non-zero value.  The number to
+use highly depends on the length of your file names (the depth of your
+directory tree), so you'll have to experiment a little.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory of which the permissions must be
+    changed.</td>
+    <td valign="top" valign="middle">Yes or nested
+    <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">readonly</td>
+    <td valign="top">the readonly permission.</td>
+    <td valign="top" rowspan="4">at least one of the four. </td>
+  </tr>
+  <tr>
+    <td valign="top">archive</td>
+    <td valign="top">the archive permission.</td>
+  </tr>
+  <tr>
+    <td valign="top">system</td>
+    <td valign="top">the system permission.</td>
+  </tr>
+  <tr>
+    <td valign="top">hidden</td>
+    <td valign="top">the hidden permission.</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or <i>both</i>. If set to
+      <i>file</i>, only the permissions of plain files are going to be changed.
+      If set to <i>dir</i>, only the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chmod</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+  <blockquote>
+<pre>&lt;attrib file=&quot;${dist}/run.bat&quot; readonly=&quot;true&quot; hidden=&quot;true&quot;/&gt;</pre>
+</blockquote>
+<p>makes the &quot;run.bat&quot; file read-only and hidden.</p>
+<blockquote>
+  <pre>&lt;attrib readonly=&quot;false&quot;&gt;
+  &lt;fileset dir=&quot;${meta.inf}&quot; includes=&quot;**/*.xml&quot;/&gt;
+&lt;attrib&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.xml&quot; files below <code>${meta.inf}</code> readable.</p>
+<blockquote>
+  <pre>
+&lt;attrib readonly=&quot;true&quot; archive=&quot;true&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/attrib&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those below any
+  directory named trial) read-only and archived. In addition all files belonging
+  to a FileSet with <code>id</code> <code>other.shared.sources</code> get the
+  same attributes.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/cab.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/cab.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/cab.html	(revision 14989)
@@ -0,0 +1,167 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Cab Task</title>
+</head>
+
+<body>
+
+<h2><a name="cab">Cab</a></h2>
+<h3>Description</h3>
+<p>The cab task creates Microsoft cab archive files.  It is invoked
+similar to the <a href="../CoreTasks/jar.html">jar</a> or <a href="../CoreTasks/zip.html">zip</a> tasks.
+This task will work on Windows using the external cabarc tool (provided by Microsoft)
+which must be located in your executable path.</p>
+<p>To use this task on other platforms you need to download and compile libcabinet from
+<a href="http://trill.cis.fordham.edu/~barbacha/cabinet_library/">
+http://trill.cis.fordham.edu/~barbacha/cabinet_library/</a>.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
+tasks</a>, on how the inclusion/exclusion of files works, and how to
+write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>basedir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">cabfile</td>
+    <td valign="top">the name of the cab file to create.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the directory to start archiving files from.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">set to &quot;yes&quot; if you want to see the output from
+      the cabarc tool.  defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compress</td>
+    <td valign="top">set to &quot;no&quot; to store files without compressing.
+      defaults to &quot;yes&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">options</td>
+    <td valign="top">use to set additional command-line options for
+      the cabarc tool.  should not normally be necessary.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that
+      must be included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that
+      must be excluded. No files (except default excludes) are excluded
+      when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used
+      or not (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+
+<p>The cab task supports one nested <a
+href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>
+element to specify the files to be included in the archive.
+  If this is specified, the "basedir" attribute cannot be used.
+</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;
+  /&gt;
+</pre></blockquote>
+<p>cabs all files in the htdocs/manual directory into a file called
+manual.cab in the ${dist} directory.</p>
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;
+     excludes=&quot;mydocs/**, **/todo.html&quot;
+  /&gt;
+</pre></blockquote>
+<p>cabs all files in the htdocs/manual directory into a file called
+manual.cab in the ${dist} directory. Files in the directory mydocs,
+or files with the name todo.html are excluded.</p>
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;
+     includes=&quot;api/**/*.html&quot;
+     excludes=&quot;**/todo.html&quot;
+     verbose=&quot;yes&quot;
+  /&gt;
+</pre></blockquote>
+<p>Cab all files in the htdocs/manual directory into a file called
+manual.cab in the ${dist} directory. Only html files under the
+directory api are archived, and files with the name todo.html are
+excluded. Output from the cabarc tool is displayed in the build
+output.</p>
+
+<blockquote><pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     verbose=&quot;yes&quot;&gt;
+  &lt;fileset
+       dir=&quot;htdocs/manual&quot;
+       includes=&quot;api/**/*.html&quot;
+       excludes=&quot;**/todo.html&quot;
+  /&gt;
+&lt;/cab&gt;
+</pre></blockquote>
+<p>is equivalent to the example above.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ccm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ccm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ccm.html	(revision 14989)
@@ -0,0 +1,273 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Continuus Tasks</title>
+</head>
+
+<body>
+
+<h1>Continuus Support</h1>
+<ul>
+  <li><a href="#ccmcheckin">CCMCheckin</a></li>
+  <li><a href="#ccmcheckout">CCMCheckout</a></li>
+  <li><a href="#ccmcheckintask">CCMCheckinTask</a></li>
+  <li><a href="#ccmreconfigure">CCMReconfigure</a></li>
+  <li><a href="#ccmcreatetask">CCMCreateTask</a></li>
+</ul>
+
+<p>These ant tasks are wrappers around Continuus Source Manager. They have been tested
+  against versions 5.1/6.2 on Windows 2000, but should work on other platforms with ccm installed.</p>
+<p>author: <a href="mailto:benoit.moussaud@criltelecom.com">Benoit Mousaud (benoit.moussaud@criltelecom.com) </a></p>
+<hr>
+<h2><a name="ccmcheckin">CCMCheckin</a></h2>
+<h3>Description</h3>
+Task to checkin a file
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0" width="598">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>file</td>
+    <td>Path to the file that the command will operate on</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Default is &quot;Checkin&quot; plus the date</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>task</td>
+    <td>Specify the task number used to check in the file (may use 'default')</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td>path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <pre>&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot;
+        comment=&quot;mycomment&quot;/&gt;
+</pre>
+</blockquote>
+<p>Checks in the file <i>c:/wa/com/foo/MyFile.java</i>.
+  Comment attribute <i>mycomment</i> is added as a task comment. The task
+  used is the one set as the default.</p>
+<hr>
+<h2><a name="ccmcheckout">CCMCheckout</a></h2>
+<h3>Description</h3>
+Task to perform a Checkout command to Continuus
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0" width="614">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>file</td>
+    <td>Path to the file that the command will operate on</td>
+    <td rowspan=2">Yes (file|fileset)</td>
+  </tr>
+  <tr>
+    <td>fileset</td>
+    <td>fileset containing the file to be checked out</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>task</td>
+    <td>Specify the task number used to checkin the file (may use
+      'default')</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td>path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <pre>&lt;ccmcheckout file=&quot;c:/wa/com/foo/MyFile.java&quot;
+        comment=&quot;mycomment&quot;/&gt;
+</pre>
+</blockquote>
+<p>Check out the file <i>c:/wa/com/foo/MyFile.java</i>.
+  Comment attribute <i>mycomment</i> is added as a task comment
+   The used task is the one set as the default.</p>
+<blockquote>
+  <pre>&lt;ccmcheckout  comment=&quot;mycomment&quot;&gt;
+  &lt;fileset dir=&quot;lib&quot; &gt;
+    &lt;include name=&quot;**/*.jar&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/ccmcheckout &gt;
+  </pre>
+</blockquote>
+
+<p>Check out all the files in the <i>lib</i> directory having the <i>.jar</i> extension.
+  Comment attribute <i>mycomment</i> is added as a task comment
+   The used task is the one set as the default.</p>
+
+
+
+<hr>
+<h2><a name="ccmcheckintask">CCMCheckinTask</a></h2>
+<h3>Description</h3>
+Task to perform a check in default task command to Continuus
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>task</td>
+    <td>Specify the task number used to check in the file (may use 'default')</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples </h3>
+<blockquote>
+  <pre>&lt;ccmcheckintask comment=&quot;blahblah/&gt;
+</pre>
+</blockquote>
+<p>Does a Checkin default task on all the checked out files in the current task.</p>
+<hr>
+<h2><a name="ccmreconfigure">CCMReconfigure</a></h2>
+<h3>Description</h3>
+Task to perform an reconfigure command to Continuus.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>recurse</td>
+    <td>recurse on subproject (default false)</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>verbose</td>
+    <td>do a verbose reconfigure operation (default false)</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmproject</td>
+    <td>Specifies the ccm project on which the operation is applied.</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+ <pre>&lt;ccmreconfigure ccmproject=&quot;ANTCCM_TEST#BMO_1&quot;
+         verbose=&quot;true&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a Continuus <i>reconfigure</i> on the project <i>ANTCCM_TEST#BMO_1</i>.
+</p>
+<hr>
+<h2><a name="ccmcreatetask">CCMCreateTask</a></h2>
+<h3>Description</h3>
+Create a Continuus task.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>platform</td>
+    <td>Specify the target platform</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>ccmdir</td>
+    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>resolver</td>
+    <td>Specify the resolver</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>release</td>
+    <td>Specify the CCM release</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>subsystem</td>
+    <td>Specify the subsystem</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>task</td>
+    <td>Specify the task number used to checkin the file (may use 'default')</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <pre>&lt;ccmcreatetask resolver=&quot;${user.name}&quot;
+            release=&quot;ANTCCM_TEST&quot; comment=&quot;blahblah&quot;/&gt;
+</pre>
+</blockquote>
+<p>Creates a task for the release <i>ANTCCM_TEST</i> with the
+  current user as the resolver for this task.</p>
+
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/chgrp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/chgrp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/chgrp.html	(revision 14989)
@@ -0,0 +1,166 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Chgrp Task</title>
+</head>
+
+<body>
+
+<h2><a name="Chgrp">Chgrp</a></h2>
+<p><em>Since Ant 1.6.</em></p>
+<h3>Description</h3>
+
+<p>Changes the group of a file or all files inside specified
+directories. Right now it has effect only under Unix.  The group
+attribute is equivalent to the corresponding argument for the chgrp
+command.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s, 
+<a href="../CoreTypes/dirset.html">DirSet</a>s or <a
+href="../CoreTypes/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
+<code>&lt;filelist&gt;</code> elements.</p>
+
+<p>Starting with Ant 1.7, this task supports arbitrary <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+as nested elements.</p>
+
+<p>By default this task will use a single invocation of the underlying
+chgrp command.  If you are working on a large number of files this may
+result in a command line that is too long for your operating system.
+If you encounter such problems, you should set the maxparallel
+attribute of this task to a non-zero value.  The number to use highly
+depends on the length of your file names (the depth of your directory
+tree) and your operating system, so you'll have to experiment a
+little.  POSIX recommends command line length limits of at least 4096
+characters, this may give you an approximation for the number you
+could use as initial value for these experiments.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory of which the group must be
+    changed.</td>
+    <td valign="top" valign="middle">Yes, unless nested
+      <code>&lt;fileset|filelist|dirset&gt;</code>
+      elements are specified</td>
+  </tr>
+  <tr>
+    <td valign="top">group</td>
+    <td valign="top">the new group.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chgrp</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the group of
+      plain files are going to be changed. If set to <i>dir</i>, only
+      the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.</td>
+    <td align="center" valign="top">No</td>
+
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+  <blockquote><pre>
+&lt;chgrp file=&quot;${dist}/start.sh&quot; group=&quot;coders&quot;/&gt;
+</pre>
+</blockquote>
+<p>makes the &quot;start.sh&quot; file belong to the coders group on a
+UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chgrp group=&quot;coders&quot;&gt;
+  &lt;fileset dir=&quot;${dist}/bin&quot; includes=&quot;**/*.sh&quot;/&gt;
+&lt;/chgrp&gt;
+</pre>
+</blockquote>
+<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
+belong to the coders group on a UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chgrp group=&quot;coders&quot;&gt;
+  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
+    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
+&lt;/chgrp&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those
+below any directory named trial) belong to the coders group on a UNIX 
+system. In addition all files belonging to a FileSet
+with <code>id</code> <code>other.shared.sources</code> get the same
+group.</p>
+
+<blockquote>
+<pre>
+&lt;chgrp group=&quot;webdev&quot; type=&quot;file&quot;&gt;
+  &lt;fileset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/*.test.jsp&quot;/&gt;
+    &lt;include name=&quot;**/*.new&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;dirset dir=&quot;/web&quot;&gt;
+    &lt;include name=&quot;**/test_*&quot;/&gt;
+  &lt;/dirset&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+
+<p>makes all <code>.test.jsp</code>, and <code>.new</code> files belong to 
+group webdev. Directories beginning with <code>test_</code> also will belong 
+to webdev, but if there is a directory that ends in <code>.new</code> or a file
+that begins with <code>test_</code> it will be unaffected.</p>
+
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/chown.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/chown.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/chown.html	(revision 14989)
@@ -0,0 +1,164 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Chown Task</title>
+</head>
+
+<body>
+
+<h2><a name="Chown">Chown</a></h2>
+<p><em>Since Ant 1.6.</em></p>
+<h3>Description</h3>
+
+<p>Changes the owner of a file or all files inside specified
+directories. Right now it has effect only under Unix.  The owner
+attribute is equivalent to the corresponding argument for the chown
+command.</p>
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s, 
+<a href="../CoreTypes/dirset.html">DirSet</a>s or <a
+href="../CoreTypes/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
+<code>&lt;filelist&gt;</code> elements.</p>
+
+<p>Starting with Ant 1.7, this task supports arbitrary <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s
+as nested elements.</p>
+
+<p>By default this task will use a single invocation of the underlying
+chown command.  If you are working on a large number of files this may
+result in a command line that is too long for your operating system.
+If you encounter such problems, you should set the maxparallel
+attribute of this task to a non-zero value.  The number to use highly
+depends on the length of your file names (the depth of your directory
+tree) and your operating system, so you'll have to experiment a
+little.  POSIX recommends command line length limits of at least 4096
+characters, this may give you an approximation for the number you
+could use as initial value for these experiments.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file or directory of which the owner must be
+    changed.</td>
+    <td valign="top" valign="middle">Yes or nested
+    <code>&lt;fileset/list&gt;</code> elements.</td>
+  </tr>
+  <tr>
+    <td valign="top">owner</td>
+    <td valign="top">the new owner.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">parallel</td>
+    <td valign="top">process all specified files using a single
+      <code>chown</code> command. Defaults to true.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">One of <i>file</i>, <i>dir</i> or
+      <i>both</i>. If set to <i>file</i>, only the owner of
+      plain files are going to be changed. If set to <i>dir</i>, only
+      the directories are considered.<br>
+      <strong>Note:</strong> The type attribute does not apply to
+      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
+      assume type to be <i>dir</i>.</td>
+    <td align="center" valign="top">No, default is <i>file</i></td>
+  </tr>
+  <tr>
+    <td valign="top">maxparallel</td>
+    <td valign="top">Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to &lt;= 0 for
+      unlimited.  Defaults to unlimited.</td>
+    <td align="center" valign="top">No</td>
+
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether to print a summary after execution or not.
+      Defaults to <code>false</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;chown file="${dist}/start.sh" owner="coderjoe"/&gt;
+</pre>
+</blockquote>
+<p>makes the "start.sh" file belong to coderjoe on a
+UNIX system.</p>
+<blockquote>
+<pre>
+    &lt;chown owner="coderjoe"&gt;
+      &lt;fileset dir="${dist}/bin" includes="**/*.sh"/&gt;
+    &lt;/chown&gt;
+</pre>
+</blockquote>
+<p>makes all ".sh" files below <code>${dist}/bin</code>
+belong to coderjoe on a UNIX system.</p>
+<blockquote>
+<pre>
+&lt;chown owner="coderjoe"&gt;
+  &lt;fileset dir="shared/sources1"&gt;
+    &lt;exclude name="**/trial/**"/&gt;
+  &lt;/fileset&gt;
+  &lt;fileset refid="other.shared.sources"/&gt;
+&lt;/chown&gt;
+</pre>
+</blockquote>
+<p>makes all files below <code>shared/sources1</code> (except those
+below any directory named trial) belong to coderjoe on a UNIX 
+system. In addition all files belonging to a FileSet
+with <code>id</code> <code>other.shared.sources</code> get the same
+owner.</p>
+
+<blockquote>
+<pre>
+&lt;chown owner="webadmin" type="file"&gt;
+  &lt;fileset dir="/web"&gt;
+    &lt;include name="**/*.cgi"/&gt;
+    &lt;include name="**/*.old"/&gt;
+  &lt;/fileset&gt;
+  &lt;dirset dir="/web"&gt;
+    &lt;include name="**/private_*"/&gt;
+  &lt;/dirset&gt;
+&lt;/chmod&gt;
+</pre>
+</blockquote>
+
+<p>makes cgi scripts, files with a <code>.old</code> extension or
+directories beginning with <code>private_</code> belong to the user named
+webadmin. A directory ending in <code>.old</code> or a file beginning with 
+<code>private_</code> would remain unaffected.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/clearcase.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/clearcase.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/clearcase.html	(revision 14989)
@@ -0,0 +1,958 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Clearcase Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+<h1>Ant ClearCase Tasks</h1>
+<p>by:<br>
+Curtis White (cwhite at aracnet dot com),<br>
+Sean P. Kane (spkane at genomatica dot com),<br>
+Rob Anderson (Anderson.Rob at vectorscm dot com), and<br>
+Sean Egan    (sean at cm-logic dot com)</p>
+
+<p>Version 1.6 - 02/25/2003</p>
+
+<h1>ClearCase Support</h1>
+<h2>Table of Contents</h2>
+<ul>
+  <li><A href="#introduction">Introduction</a>
+  <li><A href="#cccheckin">CCCheckin</a>
+  <li><A href="#cccheckout">CCCheckout</a>
+  <li><A href="#ccuncheckout">CCUnCheckout</a>
+  <li><A href="#ccupdate">CCUpdate</a>
+  <li><A href="#ccmklbtype">CCMklbtype</a>
+  <li><A href="#ccmklabel">CCMklabel</a>
+  <li><A href="#ccrmtype">CCRmtype</a>
+  <li><A href="#cclock">CCLock</a>
+  <li><A href="#ccunlock">CCUnlock</a>
+  <li><A href="#ccmkbl">CCMkbl</a>
+  <li><A href="#ccmkattr">CCMkattr</a>
+  <li><A href="#ccmkdir">CCMkdir</a>
+  <li><A href="#ccmkelem">CCMkelem</a></li>
+
+</ul>
+
+<hr>
+<h2><a name="introduction">Introduction</a></h2>
+<p>Ant provides several optional tasks for working with ClearCase. These tasks correspond to various
+ClearCase commands using the Cleartool program. The current tasks available for Ant correspond to only
+a few of the significant ClearCase commands.</p>
+
+<p>More tasks can be easily added by deriving from the ClearCase class and then adding
+functionality that is specific to that ClearCase command.</p>
+<p>
+    Important: these tasks all require <code>cleartool</code> on the command line.
+    If a task fails with an IOException, especially error code 2 on Windows,
+    this is your problem.
+</p>
+
+
+<hr>
+<h2><a name="cccheckin">CCCheckin</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool checkin" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or commentfile
+        may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nowarn</td>
+    <td>Suppress warning messages</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>preservetime</td>
+    <td>Preserve the modification time</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>keepcopy</td>
+    <td>Keeps a copy of the file with a .keep extension</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>identical</td>
+    <td>Allows the file to be checked in even if it is identical
+        to the original</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;cccheckin viewpath="c:/views/viewdir/afile"
+        commentfile="acomment.txt"
+        nowarn="true"
+        identical="true"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>checkin</i> on the file <i>c:/views/viewdir/afile</i>.
+Comment text from the file <i>acomment.txt</i> is added to ClearCase as a comment.
+All warning messages are suppressed. The file is checked in even if it is
+<i>identical</i> to the original.</p>
+<hr>
+<h2><a name="cccheckout">CCCheckout</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool checkout" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>reserved</td>
+    <td>Specifies whether to check out the file as reserved or not</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>out</td>
+    <td>Creates a writable file under a different filename</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nodata</td>
+    <td>Checks out the file but does not create an editable file
+        containing its data</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>branch</td>
+    <td>Specify a branch to check out the file to</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>version</td>
+    <td>Allows checkout of a version other than main latest</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nowarn</td>
+    <td>Suppress warning messages</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or
+        commentfile may be used.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>notco</td>
+    <td>Fail if it's already checked out to the current view. Set to false to ignore it.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;cccheckout viewpath="c:/views/viewdir/afile"
+        reserved="true"
+        branch="abranch"
+        nowarn="true"
+        comment="Some comment text"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>checkout</i> on the file <i>c:/views/viewdir/afile</i>.
+It is checked out as <i>reserved</i> on branch called <i>abranch</i>. All
+warning messages are suppressed. A <i>Some comment text</i> is added to
+ClearCase as a comment.</p>
+<hr>
+<h2><a name="ccuncheckout">CCUnCheckout</a></h2>
+<h3>Description</h3>
+Task to perform a UnCheckout command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>keepcopy</td>
+    <td>Specifies whether to keep a copy of the file with a .keep
+        extension or not</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccuncheckout viewpath="c:/views/viewdir/afile"
+        keepcopy="true"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>uncheckout</i> on the file <i>c:/views/viewdir/afile</i>.
+A copy of the file called <i>c:/views/viewdir/afile.keep</i> is kept.</p>
+<hr>
+<h2><a name="ccupdate">CCUpdate</a></h2>
+<h3>Description</h3>
+Task to perform an "cleartool update" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase snapshot view file or directory that the command
+        will operate on</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>graphical</td>
+    <td>Displays a graphical dialog during the update</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>log</td>
+    <td>Specifies a log file for ClearCase to write to</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>overwrite</td>
+    <td>Specifies whether to overwrite hijacked files or not</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>rename</td>
+    <td>Specifies that hijacked files should be renamed with a .keep extension</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>currenttime</td>
+    <td>Specifies that modification time should be written as the
+        current time. Either currenttime or preservetime can be
+        specified.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>preservetime</td>
+    <td>Specifies that modification time should preserved from the
+        VOB time. Either currenttime or preservetime can be
+        specified.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccupdate viewpath="c:/views/viewdir"
+        graphical="false"
+        log="log.log"
+        overwrite="true"
+        currenttime="true"
+        rename="false"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>update</i> on the snapshot view directory <i>c:/views/viewdir</i>.
+A graphical dialog will be displayed. The output will be logged to
+<i>log.log</i> and it will overwrite any hijacked files. The modified
+time will be set to the current time.</p>
+
+
+
+<hr>
+<h2><a name="ccmklbtype">CCMklbtype</a></h2>
+<h3>Description</h3>
+Task to perform a "mklbtype" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>typename</td>
+    <td>Name of the label type to create</td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>vob</td>
+    <td>Name of the VOB</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>replace</td>
+    <td>Replace an existing label definition of the same type</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>global</td>
+    <td>Either global or ordinary can be specified, not both. Creates a label type that is global to the VOB or to VOBs that use this VOB</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>ordinary</td>
+    <td>Either global or ordinary can be specified, not both. Creates a label type that can be used only in the current VOB. <B>Default</B></td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>pbranch</td>
+    <td>Allows the label type to be used once per branch in a given element's version tree</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>shared</td>
+    <td>Sets the way mastership is checked by ClearCase. See ClearCase documentation for details</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr></tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmklbtype typename="VERSION_1"
+        ordinary="true"
+        comment="Development version 1"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mklbtype</i> to create a label type named <i>VERSION_1</i>.
+It is created as <i>ordinary</i> so it is available only to the current VOB.
+The text <i>Development version 1</i> is added as a comment.</p>
+
+
+<hr>
+<h2><a name="ccmklabel">CCMklabel</a></h2>
+<h3>Description</h3>
+Task to perform a "mklabel" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>typename</td>
+    <td>Name of the label type</td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command will operate on</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>replace</td>
+    <td>Replace a label of the same type on the same branch</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>recurse</td>
+    <td>Process each subdirectory under viewpath</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>version</td>
+    <td>Identify a specific version to attach the label to</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>vob</td>
+    <td>Name of the VOB</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr></tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmklabel viewpath="c:/views/viewdir/afile"
+        comment="Some comment text"
+        recurse="true"
+        version="\main\2"
+        typename="VERSION_1"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mklabel</i> on the file <i>c:/views/viewdir/afile</i> under
+the main branch for version 2 (<i>\main\2</i>). Text <i>Some comment text</i> is added
+as a comment. It will <i>recurse</i> all subdirectories.
+
+
+<hr>
+<h2><a name="ccrmtype">CCRmtype</a></h2>
+<h3>Description</h3>
+Task to perform a "rmtype" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>typekind</td>
+    <td>The kind of type to create. Valid types are:
+      <table border="0" width="40%" class="layout">
+        <tr>
+          <td><b>attype</b><br>
+              <b>brtype</b><br>
+              <b>eltype</b><br>
+              <b>hltype</b><br>
+              <b>lbtype</b><br>
+              <b>trtype</b>
+          </td>
+          <td>- <br>
+              - <br>
+              - <br>
+              - <br>
+              - <br>
+              -
+          </td>
+          <td>attribute type<br>
+              branch type<br>
+              element type<br>
+              hyperlink type<br>
+              label type<br>
+              trigger type
+          </td>
+        </tr>
+      </table>
+    </td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>typename</td>
+    <td>The name of the type to remove</td>
+    <td>Yes</td>
+  <tr>
+  <tr>
+    <td>ignore</td>
+    <td>Used with trigger types only. Forces removal of trigger type even if a pre-operation trigger would prevent its removal</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>rmall</td>
+    <td>Removes all instances of a type and the type object itself</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr>
+  <tr>
+    <td>commentfile</td>
+    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+    <td>No</td>
+  <tr></tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccrmtype typekind="lbtype"
+        typename="VERSION_1"
+        commentfile="acomment.txt"
+        rmall="true"/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>rmtype</i> to remove a label type (<i>lbtype</i>) named <i>VERSION_1</i>.
+Comment text from the file <i>acomment.txt</i> is added as a comment. All instances of the type
+are removed, including the type object itself.</p>
+<hr>
+
+<h2><a name="cclock">CCLock</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool lock" command to ClearCase.
+<h3>Parameters</h3>
+ <table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>replace</td>
+      <td>Specifies replacing an existing lock</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>nusers</td>
+      <td>Specifies user(s) who can still modify the object</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>obsolete</td>
+      <td>Specifies that the object should be marked obsolete</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>comment</td>
+      <td>Specifies how to populate comments fields</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>pname</td>
+      <td>Specifies the object pathname to be locked.</td>
+      <td>No</td>
+   <tr>
+      <td>objselect</td>
+      <td>This variable is obsolete. Should use <i>objsel</i> instead.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>objsel</td>
+      <td>Specifies the object(s) to be locked.<br>
+      Since ant 1.6.1</td>
+      <td>No</td>
+   <tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;cclock
+    objsel="stream:Application_Integration@\MyProject_PVOB"
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>lock</i> on the object <i>stream:Application_Integration@\MyProject_PVOB</i>.</p>
+<hr>
+
+<h2><a name="ccunlock">CCUnlock</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool unlock" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specifies how to populate comments fields</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>pname</td>
+      <td>Specifies the object pathname to be unlocked.</td>
+      <td>No</td>
+   <tr>
+      <td>objselect</td>
+      <td>This variable is obsolete. Should use <i>objsel</i> instead.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>objsel</td>
+      <td>Specifies the object(s) to be unlocked.<br>
+      Since ant 1.6.1</td>
+      <td>No</td>
+   <tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+
+ </table>
+ <h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccunlock
+    objsel="stream:Application_Integration@\MyProject_PVOB"
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>unlock</i> on the object <i>stream:Application_Integration@\MyProject_PVOB</i>.</p>
+<hr>
+
+<h2><a name="ccmkbl">CCMkbl</a></h2>
+<h3>Description</h3>
+Task to perform a "cleartool mkbl" command to ClearCase.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be
+used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or
+cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>baselinerootname</td>
+      <td>Specify the name to be associated with the baseline.</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>nowarn</td>
+      <td>Suppress warning messages</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>identical</td>
+      <td>Allows the baseline to be created even if it is identical to the
+previous baseline.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>full</td>
+      <td>Creates a full baseline.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>nlabel</td>
+      <td>Allows the baseline to be created without a label.</td>
+      <td>No</td>
+   </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails. Default is true.<br>
+    Since ant 1.6.1</td>
+    <td>No</td>
+  </tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkbl
+    baselinerootname="Application_Baseline_AUTO"
+    identical="yes"
+    full="no"
+    viewpath="v:\ApplicationCC"
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkbl</i> on the Integration view at <i>v:\ApplicationCC</i>
+even if it is <i>identical</i> to a previous baseline. The new baseline with be
+incremental and named "Application_Baseline_AUTO".</p>
+<hr>
+
+<h2><a name="ccmkattr">CCMkattr</a></h2>
+<h3>Description</h3>
+Task to perform a &quot;cleartool mkattr&quot; command to ClearCase.<br>
+Since ant 1.6.1
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>viewpath</td>
+      <td>Path to the ClearCase view file or directory that the command will operate on</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>replace</td>
+      <td>Replace the value of the attribute if it already exists</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>recurse</td>
+      <td>Process each subdirectory under viewpath</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>version</td>
+      <td>Identify a specific version to attach the attribute to</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>typename</td>
+      <td>Name of the attribute type</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>typevalue</td>
+      <td>Value to attach to the attribute type</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>failonerr</td>
+      <td>Throw an exception if the command fails. Default is true</td>
+      <td>No</td>
+   </tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkattr viewpath=&quot;c:/views/viewdir/afile&quot;
+    typename=&quot;BugFix&quot;
+    typevalue=&quot;34445&quot;
+    /&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkattr</i> on the file <i>c:/views/viewdir/afile</i> and
+attaches the attribute <i>BugFix</i> with a value of <i>34445</i> to it.</p>
+<hr>
+
+<h2><a name="ccmkdir">CCMkdir</a></h2>
+<h3>Description</h3>
+Task to perform a &quot;cleartool mkdir&quot; command to ClearCase.<br>
+Since ant 1.6.1
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>viewpath</td>
+      <td>Path to the ClearCase view directory that the command will operate on</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>nocheckout</td>
+      <td>Do not checkout after element creation</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>failonerr</td>
+      <td>Throw an exception if the command fails. Default is true</td>
+      <td>No</td>
+   </tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkdir viewpath=&quot;c:/views/viewdir/adir&quot;
+        nochcekout=&quot;true&quot;
+        comment=&quot;Some comment text&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkdir</i> on the dir <i>c:/views/viewdir/adir</i> and
+does not automatically check it out.</p>
+<hr>
+
+<h2><a name="ccmkelem">CCMkelem</a></h2>
+<h3>Description</h3>
+Task to perform a &quot;cleartool mkelem&quot; command to ClearCase.<br>
+Since ant 1.6.1
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+   <tr>
+      <td>viewpath</td>
+      <td>Path to the ClearCase view file or directory that the command will operate on</td>
+      <td>Yes</td>
+   <tr>
+   <tr>
+      <td>comment</td>
+      <td>Specify a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>commentfile</td>
+      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>nowarn</td>
+      <td>Suppress warning messages</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>nocheckout</td>
+      <td>Do not checkout after element creation</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>checkin</td>
+      <td>Checkin element after creation</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>preservetime</td>
+      <td>Preserve the modification time (for checkin)</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>master</td>
+      <td>Assign mastership of the main branch to the current site</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>eltype</td>
+      <td>Element type to use during element creation</td>
+      <td>No</td>
+   <tr>
+   <tr>
+      <td>failonerr</td>
+      <td>Throw an exception if the command fails. Default is true</td>
+      <td>No</td>
+   <tr>
+ </table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;ccmkelem viewpath=&quot;c:/views/viewdir/afile&quot;
+        eltype=&quot;text_file&quot;
+        checkin=&quot;true&quot;
+        comment=&quot;Some comment text&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a ClearCase <i>mkelem</i> on the file <i>c:/views/viewdir/afile</i> with
+element type <i>text_file</i>. It also checks in the file after creation.</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/csc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/csc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/csc.html	(revision 14989)
@@ -0,0 +1,494 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Csc
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Csc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Compiles C# source into executables or modules.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Compiles C# source into executables or modules. csc.exe on Windows or mcs on any other platform must be on the execute path, unless another executable or the full path to that executable is specified in the <tt>executable</tt> parameter <p> All parameters are optional: <code>&lt;csc/&gt;</code> should suffice to produce a debug build of all *.cs files. However, naming an <tt>destFile</tt>stops the csc compiler from choosing an output name from random, and allows the dependency checker to determine if the file is out of date. <p> The task is a directory based task, so attributes like <b>includes="*.cs" </b> and <b>excludes="broken.cs"</b> can be used to control the files pulled in. By default, all *.cs files from the project folder down are included in the command. When this happens the output file -if not specified- is taken as the first file in the list, which may be somewhat hard to control. Specifying the output file with <tt>destFile</tt> seems prudent. <p> <p> For more complex source trees, nested <tt>src</tt> elements can be supplied. When such an element is present, the implicit fileset is ignored. This makes sense, when you think about it :)  <p>For historical reasons the pattern <code>**/*.cs</code> is preset as includes list and you can not override it with an explicit includes attribute.  Use nested <code>&lt;src&gt;</code> elements instead of the basedir attribute if you need more control.</p> <p> References to external files can be made through the references attribute, or (since Ant1.6), via nested <code>&lt;reference&gt;</code> filesets. With the latter, the timestamps of the references are also used in the dependency checking algorithm. <p> Example <pre>&lt;csc optimize=&quot;true&quot; debug=&quot;false&quot; docFile=&quot;documentation.xml&quot; warnLevel=&quot;4&quot; unsafe=&quot;false&quot; targetType=&quot;exe&quot; incremental=&quot;false&quot; mainClass = &quot;MainApp&quot; destFile=&quot;NetApp.exe&quot; &gt; &lt;src dir="src" includes="*.cs"/&gt; &lt;reference file="${testCSC.dll}"/&gt; &lt;define name="RELEASE"/&gt; &lt;define name="DEBUG" if="debug.property"/&gt; &lt;define name="def3" unless="def3.property"/&gt; &lt;/csc&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="26">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">definitions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of defined constants.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">docfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">file for generated XML documentation</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">filealign</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the file alignment. Valid values are 0,512, 1024, 2048, 4096, 8192, and 16384, 0 means 'leave to the compiler'</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">fullpaths</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, print the full path of files on errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">incremental</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the incremental compilation flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">noconfig</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">A flag that tells the compiler not to read in the compiler settings files 'csc.rsp' in its bin directory and then the local directory</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">outputfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">The output file. This is identical to the destFile attribute.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">unsafe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables the unsafe keyword.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/depend.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/depend.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/depend.html	(revision 14989)
@@ -0,0 +1,216 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Depend Task</title>
+</head>
+
+<body>
+
+<h2>Depend</h2>
+
+A task to manage Java class file dependencies.
+
+<h3>Description</h3>
+
+<p>
+The depend task works by determining which classes are out of date with
+respect to their source and then removing the class files of any other
+classes which depend on the out-of-date classes.
+</p>
+
+<p> To determine the class dependencies, the depend task analyses the class 
+files of all class files passed to it. Depend does not parse your source code in 
+any way but relies upon the class references encoded into the class files by the 
+compiler. This is generally faster than parsing the Java source.</p>
+
+<p>
+To learn more about how this information is obtained from the class files, 
+please refer to <a href="http://java.sun.com/docs/books/vmspec/">the Java 
+Virtual Machine Specification</a>
+</p>
+
+<p> Since a class' dependencies only change when the class itself changes, the 
+depend task is able to cache dependency information. Only those class files 
+which have changed will have their dependency information re-analysed. Note that 
+if you change a class' dependencies by changing the source, it will be 
+recompiled anyway. You can examine the dependency files created to understand 
+the  dependencies of your classes. Please do not rely, however, on the format of 
+the information, as it may change in a later release. </p>
+
+<p> Once depend discovers all of the class dependencies, it &quot;inverts&quot; 
+this relation to determine, for each class, which other classes are dependent 
+upon it. This &quot;affects&quot; list is used to discover which classes are 
+invalidated by the out of date class. The class files of the invalidated 
+classes are removed, triggering the compilation of the affected classes. </p>
+
+<p> The depend task supports an attribute, &quot;closure&quot; which controls 
+whether depend will only consider direct class-class relationships or whether it 
+will also consider transitive, indirect relationships. For example, say there 
+are three classes, A, which depends on B, which in-turn depend on C. Now say 
+that class C is out of date. Without closure, only class B would be removed by 
+depend. With closure set, class A would also be removed. Normally direct 
+relationships are sufficient - it is unusual for a class to depend on another 
+without having a direct relationship. With closure set, you will notice that 
+depend typically removes far more class files. </p>
+
+<p>The classpath attribute for <code>&lt;depend&gt;</code> is optional. If it is present, 
+depend will check class dependencies against classes and jars on this classpath.
+Any classes which depend on an element from this classpath and which are older 
+than that element will be deleted. A typical example where you would use this 
+facility would be where you are building a utility jar and want to make sure 
+classes which are out of date with respect to this jar are rebuilt. You should
+<b>not</b> include jars in this classpath which you do not expect to change, 
+such as the JDK runtime jar or third party jars, since doing so will just slow 
+down the dependency check. This means that if you do use a classpath for the 
+depend task it may be different from the classpath necessary to actually 
+compile your code.</p>
+
+<h3>Performance</h3> 
+
+<p> The performance of the depend task is dependent on a 
+number of factors such as class relationship complexity and how many class files 
+are out of date. The decision about whether it is cheaper to just recompile all 
+classes or to use the depend task will depend on the size of your project and 
+how interrelated your classes are. </p>
+
+
+<h3>Limitations</h3>
+
+<p> There are some source dependencies which depend will not detect. </p>
+
+<ul>
+<li>If the Java compiler optimizes away a class relationship, 
+    there can be a source dependency without a class dependency. </li>
+    
+<li>Non public classes cause two problems. Firstly depend cannot relate
+    the class file to a source file. In the future this may be addressed
+    using the source file attribute in the classfile. Secondly, neither 
+    depend nor the compiler tasks can detect when a non public class is
+    missing. Inner classes are handled by the depend task.</li>
+</ul>
+
+The most obvious example of these limitations is that the task can't tell
+which classes to recompile when a constant primitive data type exported 
+by other classes is changed. For example, a change in the definition of
+something like
+<pre>
+public final class Constants {
+  public final static boolean DEBUG=false;
+}
+</pre> will not be picked up by other classes.
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">This is the directory where the source exists. depend
+will examine this to determine which classes are out of date. If you use multiple
+source directories you can pass this attribute a path of source directories.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destDir</td>
+    <td valign="top">This is the root directory of the class files which
+will be analysed. If this is not present, the srcdir is used.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cache</td>
+    <td valign="top">This is a directory in which depend can store and
+retrieve dependency information. If this is not present, depend will not
+use a cache </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">closure</td>
+    <td valign="top">This attribute controls whether depend only removes
+classes which directly depend on out of date classes. If this is set to true,
+depend will traverse the class dependency graph deleting all affected
+classes. Defaults to false</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dump</td>
+    <td valign="top">If true the dependency information will be written to the debug level log
+                     </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath containing jars and classes for which <code>&lt;depend&gt;</code> should also
+                     check dependencies</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">warnOnRmiStubs</td>
+    <td valign="top">Flag to disable warnings about files that look like rmic generated stub/skeleton
+    classes, and which have no .java source. Useful when doing rmi development. </td>
+    <td valign="top" align="center">No, default=true</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<p>The <code>depend</code> task's <code>classpath</code> attribute is a 
+<a href="../using.html#path">PATH-like structure</a> and can also be set
+via a nested <code>&lt;classpath&gt;</code> element.</p>
+
+<p>Additionally,
+this task forms an implicit
+<a href="../CoreTypes/fileset.html">FileSet</a>
+and supports all attributes of
+<code>&lt;fileset&gt;</code> (<code>dir</code> becomes <code>srcdir</code>),
+as well as the nested <code>&lt;include&gt;</code>,
+<code>&lt;exclude&gt;</code>, and <code>&lt;patternset&gt;</code> elements.
+
+<h3>Examples</h3>
+<pre>&lt;depend srcdir=&quot;${java.dir}&quot;
+        destdir=&quot;${build.classes}&quot;
+        cache=&quot;depcache&quot;
+        closure=&quot;yes&quot;/&gt;</pre>
+
+<p>removes any classes in the <code>${build.classes}</code> directory
+that depend on out-of-date classes. Classes are considered out-of-date with 
+respect to the source in the <code>${java.dir}</code> directory, using the same
+mechanism as the <code>&lt;javac&gt;</code> task. In this example, the
+<code>&lt;depend&gt;</code> task caches its dependency 
+information in the <code>depcache</code> directory. </p>
+
+<pre>
+&lt;depend srcdir=&quot;${java.dir}&quot; destdir=&quot;${build.classes}&quot;
+        cache=&quot;depcache&quot; closure=&quot;yes&quot;&gt;
+  &lt;include name=&quot;**/*.java&quot;/&gt;
+  &lt;excludesfile name=&quot;${java.dir}/build_excludes&quot;/&gt;
+&lt;/depend&gt;
+</pre>
+<p>does the same as the previous example, but explicitly includes all
+<code>.java</code> files, except those that match the list given
+in <code>${java.dir}/build_excludes</code>.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/dotnet.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/dotnet.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/dotnet.html	(revision 14989)
@@ -0,0 +1,326 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>.NET Tasks</title>
+</head>
+
+<h1>.NET tasks</h1>
+<h2>Introduction</h2>
+
+
+<p><strong>These tasks are deprecated and will be removed in a future
+release of Ant.  They are now part of the <a
+href="http://ant.apache.org/antlibs/dotnet/index.html">.NET
+Antlib</a>.</strong></p>
+
+Ant support for .NET goes back to before .NET was released, and
+continues to be expanded based on user demand. Users writing nothing but
+a .NET application, may want to look at the .NET-based
+<A href="http://nant.sourceforge.net/">NAnt</A> project, that supports
+both the Microsoft and the Ximian managed <A
+href="http://go-mono.com/">Mono</A> project's implementation of the
+.NET framework.
+<p>
+
+Over time, the .NET tasks in Ant have tended to evolve to meet a few
+limited needs. Firstly, developers working with complex deployment problems may
+want to use ant to use the fairly advanced deployment tasks Ant ships
+with. Secondly, anyone who has a cross-platform project can use these
+tasks to cover the .NET side of the problem. Here, cross-platform can
+mean more than just Java and .NET: the C++ tasks in the ant-contrib
+project on sourceforge can be used with Ant to do native C++ and .NET
+cross development if that is your need. Finally, Ant support for .NET
+lets one automate .NET development under an automated build process,
+such as AntHill or Cruise Control.
+
+<p>
+
+What this means is that the Ant tasks for .NET support do not get as
+much rigorous use as the Java tools, and are evolving more slowly -that
+includes the time for support calls to change. But as a consequence,
+developers working on .NET support have more freedom to play around with
+the code. It also means that the fairly unusual set of tasks supported
+by ant enable a few interesting operations that can not be performed any
+other way:
+<ol>
+
+<li>Integrating with a Java based SOAP Service -generating C# code from
+the server's WSDL and running it against the server.
+</li>
+<li>Building and deploying a C#-based Web Service, then using the Apache
+Axis tasks to create JUnit tests to call the endpoints.
+
+<li>Patching .NET type libraries to work with more complex IDL than the
+basic <code>&lt;importtypelib&gt;</code> wrapper around tlbimport supports. Hence the
+disassembler and the reassembler.
+</li>
+
+</ol>
+Needless to say, possible does not mean easy.
+<A href="http://www.manning.com/hatcher/chap15.pdf">Chapter 15</A> of
+Java Development with Ant covers the first of these, using the Ant1.5
+version of the tasks. Going the other way -generating Java client
+code and JUnit testcases is covered in
+<A href="http://www.iseran.com/Steve/papers/interop/">The Wondrous curse
+of Interop</A>. The final trick, IDL and Typelib abuse, is not
+documented as we do not want to encourage such an ugly practise. It,
+can, however, be done if absolutely necessary. 
+
+<h3>Task List</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td><b>Task</b></td>
+  <td><b>Description</b></td>
+</tr>
+<tr>
+  <td><a href="csc.html">csc</a></td>
+  <td>Compiles C# code</td>
+</tr>
+
+<tr>
+  <td><a href="vbc.html">vbc</a></td>
+  <td>Compiles VB.NET code</td>
+</tr>
+
+<tr>
+  <td><a href="jsharpc.html">jsharpc</a></td>
+  <td>Compiles J# files</td>
+</tr>
+
+<tr>
+  <td><a href="ildasm.html">ildasm</a></td>
+  <td>Disassembles .NET executables and libraries</td>
+</tr>
+
+<tr>
+  <td><a href="ilasm.html">ilasm</a></td>
+  <td>Assembles .il files</td>
+</tr>
+
+<tr>
+  <td><a href="wsdltodotnet.html">wsdltodotnet</a></td>
+  <td>Generates .NET code (C# or VB) from a WSDL file</td>
+</tr>
+
+<tr>
+  <td><a href="importtypelib.html">importtypelib</a></td>
+  <td>Imports a COM type library into .NET</td>
+</tr>
+
+</table>
+
+<hr>
+<h3>Common .NET Datatypes </h3>
+
+There are some datatypes that are common to the core compiler classes:
+csc, vbc and  jsharpc
+
+<h4>Resource</h4>
+
+This is a resource that is included in the build. Ant uses this for
+dependency checking -if resources included this way have changed, the
+executable or library will be rebuilt.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">File</td> 
+    <td valign="top">the resource to include</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td> 
+    <td valign="top">the name of the resource. 
+    Optional unless the resource is
+    marked as public or private</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">embed</td> 
+    <td valign="top">flag to control whether the resource
+    is embedded in the assembly, or just linked to it</td>
+    <td align="center" valign="top">No -default is true</td>
+  </tr>
+  <tr>
+    <td valign="top">public</td> 
+    <td valign="top">VB only: flag to control if a resource should be 
+    public or private. Set to true for public, false for private
+    and leave undefined for for neither. </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h5>Examples</h5>
+
+<pre>
+&lt;resource file="app.ico" name="icon"/&gt;
+&lt;resource file="splash.jpg"/&gt;
+&lt;resource name="splash" file="splash.jpg" public="false"/&gt;
+</pre>
+
+<h4>Define</h4>
+
+This is a definition; in .NET these can either be defined or undefined,
+unlike C++ #defines, which can be either undefined or arbitrary text.
+The Ant compilation tasks can unconditionally add definitions, or
+conditionally set a compile-time definition if an ant property is
+defined or not.
+<p>
+
+Dependency Logic: the tasks are not (yet) clever enough to remember what
+the last definitions were and trigger a rebuild when they change. Clean
+build the code when the defines are likely to be different.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td> 
+    <td valign="top">the name of the definition</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td> 
+    <td valign="top">name of a ant property to test for;
+    the definition is only set if this property is defined.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td> 
+    <td valign="top">name of a ant property to test for;
+    the definition is only set if this property is undefined.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h5>Examples</h5>
+
+<pre>
+&lt;define name="unsafe"/&gt;
+&lt;define name="debug" if="build.debug"/&gt;
+&lt;define name="dotnet" unless="build.mono"/&gt;
+</pre>
+
+<hr>
+<h3> Change Log </h3>
+
+<h4>Ant1.6</h4>
+This revision goes along with NET 1.1, though there is no reason why
+it should not work on other versions.
+<p>
+
+<ol>
+<li>vbc task</li>
+<li>jsharpc task</li>
+<li>mono support</li>
+<li>ilasm</li>
+<li>tlbimport</li>
+<li>Reference filesets in the compiler tasks</li>
+<li>definitions in the compiler tasks</li>
+<li>multiple source filesets in the compiler tasks. If these are used, the
+implicit fileset is disabled</li>
+</ol>
+
+The compile tasks: vbc, jsharpc, and csc, all contain lots of common code
+in a shared base class: if you can use one you should be able to use
+another.
+
+<h4>Ant 1.5</h4>
+This revision goes along with NET 1.0 (SP1)
+<ol>
+<li>CSC: added filealign</li>
+<li>CSC: added reference to office.dll</li>
+<li>CSC: dependency checking! only if destFile is set!
+<li>WsdlToDotnet written
+</ol>
+
+<h4>Version 0.5</h4>
+This revision goes along with NET 1.0 (SP1)
+<ol>
+<li>CSC: added filealign</li>
+<li>CSC: added reference to office.dll</li>
+<li>CSC: dependency checking! only if destFile is set!
+<li>WsdlToDotnet written
+</ol>
+
+<h4>Version 0.4</h4>
+This is the beta-2 revision of the tasks.
+<ol>
+<li>ILASM: pulled the owner attribute, added keyfile for giving binaries a strong name
+(MD5 hash of the checksum)</li>
+<li>CSC: added win32res , noConfig, utf8output, fullpaths</li>
+<li>CSC: </li>
+</ol>
+
+<h4>Version 0.3</h4>
+
+The changes here reflect Beta-1 of the dotnet SDK and experience of use in
+more complex projects. This build does not work with the older SDK,
+primarily because the automatic reference feature references libraries
+only found in the new SDK version.
+<p>
+External changes</p>
+<ul>
+<li>Recursive inclusion of .cs and .il files</li>
+
+<li>Documentation enhanced, includes examples and details of all parameters</li>
+
+<li>The csc task automatically includes the common dotnet assemblies, so
+there is no need to remember to refer to 'System.dll', 'System.Web.Services',
+ etc. This feature can be disabled by setting the 'includeDefaultReferences'
+ flag to false. </li>
+
+ <li> References can also be referred to using the ReferenceFiles parameter, which
+is an ant path specification. The old 'references' string is still retained.</li>
+<li> An 'extraoptions' attribute enables the build file to include any CSC options
+which are not explicitly supported in the CSC task. </li>
+</ul>
+
+Internal changes
+<ul>
+<li>Some minor refactoring (move common code a method)</li>
+<li>Application of Jedits JavaStyle task resulted in a major reshaping of
+the codebase and the insertion of a blank line every second line. Significant
+effort was required to revert some (but not all) changes.</li>
+<li>Removed throws clause from methods which can't throw exception
+</ul>
+
+The test harness has been expanded to include unicode source file
+(the build works but the rest of the system has 'issues' with high unicode
+package and method names)
+
+<h4>Version 0.2</h4>
+First public edition, added to the ant cvs tree. Tested on the PDC build of
+the dotnet SDK only, and still immature. The command execution code was
+refactored out into a 'NetCommand' class for re-use. The Ilasm task was added
+at this time.
+
+<h4>Version 0.1</h4>
+Initial proof of concept; very rudimentary support for CSC only.
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/echoproperties.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/echoproperties.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/echoproperties.html	(revision 14989)
@@ -0,0 +1,146 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Echoproperties Task</title>
+</head>
+
+<body>
+
+<h2><a name="echoproperties">echoproperties</a></h2>
+<h3>Description</h3>
+
+<p>Displays all the current properties (or a subset of them specified
+by a nested <code>&lt;propertyset&gt;</code>) in the project.  The
+output can be sent to a file if desired.  This task can be used as a
+somewhat contrived means of returning data from an
+<tt>&lt;ant&gt;</tt> invocation, but is really for debugging build
+files.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">If specified, the value indicates the name of the
+    file to send the output of the statement to.  The generated output file
+    is compatible for loading by any Java application as a property file.
+    If not specified, then the output will go to the Ant log.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">
+        a prefix which is used to filter the properties
+        only those properties starting with this prefix will be echoed.
+        <P>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">regex</td>
+    <td valign="top">
+        a regular expression which is used to filter the
+        properties
+        only those properties whose names match it will be echoed.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>   
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">By default, the "failonerror" attribute is enabled.
+    If an error occurs while writing the properties to a file, and this
+    attribute is enabled, then a BuildException will be thrown, causing the
+    build to fail.  If disabled, then IO errors will be reported as a log
+    statement, and the build will continue without failure from this task.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">One of <code>text</code> or <code>xml</code>.
+    Determines the output format.  Defaults to <code>text</code>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>propertyset</h4>
+
+<p>You can specify subsets of properties to be echoed with <a
+href="../CoreTypes/propertyset.html">propertyset</a>s. Using
+<tt>propertyset</tt>s gives more control on which properties will be
+picked up. The attributes <tt>prefix</tt> and <tt>regex</tt> are just
+shorcuts that use <tt>propertyset</tt>s internally.
+</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+  &lt;echoproperties/&gt;
+</pre></blockquote>
+<p>Report the current properties to the log.</p>
+<blockquote><pre>
+  &lt;echoproperties destfile="my.properties"/&gt;
+</pre></blockquote>
+<p>Report the current properties to the file "my.properties", and will
+fail the build if the file could not be created or written to.</p>
+<blockquote><pre>
+  &lt;echoproperties destfile="my.properties" failonerror="false"/&gt;
+</pre></blockquote>
+<p>Report the current properties to the file "my.properties", and will
+log a message if the file could not be created or written to, but will still
+allow the build to continue.</p>
+<blockquote><pre>
+  &lt;echoproperties prefix="java."/&gt;
+</pre></blockquote>
+<p>List all properties beginning with "java."</p>
+<blockquote><pre>
+  &lt;echoproperties&gt;
+    &lt;propertyset&gt;
+      &lt;propertyref prefix="java."/&gt;
+    &lt;/propertyset&gt;
+  &lt;/echoproperties&gt;
+</pre></blockquote>
+<p>This again lists all properties beginning with "java." using a nested
+<tt>&lt;/propertyset&gt;</tt> which is an equivalent but longer way.</p>
+<blockquote><pre>
+  &lt;echoproperties regex=".*ant.*"/&gt;
+</pre></blockquote>
+<p>Lists all properties that contain "ant" in their names.
+The equivalent snippet with <tt>&lt;/propertyset&gt;</tt> is:</p>
+<blockquote><pre>
+  &lt;echoproperties&gt;
+    &lt;propertyset&gt;
+      &lt;propertyref regex=".*ant.*"/&gt;
+    &lt;/propertyset&gt;
+  &lt;/echoproperties&gt;
+</pre></blockquote>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ejb.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ejb.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ejb.html	(revision 14989)
@@ -0,0 +1,1776 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>EJB Tasks</title>
+
+</head>
+
+<body>
+
+<h1>Ant EJB Tasks User Manual</h1>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Paul Austin (<a href="mailto:p_d_austin@yahoo.com">p_d_austin@yahoo.com</a>)</li>
+  <li>Holger Engels (<a href="mailto:hengels@innovidata.com">hengels@innovidata.com</a>)</li>
+  <li>Tim Fennell (<a href="mailto:tfenne@rcn.com">tfenne@rcn.com</a>)</li>
+  <li>Martin Gee (<a href="mailto:martin.gee@icsynergy.com">martin.gee@icsynergy.com</a>)</li>
+  <li>Conor MacNeill</li>
+  <li>Cyrille Morvan (<a href="mailto:cmorvan@ingenosya.com">cmorvan@ingenosya.com</a>)</li>
+  <li>Greg Nelson (<a href="mailto:gn@sun.com">gn@sun.com</a>)</li>
+  <li>Rob van Oostrum(<a href="mailto:rob@springwellfarms.ca">rob@springwellfarms.ca</a>)</li>
+</ul>
+
+<hr>
+<h2>Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#ejbtasks">EJB Tasks</a></li>
+</ul>
+
+<hr>
+<h2><a name="introduction">Introduction</a></h2>
+<p>Ant provides a number of optional tasks for developing 1.x and 2.x
+<a href="http://java.sun.com/products/ejb" target="_top">Enterprise Java Beans (EJBs)</a>.
+In general these tasks are specific to the particular vendor's EJB Server.</p>
+
+<p> The tasks support:<br>
+
+<ul>
+  <li><a href="http://www.borland.com">Borland </a>
+  Application Server 4.5</li>
+  <li><a href="http://www.iplanet.com">iPlanet </a>
+  Application Server 6.0</li>
+  <li><a href="http://www.jboss.org/" target="_top">
+  JBoss 2.1</a> and above EJB servers</li>
+  <li><a href="http://www.bea.com" target="_top">Weblogic</a>
+   4.5.1 through to 7.0 EJB servers</li>
+  <li><a href="http://www.objectweb.org/jonas/" target="_top">JOnAS</a>
+   2.4.x and 2.5 Open Source EJB server</li>
+  <li><a href="http://www.ibm.com/websphere">IBM WebSphere</a> 4.0</li>
+</ul>
+    Vendors such as BEA and IBM now provide custom Ant tasks to work with their
+    particular products. More importantly, EJB3.0 renders this whole process obsolete.
+    Accordingly, developement of these tasks is effectively frozen. Bug reports
+    and especially patches are welcome, but there is no pressing need to add
+    support for new application servers. Nobody should be writing new EJB2.x applications
+    and definitely not new EJB2.x servers.
+</p>
+
+<hr>
+<h2><a name="ejbtasks">EJB Tasks</a></h2>
+<table border="1" cellpadding="2" cellspacing="0">
+ <tr><td>Task</td><td colspan="2">Application Servers</td></tr>
+ <tr><td><a href="BorlandGenerateClient.html">blgenclient</a></td><td colspan="2">Borland Application Server 4.5 and 5.x</td></tr>
+ <tr><td><a href="#ddcreator">ddcreator</a></td><td colspan="2">Weblogic 4.5.1</td></tr>
+ <tr><td><a href="#ejbc">ejbc</a></td><td colspan="2">Weblogic 4.5.1</td></tr>
+ <tr><td><a href="#iplanet-ejbc">iplanet-ejbc</a></td><td colspan="2">iPlanet Application Server 6.0</td></tr>
+ <tr><td rowspan="7"><a href="#ejbjar">ejbjar</a></td><td colspan="2" align="center"><b>Nested Elements</b></td></tr>
+ <tr><td><a href="BorlandEJBTasks.html">borland</a></td><td>Borland Application Server 4.5 and 5.x</td></tr>
+ <tr><td><a href="#ejbjar_iplanet">iPlanet</a></td><td>iPlanet Application Server 6.0</td></tr>
+ <tr><td><a href="#ejbjar_jboss">jboss</a></td><td>JBoss</td></tr>
+ <tr><td><a href="#ejbjar_jonas">jonas</a></td><td>JOnAS 2.4.x and 2.5</td></tr>
+ <tr><td><a href="#ejbjar_weblogic">weblogic</a></td><td>Weblogic 5.1 to 7.0</td></tr>
+ <tr><td><a href="#ejbjar_websphere">websphere</a></td><td>IBM WebSphere 4.0</td></tr>
+ <tr><td><a href="#wlrun">wlrun</a></td><td colspan="2">Weblogic 4.5.1 to 7.0</td></tr>
+ <tr><td><a href="#wlstop">wlstop</a></td><td colspan="2">Weblogic 4.5.1 to 7.0</td></tr>
+
+</table>
+
+<hr>
+<h2><a name="ddcreator">ddcreator</a></h2>
+<h3><b>Description:</b></h3>
+<p>ddcreator will compile a set of Weblogic text-based deployment descriptors into a serialized
+EJB deployment descriptor. The selection of which of the text-based descriptors are to be compiled
+is based on the standard Ant include and exclude selection mechanisms.
+</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">descriptors</td>
+    <td valign="top">This is the base directory from which descriptors are selected.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">The directory where the serialized deployment descriptors will be written</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">This is the classpath to use to run the underlying weblogic ddcreator tool.
+                     This must include the <code>weblogic.ejb.utils.DDCreator</code> class</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;ddcreator descriptors=&quot;${dd.dir}&quot;
+           dest=&quot;${gen.classes}&quot;
+           classpath=&quot;${descriptorbuild.classpath}&quot;&gt;
+  &lt;include name=&quot;*.txt&quot;/&gt;
+&lt;/ddcreator&gt;
+</pre>
+
+<hr>
+<h2><a name="ejbc">ejbc</a></h2>
+<h3><b>Description:</b></h3>
+<p>The ejbc task will run Weblogic's ejbc tool. This tool will take a serialized deployment descriptor,
+examine the various EJB interfaces and bean classes and then generate the required support classes
+necessary to deploy the bean in a Weblogic EJB container. This will include the RMI stubs and skeletons
+as well as the classes which implement the bean's home and remote interfaces.</p>
+<p>
+The ant task which runs this tool is able to compile several beans in a single operation. The beans to be
+compiled are selected by including their serialized deployment descriptors. The standard ant
+<code>include</code> and <code>exclude</code> constructs can be used to select the deployment descriptors
+to be included. </p>
+<p>
+Each descriptor is examined to determine whether the generated classes are out of date and need to be
+regenerated. The deployment descriptor is de-serialized to discover the home, remote and
+implementation classes. The corresponding source files are determined and checked to see their
+modification times. These times and the modification time of the serialized descriptor itself are
+compared with the modification time of the generated classes. If the generated classes are not present
+or are out of date, the ejbc tool is run to generate new versions.</p>
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">descriptors</td>
+    <td valign="top">This is the base directory from which the serialized deployment descriptors are selected.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">dest</td>
+    <td valign="top">The base directory where the generated classes, RIM stubs and RMI skeletons are written</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manifest</td>
+    <td valign="top">The name of a manifest file to be written. This manifest will contain an entry for each EJB processed</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The base directory of the source tree containing the source files of the home interface,
+                     remote interface and bean implementation classes.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">This classpath must include both the <code>weblogic.ejbc</code> class and the
+                     class files of the bean, home interface, remote interface, etc of the bean being
+                     processed.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgenerated</td>
+    <td>Controls whether ejbc will keep the
+        intermediate Java files used to build the class files. This can be
+        useful when debugging.</td>
+    <td>No, defaults to false.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;ejbc descriptors=&quot;${gen.classes}&quot;
+           src=&quot;${src.dir}&quot;
+           dest=&quot;${gen.classes}&quot;
+           manifest=&quot;${build.manifest}&quot;
+           classpath=&quot;${descriptorbuild.classpath}&quot;&gt;
+  &lt;include name=&quot;*.ser&quot;/&gt;
+&lt;/ejbc&gt;
+</pre>
+
+<hr>
+<h2>
+<a NAME="iplanet-ejbc"></a>iplanet-ejbc</h2>
+
+<h3>
+<b>Description:</b></h3>
+Task to compile EJB stubs and skeletons for the iPlanet Application Server
+6.0.  Given a standard EJB 1.1 XML descriptor as well as an iAS-specific
+EJB descriptor, this task will generate the stubs and skeletons required
+to deploy the EJB to iAS.  Since the XML descriptors can include multiple
+EJBs, this is a convenient way of specifying many EJBs in a single Ant
+task.
+<p>For each EJB specified, the task will locate the three classes that
+comprise the EJB in the destination directory.  If these class files
+cannot be located in the destination directory, the task will fail. The
+task will also attempt to locate the EJB stubs and skeletons in this directory.
+If found, the timestamps on the stubs and skeletons will be checked to
+ensure they are up to date. Only if these files cannot be found or if they
+are out of date will the iAS ejbc utility be called to generate new stubs
+and skeletons.</p>
+<h3>
+Parameters:</h3>
+
+<table border="1" cellspacing="0" cellpadding="2">
+<tr>
+<td valign="top"><b>Attribute</b></td>
+
+<td valign="top"><b>Description</b></td>
+
+<td align="center" valign="top"><b>Required</b></td>
+</tr>
+
+<tr>
+<td valign="top">ejbdescriptor</td>
+
+<td valign="top">Standard EJB 1.1 XML descriptor (typically titled "ejb-jar.xml").</td>
+
+<td align="center" valign="top">Yes</td>
+</tr>
+
+<tr>
+<td valign="top">iasdescriptor</td>
+
+<td valign="top">iAS-specific EJB XML descriptor (typically titled "ias-ejb-jar.xml").</td>
+
+<td align="center" valign="top">Yes</td>
+</tr>
+
+<tr>
+<td valign="top">dest</td>
+
+<td valign="top">The is the base directory where the RMI stubs and skeletons
+are written. In addition, the class files for each bean (home interface,
+remote interface, and EJB implementation) must be found in this directory.</td>
+
+<td align="center" valign="top">Yes</td>
+</tr>
+
+<tr>
+<td valign="top">classpath</td>
+
+<td valign="top">The classpath used when generating EJB stubs and skeletons.
+If omitted, the classpath specified when Ant was started will be used.
+Nested "classpath" elements may also be used.</td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">keepgenerated</td>
+
+<td valign="top">Indicates whether or not the Java source files which are
+generated by ejbc will be saved or automatically deleted. If "yes", the
+source files will be retained. If omitted, it defaults to "no". </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">debug</td>
+
+<td>Indicates whether or not the ejbc utility should log additional debugging
+statements to the standard output. If "yes", the additional debugging statements
+will be generated.  If omitted, it defaults to "no". </td>
+
+<td align="center" valign="top">
+<center>No</center>
+</td>
+</tr>
+
+<tr>
+<td valign="top">iashome</td>
+
+<td>May be used to specify the "home" directory for this iAS installation.
+This is used to find the ejbc utility if it isn't included in the user's
+system path. If specified, it should refer to the "[install-location]/iplanet/ias6/ias"
+directory. If omitted, the ejbc utility must be on the user's system path. </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+</table>
+
+<h3>
+Examples</h3>
+
+<pre>
+&lt;iplanet-ejbc ejbdescriptor="ejb-jar.xml"
+              iasdescriptor="ias-ejb-jar.xml"
+              dest="${build.classesdir}"
+              classpath="${ias.ejbc.cpath}"/&gt;
+
+
+&lt;iplanet-ejbc ejbdescriptor="ejb-jar.xml"
+              iasdescriptor="ias-ejb-jar.xml"
+              dest="${build.classesdir}"
+              keepgenerated="yes"
+              debug="yes"
+              iashome="${ias.home}"&gt;
+              &lt;classpath&gt;
+                  &lt;pathelement path="."/&gt;
+                  &lt;pathelement path="${build.classpath}"/&gt;
+              &lt;/classpath&gt;
+&lt;/iplanet-ejbc&gt;
+
+
+</pre>
+
+<hr>
+<h2><a name="wlrun">wlrun</a></h2>
+<h3><b>Description:</b></h3>
+
+<p>The <code>wlrun</code> task is used to start a weblogic server. The task runs
+a weblogic instance in a separate Java Virtual Machine. A number of parameters
+are used to control the operation of the weblogic instance. Note that the task,
+and hence ant, will not complete until the weblogic instance is stopped.</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required for 4.5.1 and 5.1</b></td>
+    <td align="center" valign="top"><b>Required for 6.0</b></td>
+  </tr>
+  <tr>
+    <td valign="top">BEA Home</td>
+    <td valign="top">The location of the BEA Home where the server's config is defined.
+                     If this attribute is present, wlrun assumes that the server will
+                     be running under Weblogic 6.0</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">home</td>
+    <td valign="top">The location of the weblogic home that is to be used. This is the location
+                     where weblogic is installed.</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">Yes. Note this is the absolute location, not relative to
+                                    BEA home.</td>
+  </tr>
+  <tr>
+    <td valign="top">Domain</td>
+    <td valign="top">The domain to which the server belongs.</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be used with the Java Virtual Machine that runs the Weblogic
+                     Server. Prior to Weblogic 6.0, this is typically set to the Weblogic
+                     boot classpath. Under Weblogic 6.0 this should include all the
+                     weblogic jars</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">wlclasspath</td>
+    <td valign="top">The weblogic classpath used by the Weblogic Server.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">N/A</td>
+  </tr>
+  <tr>
+    <td valign="top">properties</td>
+    <td valign="top">The name of the server's properties file within the weblogic home directory
+                     used to control the weblogic instance.</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">N/A</td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the weblogic server within the weblogic home which is to be run.
+                     This defaults to &quot;myserver&quot;</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">policy</td>
+    <td valign="top">The name of the security policy file within the weblogic home directory that
+                     is to be used. If not specified, the default policy file <code>weblogic.policy</code>
+                     is used.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The management username used to manage the server</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The server's management password</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">pkPassword</td>
+    <td valign="top">The private key password so the server can decrypt the SSL
+                     private key file</td>
+    <td valign="top" align="center">N/A</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmargs</td>
+    <td valign="top">Additional argument string passed to the Java Virtual Machine used to run the
+                     Weblogic instance.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">weblogicMainClass</td>
+    <td valign="top">name of the main class for weblogic</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<p>The wlrun task supports nested <code>&lt;classpath&gt;</code> and <code>&lt;wlclasspath&gt;</code>
+elements to set the respective classpaths.</p>
+
+<h3>Examples</h3>
+
+<p>This example shows the use of wlrun to run a server under Weblogic 5.1</p>
+
+<pre>
+    &lt;wlrun taskname=&quot;myserver&quot;
+           classpath=&quot;${weblogic.boot.classpath}&quot;
+           wlclasspath=&quot;${weblogic.classes}:${code.jars}&quot;
+           name=&quot;myserver&quot;
+           home=&quot;${weblogic.home}&quot;
+           properties=&quot;myserver/myserver.properties&quot;/&gt;
+</pre>
+
+<p>This example shows wlrun being used to run the petstore server under
+Weblogic 6.0</p>
+
+<pre>
+    &lt;wlrun taskname=&quot;petstore&quot;
+           classpath=&quot;${weblogic.classes}&quot;
+           name=&quot;petstoreServer&quot;
+           domain=&quot;petstore&quot;
+           home=&quot;${weblogic.home}&quot;
+           password=&quot;petstorePassword&quot;
+           beahome=&quot;${bea.home}&quot;/&gt;
+</pre>
+
+<hr>
+<h2><a name="wlstop">wlstop</a></h2>
+<h3><b>Description:</b></h3>
+
+<p>The <code>wlstop</code> task is used to stop a weblogic instance which is
+currently running. To shut down an instance you must supply both a username and
+a password. These will be stored in the clear in the build script used to stop
+the instance. For security reasons, this task is therefore only appropriate in a
+development environment. </p>
+
+<p>This task works for most version of Weblogic, including 6.0. You need to
+specify the BEA Home to have this task work correctly under 6.0</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">BEAHome</td>
+    <td valign="top">This attribute selects Weblogic 6.0 shutdown.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be used with the Java Virtual Machine that runs the Weblogic
+                     Shutdown command.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">user</td>
+    <td valign="top">The username of the account which will be used to shutdown the server</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password for the account specified in the user parameter.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The URL which describes the port to which the server is listening for T3 connections.
+                     For example, t3://localhost:7001</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">delay</td>
+    <td valign="top">The delay in seconds after which the server will stop. This defaults to an
+                     immediate shutdown.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Element</h3>
+
+<p>The classpath of the wlstop task can be set by a <code>&lt;classpath&gt;</code> nested element.</p>
+
+<h3>Examples</h3>
+
+<p>This example show the shutdown for a Weblogic 6.0 server</p>
+
+<pre>
+    &lt;wlstop classpath=&quot;${weblogic.classes}&quot;
+            user=&quot;system&quot;
+            url=&quot;t3://localhost:7001&quot;
+            password=&quot;foobar&quot;
+            beahome=&quot;${bea.home}&quot;/&gt;
+</pre>
+
+<hr>
+
+<h2><a name="ejbjar">ejbjar</a></h2>
+<h3><b>Description:</b></h3>
+
+<p>This task is designed to support building of EJB jar files (EJB 1.1 &amp; 2.0).
+Support is currently provided for 'vanilla' EJB jar files - i.e. those containing only
+the user generated class files and the standard deployment descriptor. Nested
+elements provide support for vendor specific deployment tools. These currently
+include: </p>
+<ul>
+  <li>Borland Application Server 4.5</li>
+  <li>iPlanet Application Server 6.0</li>
+  <li>JBoss 2.1 and above</li>
+  <li>Weblogic 5.1/6.0 session/entity beans using the weblogic.ejbc tool</li>
+  <li>IBM WebSphere 4.0</li>
+  <li>TOPLink for WebLogic 2.5.1-enabled entity beans</li>
+  <li><a href="http://www.objectweb.org/jonas/">JOnAS</a> 2.4.x and 2.5 Open Source EJB server</li>
+</ul>
+
+
+<p>The task works as a directory scanning task, and performs an action for each
+deployment descriptor found. As such the includes and excludes should be set
+to ensure that all desired EJB descriptors are found, but no application
+server descriptors are found. For each descriptor found, ejbjar will parse the
+deployment descriptor to determine the necessary class files which implement the
+bean. These files are assembled along with the deployment descriptors into a
+well formed EJB jar file. Any support files which need to be included in the
+generated jar can be added with the <code>&lt;support&gt;</code> nested element. For each
+class included in the jar, ejbjar will scan for any super classes or super
+interfaces. These will be added to the generated jar.</p>
+
+<p>If no nested vendor-specific deployment elements are present, the task will
+simply generate a generic EJB jar. Such jars are typically used as the input to
+vendor-specific deployment tools. For each nested deployment element, a vendor
+specific deployment tool is run to generate a jar file ready for deployment in
+that vendor's EJB container. </p>
+
+<p>The jar files are only built if they are out of date.  Each deployment tool
+element will examine its target jar file and determine if it is out of date with
+respect to the class files and deployment descriptors that make up the bean. If
+any of these files are newer than the jar file the jar will be rebuilt otherwise
+a message is logged that the jar file is up to date.</p>
+
+<p>The task uses the
+<a href="http://jakarta.apache.org/bcel"> jakarta-BCEL </a> framework
+to extract all dependent classes. This
+means that, in addition to the classes that are mentioned in the
+deployment descriptor, any classes that these depend on are also
+automatically included in the jar file.</p>
+
+
+<h3>Naming Convention</h3>
+
+Ejbjar handles the processing of multiple beans, and it uses a set of naming
+conventions to determine the name of the generated EJB jars. The naming convention
+that is used is controlled by the &quot;naming&quot; attribute. It supports the
+following values
+<ul>
+
+<li>descriptor</li>
+<p>This is the default naming scheme. The name of the generated bean is derived from the
+name of the deployment descriptor.  For an Account bean, for example, the deployment
+descriptor would be named <code>Account-ejb-jar.xml</code>. Vendor specific descriptors are
+located using the same naming convention. The weblogic bean, for example, would be named
+<code>Account-weblogic-ejb-jar.xml</code>. Under this arrangement, the deployment descriptors
+can be separated from the code implementing the beans, which can be useful when the same bean code
+is deployed in separate beans.
+</p>
+
+<p>This scheme is useful when you are using one bean per EJB jar and where you may be
+deploying the same bean classes in different beans, with different deployment characteristics.
+
+<li>ejb-name</li>
+<p> This naming scheme uses the <code>&lt;ejb-name&gt;</code> element from the deployment descriptor to
+determine the bean name. In this situation, the descriptors normally use the generic
+descriptor names, such as <code>ejb-jar.xml</code> along with any associated vendor specific descriptor
+names. For example, If the value of the <code>&lt;ejb-name&gt;</code> were to be given in the deployment descriptor
+as follows:
+<pre>
+&lt;ejb-jar&gt;
+    &lt;enterprise-beans&gt;
+        &lt;entity&gt;
+            &lt;ejb-name&gt;Sample&lt;/ejb-name&gt;
+            &lt;home&gt;org.apache.ant.ejbsample.SampleHome&lt;/home&gt;
+</pre>
+
+then the name of the generated bean would be <code>Sample.jar</code>
+</p>
+<p> This scheme is useful where you want to use the standard deployment descriptor names, which may be more
+compatible with other EJB tools. This scheme must have one bean per jar.
+</p>
+<li>directory</li>
+<p>
+In this mode, the name of the generated bean jar is derived from the directory
+containing the deployment descriptors. Again the deployment descriptors typically use
+the standard filenames. For example, if the path to the deployment descriptor is
+<code>/home/user/dev/appserver/dd/sample</code>, then the generated
+bean will be named <code>sample.jar</code>
+</p>
+<p>
+This scheme is also useful when you want to use standard style descriptor names. It is often
+most useful when the  descriptors are located in the same directory as the bean source code,
+although that is not mandatory. This scheme can handle multiple beans per jar.
+</p>
+
+<li>basejarname</li>
+<p>
+The final scheme supported by the <code>&lt;ejbjar&gt;</code> task is used when you want to specify the generated
+bean jar name directly. In this case the name of the generated jar is specified by the
+&quot;basejarname&quot; attribute. Since all generated beans will have the same name, this task should
+be only used when each descriptor is in its own directory.
+</p>
+
+<p>
+This scheme is most appropriate when you are using multiple beans per jar and only process a single
+deployment descriptor. You typically want to specify the name of the jar and not derive it from the
+beans in the jar.
+</p>
+
+</ul>
+
+<a name="ejbjar_deps"><h3>Dependencies</h3></a>
+<p>In addition to the bean classes, ejbjar is able to ad additional classes to the generated
+ejbjar. These classes are typically the support classes which are used by the bean's classes or as
+parameters to the bean's methods.</p>
+
+<p>In versions of Ant prior to 1.5, ejbjar used reflection and attempted to add the super
+classes and super interfaces of the bean classes. For this technique to work the bean
+classes had to be loaded into Ant's JVM. This was not always possible due to class dependencies.
+</p>
+
+<p>The ejbjar task in Ant releases 1.5 and later uses the
+<a href="http://jakarta.apache.org/bcel"> jakarta-BCEL </a> library
+to analyze the bean's class
+files directly, rather than loading them into the JVM. This also allows ejbjar to add all
+of the required support classes for a bean and not just super classes.
+</p>
+
+<p>In Ant 1.5, a new attribute, <code>dependency</code> has been introduced to allow the
+buildfile to control what additional classes are added to the generated jar. It takes three
+possible values</p>
+<ul>
+<li><code>none</code> - only the bean classes and interfaces described in the bean's
+descriptor are added to the jar.</li>
+<li><code>super</code> - this is the default value and replicates the original ejbjar
+behaviour where super classes and super interfaces are added to the jar</li>
+<li><code>full</code> - In this mode all classes used by the bean's classes and interfaces
+are added to the jar</li>
+</ul>
+<p>The <code>super</code> and <code>full</code> values require the
+<a href="http://jakarta.apache.org/bcel"> jakarta-BCEL </a> library
+to be available. If it is not, ejbjar will drop back to the behaviour corresponding to
+the value <code>none</code>.</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">descriptordir</td>
+    <td valign="top">The base directory under which to scan for EJB
+                     deployment descriptors. If this attribute is not
+                     specified, then the deployment descriptors must be
+                     located in the directory specified by the 'srcdir'
+                     attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcdir</td>
+    <td valign="top">The base directory containing the .class files that
+                     make up the bean. Included are the home- remote- pk-
+                     and implementation- classes and all classes, that these
+                     depend on. Note that this can be the same as the
+                     descriptordir if all files are in the same directory
+                     tree.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which generated jar files are
+                     deposited. Jar files are deposited in directories
+                     corresponding to their location within the descriptordir
+                     namespace. Note that this attribute is only used if the
+                     task is generating generic jars (i.e. no vendor-specific
+                     deployment elements have been specified).</td>
+    <td valign="top" align="center">Yes, unless vendor-specific deployment elements
+    have been specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">cmpversion</td>
+    <td valign="top">Either <code>1.0</code> or <code>2.0</code>.<br>
+    Default is <code>1.0</code>.<br>
+    A CMP 2.0 implementation exists currently only for JBoss.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">naming</td>
+    <td valign="top">Controls the naming convention used to name generated
+                     EJB jars. Please refer to the description above.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">basejarname</td>
+    <td valign="top">The base name that is used for the generated jar files.
+                     If this attribute is specified, the generic jar file name
+                     will use this value as the prefix (followed by the value
+                     specified in the 'genericjarsuffix' attribute) and the
+                     resultant ejb jar file (followed by any suffix specified
+                     in the nested element).</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">basenameterminator</td>
+    <td valign="top">String value used to substring out a string from the name
+                     of each deployment descriptor found, which is then used to
+                     locate related deployment descriptors (e.g. the WebLogic
+                     descriptors). For example, a basename of '.' and a
+                     deployment descriptor called 'FooBean.ejb-jar.xml' would
+                     result in a basename of 'FooBean' which would then be used
+                     to find FooBean.weblogic-ejb-jar.xml and
+                     FooBean.weblogic-cmp-rdbms-jar.xml, as well as to create
+                     the filenames of the jar files as FooBean-generic.jar and
+                     FooBean-wl.jar. This attribute is not used if the
+                     'basejarname' attribute is specified.</td>
+    <td valign="top" align="center">No, defaults to '-'.</td>
+  </tr>
+  <tr>
+    <td valign="top">genericjarsuffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the generic EJB jar
+                     file.</td>
+    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">This classpath is used when resolving classes which
+                     are to be added to the jar. Typically nested deployment
+                     tool elements will also support a classpath which
+                     will be combined with this classpath when resolving
+                     classes</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">flatdestdir</td>
+    <td valign="top">Set this attribute to true if you want all generated jars
+                     to be placed in the root of the destdir, rather than
+                     according to the location of the deployment descriptor
+                     within the descriptor dir hierarchy.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">dependency</td>
+    <td valign="top">This attribute controls which additional classes and interfaces
+                     are added to the jar. Please refer to the description
+                     <a href="#ejbjar_deps">above</a></td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<p>In addition to the vendor specific nested elements, the ejbjar task provides
+three nested elements. </p>
+
+<h4>Classpath</h4>
+
+<p>The <code>&lt;classpath&gt;</code> nested element allows the classpath
+to be set. It is useful when setting the classpath from a reference path. In all
+other respects the behaviour is the same as the classpath attribute.</p>
+
+<a name="ejbjar-dtd"><h4>dtd</h4></a>
+
+<p>The <code>&lt;dtd&gt;</code> element is used to specify the local location of DTDs to be
+used when parsing the EJB deployment descriptor. Using a local DTD is much
+faster than loading the DTD across the net. If you are running ejbjar behind a
+firewall you may not even be able to access the remote DTD. The supported
+vendor-specific nested elements know the location of the required DTDs within
+the vendor class hierarchy and, in general, this means <code>&lt;dtd&gt;</code> elements are
+not required. It does mean, however, that the vendor's class hierarchy must be
+available in the classpath when Ant is started. If your want to run Ant without
+requiring the vendor classes in the classpath, you would need to use a
+<code>&lt;dtd&gt;</code> element.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">The public Id of the DTD for which the location is being provided</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">The location of the local copy of the DTD. This can either be a
+                     file or a resource loadable from the classpath.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>support</h4>
+
+<p>The <code>&lt;support&gt;</code> nested element is used to supply additional classes
+(files) to be included in the generated jars. The <code>&lt;support&gt;</code> element is a
+<a href="../CoreTypes/fileset.html">FileSet</a>, so it can either reference a fileset declared elsewhere or it can be
+defined in-place with the appropriate <code>&lt;include&gt;</code> and <code>&lt;exclude&gt;</code> nested
+elements. The files in the support fileset are added into the generated EJB jar
+in the same relative location as their location within the support fileset. Note
+that when ejbjar generates more than one jar file, the support files are added
+to each one.</p>
+
+<h3>Vendor-specific deployment elements</h3>
+
+Each vendor-specific nested element controls the generation of a deployable jar
+specific to that vendor's EJB container. The parameters for each supported
+deployment element are detailed here.
+
+
+<h3><a name="ejbjar_jboss">Jboss element</a></h3>
+
+<p>The jboss element searches for the JBoss specific deployment descriptors and adds them
+to the final ejb jar file. JBoss has two deployment descriptors:
+<ul><li>jboss.xml</li>
+<li>for container manager persistence:<br>
+<table border="1">
+<tr><td><b>CMP version</b></td><td><b>File name</b></td></tr>
+<tr><td>CMP 1.0</td><td>jaws.xml</td></tr>
+<tr><td>CMP 2.0</td><td>jbosscmp-jdbc.xml</td></tr>
+</table>
+</li>
+</ul>
+<br>
+. The JBoss server uses hot deployment and does
+not require compilation of additional stubs and skeletons.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which the generated weblogic ready
+                     jar files are deposited. Jar files are deposited in
+                     directories corresponding to their location within the
+                     descriptordir namespace. </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">genericjarsuffix</td>
+    <td valign="top">A generic jar is generated as an intermediate step in
+                     build the weblogic deployment jar. The suffix used to
+                     generate the generic jar file is not particularly
+                     important unless it is desired to keep the generic
+                     jar file. It should not, however, be the same
+                     as the suffix setting.</td>
+    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the JBoss EJB
+                     jar file.</td>
+    <td valign="top" align="center">No, defaults to '.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgeneric</td>
+    <td valign="top">This controls whether the generic file used as input to
+                     ejbc is retained.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+</table>
+
+
+<h3><a name="ejbjar_weblogic">Weblogic element</a></h3>
+
+<p>The weblogic element is used to control the weblogic.ejbc compiler for
+generating weblogic EJB jars. Prior to Ant 1.3, the method of locating CMP
+descriptors was to use the ejbjar naming convention. So if your ejb-jar was
+called, Customer-ejb-jar.xml, your weblogic descriptor was called Customer-
+weblogic-ejb-jar.xml and your CMP descriptor had to be Customer-weblogic-cmp-
+rdbms-jar.xml. In addition, the <code>&lt;type-storage&gt;</code> element in the weblogic
+descriptor had to be set to the standard name META-INF/weblogic-cmp-rdbms-
+jar.xml, as that is where the CMP descriptor was mapped to in the generated
+jar.</p>
+
+<p>There are a few problems with this scheme. It does not allow for more than
+one CMP descriptor to be defined in a jar and it is not compatible with the
+deployment descriptors generated by some tools.</p>
+
+<p>In Ant 1.3, ejbjar parses the weblogic deployment descriptor to discover the
+CMP descriptors, which are then included automatically. This behaviour is
+controlled by the newCMP attribute. Note that if you move to the new method of
+determining CMP descriptors, you will need to update your weblogic deployment
+descriptor's <code>&lt;type-storage&gt;</code> element. In the above example, you would
+define this as META-INF/Customer-weblogic-cmp-rdbms-jar.xml.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which the generated weblogic ready
+                     jar files are deposited. Jar files are deposited in
+                     directories corresponding to their location within the
+                     descriptordir namespace. </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">genericjarsuffix</td>
+    <td valign="top">A generic jar is generated as an intermediate step in
+                     build the weblogic deployment jar. The suffix used to
+                     generate the generic jar file is not particularly
+                     important unless it is desired to keep the generic
+                     jar file. It should not, however, be the same
+                     as the suffix setting.</td>
+    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the WebLogic EJB
+                     jar file.</td>
+    <td valign="top" align="center">No, defaults to '.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be used when running the weblogic ejbc
+                     tool. Note that this tool typically requires the classes
+                     that make up the bean to be available on the classpath.
+                     Currently, however, this will cause the ejbc tool to be
+                     run in a separate VM</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">wlclasspath</td>
+    <td valign="top">Weblogic 6.0 will give a warning if the home and remote interfaces
+                     of a bean are on the system classpath used to run weblogic.ejbc.
+                     In that case, the standard weblogic classes should be set with
+                     this attribute (or equivalent nested element) and the
+                     home and remote interfaces located with the standard classpath
+                     attribute</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgeneric</td>
+    <td valign="top">This controls whether the generic file used as input to
+                     ejbc is retained.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">This allows for the selection of a different compiler
+                     to be used for the compilation of the generated Java
+                     files. This could be set, for example, to Jikes to
+                     compile with the Jikes compiler. If this is not set
+                     and the <code>build.compiler</code> property is set
+                     to jikes, the Jikes compiler will be used. If this
+                     is not desired, the value &quot;<code>default</code>&quot;
+                     may be given to use the default compiler</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">rebuild</td>
+    <td valign="top">This flag controls whether weblogic.ejbc is always
+                     invoked to build the jar file. In certain circumstances,
+                     such as when only a bean class has been changed, the jar
+                     can be generated by merely replacing the changed classes
+                     and not rerunning ejbc. Setting this to false will reduce
+                     the time to run ejbjar.
+                     </td>
+    <td valign="top" align="center">No, defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgenerated</td>
+    <td valign="top">Controls whether weblogic will keep the generated Java
+                     files used to build the class files added to the
+                     jar. This can be useful when debugging
+                     </td>
+    <td valign="top" align="center">No, defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">args</td>
+    <td valign="top">Any additional arguments to be passed to the weblogic.ejbc
+                     tool.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">weblogicdtd</td>
+    <td valign="top"><b>Deprecated</b>. Defines the location of the ejb-jar DTD in
+                     the weblogic class hierarchy. This should not be necessary if you
+                     have weblogic in your classpath. If you do not, you should use a
+                     nested <code>&lt;dtd&gt;</code> element, described above. If you do choose
+                     to use an attribute, you should use a
+                     nested <code>&lt;dtd&gt;</code> element.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">wldtd</td>
+    <td valign="top"><b>Deprecated</b>. Defines the location of the weblogic-ejb-jar
+                     DTD which covers the Weblogic specific deployment descriptors.
+                     This should not be necessary if you have weblogic in your
+                     classpath. If you do not, you should use a nested <code>&lt;dtd&gt;</code>
+                     element, described above.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">ejbdtd</td>
+    <td valign="top"><b>Deprecated</b>. Defines the location of the ejb-jar DTD in
+                     the weblogic class hierarchy. This should not be necessary if you
+                     have weblogic in your classpath. If you do not, you should use a
+                     nested <code>&lt;dtd&gt;</code> element, described above.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">newCMP</td>
+    <td valign="top">If this is set to true, the new method for locating
+                     CMP descriptors will be used.</td>
+    <td valign="top" align="center">No. Defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">oldCMP</td>
+    <td valign="top"><b>Deprecated</b> This is an antonym for newCMP which should be used instead.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">noEJBC</td>
+    <td valign="top">If this attribute is set to true, Weblogic's ejbc will not be run on the EJB jar.
+                     Use this if you prefer to run ejbc at deployment time.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">ejbcclass</td>
+    <td valign="top">Specifies the classname of the ejbc compiler. Normally ejbjar determines
+                     the appropriate class based on the DTD used for the EJB. The EJB 2.0 compiler
+                     featured in weblogic 6 has, however, been deprecated in version 7. When
+                     using with version 7 this attribute should be set to
+                     &quot;weblogic.ejbc&quot; to avoid the deprecation warning.</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmargs</td>
+    <td valign="top">Any additional arguments to be passed to the Virtual Machine
+                     running weblogic.ejbc tool. For example to set the memory size,
+                     this could be jvmargs=&quot;-Xmx128m&quot;
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">jvmdebuglevel</td>
+    <td valign="top">Sets the weblogic.StdoutSeverityLevel to use when running
+                     the Virtual Machine that executes ejbc. Set to 16 to avoid
+                     the warnings about EJB Home and Remotes being in the classpath
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+  <tr>
+    <td valign="top">outputdir</td>
+    <td valign="top">If set ejbc will be given this directory as the output
+                     destination rather than a jar file. This allows for the
+                     generation of &quot;exploded&quot; jars.
+                     </td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<p>The weblogic nested element supports three nested elements. The
+first two, <code>&lt;classpath&gt;</code> and <code>&lt;wlclasspath&gt;</code>, are used to set the
+respective classpaths. These nested elements are useful when setting up
+class paths using reference Ids. The last, <code>&lt;sysproperty&gt;</code>, allows
+Java system properties to be set during the compiler run. This turns out
+to be necessary for supporting CMP EJB compilation in all environments.
+</p>
+
+<h3>TOPLink for Weblogic element</h3>
+
+<p><b><i>Deprecated</i></b></p>
+
+<p>The toplink element is no longer required. Toplink beans can now be built with the standard
+weblogic element, as long as the newCMP attribute is set to &quot;true&quot;
+</p>
+
+<p>The TopLink element is used to handle beans which use Toplink for the CMP operations. It
+is derived from the standard weblogic element so it supports the same set of attributes plus these
+additional attributes</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">toplinkdescriptor</td>
+    <td valign="top">This specifies the name of the TOPLink deployment descriptor file contained in the
+                     'descriptordir' directory.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">toplinkdtd</td>
+    <td valign="top">This specifies the location of the TOPLink DTD file. This can be a file path or
+                     a file URL. This attribute is not required, but using a local DTD is recommended.</td>
+    <td valign="top" align="center">No, defaults to dtd file at www.objectpeople.com.</td>
+  </tr>
+</table>
+
+
+<h3>Examples</h3>
+
+<p>This example shows ejbjar being used to generate deployment jars using a
+Weblogic EJB container. This example requires the naming standard to be used for
+the deployment descriptors. Using this format will create a ejb jar file for
+each variation of '*-ejb-jar.xml' that is found in the deployment descriptor
+directory.</p>
+
+<pre>
+    &lt;ejbjar srcdir=&quot;${build.classes}&quot;
+            descriptordir=&quot;${descriptor.dir}&quot;&gt;
+      &lt;weblogic destdir=&quot;${deploymentjars.dir}&quot;
+                classpath=&quot;${descriptorbuild.classpath}&quot;/&gt;
+      &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
+      &lt;exclude name=&quot;**/*weblogic*.xml&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<p>If weblogic is not in the Ant classpath, the following example
+shows how to specify the location of the weblogic DTDs. This
+example also show the use of a nested classpath element.</p>
+
+<pre>
+    &lt;ejbjar descriptordir=&quot;${src.dir}&quot; srcdir=&quot;${build.classes}&quot;&gt;
+       &lt;weblogic destdir=&quot;${deployment.webshop.dir}&quot;
+                 keepgeneric=&quot;true&quot;
+                 args=&quot;-g -keepgenerated ${ejbc.compiler}&quot;
+                 suffix=&quot;.jar&quot;
+                 oldCMP=&quot;false&quot;&gt;
+         &lt;classpath&gt;
+           &lt;pathelement path=&quot;${descriptorbuild.classpath}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/weblogic&gt;
+       &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
+       &lt;exclude name=&quot;**/*-weblogic-ejb-jar.xml&quot;/&gt;
+       &lt;dtd publicId=&quot;-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN&quot;
+            location=&quot;${weblogic.home}/classes/weblogic/ejb/deployment/xml/ejb-jar.dtd&quot;/&gt;
+       &lt;dtd publicId=&quot;-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN&quot;
+            location=&quot;${weblogic.home}/classes/weblogic/ejb/deployment/xml/weblogic-ejb-jar.dtd&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+
+<p>This example shows ejbjar being used to generate a single deployment jar
+using a Weblogic EJB container. This example does not require the deployment
+descriptors to use the naming standard. This will create only one ejb jar file -
+'TheEJBJar.jar'.</p>
+
+
+<pre>
+    &lt;ejbjar srcdir=&quot;${build.classes}&quot;
+            descriptordir=&quot;${descriptor.dir}&quot;
+            basejarname=&quot;TheEJBJar&quot;&gt;
+      &lt;weblogic destdir=&quot;${deploymentjars.dir}&quot;
+                classpath=&quot;${descriptorbuild.classpath}&quot;/&gt;
+      &lt;include name=&quot;**/ejb-jar.xml&quot;/&gt;
+      &lt;exclude name=&quot;**/weblogic*.xml&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<p>This example shows ejbjar being used to generate deployment jars for a TOPLink-enabled entity bean using a
+Weblogic EJB container. This example does not require the deployment descriptors to use the naming standard.
+This will create only one TOPLink-enabled ejb jar file - 'Address.jar'.</p>
+
+<pre>
+    &lt;ejbjar srcdir=&quot;${build.dir}&quot;
+            destdir=&quot;${solant.ejb.dir}&quot;
+            descriptordir=&quot;${descriptor.dir}&quot;
+            basejarname=&quot;Address&quot;&gt;
+            &lt;weblogictoplink destdir=&quot;${solant.ejb.dir}&quot;
+                    classpath=&quot;${java.class.path}&quot;
+                    keepgeneric=&quot;false&quot;
+                    toplinkdescriptor=&quot;Address.xml&quot;
+                    toplinkdtd=&quot;file:///dtdfiles/toplink-cmp_2_5_1.dtd&quot;
+                    suffix=&quot;.jar&quot;/&gt;
+            &lt;include name=&quot;**/ejb-jar.xml&quot;/&gt;
+            &lt;exclude name=&quot;**/weblogic-ejb-jar.xml&quot;/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<p>This final example shows how you would set-up ejbjar under Weblogic 6.0. It also shows the use of the
+<code>&lt;support&gt;</code> element to add support files</p>
+
+<pre>
+    &lt;ejbjar descriptordir=&quot;${dd.dir}&quot; srcdir=&quot;${build.classes.server}&quot;&gt;
+       &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
+       &lt;exclude name=&quot;**/*-weblogic-ejb-jar.xml&quot;/&gt;
+       &lt;support dir=&quot;${build.classes.server}&quot;&gt;
+            &lt;include name=&quot;**/*.class&quot;/&gt;
+       &lt;/support&gt;
+       &lt;weblogic destdir=&quot;${deployment.dir}&quot;
+                 keepgeneric=&quot;true&quot;
+                 suffix=&quot;.jar&quot;
+                 rebuild=&quot;false&quot;&gt;
+         &lt;classpath&gt;
+            &lt;pathelement path=&quot;${build.classes.server}&quot;/&gt;
+         &lt;/classpath&gt;
+         &lt;wlclasspath&gt;
+            &lt;pathelement path=&quot;${weblogic.classes}&quot;/&gt;
+         &lt;/wlclasspath&gt;
+       &lt;/weblogic&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+
+<h3><a name="ejbjar_websphere">WebSphere element</a></h3>
+
+<p>The websphere element searches for the websphere specific deployment descriptors and
+adds them to the final ejb jar file. Websphere has two specific descriptors for session
+beans:
+<ul>
+   <li>ibm-ejb-jar-bnd.xmi</li>
+   <li>ibm-ejb-jar-ext.xmi</li>
+</ul>
+and another two for container managed entity beans:
+<ul>
+   <li>Map.mapxmi</li>
+   <li>Schema.dbxmi</li>
+</ul>
+In terms of WebSphere, the generation of container code and stubs is called <code>deployment</code>.
+This step can be performed by the websphere element as part of the jar generation process. If the
+switch <code>ejbdeploy</code> is on, the ejbdeploy tool from the websphere toolset is called for
+every ejb-jar. Unfortunately, this step only works, if you use the ibm jdk. Otherwise, the rmic
+(called by ejbdeploy) throws a ClassFormatError. Be sure to switch ejbdeploy off, if run ant with
+sun jdk.
+</p>
+
+<p>
+For the websphere element to work, you have to provide a complete classpath, that contains all
+classes, that are required to reflect the bean classes. For ejbdeploy to work, you must also provide
+the classpath of the ejbdeploy tool and set the <i>websphere.home</i> property (look at the examples below).
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The base directory into which the generated weblogic ready
+                     jar files are deposited. Jar files are deposited in
+                     directories corresponding to their location within the
+                     descriptordir namespace. </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">ejbdeploy</td>
+    <td valign="top">Decides whether ejbdeploy is called. When you set this to true,
+                     be sure, to run ant with the ibm jdk.</td>
+    <td valign="top" align="center">No, defaults to true</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">String value appended to the basename of the deployment
+                     descriptor to create the filename of the WebLogic EJB
+                     jar file.</td>
+    <td valign="top" align="center">No, defaults to '.jar'.</td>
+  </tr>
+  <tr>
+    <td valign="top">keepgeneric</td>
+    <td valign="top">This controls whether the generic file used as input to
+                     ejbdeploy is retained.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">rebuild</td>
+    <td valign="top">This controls whether ejbdeploy is called although no changes
+                     have occurred.</td>
+    <td valign="top" align="center">No, defaults to false</td>
+  </tr>
+  <tr>
+    <td valign="top">tempdir</td>
+    <td valign="top">A directory, where ejbdeploy will write temporary files</td>
+    <td valign="top" align="center">No, defaults to '_ejbdeploy_temp'.</td>
+  </tr>
+  <tr>
+    <td valign="top">dbName<br>dbSchema</td>
+    <td valign="top">These options are passed to ejbdeploy.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">dbVendor</td>
+    <td valign="top">This option is passed to ejbdeploy. 
+                   <p>
+                   Valid options can be obtained by running the following command:
+                   <code>
+                   &lt;WAS_HOME&gt;/bin/EJBDeploy.[sh/bat] -help
+                   </code>
+                   </p>
+                    This is also used to determine the name of the Map.mapxmi and
+                     Schema.dbxmi files, for example Account-DB2UDBWIN_V71-Map.mapxmi
+                     and Account-DB2UDBWIN_V71-Schema.dbxmi.
+                     </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">codegen<br>quiet<br>novalidate<br>noinform<br>trace<br>
+                     use35MappingRules</td>
+    <td valign="top">These options are all passed to ejbdeploy. All options
+                     except 'quiet' default to false.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">rmicOptions</td>
+    <td valign="top">This option is passed to ejbdeploy and will be passed
+                     on to rmic.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p>This example shows ejbjar being used to generate deployment jars for all deployment descriptors
+in the descriptor dir:</p>
+
+<pre>
+    &lt;property name=&quot;webpshere.home&quot; value=&quot;${was4.home}&quot;/&gt;
+    &lt;ejbjar srcdir="${build.class}" descriptordir="etc/ejb"&gt;
+      &lt;include name="*-ejb-jar.xml"/&gt;
+      &lt;websphere dbvendor="DB2UDBOS390_V6"
+                 ejbdeploy="true"
+                 oldCMP="false"
+                 tempdir="/tmp"
+                 destdir="${dist.server}"&gt;
+        &lt;wasclasspath&gt;
+          &lt;pathelement location="${was4.home}/deploytool/itp/plugins/org.eclipse.core.boot/boot.jar"/&gt;
+          &lt;pathelement location="${was4.home}/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime/batch.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/xerces.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/ivjejb35.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/j2ee.jar"/&gt;
+          &lt;pathelement location="${was4.home}/lib/vaprt.jar"/&gt;
+        &lt;/wasclasspath&gt;
+        &lt;classpath&gt;
+          &lt;path refid="build.classpath"/&gt;
+        &lt;/classpath&gt;
+      &lt;/websphere&gt;
+      &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"
+           location="${lib}/dtd/ejb-jar_1_1.dtd"/&gt;
+    &lt;/ejbjar&gt;
+</pre>
+
+<h3><a name="ejbjar_iplanet">iPlanet Application Server (iAS) element</a></h3>
+
+The &lt;iplanet&lt; nested element is used to build iAS-specific stubs and
+
+skeletons and construct a JAR file which may be deployed to the iPlanet
+Application Server 6.0.  The build process will always determine if
+the EJB stubs/skeletons and the EJB-JAR file are up to date, and it will
+do the minimum amount of work required.
+<p>Like the WebLogic element, a naming convention for the EJB descriptors
+is most commonly used to specify the name for the completed JAR file.
+For example, if the EJB descriptor ejb/Account-ejb-jar.xml is found in
+the descriptor directory, the iplanet element will search for an iAS-specific
+EJB descriptor file named ejb/Account-ias-ejb-jar.xml (if it isn't found,
+the task will fail) and a JAR file named ejb/Account.jar will be written
+in the destination directory.  Note that when the EJB descriptors
+are added to the JAR file, they are automatically renamed META-INF/ejb-jar.xml
+and META-INF/ias-ejb-jar.xml.</p>
+<p>Of course, this naming behaviour can be modified by specifying attributes
+in the ejbjar task (for example, basejarname, basenameterminator, and flatdestdir)
+as well as the iplanet element (for example, suffix).  Refer to the
+appropriate documentation for more details.</p>
+<h3>
+Parameters:</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top"><b>Attribute</b></td>
+
+<td valign="top"><b>Description</b></td>
+
+<td align="center" valign="top"><b>Required</b></td>
+</tr>
+
+<tr>
+<td valign="top">destdir</td>
+
+<td valign="top">The base directory into which the generated JAR files will
+be written. Each JAR file is written in directories which correspond to
+their location within the "descriptordir" namespace.</td>
+
+<td align="center" valign="top">Yes</td>
+</tr>
+
+<tr>
+<td valign="top">classpath</td>
+
+<td valign="top">The classpath used when generating EJB stubs and skeletons.
+If omitted, the classpath specified in the "ejbjar" parent task will be
+used.  If specified, the classpath elements will be prepended to the
+classpath specified in the parent "ejbjar" task. Note that nested "classpath"
+elements may also be used.</td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">keepgenerated</td>
+
+<td valign="top">Indicates whether or not the Java source files which are
+generated by ejbc will be saved or automatically deleted. If "yes", the
+source files will be retained.  If omitted, it defaults to "no". </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">debug</td>
+
+<td>Indicates whether or not the ejbc utility should log additional debugging
+statements to the standard output. If "yes", the additional debugging statements
+will be generated.  If omitted, it defaults to "no". </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">iashome</td>
+
+<td>May be used to specify the "home" directory for this iAS installation.
+This is used to find the ejbc utility if it isn't included in the user's
+system path.  If specified, it should refer to the [install-location]/iplanet/ias6/ias
+directory.  If omitted, the ejbc utility must be on the user's system
+path. </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+
+<tr>
+<td valign="top">suffix</td>
+
+<td>String value appended to the JAR filename when creating each JAR.
+If omitted, it defaults to ".jar". </td>
+
+<td align="center" valign="top">No</td>
+</tr>
+</table>
+
+<p>As noted above, the iplanet element supports additional <code>&lt;classpath&gt;</code>
+nested elements.</p>
+<h3>
+Examples</h3>
+This example demonstrates the typical use of the <code>&lt;iplanet&gt;</code> nested element.
+It will name each EJB-JAR using the "basename" prepended to each standard
+EJB descriptor.  For example, if the descriptor named "Account-ejb-jar.xml"
+is processed, the EJB-JAR will be named "Account.jar"
+<pre>
+    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"&gt;
+
+            &lt;iplanet destdir="${assemble.ejbjar}"
+                     classpath="${ias.ejbc.cpath}"/&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+    &lt;/ejbjar&gt;</pre>
+
+This example demonstrates the use of a nested classpath element as well
+as some of the other optional attributes.
+<pre>
+    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"&gt;
+
+            &lt;iplanet destdir="${assemble.ejbjar}"
+                     iashome="${ias.home}"
+                     debug="yes"
+                     keepgenerated="yes"&gt;
+                     &lt;classpath&gt;
+                         &lt;pathelement path="."/&gt;
+                         &lt;pathelement path="${build.classpath}"/&gt;
+                     &lt;/classpath&gt;
+            &lt;/iplanet&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+    &lt;/ejbjar&gt;</pre>
+
+This example demonstrates the use of basejarname attribute.  In this
+case, the completed EJB-JAR will be named "HelloWorld.jar"  If multiple
+EJB descriptors might be found, care must be taken to ensure that the completed
+JAR files don't overwrite each other.
+<pre>
+    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"
+            basejarname="HelloWorld"&gt;
+
+            &lt;iplanet destdir="${assemble.ejbjar}"
+                     classpath="${ias.ejbc.cpath}"/&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+    &lt;/ejbjar&gt;</pre>
+This example demonstrates the use of the dtd nested element. If the local
+copies of the DTDs are included in the classpath, they will be automatically
+referenced without the nested elements.  In iAS 6.0 SP2, these local DTDs are
+found in the [iAS-install-directory]/APPS directory.  In iAS 6.0 SP3, these
+local DTDs are found in the [iAS-install-directory]/dtd directory.
+<pre>
+    &lt;ejbjar srcdir="${build.classesdir}"
+            descriptordir="${src}"&gt;
+            &lt;iplanet destdir="${assemble.ejbjar}"&gt;
+                     classpath="${ias.ejbc.cpath}"/&gt;
+            &lt;include name="**/*-ejb-jar.xml"/&gt;
+            &lt;exclude name="**/*ias-*.xml"/&gt;
+
+            &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"
+                 location="${ias.home}/APPS/ejb-jar_1_1.dtd"/&gt;
+            &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD iAS Enterprise JavaBeans 1.0//EN"
+                 location="${ias.home}/APPS/IASEjb_jar_1_0.dtd"/&gt;
+    &lt;/ejbjar&gt;</pre>
+
+<h3><a name="ejbjar_jonas">JOnAS (Java Open Application Server) element</a></h3>
+
+<p>The <code>&lt;jonas&gt;</code> nested element is used to build JOnAS-specific stubs and
+skeletons thanks to the <code>GenIC</code> specific tool, and construct a JAR
+file which may be deployed to the JOnAS Application Server. The build process
+will always determine if the EJB stubs/skeletons and the EJB-JAR file are up to
+date, and it will do the minimum amount of work required.</p>
+
+<p>Like the WebLogic element, a naming convention for the EJB descriptors is
+most commonly used to specify the name for the completed JAR file. For example,
+if the EJB descriptor <code>ejb/Account-ejb-jar.xml</code> is found in the
+descriptor directory, the <code>&lt;jonas&gt;</code> element will search for a JOnAS-specific
+EJB descriptor file named <code>ejb/Account-jonas-ejb-jar.xml</code> and a JAR
+file named <code>ejb/Account.jar</code> will be written in the destination
+directory. But the <code>&lt;jonas&gt;</code> element can also use the JOnAS naming
+convention. With the same example as below, the EJB descriptor can also be named
+<code>ejb/Account.xml</code> (no base name terminator here) in the descriptor
+directory. Then the <code>&lt;jonas&gt;</code> element will search for a JOnAS-specific EJB
+descriptor file called <code>ejb/jonas-Account.xml</code>. This convention do
+not follow strictly the ejb-jar naming convention recommendation but is
+supported for backward compatibility with previous version of JOnAS.</p>
+
+<p>Note that when the EJB descriptors are added to the JAR file, they are
+automatically renamed <code>META-INF/ejb-jar.xml</code> and
+<code>META-INF/jonas-ejb-jar.xml</code>.</p>
+
+<p>Of course, this naming behavior can be modified by specifying attributes in
+the ejbjar task (for example, basejarname, basenameterminator, and flatdestdir)
+as well as the iplanet element (for example, suffix). Refer to the appropriate
+documentation for more details.</p>
+
+<h3> Parameters:</h3>
+
+<table border="1" cellspacing="0" cellpadding="2">
+  <tbody>
+    <tr>
+      <td valign="Top"><b>Attribute</b></td>
+      <td valign="Top"><b>Description</b></td>
+      <td align="Center" valign="Top"><b>Required</b></td>
+    </tr>
+    <tr>
+      <td valign="Top">destdir</td>
+      <td valign="Top">The base directory into which the generated JAR files
+      will be written. Each JAR file is written in directories which correspond
+      to their location within the "<code>descriptordir</code>" namespace.</td>
+      <td align="Center" valign="Top">Yes</td>
+    </tr>
+    <tr>
+      <td valign="Top">jonasroot</td>
+      <td valign="Top">The root directory for JOnAS.</td>
+      <td valign="Top" align="Center">Yes</td>
+    </tr>
+    <tr>
+      <td valign="Top">classpath</td>
+      <td valign="Top">The classpath used when generating EJB stubs and
+      skeletons. If omitted, the classpath specified in the "ejbjar" parent
+      task will be used. If specified, the classpath elements will be prepended
+      to the classpath specified in the parent "ejbjar" task (see also the ORB
+      attribute documentation below). Note that nested "classpath" elements may
+      also be used.</td>
+      <td valign="Top" align="Center">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">keepgenerated</td>
+      <td valign="Top"><code>true</code> if the intermediate Java
+      source files generated by GenIC must be deleted or not. If
+      omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">nocompil</td>
+      <td valign="Top"><code>true</code> if the generated source files
+      must not be compiled via the java and rmi compilers. If omitted,
+      it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">novalidation</td>
+      <td valign="Top"><code>true</code> if the XML deployment descriptors must
+      be parsed without validation. If omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">javac</td>
+      <td valign="Top">Java compiler to use. If omitted, it defaults
+      to the value of <code>build.compiler</code> property.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">javacopts</td>
+      <td valign="Top">Options to pass to the java compiler.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">rmicopts</td>
+      <td valign="Top">Options to pass to the rmi compiler.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">secpropag</td>
+      <td valign="top"><code>true</code> if the RMI Skel. and
+      Stub. must be modified to implement the implicit propagation of
+      the security context (the transactional context is always
+      provided). If omitted, it defaults to <code>false</code>.</td>
+      <td valign="top" align="center">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">verbose</td>
+      <td valign="Top">Indicates whether or not to use -verbose switch. If
+      omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">additionalargs</td>
+      <td valign="Top">Add additional args to GenIC.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">keepgeneric</td>
+      <td valign="Top"><code>true</code> if the generic JAR file used as input
+      to GenIC must be retained. If omitted, it defaults to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">suffix</td>
+      <td>String value appended to the JAR filename when creating each JAR.  If
+      omitted, it defaults to ".jar". </td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">orb</td>
+      <td>Choose your ORB : RMI, JEREMIE, DAVID. If omitted, it defaults to the
+      one present in classpath. If specified, the corresponding JOnAS JAR is
+      automatically added to the classpath.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+      <td valign="Top">nogenic</td>
+      <td valign="Top">If this attribute is set to <code>true</code>,
+      JOnAS's GenIC will not be run on the EJB JAR. Use this if you
+      prefer to run GenIC at deployment time. If omitted, it defaults
+      to <code>false</code>.</td>
+      <td align="Center" valign="Top">No</td>
+    </tr>
+    <tr>
+  </tbody>
+</table>
+
+<p>As noted above, the jonas element supports additional <code>&lt;classpath&gt;</code>
+nested elements.</p>
+
+<h3>Examples</h3>
+
+<p>This example shows ejbjar being used to generate deployment jars using a
+JOnAS EJB container. This example requires the naming standard to be used for
+the deployment descriptors. Using this format will create a EJB JAR file for
+each variation of &nbsp;'*-jar.xml' that is found in the deployment descriptor
+directory.&nbsp;</p>
+
+<pre>
+      &lt;ejbjar srcdir="${build.classes}"
+              descriptordir="${descriptor.dir}"&gt;
+        &lt;jonas destdir="${deploymentjars.dir}"
+             jonasroot="${jonas.root}"
+             orb="RMI"/&gt;
+        &lt;include name="**/*.xml"/&gt;
+        &lt;exclude name="**/jonas-*.xml"/&gt;
+        &lt;support dir="${build.classes}"&gt;
+             &lt;include name="**/*.class"/&gt;
+        &lt;/support&gt;
+      &lt;/ejbjar&gt;
+</pre>
+
+<p>This example shows ejbjar being used to generate a single deployment jar
+using a JOnAS EJB container. This example does require the deployment
+descriptors to use the naming standard. This will create only one ejb jar file -
+'TheEJBJar.jar'.</p>
+
+<pre>
+      &lt;ejbjar srcdir="${build.classes}"
+              descriptordir="${descriptor.dir}"
+              basejarname="TheEJBJar"&gt;
+        &lt;jonas destdir="${deploymentjars.dir}"
+                  jonasroot="${jonas.root}"
+                  suffix=".jar"
+                  classpath="${descriptorbuild.classpath}"/&gt;
+        &lt;include name="**/ejb-jar.xml"/&gt;
+        &lt;exclude name="**/jonas-ejb-jar.xml"/&gt;
+      &lt;/ejbjar&gt;
+</pre>
+
+
+
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ftp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ftp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ftp.html	(revision 14989)
@@ -0,0 +1,718 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>FTP Task</title>
+</head>
+
+<body>
+
+<h2><a name="ftp">FTP</a></h2>
+<h3>Description</h3>
+<p>The ftp task implements a basic FTP client that can send, receive,
+list, delete files, and create directories.  See below for descriptions and examples of how
+to perform each task.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#commons-net">Library Dependencies</a> for more information.
+<i>Get the latest version of this library, for the best support in Ant</i>
+
+</p>
+<p>The ftp task attempts to determine what file system is in place on the FTP server.
+Supported server types are Unix, NT, OS2, VMS, and OS400.  In addition, NT and OS400 servers
+which have been configured to display the directory in Unix style are also supported correctly.
+Otherwise, the system will default to Unix standards.
+<i>remotedir</i> must be specified in the exact syntax required by the ftp
+server. If the usual Unix conventions are not supported by the server,
+<i>separator</i> can be used to set the file separator that should be used
+instead.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
+tasks</a>, on how the inclusion/exclusion of files works, and how to
+write patterns.</p>
+<p>
+This task does not currently use the proxy information set by the
+<a href="setproxy.html"><code>&lt;setproxy&gt;</code></a> task, and cannot go through
+a firewall via socks. 
+<p>
+<b>Warning: </b> there have been problems reported concerning the ftp get with the <code>newer</code> attribute.
+Problems might be due to format of ls -l differing from what is expected by commons-net,
+for instance due to specificities of language used by the ftp server in the directory listing.
+If you encounter such a problem, please send an email including a sample directory listing
+coming from your ftp server (ls -l on the ftp prompt).
+</p>
+<p>
+If you can connect but not upload or download, try setting the <code>passive</code>
+attribute to true to use the existing (open) channel, instead of having the server
+try to set up a new connection.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top" width="15%"><b>Attribute</b></td>
+    <td valign="top" width="65%"><b>Description</b></td>
+    <td align="center" valign="top" width="20%"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">server</td>
+    <td valign="top">the address of the remote ftp server.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">the port number of the remote ftp server.
+                     Defaults to port 21.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">userid</td>
+    <td valign="top">the login id to use on the ftp server.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">the login password to use on the ftp server.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">account</td>
+    <td valign="top">the account to use on the ftp server.
+        <em>since Ant 1.7</em>.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">remotedir</td>
+    <td valign="top">remote directory on the
+                     ftp server
+                     see table below for detailed usage
+                     </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">the ftp action to perform, defaulting to "send".
+                     Currently supports "put", "get",
+                     "del", "list", "chmod",
+                     "mkdir", "rmdir", and "site".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">binary</td>
+    <td valign="top">selects binary-mode ("yes") or text-mode
+                     ("no") transfers.
+                     Defaults to "yes"</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">passive</td>
+    <td valign="top">selects passive-mode ("yes") transfers, for
+                     better through-firewall connectivity, at the price
+                     of performance.
+                     Defaults to "no"</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">displays information on each file transferred if set 
+                     to "yes". Defaults to "no".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">depends</td>
+    <td valign="top">transfers only new or changed files if set to 
+                     "yes". Defaults to "no".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newer</td>
+    <td valign="top">a synonym for <i>depends</i>.
+    see timediffauto and timediffmillis</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timediffauto</td>
+    <td valign="top">set to <code>"true"</code>
+    to make ant calculate the time difference between client and server.<br>
+    <em>requires write access in the remote directory</em><br>
+    Since ant 1.6</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <a name="timestampGranularity"/>
+  <tr>
+    <td valign="top">timestampGranularity</td>
+    <td valign="top">Specify either <code>MINUTE</code>, <code>NONE</code>,
+     (or you may specify <code>""</code> which is equivalent to not specifying a value,
+     useful for property-file driven scripts).  Allows override of the typical situation 
+     in PUT and GET where local filesystem timestamps are <code>HH:mm:ss</code> 
+     and the typical FTP server's timestamps are <code>HH:mm</code>.  This can throw 
+     off uptodate calculations.  However, the default values should suffice for most
+     applications.<br>
+    Since ant 1.7
+    </td>
+    <td valign="top" align="center">No.  Only applies in "puts" and "gets" where the
+    default values are <code>MINUTE</code> for PUT and <code>NONE</code> for GET.  
+    (It is not as necessary in GET because we have the <b>preservelastmodified</b> option.)</td>
+  </tr>
+  <tr>
+    <td valign="top">timediffmillis</td>
+    <td valign="top"><b>Deprecated</b>. Number of milliseconds to add to the time on 
+    the remote machine to get the time on the local machine.  The <b>timestampGranularity</b> 
+    attribute (for which the default values should suffice in most situations), and the 
+    <b>serverTimeZoneConfig</b> option, should make this unnecessary. 
+    <b>serverTimeZoneConfig</b> does the math for you and also knows about 
+    Daylight Savings Time.<br>
+    Since ant 1.6
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">separator</td>
+    <td valign="top">sets the file separator used on the ftp server.
+                     Defaults to "/".</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">umask</td>
+    <td valign="top">sets the default file permissions for new files,
+                     unix only.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">chmod</td>
+    <td valign="top">sets or changes file permissions for new or existing files,
+      unix only. If used with a put action, chmod will be issued for each file.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">listing</td>
+    <td valign="top">the file to write results of the "list" action.
+                     Required for the "list" action, ignored otherwise.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignoreNoncriticalErrors</td>
+    <td valign="top">flag which permits the task to ignore some non-fatal error
+      codes sent by some servers during directory creation: wu-ftp in particular.
+      Default: false</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">skipFailedTransfers</td>
+    <td valign="top">flag which enables unsuccessful file put, delete
+    and get operations to be skipped with a warning and the
+    remainder of the files still transferred. Default: false</td>
+    <td valign="top" align="center">No</td>
+  </tr>  
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the copied files the same last modified
+      time as the original source files (applies to getting files only).
+      (<em>Note</em>: Ignored on Java 1.1)</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">retriesAllowed</td>
+    <td valign="top">Set the number of retries allowed on an file-transfer operation.
+    If a number > 0 specified, each file transfer can fail up to that
+    many times before the operation is failed.  If -1 or "forever" specified, the
+    operation will keep trying until it succeeds.</td>
+    <td valign="top" align="center">No; defaults to 0</td>
+  </tr>
+  <tr>
+    <td valign="top">siteCommand</td>
+    <td valign="top">Set the server-specific SITE command to execute if
+    the <code>action</code> attribute has been specified as <code>"site"</code>.
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">initialSiteCommand</td>
+    <td valign="top">Set a server-specific SITE command to execute immediately
+    after login.
+    <td valign="top" align="center">No</td>
+  </tr>
+
+    <tr>
+    <td colspan="3">
+    <p><b>The following attributes require <a href=
+    "http://jakarta.apache.org/commons/net/download.html">
+    jakarta-commons-net-1.4.0 or greater</a>.</b></p>
+    <p>
+    Use these options when the standard options don't work, because
+    <ul><li>the server is in a different timezone and you need timestamp
+    dependency checking</li>
+    <li>the default timestamp formatting doesn't match the server display and
+    list parsing therefore fails</li></ul>
+    </p><p>
+    If none of these is specified, the default mechanism of letting the system
+    auto-detect the server OS type based on the FTP SYST command and assuming
+    standard formatting for that OS type will be used.
+    </p><p>
+    To aid in property-file-based development where a build script is configured
+    with property files, for any of these attributes, a value of <code>""</code>
+    is equivalent to not specifying it.
+    </p><p>
+    Please understand that these options are incompatible with the autodetection
+    scheme.  If any of these options is specified, (other than with a value of
+    <code>""</code> ) a system type must be chosen and if systemTypeKey is not
+    specified, UNIX will be assumed. The philosophy behind this is that these
+    options are for setting non-standard formats, and a build-script author who
+    knows what system he is dealing with will know what options to need to be
+    set. Otherwise, these options should be left alone and the default
+    autodetection scheme can be used and will work in the majority of cases.
+    </p></td>
+    </tr>
+  <tr>
+    <td valign="top">systemTypeKey</td>
+    <td valign="top">Specifies the type of system in use on the server.
+      Supported values are <code>"UNIX", "VMS", "WINDOWS", "OS/2", "OS/400",
+      "MVS".</code>  If not specified, (or specified as <code>""</code>) and if
+      no other xxxConfig attributes are specified, the autodectection mechanism
+      based on the FTP SYST command will be used.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">No, but if any of the following xxxConfig
+        attributes is specified, UNIX will be assumed, even if <code>""</code>
+        is specified here.
+    </td>
+   </tr>
+   <tr>
+    <td valign="top">serverTimeZoneConfig</td>
+    <td valign="top">Specify as a Java
+     <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/TimeZone.html">
+     TimeZone</a> identifier, (e.g. <code>GMT</code>, <code>America/Chicago</code> or
+    <code>Asia/Jakarta</code>) the timezone used by the server for timestamps.  This 
+      enables timestamp dependency checking even when the server is in a different 
+      time zone from the client. Time Zones know, also, about daylight savings time, 
+      and do not require you to calculate milliseconds of difference.  If not specified, 
+      (or specified as <code>""</code>), the time zone of the client is assumed.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    
+    <td valign="top">defaultDateFormatConfig</td>
+    <td valign="top">Specify in Java 
+    <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html">
+     SimpleDateFormat</a> notation, (e.g.
+     <code>yyyy-MM-dd</code>), the date format generally used by the FTP server
+      to parse dates.  In some cases this will be the only date format used.
+      In others, (unix for example) this will be used for dates
+      older than a year old. (See <b>recentDateFormatConfig</b>).  If not specified,
+      (or specified as <code>""</code>), the default date format for the system
+      type indicated by the <b>systemTypeKey</b> attribute will be used.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">
+    No.
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">recentDateFormatConfig</td>
+    <td valign="top">Specify in Java 
+    <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html">
+     SimpleDateFormat</a> notation,
+      (e.g. <code>MMM dd hh:mm</code>) the date format used by the FTP server
+      to parse dates less than a year old.  If not specified (or specified as
+      <code>""</code>), and if the system type indicated by the system key uses
+      a recent date format, its standard format will be used.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">serverLanguageCodeConfig</td>
+    <td valign="top">a <a href="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt">
+      two-letter ISO-639 language code</a> used to specify the
+      language used by the server to format month names.  This only needs to be
+      specified when the server uses non-numeric abbreviations for months in its
+      date listings in a language other than English.  This appears to be
+      becoming rarer and rarer, as commonly distributed ftp servers seem
+      increasingly to use English or all-numeric formats.
+      Languages supported are:
+      <ul>
+      	<li>en - English</li>
+      	<li>fr - French</li>
+      	<li>de - German</li>
+      	<li>it - Italian</li>
+      	<li>es - Spanish</li>
+      	<li>pt - Portuguese</li>
+      	<li>da - Danish</li>
+      	<li>sv - Swedish</li>
+      	<li>no - Norwegian</li>
+      	<li>nl - Dutch</li>
+      	<li>ro - Romanian</li>
+      	<li>sq - Albanian</li>
+      	<li>sh - Serbo-croatian</li>
+      	<li>sk - Slovak</li>
+      	<li>sl - Slovenian</li>
+      </ul>
+      If you require a language other than the above, see also the
+      <b>shortMonthNamesConfig</b> attribute.<br>
+      Since ant 1.7
+    </td>
+
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">shortMonthNamesConfig</td>
+    <td valign="top">specify the month abbreviations used on the server in file
+      timestamp dates as a pipe-delimited string for each month. For example,
+      a set of month names used by a hypothetical
+      Icelandic FTP server might conceivably be specified as
+      <code>"jan|feb|mar|apr|ma&#xED;|j&#xFA;n|j&#xFA;l|&#xE1;g&#xFA;|sep|okt|n&#xF3;v|des"</code>.
+      This attribute exists primarily to support languages not supported by
+      the <b>serverLanguageCode</b> attribute.<br>
+      Since ant 1.7
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Note about remotedir attribute</h3>
+<table  border="1" cellpadding="2" cellspacing="0"
+ >
+  <tbody>
+    <tr>
+      <td style="vertical-align: top;" width="20%">Action<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">meaning of <code>remotedir</code><br>
+      </td>
+      <td style="vertical-align: top;">use of nested <code>fileset</code>
+(s)<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">send/put<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory to
+which the files are sent<br>
+      </td>
+      <td style="vertical-align: top;">they are used normally and
+evaluated on the local machine<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">recv/get<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which the files are retrieved<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset&nbsp;</code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">del/delete<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which files get deleted<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset <br>
+      </code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">list<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which files are listed<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset <br>
+      </code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">mkdir</td>
+      <td style="vertical-align: top;" width="40%">directory to create<br>
+      </td>
+      <td style="vertical-align: top;">not used<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">chmod</td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which the mode of files get changed<br>
+      </td>
+      <td style="vertical-align: top;">the remote files located under
+the <code>remotedir </code>matching the include/exclude patterns of
+the <code>fileset <br>
+      </code></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;" width="20%">rmdir<br>
+      </td>
+      <td style="vertical-align: top;" width="40%">base directory from
+which directories get removed<br>
+      </td>
+      <td style="vertical-align: top;">the remote directories located
+under the <code>remotedir </code>matching the include/exclude
+patterns of the <code>fileset <br>
+      </code></td>
+    </tr>
+  </tbody>
+</table><h3>Parameters specified as nested elements</h3>
+<h4>fileset</h4>
+<p>The ftp task supports any number of nested <a
+href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a> elements to specify
+the files to be retrieved, or deleted, or listed, or whose mode you want to change.</p>
+<p>
+The attribute <code>followsymlinks</code> of <code>fileset</code> is supported on
+local (put) as well as remote (get, chmod, delete) filesets.
+<em>Before ant 1.6 there was no support of symbolic links in remote filesets.
+In order to exclude symbolic links (preserve the behavior of ant 1.5.x and older),
+you need to explicitly set <code>followsymlinks</code> to <code>false</code>.</em>
+On remote filesets hidden files are not checked for being symbolic links. Hidden
+files are currently assumed to not be symbolic links.
+</p>
+<p>
+Remote filesets do not support selectors.<br>
+</p>
+
+<h3>Sending Files</h3>
+<p>The easiest way to describe how to send files is with a couple of examples:</p>
+<pre>
+  &lt;ftp server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"&gt;
+    &lt;fileset dir="htdocs/manual"/&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
+uploads all files in the <code>htdocs/manual</code> directory 
+to the default directory for that user.</p>
+<pre>  &lt;ftp server="ftp.apache.org"
+       remotedir="incoming"
+       userid="anonymous"
+       password="me@myorg.com"
+       depends="yes"&gt;
+    &lt;fileset dir="htdocs/manual"/&gt;
+  &lt;/ftp&gt;</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and
+uploads all new or changed files in the <code>htdocs/manual</code> directory 
+to the <code>incoming</code> directory relative to the default directory
+for <code>anonymous</code>.</p>
+<pre>  &lt;ftp server="ftp.apache.org"
+       port="2121"
+       remotedir="/pub/incoming"
+       userid="coder"
+       password="java1"
+       passive="yes"
+       depends="yes"
+       binary="no"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;</pre>
+<p>Logs in to <code>ftp.apache.org</code> at port <code>2121</code> as
+<code>coder</code> with password <code>java1</code> and uploads all new or
+changed HTML files in the <code>htdocs/manual</code> directory to the
+<code>/pub/incoming</code> directory. The files are transferred in text mode.
+Passive mode has been switched on to send files from behind a firewall.</p>
+<pre>  &lt;ftp server="ftp.hypothetical.india.org"
+       port="2121"
+       remotedir="/pub/incoming"
+       userid="coder"
+       password="java1"
+       depends="yes"
+       binary="no"
+       systemTypeKey="Windows"
+       serverTimeZoneConfig="India/Calcutta"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;</pre>
+<p>Logs in to a Windows server at <code>ftp.hypothetical.india.org</code>
+at port <code>2121</code> as <code>coder</code> with password <code>java1</code>
+and uploads all new or changed (accounting for timezone differences)
+HTML files in the <code>htdocs/manual</code>
+directory to the <code>/pub/incoming</code> directory. The files are transferred
+in text mode.</p>
+<pre>  &lt;ftp server="ftp.nt.org"
+       remotedir="c:\uploads"
+       userid="coder"
+       password="java1"
+       separator="\"
+       verbose="yes"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;</pre><p>Logs in to the Windows-based <code>ftp.nt.org</code> as 
+<code>coder</code> with password <code>java1</code> and uploads all 
+HTML files in the <code>htdocs/manual</code> directory to the 
+<code>c:\uploads</code> directory.  Progress messages are displayed as each
+file is uploaded.</p>
+<h3>Getting Files</h3>
+<p>Getting files from an FTP server works pretty much the same way as 
+sending them does.  The only difference is that the nested filesets
+use the remotedir attribute as the base directory for the files on the
+FTP server, and the dir attribute as the local directory to put the files
+into.  The file structure from the FTP site is preserved on the local machine.</p>
+<pre>
+  &lt;ftp action="get"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
+recursively downloads all .html files from default directory for that user 
+into the <code>htdocs/manual</code> directory on the local machine.</p>
+<pre>
+  &lt;ftp action="get"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"
+       systemTypeKey="UNIX"
+       defaultDateFormatConfig="yyyy-MM-dd HH:mm"&gt;
+    &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>If apache.org ever switches to a unix FTP server that uses the new all-numeric
+format for timestamps, this version would become necessary.  It would accomplish
+the same functionality as the previous example but would successfully handle the
+numeric timestamps.
+The <code>systemTypeKey</code> is not necessary here but helps clarify what is
+going on.</p>
+<pre>
+  &lt;ftp action="get"
+       server="ftp.hypthetical.fr"
+       userid="anonymous"
+       password="me@myorg.com"
+       defaultDateFormatConfig="d MMM yyyy"
+       recentDateFormatConfig="d MMM HH:mm"
+       serverLanguageCodeConfig="fr"&gt;
+     &lt;fileset dir="htdocs/manual"&gt;
+      &lt;include name="**/*.html"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs into a UNIX FTP server at <code>ftp.hypothetical.fr</code> which displays
+dates with French names in Standard European format, as <code>anonymous</code>, and
+recursively downloads all .html files from default directory for that user
+into the <code>htdocs/manual</code> directory on the local machine.</p>
+
+<h3>Deleting Files</h3>
+As you've probably guessed by now, you use nested fileset elements to 
+select the files to delete from the remote FTP server.  Again, the 
+filesets are relative to the remote directory, not a local directory.  In
+fact, the dir attribute of the fileset is ignored completely.
+
+<pre>
+  &lt;ftp action="del"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"&gt;
+    &lt;fileset&gt;
+      &lt;include name="**/*.tmp"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and
+tries to delete all *.tmp files from the default directory for that user.
+If you don't have permission to delete a file, a BuildException is thrown.</p>
+<h3>Listing Files</h3>
+<pre>
+  &lt;ftp action="list"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"
+       listing="data/ftp.listing"&gt;
+    &lt;fileset&gt;
+      &lt;include name="**"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>This provides a file listing in <code>data/ftp.listing</code> of all the files on
+the FTP server relative to the default directory of the <code>anonymous</code>
+user. The listing is in whatever format the FTP server normally lists files.</p>
+
+<h3>Creating Directories</h3>
+<p>Note that with the mkdir action, the directory to create is specified using the
+remotedir attribute.</p>
+<pre>
+  &lt;ftp action="mkdir"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"
+       remotedir="some/remote/dir"/&gt;
+</pre>
+<p>This creates the directory <code>some/remote/dir</code> beneath the default root
+directory.  As with all other actions, the directory separator character must be correct
+according to the desires of the FTP server.</p>
+<h3>Removing Directories</h3>
+This action uses nested fileset elements to 
+select the directories to remove from the remote FTP server.  The 
+filesets are relative to the remote directory, not a local directory. 
+The dir attribute of the fileset is ignored completely.
+The directories to be removed must be empty, or contain only
+other directories that have been also selected to be removed by the filesets
+patterns, otherwise a BuildException will be thrown.
+Also, if you don't have permission to remove a directory, a BuildException is 
+thrown.
+
+<pre>
+  &lt;ftp action="rmdir"
+       server="ftp.apache.org"
+       userid="anonymous"
+       password="me@myorg.com"
+       remotedir="/somedir" &gt;
+    &lt;fileset&gt;
+      &lt;include name="dira"/&gt;
+      &lt;include name="dirb/**"/&gt;
+    &lt;/fileset&gt;
+  &lt;/ftp&gt;
+</pre>
+<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and
+tries to remove <code>/somedir/dira</code> directory and
+all the directories tree starting at, and including, <code>/somedir/dirb</code>.
+When removing the <code>/somedir/dirb</code> tree,
+it will start at the leaves moving up to the root, so that when
+it tries to remove a directory it is sure all the directories under it are
+already removed.
+Obviously all the files in the tree must have been already deleted.
+</p>
+<p>As an example suppose you want to delete everything contained into 
+<code>/somedir</code>, so invoke first the <code>&lt;ftp&gt;</code> task with
+<code>action="delete"</code>, then with
+<code>action="rmdir"</code> specifying in both cases
+<code>remotedir="/somedir"</code> and
+
+<pre>
+    &lt;fileset&gt;
+        &lt;include name="**"/&gt;
+    &lt;/fileset&gt;
+</pre>
+
+The directory specified in the <code>remotedir</code> parameter is never
+selected for remove, so if you need to remove it, specify its parent in
+<code>remotedir</code> parameter and include it in the 
+<code>&lt;fileset&gt;</code> pattern, like <code>"somedir/**"</code>.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ilasm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ilasm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ilasm.html	(revision 14989)
@@ -0,0 +1,278 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Ilasm
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Ilasm
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Assembles .NET Intermediate Language files.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Assembles .NET Intermediate Language files. ilasm.exe must be on the execute path, unless another executable or the full path to that executable is specified in the <tt>executable</tt> parameter <p> <p> All parameters are optional: <code>&lt;il/&gt;</code> should suffice to produce a debug build of all *.il files. The option set is roughly compatible with the CSharp class; even though the command line options are only vaguely equivalent. [The low level commands take things like /OUT=file, csc wants /out:file ... /verbose is used some places; /quiet here in ildasm... etc.] It would be nice if someone made all the command line tools consistent (and not as brittle as the java cmdline tools) <p> <p> The task is a directory based task, so attributes like <b>includes="*.il" </b> and <b>excludes="broken.il"</b> can be used to control the files pulled in. You can also use nested &lt;src&gt filesets to refer to source. <p>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="10">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fails if ilasm tool fails.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">keyfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the name of a file containing a private key.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">listing</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, produce a listing (off by default).</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">outputfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the output file; identical to setDestFile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">resourcefile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name of resource file to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">verbose</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enable verbose ILASM output.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ildasm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ildasm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/ildasm.html	(revision 14989)
@@ -0,0 +1,338 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Ildasm
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Ildasm
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Task to take a .NET or Mono -generated managed executable and turn it into ILASM assembly code.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Task to take a .NET or Mono -generated managed executable and turn it into ILASM assembly code. Useful when converting imported typelibs into assembler before patching and recompiling, as one has to do when doing advanced typelib work. <p> As well as generating the named output file, the ildasm program will also generate resource files <code>Icons.resources</code> <code>Message.resources</code> and a .res file whose filename stub is derived from the source in ways to obscure to determine. There is no way to control whether or not these files are created, or where they are created (they are created in the current directory; their names come from inside the executable and may be those used by the original developer). This task creates the resources in the directory specified by <code>resourceDir</code> if set, else in the same directory as the <code>destFile</code>. <p> This task requires the .NET SDK installed and ildasm on the path. To disassemble using alternate CLR systems, set the executable attribute to the name/path of the alternate implementation -one that must support all the classic ildasm commands. <p> Dependency logic: the task executes the command if the output file is missing or older than the source file. It does not take into account changes in the options of the task, or timestamp differences in resource files. When the underlying ildasm executable fails for some reason, it leaves the .il file in place with some error message. To prevent this from confusing the dependency logic, the file specified by the <code>dest</code> attribute is <i>always</i> deleted after an unsuccessful build.
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">assembler</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable (default) or disable assembly language in the output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="17">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">bytes</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable or disable (default) the original bytes as comments</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the output file (required)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">encoding</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Select the output encoding: ascii, utf8 or unicode</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"ascii", "utf8", "unicode"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">override the name of the executable (normally ildasm) or set its full path. Do not set a relative path, as the ugly hacks needed to create resource files in the dest directory force us to change to this directory before running the application. i.e use &lt;property location&gt to create an absolute path from a relative one before setting this value.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">header</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include header information; default false.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">item</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name a single item to decode; a class or a method e.g item="Myclass::method" or item="namespace1::namespace2::Myclass:method(void(int32))</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">linenumbers</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include line number information; default=false</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">metadata</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include metadata information</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">progressbar</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">show a graphical progress bar in a window during the process; off by default</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">quoteallnames</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">quote all names.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">rawexceptionhandling</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable raw exception handling (default = false)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">resourcedir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of the directory for resources to be created. We cannot control their names, but we can say where they get created. If not set, the directory of the dest file is used</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">showsource</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include the source as comments (default=false)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">sourcefile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the file to disassemble -required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">alternate name for sourceFile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">visibility</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">visibility options: one or more of the following, with + signs to concatenate them: <pre> pub : Public pri : Private fam : Family asm : Assembly faa : Family and Assembly foa : Family or Assembly psc : Private Scope </pre> e.g. visibility="pub+pri". Family means <code>protected</code> in C#;</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/image.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/image.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/image.html	(revision 14989)
@@ -0,0 +1,239 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Image Task</title>
+</head>
+
+<body>
+
+<h2><a name="image">Image</a></h2>
+<h3>Description</h3>
+<p>Applies a chain of image operations on a set of files.</p>
+<p>Requires Java Advanced Image API from Sun.</p>
+
+<h5>Overview of used datatypes</h5>
+<img src="image-classdiagram.gif" border="0" alt="Class-Diagram">
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"> failonerror </td>
+    <td valign="top"> Boolean value. If false, note errors to the output but keep going. </td>
+    <td align="center"> no (defaults to <i>true</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> srcdir </td>
+    <td valign="top"> Directory containing the images. </td>
+    <td align="center"> yes, unless nested fileset is used </td>
+  </tr>
+  <tr>
+    <td valign="top"> encoding </td>
+    <td valign="top"> Image encoding type. <br>
+      Valid (caseinsensitive) are: jpg, jpeg, tif, tiff
+    </td>
+    <td align="center"> no (defaults to <i>JPEG</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> overwrite </td>
+    <td valign="top"> Boolean value. Sets whether or not to overwrite
+      a file if there is naming conflict.
+    </td>
+    <td align="center"> no (defaults to <i>false</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> gc </td>
+    <td valign="top"> Boolean value. Enables garbage collection after
+      each image processed.
+    </td>
+    <td align="center"> no (defaults to <i>false</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> destdir </td>
+    <td valign="top"> Directory where the result images are stored. </td>
+    <td align="center"> no (defaults to value of <i>srcdir</i>) </td>
+  </tr>
+  <!-- attributes inherited from MatchingTask -->
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"> excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top"> caseSensitive </td>
+    <td valign="top"> Boolean value. Sets case sensitivity of the file system. </td>
+    <td align="center"> no (defaults to <i>false</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> followSymlinks </td>
+    <td valign="top"> Boolean value. Sets whether or not symbolic links should be followed. </td>
+    <td align="center"> no (defaults to <i>true</i>) </td>
+  </tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code> as well as the
+nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+
+
+<h4>ImageOperation</h4>
+<p>Adds an ImageOperation to chain.</p>
+<h5>Nested Elements</h5>
+ImageOperation can handle nested Rotate, Draw, Rectangle, Text and Scale objects.
+
+<h4>Rotate</h4>
+<p>Adds a Rotate ImageOperation to chain.</p>
+<h5>Parameters</h5>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"> angle </td>
+    <td valign="top"> Float value. Sets the angle of rotation in degrees. </td>
+    <td align="center"> no (defaults to <i>0.0F</i>) </td>
+  </tr>
+</table>
+
+<h4>Scale</h4>
+<p>Adds a Scale ImageOperation to chain.</p>
+<h5>Parameters</h5>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+    <td valign="top"> proportions </td>
+    <td valign="top"> Sets which dimension to control proportions from. Valid values are:<ul>
+        <li>&quot;ignore&quot; -  treat the dimensions independently.</li>
+        <li>&quot;height&quot; - keep proportions based on the width.</li>
+        <li>&quot;width&quot; - keep proportions based on the height.</li>
+        <li>&quot;cover&quot; - keep proportions and fit in the supplied dimensions.</li>
+        <li>&quot;fit&quot; - keep proportions and cover the supplied dimensions.</li>
+    </ul></td>
+    <td align="center"> no (defaults to <i>ignore</i>) </td>
+  <tr>
+    <td valign="top"> width </td>
+    <td valign="top"> Sets the width of the image, either as an integer or a %. </td>
+        <!-- todo: if integer, what kind? cm, px, inches, ... -->
+    <td align="center"> no (defaults to <i>100%</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> height </td>
+    <td valign="top"> Sets the height of the image, either as an integer or a %. </td>
+        <!-- todo: if integer, what kind? cm, px, inches, ... -->
+    <td align="center"> no (defaults to <i>100%</i>) </td>
+  </tr>
+</table>
+
+<h4>Draw</h4>
+<p>Adds a Draw ImageOperation to chain. DrawOperation DataType objects can be
+nested inside the Draw object.</p>
+<h5>Parameters</h5>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top"> xloc </td>
+    <td valign="top"> X-Position where to draw nested image elements. </td>
+    <td align="center"> no (defaults to <i>0</i>) </td>
+  </tr>
+  <tr>
+    <td valign="top"> yloc </td>
+    <td valign="top"> Y-Position where to draw nested image elements. </td>
+    <td align="center"> no (defaults to <i>0</i>) </td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<blockquote><pre>
+&nbsp;&lt;image destdir="samples/low" overwrite="yes"&gt;
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="samples/full"&gt;
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="**/*.jpg"/&gt;
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;scale width="160" height="160" proportions="fit"/&gt;
+&nbsp;&lt;/image&gt;
+</pre></blockquote>
+<p>Create thumbnails of my images and make sure they all fit within the 160x160 size whether the
+image is portrait or landscape.</p>
+
+<blockquote><pre>
+&lt;image srcdir="src" includes="*.png"&gt;
+    &lt;scale proportions="width" width="40"/&gt;
+&lt;/image&gt;
+</pre></blockquote>
+<p>Creates a thumbnail for all PNG-files in <i>src</i> in the size of 40 pixel keeping the proportions
+and stores the <i>src</i>.</p>
+
+<blockquote><pre>
+&lt;image srcdir="src" destdir="dest" includes="*.png"&gt;
+    &lt;scale proportions="width" width="40"/&gt;
+&lt;/image&gt;
+</pre></blockquote>
+<p>Same as above but stores the result in <i>dest</i>.</p>
+
+<blockquote><pre>
+</pre></blockquote>
+
+
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/importtypelib.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/importtypelib.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/importtypelib.html	(revision 14989)
@@ -0,0 +1,206 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Importtypelib
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Importtypelib
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Import a COM type library into the .NET framework.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Import a COM type library into the .NET framework. <p> This task is a wrapper to .NET's tlbimport; it imports a tlb file to a NET assembly by generating a binary assembly (.dll) that contains all the binding metadata. It uses date timestamps to minimise rebuilds. <p> Example <pre> &lt;importtypelib srcfile="xerces.tlb" destfile="xerces.dll" namespace="Apache.Xerces"/&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name the output file. required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="6">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set any extra options that are not yet supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">what namespace is the typelib to be in. required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">what is the source .tlb file? required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">unsafe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">do you want unsafe code.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">usesysarray</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set this to map a COM SafeArray to the System.Array class</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-available.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-available.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-available.html	(revision 14989)
@@ -0,0 +1,135 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>jarlib-available Task</title>
+</head>
+
+<body>
+
+<h2><a name="jarlib-available">jarlib-available</a></h2>
+<h3>Description</h3>
+<p>Check whether an extension is present in a fileset or an extensionSet.
+If the extension is present then a property is set.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of property to set if extensions is available.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to check for extension</td>
+    <td valign="top" align="center">No, one of file, nested
+    ExtensionSet or nested fileset must be present.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>extension</h4>
+ <p><a href="../OptionalTypes/extension.html">Extension</a> the extension
+ to search for.</p>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select
+sets of files to check for extension.</p>
+
+<h4>extensionSet</h4>
+ <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s is the set
+ of extensions to search for extension in.</p>
+
+<h3>Examples</h3>
+<p><b>Search for extension in single file</b></p>
+<pre>
+  &lt;jarlib-available property=&quot;myext.present&quot; file=&quot;myfile.jar&quot;&gt;
+    &lt;extension
+      extensionName=&quot;org.apache.tools.ant&quot;
+      specificationVersion=&quot;1.4.9&quot;
+      specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+
+<p><b>Search for extension in single file referencing external Extension</b></p>
+<pre>
+  &lt;extension id=&quot;myext&quot;
+    extensionName=&quot;org.apache.tools.ant&quot;
+    specificationVersion=&quot;1.4.9&quot;
+    specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+
+  &lt;jarlib-available property=&quot;myext.present&quot; file=&quot;myfile.jar&quot;&gt;
+    &lt;extension refid=&quot;myext&quot;/&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+<p><b>Search for extension in fileset</b></p>
+<pre>
+  &lt;extension id=&quot;myext&quot;
+    extensionName=&quot;org.apache.tools.ant&quot;
+    specificationVersion=&quot;1.4.9&quot;
+    specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+
+  &lt;jarlib-available property=&quot;myext.present&quot;&gt;
+    &lt;extension refid=&quot;myext&quot;/&gt;
+    &lt;fileset dir="lib"&gt;
+      &lt;include name="*.jar"/&gt;
+    &lt;/fileset&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+<p><b>Search for extension in extensionSet</b></p>
+<pre>
+  &lt;extension id=&quot;myext&quot;
+    extensionName=&quot;org.apache.tools.ant&quot;
+    specificationVersion=&quot;1.4.9&quot;
+    specificationVendor=&quot;Apache Software Foundation&quot;/&gt;
+
+  &lt;jarlib-available property=&quot;myext.present&quot;&gt;
+    &lt;extension refid=&quot;myext&quot;/&gt;
+    &lt;extensionSet id=&quot;exts3&quot;&gt;
+      &lt;libfileset
+        includeUrl=&quot;false&quot;
+        includeImpl=&quot;true&quot;
+        dir=&quot;lib&quot;&gt;
+        &lt;include name=&quot;*.jar&quot;/&gt;
+      &lt;/libfileset&gt;
+    &lt;/extensionSet&gt;
+  &lt;/jarlib-available&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-display.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-display.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-display.html	(revision 14989)
@@ -0,0 +1,81 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>jarlib-display Task</title>
+</head>
+
+<body>
+
+<h2><a name="jarlib-display">jarlib-display</a></h2>
+<h3>Description</h3>
+<p>Display the "Optional Package" and "Package Specification" information
+ contained within the specified jars.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to display extension information about.</td>
+    <td valign="top" align="center">No, but one of file or fileset must be
+    present.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s contain list of files to
+ display Extension information  about.</p>
+
+<h3>Examples</h3>
+<p><b>Display Extension info for a single file</b></p>
+<pre>
+  &lt;jarlib-display file=&quot;myfile.jar&quot;&gt;
+</pre>
+
+<p><b>Display Extension info for a fileset</b></p>
+<pre>
+  &lt;jarlib-display&gt;
+    &lt;fileset dir="lib"&gt;
+      &lt;include name="*.jar"/&gt;
+    &lt;/fileset&gt;
+  &lt;/jarlib-display&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-manifest.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-manifest.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-manifest.html	(revision 14989)
@@ -0,0 +1,124 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>jarlib-manifest Task</title>
+</head>
+
+<body>
+
+<h2><a name="jarlib-manifest">jarlib-manifest</a></h2>
+<h3>Description</h3>
+<p>Task to generate a manifest that declares all the dependencies
+ in manifest. The dependencies are determined by looking in the
+ specified path and searching for Extension / "Optional Package"
+ specifications in the manifests of the jars.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file to generate Manifest into</td>
+    <td valign="top" align="center">Yes.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>extension</h4>
+ <p><a href="../OptionalTypes/extension.html">Extension</a> the extension
+ that this library implements.</p>
+
+<h4>depends</h4>
+ <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s containing
+ all dependencies for jar.</p>
+
+<h4>options</h4>
+ <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s containing
+ all optional dependencies for jar. (Optional dependencies will be used if
+ present else they will be ignored)</p>
+
+<h3>Examples</h3>
+<p><b>Basic Manifest generated for single Extension</b></p>
+<pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com&quot;/&gt;
+
+&lt;jarlib-manifest destfile=&quot;myManifest.txt&quot;&gt;
+    &lt;extension refid=&quot;e1&quot;/&gt;
+&lt;/jarlib-manifest&gt;
+</pre>
+
+<p><b>Search for extension in fileset</b></p>
+<p><b>A large example with required and optional dependencies</b></p>
+<pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com&quot;/&gt;
+
+&lt;extensionSet id=&quot;option.ext&quot;&gt;
+    &lt;libfileset dir=&quot;lib/option&quot;&gt;
+        &lt;include name=&quot;**/*.jar&quot;/&gt;
+    &lt;/libfileset&gt;
+&lt;/extensionSet&gt;
+
+&lt;extensionSet id=&quot;depends.ext&quot;&gt;
+    &lt;libfileset dir=&quot;lib/required&quot;&gt;
+        &lt;include name=&quot;*.jar&quot;/&gt;
+    &lt;/libfileset&gt;
+&lt;/extensionSet&gt;
+
+&lt;jarlib-manifest destfile=&quot;myManifest.txt&quot;&gt;
+    &lt;extension refid=&quot;e1&quot;/&gt;
+    &lt;depends refid=&quot;depends.ext&quot;/&gt;
+    &lt;options refid=&quot;option.ext&quot;/&gt;
+&lt;/jarlib-manifest&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-resolve.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-resolve.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jarlib-resolve.html	(revision 14989)
@@ -0,0 +1,212 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>jarlib-resolve Task</title>
+</head>
+
+<body>
+
+<h2><a name="jarlib-resolve">jarlib-resolve</a></h2>
+<h3>Description</h3>
+<p>Try to locate a jar to satisfy an extension and place
+ location of jar into property. The task allows you to
+ add a number of resolvers that are capable of locating a
+ library for a specific extension. Each resolver will be attempted
+ in specified order until library is found or no resolvers are left.
+ If no resolvers are left and failOnError is true then a BuildException
+ will be thrown.</p>
+
+<p>Note that this task
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+<p>See the Extension and ExtensionSet documentation for further details</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The name of property to set to library location.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">failOnError</td>
+    <td valign="top">True if failure to locate library should result in build exception.</td>
+    <td valign="top" align="center">No, defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">checkExtension</td>
+    <td valign="top">True if libraries returned by nested resolvers should be checked to see if
+    they supply extension.</td>
+    <td valign="top" align="center">No, defaults to true.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>extension</h4>
+ <p><a href="../OptionalTypes/extension.html">Extension</a> the extension
+ to resolve. Must be present</p>
+
+<h4>location</h4>
+ <p>The location sub element allows you to look for a library in a
+ location relative to project directory.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">The pathname of library.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>url</h4>
+ <p>The url resolver allows you to download a library from a URL to a
+ local file.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">The URL to download.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file to download URL into.</td>
+    <td valign="top" align="center">No, But one of destfile or
+    destdir must be present</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">The directory in which to place downloaded file.</td>
+    <td valign="top" align="center">No, But one of destfile or
+    destdir must be present</td>
+  </tr>
+</table>
+
+<h4>ant</h4>
+ <p>The ant resolver allows you to run a ant build file to generate a library.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">antfile</td>
+    <td valign="top">The build file.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destfile</td>
+    <td valign="top">The file that the ant build creates.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The target to run in build file.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p><b>Resolve Extension to file.</b> If file does not exist or file
+   does not implement extension then throw an exception.</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;location location="/opt/jars/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<p><b>Resolve Extension to url.</b> If url does not exist or can not write
+   to destfile or files does not implement extension then throw an exception.</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;url url="http://www.realityforge.net/jars/dve.jar" destfile="lib/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<p><b>Resolve Extension to file produce by ant build.</b> If file does not get produced
+   or ant file is missing or build fails then throw an exception (Note does not check
+   that library implements extension).</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library" checkExtension="false"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+<p><b>Resolve Extension via multiple methods.</b> First check local file to see if it implements
+  extension. If it does not then try to build it from source in parallel directory. If that
+  fails then finally try to download it from a website. If all steps fail then throw a build
+  exception.</p>
+<pre>
+  &lt;extension id=&quot;dve.ext&quot;
+    extensionName=&quot;org.realityforge.dve&quot;
+    specificationVersion=&quot;1.2&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+
+  &lt;jarlib-resolve property="dve.library"&gt;
+    &lt;extension refid="dve.ext"/&gt;
+    &lt;location location="/opt/jars/dve.jar"/&gt;
+    &lt;ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/&gt;
+    &lt;url url="http://www.realityforge.net/jars/dve.jar" destfile="lib/dve.jar"/&gt;
+  &lt;/jarlib-resolve&gt;
+</pre>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/javacc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/javacc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/javacc.html	(revision 14989)
@@ -0,0 +1,204 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JavaCC Task</title>
+</head>
+
+<body>
+
+<h2><a name="javacc">JavaCC</a></h2>
+<h3>Description</h3>
+<p>
+  Invokes the <a HREF="http://javacc.dev.java.net/" target="_top">JavaCC</a> compiler
+  compiler on a grammar file.
+</p>
+<p>
+  To use the javacc task, set the <i>target</i> attribute to the name of the
+  grammar file to process.  You also need to specify the directory containing
+  the JavaCC installation using the <i>javacchome</i> attribute, so that ant
+  can find the JavaCC classes.  Optionally, you can also set the
+  <i>outputdirectory</i> to write the generated file to a specific directory.
+  Otherwise javacc writes the generated files to the directory containing
+  the grammar file.
+</p>
+<p>
+  This task only invokes JavaCC if the grammar file is newer than the generated
+  Java files.  javacc assumes that the Java class name of the generated parser
+  is the same as the name of the grammar file, ignoring the .jj.
+  If this is not the case, the javacc task will still work, but it will always
+  generate the output files.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">target</td>
+    <td valign="top">The grammar file to process.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">javacchome</td>
+    <td valign="top">The directory containing the JavaCC distribution.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">outputdirectory</td>
+    <td valign="top">
+      The directory to write the generated files to.  If not set, the files
+      are written to the directory containing the grammar file.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">buildparser</td>
+    <td valign="top">Sets the BUILD_PARSER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">buildtokenmanager</td>
+    <td valign="top">Sets the BUILD_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cachetokens</td>
+    <td valign="top">Sets the CACHE_TOKENS grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">choiceambiguitycheck</td>
+    <td valign="top">Sets the CHOICE_AMBIGUITY_CHECK grammar option.  This is an integer option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">commontokenaction</td>
+    <td valign="top">Sets the COMMON_TOKEN_ACTION grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debuglookahead</td>
+    <td valign="top">Sets the DEBUG_LOOKAHEAD grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debugparser</td>
+    <td valign="top">Sets the DEBUG_PARSER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">debugtokenmanager</td>
+    <td valign="top">Sets the DEBUG_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">errorreporting</td>
+    <td valign="top">Sets the ERROR_REPORTING grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forcelacheck</td>
+    <td valign="top">Sets the FORCE_LA_CHECK grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">ignorecase</td>
+    <td valign="top">Sets the IGNORE_CASE grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">javaunicodeescape</td>
+    <td valign="top">Sets the JAVA_UNICODE_ESCAPE grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jdkversion</td>
+    <td valign="top">Sets the JDK_VERSION option. This is a string option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>  <tr>
+    <td valign="top">keeplinecolumn</td>
+    <td valign="top">Sets the KEEP_LINE_COLUMN grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">lookahead</td>
+    <td valign="top">Sets the LOOKAHEAD grammar option.  This is an integer option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">optimizetokenmanager</td>
+    <td valign="top">Sets the OPTIMIZE_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">otherambiguitycheck</td>
+    <td valign="top">Sets the OTHER_AMBIGUITY_CHECK grammar option.  This is an integer option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sanitycheck</td>
+    <td valign="top">Sets the SANITY_CHECK grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">static</td>
+    <td valign="top">Sets the STATIC grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unicodeinput</td>
+    <td valign="top">Sets the UNICODE_INPUT grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">usercharstream</td>
+    <td valign="top">Sets the USER_CHAR_STREAM grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">usertokenmanager</td>
+    <td valign="top">Sets the USER_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Example</h3>
+<blockquote><pre>
+&lt;javacc
+    target=&quot;src/Parser.jj&quot;
+    outputdirectory=&quot;build/src&quot;
+    javacchome=&quot;c:/program files/JavaCC&quot;
+    static=&quot;true&quot;
+/&gt;
+</pre></blockquote>
+<p>
+  This invokes JavaCC on grammar file src/Parser.jj, writing the generated
+  files to build/src.  The grammar option STATIC is set to true when
+  invoking JavaCC.
+</p>
+
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/javah.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/javah.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/javah.html	(revision 14989)
@@ -0,0 +1,192 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Javah Task</title>
+</head>
+
+<body>
+
+<h2><a name="javah">Javah</a></h2>
+<h3>Description</h3>
+<p>Generates JNI headers from a Java class.</p>
+<p> When this task executes, it will generate the C header and source files that
+are needed to implement native methods. JNI operates differently depending on
+whether <a href="http://java.sun.com/j2se/1.3/docs/tooldocs/win32/javah.html">JDK1.2</a>
+(or later) or <a href="http://java.sun.com/products/jdk/1.1/docs/tooldocs/win32/javah.html">pre-JDK1.2</a>
+systems are used.</p>
+
+<p>It is possible to use different compilers. This can be selected
+with the <code>implementation</code> attribute.  <a
+name="implementationvalues">Here are the choices</a>:</p>
+<ul>
+  <li>default - the default compiler (kaffeh or sun) for the platform.</li>
+  <li>sun (the standard compiler of the JDK)</li>
+  <li>kaffeh (the native standard compiler of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
+</ul>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">class</td>
+    <td valign="top">the fully-qualified name of the class (or classes,
+      separated by commas)</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">outputFile</td>
+    <td valign="top">concatenates the resulting header or source files for all the classes listed into this file</td>
+    <td align="center" valign="middle" rowspan="2">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">sets the directory where javah saves the header files or the
+      stub files.</td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">specifies that output files should always be written (JDK1.2 only)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">old</td>
+    <td valign="top">specifies that old JDK1.0-style header files should be generated
+      (otherwise output file contain JNI-style native method      function prototypes) (JDK1.2 only)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">stubs</td>
+    <td valign="top">generate C declarations from the Java object file (used with old)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">causes Javah to print a message concerning the status     of the generated files</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">the classpath to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bootclasspath</td>
+    <td valign="top">location of bootstrap class files.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">extdirs</td>
+    <td valign="top"> location of installed extensions.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">implementation</td>
+    <td valign="top">The compiler implementation to use.  If this
+    attribute is not set, the default compiler for the current VM
+    will be used.  (See the above <a
+    href="#implementationvalues">list</a> of valid compilers.)</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>Either outputFile or destdir must be supplied, but not both.&nbsp;</p>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>arg</h4>
+
+<p>You can specify additional command line arguments for the compiler
+with nested <code>&lt;arg&gt;</code> elements.  These elements are
+specified like <a href="../using.html#arg">Command-line Arguments</a>
+but have an additional attribute that can be used to enable arguments
+only if a given compiler implementation will be used.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">implementation</td>
+    <td>Only pass the specified argument if the chosen compiler
+    implementation matches the value of this attribute.  Legal values
+    are the same as those in the above <a
+    href="#implementationvalues">list</a> of valid compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>  &lt;javah destdir=&quot;c&quot; class=&quot;org.foo.bar.Wibble&quot;/&gt;</pre>
+<p>makes a JNI header of the named class, using the JDK1.2 JNI model. Assuming
+the directory 'c' already exists, the file <tt>org_foo_bar_Wibble.h</tt>
+is created there. If this file already exists, it is left unchanged.</p>
+<pre>  &lt;javah outputFile=&quot;wibble.h&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble,org.foo.bar.Bobble&quot;/&gt;
+  &lt;/javah&gt;</pre>
+<p>is similar to the previous example, except the output is written to a file
+called <tt>wibble.h</tt>
+in the current directory.</p>
+<pre>  &lt;javah destdir=&quot;c&quot; force=&quot;yes&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
+  &lt;/javah&gt;</pre>
+<p>writes three header files, one for each of the classes named. Because the
+force option is set, these header files are always written when the Javah task
+is invoked, even if they already exist.</p>
+<pre>  &lt;javah destdir=&quot;c&quot; verbose=&quot;yes&quot; old=&quot;yes&quot; force=&quot;yes&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
+  &lt;/javah&gt;
+  &lt;javah destdir=&quot;c&quot; verbose=&quot;yes&quot; stubs=&quot;yes&quot; old=&quot;yes&quot; force=&quot;yes&quot;&gt;
+    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
+    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
+  &lt;/javah&gt;</pre>
+<p>writes the headers for the three classes using the 'old' JNI format, then
+writes the corresponding .c stubs. The verbose option will cause Javah to
+describe its progress.</p>
+
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jdepend.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jdepend.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jdepend.html	(revision 14989)
@@ -0,0 +1,177 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html public "-//w3c//dtd html 4.0 transitional//en">
+
+<html>
+<head>
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JDepend Task</title>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+</head>
+
+<body>
+
+<h2><a NAME="JDepend"></a>JDepend</h2>
+
+<h3>Description</h3>
+
+<P>Invokes the <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> parser.</P>
+
+<P>This parser &quot;traverses a set of Java source file directories and generates design quality metrics for each Java package&quot;.
+It allows to &quot;automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to
+effectively manage and control package dependencies.&quot;</P>
+
+<p>Source file directories are defined by nested
+<code>&lt;sourcespath&gt;</code>; Class file directories are defined
+by nested <code>&lt;classesespath&gt;</code>, see <a
+href="#nested">nested elements</a>.</p>
+
+<p>Optionally, you can also set the <code>outputfile</code> name where the output is stored. By default the task writes its report to the standard output.</P>
+
+<p> The task requires at least the JDepend 1.2 version. </p>
+
+<h3>Parameters</h3>
+
+<table BORDER=1 CELLSPACING=0 CELLPADDING=2 >
+  <tr>
+    <td VALIGN=TOP><b>Attribute</b></td>
+    <td VALIGN=TOP><b>Description</b></td>
+    <td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>outputfile</td>
+    <td VALIGN=TOP>The output file name. If not set, the output is printed on the standard output.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>format</td>
+    <td VALIGN=TOP>The format to write the output in. The default is "text", the alternative is "xml"</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>fork</td>
+    <td VALIGN=TOP>Run the tests in a separate VM.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>haltonerror</td>
+    <td VALIGN=TOP>Stop the build process if an error occurs during the jdepend analysis.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>timeout</td>
+    <td VALIGN=TOP>Cancel the operation if it doesn't finish in the given time (measured in milliseconds). (Ignored if fork is disabled.)</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>jvm</td>
+    <td VALIGN=TOP>The command used to invoke the Java Virtual Machine, default is 'java'. The command is resolved by java.lang.Runtime.exec(). (Ignored if fork is disabled.)</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default "java"</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>dir</td>
+    <td VALIGN=TOP>The directory to invoke the VM in. (Ignored if fork is disabled)</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>includeruntime</td>
+    <td VALIGN=TOP>Implicitly add the classes required to run jdepend
+    in forked mode. (Ignored if fork is disabled). Since ant 1.6.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No, default is "no".</td>
+  </tr>
+  <tr>
+    <td VALIGN=TOP>classpathref</td>
+    <td VALIGN=TOP>the classpath to use, given as reference to a PATH defined elsewhere.</td>
+    <td ALIGN=CENTER VALIGN=TOP>No</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+
+<p><code>jdepend</code> supports four nested elements:
+<code>&lt;classpath&gt;, &lt;classespath&gt; </code> and
+<code>&lt;sourcespath&gt;</code>, that represent <a
+href="../using.html#path">PATH like structures</a>, and
+<code>&lt;exclude&gt;</code>.</p>
+
+<p><code>&lt;sourcespath&gt;</code> is used to define the paths of the
+source code to analyze, but it is deprecated. With version 2.5 of
+JDepend, only class files are analyzed. The nested element
+<code>&lt;classespath&gt;</code> replaces <code>&lt;sourcespath&gt;</code> and is used to define
+the paths of compiled class code to analyze; the <code>&lt;sourcespath&gt;</code>
+variable is still available in case you are using an earlier version
+of JDepend.  The <code>&lt;exclude&gt;</code> element can be used to set packages
+to ignore (requires JDepend 2.5 or above).</p>
+
+<h3>Examples</h3>
+
+<blockquote>
+<pre>
+&lt;jdepend classpathref="base.path"&gt;
+&nbsp;&nbsp;&nbsp; &lt;classespath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="build"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/classespath&gt;
+&lt;/jdepend&gt;
+
+</pre>
+</blockquote>
+
+<p>This invokes JDepend on the <code>build</code> directory, writing
+the output on the standard output. The classpath is defined using a
+classpath reference.</p>
+
+<blockquote>
+<pre>
+&lt;jdepend outputfile="docs/jdepend.xml" fork="yes" format="xml"&gt;
+&nbsp;&nbsp;&nbsp; &lt;sourcespath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="src"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/sourcespath&gt;
+&nbsp;&nbsp;&nbsp; &lt;classpath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="classes"/&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="lib/jdepend.jar"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/classpath&gt;
+&lt;/jdepend&gt;
+</pre>
+</blockquote>
+
+<p>This invokes JDepend in a separate VM on the <code>src</code> and
+<code>testsrc</code> directories, writing the output to the
+<code>&lt;docs/jdepend.xml&gt;</code> file in xml format. The
+classpath is defined using nested elements. </p>
+
+<blockquote>
+<pre>
+&lt;jdepend classpathref="base.path"&gt;
+&nbsp;&nbsp;&nbsp; &lt;exclude name="java.*&gt;
+&nbsp;&nbsp;&nbsp; &lt;exclude name="javax.*&gt;
+&nbsp;&nbsp;&nbsp; &lt;classespath&gt;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="build"/&gt;
+&nbsp;&nbsp;&nbsp; &lt;/classespath&gt;
+&lt;/jdepend&gt;
+</pre>
+</blockquote>
+
+<p>This invokes JDepend with the build directory as the base for class
+files to analyze, and will ignore all classes in the java.* and
+javax.* packages.</p>
+
+
+</body>
+</html>
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jjdoc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jjdoc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jjdoc.html	(revision 14989)
@@ -0,0 +1,116 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JJDoc Task</title>
+</head>
+<body>
+
+<h2>
+<a NAME="jjtree"></a>JJDoc</h2>
+<p><em>Since Ant 1.6</em></p>
+<h3>Description</h3>
+
+<p>Invokes the <a href="http://javacc.dev.java.net/">JJDoc</a> preprocessor
+for the JavaCC compiler compiler. It takes a JavaCC parser specification
+and produces documentation for the BNF grammar.
+It can operate in three modes, determined by command line options.
+<p>To use the jjdoc task, set the <i>target</i> attribute to the name
+of the JavaCC grammar file to process. You also need to specify the directory
+containing the JavaCC installation using the <i>javacchome</i> attribute,
+so that ant can find the JavaCC classes. Optionally, you can also set the
+<i>outputfile</i> to write the generated BNF documentation file to a specific (directory and) file.
+Otherwise jjdoc writes the generated BNF documentation file as the JavaCC
+grammar file with a suffix .txt or .html.</p>
+<p>This task only invokes JJDoc if the grammar file is newer than the
+generated BNF documentation file.</p>
+
+<h3>Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP><b>Attribute</b></td>
+
+<td VALIGN=TOP><b>Description</b></td>
+
+<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>target</td>
+
+<td VALIGN=TOP>The javacc grammar file to process.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>javacchome</td>
+
+<td VALIGN=TOP>The directory containing the JavaCC distribution.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>outputfile</td>
+
+<td VALIGN=TOP>The file to write the generated BNF documentation file to. If not set,
+the file is written with the same name as the JavaCC grammar file but with a the suffix .html or .txt.&nbsp;</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>text</td>
+
+<td VALIGN=TOP>Sets the TEXT BNF documentation option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>onetable</td>
+
+<td VALIGN=TOP>Sets the ONE_TABLE BNF documentation option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+</table>
+
+<h3>
+Example</h3>
+
+<blockquote>
+<pre>&lt;jjdoc&nbsp;
+&nbsp;&nbsp;&nbsp; target="src/Parser.jj"&nbsp;
+&nbsp;&nbsp;&nbsp; outputfile="doc/ParserBNF.html"
+&nbsp;&nbsp;&nbsp; javacchome="c:/program files/JavaCC"&nbsp;
+/&gt;</pre>
+</blockquote>
+This invokes JJDoc on grammar file src/Parser.jj, writing the generated
+BNF documentation file, ParserBNF.html, file to doc.
+<br>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jjtree.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jjtree.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jjtree.html	(revision 14989)
@@ -0,0 +1,556 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JJTree Task</title>
+</head>
+<body>
+
+<h2>
+<a NAME="jjtree"></a>JJTree</h2>
+
+<h3>
+Description</h3>
+<p>Invokes the <a href="http://javacc.dev.java.net/">JJTree</a> preprocessor
+for the JavaCC compiler compiler. It inserts parse tree building actions
+at various places in the JavaCC source that it generates. The output of
+JJTree is run through JavaCC to create the parser.
+<p>To use the jjtree task, set the <i>target</i> attribute to the name
+of the JJTree grammar file to process. You also need to specify the directory
+containing the JavaCC installation using the <i>javacchome</i> attribute,
+so that ant can find the JavaCC classes. Optionally, you can also set the
+<i>outputdirectory</i>
+to write the generated JavaCC grammar and node files to a specific directory.
+Otherwise jjtree writes the generated JavaCC grammar and node files to the directory
+containing the JJTree grammar file. As an extra option, you can also set the
+<i>outputfile</i> to write the generated JavaCC grammar file to a specific (directory and) file.
+Otherwise jjtree writes the generated JavaCC grammar file as the JJTree
+grammar file with a suffix .jj.</p>
+<p>This task only invokes JJTree if the grammar file is newer than the
+generated JavaCC file.</p>
+
+<h3>Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP><b>Attribute</b></td>
+
+<td VALIGN=TOP><b>Description</b></td>
+
+<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>target</td>
+
+<td VALIGN=TOP>The jjtree grammar file to process.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>javacchome</td>
+
+<td VALIGN=TOP>The directory containing the JavaCC distribution.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>outputdirectory</td>
+
+<td VALIGN=TOP>The directory to write the generated JavaCC grammar and node files to.
+If not set, the files are written to the directory containing the grammar file.&nbsp;</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>outputfile</td>
+
+<td VALIGN=TOP>The file to write the generated JavaCC grammar file
+to. If not set, the file is written with the same name as the JJTree
+grammar file but with a the suffix <code>.jj</code>.  This is a
+filename relative to <em>outputdirectory</em> if specified, the
+project's basedir.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>buildnodefiles</td>
+
+<td VALIGN=TOP>Sets the BUILD_NODE_FILES grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>multi</td>
+
+<td VALIGN=TOP>Sets the MULTI grammar option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodedefaultvoid</td>
+
+<td VALIGN=TOP>Sets the NODE_DEFAULT_VOID grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodefactory</td>
+
+<td VALIGN=TOP>Sets the NODE_FACTORY grammar option. This is boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodescopehook</td>
+
+<td VALIGN=TOP>Sets the NODE_SCOPE_HOOK grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodeusesparser</td>
+
+<td VALIGN=TOP>Sets the NODE_USES_PARSER grammar option. This is a boolean
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>static</td>
+
+<td VALIGN=TOP>Sets the STATIC grammar option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>visitor</td>
+
+<td VALIGN=TOP>Sets the VISITOR grammar option. This is a boolean option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodepackage</td>
+
+<td VALIGN=TOP>Sets the NODE_PACKAGE grammar option. This is a string option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>visitorexception</td>
+
+<td VALIGN=TOP>Sets the VISITOR_EXCEPTION grammar option. This is a string
+option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP>nodeprefix</td>
+
+<td VALIGN=TOP>Sets the NODE_PREFIX grammar option. This is a string option.</td>
+
+<td ALIGN=CENTER VALIGN=TOP>No</td>
+</tr>
+</table>
+
+<h3>
+Example</h3>
+
+<blockquote>
+<pre>&lt;jjtree&nbsp;
+&nbsp;&nbsp;&nbsp; target="src/Parser.jjt"&nbsp;
+&nbsp;&nbsp;&nbsp; outputdirectory="build/src"
+&nbsp;&nbsp;&nbsp; javacchome="c:/program files/JavaCC"&nbsp;
+&nbsp;&nbsp;&nbsp; nodeusesparser="true"
+/&gt;</pre>
+</blockquote>
+This invokes JJTree on grammar file src/Parser.jjt, writing the generated
+grammar file, Parser.jj, file to build/src. The grammar option NODE_USES_PARSER
+is set to true when invoking JJTree.
+<br>
+
+<h3>Comparison output locations between command line JJTree and different Ant taskdef versions</h3>
+
+<table cellpadding="3" border="1">
+<tr>
+  <td><b>Command Line JJTree options</b>
+    <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>and Generated Files</i> (working directory: <code>/tmp</code>)</td>
+  <td><b>Ant 1.5.3</b> versus command line</td>
+  <td><b>Ant 1.6</b> versus command line</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  grammar.jjt</b>
+    /tmp/grammar.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  relative/grammar.jjt</b>
+    /tmp/grammar.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td><pre>
+/tmp/relative/grammar.jj
+/tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  /tmp/absolute/grammar.jjt</b>
+    /tmp/grammar.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td><pre>
+/tmp/absolute/grammar.jj
+/tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/grammar.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/grammar.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/grammar.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/grammar.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/grammar.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/grammar.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Same</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  grammar.jjt</b>
+    /tmp/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  relative/grammar.jjt</b>
+    /tmp/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  relative/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  relative/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj  grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Not Supported *)</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj  relative/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Not Supported *)</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj  /tmp/absolute/grammar.jjt</b>
+    /tmp/subdir/output.jj
+    /tmp/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Not Supported *)</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:relative  grammar.jjt</b>
+    /tmp/relative/tmp/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:relative  relative/grammar.jjt</b>
+    /tmp/relative/tmp/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:relative  /tmp/absolute/grammar.jjt</b>
+    /tmp/relative/tmp/subdir/output.jj
+    /tmp/relative/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  grammar.jjt</b>
+    /tmp/absolute/tmp/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  relative/grammar.jjt</b>
+    /tmp/absolute/tmp/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+<tr>
+  <td><pre><b>jjtree  -OUTPUT_FILE:/tmp/subdir/output.jj  -OUTPUT_DIRECTORY:/tmp/absolute/  /tmp/absolute/grammar.jjt</b>
+    /tmp/absolute/tmp/subdir/output.jj
+    /tmp/absolute/&lt;generated&gt;.java</pre>
+  </td>
+  <td>Not Supported</td>
+  <td>Same</td>
+</tr>
+</table>
+
+<p>*) <u>Footnote</u>: When running JJTree with the Ant taskdef <i>jjtree</i> the option <code>-OUTPUT_DIRECTORY</code> must always 
+be set, because the project's basedir and the ant working directory might differ. So even if you don't specify the jjtree taskdef 
+<i>outputdirectory</i> JJTree will be called with the <code>-OUTPUT_DIRECTORY</code> set to the project's basedirectory. 
+But when the <code>-OUTPUT_DIRECTORY</code> is set, the <code>-OUTPUT_FILE</code> setting is handled as if relative to this 
+<code>-OUTPUT_DIRECTORY</code>. Thus when the <code>-OUTPUT_FILE</code> is absolute or contains a drive letter we have a 
+problem. 
+Therefore absolute <i>outputfile</i>s (when the <i>outputdirectory</i> isn't specified) are made relative to the default directory.
+And for this reason <i>outputfile</i>s that contain a drive letter can't be supported.</p>
+
+<p>By the way: specifying a drive letter in the <code>-OUTPUT_FILE</code> when the <code>-OUTPUT_DIRECTORY</code> is set, also 
+results in strange behavior when running JJTree from the command line.</p>
+
+<br>
+
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jlink.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jlink.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jlink.html	(revision 14989)
@@ -0,0 +1,174 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JLink Task</title>
+</head>
+<body>
+
+<h2><a name="jlink">Jlink</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated. Use the zipfileset and zipgroupfileset attributes of the <a href="../CoreTasks/jar.html">Jar task</a> or <a href="../CoreTasks/zip.html">Zip task</a> instead.</i></p>
+
+<h3><b>Description:</b></h3>
+<p>Links entries from sub-builds and libraries.</p>
+
+<p>The jlink task can be used to build jar and zip files, similar to 
+the <i>jar</i> task.
+However, jlink provides options for controlling the way entries from 
+input files
+are added to the output file. Specifically, capabilities for merging 
+entries from
+multiple zip or jar files is available.</p>
+
+<p>If a mergefile is specified directly (eg. at the top level of a 
+<i>mergefiles</i>
+pathelement) <i>and</i> the mergefile ends in &quot;.zip&quot; or 
+&quot;.jar&quot;,
+entries in the mergefile will be merged into the outfile. A file with 
+any other extension
+will be added to the output file, even if it is specified in the 
+mergefiles element.
+Directories specified in either the mergefiles or addfiles element 
+are added to the
+output file as you would expect: all files in subdirectories are 
+recursively added to
+the output file with appropriate prefixes in the output file 
+(without merging).
+</p>
+
+<p>
+In the case where duplicate entries and/or files are found among the 
+files to be merged or
+added, jlink merges or adds the first entry and ignores all subsequent entries.
+</p>
+
+<p>
+jlink ignores META-INF directories in mergefiles. Users should supply their
+own manifest information for the output file.
+</p>
+
+<p>It is possible to refine the set of files that are being jlinked. 
+This can be
+done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, 
+<i>excludesfile</i>,
+and <i>defaultexcludes</i> attributes on the <i>addfiles</i> and 
+<i>mergefiles</i>
+nested elements. With the <i>includes</i> or <i>includesfile</i>
+attribute you specify the files you want to have included by using patterns.
+The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns. The patterns are
+relative to the <i>base</i> directory.</p>
+
+
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+     <td valign="top"><b>Attribute</b></td>
+     <td valign="top"><b>Description</b></td>
+     <td align="center" valign="top"><b>Required</b></td>
+   </tr>
+   <tr>
+     <td valign="top">outfile</td>
+     <td valign="top">the path of the output file.</td>
+     <td valign="top" align="center">Yes</td>
+   </tr>
+   <tr>
+     <td valign="top">compress</td>
+     <td valign="top">whether or not the output should be compressed. 
+<i>true</i>,
+                      <i>yes</i>, or <i>on</i> result in compressed output.
+                      If omitted, output will be uncompressed (inflated).</td>
+     <td valign="top" align="center">No</td>
+   </tr>
+   <tr>
+     <td valign="top">mergefiles</td>
+     <td valign="top">files to be merged into the output, if possible.</td>
+     <td valign="middle" align="center" rowspan="2">At least one of 
+mergefiles or addfiles</td>
+   </tr>
+   <tr>
+     <td valign="top">addfiles</td>
+     <td valign="top">files to be added to the output.</td>
+   </tr>
+</table>
+
+<h3>Examples</h3>
+
+<p>The following will merge the entries in mergefoo.jar and mergebar.jar 
+into out.jar.
+mac.jar and pc.jar will be added as single entries to out.jar.</p>
+<pre>
+&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
+   &lt;mergefiles&gt;
+     &lt;pathelement path=&quot;${build.dir}/mergefoo.jar&quot;/&gt;
+     &lt;pathelement path=&quot;${build.dir}/mergebar.jar&quot;/&gt;
+   &lt;/mergefiles&gt;
+   &lt;addfiles&gt;
+     &lt;pathelement path=&quot;${build.dir}/mac.jar&quot;/&gt;
+     &lt;pathelement path=&quot;${build.dir}/pc.zip&quot;/&gt;
+   &lt;/addfiles&gt;
+&lt;/jlink&gt;
+</pre>
+
+<p><b>Non-deprecated alternative to the above:</b></p>
+<pre>
+&lt;jar compress=&quot;false&quot; destfile=&quot;out.jar&quot;&gt;
+  &lt;zipgroupfileset dir=&quot;${build.dir}&quot;&gt;
+    &lt;include name=&quot;mergefoo.jar&quot;/&gt;
+    &lt;include name=&quot;mergebar.jar&quot;/&gt;
+  &lt;/zipgroupfileset&gt;
+  &lt;fileset dir=&quot;${build.dir}&quot;&gt;
+    &lt;include name=&quot;mac.jar&quot;/&gt;
+    &lt;include name=&quot;pc.jar&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/jar&gt;
+</pre>
+
+<p>Suppose the file foo.jar contains two entries: bar.class and 
+barnone/myClass.zip.
+Suppose the path for file foo.jar is build/tempbuild/foo.jar. The 
+following example
+will provide the entry tempbuild/foo.jar in the out.jar.</p>
+<pre>
+&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
+   &lt;mergefiles&gt;
+     &lt;pathelement path=&quot;build/tempbuild&quot;/&gt;
+   &lt;/mergefiles&gt;
+&lt;/jlink&gt;
+</pre>
+
+<p>However, the next example would result in two top-level entries in out.jar,
+namely bar.class and barnone/myClass.zip</p>
+<pre>
+&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
+   &lt;mergefiles&gt;
+     &lt;pathelement path=&quot;build/tempbuild/foo.jar&quot;/&gt;
+   &lt;/mergefiles&gt;
+&lt;/jlink&gt;
+</pre>
+
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jsharpc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jsharpc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jsharpc.html	(revision 14989)
@@ -0,0 +1,434 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Jsharpc
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Jsharpc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Compile J# source down to a managed .NET application. <p>For historical reasons the pattern <code>**/*.java</code> is preset as includes list and you can not override it with an explicit includes attribute.  Use nested <code>&lt;src&gt;</code> elements instead of the basedir attribute if you need more control.</p></font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Compile J# source down to a managed .NET application. <p> J# is not Java. But it is the language closest to Java in the .NET framework. This task compiles jsharp source (.java files), and generates a .NET managed exe or dll. <p>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules - note that your version of vjc may not support this option.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="21">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">baseaddress</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"></font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">purejava</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">do we want pure java (default, true) or corrupted J#?</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">securescoping</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Make package scoped code visible to the current assembly only (default: false) .NET does not have package scoping. Instead it has assembly, private and public. By default, package content is public to all.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jspc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jspc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/jspc.html	(revision 14989)
@@ -0,0 +1,302 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JSPC Task</title>
+</head>
+
+<body>
+
+<h2><a name="jspc">jspc</a></h2>
+<h3>Description</h3>
+
+<p> Ant task to run the JSP compiler and turn JSP pages into Java source.
+
+<p><b>Deprecated</b> if you use this task with Tomcat's Jasper JSP
+compiler, you should seriously consider using the task shipping with
+Tomcat instead.  This task is only tested against Tomcat 4.x. There
+are known problems with Tomcat 5.x that won't get fixed in Ant, please
+use Tomcat's jspc task instead.</p>
+
+<p>
+
+It can be used to precompile JSP pages for fast initial invocation
+of JSP pages, deployment on a server without the full JDK installed,
+or simply to syntax check the pages without deploying them.
+In most cases, a javac task is usually the next stage in the build process.
+The task does basic dependency checking to prevent unnecessary recompilation -this
+checking compares source and destination timestamps, and does not factor
+in class or taglib dependencies, or <code>&lt;jsp:include&gt;</code> references.
+
+<p>
+By default the task uses the Jasper JSP compiler. This
+means the task needs jasper.jar and jasper-runtime.jar, which come with
+builds of Tomcat 4/Catalina from the
+<a href="http://jakarta.apache.org/tomcat/">Jakarta Tomcat project</a>,
+and any other Jar files which may be needed in future versions (it changes)
+
+We recommend (in March 2003) Tomcat version 4.1.x for the most robust version
+of Jasper.
+
+<p>
+There are many limitations with this task which partially stem from the
+many versions of Jasper, others from implementation 'issues' in the task
+(i.e. nobody's willingness to radically change large bits of it to work
+around jasper). Because of this and the fact that JSP pages do not have
+to be portable across implementations -or versions of implementations-
+this task is better used for validating JSP pages before deployment,
+rather than precompiling them. For that, just deploy and run your httpunit
+junit tests after deployment to compile and test your pages, all in one
+go.
+ 
+</p>
+
+
+<h3>Parameters</h3>
+The Task has the following attributes:<p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">Where to place the generated files. They are located
+    under here according to the given package name.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">srcdir</td>
+    <td valign="top">Where to look for source jsp files.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">The verbosity integer to pass to the compiler. Default="0"</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">package</td>
+    <td valign="top">Name of the destination package for generated java
+    classes.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">class name of a JSP compiler adapter,
+    such as "jasper" or "jasper41"</td>
+    <td valign="top" align="center">No -defaults to "jasper"</td>
+  </tr>
+  <tr>
+    <td valign="top">ieplugin</td>
+    <td valign="top">Java Plugin classid for Internet Explorer.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">mapped</td>
+    <td valign="top">(boolean) Generate separate write() calls for each HTML
+    line in the JSP.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use to run the jsp compiler.
+    This can also be specified
+    by the nested element <code>classpath</code>
+    <a href="../using.html#path">Path</a>).</td>
+    <td valign="top" align="center">No, but it seems to work better when used</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">A <a href="../using.html#references">Reference</a>. As
+    per <code>classpath</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">flag to control action on compile failures: default=yes</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uribase</td>
+    <td valign="top">
+    The uri context of relative URI
+    references in the JSP pages. If it does not
+    exist then it is derived from the location of the file
+    relative to the declared or derived value of <tt>uriroot.</tt>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uriroot</td>
+    <td valign="top">
+    The root directory that uri files should be resolved
+    against.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compiler</td>
+    <td valign="top">
+    Class name of jsp compiler adapter to use.  Defaults to
+    the standard adapter for Jasper.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compilerclasspath</td>
+    <td valign="top">The classpath used to find the compiler adapter specified
+    by the <code>compiler</code> attribute.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">webinc</td>
+    <td valign="top">Output file name for the fraction of web.xml that lists servlets.</td>
+    <td valign="top" align="center">No</td>
+  </tr>    
+  <tr>
+    <td valign="top">webxml</td>
+    <td valign="top">File name for web.xml to be generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>  
+
+  </table>
+
+<P>The <tt>mapped</tt> option will, if set to true, split the JSP text content into a
+one line per call format.  There are comments above and below the mapped
+write calls to localize where in the JSP file each line of text comes
+from.  This can lead to a minor performance degradation (but it is bound
+by a linear complexity).  Without this options all adjacent writes are
+concatenated into a single write.</P>
+
+<P>The <tt>ieplugin</tt> option is used by the <tt>&lt;jsp:plugin&gt;</tt> tags.
+If the Java Plug-in COM Class-ID you want to use changes then it can be
+specified here.  This should not need to be altered.</P>
+
+<P><tt>uriroot</tt> specifies the root of the web
+application.  This is where all absolute uris will be resolved from.
+If it is not specified then the first JSP page will be used to derive
+it.  To derive it each parent directory of the first JSP page is
+searched for a <tt>WEB-INF</tt> directory, and the directory closest to
+the JSP page that has one will be used.  If none can be found then the
+directory Jasperc was called from will be used.  This only affects pages
+translated from an explicitly declared JSP file -including references
+to taglibs</P>
+
+<P><tt>uribase</tt> is used to establish the uri context of
+relative URI references in the JSP pages.  If it does not exist then it
+is derived from the location of the file relative to the declared or
+derived value of <tt>uriroot</tt>. This only affects pages
+translated from an explicitly declared JSP file.</P>
+
+<h3>Parameters specified as nested elements</h3>
+
+This task is a <a href="../dirtasks.html">directory based task</a>, like
+<strong>javac</strong>, so the jsp files to be compiled are located as java
+files are by <strong>javac</strong>. That is, elements such as <tt>includes</tt> and
+<tt>excludes</tt> can be used directly inside the task declaration.
+
+<p>
+
+Elements specific to the jspc task are:-
+
+<h4>classpath</h4>
+
+The classpath used to compile the JSP pages, specified as for any other
+classpath.
+
+<h4>classpathref</h4>
+a reference to an existing classpath
+
+<h4>webapp</h4>
+Instructions to jasper to build an entire web application.
+The base directory must have a WEB-INF subdirectory beneath it.
+When used, the task hands off all dependency checking to the compiler.
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the base directory of the web application</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Example</h3>
+<pre>
+&lt;jspc srcdir="${basedir}/src/war"
+      destdir="${basedir}/gensrc"
+      package="com.i3sp.jsp"
+      compiler="jasper41"
+      verbose="9"&gt;
+  &lt;include name="**/*.jsp"/&gt;
+&lt;/jspc&gt;
+</pre>
+Build all jsp pages under src/war into the destination /gensrc, in a
+package hierarchy beginning with com.i3sp.jsp.
+<pre>
+&lt;jspc
+      destdir="interim"
+      verbose="1"
+      srcdir="src"
+      compiler="jasper41"
+      package="com.i3sp.jsp"&gt;
+  &lt;include name="**/*.jsp"/&gt;
+&lt;/jspc&gt;
+&lt;depend
+         srcdir="interim"
+         destdir="build"
+         cache="build/dependencies"
+         classpath="lib/taglibs.jar"/&gt;
+&lt;javac
+         srcdir="interim"
+         destdir="build"
+         classpath="lib/taglibs.jar"
+         debug="on"/&gt;
+</pre>
+Generate jsp pages then javac them down to
+bytecodes. Include lib/taglib jar in the java compilation.
+ Dependency checking is used to scrub the
+java files if class dependencies indicate it is needed.
+
+<p><h4>Notes</h4>
+Using the <code>package</code> attribute it is possible to identify the resulting
+java files and thus do full dependency checking - this task should only rebuild
+java files if their jsp file has been modified. However, this only works
+with some versions of jasper. By default the checking supports tomcat 4.0.x
+with the "jasper" compiler, set the compiler to "jasper41" for the tomcat4.1.x
+dependency checking.
+Even when it does work, changes in
+.TLD imports or in compile time includes do not get picked up.
+
+<p>
+Jasper generates JSP pages against the JSP1.2 specification -a copy of
+version 2.3 of the servlet specification is needed on the classpath to
+compile the Java code.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/junit.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/junit.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/junit.html	(revision 14989)
@@ -0,0 +1,621 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JUnit Task</title>
+</head>
+<body>
+
+<h2><a name="junit">JUnit</a></h2>
+<h3>Description</h3>
+
+<p>This task runs tests from the JUnit testing framework. The latest
+version of the framework can be found at
+<a href="http://www.junit.org">http://www.junit.org</a>.
+This task has been tested with JUnit 3.0 up to JUnit 3.8.2; it won't
+work with versions prior to JUnit 3.0. It also works with JUnit 4.0, including
+"pure" JUnit 4 tests using only annotations and no <code>JUnit4TestAdapter</code>.</p>
+<p><strong>Note:</strong> This task depends on external libraries not included
+in the Ant distribution.  See <a href="../install.html#librarydependencies">
+Library Dependencies</a> for more information.
+</p>
+<p>
+<strong>Note</strong>:
+You must have <code>junit.jar</code> available.
+You can do one of:
+</p>
+<ol>
+<li>
+Put both <code>junit.jar</code> and <code>ant-junit.jar</code> in
+<code>ANT_HOME/lib</code>.
+</li>
+<li>
+Do not put either in <code>ANT_HOME/lib</code>, and instead
+include their locations in your <code>CLASSPATH</code> environment variable.
+</li>
+<li>
+Add both JARs to your classpath using <code>-lib</code>.
+</li>
+<li>
+Specify the locations of both JARs using
+a <code>&lt;classpath&gt;</code> element in a <code>&lt;taskdef&gt;</code> in the build file.
+</li>
+<li>
+Leave <code>ant-junit.jar</code> in its default location in <code>ANT_HOME/lib</code>
+but include <code>junit.jar</code> in the <code>&lt;classpath&gt;</code> passed
+to <code>&lt;junit&gt;</code>. <em>(since Ant 1.7)</em>
+</li>
+</ol>
+<p>
+See <a href="../../faq.html#delegating-classloader" target="_top">the
+FAQ</a> for details.
+</p>
+
+<p>Tests are defined by nested <code>test</code> or
+<code>batchtest</code> tags (see <a href="#nested">nested
+elements</a>).</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">printsummary</td>
+    <td valign="top">Print one-line statistics for each testcase. Can
+      take the values <code>on</code>,
+      <code>off</code>, and
+      <code>withOutAndErr</code>.
+      <code>withOutAndErr</code> is the same
+      as <code>on</code> but also includes the output of the test
+      as written to <code>System.out</code> and <code>System.err</code>.</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run the tests in a separate VM.</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">forkmode</td>
+    <td valign="top">Controls how many Java Virtual Machines get
+    created if you want to fork some tests.  Possible values are
+    &quot;perTest&quot; (the default), &quot;perBatch&quot; and
+    &quot;once&quot;.  &quot;once&quot; creates only a single Java VM
+    for all tests while &quot;perTest&quot; creates a new VM for each
+    TestCase class.  &quot;perBatch&quot; creates a VM for each nested
+    <code>&lt;batchtest&gt;</code> and one collecting all nested
+    <code>&lt;test&gt;</code>s.  Note that only tests with the same
+    settings of <code>filtertrace</code>, <code>haltonerror</code>,
+    <code>haltonfailure</code>, <code>errorproperty</code> and
+    <code>failureproperty</code> can share a VM, so even if you set
+    <code>forkmode</code> to &quot;once&quot;, Ant may have to create
+    more than a single Java VM.  This attribute is ignored for tests
+    that don't get forked into a new Java VM.  <em>since Ant 1.6.2</em></td>
+    <td align="center" valign="top">No; default is <code>perTest</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">haltonerror</td>
+    <td valign="top">Stop the build process if an error occurs during the test
+       run.</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+<tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property to set in the event of an error.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">haltonfailure</td>
+    <td valign="top">Stop the build process if a test fails (errors are
+      considered failures as well).</td>
+    <td align="center" valign="top">No; default is <code>off</code>.</td>
+  </tr>
+<tr>
+    <td valign="top">failureproperty</td>
+    <td valign="top">The name of a property to set in the event of a failure
+      (errors are considered failures as well).</td>
+    <td align="center" valign="top">No.</td>
+</tr>
+  <tr>
+    <td valign="top">filtertrace</td>
+    <td valign="top">Filter out Junit and Ant stack frames from error and failure stack traces.</td>
+    <td align="center" valign="top">No; default is <code>on</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Cancel the individual tests if they don't finish
+      in the given time (measured in milliseconds).  Ignored if
+      <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">maxmemory</td>
+    <td valign="top">Maximum amount of memory to allocate to the forked VM.
+      Ignored if <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">jvm</td>
+    <td valign="top">The command used to invoke the Java Virtual Machine,
+      default is 'java'.  The command is resolved by
+      <code>java.lang.Runtime.exec()</code>.
+      Ignored if <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No; default is <code>java</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory in which to invoke the VM. Ignored if
+      <code>fork</code> is disabled.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">newenvironment</td>
+    <td valign="top">Do not propagate the old environment when new
+      environment variables are specified. Ignored if <code>fork</code> is
+      disabled.</td>
+    <td align="center" valign="top">No; default is <code>false</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">includeantruntime</td>
+    <td valign="top">Implicitly add the Ant classes required to run
+      the tests and JUnit to the classpath in forked mode.
+      <b>Note:</b> Please read the <a
+      href="../../faq.html#junit-no-runtime-xml">Ant FAQ</a> if you
+      want to set this to <code>false</code> and use the XML formatter
+      at the same time.</td>
+    <td align="center" valign="top">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">showoutput</td>
+    <td valign="top">Send any output generated by tests to Ant's
+      logging system as well as to the formatters.  By default only the
+      formatters receive the output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputtoformatters</td>
+    <td valign="top">
+      <em>Since Ant 1.7.0.</em><br/>
+      Send any output generated by tests to the test formatters.
+      This is "true" by default.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tempdir</td>
+    <td valign="top">Where Ant should place temporary files.
+      <em>Since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No; default is the project's base
+      directory.</td>
+  </tr>
+  <tr>
+    <td valign="top">reloading</td>
+    <td valign="top">Whether or not a new classloader should be instantiated for each test case.<br>
+    Ignore if <code>fork</code> is set to true.
+      <em>Since Ant 1.6</em>.</td>
+    <td align="center" valign="top">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">clonevm</td>
+    <td valign="top">If set to true true, then all system properties
+      and the bootclasspath of the forked Java Virtual Machine will be
+      the same as those of the Java VM running Ant.  Default is
+      &quot;false&quot; (ignored if fork is disabled).
+      <em>since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>By using the <code>errorproperty</code> and <code>failureproperty</code>
+attributes, it is possible to
+perform setup work (such as starting an external server), execute the test,
+clean up, and still fail the build in the event of a failure.</p>
+
+<p>The <code>filtertrace</code> attribute condenses error and failure
+stack traces before reporting them.
+It works with both the plain and XML formatters.  It filters out any lines
+that begin with the following string patterns:<pre>
+   "junit.framework.TestCase"
+   "junit.framework.TestResult"
+   "junit.framework.TestSuite"
+   "junit.framework.Assert."
+   "junit.swingui.TestRunner"
+   "junit.awtui.TestRunner"
+   "junit.textui.TestRunner"
+   "java.lang.reflect.Method.invoke("
+   "sun.reflect."
+   "org.apache.tools.ant."</pre></p>
+
+<h3><a name="nested">Nested Elements</a></h3>
+
+<p>The <code>&lt;junit&gt;</code> task
+supports a nested <code>&lt;classpath&gt;</code>
+element that represents a <a href="../using.html#path">PATH like
+structure</a>.</p>
+
+<p>As of Ant 1.7, this classpath may be used to refer to <code>junit.jar</code>
+as well as your tests and the tested code.
+
+<h4>jvmarg</h4>
+
+<p>If <code>fork</code> is enabled, additional parameters may be passed to
+the new VM via nested <code>&lt;jvmarg&gt;</code> elements. For example:</p>
+
+<pre>
+&lt;junit fork=&quot;yes&quot;&gt;
+  &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
+  ...
+&lt;/junit&gt;
+</pre>
+
+<p>would run the test in a VM without JIT.</p>
+
+<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
+href="../using.html#arg">Command-line Arguments</a>.</p>
+
+<h4>sysproperty</h4>
+
+<p>Use nested <code>&lt;sysproperty&gt;</code> elements to specify system
+properties required by the class. These properties will be made available
+to the VM during the execution of the test (either ANT's VM or the forked VM,
+if <code>fork</code> is enabled).
+The attributes for this element are the same as for <a href="../CoreTasks/exec.html#env">environment variables</a>.</p>
+
+<pre>
+&lt;junit fork=&quot;no&quot;&gt;
+  &lt;sysproperty key=&quot;basedir&quot; value=&quot;${basedir}&quot;/&gt;
+  ...
+&lt;/junit&gt;
+</pre>
+
+<p>would run the test in ANT's VM and make the <code>basedir</code> property
+available to the test.</p>
+
+<h4>syspropertyset</h4>
+
+<p>You can specify a set of properties to be used as system properties
+with <a href="../CoreTypes/propertyset.html">syspropertyset</a>s.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>env</h4>
+
+<p>It is possible to specify environment variables to pass to the
+forked VM via nested <code>&lt;env&gt;</code> elements. For a description
+of the <code>&lt;env&gt;</code> element's attributes, see the
+description in the <a href="../CoreTasks/exec.html#env">exec</a> task.</p>
+
+<p>Settings will be ignored if <code>fork</code> is disabled.</p>
+
+<h4>bootclasspath</h4>
+
+<p>The location of bootstrap class files can be specified using this
+<a href="../using.html#path">PATH like structure</a> - will be ignored
+if <i>fork</i> is not <code>true</code> or the target VM doesn't
+support it (i.e. Java 1.1).</p>
+
+<p><em>since Ant 1.6</em>.</p>
+
+<h4>permissions</h4>
+<p>Security permissions can be revoked and granted during the execution of the 
+class via a nested <i>permissions</i> element. For more information please
+see <a href="../CoreTypes/permissions.html">permissions</a></p>
+
+<p>Settings will be ignored if fork is enabled.</p>
+
+<p><em>since Ant 1.6</em>.</p>
+ 
+<h4>assertions</h4>
+
+<p>You can control enablement of Java 1.4 assertions with an
+<a href="../CoreTypes/assertions.html"><tt>&lt;assertions&gt;</tt></a>
+subelement.</p>
+ 
+<p>Assertion statements are currently ignored in non-forked mode.</p>
+
+<p><em>since Ant 1.6.</em></p>
+
+<h4>formatter</h4>
+
+<p>The results of the tests can be printed in different
+formats. Output will always be sent to a file, unless you set the
+<code>usefile</code> attribute to <code>false</code>.
+The name of the file is determined by the
+name of the test and can be set by the <code>outfile</code> attribute
+of <code>&lt;test&gt;</code>.</p>
+
+<p>There are three predefined formatters - one prints the test results
+in XML format, the other emits plain text.  The formatter named
+<code>brief</code> will only print detailed information for testcases
+that failed, while <code>plain</code> gives a little statistics line
+for all test cases.  Custom formatters that need to implement
+<code>org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter</code>
+can be specified.</p>
+
+<p>If you use the XML formatter, it may not include the same output
+that your tests have written as some characters are illegal in XML
+documents and will be dropped.</p>
+
+<p><b>Note:</b> Please read the <a
+href="../../faq.html#junit-no-runtime-xml">Ant FAQ</a> if you want to
+set the fork attribute to <code>true</code>, the includeAntRuntime
+attribute to <code>false</code> and use the XML formatter at the same
+time.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">Use a predefined formatter (either
+      <code>xml</code>, <code>plain</code>, or <code>brief</code>).</td>
+    <td align="center" rowspan="2">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">Name of a custom formatter class.</td>
+  </tr>
+  <tr>
+    <td valign="top">extension</td>
+    <td valign="top">Extension to append to the output filename.</td>
+    <td align="center">Yes, if <code>classname</code> has been used.</td>
+  </tr>
+  <tr>
+    <td valign="top">usefile</td>
+    <td valign="top">Boolean that determines whether output should be
+      sent to a file.</td>
+    <td align="center">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only use formatter if the named property is set.</td>
+    <td align="center">No; default is <code>true</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only use formatter if the named property is <b>not</b> set.</td>
+    <td align="center">No; default is <code>true</code>.</td>
+  </tr>  
+</table>
+
+<h4>test</h4>
+
+<p>Defines a single test class.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the test class.</td>
+    <td align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run the tests in a separate VM.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">haltonerror</td>
+    <td valign="top">Stop the build process if an error occurs during the test
+       run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property to set in the event of an error.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">haltonfailure</td>
+    <td valign="top">Stop the build process if a test fails (errors are
+      considered failures as well).  Overrides value set in
+      <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">failureproperty</td>
+    <td valign="top">The name of a property to set in the event of a failure
+      (errors are considered failures as well). Overrides value set in
+      <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">filtertrace</td>
+    <td valign="top">Filter out Junit and Ant stack frames from error and failure stack
+    traces.  Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No; default is <code>on</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">Directory to write the reports to.</td>
+    <td align="center" valign="top">No; default is the current directory.</td>
+  </tr>
+  <tr>
+    <td valign="top">outfile</td>
+    <td valign="top">Base name of the test result. The full filename is
+      determined by this attribute and the extension of
+      <code>formatter</code>.</td>
+    <td align="center" valign="top">No; default is
+      <code>TEST-</code><em>name</em>, where <em>name</em> is the name of
+      the test specified in the <code>name</code> attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only run test if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only run test if the named property is <b>not</b> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>Tests can define their own formatters via nested
+<code>&lt;formatter&gt;</code> elements.</p>
+
+<h4>batchtest</h4>
+
+<p>Define a number of tests based on pattern matching.</p>
+
+<p><code>batchtest</code> collects the included <a href="../CoreTypes/resources.html">resources</a> from any number
+of nested <a
+href="../CoreTypes/resources.html#collection">Resource Collection</a>s. It then
+generates a test class name for each resource that ends in
+<code>.java</code> or <code>.class</code>.</p>
+
+<p>Any type of Resource Collection is supported as a nested element,
+prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
+supported.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">fork</td>
+    <td valign="top">Run the tests in a separate VM.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">haltonerror</td>
+    <td valign="top">Stop the build process if an error occurs during the test
+       run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">errorproperty</td>
+    <td valign="top">The name of a property to set in the event of an error.
+      Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">haltonfailure</td>
+    <td valign="top">Stop the build process if a test fails (errors are
+      considered failures as well).  Overrides value set in
+      <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+<tr>
+    <td valign="top">failureproperty</td>
+    <td valign="top">The name of a property to set in the event of a failure
+      (errors are considered failures as well). Overrides value set in
+      <code>&lt;junit&gt;</code></td>
+    <td align="center" valign="top">No</td>
+</tr>
+  <tr>
+    <td valign="top">filtertrace</td>
+    <td valign="top">Filter out Junit and Ant stack frames from error and failure stack
+    traces.  Overrides value set in <code>&lt;junit&gt;</code>.</td>
+    <td align="center" valign="top">No; default is <code>on</code>.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">Directory to write the reports to.</td>
+    <td align="center" valign="top">No; default is the current directory.</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">Only run tests if the named property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">Only run tests if the named property is <strong>not</strong> set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<p>Batchtests can define their own formatters via nested
+<code>&lt;formatter&gt;</code> elements.</p>
+
+<h3>Examples</h3>
+
+<pre>
+&lt;junit&gt;
+  &lt;test name="my.test.TestCase"/&gt;
+&lt;/junit&gt;
+</pre>
+
+<p>Runs the test defined in <code>my.test.TestCase</code> in the same
+VM. No output will be generated unless the test fails.</p>
+
+<pre>
+&lt;junit printsummary="yes" fork="yes" haltonfailure="yes"&gt;
+  &lt;formatter type="plain"/&gt;
+  &lt;test name="my.test.TestCase"/&gt;
+&lt;/junit&gt;
+</pre>
+
+<p>Runs the test defined in <code>my.test.TestCase</code> in a
+separate VM.  At the end of the test, a one-line summary will be
+printed. A detailed report of the test can be found in
+<code>TEST-my.test.TestCase.txt</code>. The build process will be
+stopped if the test fails.</p>
+
+<pre>
+&lt;junit printsummary="yes" haltonfailure="yes"&gt;
+  &lt;classpath&gt;
+    &lt;pathelement location="${build.tests}"/&gt;
+    &lt;pathelement path="${java.class.path}"/&gt;
+  &lt;/classpath&gt;
+
+  &lt;formatter type="plain"/&gt;
+
+  &lt;test name="my.test.TestCase" haltonfailure="no" outfile="result"&gt;
+    &lt;formatter type="xml"/&gt;
+  &lt;/test&gt;
+
+  &lt;batchtest fork="yes" todir="${reports.tests}"&gt;
+    &lt;fileset dir="${src.tests}"&gt;
+      &lt;include name="**/*Test*.java"/&gt;
+      &lt;exclude name="**/AllTests.java"/&gt;
+    &lt;/fileset&gt;
+  &lt;/batchtest&gt;
+&lt;/junit&gt;
+</pre>
+
+<p>Runs <code>my.test.TestCase</code> in the same VM, ignoring the
+given CLASSPATH; only a warning is printed if this test fails. In
+addition to the plain text test results, for this test a XML result
+will be output to <code>result.xml</code>.  
+Then, for each matching file in the directory defined for
+<code>${src.tests}</code> a
+test is run in a separate VM. If a test fails, the build process is
+aborted. Results are collected in files named
+<code>TEST-</code><em>name</em><code>.txt</code> and written to
+<code>${reports.tests}</code>.</p>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/junitreport.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/junitreport.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/junitreport.html	(revision 14989)
@@ -0,0 +1,189 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>JUnitReport Task</title>
+</head>
+
+<body>
+
+<h2><a name="junitreport">JUnitReport</a></h2>
+Merge the individual XML files generated by the JUnit task and eventually apply
+a stylesheet on the resulting merged document to provide a browsable report of
+the testcases results.
+<p><strong>Note:</strong> This task depends on external libraries not included in
+the Ant distribution.  See <a href="../install.html#librarydependencies">
+Library Dependencies</a> for more information.</p>
+
+<h3>Requirements</h3>
+
+<p>The task needs Apache <a
+href="http://xml.apache.org/xalan-j/">Xalan 2.4.1+ or Xalan XSLTC</a>
+(JDK 1.4 contains a version of Xalan-J 2.x while JDK 1.5 ships with a
+version of XSLTC). Starting from JDK 1.4.2-01 it ships with a bundled
+Xalan-J 2.4.1+, meaning that JDK version prior to 1.4.2-01 won't work
+out of the box. The table below summarize the compatibility status. 
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr><th>Xalan</th><th>Sun JDK Bundle</th><th>Status<th></tr> 
+<tr><td>2.4.1+</td><td>JDK 1.4.2-01+</td><td>OK</td></tr>
+<tr><td>XSLTC</td><td>JDK 1.5.x</td><td>OK</td></tr>
+<tr><td>2.x</td><td>JDK 1.4.x</td><td>DEPRECATED<br><i>Use ${ant.home}/etc/junit-frames-xalan1.xsl
+<br> Upgrade Xalan using the JDK endorsement mechanism</i></td></tr>
+</table>
+
+<p>With Ant 1.6.2 we had to decide between supporting Xalan-J 1/Xalan J 2.4.1-
+and Xalan 2.4.1+/XSLTC, since there was no way to support both couples at the same
+time.</p>
+<p>With Ant 1.7 we had to drop support Xalan-J 1, since Xalan-J 1 has not 
+available anymore for quite some time.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">The name of the XML file that will aggregate all individual
+      XML testsuite previously generated by the JUnit task.</td>
+    <td align="center" valign="top">No. Default to TESTS-TestSuites.xml</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory where should be written the file resulting
+      from the individual XML testsuite aggregation.</td>
+    <td align="center" valign="top">No. Default to current directory</td>
+  </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+<h4>fileset</h4>
+<p><code>junitreport</code> collects individual xml files generated by the JUnit
+task using the nested <a href="../CoreTypes/fileset.html"><code>&lt;FileSet&gt;</code></a>
+element.</p>
+<h4>report</h4>
+<p>Generate a browsable report based on the document created by the merge.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td width="12%" valign="top"><b>Attribute</b></td>
+    <td width="78%" valign="top"><b>Description</b></td>
+    <td width="10%" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">The format of the generated report. Must be &quot;noframes&quot;
+      or &quot;frames&quot;.</td>
+    <td align="center" valign="top">No, default to &quot;frames&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">styledir</td>
+    <td valign="top">The directory where the stylesheets are defined. They must
+      be conforming to the following conventions:
+      <ul>
+        <li>frames format: the stylesheet must be named <i>junit-frames.xsl</i>.</li>
+        <li>noframes format: the stylesheet must be named <i>junit-noframes.xsl</i>.</li>
+      </ul>
+    </td>
+    <td align="center" valign="top">No. Default to embedded stylesheets.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory where the files resulting from the
+      transformation should be written to.</td>
+    <td align="center" valign="top">No. Default to current directory</td>
+  </tr>
+</table>
+<p> Ant assumes the following concerning the <tt>frames</tt> and <tt>noframes</tt> formats :</p>
+<p>The <tt>frames</tt> format uses
+a stylesheet which is generating output <em>only</em> by redirecting.</p>
+<p>The
+<tt>noframes</tt> format does not use redirecting and generates one
+file called <tt>junit-noframes.html</tt>.</p>
+<p>Custom versions of <tt>junit-frames.xsl</tt> or <tt>junit-noframes.xsl</tt> must adhere to the above conventions.</p>
+
+<h3>Nested Element of the report tag</h3>
+<h4>param</h4>
+<em>Since Ant 1.7</em>the report tag supports nested param tags.
+These tags can pass XSL parameters to the stylesheet.
+<h3>Parameters</h3>
+<table width="60%" border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">Name of the XSL parameter</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">expression</td>
+    <td valign="top">Text value to be placed into the param.<br>
+    Was originally intended to be an XSL expression.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">The param will only passed if this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">The param will only passed unless this property is set.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+
+</table>
+<h3>Example of report</h3>
+<blockquote>
+  <pre>&lt;junitreport todir=&quot;./reports&quot;&gt;
+  &lt;fileset dir=&quot;./reports&quot;&gt;
+    &lt;include name=&quot;TEST-*.xml&quot;/&gt;
+  &lt;/fileset&gt;
+  &lt;report format=&quot;frames&quot; todir=&quot;./report/html&quot;/&gt;
+&lt;/junitreport&gt;
+</pre>
+</blockquote>
+<p>would generate a <tt>TESTS-TestSuites.xml</tt> file in the directory <tt>reports</tt> and
+generate the default framed report in the directory <tt>report/html</tt>.</p>
+<h3>Example of report with xsl params</h3>
+<blockquote>
+  <pre>
+&lt;junitreport todir="${outputdir}"&gt;
+    &lt;fileset dir="${jrdir}"&gt;
+        &lt;include name="TEST-*.xml"/&gt;
+    &lt;/fileset&gt;
+    &lt;report todir="${outputdir}/html"
+        styledir="junitreport"
+        format="frames"&gt;
+        &lt;param name="key1" expression="value1"/&gt;
+        &lt;param name="key2" expression="value2"/&gt;
+    &lt;/report&gt;
+&lt;/junitreport&gt;
+  </pre>
+  </blockquote>
+<p>This example requires a file called <tt>junitreport/junit-frames.xsl</tt>.
+    The XSL parameters key1 and key2 will be passed to the XSL transformation.</p>
+
+</body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/mimemail.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/mimemail.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/mimemail.html	(revision 14989)
@@ -0,0 +1,115 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>MimeMail Task</title>
+</head>
+
+<body>
+
+<h2><a name="mimemail">MimeMail</a></h2>
+
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the <a href="../CoreTasks/mail.html">mail</a> task instead.</i></p>
+
+<h3>Description</h3>
+<p>Sends SMTP mail with MIME attachments.
+<a href="http://java.sun.com/products/javamail/index.html">JavaMail</a>
+and <a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">Java
+Activation Framework</a> are required for this task.</p>
+<p>Multiple files can be attached using <a href="../CoreTypes/fileset.html">FileSets.</a></p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">message</td>
+    <td valign="top">The message body</td>
+    <td valign="top" align="center" rowspan="2">No, but only one of of 'message' or
+      'messageFile' may be specified.&nbsp; If not specified, a fileset must be
+      provided.</td>
+  </tr>
+  <tr>
+    <td valign="top">messageFile</td>
+    <td valign="top">A filename to read and used as the message body</td>
+  </tr>
+  <tr>
+    <td valign="top">messageMimeType</td>
+    <td valign="top">MIME type to use for 'message' or 'messageFile' when
+      attached.</td>
+    <td align="center" valign="top">No, defaults to "text/plain"</td>
+  </tr>
+  <tr>
+    <td valign="top">tolist</td>
+    <td valign="top">Comma-separated list of To: recipients</td>
+    <td valign="top" align="center" rowspan="3">Yes, at least one of 'tolist', 'cclist',
+      or 'bcclist' must be specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">cclist</td>
+    <td valign="top">Comma-separated list of CC: recipients</td>
+    <td valign="top" align="center">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">bcclist</td>
+    <td valign="top">Comma-separated list of BCC: recipients</td>
+    <td valign="top" align="center">&nbsp;</td>
+  </tr>
+  <tr>
+    <td valign="top">mailhost</td>
+    <td valign="top">Host name of the mail server.</td>
+    <td valign="top" align="center">No, default to &quot;localhost&quot;</td>
+  </tr>
+  <tr>
+    <td valign="top">subject</td>
+    <td valign="top">Email subject line.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">from</td>
+    <td valign="top">Email address of sender.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Stop the build process if an error occurs sending the
+      e-mail.</td>
+    <td valign="top" align="center">No, default to &quot;true&quot;</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<p><b>Send a single HTML file as the body of a message</b></p>
+<pre>    &lt;mimemail messageMimeType=&quot;text/html&quot; messageFile=&quot;overview-summary.html&quot;
+        tolist=&quot;you&quot; subject=&quot;JUnit Test Results: ${TODAY}&quot; from=&quot;me&quot;/&gt;</pre>
+<p><b>Sends all files in a directory as attachments</b></p>
+<pre>    &lt;mimemail message=&quot;See attached files&quot; tolist=&quot;you&quot; subject=&quot;Attachments&quot; from=&quot;me&quot;&gt;
+        &lt;fileset dir=&quot;.&quot;&gt;
+            &lt;include name=&quot;dist/*.*&quot;/&gt;
+        &lt;/fileset&gt;
+    &lt;/mimemail&gt;
+</pre>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/native2ascii.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/native2ascii.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/native2ascii.html	(revision 14989)
@@ -0,0 +1,212 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+  <head><link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Native2Ascii Task</title></head>
+  <body>
+    <h2>Native2Ascii</h2>
+
+    <h3>Description:</h3>
+
+    <p>
+      Converts files from native encodings to ASCII with escaped Unicode.
+      A common usage is to convert source files maintained in a native
+      operating system encoding, to ASCII prior to compilation.
+    </p>
+
+    <p>
+      Files in the directory <em>src</em>
+      are converted from a native encoding to ASCII.
+      By default, all files in the directory are converted.
+      However, conversion may be limited to selected files using
+      <em>includes</em> and <em>excludes</em> attributes.
+      For more information on file matching patterns,
+      see the section on
+      <a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>.
+      If no <em>encoding</em> is specified,
+      the default encoding for the JVM is used.
+      If <em>ext</em> is specified, then output files are renamed
+      to use it as a new extension.
+      More sophisticated file name translations can be achieved using a nested
+      <em><code>&lt;mapper&gt;</code></em> element. By default an
+      <a href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a> will be used.
+      If <em>dest</em> and <em>src</em> point to the same directory,
+      the <em>ext</em> attribute or a nested <em><code>&lt;mapper&gt;</code></em>
+      is required.
+    </p>
+
+    <p>
+      This task forms an implicit <a href="../CoreTypes/fileset.html">File Set</a>,
+      and supports all attributes of <code>&lt;fileset&gt;</code>
+      (<code>dir</code> becomes <code>src</code>) as well as
+      nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code>,
+      and <code>&lt;patternset&gt;</code> elements.
+    </p>
+
+    <p>It is possible to use different converters. This can be selected
+      with the <code>implementation</code> attribute.
+      <a name="implementationvalues">Here are the choices</a>:</p>
+    <ul>
+      <li>default - the default converter (kaffe or sun) for the platform.</li>
+      <li>sun (the standard converter of the JDK)</li>
+      <li>kaffe (the standard converter of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
+    </ul>
+
+    <table border="1" cellpadding="2" cellspacing="0">
+      <tr>
+        <td><b>Attribute</b></td>
+        <td><b>Description</b></td>
+        <td><b>Required</b></td>
+      </tr>
+      <tr>
+        <td>reverse</td>
+        <td>Reverse the sense of the conversion,
+          i.e. convert from ASCII to native <b>only supported by the
+            sun converter</b></td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>encoding</td>
+        <td>The native encoding the files are in
+          (default is the default encoding for the JVM)</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>src</td>
+        <td>The directory to find files in (default is <em>basedir</em>)</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>dest</td>
+        <td>The directory to output file to</td>
+        <td align="center">Yes</td>
+      </tr>
+      <tr>
+        <td>ext</td>
+        <td>File extension to use in renaming output files</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>defaultexcludes</td>
+        <td>indicates whether default excludes should be used or not
+          (&quot;yes&quot;/&quot;no&quot;).
+          Default excludes are used when omitted.
+        </td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>includes</td>
+        <td>comma- or space-separated list of patterns of files that must be
+          included. All files are included when omitted.</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>includesfile</td>
+        <td>the name of a file. Each line of this file is
+          taken to be an include pattern</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>excludes</td>
+        <td>comma- or space-separated list of patterns of files that must be excluded.
+          No files (except default excludes) are excluded when omitted.</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td>excludesfile</td>
+        <td>the name of a file. Each line of this file is
+          taken to be an exclude pattern</td>
+        <td align="center">No</td>
+      </tr>
+      <tr>
+        <td valign="top">implementation</td>
+        <td valign="top">The converter implementation to use.
+          If this attribute is not set, the default converter for the
+          current VM will be used.  (See the above <a
+          href="#implementationvalues">list</a> of valid converters.)</td>
+        <td align="center" valign="top">No</td>
+      </tr>
+    </table>
+
+<h3>Parameters specified as nested elements</h3>
+
+<h4>arg</h4>
+
+<p>You can specify additional command line arguments for the converter
+with nested <code>&lt;arg&gt;</code> elements.  These elements are
+specified like <a href="../using.html#arg">Command-line Arguments</a>
+but have an additional attribute that can be used to enable arguments
+only if a given converter implementation will be used.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td align="center" rowspan="4">See
+    <a href="../using.html#arg">Command-line Arguments</a>.</td>
+    <td align="center" rowspan="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+  </tr>
+  <tr>
+    <td valign="top">implementation</td>
+    <td>Only pass the specified argument if the chosen converter
+    implementation matches the value of this attribute.  Legal values
+    are the same as those in the above <a
+    href="#implementationvalues">list</a> of valid compilers.)</td>
+    <td align="center">No</td>
+  </tr>
+</table>
+
+    <h3>Examples</h3>
+
+    <pre>
+&lt;native2ascii encoding=&quot;EUCJIS&quot; src=&quot;srcdir&quot; dest=&quot;srcdir&quot;
+   includes=&quot;**/*.eucjis&quot; ext=&quot;.java&quot;/&gt;
+    </pre>
+
+    <p>
+      Converts all files in the directory <em>srcdir</em>
+      ending in <code>.eucjis</code> from the EUCJIS encoding to ASCII
+      and renames them to end in <code>.java</code>.
+    </p>
+
+<pre>
+&lt;native2ascii encoding=&quot;EUCJIS&quot; src=&quot;native/japanese&quot; dest=&quot;src&quot;
+   includes=&quot;**/*.java&quot;/&gt;
+</pre>
+
+    <p>
+      Converts all the files ending in <code>.java</code>
+      in the directory <em>native/japanese</em> to ASCII,
+      placing the results in the directory <em>src</em>.
+      The names of the files remain the same.
+    </p>
+  </body>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/netrexxc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/netrexxc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/netrexxc.html	(revision 14989)
@@ -0,0 +1,330 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>NetRexxC Task</title>
+</head>
+
+<body>
+
+<h2><a name="netrexxc">NetRexxC</a></h2>
+<h3>Description</h3>
+<p>Compiles a <a href="http://www2.hursley.ibm.com/netrexx" target="_top">NetRexx</a>
+source tree within the running (Ant) VM.</p>
+<p>The source and destination directory will be recursively scanned for
+NetRexx source files to compile.  Only NetRexx files that have no corresponding
+class file or where the class file is older than the java file will be compiled.</p>
+<p>Files in the source tree are copied to the destination directory,
+allowing support files to be located properly in the classpath. The source
+files are copied because the NetRexx compiler cannot produce class files in a
+specific directory via parameters</p>
+<p>The directory structure of the source tree should follow the package
+hierarchy.</p>
+<p>It is possible to refine the set of files that are being compiled/copied.
+This can be done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and
+<i>defaultexcludes</i> attributes. With the <i>includes</i> or <i>includesfile</i> attribute you
+specify the files you want to have included by using patterns. The
+<i>exclude</i> or <i>excludesfile</i> attribute is used to specify the files you want to have
+excluded.  This is also done with patterns.  And finally with the
+<i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<p>All properties except classpath, srcdir and destDir are also available as properties in the form
+<code>ant.netrexxc.<i>attributename</i></code>, eg.<br>
+<code>&lt;property name="ant.netrexxc.verbose" value="noverbose"/&gt;</code><br>
+or from the command line as<br>
+<code>ant -Dant.netrexxc.verbose=noverbose ...</code>
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">binary</td>
+    <td valign="top">Whether literals are treated as the java binary
+      type rather than the NetRexx types</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to use during compilation</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">comments</td>
+    <td valign="top">Whether comments are passed through to the
+      generated java source</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compact</td>
+    <td valign="top">Whether error messages come out in compact or
+      verbose format. Default is the compact format.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">compile</td>
+    <td valign="top">Whether the NetRexx compiler should compile the
+      generated java code</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">console</td>
+    <td valign="top">Whether or not messages should be displayed on the
+      'console'</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">crossref</td>
+    <td valign="top">Whether variable cross references are generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">decimal</td>
+    <td valign="top">Whether decimal arithmetic should be used for the
+      NetRexx code</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">destDir</td>
+    <td valign="top">the destination directory into which the NetRexx
+      source files should be copied and then compiled</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">diag</td>
+    <td valign="top">Whether diagnostic information about the compile is
+      generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">explicit</td>
+    <td valign="top">Whether variables must be declared explicitly
+      before use</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">format</td>
+    <td valign="top">Whether the generated java code is formatted nicely
+      or left to match NetRexx line numbers for call stack debugging</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">java</td>
+    <td valign="top">Whether the generated java code is produced</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">keep</td>
+    <td valign="top">Sets whether the generated java source file should be kept
+      after compilation. The generated files will have an extension of
+      .java.keep, <b>not</b> .java</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">logo</td>
+    <td valign="top">Whether the compiler text logo is displayed when
+      compiling</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">Whether the generated .java file should be replaced
+      when compiling</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">savelog</td>
+    <td valign="top">Whether the compiler messages will be written to
+      NetRexxC.log as well as to the console</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">sourcedir</td>
+    <td valign="top">Tells the NetRexx compiler to store the class files in the
+      same directory as the source files. The alternative is the working
+      directory</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">Set the source dir to find the source NetRexx
+      files</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">strictargs</td>
+    <td valign="top">Tells the NetRexx compiler that method calls always
+      need parentheses, even if no arguments are needed, e.g.
+      <code>aStringVar.getBytes</code> vs.
+      <code>aStringVar.getBytes()</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictassign</td>
+    <td valign="top">Tells the NetRexx compile that assignments must
+      match exactly on type</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictcase</td>
+    <td valign="top">Specifies whether the NetRexx compiler should be
+      case sensitive or not</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictimport</td>
+    <td valign="top">Whether classes need to be imported explicitly using an
+      <code>import</code> statement.  By default the NetRexx compiler will
+      import certain packages automatically</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictprops</td>
+    <td valign="top">Whether local properties need to be qualified
+      explicitly using <code>this</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">strictsignal</td>
+    <td valign="top">Whether the compiler should force catching of
+      exceptions by explicitly named types</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">symbols</td>
+    <td valign="top">Whether debug symbols should be generated into the
+      class file</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">time</td>
+    <td valign="top">Asks the NetRexx compiler to print compilation
+      times to the console</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">trace</td>
+    <td valign="top">Turns on or off tracing and directs the resultant
+      trace output</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">utf8</td>
+    <td valign="top">Tells the NetRexx compiler that the source is in UTF8</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Whether lots of warnings and error messages should
+      be generated</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressMethodArgumentNotUsed</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Method argument not used&amp; messages in strictargs mode.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressPrivatePropertyNotUsed</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Private Property defined, but not used&amp; messages in strictargs mode.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressVariableNotUsed</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Variable set but not used&amp; messages in strictargs mode.
+      Please be careful with this one, as you can hide errors behind it!</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressExceptionNotSignalled</td>
+    <td valign="top">Tells whether we should filter out the
+      &amp;Exception is declared, but not signaled within the method&amp;
+      messages in strictsignal mode.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">suppressDeprecation</td>
+    <td valign="top">Tells whether we should filter out any deprecation-messages
+      of the compiler out.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;netrexxc srcDir=&quot;/source/project&quot;
+           includes=&quot;vnr/util/*&quot;
+           destDir=&quot;/source/project/build&quot;
+           classpath=&quot;/source/project2/proj.jar&quot;
+           comments=&quot;true&quot;
+           crossref=&quot;false&quot; replace=&quot;true&quot;
+           keep=&quot;true&quot;/&gt;</code>
+  </p>
+</blockquote>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/perforce.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/perforce.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/perforce.html	(revision 14989)
@@ -0,0 +1,1006 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Perforce Tasks</title>
+</head>
+<body>
+<h1>Perforce Tasks User Manual</h1>
+<p>by</p>
+<ul>
+    <li>Les Hughes (<a href="mailto:leslie.hughes@rubus.com">leslie.hughes@rubus.com</a>)</li>
+    <li>Kirk Wylie (<a href="mailto:kirk@radik.com">kirk@radik.com</a>)</li>
+    <li>Matt Bishop (<a href="mailto:matt@thebishops.org">matt@thebishops.org</a>)</li>
+    <li>Antoine Levy-Lambert</li>
+</ul>
+<hr>
+<h2>Contents</h2>
+<ul>
+    <li><a href="#intro">Introduction</a></li>
+    <li><a href="#tasks">The Tasks</a></li>
+    <li><a href="#changes">Change History</a></li>
+</ul>
+<br>
+<h2><a name="intro">Introduction</a></h2>
+<p>These tasks provide an interface to the <a href="http://www.perforce.com" target="_top">Perforce</a> SCM.
+The <code>org.apache.tools.ant.taskdefs.optional.perforce</code> package consists of a simple framework to support 
+p4 functionality as well as some Ant tasks encapsulating frequently used (by me :-) p4 commands. 
+However, the addition of new p4 commands is a pretty simple task (see the source). 
+Although it is possible to use these commands on the desktop, 
+they were primarily intended to be used by automated build systems.</p>
+
+<p><b>Note:</b> These tasks require the <a href="http://jakarta.apache.org/oro" target="_top">oro</a> regular
+expression package. See <a href="../install.html#librarydependencies">library dependencies</a> for the precise
+version required.
+You will also need the Perforce client executable (p4 or p4.exe but not p4win.exe) in your path.
+</p>
+
+
+
+<h2><a name="tasks">The Tasks</a></h2>
+
+<table border="0" cellspacing="0" cellpadding="3">
+    <tr>
+      <td><b>Task</b></td>
+      <td><b>Description</b></td>
+    </tr>
+    <tr>
+        <td><a href="#p4sync">P4Sync</a></td>
+        <td>Synchronise a workspace to a depot</td>
+    </tr>
+    <tr>
+        <td><a href="#p4change">P4Change</a></td>
+        <td>Request a new changelist from the Perforce server</td>
+    </tr>
+    <tr>
+        <td><a href="#p4edit">P4Edit</a></td>
+        <td>Open files for edit (checkout)</td>
+    </tr>
+    <tr>
+        <td><a href="#p4submit">P4Submit</a></td>
+        <td>Submit a changelist to the Perforce server (checkin)</td>
+    </tr>
+    <tr>
+        <td><a href="#p4have">P4Have</a></td>
+        <td>List current files in client view, useful for reporting</td>
+    </tr>
+    <tr>
+        <td><a href="#p4label">P4Label</a></td>
+        <td>Create a label reflecting files in the current workspace</td>
+    </tr>
+    <tr>
+        <td><a href="#p4labelsync">P4Labelsync</a></td>
+        <td>Syncs an existing label</td>
+    </tr>
+    <tr>
+        <td><a href="#p4counter">P4Counter</a></td>
+        <td>Obtain or set the value of a counter</td>
+    </tr>
+	    <tr>
+        <td><a href="#p4reopen">P4Reopen</a></td>
+        <td>Move files between changelists</td>
+    </tr>
+
+	    <tr>
+        <td><a href="#p4revert">P4Revert</a></td>
+        <td>Revert files</td>
+    </tr>
+	    
+    <tr>
+        <td><a href="#p4add">P4Add</a></td>
+        <td>Add files</td>
+    </tr>
+    <tr>
+      <td><a href="#p4delete">P4Delete</a></td>
+      <td>Delete files</td>
+    </tr>
+    <tr>
+      <td><a href="#p4integrate">P4Integrate</a></td>
+      <td>Integrate files</td>
+    </tr>
+    <tr>
+      <td><a href="#p4resolve">P4Resolve</a></td>
+      <td>Resolve files</td>
+    </tr>
+    <tr>
+        <td><a href="#p4fstat">P4Fstat</a></td>
+        <td>Show differences between local repository and p4 repository</td>
+    </tr>
+</table>
+
+<h3>General P4 Properties</h3>
+<p>Each p4 task requires a number of settings, either through build-wide properties, individual attributes 
+or environment variables. These are
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Property</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Env Var</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Default</b></td>
+  </tr>
+  <tr>
+    <td valign="top">p4.port</td>
+    <td valign="top">port</td>
+    <td valign="top">P4PORT</td>
+    <td valign="top">The p4d server and port to connect to</td>
+    <td valign="top">perforce:1666</td>
+  </tr>
+  <tr>
+    <td valign="top">p4.client</td>
+    <td valign="top">client</td>
+    <td valign="top">P4CLIENT</td>
+    <td valign="top">The p4 client spec to use</td>
+    <td valign="top">The logged in username</td>
+  </tr>
+  <tr>
+    <td valign="top">p4.user</td>
+    <td valign="top">user</td>
+    <td valign="top">P4USER</td>
+    <td valign="top">The p4 username</td>
+    <td valign="top">The logged in username</td>
+  </tr>
+<tr>
+    <td valign="top" align="center">--</td>
+    <td valign="top">view</td>
+    <td valign="top" align="center">--</td>
+    <td valign="top">The client, branch or label view to operate upon. See the p4 user guide for more info.</td>
+    <td valign="top">//...</td>
+  </tr>
+
+</table>
+<p> Your local installation of Perforce may require other settings (e.g.
+P4PASSWD, P4CONFIG). Many of these settings can be set using the globalopts
+attribute (described below), but not all. If a setting cannot be set
+by the command-line options, then it can only be set outside of Ant as an 
+environment variable.
+</p>
+<p>
+Additionally, you may also specify the following attributes:
+</p>
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td valign="top"><b>Attribute</b></td>
+  <td valign="top"><b>Description</b></td>
+  <td align="center" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">Specifies whether to stop the build
+     (<code>true</code>|<code>yes</code>|<code>on</code>)
+     or keep going (<code>false</code>|<code>no</code>|<code>off</code>)
+     if an error is returned from the p4 command.</td>
+    <td valign="top">No; defaults to true.</td>
+  </tr>
+  <tr>
+      <td valign="top">globalopts<br></td>
+      <td valign="top">Specifies global options for perforce to use while
+      executing the task. These properties should be concatenated into one
+      string,<br>
+      such as "-P <i>password</i> -C EUCJIS". Use the command-line option
+      syntax, NOT the environment variable names. See the<br>
+      Perforce Command Reference for details.</td>
+      <td valign="top">No<br></td>
+  </tr>
+</table>
+</p>
+
+<h3>Examples</h3>
+<p>Setting in the environment:-</p>
+<p>
+(Unix csh)</p>
+<pre>setenv P4PORT myperforcebox:1666</pre>
+<p>(Unix sh et al)</p>
+<pre>P4USER=myp4userid; export P4USER</pre>
+<p>Using build properties:-</p>
+<pre>&lt;property name=&quot;p4.client&quot; value=&quot;nightlybuild&quot;/&gt;</pre>
+<p>Using task attributes:-</p>
+<pre>
+&lt;p4Whatever
+	port=&quot;myserver:1666&quot;
+	client=&quot;smoketest&quot;
+	user=&quot;smoketestdude&quot;
+	.
+	.
+	.
+/&gt;
+</pre>
+
+<p>
+For more information regarding the underlying 'p4' commands you are referred to the Perforce Command Reference
+available from the <a href="http://www.perforce.com/" target="_top">Perforce website</a>.
+</p>
+
+
+<hr>
+<h2>Task Descriptions</h2>
+<h2><a name="p4sync">P4Sync</a></h2>
+<h3>Description:</h3>
+<p>Synchronize the current workspace with the depot.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">force a refresh of files, if this attribute has
+    been set.</td>
+    <td valign="top" align="center">no - if omitted, it will be off,
+    otherwise a refresh will be forced.</td>
+  </tr>
+<tr>
+    <td valign="top">label</td>
+    <td valign="top">sync client to label</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4sync label=&quot;nightlybuild-0.0123&quot; force=&quot;foo&quot;/&gt;
+&lt;p4sync view=&quot;//depot/projects/projectfoo/main/src/...&quot;/&gt;
+</pre>
+<hr>
+
+
+
+<h2><a name="p4change">P4Change</a></h2>
+<h3>Description:</h3>
+<p>Request a new changelist from the Perforce server. 
+This task sets the ${p4.change} property which can then be passed to <A HREF="#p4submit">P4Submit</A>,
+<A HREF="#p4edit">P4Edit</A>, or <a HREF="#p4add">P4Add</A>, or <a HREF="#p4delete">P4Delete</A>,
+then to <A HREF="#p4submit">P4Submit</A>.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">Description for ChangeList. If none specified, it will
+                     default to "AutoSubmit By Ant"</td>
+    <td valign="top" align="center">No.</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4change description="Change Build Number in Script"&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4edit">P4Edit</a></h2>
+<h3>Description:</h3>
+<p>Open file(s) for edit. P4Change should be used to obtain a new changelist for P4Edit as,
+although P4Edit can open files to the default change,  P4Submit cannot yet submit it.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">The filespec to request to edit</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">An existing changelist number to assign files to.</td>
+    <td valign="top" align="center">No, but see above.</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+<pre>
+&lt;p4edit
+    view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4submit">P4Submit</a></h2>
+<h3>Description:</h3>
+<p>Submit a changelist, usually obtained from P4Change.
+<p>P4Submit will also change the value of the property p4.change if the change list is renamed by the Perforce server.
+<p>P4Submit will set a property p4.needsresolve to 1 if the change could not be submitted due to files needing resolving.
+<p>Files will need resolve if at the time of checking in, the revision that was checked out to do the current edit
+is not the latest any more.
+<p>If no files need resolve, the p4.needsresolve will be set to 0.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">The changelist number to submit</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">changeproperty</td>
+    <td valign="top">Name of a property to which the new change number
+    will be assigned if the Perforce server renumbers the change<br>
+    Since ant 1.6.1</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">needsresolveproperty</td>
+    <td valign="top">Name of property which will be set to <code>true</code>
+    if the submit requires a resolve<br>
+    Since ant 1.6.1</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4submit change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4have">P4Have</a></h2>
+<h3>Description:</h3>
+<p>List handy file info reflecting the current client contents.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">None</td>
+    <td valign="top" align="center">--</td>
+    <td valign="top" align="center">--</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<pre>&lt;p4have/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4label">P4Label</a></h2>
+<h3>Description:</h3>
+<p>Create a new label and set contents to reflect current client file revisions.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the label</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">client view to use for label<br>
+    The view can contain multiple lines separated by ; or :</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">desc</td>
+    <td valign="top">Label Description</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">lock</td>
+    <td valign="top">Lock the label once created.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+
+
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;p4label
+	name=&quot;NightlyBuild:${DSTAMP}:${TSTAMP}&quot; 
+	desc=&quot;Auto Nightly Build&quot;
+	lock=&quot;locked&quot;
+	view=&quot;//firstdepot/...;//secondepot/foo/bar/...&quot;
+/&gt;
+</pre>
+<hr>
+
+
+<h2><a name="p4labelsync">P4Labelsync</a></h2>
+<h3>Description:</h3>
+<p>Syncs an existing label against the current workspace or against specified revisions.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Perforce command line flag</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the label</td>
+    <td valign="center" align="center">Yes</td>
+    <td valign="top" align="center">-l labelname</td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">
+    list of files or revision specs separated by : or ;<br>
+    in the absence of this attribute, the labelsync will be done against the current Perforce client or the value of the p4client attribute or the value of the p4.client property or the value of the environment variable P4CLIENT</td>
+    <td valign="center" align="center">No</td>
+    <td valign="center" align="center">file[revRange] ... </td>
+  </tr>
+  <tr>
+    <td valign="top">simulationmode</td>
+    <td valign="top">Displays which effect the operation would have on the label but do not actually do it</td>
+    <td valign="center" align="center">No</td>
+    <td valign="top" align="center">-n</td>
+  </tr>
+  <tr>
+    <td valign="top">add</td>
+    <td valign="top">If set to true, preserve files which exist in the label, but not in the current view</td>
+    <td valign="center" align="center">No</td>
+    <td valign="top" align="center">-a</td>
+  </tr>
+  <tr>
+    <td valign="top">delete</td>
+    <td valign="top">If set to true, remove from the label the files mentioned in the view attribute</td>
+    <td valign="center" align="center">No</td>
+    <td valign="top" align="center">-d</td>
+  </tr>
+
+
+</table>
+<h3>Examples</h3>
+<pre>
+&lt;
+p4labelsync
+name=&quot;current_release&quot;
+view="//depot/...#head;//depot2/file1#25"
+add=&quot;true&quot;
+/&gt;
+</pre>
+This example will add into the label called <i>current_release</i> the current head revision of all the files located under <i>//depot</i>
+and the revision 25 of the file <i>//depot2/file1</i>.
+<pre>
+&lt;
+p4labelsync
+name=&quot;current_release&quot;
+p4client=&quot;myclient&quot;
+/&gt;
+</pre>
+This example will update the label called <i>current_release</i> so that it reflects the Perforce client <i>myclient</i>.<br>
+Files present in the label before the sync and not present currently in the client will be removed from the label, because the add attribute is not set.
+<pre>
+&lt;
+p4labelsync
+name=&quot;current_release&quot;
+/&gt;
+</pre>
+This example will update the label called <i>current_release</i> so that it reflects the current default client for the ant Perforce tasks.<br>
+The default client is by order of priority :
+<ul>
+<li>
+the value of the p4.client property if set in the project
+</li>
+<li>
+the value of the P4CLIENT environment variable
+</li>
+<li>
+the default Perforce client from the Windows registry under Windows operating systems
+</li>
+</ul>
+Files present in the label before the sync and not present currently in the client will be removed from the label, because the add attribute is not set.
+<hr>
+
+
+<h2><a name="p4counter">P4Counter</a></h2>
+<h3>Description:</h3>
+<p>
+Obtain or set the value of a counter. When used in its base form
+(where only the counter name is provided), the counter value will be
+printed to the output stream. When the value is provided, the counter
+will be set to the value provided. When a property name is provided,
+the property will be filled with the value of the counter. You may
+not specify to both get and set the value of the counter in the same
+Task.
+</p>
+<P>
+The user performing this task must have Perforce &quot;review&quot; permissions
+as defined by Perforce protections in order for this task to succeed.
+</P>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the counter</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The new value for the counter</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">property</td>
+    <td valign="top">The property to be set with the value of the counter</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+Print the value of the counter named &quot;last-clean-build&quot; to the output stream:
+<pre>
+&lt;p4counter name=&quot;last-clean-build&quot;/&gt;
+</PRE>
+Set the value of the counter based on the value of the &quot;TSTAMP&quot; property:
+<PRE>
+&lt;p4counter name=&quot;last-clean-build&quot; value=&quot;${TSTAMP}&quot;/&gt;
+</PRE>
+Set the value of the &quot;p4.last.clean.build&quot; property to the current
+value of the &quot;last-clean-build&quot; counter:
+<PRE>
+&lt;p4counter name=&quot;last-clean-build&quot; property=&quot;p4.last.clean.build&quot;/&gt;
+</pre>
+<hr>
+
+
+
+
+<h2><a name="p4reopen">P4Reopen</a></h2>
+<h3>Description:</h3>
+<p>
+Move (or reopen in Perforce speak) checkout files between changelists.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">tochange</td>
+    <td valign="top">The changelist to move files to.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+Move all open files to the default changelist
+<pre>
+&lt;p4reopen view=&quot;//...&quot; tochange=&quot;default&quot;/&gt;
+</PRE>
+Create a new changelist then reopen into it, any files from the view //projects/foo/main/...
+<PRE>
+&lt;p4change description="Move files out of the way"/&gt;
+&lt;p4reopen view=&quot;//projects/foo/main/...&quot; tochange=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+
+
+<h2><a name="p4revert">P4Revert</a></h2>
+<h3>Description:</h3>
+<p>
+Reverts files.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">The changelist to revert.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">revertOnlyUnchanged</td>
+    <td valign="top">Revert only unchanged files (p4 revert -a)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  
+</table>
+
+<h3>Examples</h3>
+Revert everything!
+<pre>
+&lt;p4revert view=&quot;//...&quot;/&gt;
+</PRE>
+Revert any unchanged files in the default change
+<PRE>
+&lt;p4revert change="default" revertonlyunchanged=&quot;true&quot;/&gt;
+</pre>
+<hr>
+
+<h2><a name="p4add">P4Add</a></h2>
+<h3>Description:</h3>
+<p>
+Adds files specified in nested fileset children.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">commandlength</td>
+    <td valign="top">A positive integer specifying the maximum length
+        of the commandline when calling Perforce to add the files. 
+        Defaults to 450, higher values mean faster execution,
+        but also possible failures.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">changelist</td>
+    <td valign="top">If specified the open files are associated with the
+specified pending changelist number; otherwise the open files are
+associated with the default changelist.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  
+</table>
+
+<h3>Examples</h3>
+Require a changelist, add all java files starting from a directory,
+and submit
+
+<pre>
+&lt;p4change/&gt;
+&lt;p4add commandlength=&quot;20000&quot; changelist=&quot;${p4.change}&quot;&gt;
+    &lt;fileset dir=&quot;../dir/src/&quot; includes=&quot;**/*.java&quot;/&gt;
+&lt;p4add&gt;
+&lt;p4submit change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+
+<h2><a name="p4fstat">P4Fstat</a></h2>
+<h3>Description:</h3>
+<p>
+Lists files under Perforce control and files not under Perforce control in one or several filesets
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">showfilter</td>
+    <td valign="top">should be one of
+      <table border="1">
+        <tr><td>value</td><td>description</td></tr>
+        <tr><td>&quot;all&quot;</td><td>list all files, first the ones which are under Perforce control, then the others</td></tr>
+        <tr><td>&quot;existing&quot;</td><td>list only files under Perforce control</td></tr>
+        <tr><td>&quot;non-existing&quot;</td><td>list only files which are not under Perforce control</td></tr></table>
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">fileset</td>
+    <td valign="top">one or several <a href="../CoreTypes/fileset.html">fileset(s)</a></td>
+    <td valign="top" align="center">yes (at least one fileset is needed)</td>
+  </tr>
+</table>
+Several nested filesets can be used with P4Fstat, one should be there at least.
+<h3>Examples</h3>
+will list all the files under C:\dev\gnu\depot, sorted by under Perforce or not under Perforce<br>
+<pre>
+&lt;project name=&quot;p4fstat&quot; default=&quot;p4fstat&quot; basedir=&quot;C:\dev\gnu&quot;&gt;
+    &lt;target name=&quot;p4fstat&quot; &gt;
+        &lt;p4fstat showfilter=&quot;all&quot;&gt;
+            &lt;fileset dir=&quot;depot&quot; includes=&quot;**/*&quot;/&gt;
+        &lt;/p4fstat&gt;
+    &lt;/target&gt;
+&lt;/project&gt;</p>
+</pre>
+
+
+
+
+<h2><a name="p4delete">P4Delete</a></h2>
+<h3>Description:</h3>
+<p>Open file(s) for delete. P4Change should be used to obtain a new changelist for P4Delete as,
+although P4Delete can open files to the default change,  P4Submit cannot yet submit it.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">The filespec to request to delete</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">An existing changelist number to assign files to.</td>
+    <td valign="top" align="center">No, but see above.</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+<pre>
+&lt;p4delete
+    view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+<h2><a name="p4integrate">P4Integrate</a></h2>
+<h3>Description:</h3>
+<p>Open file(s) for integrate. P4Change should be used to obtain a new changelist for P4Integrate as,
+although P4Integrate can open files to the default change,  P4Submit cannot yet submit it.
+</p>
+<h3>Parameters</h3>
+<p>If this task is used without using a branch definition, both fromfile and tofile must be supplied.
+If a branch definition is supplied, at least one of fromfile or tofile should be supplied.
+Both fromfile and tofile can be supplied together with a branch definition.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Perforce command line flag</b></td>
+  </tr>
+  <tr>
+    <td valign="top">fromfile</td>
+    <td valign="top">Original file or view</td>
+    <td valign="top" align="center">required if a branch is not specified</td>
+    <td valign="top" align="center"></td>
+  </tr>
+  <tr>
+    <td valign="top">tofile</td>
+    <td valign="top">Target file or view.</td>
+    <td valign="top" align="center">required if a branch is not specified</td>
+    <td valign="top" align="center"></td>
+  </tr>
+  <tr>
+    <td valign="top">branch</td>
+    <td valign="top">Name of branch specification</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-b</td>
+  </tr>
+  <tr>
+    <td valign="top">change</td>
+    <td valign="top">An existing changelist number to assign files to.</td>
+    <td valign="top" align="center">No, but see above.</td>
+    <td valign="top" align="center">-c</td>
+  </tr>
+  <tr>
+    <td valign="top">forceintegrate</td>
+    <td valign="top">Forces integration regardless of previous integration history (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-f</td>
+  </tr>
+  <tr>
+    <td valign="top">restoredeletedrevisions</td>
+    <td valign="top">Enables integration around deleted revisions (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-d</td>
+  </tr>
+  <tr>
+    <td valign="top">leavetargetrevision</td>
+    <td valign="top">Prevents target files from being synced to head revision before integration (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-h</td>
+  </tr>
+  <tr>
+    <td valign="top">enablebaselessmerges</td>
+    <td valign="top">Forces integration to existing target files which have no integration history relative to the source files (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-i</td>
+  </tr>
+  <tr>
+    <td valign="top">simulationmode</td>
+    <td valign="top">Displays which integrations are necessary but do not actually schedule them (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-n</td>
+  </tr>
+  <tr>
+    <td valign="top">reversebranchmappings</td>
+    <td valign="top">Reverses mappings in the branch view, with source and target files exchanging place (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-r</td>
+  </tr>
+  <tr>
+    <td valign="top">propagatesourcefiletype</td>
+    <td valign="top">Makes source file type propagate to existing target files (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-t</td>
+  </tr>
+  <tr>
+    <td valign="top">nocopytargetfiles</td>
+    <td valign="top">Prevents the physical delivery on disk of new target files (*)</td>
+    <td valign="center">No</td>
+    <td valign="top" align="center">-v</td>
+  </tr>
+</table>
+<br>
+(*) The following applies for a number of flags. The default is false. To set the flag, use  &quot;true&quot;
+
+<h3>Examples</h3>
+<pre>
+&lt;p4integrate
+    fromfile=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    tofile=&quot;//depot/projects/projectfoo/release/src/Blah.java...&quot;
+    change=&quot;${p4.change}&quot;/&gt;
+</pre>
+<hr>
+<h2><a name="p4resolve">P4Resolve</a></h2>
+<h3>Description:</h3>
+<p>Resolves files. You want to do this if :
+<ul>
+<li>
+there have been or there may be concurrent edits of the same file. For instance, you have begun to edit a file, and while you were working on it, somebody has submitted a new version  of the same file. When you first attempt to submit your file(s), you will get a message (property p4.needsresolve set).
+</li>
+<li>
+you have just been doing an integration to existing target files
+</li>
+</ul>
+P4Resolve does not use a change list number (it takes it from the files it is working on).
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Perforce command line flag</b></td>
+  </tr>
+  <tr>
+    <td valign="top">view</td>
+    <td valign="top">The filespec to request to delete</td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center"></td>
+   </tr>
+  <tr>
+    <td valign="top">resolvemode</td>
+    <td valign="top">Should have one of these values :
+      <ul>
+        <li>&quot;automatic&quot;</li>
+        <li>&quot;force&quot;</li>
+        <li>&quot;safe&quot;</li>
+        <li>&quot;theirs&quot;</li>
+        <li>&quot;yours&quot;</li>
+      </ul></td>
+    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">corresponds to one of -am -af -as -at -ay </td>
+  </tr>
+  <tr>
+    <td valign="top">redoall</td>
+    <td valign="top">allows previously resolved files to be resolved again (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-f</td>
+  </tr>
+  <tr>
+    <td valign="top">simulationmode</td>
+    <td valign="top">Lists the integrations which would be performed, without actually doing them. (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-n</td>
+  </tr>
+  <tr>
+    <td valign="top">forcetextmode</td>
+    <td valign="top">Attempts a textual merge, even for binary files (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-t</td>
+  </tr>
+  <tr>
+    <td valign="top">markersforall</td>
+    <td valign="top">Puts in markers for all changes, conflicting or not (*)</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">-v</td>
+  </tr>
+</table>
+<br>
+(*) The following applies for a number of flags. The default is false. To set the flag, use  &quot;true&quot;
+
+<h3>Examples</h3>
+<pre>
+&lt;p4resolve
+    view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
+    resolvemode=&quot;automatic&quot;/&gt;
+</pre>
+
+<h2><a name="changes">Change History</a></h2>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+    <td valign="top">Sept 2000</td>
+    <td valign="top" align="center">--</td>
+    <td valign="top">Internal Release within Rubus</td>
+</tr>
+
+<tr>
+    <td valign="top">Nov 2000</td>
+    <td valign="top">V1.0</td>
+    <td valign="top">Initial Release donated to ASF :-)</td>
+</tr>
+<tr>
+    <td valign="top">Jan 2001</td>
+    <td valign="top">V1.1</td>
+    <td valign="top">Fixed cross platform (NT/Unix) bug<br>
+    Refactored p4 output handling code<br>
+    Refactored exec'ing code</td>    
+</tr>
+<tr>
+    <td valign="top">Jan 2003</td>
+    <td valign="top">V1.2</td>
+    <td valign="top">Added globalopts to P4Base to allow 
+                     additional global options to be set.<br>
+                     Added p4fstat task</td>
+</tr>
+<tr>
+    <td valign="top">May 2003</td>
+    <td valign="top">V1.3</td>
+    <td valign="top">Added p4labelsync, p4resolve, p4integrate.<br>
+                     Changed p4submit (detection of changes of change numbers,
+                     and of failed submits due to resolution needed)</td>
+</tr>
+<tr>
+    <td valign="top">Jan 2004</td>
+    <td valign="top">ant 1.6.1</td>
+    <td valign="top">
+Changed p4submit, needsresolveproperty and changeproperty added</td>
+</tr>
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/propertyfile.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/propertyfile.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/propertyfile.html	(revision 14989)
@@ -0,0 +1,206 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PropertyFile Task</title>
+</head>
+
+<body>
+
+<h1>PropertyFile</h1>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Thomas Christen (<a href="mailto:chr@active.ch">chr@active.ch</a>)</li>
+  <li>Jeremy Mawson (<a href="mailto:jem@loftinspace.com.au">jem@loftinspace.com/au</a>)</li>
+</ul>
+
+<hr>
+<h2>Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#proptask">PropertyFile Task</a></li>
+  <li><a href="#entryElement">Entry Task</a></li>
+</ul>
+
+<hr>
+<h2><a name="introduction">Introduction</a></h2>
+<p>Ant provides an optional task for editing property files.  This is very useful
+when wanting to make unattended modifications to configuration files for application
+servers and applications.  Currently, the task maintains a working property file with
+the ability to add properties or make changes to existing ones.  However, any comments
+are lost.</p>
+
+<hr>
+<h2><a name="proptask">PropertyFile Task</a></h2>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+<tr>
+  <td width="12%" valign="top">file</td>
+  <td width="78%" valign="top">Location of the property file to be edited</td>
+  <td width="10%" valign="top">Yes</td>
+</tr>
+<tr>
+  <td width="12%" valign="top">comment</td>
+  <td width="78%" valign="top">Header for the file itself</td>
+  <td width="10%" valign="top">no</td>
+</tr>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<h4><a name="entryElement">Entry</a></h4>
+<p>Use nested <code>&lt;entry&gt;</code>
+elements to specify actual modifications to the property file itself.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">key</td>
+    <td valign="top">Name of the property name/value pair</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">Value to set (=), to add (+) or subtract (-)</td>
+    <td valign="top" align="center" rowspan="2">At least one must be specified</td>
+  </tr>
+  <tr>
+    <td valign="top">default</td>
+    <td valign="top">Initial value to set for a property if it is not
+                     already defined in the property file.<br>
+                     For type date, an additional keyword is allowed: &quot;now&quot;</td>
+    </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">Regard the value as : int, date or string (default)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">operation</td>
+    <td valign="top">&quot;+&quot; or &quot;=&quot; (default) for all datatypes<br>&quot;-&quot; (for date and int only).<br>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">pattern</td>
+    <td valign="top">For int and date type only. If present, Values will
+                     be parsed and formatted accordingly.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unit</td>
+    <td valign="top">The unit of the value to be applied to date +/- operations.
+                     Valid Values are:
+                     <ul>
+                        <li>millisecond</li>
+                        <li>second</li>
+                        <li>minute</li>
+                        <li>hour</li>
+                        <li>day (default)</li>
+                        <li>week</li>
+                        <li>month</li>
+                        <li>year</li>
+                     </ul>
+                     This only applies to date types using a +/- operation.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>The rules used when setting a property value are shown below.&nbsp; The
+operation occurs <b>after</b> these rules are considered.</p>
+
+<ul>
+  <li>If only value is specified, the property is set to it regardless of its
+  previous value.</li>
+  <li>If only default is specified and the property previously existed in the
+  property file, it is unchanged.</li>
+  <li>If only default is specified and the property did not exist in the
+  property file, the property is set to default.</li>
+  <li>If value and default are both specified and the property previously
+  existed in the property file, the property is set to value.</li>
+  <li>If value and default are both specified and the property did not exist in
+  the property file, the property is set to default.</li>
+</ul>
+<p>&nbsp;</p>
+
+<h3>Examples</h3>
+
+<p>The following changes the my.properties file.  Assume my.properties look like:</p>
+
+<pre># A comment
+akey=novalue</pre>
+
+<p>After running, the file would now look like
+</p>
+<pre>#Thu Nov 02 23:41:47 EST 2000
+akey=avalue
+adate=2000/11/02 23\:41
+anint=1
+formated.int=0014
+formated.date=028 17\:34
+</pre>
+<p>
+The slashes conform to the expectations of the Properties class.  The file will be stored in a manner so that each character is examined and escaped if necessary.  Note that the original comment is now lost.  Please keep this in mind when running this task against heavily commented properties files.  It may be best to have a commented version in the source tree, copy it to a deployment area, and then run the modifications on the copy.  Future versions of PropertyFile will hopefully eliminate this shortcoming.
+</p>
+
+<blockquote><pre>&lt;propertyfile
+    file=&quot;my.properties&quot;
+    comment=&quot;My properties&quot;&gt;
+  &lt;entry  key=&quot;akey&quot; value=&quot;avalue&quot;/&gt;
+  &lt;entry  key=&quot;adate&quot; type=&quot;date&quot; value=&quot;now&quot;/&gt;
+  &lt;entry  key=&quot;anint&quot; type=&quot;int&quot; operation=&quot;+&quot;/&gt;
+  &lt;entry  key=&quot;formated.int&quot; type=&quot;int&quot; default=&quot;0013&quot; operation=&quot;+&quot; pattern=&quot;0000&quot;/&gt;
+  &lt;entry  key=&quot;formated.date&quot; type=&quot;date&quot; value=&quot;now&quot; pattern=&quot;DDD HH:mm&quot;/&gt;
+&lt;/propertyfile&gt;
+</pre></blockquote>
+<p>
+To produce dates relative from today :</p>
+<blockquote><pre>&lt;propertyfile
+    file=&quot;my.properties&quot;
+    comment=&quot;My properties&quot;&gt;
+  &lt;entry  key=&quot;formated.date-1&quot;
+      type=&quot;date&quot; default=&quot;now&quot; pattern=&quot;DDD&quot;
+      operation=&quot;-&quot; value=&quot;1&quot;/&gt;
+  &lt;entry  key=&quot;formated.tomorrow&quot;
+      type=&quot;date&quot; default=&quot;now&quot; pattern=&quot;DDD&quot;
+      operation=&quot;+&quot; value=&quot;1&quot;/&gt;
+&lt;/propertyfile&gt;
+</pre></blockquote>
+
+<p>
+Concatenation of strings :</p>
+<blockquote><pre>&lt;propertyfile
+    file=&quot;my.properties&quot;
+    comment=&quot;My properties&quot;&gt;
+  &lt;entry  key=&quot;progress&quot; default=&quot;&quot; operation=&quot;+&quot; value=&quot;.&quot;/&gt;
+&lt;/propertyfile&gt;
+</pre></blockquote>
+<p>Each time called, a &quot;.&quot; will be appended to &quot;progress&quot;
+</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/pvcstask.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/pvcstask.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/pvcstask.html	(revision 14989)
@@ -0,0 +1,295 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="Content-Language" content="en-us">
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>PVCS task</title>
+</head>
+<body>
+
+<h1>
+Ant Pvcs Task User Manual</h1>
+
+<p><b>Note:</b>
+Before using this task, the user running ant must have access to the
+commands of PVCS (get and pcli) and must have access to the
+repository. Note that the way to specify the repository is platform
+dependent so use property to specify location of repository.
+</p>
+
+by
+<br><!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Thomas Christensen (<a href="mailto:tchristensen@nordija.com">tchristensen@nordija.com</a>)</li>
+  <li>Don Jeffery (<a href="mailto:donj@apogeenet.com">donj@apogeenet.com</a>)</li>
+  <li>Jon Dickinson (<a href="mailto:dickinson.j@ucles.org.uk">dickinson.j@ucles.org.uk</a>)</li>
+</ul>
+Version 1.1 - 2001/06/27<br>
+<p>Problems with UNC pathnames and the use of () in paths are fixed and an updateonly
+  argument introduced.</p>
+Version 1.0 - 2001/01/31<br>
+<p>Initial release.</p>
+<hr>
+<h2>
+Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#pvcs">Pvcs Task</a></li>
+</ul>
+<hr>
+
+<h2><a NAME="introduction">Introduction</a></h2>
+The pvcs task allows the user of ant to extract the latest edition
+of the source code from a PVCS repository. PVCS is a version control system
+developed by <a href="http://www.merant.com/products/pvcs">Merant</a>.
+<br>
+This version has been tested against PVCS version 6.5 and 6.6 under Windows and Solaris.
+
+<hr>
+<h2><a NAME="pvcs">Pvcs Task</a></h2>
+<h3>Description</h3>
+The pvcs task is set to point at a PVCS repository and optionally a project
+within that repository, and can from that specification get the latest
+version of the files contained by the repository.
+<h3>
+Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP WIDTH="12%"><b>Attribute</b></td>
+
+<td VALIGN=TOP WIDTH="78%"><b>Description</b></td>
+
+<td VALIGN=TOP WIDTH="10%"><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">repository</td>
+
+<td VALIGN=TOP WIDTH="78%">The location of the repository (see your PVCS
+manuals)</td>
+
+<td VALIGN=TOP WIDTH="10%">Yes</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">pvcsproject</td>
+
+<td VALIGN=TOP WIDTH="78%">The project within the PVCS repository to extract
+files from (&quot;/&quot; is root project and that is default if this attribute isn't
+specified)</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">label</td>
+
+<td VALIGN=TOP WIDTH="78%">Only files marked with this label are extracted.</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">promotiongroup</td>
+
+<td VALIGN=TOP WIDTH="78%">Only files within this promotion group are extracted. Using
+both the <i>label</i> and the <i>promotiongroup</i> tag will cause the files in the
+promotion group and with that label to be extracted.
+</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">config</td>
+
+<td VALIGN=TOP WIDTH="78%">path of a non default .cfg file.
+Can be given absolute or relative to ant's base directory.
+</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">force</td>
+
+<td VALIGN=TOP WIDTH="78%">If set to <i>yes</i> all files that exists and are writable are overwritten. Default <i>no</i> causes the files that are writable to be ignored. This stops the PVCS command <i>get</i> to stop asking questions!</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">workspace</td>
+
+<td VALIGN=TOP WIDTH="78%">By specifying a workspace, the files are extracted to that location. A PVCS workspace is a
+name for a location of the workfiles and isn't as such the location itself. You define the location for a workspace
+using the PVCS GUI clients. If this isn't specified the default workspace for the current user is used.</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">pvcsbin</td>
+
+<td VALIGN=TOP WIDTH="78%">On some systems the PVCS executables <i>pcli</i>
+and <i>get</i> are not found in the PATH. In such cases this attribute
+should be set to the bin directory of the PVCS installation containing
+the executables mentioned before. If this attribute isn't specified the
+tag expects the executables to be found using the PATH environment variable.</td>
+
+<td VALIGN=TOP WIDTH="10%">No</td>
+</tr>
+    <tr>
+      <td VALIGN=TOP WIDTH="12%">ignorereturncode</td>
+      <td VALIGN=TOP WIDTH="78%">If set to <i>true</i> the return value from executing
+        the pvcs commands are ignored.</td>
+      <td VALIGN=TOP WIDTH="10%">No</td>
+    </tr>
+    <tr>
+      <td VALIGN=TOP WIDTH="12%">updateonly</td>
+      <td VALIGN=TOP WIDTH="78%">If set to <i>true</i> files are gotten only if
+        newer than existing local files.</td>
+      <td VALIGN=TOP WIDTH="10%">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">filenameformat</td>
+      <td valign="TOP">The format of your folder names in a
+          format suitable for <code>java.text.MessageFormat</code>.
+          Defaults to <code>{0}-arc({1})</code>.  Repositories where
+          the archive extension is not  <code>-arc</code> should set
+          this.</td>
+      <td valign="TOP">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">linestart</td>
+        <td valign="TOP">Used to parse the output of the pcli
+          command. It defaults to <code>&quot;P:</code>.  The parser already
+          knows about / and \\, this property is useful in cases where the
+          repository is accessed on a Windows platform via a drive letter
+          mapping.</td>
+      <td valign="TOP">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">revision</td>
+      <td valign="TOP">Retrieve the specified revision.</td>
+      <td valign="TOP">No</td>
+    </tr>
+    <tr>
+      <td valign="TOP">userid</td>
+      <td valign="TOP">Use the specified userid.</td>
+      <td valign="TOP">No</td>
+    </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+
+<h3>pvcsproject element</h3>
+<p><code>pvcs</code> supports a nested
+<code>&lt;pvcsproject&gt;</code> element, that represents a project
+within the PVCS repository to extract files from.  By nesting multiple
+<code>&lt;pvcsproject&gt;</code> elements under the
+<code>&lt;pvcs&gt;</code> task, multiple projects can be
+specified.</p>
+
+<h3>Parameters</h3>
+
+<table BORDER CELLSPACING=0 CELLPADDING=2 >
+<tr>
+<td VALIGN=TOP WIDTH="12%"><b>Attribute</b></td>
+
+<td VALIGN=TOP WIDTH="78%"><b>Description</b></td>
+
+<td VALIGN=TOP WIDTH="10%"><b>Required</b></td>
+</tr>
+
+<tr>
+<td VALIGN=TOP WIDTH="12%">name</td>
+
+<td VALIGN=TOP WIDTH="78%">The name of the pvcs project</td>
+
+<td VALIGN=TOP WIDTH="10%">Yes</td>
+</tr>
+</table>
+
+<h3>Examples</h3>
+The following set-up extracts the latest version of the files in the pvcs repository.
+<pre>
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Get the latest version                                              --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name=&quot;getlatest&quot;&gt;
+    &lt;pvcs repository=&quot;/mnt/pvcs&quot; pvcsproject=&quot;/myprj&quot;/&gt;
+  &lt;/target&gt;</ul>
+</pre>
+<p>Now run:</p>
+<code>ant getlatest</code>
+<p>This will cause the following output to appear:</p>
+<pre>
+  getlatest:
+  [pvcs] PVCS Version Manager (VMGUI) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT. All rights reserved.
+  [pvcs] PVCS Version Manager (get) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT. All rights reserved.
+  [pvcs] c:\myws\myprj\main.java &lt;- C:\mypvcs\archives\myprj\main.java-arc
+  [pvcs] rev 1.1
+  [pvcs] c:\myws\myprj\apache\tool.java &lt;- C:\mypvcs\archives\myprj\apache\tools.java-arc
+  [pvcs] rev 1.5
+
+  BUILD SUCCESSFUL
+
+  Total time: 19 seconds</pre>
+
+This next example extracts the latest version of the files in the pvcs
+repository from two projects using nested <code>&lt;pvcsproject&gt;</code> elements.
+<pre>
+  &lt;!-- ===================================================================--&gt;
+  &lt;!-- Get latest from myprj and myprj2                                   --&gt;
+  &lt;!-- ===================================================================--&gt;
+  &lt;target name=&quot;getlatest2&quot;&gt;
+    &lt;pvcs repository=&quot;/mnt/pvcs&quot;&gt;
+      &lt;pvcsproject name=&quot;/myprj&quot;/&gt;
+      &lt;pvcsproject name=&quot;/myprj2&quot;/&gt;
+    &lt;/pvcs&gt;
+  &lt;/target&gt;</ul>
+</pre>
+<p>Now run:</p>
+<code>ant getlatest2</code>
+<p>This will cause the following output to appear:</p>
+<pre>
+  getlatest2:
+  [pvcs] PVCS Version Manager (VMGUI) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT.  All rights reserved.
+  [pvcs] PVCS Version Manager (get) v6.6.10 (Build 870) for Windows NT/80x86
+  [pvcs] Copyright 1985-2000 MERANT.  All rights reserved.
+  [pvcs] c:\myws\myprj\main.java &lt;- C:\mypvcs\archives\myprj\main.java-arc
+  [pvcs] rev 1.1
+  [pvcs] c:\myws\myprj\apache\tool.java &lt;- C:\mypvcs\archives\myprj\apache\tool.java-arc
+  [pvcs] rev 1.5
+  [pvcs] c:\myws\myprj2\apache\tool2.java &lt;- C:\mypvcs\archives\myprj2\apache\tool2.java-arc
+  [pvcs] rev 1.2
+
+  BUILD SUCCESSFUL
+
+  Total time: 22 seconds</pre>
+
+<hr WIDTH="100%">
+<p>PVCS is a registered trademark of MERANT.</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/renameextensions.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/renameextensions.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/renameextensions.html	(revision 14989)
@@ -0,0 +1,123 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>RenameExtensions Task</title>
+</head>
+
+<body>
+
+<h2><a name="renameexts">RenameExtensions</a></h2>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the <a href="../CoreTasks/move.html">move</a>
+task with a <a href="../CoreTypes/mapper.html#glob-mapper">glob mapper</a> instead.</i></p>
+<h3>Description</h3>
+<p>Renames files in the <code>srcDir</code> directory ending with the
+<code>fromExtension</code> string so that they end with the
+<code>toExtension</code> string. Files are only replaced if
+<code>replace</code> is true
+</p>
+<p>See the section on
+<a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.
+This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
+supports all attributes of <code>&lt;fileset&gt;</code>
+(<code>dir</code> becomes <code>srcDir</code>) as well as the nested
+<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+<code>&lt;patternset&gt;</code> elements.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes should be used or not
+      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      excluded. No files (except default excludes) are excluded when
+      omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an exclude pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fromExtention</td>
+    <td valign="top">The string that files must end in to be renamed</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma- or space-separated list of patterns of files that must be
+      included. All files are included when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top">the name of a file. Each line of this file is
+      taken to be an include pattern</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">Whether the file being renamed to should be
+      replaced if it already exists</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcDir</td>
+    <td valign="top">The starting directory for files to search in</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">toExtension</td>
+    <td valign="top">The string that renamed files will end with on
+      completion</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;renameext srcDir=&quot;/source/project1&quot;
+              includes=&quot;**&quot;
+              excludes=&quot;**/samples/*&quot;
+              fromExtension=&quot;.java.keep&quot;
+              toExtension=&quot;.java&quot;
+              replace=&quot;true&quot;/&gt;
+</code>
+  </p>
+</blockquote>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/replaceregexp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/replaceregexp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/replaceregexp.html	(revision 14989)
@@ -0,0 +1,157 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ReplaceRegExp Task</title>
+</head>
+<body>
+
+<h2><a name="replaceregexp">ReplaceRegExp</a></h2>
+<h3>Description</h3>
+<p>ReplaceRegExp is a directory based task for replacing the
+occurrence of a given regular expression with a substitution pattern
+in a selected file or set of files.</p>
+
+<p>The output file is only written if it differs from the existing
+file.  This prevents spurious rebuilds based on unchanged files which
+have been regenerated by this task.</p> 
+
+<p>Similar to <a href="../CoreTypes/mapper.html#regexp-mapper">regexp
+type mappers</a> this task needs a supporting regular expression
+library and an implementation of
+<code>org.apache.tools.ant.util.regexp.Regexp</code>.
+See details in the documentation of the <a href="../CoreTypes/regexp.html#implementation">Regexp Type</a>. </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">file for which the regular expression should be replaced.</td>
+    <td align="center">Yes if no nested <code>&lt;fileset&gt;</code> is used</td>
+  </tr>
+  <tr>
+    <td valign="top">match</td>
+    <td valign="top">The regular expression pattern to match in the file(s)</td>
+    <td align="center">Yes, if no nested <code>&lt;regexp&gt;</code> is used</td>
+  </tr>
+  <tr>
+    <td valign="top">replace</td>
+    <td valign="top">The substitution pattern to place in the file(s) in place
+                     of the regular expression.</td>
+    <td align="center">Yes, if no nested <code>&lt;substitution&gt;</code> is used</td>
+  </tr>
+  <tr>
+    <td valign="top">flags</td>
+    <td valign="top">The flags to use when matching the regular expression.  For more
+                     information, consult the Perl5 syntax<br>
+                     g : Global replacement.  Replace all occurrences found<br>
+                     i : Case Insensitive.  Do not consider case in the match<br>
+                     m : Multiline.  Treat the string as multiple lines of input, using "^" and "$" as the start or end of any line, respectively, rather than start or end of string.<br>
+                     s : Singleline.  Treat the string as a single line of input, using "." to match any character, including a newline, which normally, it would not match.<br>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">byline</td>
+    <td valign="top">Process the file(s) one line at a time, executing the replacement
+                     on one line at a time (<i>true/false</i>).  This is useful if you
+                     want to only replace the first occurrence of a regular expression on
+                     each line, which is not easy to do when processing the file as a whole.
+                     Defaults to <i>false</i>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">encoding</td>
+    <td valign="top">The encoding of the file. <em>since Ant 1.6</em></td>
+    <td align="center">No - defaults to default JVM encoding</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;replaceregexp file=&quot;${src}/build.properties&quot;
+                         match=&quot;OldProperty=(.*)&quot;
+                         replace=&quot;NewProperty=\1&quot;
+                         byline=&quot;true&quot;/&gt;
+</pre>
+<p>replaces occurrences of the property name &quot;OldProperty&quot;
+ with &quot;NewProperty&quot; in a properties file, preserving the existing
+value, in the file <code>${src}/build.properties</code></p>
+
+<h3>Parameters specified as nested elements</h3>
+<p>This task supports a nested <a href="../CoreTypes/fileset.html">FileSet</a>
+   element.</p>
+<p>This task supports a nested <i><a href="../CoreTypes/regexp.html">Regexp</a></i> element to specify
+   the regular expression.  You can use this element to refer to a previously
+   defined regular expression datatype instance.</p>
+<blockquote>
+     &lt;regexp id="id" pattern="alpha(.+)beta"/&gt;<br>
+     &lt;regexp refid="id"/&gt;
+</blockquote>
+<p>This task supports a nested <i>Substitution</i> element to specify
+   the substitution pattern.  You can use this element to refer to a previously
+   defined substitution pattern datatype instance.</p>
+<blockquote>
+     &lt;substitution id="id" expression="beta\1alpha"/&gt;<br>
+     &lt;substitution refid="id"/&gt;
+</blockquote>
+<h3>Examples</h3>
+<blockquote>
+  <pre>
+&lt;replaceregexp byline=&quot;true&quot;&gt;
+  &lt;regexp pattern=&quot;OldProperty=(.*)&quot;/&gt;
+  &lt;substitution expression=&quot;NewProperty=\1&quot;/&gt;
+  &lt;fileset dir=&quot;.&quot;&gt;
+   &lt;includes=&quot;*.properties&quot;/&gt;
+  &lt;/fileset&gt;
+ &lt;/replaceregexp&gt;
+</pre></blockquote>
+<p>replaces occurrences of the property name &quot;OldProperty&quot;
+ with &quot;NewProperty&quot; in a properties file, preserving the existing
+value, in all files ending in <code>.properties</code> in the current directory</p>
+
+<blockquote>
+<pre>&lt;replaceregexp match="\s+" replace=" " flags="g" byline="true"&gt;
+    &lt;fileset dir="${html.dir}" includes="**/*.html"/&gt;
+&lt;/replaceregexp&gt;
+</pre></blockquote>
+<p>replaces all whitespaces (blanks, tabs, etc) by one blank remaining the
+line separator. So with input
+
+<blockquote>
+<pre>
+&lt;html&gt;    &lt;body&gt;
+&lt;&lt;TAB&gt;&gt;&lt;h1&gt;    T E S T   &lt;/h1&gt;  &lt;&lt;TAB&gt;&gt;    
+&lt;&lt;TAB&gt;&gt; &lt;/body&gt;&lt;/html&gt;
+</pre></blockquote>
+would converted to
+<pre>
+&lt;html&gt; &lt;body&gt;
+ &lt;h1&gt; T E S T &lt;/h1&gt; &lt;/body&gt;&lt;/html&gt;
+</pre>
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/rexec.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/rexec.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/rexec.html	(revision 14989)
@@ -0,0 +1,116 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>RExec Task</title>
+</head>
+
+<body>
+
+<h2><a name="rexec">RExec</a></h2>
+<h3>Description</h3>
+Task to automate a remote rexec session. Just like the Telnet task,
+it uses nested <tt>&lt;read&gt;</tt> to indicate strings to wait for, and
+<tt>&lt;write&gt;</tt> tags to specify text to send to the remote process.
+
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+
+<p>You can specify the commands you want to execute as nested elements
+or via the command attribute, we recommend you use the command
+attribute.  If you use the command attribute, you must use the
+username and password attributes as well.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>userid</td>
+     <td>the login id to use on the remote server.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>password</td>
+     <td>the login password to use on the remote server.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>server</td>
+     <td>the address of the remote rexec server.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>command</td>
+     <td>the command to execute on the remote server.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>port</td>
+     <td>the port number of the remote rexec server. Defaults to port 512 in BSD Unix systems.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>timeout</td>
+     <td>set a default timeout to wait for a response. Specified in seconds. Default is no timeout.</td>
+     <td>No</td>
+  </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+The input to send to the server, and responses to wait for, are
+described as nested elements.  
+
+<h4>read</h4>
+
+<p>declare (as a text child of this element) a string to wait for.
+The element supports the timeout attribute, which overrides any
+timeout specified for the task as a whole. It also has a <tt>string</tt>
+attribute, which is an alternative to specifying the string as 
+a text element.
+</p>
+<i>It is not necessary to declare a closing <code>&lt;read&gt;</code> element like for the Telnet task. The connection is not broken until the command has completed and
+the input stream (output of the command) is terminated.
+</i>
+<h4>write</h4>
+
+<p>describes the text to send to the server. The <tt>echo</tt> boolean
+attribute controls whether the string is echoed to the local log; 
+this is "true" by default
+</p>
+<h3>Example</h3>
+A simple example of connecting to a server and running a command.
+
+<blockquote><pre>
+&lt;rexec userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; command=&quot;ls&quot;/&gt;
+</pre></blockquote>
+
+The task can be used with other ports as well:
+<blockquote><pre>
+&lt;rexec port=&quot;80&quot; userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; command=&quot;ls&quot;/&gt;
+</pre></blockquote>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/rpm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/rpm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/rpm.html	(revision 14989)
@@ -0,0 +1,109 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+
+<html>
+
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Rpm Task</title>
+</head>
+
+<body>
+
+<h2><a name="rpm">Rpm</a></h2>
+<h3>Description</h3>
+<p>
+  A basic task for invoking the rpm executable to build a Linux installation
+  file. The task currently only works on Linux or other Unix platforms
+  with rpm support.
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">specFile</td>
+    <td valign="top">The name of the spec file to be used.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">topDir</td>
+    <td valign="top">
+      This is the directory which will have the expected
+      subdirectories, SPECS, SOURCES, BUILD, SRPMS.  If this isn't specified,
+      the baseDir value is used
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">cleanBuildDir</td>
+    <td valign="top">This will remove the generated files in the BUILD
+directory.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">removeSpec</td>
+    <td valign="top">This will remove the spec file from SPECS</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">removeSource</td>
+    <td valign="top">Flag (optional, default=false) 
+        to remove the sources after the build.
+        See the the <tt>--rmsource</tt>  option of rpmbuild.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">rpmBuildCommand</td>
+    <td valign="top">The executable to use for building the RPM.
+      Defaults to <code>rpmbuild</code> if it can be found or
+      <code>rpm</code> otherwise.  Set this if you don't have either on
+      your PATH or want to use a different executable.  <em>Since Ant
+      1.6</em>.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">Very similar idea to the cvs task.  the default is "-bb"</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">quiet</td>
+    <td valign="top">Suppress output. Defaults to false.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">output/error</td>
+    <td valign="top">Where standard output and error go</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failOnError</td>
+    <td valign="top">Stop the buildprocess if the RPM build command exits with 
+       a non-zero retuncode. Defaults to false</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/schemavalidate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/schemavalidate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/schemavalidate.html	(revision 14989)
@@ -0,0 +1,283 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SchemaValidate Task</title>
+</head>
+
+<body>
+
+<h2><a name="schemavalidate">SchemaValidate</a></h2>
+<h3>Description</h3>
+
+<p>This task validates XML files described by an XML Schema.
+The task extends the XmlValidate task with XSD-specific features.</p>
+<ol>
+<li>The parser is created validating and namespace aware
+</li>
+<li>Validation is turned on.</li>
+<li>Schema validation is turned on.</li>
+<li>Any no-namespace schema URL or file supplied is used as the no-namespace schema
+<li>All nested schema declarations are turned into the list of namespace-url
+bindings for schema lookup.
+</ol>
+
+Note that nested catalogs are still used for lookup of the URLs given as the
+sources of schema documents, so you can still delegate lookup to a catalog, you
+just need to list all schema URIs and their URL equivalents.
+
+<p>This task supports the use of nested
+  <li><a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a> elements</li>
+  <li> <tt>&lt;schema&gt;</tt> elements, that bind a namespace URI to a URL or a
+  local filename.
+  <li><tt>&lt;dtd&gt;</tt> elements which are used to resolve DTDs and entities.</li>
+  <li><tt>&lt;attribute&gt;</tt> elements which are used to set features on the parser.
+      These can be any number of
+      <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a>
+      or other features that your parser may support.</li>
+  <li><tt>&lt;property&gt;</tt> elements, containing string properties
+</p>
+
+<p>
+The task only supports SAX2 or later parsers: it is an error to specify a SAX1
+parser. 
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the parser to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">where to find the parser class. 
+    Optionally can use an embedded <tt>&lt;classpath&gt;</tt> element.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">disableDTD</td>
+    <td valign="top">
+      Flag to disable DTD support. DTD support is needed to 
+      validate XSD files themselves, amongst others.
+    </td>
+    <td valign="top" align="center">No - default false</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">fails on a error if set to true (defaults to true).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file(s) you want to check. (optionally can use an embedded fileset)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">fullchecking</td>
+    <td valign="top">
+      enable full schema checking. Slow but strict.
+    </td>
+    <td valign="top" align="center">No - default true</td>
+  </tr>
+  
+  <tr>
+    <td valign="top">lenient</td>
+    <td valign="top">
+      if true, only check the XML document is well formed
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noNamespaceFile</td>
+    <td valign="top">
+      filename of a no-namespace XSD file to provide the 
+      schema for no-namespace XML content.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">noNamespaceURL</td>
+    <td valign="top">
+      URL of a no-namespace XSD file to provide the 
+      schema for no-namespace XML content.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">warn</td>
+    <td valign="top">log parser warn events.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+
+
+<h4>schema</h4>
+<p>
+Identify the name and location of a schema that may be used in validating
+the document(s).
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">namespace</td>
+    <td valign="top">URI of the schema namespace</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">url</td>
+    <td valign="top">URL of the schema</td>
+    <td align="center" valign="top">One of url or file is required</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">file of the schema</td>
+    <td align="center" valign="top">One of url or file is required</td>
+  </tr>
+</table>
+
+<h4>dtd</h4>
+<p>
+<tt>&lt;dtd&gt;</tt> is used to specify different locations for DTD resolution.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">Public ID of the DTD to resolve</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">Location of the DTD to use, which can be a file,
+    a resource, or a URL</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a>
+element is used to perform entity resolution.</p>
+<h4>attribute</h4>
+<p>The <tt>&lt;attribute&gt;</tt> element is used to set parser features.<br>
+Features usable with the xerces parser are defined here :
+ <a href="http://xml.apache.org/xerces-j/features.html">Setting features</a><br>
+
+SAX features are defined here:
+ <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a><br>
+ </p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The boolean value of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+<h4>property</h4>
+<p>The <tt>&lt;property&gt;</tt> element is used to set properties.
+These properties are defined here for the xerces XML parser implementation :
+ <a href="http://xml.apache.org/xerces-j/properties.html">XML Parser properties</a>
+Properties can be used to set the schema used to validate the XML file.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The string value of the property</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+
+<h3>Examples</h3>
+<pre>
+    &lt;schemavalidate
+      noNamespaceFile="document.xsd"
+      file="xml/endpiece.xml"&gt;
+    &lt;/schemavalidate&gt;
+</pre>
+Validate a document against an XML schema. The document does not declare
+any schema itself, which is why the <tt>noNamespaceFile</tt> is needed. 
+<pre>
+    &lt;presetdef name="validate-soap"&gt;
+      &lt;schemavalidate &gt;
+        &lt;schema namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing"
+          file="${soap.dir}/ws-addressing.xsd" /&gt;
+        &lt;schema namespace="http://www.w3.org/2003/05/soap-envelope"
+          file="${soap.dir}/soap12.xsd" /&gt;
+        &lt;schema namespace="http://schemas.xmlsoap.org/wsdl/"
+          file="${soap.dir}/wsdl.xsd" /&gt;
+        &lt;schema namespace="http://www.w3.org/2001/XMLSchema"
+          file="${soap.dir}/XMLSchema.xsd" /&gt;
+        &lt;/schemavalidate&gt;
+    &lt;/presetdef&gt;
+</pre>
+Declare a new preset task, <tt>&lt;validate-soap&gt;</tt>, that validates
+XSD and WSDL documents against the relevant specifications. 
+To validate XSD documents, you also need XMLSchema.dtd and datatypes.dtd in 
+the same directory as XMLSchema.xsd, or pointed to via the catalog. All
+these files can be fetched from <a href="http://www.w3.org/2001/XMLSchema">
+the W3C</a>. 
+<pre>
+    &lt;validate-soap file="xml/test.xsd"/&gt;
+</pre>
+Use the preset task defined above to validate an XML Schema document.
+<br>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/scp.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/scp.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/scp.html	(revision 14989)
@@ -0,0 +1,267 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SCP Task</title>
+</head>
+
+<body>
+
+<h2><a name="scp">SCP</a></h2>
+<h3>Description</h3>
+
+<p><em>since Ant 1.6</em></p>
+
+<p>Copies a file or FileSet to or from a (remote) machine running an SSH daemon.
+FileSet <i>only</i> works for copying files from the local machine to a
+remote machine.</p>
+
+<p><b>Note:</b> This task depends on external libraries not included
+in the Ant distribution.  See <a
+href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.  This task has been tested with jsch-0.1.2 and later.</p>
+
+<p>See also the <a href="scp.html">scp task</a></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The file to copy.  This can be a local path or a
+    remote path of the form <i>user[:password]@host:/directory/path</i>.
+    <i>:password</i> can be omitted if you use key based
+    authentication or specify the password attribute.  The way remote
+    path is recognized is whether it contains @ character or not. This
+    will not work if your localPath contains @ character.</td>
+    <td valign="top" align="center">Yes, unless a nested
+    <code>&lt;fileset&gt;</code> element is used.</td>
+  </tr>
+  <tr>
+    <td valign="top">localFile</td>
+    <td valign="top">This is an alternative to the file attribute. But
+    this must always point to a local file. The reason this was added
+    was that when you give file attribute it is treated as remote if
+    it contains @ character. This character can exist also in local
+    paths.  <em>since Ant 1.6.2</em></td>
+    <td valign="top" align="center">Alternative to file attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">remoteFile</td>
+    <td valign="top">This is an alternative to the file attribute. But
+    this must always point to a remote file.  <em>since Ant 1.6.2</em></td>
+    <td valign="top" align="center">Alternative to file attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">The directory to copy to.  This can be a local path
+    or a remote path of the form <i>user[:password]@host:/directory/path</i>.
+    <i>:password</i> can be omitted if you use key based
+    authentication or specify the password attribute.  The way remote
+    path is recognized is whether it contains @ character or not. This
+    will not work if your localPath contains @ character.</td>
+    <td valian="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">localTodir</td>
+    <td valign="top">This is an alternative to the todir
+    attribute. But this must always point to a local directory. The
+    reason this was added was that when you give todir attribute it is
+    treated as remote if it contains @ character. This character can
+    exist also in local paths.  <em>since Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">localTofile</td>
+    <td valign="top">Changes the file name to the given name while
+    receiving it, only useful if receiving a single file.  <em>since
+    Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">remoteTodir</td>
+    <td valign="top">This is an alternative to the todir
+    attribute. But this must always point to a remote directory.
+    <em>since Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">remoteTofile</td>
+    <td valign="top">Changes the file name to the given name while
+    sending it, only useful if sending a single file.  <em>since
+    Ant 1.6.2</em></td>
+    <td valian="top" align="center">Alternative to todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">The port to connect to on the remote host.</td>
+    <td valian="top" align="center">No, defaults to 22.</td>
+  </tr>
+  <tr>
+    <td valign="top">trust</td>
+    <td valign="top">This trusts all unknown hosts if set to yes/true.<br>
+      <strong>Note</strong> If you set this to false (the default), the
+      host you connect to must be listed in your knownhosts file, this
+      also implies that the file exists.</td>
+    <td valian="top" align="center">No, defaults to No.</td>
+  </tr>
+  <tr>
+    <td valign="top">knownhosts</td>
+    <td valign="top">This sets the known hosts file to use to validate
+    the identity of the remote host.  This must be a SSH2 format file.
+    SSH1 format is not supported.</td>
+    <td valian="top" align="center">No, defaults to
+    ${user.home}/.ssh/known_hosts.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Whether to halt the build if the transfer fails.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+     <td valign="top">The password.</td>
+     <td valign="top" align="center">Not if you are using key based
+     authentication or the password has been given in the file or
+     todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">keyfile</td>
+     <td valign="top">Location of the file holding the private key.</td>
+     <td valign="top" align="center">Yes, if you are using key based
+     authentication.</td>
+  </tr>
+  <tr>
+    <td valign="top">passphrase</td>
+     <td valign="top">Passphrase for your private key.</td>
+     <td valign="top" align="center">Yes, if you are using key based
+     authentication.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Determines whether SCP outputs verbosely to the
+    user. Currently this means outputting dots/stars showing the
+    progress of a file transfer.  <em>since Ant 1.6.2</em></td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">sftp</td>
+    <td valign="top">Determines whether SCP uses the sftp protocol.
+    The sftp protocol is the file transfer protocol of SSH2.  It is
+    recommended that this be set to true if you are copying to/from a
+    server that doesn't support scp1. <em>since Ant 1.7</em></td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select
+sets of files to copy.
+ To use a fileset, the <code>todir</code> attribute must be set.</p>
+
+<h3>Examples</h3>
+<p><b>Copy a single local file to a remote machine</b></p>
+<pre>
+  &lt;scp file=&quot;myfile.txt&quot; todir=&quot;user:password@somehost:/home/chuck&quot;/&gt;
+</pre>
+
+<p><b>Copy a single local file to a remote machine with separate
+password attribute</b></p>
+<pre>
+  &lt;scp file=&quot;myfile.txt&quot; todir=&quot;user@somehost:/home/chuck&quot; password=&quot;password&quot;/&gt;
+</pre>
+
+<p><b>Copy a single local file to a remote machine using key base
+authentication.</b></p>
+<pre>
+  &lt;scp file=&quot;myfile.txt&quot;
+       todir=&quot;user@somehost:/home/chuck&quot; 
+       keyfile=&quot;${user.home}/.ssh/id_dsa&quot;
+       passphrase=&quot;my extremely secret passphrase&quot;
+  /&gt;
+</pre>
+
+<p><b>Copy a single remote file to a local directory</b></p>
+<pre>
+  &lt;scp file=&quot;user:password@somehost:/home/chuck/myfile.txt&quot; todir=&quot;../some/other/dir&quot;/&gt;
+</pre>
+
+<p><b>Copy a remote directory to a local directory</b></p>
+<pre>
+  &lt;scp file=&quot;user:password@somehost:/home/chuck/*&quot; todir=&quot;/home/sara&quot;/&gt;
+</pre>
+
+<p><b>Copy a local directory to a remote directory</b></p>
+<pre>
+  &lt;scp todir=&quot;user:password@somehost:/home/chuck/&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;/&gt;
+  &lt;/scp&gt;
+</pre>
+<p><b>Copy a set of files to a directory</b></p>
+<pre>
+  &lt;scp todir=&quot;user:password@somehost:/home/chuck&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot;&gt;
+      &lt;include name=&quot;**/*.java&quot;/&gt;
+    &lt;/fileset&gt;
+  &lt;/scp&gt;
+
+  &lt;scp todir=&quot;user:password@somehost:/home/chuck&quot;&gt;
+    &lt;fileset dir=&quot;src_dir&quot; excludes=&quot;**/*.java&quot;/&gt;
+  &lt;/scp&gt;
+</pre>
+
+<p><strong>Security Note:</strong>  Hard coding passwords and/or usernames
+in scp task can be a serious security hole.  Consider using variable
+substitution and include the password on the command line.  For example:
+<p>
+<pre>
+    &lt;scp todir=&quot;${username}:${password}@host:/dir&quot; ...&gt;
+</pre>
+Invoking ant with the following command line:
+<pre>
+    ant -Dusername=me -Dpassword=mypassword target1 target2
+</pre>
+
+Is slightly better, but the username/password is exposed to all users on an Unix
+system (via the ps command). The best approach is to use the
+<code>&lt;input&gt;</code> task and/or retrieve the password from a (secured)
+.properties file.
+
+<p>
+
+<p><strong>Unix Note:</strong> File permissions are not retained when files
+are copied; they end up with the default <code>UMASK</code> permissions
+instead. This is caused by the lack of any means to query or set file
+permissions in the current Java runtimes. If you need a permission-
+preserving copy function, use <code>&lt;exec executable="scp" ... &gt;</code>
+instead.
+</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/script.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/script.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/script.html	(revision 14989)
@@ -0,0 +1,335 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us"></meta>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Script Task</title>
+</head>
+
+<body>
+
+<h2><a name="script">Script</a></h2>
+<h3>Description</h3>
+  <p>Execute a script in a
+    <a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a>
+    or
+    <a href="https://scripting.dev.java.net">JSR 223</a>  supported language.
+  </p>
+  <p><b>Note:</b>
+    This task depends on external libraries not included in the Ant distribution.
+    See <a href="../install.html#librarydependencies">Library Dependencies</a>
+    for more information.
+  </p>
+  <p>
+    The task may use the BSF scripting manager or the JSR 223 manager that
+    is included in JDK6 and higher. This is controlled by the <code>manager</code>
+    attribute. The JSR 223 scripting manager is indicated by "javax".
+  </p>
+  <p>All items (tasks, targets, etc) of the running project are
+    accessible from the script, using either their <code>name</code> or
+    <code>id</code> attributes (as long as their names are considered
+    valid Java identifiers, that is).
+    This is controlled by the "setbeans" attribute of the task.
+    The name "project" is a pre-defined reference to the Project, which can be
+    used instead of the project name. The name "self" is a pre-defined reference to the actual
+    <code>&lt;script&gt;</code>-Task instance.<br>From these objects you have access to the Ant Java API, see the
+<a href="../api/index.html">JavaDoc</a> (especially for
+<a href="../api/org/apache/tools/ant/Project.html">Project</a> and
+<a href="../api/org/apache/tools/ant/taskdefs/optional/Script.html">Script</a>) for more information.</p>
+<p>If you are using JavaScript a good resource is <a target="_blank" href="http://www.mozilla.org/rhino/doc.html">
+http://www.mozilla.org/rhino/doc.html</a> as we are using their JavaScript interpreter.</p>
+<p>Scripts can do almost anything a task written in Java could do.</p>
+<p>Rhino provides a special construct - the <i>JavaAdapter</i>. With that you can
+create an object which implements several interfaces, extends classes and for which you
+can overwrite methods. Because this is an undocumented feature (yet), here is the link
+to an explanation: <a href="http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&frame=right&th=610d2db45c0756bd&seekm=391EEC3C.5236D929%40yahoo.com#link2">
+Groups@Google: "Rhino, enum.js, JavaAdapter?"</a> by Norris Boyd in the newsgroup
+<i>netscape.public.mozilla.jseng</i>.</p>
+
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">language</td>
+    <td valign="top">The programming language the script is written in.
+      Must be a supported Apache BSF or JSR 223 language</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manager</td>
+    <td valign="top">
+      <em>Since: Ant 1.7. </em>
+      The script engine manager to use. This can have
+      one of three values ("auto", "bsf" or "javax").
+      The default value is "auto".
+      <dl>
+        <li>"bsf" use the BSF scripting manager to run
+          the language.</li>
+        <li>"javax" use the <em>javax.scripting</em> manager
+          to run the language. (This will only work for JDK6 and higher).</li>
+        <li>"auto" use the BSF engine if it exists,
+          otherwise use the <em>javax.scripting</em> manager.</li>
+      </dl>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The location of the script as a file, if not inline</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">setbeans</td>
+    <td valign="top">
+      This attribute controls whether to set variables for
+      all properties, references and targets in the running script.
+      If this attribute is false, only the the "project" and "self" variables are set.
+      If this attribute is true all the variables are set. The default value of this
+      attribute is "true".  <em>Since Ant 1.7</em>
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">
+      The classpath to pass into the script. <em>Since Ant 1.7</em>
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+       <a href="../using.html#references">reference</a> to a path defined elsewhere.
+    <em>Since Ant 1.7</em></td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+  <p><em>Since Ant 1.7</em></p>
+<p>
+  <code>Script</code>'s <code>classpath</code> attribute is a 
+  <a href="../using.html#path">path-like structure</a> and can also be set via a nested
+  <code>&lt;classpath&gt;</code> element.
+  <p>
+    If a classpath is set, it will be used as the current thread
+    context classloader, and
+    as the classloader given to the BSF manager. 
+    This means that it can be used to specify
+    the classpath containing the language implementation for BSF
+    or for JSR 223 managers.
+    This can be usefull if one wants
+    to keep ${user.home}/.ant/lib free of lots of scripting language
+    specific jar files.
+  </p>
+  <p>
+    <b>NB:</b> This classpath cannot (currently) be used to
+    specify the location of
+    the BSF jar file. Also, due to classloading issues, languages
+    that have engines in the BSF jar file cannot have the
+    implementation in the classpath element. This includes the
+    javascript, jython, netrexx and jacl languages.
+  </p>
+</p>
+<h3>Examples</h3>
+The following snippet shows use of five different languages:
+  <blockquote><pre>
+    &lt;property name="message" value="Hello world"/&gt;
+
+    &lt;script language="groovy"&gt;
+      println("message is " + message)
+    &lt;/script&gt;
+
+    &lt;script language="beanshell"&gt;
+      System.out.println("message is " + message);
+    &lt;/script&gt;
+
+    &lt;script language="judoscript"&gt;
+        println 'message is ', message
+    &lt;/script&gt;
+
+    &lt;script language="ruby"&gt;
+        print 'message is ', $message, "\n"
+    &lt;/script&gt;
+
+    &lt;script language="jython"&gt;
+print "message is %s" % message
+    &lt;/script&gt;
+</pre>
+  </blockquote>
+  <p>
+  Note that for the <i>jython</i> example, the script contents <b>must</b>
+  start on the first column.
+  </p>
+  <p>
+    Note also that for the <i>ruby</i> example, the names of the set variables are prefixed
+    by a '$'.
+  <p>
+    The following script shows a little more complicated jruby example:
+  </p>
+  <blockquote><pre>
+&lt;script language="ruby"&gt;
+  xmlfiles = Dir.new(".").entries.delete_if { |i| ! (i =~ /\.xml$/) }
+  xmlfiles.sort.each { |i| $self.log(i) }
+&lt;/script&gt;
+</pre>
+  </blockquote>
+  <p>
+    The same example in groovy is:
+  </p>
+  <blockquote><pre>
+&lt;script language="groovy"&gt;
+  xmlfiles = new java.io.File(".").listFiles().findAll{ it =~ "\.xml$"}
+  xmlfiles.sort().each { self.log(it.toString())}
+&lt;/script&gt;
+</pre>
+  </blockquote>
+  <p>
+    The following example shows the use of classpath to specify the location
+    of the beanshell jar file.
+  </p>
+  <blockquote><pre>
+&lt;script language="beanshell" setbeans="true"&gt;
+  &lt;classpath&gt;
+    &lt;fileset dir="${user.home}/lang/beanshell" includes="*.jar" /&gt;
+  &lt;/classpath&gt;
+  System.out.println("Hello world");
+&lt;/script&gt;
+</pre>
+  </blockquote>
+  <p>
+    The following script uses javascript to create a number of
+    echo tasks and execute them.
+  </p>
+<blockquote><pre>
+&lt;project name=&quot;squares&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;main&quot;&gt;
+
+    &lt;script language=&quot;javascript&quot;&gt; &lt;![CDATA[
+
+      for (i=1; i&lt;=10; i++) {
+        echo = squares.createTask(&quot;echo&quot;);
+        echo.setMessage(i*i);
+        echo.perform();
+      }
+
+    ]]&gt; &lt;/script&gt;
+
+  &lt;/target&gt;
+
+&lt;/project&gt;
+</pre></blockquote>
+<p>generates</p>
+<blockquote><pre>
+main:
+1
+4
+9
+16
+25
+36
+49
+64
+81
+100
+
+BUILD SUCCESSFUL
+</pre></blockquote>
+
+<p>Now a more complex example using the Java API and the Ant API. The goal is to list the
+filesizes of all files a <code>&lt;fileset/&gt;</code> caught.</p>
+<blockquote><pre>
+
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="<font color=blue>MyProject</font>" basedir="." default="main"&gt;
+
+  &lt;property name="fs.dir" value="src"/&gt;
+  &lt;property name="fs.includes" value="**/*.txt"/&gt;
+  &lt;property name="fs.excludes" value="**/*.tmp"/&gt;
+
+  &lt;target name="main"&gt;
+    &lt;script language="javascript"&gt; &lt;![CDATA[
+
+      // import statements
+      <font color=blue>// importPackage(java.io)</font>;
+      <font color=blue>importClass(java.io.File)</font>;
+
+      // Access to Ant-Properties by their names
+      dir      = <font color=blue>project</font>.getProperty("fs.dir");
+      includes = <font color=blue>MyProject</font>.getProperty("fs.includes");
+      excludes = <font color=blue>self.getProject()</font>  .<font color=blue>getProperty("fs.excludes")</font>;
+
+      // Create a &lt;fileset dir="" includes=""/&gt;
+      fs = project.<font color=blue>createDataType("fileset")</font>;
+      fs.setDir( new File(dir) );
+      <font color=blue>fs.setIncludes(includes)</font>;
+      fs.setExcludes(excludes);
+
+      // Get the files (array) of that fileset
+      ds = fs.getDirectoryScanner(project);
+      srcFiles = ds.getIncludedFiles();
+
+      // iterate over that array
+      for (i=0; i&lt;srcFiles.length; i++) {
+
+        // get the values via Java API
+        var basedir  = fs.getDir(project);
+        var filename = srcFiles[i];
+        var file = <font color=blue>new File(basedir, filename)</font>;
+        var size = file.length();
+
+        // create and use a Task via Ant API
+        echo = MyProject.<font color=blue>createTask("echo")</font>;
+        echo.setMessage(filename + ": " + size + " byte");
+        echo.<font color=blue>perform()</font>;
+      }
+    ]]&gt;&lt;/script&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>We want to use the Java API. Because we don't want always typing the package signature
+we do an import. Rhino knows two different methods for import statements: one for packages
+and one for a single class. By default only the <i>java</i> packages are available, so
+<i>java.lang.System</i> can be directly imported with <code>importClass/importPackage</code>.
+For other packages you have to prefix the full classified name with <i>Packages</i>.
+For example Ant's <i>FileUtils</i> class can be imported with
+<code>importClass(<b>Packages</b>.org.apache.tools.ant.util.FileUtils)</code>
+<br>
+The <code>&lt;script&gt;</code> task populates the Project instance under
+the name <i>project</i>, so we can use that reference. Another way is to use its given name
+or getting its reference from the task itself.<br>
+The Project provides methods for accessing and setting properties, creating DataTypes and
+Tasks and much more.<br>
+After creating a FileSet object we initialize that by calling its set-methods. Then we can
+use that object like a normal Ant task (<code>&lt;copy&gt;</code> for example).<br>
+For getting the size of a file we instantiate a <code>java.io.File</code>. So we are using
+normal Java API here.<br>
+Finally we use the <code>&lt;echo&gt;</code> task for producing the output. The task is not executed by
+its execute() method, because the perform() method (implemented in Task itself) does the
+appropriate logging before and after invoking execute().
+</p>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/scriptdef.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/scriptdef.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/scriptdef.html	(revision 14989)
@@ -0,0 +1,324 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Scriptdef Task</title>
+</head>
+
+<body>
+
+<h2><a name="script">Scriptdef</a></h2>
+<h3>Description</h3>
+<p>Scriptdef can be used to define an Ant task using a scripting language. Ant
+scripting languages supported by
+<a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a> 
+or
+  <a href="https://scripting.dev.java.net">JSR 223</a>
+may be
+used to define the script. Scriptdef provides a mechanism to encapsulate
+control logic from a build within an Ant task minimizing the need for
+providing control style tasks in Ant itself. Complex logic can be made
+available while retaining the simple structure of an Ant build file. Scriptdef
+is also useful for prototyping new custom tasks. Certainly as the complexity
+of the script increases it would be better to migrate the task definition
+into a Java based custom task.
+</p>
+
+<p><b>Note:</b> This task depends on external libraries not included in the
+Ant distribution. See
+<a href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.</p>
+
+
+
+<p>The attributes and nested elements supported by the task may be defined
+using <code>&lt;attribute&gt;</code> and <code>&lt;element&gt;</code> nested elements. These are
+available to the script that implements the task as two collection style
+script variables <code>attributes</code> and <code>elements</code>. The
+elements in the <code>attributes</code> collection may be accessed by the
+attribute name. The <code>elements</code> collection is accessed by the nested
+element name. This will return a list of all instances of the nested element.
+The instances in this list may be accessed by an integer index.
+</p>
+
+<p><b>Note:</b> Ant will turn all attribute and element names into all
+lowercase names, so even if you use name="SomeAttribute", you'll have
+to use "someattribute" to retrieve the attribute's value from the
+<code>attributes</code> collection.</p>
+
+<p>The name "self" (<i>since Ant 1.6.3</i>) is a pre-defined reference to the
+    script def task instance.
+    It can be used for logging, or for integration with the rest of
+    ant. the <code>self.text attribute</code> contains
+    any nested text passed to the script</p>
+
+<p>If an attribute or element is not passed in, 
+then <code>attributes.get()</code> or <code>elements.get()</code> will 
+return null. It is up to the script to perform any checks and validation. 
+<code>self.fail(String message)</code>can be used to raise a 
+<code>BuildException</code>.
+</p>
+
+
+<p>The name "project" is a pre-defined reference to the Ant Project. For
+more information on writing scripts, please refer to the
+<a href="script.html"><code>&lt;script&gt;</code></a> task
+</p>
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the task to be created using the script</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">language</td>
+    <td valign="top">The programming language the script is written in.
+      Must be a supported Apache BSF or JSR 223 language</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">manager</td>
+    <td valign="top">
+      The script engine manager to use.
+      See the <a href="../OptionalTasks/script.html">script</a> task
+      for using this attribute.
+    </td>
+    <td valign="top" align="center">No - default is "auto"</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The location of the script as a file, if not inline</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">uri</td>
+    <td valign="top">
+      The XML namespace uri that this definition should live in.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">
+      The classpath to pass into the script.
+    </td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">The classpath to use, given as a
+      <a href="../using.html#references">reference</a> to a path defined elsewhere.
+      <td align="center" valign="top">No</td>
+    </tr>
+    <tr>
+      <td valign="top">loaderRef</td>
+      <td valign="top">the name of the loader that is
+        used to load the script, constructed from the specified 
+        classpath. This allows multiple script defintions
+        to reuse the same class loader.
+      </td>
+      <td align="center" valign="top">No</td>
+    </tr>
+  </table>
+
+<h3>Nested elements</h3>
+<h4>attribute</h4>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the attribute</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>element</h4>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the nested element to be supported by the
+                     task defined by the script</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the classname of the class to be used for the nested element.
+         This specifies the class directly and is an alternative to specifying
+         the Ant type name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">This is the name of an Ant task or type which is to
+        be used when this element is to be created. This is an alternative
+        to specifying the class name directly. If the type is in a namespace,
+        the URI and a : must be prefixed to the type. For example
+        <code>type="antlib:example.org:newtype"</code></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+  <h4>classpath</h4>
+  <p>
+    See the <a href="../OptionalTasks/script.html">script</a> task
+    for using this nested element.
+  </p>
+
+<h3>Examples</h3>
+
+<p>
+The following definition creates a task which supports an attribute called
+attr and two nested elements, one being a fileset and the other a path. When
+executed, the resulting task logs the value of the attribute and the basedir
+of the first fileset.
+</p>
+
+<pre>
+  &lt;scriptdef name=&quot;scripttest&quot; language=&quot;javascript&quot;&gt;
+    &lt;attribute name=&quot;attr1&quot;/&gt;
+    &lt;element name=&quot;fileset&quot; type=&quot;fileset&quot;/&gt;
+    &lt;element name=&quot;path&quot; type=&quot;path&quot;/&gt;
+    &lt;![CDATA[
+
+      self.log(&quot;Hello from script&quot;);
+      self.log(&quot;Attribute attr1 = &quot; + attributes.get(&quot;attr1&quot;));
+      self.log(&quot;First fileset basedir = &quot;
+        + elements.get(&quot;fileset&quot;).get(0).getDir(project));
+
+    ]]&gt;
+  &lt;/scriptdef&gt;
+
+  &lt;scripttest attr1=&quot;test&quot;&gt;
+    &lt;path&gt;
+      &lt;pathelement location=&quot;src&quot;/&gt;
+    &lt;/path&gt;
+    &lt;fileset dir=&quot;src&quot;/&gt;
+    &lt;fileset dir=&quot;main&quot;/&gt;
+  &lt;/scripttest&gt;
+</pre>
+
+<p>
+The following variation on the above script lists the number of fileset elements
+and iterates through them
+</p>
+<pre>
+  &lt;scriptdef name=&quot;scripttest2&quot; language=&quot;javascript&quot;&gt;
+    &lt;element name=&quot;fileset&quot; type=&quot;fileset&quot;/&gt;
+    &lt;![CDATA[
+      filesets = elements.get(&quot;fileset&quot;);
+      self.log(&quot;Number of filesets = &quot; + filesets.size());
+      for (i = 0; i &lt; filesets.size(); ++i) {
+        self.log(&quot;fileset &quot; + i + &quot; basedir = &quot;
+          + filesets.get(i).getDir(project));
+      }
+    ]]&gt;
+  &lt;/scriptdef&gt
+
+  &lt;scripttest2&gt;
+    &lt;fileset dir=&quot;src&quot;/&gt;
+    &lt;fileset dir=&quot;main&quot;/&gt;
+  &lt;/scripttest2&gt;
+</pre>
+
+<p>
+When a script has a syntax error, the scriptdef name will be listed in the
+error. For example in the above script, removing the closing curly bracket
+would result in this error
+</p>
+
+<p><code>build.xml:15: SyntaxError: missing } in compound
+statement (scriptdef <code>&lt;scripttest2&gt;</code>; line 10)</code></p>
+
+<p>
+Script errors are only detected when a script task is actually executed.
+</p>
+<p>
+    The next example does uses nested text in Jython. It also declares 
+    the script in a new xml namespace, which must be used to refer to 
+    the task. Declaring scripts in a new namespace guarantees that Ant will 
+    not create a task of the same (namespace,localname) name pair. 
+</p>
+
+<pre>
+&lt;target name="echo-task-jython"&gt;
+  &lt;scriptdef language="jython"
+      name="echo"
+      uri="http://example.org/script"&gt;
+      &lt;![CDATA[
+self.log("text: " +self.text)
+    ]]&gt;
+    &lt;/scriptdef&gt;
+&lt;/target&gt;
+
+&lt;target name="testEcho" depends="echo-task-jython"
+    xmlns:s="http://example.org/script"&gt;
+  &lt;s:echo&gt;nested text&lt;/s:echo&gt;
+&lt;/target&gt;
+</pre>
+
+The next example shows the use of &lt;classpath&gt; and
+"loaderref" to get access to the beanshell jar.
+<pre>
+    &lt;scriptdef name="b1" language="beanshell"
+               loaderref="beanshell-ref"&gt;
+      &lt;attribute name="a"/&gt;
+      &lt;classpath
+        path="${user.home}/scripting/beanshell/bsh-1.3b1.jar"/&gt;
+      self.log("attribute a is " + attributes.get("a"));
+    &lt;/scriptdef&gt;
+
+    &lt;scriptdef name="b2" language="beanshell"
+               loaderref="beanshell-ref"&gt;
+      &lt;attribute name="a2"/&gt;
+      self.log("attribute a2 is " + attributes.get("a2"));
+    &lt;/scriptdef&gt;
+
+    &lt;b1 a="this is an 'a'"/&gt;
+    &lt;b2 a2="this is an 'a2' for b2"/&gt;
+</pre>
+<h3>Testing Scripts</h3>
+
+<p>
+The easiest way to test scripts is to use the 
+<a href="http://ant.apache.org/antlibs/antunit/">AntUnit</a> ant library.
+This will run all targets in a script that begin with "test" (and their dependencies). </p>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/serverdeploy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/serverdeploy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/serverdeploy.html	(revision 14989)
@@ -0,0 +1,335 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ServerDeploy Task</title>
+
+</head>
+
+<body>
+
+<h2><a name="serverdeploy">ANT ServerDeploy User Manual</a></h2>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+<li>Christopher A. Longo (<a href="mailto:cal@cloud9.net">cal@cloud9.net</a>)</li>
+<li>Cyrille Morvan (<a href="mailto:cmorvan@ingenosya.com">cmorvan@ingenosya.com</a>)</li>
+</ul>
+
+</p>
+<hr>
+<p> At present the tasks support:<br>
+
+<ul>
+<li><a href="http://www.bea.com" target="_top">Weblogic</a> servers</li>
+<li><a href="http://www.objectweb.org/jonas/" target="_top">JOnAS</a>
+2.4 Open Source EJB server</li>
+</ul>
+Over time we expect further optional tasks  to support additional J2EE Servers.
+</p>
+
+<hr>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr><td>Task</td><td colspan="2">Application Servers</td></tr>
+<tr><td rowspan="4"><a href="#serverdeploy_element">serverdeploy</a></td><td colspan="2" align="center"><b>Nested Elements</b></td></tr>
+<tr><td><a href="#serverdeploy_generic">generic</a></td><td>Generic task</td></tr>
+<tr><td><a href="#serverdeploy_jonas">jonas</a></td><td>JOnAS 2.4</td></tr>
+<tr><td><a href="#serverdeploy_weblogic">weblogic</a></td><td>Weblogic</td></tr>
+
+</table>
+
+<a name="serverdeploy_element"></a>
+<h2>ServerDeploy element</h2>
+
+<h3><b>Description:</b></h3>
+
+<p>The <code>serverdeploy</code> task is used to run a "hot" deployment tool for
+vendor-specific J2EE server. The task requires nested elements which define
+the attributes of the vendor-specific deployment tool being executed.
+Vendor-specific deployment tools elements may enforce rules for which
+attributes are required, depending on the tool.
+</p>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">This is the action to be performed.  For most cases this
+    will be "deploy".  Some tools support additional actions, such as "delete", "list",
+    "undeploy", "update"...</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+    <td valign="top">A fully qualified path/filename of the component to be deployed.
+    This may be an .ear, .jar, .war, or any other type that is supported by the server.
+    </td>
+    <td>Tool dependent</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<p>The serverdeploy task supports a nested <code>classpath</code> element to set the classpath.</p>
+
+<h3>Vendor-specific nested elements</h3>
+
+<h3>Parameters used for all tools:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classpath</td>
+    <td valign="top">The classpath to be passed to the JVM running the tool.
+    The classpath may also be supplied as a nested element.</td>
+    <td>Tool dependent</td>
+  </tr>
+  <tr>
+    <td valign="top">server</td>
+    <td valign="top">The address or URL for the server where the component will be deployed.</td>
+    <td>Tool dependent</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The user with privileges to deploy applications to the server.</td>
+    <td>Tool dependent</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password of the user with privileges to deploy applications to the server.</td>
+    <td>Tool dependent</td>
+  </tr>
+</table>
+
+<p>Also supported are nested vendor-specific elements.</p>
+
+<a name="serverdeploy_generic"></a>
+<h3>Generic element</h3>
+This element is provided for generic Java-based deployment tools.
+The generic task accepts (but does not require) nested <code>arg</code>
+and <code>jvmarg</code> elements.
+A JVM will be spawned with the provided attributes.  It is recommended
+that a vendor-specific element be used over the generic one if at all
+possible.
+<p>The following attributes are supported by the generic element.</p>
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">This is the fully qualified classname of the Java based
+    deployment tool to execute.</td>
+    <td>Yes</td>
+  </tr>
+</table>
+</p>
+
+<h3>Nested Elements</h3>
+<p>The generic element supports nested <code>&lt;arg&gt;</code> and <code>&lt;jvmarg&gt;</code> elements.</p>
+
+<h3>Example</h3>
+
+<p>This example shows the use of generic deploy element to deploy a component
+using a Java based deploy tool:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;deploy&quot; source=&quot;${lib.dir}/ejb_myApp.ear&quot;&gt;
+        &lt;generic classname="com.yamato.j2ee.tools.deploy.DeployTool"
+            classpath=&quot;${classpath}&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;&gt;
+            &lt;arg value="-component=WildStar"/&gt;
+            &lt;arg value="-force"/&gt;
+            &lt;jvmarg value="-ms64m"/&gt;
+            &lt;jvmarg value="-mx128m"/&gt;
+        &lt;/generic&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<a name="serverdeploy_weblogic"></a>
+<h3>WebLogic element</h3>
+<p>
+The WebLogic element contains additional attributes to run the
+<code>weblogic.deploy</code> deployment tool.
+<p>Valid actions for the tool are <code>deploy</code>, <code>undeploy</code>,
+<code>list</code>, <code>update</code>, and <code>delete</code>.
+<p>If the action is <code>deploy</code> or <code>update</code>,
+the <code>application</code> and <code>source</code> attributes must be set.
+If the action is <code>undeploy</code> or <code>delete</code>,
+the <code>application</code> attribute must be set.  If the <code>username</code>
+attribute is omitted, it defaults to "system".  The <code>password</code> attribute is
+required for all actions.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">application</td>
+    <td valign="top">This is the name of the application being deployed</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">component</td>
+    <td valign="top">This is the component string for deployment targets.
+    It is in the form <code>&lt;component&gt;:&lt;target1&gt;,&lt;target2&gt;...</code>
+    Where component is the archive name (minus the .jar, .ear, .war
+    extension).  Targets are the servers where the components will be deployed</td>
+    <td>no</td>
+  </tr>
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">If set to true, additional information will be
+    printed during the deployment process.</td>
+    <td>No</td>
+  </tr>
+</table>
+
+
+<h3>Examples</h3>
+
+<p>This example shows the use of serverdeploy to deploy a component to a WebLogic server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;deploy&quot; source=&quot;${lib.dir}/ejb_myApp.ear&quot;&gt;
+        &lt;weblogic application=&quot;myapp&quot;
+            server=&quot;t3://myserver:7001&quot;
+            classpath=&quot;${weblogic.home}/lib/weblogic.jar&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;
+            component=&quot;ejb_foobar:myserver,productionserver&quot;
+            debug=&quot;true&quot;/&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<p>This example shows serverdeploy being used to delete a component from a
+WebLogic server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;delete&quot; source=&quot;${lib.dir}/ejb_myApp.jar&quot;/&gt
+        &lt;weblogic application=&quot;myapp&quot;
+            server=&quot;t3://myserver:7001&quot;
+            classpath=&quot;${weblogic.home}/lib/weblogic.jar&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;/&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<a name="serverdeploy_jonas"></a>
+<h3>JOnAS (Java Open Application Server) element</h3>
+<p>
+The JOnAS element contains additional attributes to run the
+<code>JonasAdmin</code> deployment tool.
+<p>Valid actions for the tool are <code>deploy</code>, <code>undeploy</code>,
+<code>list</code> and <code>update</code>.
+<p>You can't use <code>user</code> and <code>password</code> property with this 
+task.
+<p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">jonasroot</td>
+    <td valign="top">The root directory for JOnAS.</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">orb</td>
+    <td valign="top">Choose your ORB : RMI, JEREMIE, DAVID, ... If omitted, it defaults
+     to the one present in classpath. The corresponding JOnAS JAR is
+     automatically added to the classpath. If your orb is DAVID (RMI/IIOP) you must 
+     specify davidhost and davidport properties.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td valign="top">davidhost</td>
+    <td valign="top">The value for the system property : <code>david.CosNaming.default_host</code> .</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td valign="top">davidport</td>
+    <td valign="top">The value for the system property : <code>david.CosNaming.default_port</code> .</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">This is the fully qualified classname of the Java based
+    deployment tool to execute. Default to <code>org.objectweb.jonas.adm.JonasAdmin</code></td>
+    <td>No</td>
+  </tr>
+
+</table>
+
+<h3>Nested Elements</h3>
+<p>The jonas element supports nested <code>&lt;arg&gt;</code> and <code>&lt;jvmarg&gt;</code> elements.</p>
+
+
+<h3>Examples</h3>
+
+<p>This example shows the use of serverdeploy to deploy a component to a JOnAS server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;deploy&quot; source=&quot;${lib.dir}/ejb_myApp.jar&quot;&gt;
+        &lt;jonas server=&quot;MyJOnAS&quot; jonasroot="${jonas.root}"&gt;
+
+           &lt;classpath&gt;
+               &lt;pathelement path=&quot;${jonas.root}/lib/RMI_jonas.jar&quot;/&gt;
+               &lt;pathelement path=&quot;${jonas.root}/config/&quot;/&gt;
+           &lt;/classpath&gt;
+        &lt;/jonas&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+<p>This example shows serverdeploy being used to list the components from a
+JOnAS server and a WebLogic server:</p>
+
+<pre>
+    &lt;serverdeploy action=&quot;list&quot;/&gt
+        &lt;jonas jonasroot=&quot;${jonas.root}&quot; orb=&quot;JEREMIE&quot;/&gt;
+        &lt;weblogic application=&quot;myapp&quot
+            server=&quot;t3://myserver:7001&quot;
+            classpath=&quot;${weblogic.home}/lib/weblogic.jar&quot;
+            username=&quot;${user.name}&quot;
+            password=&quot;${user.password}&quot;/&gt;
+    &lt;/serverdeploy&gt;
+</pre>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/setproxy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/setproxy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/setproxy.html	(revision 14989)
@@ -0,0 +1,165 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Setproxy Task</title>
+   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+</head>
+
+<body>
+<h2><a name="setproxy">Setproxy Task</a></h2>
+ 
+<p>Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites, and remote ftp sites.<p>
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+
+          <a name="description">
+          <h3>Description</h3></a>
+
+        Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites, and remote ftp sites. You can nominate an http and ftp proxy, or a socks server, reset the server settings, or do nothing at all. <p> Examples <pre>&lt;setproxy/&gt;</pre> do nothing <pre>&lt;setproxy proxyhost="firewall"/&gt;</pre> set the proxy to firewall:80 <pre>&lt;setproxy proxyhost="firewall" proxyport="81"/&gt;</pre> set the proxy to firewall:81 <pre>&lt;setproxy proxyhost=""/&gt;</pre> stop using the http proxy; don't change the socks settings <pre>&lt;setproxy socksproxyhost="socksy"/&gt;</pre> use socks via socksy:1080 <pre>&lt;setproxy socksproxyhost=""/&gt;</pre> stop using the socks server. <p> You can set a username and password for http with the <tt>proxyHost</tt> and <tt>proxyPassword</tt> attributes. On Java1.4 and above these can also be used against SOCKS5 servers. </p>
+      
+    <!-- End Description -->
+
+ <!-- Ignore -->
+
+
+
+    <!-- Start Attributes -->
+          <a name="attributes">
+          <h3>Parameters</h3></a>
+
+        <table border="1" cellpadding="2" cellspacing="0">
+          <tr>
+        <td>
+          <b>Attribute</b>
+        </td>
+        <td>
+          <b>Description</b>
+        </td>
+        <td>
+          <b>Type</b>
+        </td>
+        <td>
+          <b>Requirement</b>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td>
+          nonproxyhosts
+        </td>
+        <td>
+          A list of hosts to bypass the proxy on. These should be separated with the vertical bar character '|'. Only in Java 1.4 does ftp use this list. e.g. fozbot.corp.sun.com|*.eng.sun.com
+        </td>
+        <td>
+          String
+        </td>
+        <td>
+          Optional
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          proxyhost
+        </td>
+        <td>
+          the HTTP/ftp proxy host. Set this to "" for the http proxy option to be disabled
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          proxypassword
+        </td>
+        <td>
+          Set the password for the proxy. Used only if the proxyUser is set.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          proxyport
+        </td>
+        <td>
+          the HTTP/ftp proxy port number; default is 80
+        </td>
+        <td>
+          int
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          proxyuser
+        </td>
+        <td>
+          set the proxy user. Probably requires a password to accompany this setting. Default=""
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          socksproxyhost
+        </td>
+        <td>
+          The name of a Socks server. Set to "" to turn socks proxying off.
+        </td>
+        <td>
+          String
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td>
+          socksproxyport
+        </td>
+        <td>
+          Set the ProxyPort for socks connections. The default value is 1080
+        </td>
+        <td>
+          int
+        </td>
+    </tr>
+
+
+        </table>
+
+    <!-- End Attributes -->
+
+          <h3>Parameters as nested elements</h3></a>
+
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/sos.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/sos.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/sos.html	(revision 14989)
@@ -0,0 +1,503 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+
+  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SOS Tasks</title>
+
+</head>
+<body>
+
+<div align="center">
+<h1>SourceOffSite Tasks User Manual</h1>
+
+<div align="left">by
+<ul>
+<li><a href="mailto:jesse@cryptocard.com">Jesse Stockall</a></li>
+</ul>
+Version 1.1 2002/01/23
+<br>
+<br>
+
+<hr width="100%" size="2">
+<h2>Contents</h2>
+
+<ul>
+    <li><a href="#intro">Introduction</a></li>
+    <li><a href="#tasks">The Tasks</a></li>
+
+</ul>
+<br>
+
+<h2><a name="intro">Introduction</a> </h2>
+
+<p>These tasks provide an interface to the <a href="http://msdn.microsoft.com/ssafe/default.asp" target="_top">
+Microsoft Visual SourceSafe</a> SCM via <a href="http://www.sourcegear.com">
+SourceGear's</a> <a href="http://sourcegear.com/sos/index.htm">SourceOffSite</a>
+product. SourceOffSite is an add-on to Microsoft's VSS, that allows remote
+development teams and tele-commuters that need fast and secure read/write
+access to a centralized SourceSafe database via any TCP/IP connection. SOS
+provides Linux ,Solaris &amp; Windows clients. The
+<code> org.apache.tools.ant.taskdefs.optional.sos</code>
+package consists  of a simple framework to support SOS functionality as well
+as some Ant tasks  encapsulating frequently used SOS commands.  Although it
+is possible to use  these commands on the desktop,  they were primarily intended
+to be used by  automated build systems. These tasks have been tested with
+SourceOffSite  version 3.5.1 connecting to VisualSourceSafe 6.0. The tasks
+have been tested with Linux, Solaris &amp; Windows2000.</p>
+
+<h2><a name="tasks">The Tasks</a> </h2>
+
+<table border="0" cellspacing="0" cellpadding="3">
+       <tbody>
+         <tr>
+           <td><a href="#SOSGet">sosget</a></td>
+           <td>Retrieves a read-only copy of the specified project or file.</td>
+         </tr>
+         <tr>
+           <td><a href="#SOSLabel">soslabel</a></td>
+           <td>Assigns a label to the specified project.</td>
+         </tr>
+         <tr>
+           <td><a href="#SOSCheckIn">soscheckin</a></td>
+           <td>Updates VSS with changes made to a checked out file or project,
+           and unlocks the VSS master copy.</td>
+         </tr>
+         <tr>
+           <td><a href="#SOSCheckOut">soscheckout</a></td>
+           <td>Retrieves a read-write copy of the specified project
+           or file, locking the&nbsp;VSS master copy</td>
+         </tr>
+
+  </tbody>
+</table>
+     <br>
+
+<hr width="100%" size="2">
+<h2>Task Descriptions</h2>
+
+<h2><a name="SOSGet"></a>SOSGet<br>
+     </h2>
+<h3>Description</h3>
+             Task to perform GET commands with SOS<br>
+<h3>Parameters</h3>
+     </div>
+     </div>
+
+<table border="1" cellpadding="2" cellspacing="0">
+     <tbody>
+       <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+        </tr>
+        <tr>
+          <td>soscmd</td>
+          <td>Directory which contains soscmd(.exe) <br>
+          soscmd(.exe) must be in the path if this is not specified</td>
+          <td>No</td>
+        </tr>
+        <tr>
+           <td>vssserverpath</td>
+           <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>sosserverpath</td>
+           <td>address &amp; port of the SOS server  - eg. 192.168.0.1:8888</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>projectpath</td>
+           <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>file</td>
+           <td>Filename to act upon<br>
+           If no file is specified then act upon the project</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>username</td>
+           <td>SourceSafe username</td>
+           <td>Yes</td>
+        </tr>
+        <tr>
+           <td>password</td>
+           <td>SourceSafe password</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>localpath</td>
+           <td>Override the working directory and get to the specified path</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>soshome</td>
+           <td>The path to the SourceOffSite home directory</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>nocompress</td>
+           <td>true or false - disable compression</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>recursive</td>
+           <td>true or false - Only works with the GetProject command</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>version</td>
+           <td>a version number to get - Only works with the GetFile command</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>label</td>
+           <td>a label version to get - Only works with the GetProject command</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>nocache</td>
+           <td>true or false - Only needed if SOSHOME is set as an environment variable</td>
+           <td>No</td>
+        </tr>
+        <tr>
+           <td>verbose</td>
+           <td>true or false - Status messages are displayed</td>
+           <td>No</td>
+        </tr>
+  </tbody>
+</table>
+
+<h3>Example</h3>
+
+<pre>
+&lt;sosget verbose=&quot;true&quot;
+        recursive=&quot;true&quot;
+        username=&quot;build&quot;
+        password=&quot;build&quot;
+        localpath=&quot;tmp&quot;
+        projectpath=&quot;$/SourceRoot/project1&quot;
+        sosserverpath=&quot;192.168.10.6:8888&quot;
+        vssserverpath=&quot;d:\vss\srcsafe.ini&quot;/&gt;
+</pre>
+<small>Connects to a SourceOffsite server on 192.168.10.6:8888 with
+build,build as the username &amp; password. The SourceSafe  database resides
+on the same box as the SOS server  &amp; the VSS database  is at
+&quot;d:\vss\srcsafe.ini&quot; Does a recursive GetProject on
+$/SourceRoot/project1, using tmp as the working
+directory. </small><br>
+<br>
+
+<hr width="100%" size="2">
+<h2><a name="SOSLabel"></a>SOSLabel</h2>
+
+<h3>Description</h3>
+             Task to perform Label commands with SOS<br>
+<h3>Parameters</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+    <tbody><tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+    </tr>
+    <tr>
+      <td>soscmd</td>
+      <td>Directory which contains soscmd(.exe) <br>
+      soscmd(.exe) must be in the path if this is not specified</td>
+      <td>No</td>
+    </tr>
+    <tr>
+       <td>vssserverpath</td>
+       <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>sosserverpath</td>
+       <td>address and port of the SOS server  - eg. 192.168.0.1:8888</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>projectpath</td>
+       <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>username</td>
+       <td>SourceSafe username</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>password</td>
+       <td>SourceSafe password</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>label</td>
+       <td>The label to apply to a project</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>comment</td>
+       <td>A comment to be applied to all files being labeled</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>verbose</td>
+       <td>true or false - Status messages are displayed</td>
+       <td>No</td>
+    </tr>
+  </tbody>
+</table>
+
+<h3>Example</h3>
+<pre>
+&lt;soslabel username=&quot;build&quot;
+          password=&quot;build&quot;
+          label=&quot;test label&quot;
+          projectpath=&quot;$/SourceRoot/project1&quot;
+          sosserverpath=&quot;192.168.10.6:8888&quot;
+          vssserverpath=&quot;d:\vss\srcsafe.ini&quot;/&gt;
+</pre>
+
+<small>Connects to a SourceOffsite server on 192.168.10.6:8888 with
+build,build as the username &amp; password. The SourceSafe database resides
+on the same box as  the  SOS server  &amp; the VSS database is at
+&quot;d:\vss\srcsafe.ini&quot;. Labels the $/SourceRoot/project1
+project with &quot;test label&quot;.</small><br>
+<br>
+
+<hr width="100%" size="2"><br>
+
+<h2><a name="SOSCheckIn"></a>SOSCheckIn</h2>
+
+<h3>Description</h3>
+        Task to perform CheckIn commands with SOS<br>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+       <tbody>
+    <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+    </tr>
+    <tr>
+      <td>soscmd</td>
+      <td>Directory which contains soscmd(.exe) <br>
+      soscmd(.exe) must be in the path if this is not specified</td>
+      <td>No</td>
+    </tr>
+    <tr>
+       <td>vssserverpath</td>
+       <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>sosserverpath</td>
+       <td>address and port of the SOS server  - eg. 192.168.0.1:8888</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>projectpath</td>
+       <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>file</td>
+       <td>Filename to act upon<br> If no file is specified then act upon the project</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>username</td>
+       <td>SourceSafe username</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>password</td>
+       <td>SourceSafe password</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>localpath</td>
+       <td>Override the working directory and get to the specified path</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>soshome</td>
+       <td>The path to the SourceOffSite home directory</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocompress</td>
+       <td>true or false - disable compression</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>recursive</td>
+       <td>true or false - Only works with the CheckOutProject command</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocache</td>
+       <td>true or false - Only needed if SOSHOME is set as an environment variable</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>verbose</td>
+       <td>true or false - Status messages are displayed</td>
+       <td>No</td>
+    </tr>
+    <tr><td>comment</td>
+       <td>A comment to be applied to all files being checked in</td>
+       <td>No</td>
+    </tr>
+ </tbody>
+</table>
+
+<h3>Example</h3>
+<pre>
+&lt;soscheckin username=&quot;build&quot;
+            password=&quot;build&quot;
+            file=&quot;foobar.txt&quot;
+            verbose=&quot;true&quot;
+            comment=&quot;comment abc&quot;
+            projectpath=&quot;$/SourceRoot/project1&quot;
+            sosserverpath=&quot;server1:8888&quot;
+            vssserverpath=&quot;\\server2\vss\srcsafe.ini&quot;/&gt;
+</pre>
+
+<small>Connects to a SourceOffsite server on server1:8888 with build,build as
+the username &amp; password. The SourceSafe database resides on a different
+box (server2) &amp; the VSS database is on a share called
+&quot;vss&quot;. Checks-in only the &quot;foobar.txt&quot; file adding
+a comment of &quot;comment abc&quot;. Extra status messages will be
+displayed on screen.</small><br>
+<br>
+
+<hr width="100%" size="2">
+<h2><a name="SOSCheckOut"></a>SOSCheckOut</h2>
+
+<h3>Description</h3>
+       Task to perform CheckOut commands with SOS<br>
+
+<h3>Parameters</h3>
+
+<table border="1" cellpadding="2" cellspacing="0">
+       <tbody>
+    <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+    </tr>
+    <tr>
+      <td>soscmd</td>
+      <td>Directory which contains soscmd(.exe) <br>
+      soscmd(.exe) must be in the path if this is not specified</td>
+      <td>No</td>
+    </tr>
+    <tr>
+       <td>vssserverpath</td>
+       <td>path to the srcsafe.ini  - eg. \\server\vss\srcsafe.ini</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>sosserverpath</td>
+       <td>address and port of the SOS server  - eg. 192.168.0.1:8888</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>projectpath</td>
+       <td>SourceSafe project path - eg. $/SourceRoot/Project1</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>file</td>
+       <td>Filename to act upon<br> If no file is specified then act upon the project</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>username</td>
+       <td>SourceSafe username</td>
+       <td>Yes</td>
+    </tr>
+    <tr>
+       <td>password</td>
+       <td>SourceSafe password</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>localpath</td>
+       <td>Override the working directory and get to the specified path</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>soshome</td>
+       <td>The path to the SourceOffSite home directory</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocompress</td>
+       <td>true or false - disable compression</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>recursive</td>
+       <td>true or false - Only works with the CheckOutProject command</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>nocache</td>
+       <td>true or false - Only needed if SOSHOME is set as an environment variable</td>
+       <td>No</td>
+    </tr>
+    <tr>
+       <td>verbose</td>
+       <td>true or false - Status messages are displayed</td>
+       <td>No</td>
+    </tr>
+  </tbody>
+</table>
+     <br>
+
+<h3>Example</h3>
+<pre>
+&lt;soscheckout soscmd=&quot;/usr/local/bin&quot;
+             verbose=&quot;true&quot;
+             username=&quot;build&quot;
+             password=&quot;build&quot;
+             projectpath=&quot;$/SourceRoot/project1&quot;
+             sosserverpath=&quot;192.168.10.6:8888&quot;
+             vssserverpath=&quot;\\server2\vss\srcsafe.ini&quot;/&gt;
+</pre>
+
+<small>Connects to a SourceOffsite server on server1:8888 with build,build as
+the username &amp; password. The SourceSafe database resides on a different
+box (server2) &amp; the VSS database is on a share called
+&quot;vss&quot;. Checks-out &quot;project1&quot;, Only the
+&quot;project1&quot; directory will be locked as the recursive option
+was not set. Extra status messages will be displayed on screen. The
+soscmd(.exe) file to be used resides in /usr/local/bin.</small><br>
+<br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/sound.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/sound.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/sound.html	(revision 14989)
@@ -0,0 +1,119 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Sound Task</title>
+</head>
+
+<body>
+
+<h2><a name="sound">Sound</a></h2>
+<h3>Description</h3>
+<p>Plays a sound-file at the end of the build, according to whether
+the build failed or succeeded. You can specify either a specific
+sound-file to play, or, if a directory is specified, the
+<code>&lt;sound&gt;</code> task will randomly select a file to play.
+Note: At this point, the random selection is based on all the files
+in the directory, not just those ending in appropriate suffixes
+for sound-files, so be sure you only have sound-files in the 
+directory you specify.</p>
+<p>
+Unless you are running on Java 1.3 or later, you need the Java Media Framework
+on the classpath (javax.sound). 
+</p>
+
+
+<h3>Nested Elements</h3>
+<h4>success</h4>
+<p>Specifies the sound to be played if the build succeeded.</p>
+<h4>fail</h4>
+<p>Specifies the sound to be played if the build failed.</p>
+
+<h3>Nested Element Parameters</h3>
+<p>
+The following attributes may be used on the <code>&lt;success&gt;</code> 
+and <code>&lt;fail&gt;</code> elements:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">source</td>
+    <td valign="top">the path to a sound-file directory, or the name of a
+specific sound-file, to be played.
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">loops</td>
+    <td valign="top">the number of extra times to play the sound-file;
+      default is <code>0</code>.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">duration</td>
+    <td valign="top">the amount of time (in milliseconds) to play
+      the sound-file.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;target name=&quot;fun&quot; if=&quot;fun&quot; unless=&quot;fun.done&quot;&gt;
+  &lt;sound&gt;
+    &lt;success source=&quot;${user.home}/sounds/bell.wav&quot;/&gt;
+    &lt;fail source=&quot;${user.home}/sounds/ohno.wav&quot; loops=&quot;2&quot;/&gt;
+  &lt;/sound&gt;
+  &lt;property name=&quot;fun.done&quot; value=&quot;true&quot;/&gt;
+&lt;/target&gt;
+</pre>
+</blockquote>
+plays the <code>bell.wav</code> sound-file if the build succeeded, or
+the <code>ohno.wav</code> sound-file if the build failed, three times,
+if the <code>fun</code> property is set to <code>true</code>.
+If the target
+is a dependency of an &quot;initialization&quot; target that other
+targets depend on, the
+<code>fun.done</code> property prevents the target from being executed
+more than once.
+<blockquote>
+<pre>
+&lt;target name=&quot;fun&quot; if=&quot;fun&quot; unless=&quot;fun.done&quot;&gt;
+  &lt;sound&gt;
+    &lt;success source=&quot;//intranet/sounds/success&quot;/&gt;
+    &lt;fail source=&quot;//intranet/sounds/failure&quot;/&gt;
+  &lt;/sound&gt;
+  &lt;property name=&quot;fun.done&quot; value=&quot;true&quot;/&gt;
+&lt;/target&gt;
+</pre>
+</blockquote>
+randomly selects a sound-file to play when the build succeeds or fails.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/splash.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/splash.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/splash.html	(revision 14989)
@@ -0,0 +1,119 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="Splash">Splash</a></h2>
+<p>by Les Hughes (leslie.hughes@rubus.com)
+<h3>Description</h3>
+<p>This task creates a splash screen. The splash screen is displayed
+for the duration of the build and includes a handy progress bar as
+well. Use in conjunction with the sound task to provide interest
+whilst waiting for your builds to complete...</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+    <td align="center" valign="top"><b>Default</b></td>
+  </tr>
+  <tr>
+    <td valign="top">imageurl</td>
+    <td valign="top">A URL pointing to an image to display.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">antlogo.gif from the classpath</td>
+  </tr>
+ 
+  <tr>
+    <td valign="top">showduration</td>
+    <td valign="top">Initial period to pause the build to show the
+    splash in milliseconds.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">5000 ms</td>
+  </tr>  
+</table>
+<h3>Deprecated properties</h3>
+  
+The following properties can be used to configure the proxy settings to retrieve
+an image from behind a firewall. However, the settings apply not just to this
+task, but to all following tasks. Therefore they are now mostly deprecated in 
+preference to the <code>&lt;setproxy&gt;</code> task, that makes it clear to readers of
+the build exactly what is going on. We say mostly as this task's support
+includes proxy authentication, so you may still need to use its
+proxy attributes.
+  
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top">useproxy</td>
+    <td valign="top">Use a proxy to access imgurl. Note: Only tested
+    on JDK 1.2.2 and above</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+  <tr>
+    <td valign="top">proxy</td>
+    <td valign="top">IP or hostname of the proxy server</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">Proxy portnumber</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+  <tr>
+    <td valign="top">user</td>
+    <td valign="top">User to authenticate to the proxy as.</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">Proxy password</td>
+    <td valign="top" align="center">No</td>
+    <td valign="top" align="center">None</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;splash/&gt;
+</pre></blockquote>
+<p>Splash <code>images/ant_logo_large.gif</code> from the classpath.</p>
+<blockquote><pre>
+&lt;splash imageurl=&quot;http://jakarta.apache.org/images/jakarta-logo.gif&quot;
+           useproxy=&quot;true&quot;
+           showduration=&quot;5000&quot;/&gt;
+
+</pre></blockquote>
+<p>Splashes the jakarta logo, for
+an initial period of 5 seconds.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/sshexec.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/sshexec.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/sshexec.html	(revision 14989)
@@ -0,0 +1,181 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>SSHEXEC Task</title>
+</head>
+
+<body>
+
+<h2><a name="sshexec">SSHEXEC</a></h2>
+<h3>Description</h3>
+
+<p><em>since Ant 1.6</em></p>
+
+<p>Runs a command on a remote machine running SSH daemon.
+</p>
+
+<p><b>Note:</b> This task depends on external libraries not included
+in the Ant distribution.  See <a
+href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.  This task has been tested with jsch-0.1.29 and above
+and won't work with versions of jsch earlier than
+0.1.28.</p>
+
+<p>See also the <a href="scp.html">scp task</a></p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">host</td>
+    <td valign="top">The hostname or IP address of the remote host to which you wish to connect.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username on the remote host to which you are connecting.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">command</td>
+    <td valign="top">The command to run on the remote host.</td>
+    <td valian="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">port</td>
+    <td valign="top">The port to connect to on the remote host.</td>
+    <td valian="top" align="center">No, defaults to 22.</td>
+  </tr>
+  <tr>
+    <td valign="top">trust</td>
+
+    <td valign="top">This trusts all unknown hosts if set to yes/true.<br>
+      <strong>Note</strong> If you set this to false (the default), the
+      host you connect to must be listed in your knownhosts file, this
+      also implies that the file exists.</td>
+    <td valian="top" align="center">No, defaults to No.</td>
+  </tr>
+  <tr>
+    <td valign="top">knownhosts</td>
+    <td valign="top">This sets the known hosts file to use to validate
+    the identity of the remote host.  This must be a SSH2 format file.
+    SSH1 format is not supported.</td>
+    <td valian="top" align="center">No, defaults to
+    ${user.home}/.ssh/known_hosts.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Whether to halt the build if the command does not complete successfully.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+     <td valign="top">The password.</td>
+     <td valign="top" align="center">Not if you are using key based
+     authentication or the password has been given in the file or
+     todir attribute.</td>
+  </tr>
+  <tr>
+    <td valign="top">keyfile</td>
+     <td valign="top">Location of the file holding the private key.</td>
+     <td valign="top" align="center">Yes, if you are using key based
+     authentication.</td>
+  </tr>
+  <tr>
+    <td valign="top">passphrase</td>
+     <td valign="top">Passphrase for your private key.</td>
+     <td valign="top" align="center">No, defaults to an empty string.</td>
+  </tr>
+  <tr>
+    <td valign="top">output</td>
+    <td valign="top">Name of a file to which to write the output.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">append</td>
+    <td valign="top">Whether output file should be appended to or overwritten. Defaults to false, meaning overwrite any existing file.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">outputproperty</td>
+    <td valign="top">The name of a property in which the output of the 
+      command should be stored.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">timeout</td>
+    <td valign="top">Stop the command if it doesn't finish within the
+      specified time (given in milliseconds). Defaults to 0 which means &quot;wait forever&quot;.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p><b>Run a command on a remote machine using password authentication</b></p>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;dude&quot;
+	password=&quot;yo&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+
+<p><b>Run a command on a remote machine using key authentication</b></p>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;dude&quot;
+	keyfile=&quot;${user.home}/.ssh/id_dsa&quot;
+	passphrase=&quot;yo its a secret&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+
+<p><b>Run a command on a remote machine using key authentication with no passphrase</b></p>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;dude&quot;
+	keyfile=&quot;${user.home}/.ssh/id_dsa&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+
+<p><strong>Security Note:</strong>  Hard coding passwords and/or usernames
+in sshexec task can be a serious security hole.  Consider using variable
+substitution and include the password on the command line.  For example:<br>
+<pre>
+  &lt;sshexec host=&quot;somehost&quot;
+	username=&quot;${username}&quot;
+	password=&quot;${password}&quot;
+	command=&quot;touch somefile&quot;/&gt;
+</pre>
+Invoke ant with the following command line:
+<pre>
+    ant -Dusername=me -Dpassword=mypassword target1 target2
+</pre>
+</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/starteam.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/starteam.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/starteam.html	(revision 14989)
@@ -0,0 +1,990 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>StarTeam Tasks</title>
+</head>
+<body>
+<h1>StarTeam Support</h1>
+<ul>
+  <li><a href="#stcheckout">STCheckout</a></li> 
+  <li><a href="#stcheckin">STCheckin</a></li>
+  <li><a href="#stlabel">STLabel</a></li>
+  <li><a href="#stlist">STList</a></li>
+  <li><a href="#starteam"><i>StarTeam (deprecated) </i></a></li>
+</ul>
+
+<p>
+The StarTeam revision control system was recently acquired by Borland.
+These tasks make use of functions from the StarTeam API to work with that system.  
+As a result they are only available to licensed users of StarTeam.  You must have
+<CODE>starteam-sdk.jar</CODE> in your classpath to run these tasks.
+For more information about the StarTeam API and how to license it, see
+the <a href="http://www.borland.com/starteam/">Borland</a> web site.</p>
+  <p>
+    <em>All the StarTeam task names are in lower case.</em>
+  </p>
+<h3>Important Note on Installation and Licensing:</h3>
+<p>
+<b>On Windows machines, the mere presence of <CODE>starteam-sdk.jar</CODE> on the classpath 
+is not sufficient for getting these tasks to work properly.</b>  These tasks also require a 
+fully-installed and fully-licensed version of the StarGate Runtime.  This is part 
+of a StarTeam client installation or may be installed separately.  The full client
+install is not required.  In particular, the Windows path must include the directory where 
+the StarGate Runtime <CODE>.dll</CODE> files are installed.
+</p><p>
+Earlier versions of Ant (prior to 1.5.2) did not have this restriction because they
+were not as dependent on the StarTeam runtime - which the newer versions use to access
+StarTeam file status information.  The older versions lacked this important capability.
+</p>
+<hr></hr>
+
+<a name="common-params">
+<h2>Common Parameters for All Starteam Tasks</h2></a>
+<p>
+The following parameters, having to do with making the connection to a StarTeam project, are common to all the following tasks except the deprecated <i>StarTeam</i> task.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+
+  <tr>
+    <td valign="top">URL</td>
+    <td valign="top">A string of the form <code>servername:portnum/project/view</code> 
+which enables user to set all of these elements in one string. </td>
+    <td align="center" valign="center"> Either this ...</td>
+  </tr>  
+  <tr>
+    <td valign="top">servername</td>
+    <td valign="top">The name of the StarTeam server.</td>
+    <td align="center" valign="center" rowspan = "4">... or <b>all four</b> of these must be defined.</td>  
+   </tr>
+  <tr>
+    <td valign="top">serverport</td>
+    <td valign="top">The port number of the StarTeam server.</td>
+  </tr>
+  <tr>
+    <td valign="top">projectname</td>
+    <td valign="top">The name of the StarTeam project on which to operate.</td>
+  </tr>
+  <tr>
+    <td valign="top">viewname</td>
+    <td valign="top">The name of the view in the StarTeam project on which to operate.</td>
+  </tr>
+
+
+</table>
+
+<hr></hr>
+
+<a name="stcheckout">
+<h2>STCheckout</h2></a>
+
+<h3>Description</h3>
+
+Checks out files from a StarTeam project.
+
+<p>
+The <i>includes</i> and <i>excludes</i> attributes function differently from
+other tasks in Ant. Inclusion/exclusion by folder is NOT supported.
+</p>
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+
+  <tr>
+    <td valign="top">rootstarteamfolder</td>
+    <td valign="top">The root of the subtree in the StarTeam repository from which to 
+    check out files.  Defaults to the root folder of the view ('/'). 
+      <b><i>If supplied, this should always be an "absolute" path, that is, it should begin with a '/'.  
+      Relative paths have little meaning in this context and confuse StarTeam.</i></b>
+      </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">rootlocalfolder</td>
+    <td valign="top">The local folder which will be the root of the tree to which files are checked out.  If this is not supplied, then the StarTeam "default folder" associated with <i>rootstarteamfolder</i> is used.
+   </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  
+  <tr>
+    <td valign="top">createworkingdirs</td>
+    <td valign="top">creates local folders even when the corresponding StarTeam folder is empty.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">deleteuncontrolled</td>
+    <td valign="top">if true, any files NOT in StarTeam will be deleted.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only check out files that match at least one of the patterns in this list.  Patterns must be separated by <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not check out files that match at least one of the patterns in this list.  Patterns must be separated by  <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">label</td>
+    <td valign="top">Check out files as of this label.  The label must exist in starteam or an exception will be thrown.</td>
+    <td align="center" valign="center" rowspan="2">Either or neither, but not both, may be specified.  Neither <code>locked</code> or <code>unlocked</code> may be true if either <code>label</code> or <code>asofdate</code> is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">asofdate</td>
+    <td valign="top">Check out files as of this date.  The date must
+    be formatted in ISO8601 datetime
+    (<code>yyyy-MM-dd'T'HH:mm:ss</code>), ISO8601
+    date(<code>yyyy-MM-dd</code>) or a user-defined SimpleDateFormat
+    defined in the <code>asofDateFormat</code> attribute.  If the date
+    is not parsable by the default or selected format, an exception
+    will be thrown.  <em>Since Ant 1.6.</em></td>
+  </tr>
+  <tr>
+    <td valign="top">asofdateformat</td>
+    <td valign="top">java.util.SimpleDateFormat compatible string used
+    to parse the <code>asofdate</code> attribute.  <em>Since Ant
+    1.6.</em></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">recursive</td>
+    <td valign="top">Indicates if subfolders should be searched for files to check out.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">forced</td>
+    <td valign="top">If true, checkouts will occur regardless of the status 
+that StarTeam is maintaining for the file.   If false, status will be used to determine which files to check out. Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr> 
+ <tr>
+    <td valign="top">locked</td>
+    <td valign="top">If true, file will be locked against changes by other 
+users.  If false (default) has no effect. 
+    <td align="center" valign="center" rowspan="2">Either or neither, but not both, may be true. Neither may be true if a <code>label</code> or an <code>asofdate</code> is specified.</td>
+  </tr>
+  <tr>
+    <td valign="top">unlocked</td>
+    <td valign="top">If true, file will be unlocked so that other users may
+change it.  This is a way to reverse changes that have not yet been checked in.
+If false (default) has no effect.</td> 
+  </tr>
+  <tr>
+    <td valign="top">userepositorytimestamp</td>
+    <td valign="top">true means checked out files will get the repository timestamp.
+false(default) means the checked out files will be timestamped at the time
+of checkout.</td>    <td align="center" valign="top">no</td>
+
+  </tr>
+  <tr>
+    <td valign="top">preloadfileinformation</td>
+    <td valign="top">The StarTeam server has the ability to preload file metadata for an
+    entire tree prior to beginning action on that tree.  Doing so can in some instances 
+    lead to substantially faster actions, particularly over large trees.  Setting this 
+    to "yes" (default) engages this functionality, setting it to "no" turns it off.</td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+    
+  <tr>
+    <td valign="top">convertEOL</td>
+    <td valign="top">If true, (default) all ascii files will have their end-of-line 
+    characters adjusted to that of the local machine on checkout.  This is normally
+    what you'd want but if for some reason you don't want that to happen, set it to false
+    and the files will be checked out with whatever end-of-line characters are used on
+    the server. </td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;stcheckout servername="STARTEAM" 
+              serverport="49201"
+              projectname="AProject" 
+              viewname="AView"
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              forced="true"
+  /&gt;
+</pre>
+
+The minimum necessary to check out files out from a StarTeam server.  This will
+check out all files in the <i>AView</i> view of the <i>AProject</i> project to
+<code>C:\dev\buildtest\co</code>.  Empty folders in StarTeam will have local folders 
+created for them and any non-StarTeam files found in the tree will be deleted.
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView" 
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              forced="true"
+  /&gt;
+</pre>
+And this is a simpler way of accomplishing the same thing as the previous example, using the URL attribute.
+<br></br>
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView" 
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              rootstarteamfolder="\Dev"
+              excludes="*.bak *.old"
+              label="v2.6.001"
+              forced="true"
+  /&gt;
+</pre>
+
+This will check out all files from the <i>Dev</i> folder and below that do not
+end in <i>.bak</i> or <i>.old</i> with the label <i>v2.6.001</i>.  
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              includes="*.htm,*.html"
+              excludes="index.*"
+              forced="true"
+  /&gt;
+</pre>
+
+     
+This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
+<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
+not be checked out by this command.
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootlocalfolder="C:\dev\buildtest\co"
+              includes="*.htm,*.html"
+              excludes="index.*"
+              forced="true"
+              recursive="false"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check out files in 
+C:\dev\buildtest\co, because of the turning off of the recursive attribute.
+
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootstarteamfolder="src/java"
+              rootlocalfolder="C:\dev\buildtest\co"
+              forced="true"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+  &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+              username="auser"
+              password="secret"
+              rootstarteamfolder="src/java"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;stcheckout URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+             rootlocalfolder="C:\dev\buildtest\co\src\java"
+             forced="true"
+  /&gt;
+</pre>
+
+In the preceding three examples, assuming that the AProject project has a default folder of
+"C:\work\AProject", the first example will check out the tree of files rooted in the src/java folder of the AView view of the AProject in the StarTeam repository to a local tree rooted at C:\dev\buildtest\co, 
+the second to a tree rooted at C:\work\AProject\src\java (since no <i>rootlocalfolder</i> is specified) and the third to a tree rooted at C:\dev\buildtest\co\src\java.  Note also, that since the second example does not set "forced" true, only those files which the repository considers out-of-date will be checked out.
+<hr></hr>
+
+<a name="stcheckin">
+<h2>STCheckin</h2></a>
+
+<h3>Description</h3>
+
+Checks files into a StarTeam project.  Optionally adds files and in the local tree that are not managed by the repository to its control.
+
+<p>
+The <i>includes</i> and <i>excludes</i> attributes function differently from
+other tasks in Ant. Inclusion/exclusion by folder is NOT supported.
+</p>
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">rootstarteamfolder</td>
+    <td valign="top">The root of the subtree in the StarTeam repository into which to 
+    files will be checked.  Defaults to the root folder of the view ('/').
+       <b><i>If supplied, this should always be an "absolute" path, that is, it should begin with a '/'.  
+      Relative paths have little meaning in this context and confuse StarTeam.</i></b></td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">rootlocalfolder</td>
+    <td valign="top">The local folder which will be the root of the tree to which files are checked out.  If this is not supplied, then the StarTeam "default folder" associated with <i>rootstarteamfolder</i> is used. </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  
+
+  <tr>
+    <td valign="top">comment</td>
+    <td valign="top">Checkin comment to be saved with the file.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+
+  <tr>
+    <td valign="top">adduncontrolled</td>
+    <td valign="top">if true, any files or folders NOT in StarTeam will be 
+added to the repository.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only check in files that match at least one of the patterns in this list.  Patterns must be separated by <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not check in files that match at least one of the patterns in this list.  Patterns must be separated by  <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">recursive</td>
+    <td valign="top">Indicates if subfolders should be searched for files to check in.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">forced</td>
+    <td valign="top">If true, checkins will occur regardless of the status 
+that StarTeam is maintaining for the file.  If false, checkins will use this status to decide which files to update.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <td valign="top">unlocked</td>
+    <td valign="top">If true, file will be unlocked so that other users may
+change it.  If false (default) lock status will not change.
+    <td align="center" valign="top">no</td> 
+  </tr>
+  <tr>
+    <td valign="top">preloadfileinformation</td>
+    <td valign="top">The StarTeam server has the ability to preload file metadata for an
+    entire tree prior to beginning action on that tree.  Doing so can in some instances 
+    lead to substantially faster actions, particularly over large trees.  Setting this 
+    to "yes" (default) engages this functionality, setting it to "no" turns it off.</td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+  </table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;stcheckin servername="STARTEAM" 
+             serverport="49201"
+             projectname="AProject" 
+             viewname="AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             forced="true"
+  /&gt;
+</pre>
+
+The minimum necessary to check files into a StarTeam server.  This will
+check all files on the local tree rooted at <code>C:\dev\buildtest\co</code>
+into the <i>AView</i> view of the <i>AProject</i> project in the repository.
+For files and folders in the local tree but not in starteam, nothing will be done.  Since the <i>forced</i> attribute is set, the files which are checked in will be checked in without regard to what the StarTeam repository considers their status to be.  This is a reasonable choice of attributes since StarTeam's status for a file is calculated based on the local file in the StarTeam default directory, not on the directory we are actually working with.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView" 
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             forced="true"
+  /&gt;
+</pre>
+And this is a simpler way of giving the same commands as the command above using the URL shortcut.
+<br></br>
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView" 
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="\Dev"
+             excludes="*.bak *.old"
+             forced="true"
+  /&gt;
+</pre>
+
+This will check all files in to the <i>Dev</i> folder and below that do not
+end in <i>.bak</i> or <i>.old</i> from the tree rooted at"C:\dev\buildtest\co" .  
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             includes="*.htm,*.html"
+             excludes="index.*"
+             forced="true"
+  /&gt;
+</pre>
+
+     
+This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
+<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
+not be checked in by this command.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="src/java"
+             includes="*.htm,*.html"
+             excludes="index.*"
+             forced="true"
+             recursive="false"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check in files from 
+C:\dev\buildtest\co, because of the turning off of the recursive attribute.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="src/java"
+             includes="version.txt"
+             forced="true"
+             recursive="false"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check only in one file, C:\dev\buildtest\co\version.txt to the StarTeam folder src/java.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootlocalfolder="C:\dev\buildtest\co"
+             rootstarteamfolder="src/java"
+             includes="version.java"
+             forced="true"
+             recursive="false"
+             addUncontrolled="true"
+             comment="Fix Bug #667"
+  /&gt;
+</pre>
+This example is like the previous one, but will only check only in one file, C:\dev\buildtest\co\version.java to the StarTeam folder src/java.  Because the <i>addUncontrolled</i> attribute has been set, if StarTeam does not already control this file in this location, it will be added to the repository.  Also, it will write a comment to the repository for this version of the file.
+
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+             rootlocalfolder="C:\dev\buildtest\co"
+             forced="true"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+  &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;stcheckin URL="STARTEAM:49201/Aproject/AView"
+             username="auser"
+             password="secret"
+             rootstarteamfolder="src/java"
+             rootlocalfolder="C:\dev\buildtest\co\src\java"
+             forced="true"
+  /&gt;
+</pre>
+
+In the preceding three examples, assuming that the AProject project has a default folder of C:\work\buildtest\co\AProject,  
+the first example will check in files from a tree rooted at C:\dev\buildtest\co, 
+the second from a tree rooted at C:\work\buildtest\co\AProject\src\java, 
+and the third from a tree rooted at C:\dev\buildtest\co\src\java all to a tree rooted at src/java
+
+<hr></hr>
+
+<a name="stlabel">
+<h2>STLabel</h2></a>
+
+<h3>Description</h3>
+
+Creates a view label in StarTeam at the specified view.  The label will be classified by StarTeam as a "build label".  This task will fail if there already exists in <i>viewname</i> a label with the same name as the <i>label</i> parameter. 
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+
+  <tr>
+    <td valign="top">label</td>
+    <td valign="top">The name to be given to the label</td>
+    <td align="center" valign="top">yes</td>
+  </tr> 
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">A description of the label to be stored in the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">revisionlabel</td>
+    <td valign="top">Yes means that the label attribute is to be saved as a &quot;revision label&quot;.  No (default) means that it will be saved as a &quot;view label&quot;</td>
+    <td align="center" valign="top">no</td>
+  </tr> 
+  <tr>
+    <td valign="top">buildlabel</td>
+    <td valign="top">Yes means that the label attribute is to be saved as a &quot;build label&quot;.  
+      This means that Change Requests which have an &quot;AddressedIn&quot; field value of &quot;next build&quot;
+       will have this label assigned to that field when the label is created.  
+       No (default) means that no CRs will have this label assigned to them.  This will have no effect if <b>revisionlabel</b> is also true.  </td>
+    <td align="center" valign="top">no</td>
+  </tr> 
+
+ <tr>
+    <td valign="top">lastbuild</td>
+    <td valign="top">The timestamp of the build that will be stored with the label.  Must be formatted <code>yyyyMMddHHmmss</code></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+This example shows the use of this tag.  It will create a View label that is a build label named <i>Version 6.2</i> with
+<i>&quot;Thorough description&quot;</i> as its description.
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property="nowstamp" pattern="yyyyMMddHHmmss" locale="en"/&gt;
+  &lt;/tstamp&gt;  
+  &lt;stlabel URL="STARTEAM:49201/Aproject/AView"
+           username="auser"
+           password="secret"
+           label="Version 6.2"
+           lastbuild="${nowstamp}"
+           description="Thorough description"
+  /&gt;
+</pre>
+This example creates a non-build View label named <i>Version 6.3</i> with
+<i>&quot;Thorough description&quot;</i> as its description.
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property="nowstamp" pattern="yyyyMMddHHmmss" locale="en"/&gt;
+  &lt;/tstamp&gt;  
+  &lt;stlabel URL="STARTEAM:49201/Aproject/AView"
+           username="auser"
+           password="secret"
+           label="Version 6.3"
+           lastbuild="${nowstamp}"
+           description="Thorough description"
+           buildlabel="false"
+  /&gt;
+</pre>
+This example will create a Revision label that is a build label named <i>Version 6.2.00.001</i> with
+<i>&quot;revision label&quot;</i> as its description.
+<pre>
+  &lt;tstamp&gt;
+    &lt;format property="nowstamp" pattern="yyyyMMddHHmmss" locale="en"/&gt;
+  &lt;/tstamp&gt;  
+  &lt;stlabel URL="STARTEAM:49201/Aproject/AView"
+           username="auser"
+           password="secret"
+           label="Version 6.2.00.001"
+           description="revision label"
+           revisionlabel="true"
+  /&gt;
+</pre>
+
+<hr></hr>
+<a name="stlist">
+<h2>STList</h2></a>
+
+<h3>Description</h3>
+
+Produces a listing of the contents of the StarTeam repository at the specified view and StarTeamFolder.  The listing will contain the name of the user, if any, who has the file locked, the size of the file, its lastModifiedDate in the repository, the name of the file, and the status of the local file in the default local directory relative to the repository. 
+
+<h3>Parameters</h3>
+See also <A href="#common-params">the required common StarTeam parameters</A>.<br></br>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+
+  <tr>
+    <td valign="top">rootstarteamfolder</td>
+    <td valign="top">The root of the subtree in the StarTeam repository to be listed.  Defaults to the root folder of the view ('/'). <b><i>If supplied, this should always be an "absolute" path, that is, it should begin with a '/'.  
+      Relative paths have little meaning in this context and confuse StarTeam.</i></b></td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">rootlocalfolder</td>
+    <td valign="top">The local folder which will be the root of the tree to which files are compared.  If this is not supplied, then the StarTeam "default folder" associated with <i>rootstarteamfolder</i> is used and a status field will appear in the listing.  Otherwise, the status field will not appear.
+   </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+    <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only list files that match at least one of the patterns in this list.  Patterns must be separated by <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not list files that match at least one of the patterns in this list.  Patterns must be separated by  <i>commas</i>.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">label</td>
+    <td valign="top">List files, dates, and statuses as of this label.  The label must exist in starteam or an exception will be thrown.  If not specified, the most recent version of each file will be listed.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">asofdate</td>
+    <td valign="top">List files, dates, and statuses as of this date.
+    The date must be formatted in ISO8601 datetime
+    (<code>yyyy-MM-dd'T'HH:mm:ss</code>), ISO8601
+    date(<code>yyyy-MM-dd</code>) or a user-defined SimpleDateFormat
+    defined in the <code>asofDateFormat</code> attribute.  If the date
+    is not parsable by the default or selected format, an exception
+    will be thrown.  <em>Since Ant 1.6.</em></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">asofdateformat</td>
+    <td valign="top">java.util.SimpleDateFormat compatible string used
+    to parse the <code>asofdate</code> attribute.  <em>Since Ant
+    1.6.</em></td>
+    <td align="center" valign="top">no</td>
+  </tr>
+
+  <tr>
+    <td valign="top">recursive</td>
+    <td valign="top">Indicates if subfolders should be searched for files to list.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+    <tr>
+    <td valign="top">listuncontrolled</td>
+    <td valign="top">if true, any files or folders NOT in StarTeam will be included in the listing.
+    If false, they won't.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+    </tr>
+  
+  <tr>
+    <td valign="top">preloadfileinformation</td>
+    <td valign="top">The StarTeam server has the ability to preload file metadata for an
+    entire tree prior to beginning action on that tree.  Doing so can in some instances 
+    lead to substantially faster actions, particularly over large trees.  Setting this 
+    to "yes" (default) engages this functionality, setting it to "no" turns it off.</td>    
+    <td align="center" valign="top">no</td>
+  </tr>
+
+</table>
+<h3>Examples</h3>
+
+<pre>
+
+  &lt;stlist url="WASHINGTON:49201/build"
+          username="auser"
+          password="secret"
+ /&gt;
+</pre>
+
+The above command might produce the following listing:
+
+<pre>
+   [stlist] Folder: Build (Default folder: C:/work/build)
+   [stlist] Folder: dev (Default folder: C:/work/build/dev)
+   [stlist] Out of date  Sue Developer        1/1/02 7:25:47 PM CST     4368 build.xml
+   [stlist] Missing      George Hacker        1/1/02 7:25:49 PM CST       36 Test01.properties
+   [stlist] Current                           1/1/02 7:25:49 PM CST     4368 build2.xml
+   [stlist] Folder: test (Default folder C:/work/build/dev/test)
+   [stlist] Missing                           1/1/02 7:25:50 PM CST     4368 build2.xml
+</pre>
+
+while adding a <i>rootlocalfolder</i> and an <i>excludes</i> param ...
+
+<pre>
+
+  &lt;stlist url="WASHINGTON:49201/build"
+          username="auser"
+          password="secret"
+          rootlocalfolder="srcdir2"
+          excludes="*.properties"
+ /&gt;
+</pre>
+
+might produce this listing. The status is missing because we are not going against the default folder.
+
+<pre>
+   [stlist] overriding local folder to srcdir2
+   [stlist] Folder: Build (Local folder: srcdir2)
+   [stlist] Folder: dev (Local folder: srcdir2/dev)
+   [stlist] Sue Developer        1/1/02 7:25:47 PM CST     4368 build.xml
+   [stlist]                      1/1/02 7:25:49 PM CST     4368 build2.xml
+   [stlist] Folder: test (Local folder: srcdir2/dev/test)
+   [stlist]                      1/1/02 7:25:50 PM CST     4368 build2.xml
+ 
+
+</pre>
+
+<hr></hr>
+
+<a name="starteam">
+<h2>Starteam</h2></a>
+<h3><i>Deprecated</i></h3>
+<p><i>This task has been deprecated.  Use the <a href="#stcheckout">STCheckout</a> task instead.</i></p>
+<h3>Description</h3>
+
+Checks out files from a StarTeam project.
+
+<p>
+The <i>includes</i> and <i>excludes</i> attributes function differently from
+other tasks in Ant.  Multiple patterns must be separated by spaces, not
+commas.  See the examples for more information.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">username</td>
+    <td valign="top">The username of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">password</td>
+    <td valign="top">The password of the account used to log in to the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>  
+  <tr>
+    <td valign="top">servername</td>
+    <td valign="top">The name of the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">serverport</td>
+    <td valign="top">The port number of the StarTeam server.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">projectname</td>
+    <td valign="top">The name of the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">viewname</td>
+    <td valign="top">The name of the view in the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+
+  <tr>
+    <td valign="top">targetfolder</td>
+    <td valign="top">The folder to which files are checked out.  What this precisely means is determined by the <i>targetFolderAbsolute</i> param.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>  
+  <tr>
+    <td valign="top">targetFolderAbsolute</td>
+    <td valign="top">Determines how <i>targetfolder</i> is interpreted, that is, whether the StarTeam "default folder" for the project is factored in (false) or whether <i>targetFolder</i> is a complete mapping to <i>foldername</i> (true).
+      If "true", the target tree will be rooted at <i>targetfolder+"default folder"</i>.  If false, the target tree will be rooted at <i>targetfolder</i>.  Defaults to "false".  </td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">foldername</td>
+    <td valign="top">The subfolder in the project from which to check out files.</td>
+    <td align="center" valign="top">no</td>
+  </tr>  
+  <tr>
+    <td valign="top">force</td>
+    <td valign="top">Overwrite existing folders if this is set to "true".  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">recursion</td>
+    <td valign="top">Indicates if subfolders should be searched for files to check out.  Defaults to "true".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Provides progress information.  Defaults to "false".</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">Only check out files that match at least one of the patterns in this list.  Patterns must be separated by spaces.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">Do not check out files that match at least one of the patterns in this list.  Patterns must be separated by spaces.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
+    <td align="center" valign="top">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+
+<pre>
+  &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+  /&gt;
+</pre>
+
+The minimum necessary to check out files out from a StarTeam server.  This will
+check out all files in the <i>AView</i> view of the <i>AProject</i> project to
+<code>C:\dev\buildtest\co</code>.
+
+<pre>
+  &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            foldername="\Dev"
+            excludes="*.bak *.old"
+            force="true"
+  /&gt;
+</pre>
+
+This will checkout all files from the <i>Dev</i> folder and below that do not
+end in <i>.bak</i> or <i>.old</i>.  The force flag will cause any existing files to be
+overwritten by the version in StarTeam.
+
+<pre>
+  &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            includes="*.htm *.html"
+            excludes="index.*"
+  /&gt;
+</pre>
+
+
+       
+This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
+<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
+not be checked out by this command.
+
+
+<pre>
+ &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            foldername="src/java"
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            targetfolderabsolute="true"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            foldername="src/java"
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co"
+            targetfolderabsolute ="false"
+  /&gt;
+</pre>
+<br></br>
+<pre>
+ &lt;starteam servername="STARTEAM" 
+            serverport="49201"
+            projectname="AProject" 
+            foldername="src/java"
+            viewname="AView"
+            username="auser"
+            password="secret"
+            targetfolder="C:\dev\buildtest\co\src\java"
+            targetfolderabsolute="true"
+  /&gt;
+</pre>
+
+In the preceding three examples, assuming that the AProject project has a default folder of
+"AProject", the first example will check the files located in starteam under src/java out to a tree rooted at C:\dev\buildtest\co, 
+the second to a tree rooted at C:\dev\buildtest\co\AProject\src\java and the third to a tree rooted at C:\dev\buildtest\co\src\java.
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/stylebook.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/stylebook.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/stylebook.html	(revision 14989)
@@ -0,0 +1,89 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>StyleBook Task</title>
+</head>
+
+<body>
+
+<h2><a name="stylebook">Stylebook</a></h2>
+<h3>Description</h3>
+
+<strong>This task is deprecated as stylebook itself has been
+deprecated by the Apache XML community.</strong>
+
+<p>This executes the apache Stylebook documentation generator. 
+Unlike the commandline version of this tool, all three arguments
+are required to run stylebook.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+<p>
+ Being extended from <code>&lt;Java&gt;</code>, all the parent's attributes
+ and options are available. Do not set any apart from the <tt>classpath</tt>
+ as they are not guaranteed to be there in future.
+ </p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">book</td>
+    <td valign="top">the book xml file that the documentation generation starts from
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">skindirectory</td>
+    <td valign="top">the directory that contains the stylebook skin
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">targetdirectory</td>
+    <td valign="top">the destination directory where the documentation is generated 
+    </td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+<p>
+The user can also specify the nested <code>&lt;classpath&gt;</code> element which defines classpath 
+in which the task is executed.</p>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;stylebook targetdirectory=&quot;build/docs&quot; 
+           book=&quot;src/xdocs/book.xml&quot; 
+           skindirectory=&quot;src/skins/myskin&quot;/&gt;
+</pre>
+</blockquote>
+The above will generate documentation in build/docs starting from the book 
+src/xdocs/book.xml and using the skin located in directory src/skins/myskin.
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/symlink.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/symlink.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/symlink.html	(revision 14989)
@@ -0,0 +1,140 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Symlink Task</title>
+</head>
+
+<body>
+
+<h2><a name="symlink">Symlink</a></h2>
+<h3>Description</h3>
+<p> Manages symbolic links on Unix based platforms. Can be used to
+make an individual link, delete a link, create multiple links from properties files, 
+or create properties files describing links in the specified directories.
+Existing links are not overwritten by default.
+
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select a
+set of links to record, or a set of property files to create links from. </p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">action</td>
+    <td valign="top">The type of action to perform, may be "single", 
+    "record", "recreate" or "delete".</td>
+    <td valign="top" align="center">No, defaults to single.</td>
+  </tr>
+  <tr>
+    <td valign="top">link</td>
+    <td valign="top">The name of the link to be created or deleted.</td>
+    <td valign="center" align="center" >required for 
+    action="single" or "delete". Ignored in other actions.</td>
+  </tr>
+  <tr>
+    <td valign="top">resource</td>
+    <td valign="top">The resource the link should point to.</td>
+    <td valign="top" align="center">required for action="single". Ignored in other actions.</td>
+  </tr>
+  <tr>
+    <td valign="top">linkfilename</td>
+    <td valign="top">The name of the properties file to create in 
+    each included directory.</td>
+    <td valign="top" align="center">required for action="record". 
+    Ignored in other actions.</td>
+  </tr>
+  <tr>
+    <td valign="top">overwrite</td>
+    <td valign="top">Overwrite existing links or not.</td>
+    <td valign="top" align="center">No; defaults to false.</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+     <td valign="top">Stop build if true, log a warning message, but do not stop the build,
+       when the an error occurs if false.
+     </td>
+     <td valign="top" align="center">No; defaults to true.</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+ 
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s
+ are used when action = "record" to select directories and linknames to be recorded. 
+ They are also used when action = "recreate" to specify both the name of the property 
+ files to be processed, and the directories in which they can be found. At least one 
+ fileset is required for each case.</p>
+ 
+<h3>Examples</h3>
+
+  <p> Make a link named "foo" to a resource named "bar.foo" in subdir:</p>
+  <pre>
+  &lt;symlink link="${dir.top}/foo" resource="${dir.top}/subdir/bar.foo"/&gt;
+  </pre>
+ 
+  <p> Record all links in subdir and it's descendants in files named
+  "dir.links"</p>
+  <pre>
+  &lt;symlink action="record" linkfilename="dir.links"&gt;
+     &lt;fileset dir="${dir.top}" includes="subdir&#47;**"/&gt;
+  &lt;/symlink&gt;
+  </pre>
+ 
+  <p> Recreate the links recorded in the previous example:</p>
+  <pre>
+  &lt;symlink action="recreate"&gt;
+     &lt;fileset dir="${dir.top}" includes="subdir&#47;**&#47;dir.links"/&gt;  
+  &lt;/symlink&gt;
+  </pre>
+ 
+ <p> Delete a link named "foo":
+ <pre>
+ &lt;symlink action="delete" link="${dir.top}/foo"/&gt;
+ </pre>
+
+  <p><strong>Java 1.2 and earlier:</strong> Due to limitations on executing system
+  level commands in Java versions earlier than 1.3 this task may have difficulty
+  operating with a relative path in ANT_HOME. The typical symptom is an 
+  IOException where ant can't find /some/working/directory${ANT_HOME}/bin/antRun
+  or something similar. The workaround is to change your ANT_HOME environment
+  variable to an absolute path, which will remove the /some/working/directory portion
+  of the above path and allow ant to find the correct commandline execution script.
+ 
+  <p><strong>LIMITATIONS:</strong> Because Java has no direct support for
+  handling symlinks this task divines them by comparing canonical and
+  absolute paths. On non-unix systems this may cause false positives.
+  Furthermore, any operating system on which the command
+  <code>ln -s &lt;linkname&gt; &lt;resourcename&gt;</code> is not a valid 
+  command on the command line will not be able to use action="single" or 
+  action="recreate". Action="record" and action=delete should still work. Finally, 
+  the lack of support for symlinks in Java means that all links are recorded as 
+  links to the <strong>canonical</strong> resource name. Therefore the link:
+  <code>link --> subdir/dir/../foo.bar</code> will be recorded as
+  <code>link=subdir/foo.bar</code> and restored as
+  <code>link --> subdir/foo.bar</code></p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/telnet.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/telnet.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/telnet.html	(revision 14989)
@@ -0,0 +1,155 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Telnet Task</title>
+</head>
+
+<body>
+
+<h2><a name="telnet">Telnet</a></h2>
+<h3>Description</h3>
+Task to automate a remote telnet session. The task uses 
+nested <tt>&lt;read&gt;</tt> to indicate strings to wait for, and
+<tt>&lt;write&gt;</tt> tags to specify text to send.  
+
+<p>If you do specify a userid and password, the system will 
+assume a common unix prompt to wait on. This behavior can be easily over-ridden.</p>
+<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
+See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>userid</td>
+     <td>the login id to use on the telnet server.</td>
+     <td>Only if password is specified</td>
+  </tr>
+  <tr>
+     <td>password</td>
+     <td>the login password to use on the telnet server.</td>
+     <td>Only if userid is specified</td>
+  </tr>
+  <tr>
+     <td>server</td>
+     <td>the address of the remote telnet server.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>port</td>
+     <td>the port number of the remote telnet server. Defaults to port 23.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>initialCR</td>
+     <td>send a cr after connecting (&quot;yes&quot;). Defaults to &quot;no&quot;.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>timeout</td>
+     <td>set a default timeout to wait for a response. Specified in seconds. Default is no timeout.</td>
+     <td>No</td>
+  </tr>
+</table>
+<h3><a name="nested">Nested Elements</a></h3>
+The commands to send to the server, and responses to wait for, are
+described as nested elements.  
+
+<h4>read</h4>
+
+<p>declare (as a text child of this element) a string to wait for.
+The element supports the timeout attribute, which overrides any
+timeout specified for the task as a whole. It also has a <tt>string</tt>
+attribute, which is an alternative to specifying the string as 
+a text element.
+</p>
+<i>Always declare an opening and closing
+<code>&lt;read&gt;</code> element to ensure that statements are not sent before
+the connection is ready, and that the connection is not broken before
+the final command has completed.
+</i>
+<h4>write</h4>
+
+<p>describes the text to send to the server. The <tt>echo</tt> boolean
+attribute controls whether the string is echoed to the local log; 
+this is "true" by default
+</p>
+<h3>Examples</h3>
+A simple example of connecting to a server and running a command.  This assumes
+ a prompt of &quot;ogin:&quot; for the userid, and a prompt of &quot;assword:&quot;
+ for the password.
+
+<blockquote><pre>
+&lt;telnet userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot;&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+   &lt;write&gt;ls&lt;/write&gt;
+   &lt;read string=&quot;/home/bob&quot;/&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+
+This task can be rewritten as:
+<blockquote><pre>
+&lt;telnet server=&quot;localhost&quot;&gt;
+   &lt;read&gt;ogin:&lt;/read&gt;
+   &lt;write&gt;bob&lt;/write&gt;
+   &lt;read&gt;assword:&lt;/read&gt;
+   &lt;write&gt;badpass&lt;/write&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+   &lt;write&gt;ls&lt;/write&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+
+A timeout can be specified at the <code>&lt;telnet&gt;</code> level or at the <code>&lt;read&gt;</code> level. 
+This will connect, issue a sleep command that is suppressed from displaying and wait 
+10 seconds before quitting.
+<blockquote><pre>
+&lt;telnet userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; timeout=&quot;20&quot;&gt;
+   &lt;read&gt;/home/bob&lt;/read&gt;
+   &lt;write echo=&quot;false&quot;&gt;sleep 15&lt;/write&gt;
+   &lt;read timeout=&quot;10&quot;&gt;/home/bob&lt;/read&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+
+The task can be used with other ports as well:
+<blockquote><pre>
+&lt;telnet port=&quot;80&quot; server=&quot;localhost&quot; timeout=&quot;20&quot;&gt;
+   &lt;read/&gt;
+   &lt;write&gt;GET / http/0.9&lt;/write&gt;
+   &lt;write/&gt;
+   &lt;read timeout=&quot;10&quot;&gt;&amp;lt;/HTML&amp;gt;&lt;/read&gt;
+&lt;/telnet&gt;
+</pre></blockquote>
+<p>
+To use this task against the WinNT telnet service, you need to configure the service to use 
+classic authentication rather than NTLM negotiated authentication. 
+This can be done in the Telnet Server Admin app: 
+select "display/change registry settings", then "NTLM", then set the value of NTLM to 1.
+</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/translate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/translate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/translate.html	(revision 14989)
@@ -0,0 +1,182 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Translate Task</title>
+</head>
+
+<body>
+
+<h2><a name="translate">Translate</a></h2>
+<h3>Description</h3>
+<p>Identifies keys in files delimited by special tokens
+and translates them with values read from resource bundles.
+</p>
+<p>
+A resource bundle contains locale-specific key-value pairs.
+A resource bundle is a hierarchical set of property files.
+A bundle name makes up its base family name.  Each file that
+makes up this bundle has this name plus its locale.  For example,
+if the resource bundle name is MyResources, the file that contains
+German text will take the name MyResources_de.  In addition to
+language, country and variant are also used to form the files in
+the bundle.
+</p>
+<p>
+The resource bundle lookup searches for resource files with various
+suffixes on the basis of (1) the desired locale and (2) the default
+locale (basebundlename), in the following order from lower-level
+(more specific) to parent-level (less specific):
+</p>
+<pre>
+basebundlename + &quot;_&quot; + language1 + &quot;_&quot; + country1 + &quot;_&quot; + variant1
+basebundlename + &quot;_&quot; + language1 + &quot;_&quot; + country1
+basebundlename + &quot;_&quot; + language1
+basebundlename
+basebundlename + &quot;_&quot; + language2 + &quot;_&quot; + country2 + &quot;_&quot; + variant2
+basebundlename + &quot;_&quot; + language2 + &quot;_&quot; + country2
+basebundlename + &quot;_&quot; + language2
+</pre>
+<p>
+The file names generated thus are appended with the string &quot;.properties&quot;
+to make up the file names that are to be used.
+</p>
+<p>
+File encoding is supported.  The encoding scheme of the source files,
+destination files and the bundle files can be specified.
+
+Destination files can be explicitly overwritten using the
+<var>forceoverwrite</var> attribute.  If <var>forceoverwrite</var>
+is false, the destination file is overwritten only if either the
+source file or any of the files that make up the bundle have been
+modified after the destination file was last modified.
+</p>
+<p>
+<em>New in Ant 1.6:</em><br>
+Line endings of source files are preserved in the translated files.
+</p>
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select files to
+translate.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">todir</td>
+    <td valign="top">Destination directory where destination files are
+      to be created.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">starttoken</td>
+    <td valign="top">The starting token to identify keys.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">endtoken</td>
+    <td valign="top">The ending token to identify keys.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">bundle</td>
+    <td valign="top">Family name of resource bundle.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">bundlelanguage</td>
+    <td valign="top">
+        Locale specific language of resource bundle.  Defaults to
+        default locale's language.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bundlecountry</td>
+    <td valign="top">
+        Locale specific country of resource bundle.  Defaults to
+        default locale's country.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bundlevariant</td>
+    <td valign="top">
+        Locale specific variant of resource bundle.  Defaults to
+        the default variant of the country and language being used.
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">srcencoding</td>
+    <td valign="top">Source file encoding scheme.  Defaults to
+    system default file encoding.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">destencoding</td>
+    <td valign="top">Destination file encoding scheme.  Defaults to
+    source file encoding.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">bundleencoding</td>
+    <td valign="top">Resource Bundle file encoding scheme.  Defaults to
+    source file encoding.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">forceoverwrite</td>
+    <td valign="top">Overwrite existing files even if the destination
+      files are newer. Defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Parameters specified as nested elements</h3>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSets</a> are used to select files that
+ contain keys for which value translated files are to be generated.
+</p>
+<h3>Examples</h3>
+<p><b>Translate source file encoded in english into its japanese
+equivalent using a resource bundle encoded in japanese.
+</b></p>
+<pre>
+  &lt;translate toDir=&quot;$(dest.dir}/ja&quot;
+        starttoken=&quot;#&quot;
+        endtoken=&quot;#&quot;
+        bundle=&quot;resource/BaseResource&quot;
+        bundlelanguage=&quot;ja&quot;
+        forceoverwrite=&quot;yes&quot;
+        srcencoding=&quot;ISO8859_1&quot;
+        destencoding=&quot;SJIS&quot;
+        bundleencoding=&quot;SJIS&quot;&gt;
+        &lt;fileset dir=&quot;${src.dir}&quot;&gt;
+            &lt;include name=&quot;**/*.jsp&quot;/&gt;
+        &lt;/fileset&gt;
+  &lt;/translate&gt;
+</pre>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/vbc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/vbc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/vbc.html	(revision 14989)
@@ -0,0 +1,470 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Vbc
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Vbc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">This task compiles Visual Basic.NET source into executables or modules.  <p>For historical reasons the pattern <code>**/*.vb</code> is preset as includes list and you can not override it with an explicit includes attribute.  Use nested <code>&lt;src&gt;</code> elements instead of the basedir attribute if you need more control.</p></font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        This task compiles Visual Basic.NET source into executables or modules. The task requires vbc.exe on the execute path, unless it or an equivalent program is specified in the <tt>executable</tt> parameter <p> All parameters are optional: <code>&lt;vbc/&gt;</code> should suffice to produce a debug build of all *.vb files. <p> The task is a directory based task, so attributes like <tt>includes=&quot;**\/*.vb&quot;</tt> and <tt>excludes=&quot;broken.vb&quot;</tt> can be used to control the files pulled in. By default, all *.vb files from the project folder down are included in the command. When this happens the destFile -if not specified- is taken as the first file in the list, which may be somewhat hard to control. Specifying the output file with <tt>destfile</tt> is prudent. </p> <p> Also, dependency checking only works if destfile is set. As with <code>&lt;csc&gt;</code> nested <tt>src</tt> filesets of source, reference filesets, definitions and resources can be provided. <p> Example </p> <pre>&lt;vbc optimize=&quot;true&quot; debug=&quot;false&quot; warnLevel=&quot;4&quot; targetType=&quot;exe&quot; definitions=&quot;RELEASE&quot; excludes=&quot;src/unicode_class.vb&quot; mainClass = &quot;MainApp&quot; destFile=&quot;NetApp.exe&quot; optionExplicit=&quot;true&quot; optionCompare=&quot;text&quot; references="System.Xml,System.Web.Xml" &gt; &lt;reference file="${testCSC.dll}"/&gt; &lt;define name="RELEASE"/&gt; &lt;define name="DEBUG" if="debug.property"/&gt; &lt;define name="def3" unless="def2.property"/&gt; &lt;/vbc&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="24">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">imports</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Declare global imports for namespaces in referenced metadata files.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optioncompare</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Specify binary- or text-style string comparisons. Defaults to "binary"</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optionexplicit</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether to require explicit declaration of variables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optionstrict</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Enforce strict language semantics.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">removeintchecks</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether to remove integer checks. Default false.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">rootnamespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Specifies the root namespace for all type declarations.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/vss.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/vss.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/vss.html	(revision 14989)
@@ -0,0 +1,823 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Microsoft Visual SourceSafe(VSS) Tasks</title>
+</head>
+<body>
+<h1>Microsoft Visual SourceSafe Tasks User Manual</h1>
+<p>by</p>
+<ul>
+    <li>Craig Cottingham</li>
+    <li>Andrew Everitt</li>
+    <li>Balazs Fejes 2</li>
+    <li><a href="mailto:Glenn_Twiggs@bmc.com">Glenn_Twiggs@bmc.com</a></li>
+    <li>Martin Poeschl (<a href="mailto:mpoeschl@marmot.at">mpoeschl@marmot.at</a>)</li>
+    <li>Phillip Wells</li>
+    <li>Jon Skeet (<a href="mailto:jon.skeet@peramon.com">jon.skeet@peramon.com</a>)</li>
+    <li>Nigel Magnay (<a href="mailto:nigel.magnay@parsec.co.uk">nigel.magnay@parsec.co.uk</a>)</li>
+    <li>Gary S. Weaver</li>
+    <li>Jesse Stockall</li>
+ </ul>
+<hr>
+<h2>Contents</h2>
+<ul>
+    <li><a href="#intro">Introduction</a></li>
+    <li><a href="#tasks">The Tasks</a></li>
+</ul>
+<br>
+<h2><a name="intro">Introduction</a></h2>
+<p>These tasks provide an interface to the
+<a href="http://msdn.microsoft.com/ssafe/default.asp" target="_top">Microsoft Visual SourceSafe</a> SCM.
+The <code>org.apache.tools.ant.taskdefs.optional.vss</code> package consists of a simple framework to support
+vss functionality as well as some Ant tasks encapsulating frequently used vss commands.
+Although it is possible to use these commands on the desktop,
+they were primarily intended to be used by automated build systems.</p>
+<p>
+If you get a CreateProcesss IOError=2 when running these, it means
+that ss.exe was not found. Check to see if you can run it from the
+command line -you may need to alter your path, or set the <tt>ssdir</tt>
+property.
+<h2><a name="tasks">The Tasks</a></h2>
+
+<table border="0" cellspacing="0" cellpadding="3">
+    <tr>
+        <td><a href="#vssget">vssget</a></td>
+        <td>Retrieves a copy of the specified VSS file(s).</td>
+    </tr>
+    <tr>
+        <td><a href="#vsslabel">vsslabel</a></td>
+        <td>Assigns a label to the specified version or current version of a file or project.</td>
+    </tr>
+    <tr>
+        <td><a href="#vsshistory">vsshistory</a></td>
+        <td>Shows the history of a file or project in VSS.</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscheckin">vsscheckin</a></td>
+        <td>Updates VSS with changes made to a checked out file, and unlocks the VSS master copy.</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscheckout">vsscheckout</a></td>
+        <td>Copies a file from the current project to the current folder, for the purpose of editing.</td>
+    </tr>
+    <tr>
+        <td><a href="#vssadd">vssadd</a></td>
+        <td>Adds a new file into the VSS Archive</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscp">vsscp</a></td>
+        <td>Change the current project being used in VSS</td>
+    </tr>
+    <tr>
+        <td><a href="#vsscreate">vsscreate</a></td>
+        <td>Creates a project in VSS.</td>
+    </tr>
+</table>
+
+<hr>
+<h2>Task Descriptions</h2>
+
+<!-- VSSGET -->
+
+<h2><a name="vssget">VssGet</a></h2>
+<h3>Description</h3>
+Task to perform GET commands to Microsoft Visual SourceSafe.
+<p>If you specify two or more attributes from version, date and
+label only one will be used in the order version, date, label.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false; default false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false; default false. Note however that in the SourceSafe UI
+     , there is a setting accessed via Tools/Options/GeneralTab called
+     &quot;Act on projects recursively&quot;.  If this setting is checked,
+     then the recursive attribute is effectively ignored, and the get
+     will always be done recursively
+     </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>version</td>
+     <td>a version number to get</td>
+     <td rowspan="3">No, only one of these allowed</td>
+  </tr>
+  <tr>
+     <td>date</td>
+     <td>a date stamp to get at</td>
+  </tr>
+  <tr>
+     <td>label</td>
+     <td>a label to get for</td>
+  </tr>
+  <tr>
+     <td>quiet</td>
+     <td>suppress output (off by default)</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>What to respond with (sets the -I option). By default, -I- is
+     used; values of Y or N will be appended to this.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>writablefiles</td>
+    <td>Behavior when local files are writable. Valid options are: <code>replace</code>, 
+        <code>skip</code> and <code>fail</code>; Defaults to <code>fail</code>
+        <br><code>skip</code> implies <code>failonerror=false</code></td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>filetimestamp</td>
+    <td>Set the behavior for timestamps of local files. Valid options are <code>current</code>, 
+        <code>modified</code>, or <code>updated</code>. Defaults to <code>current</code>.</td> 
+    <td>No</td>
+  </tr>
+</table>
+<p>Note that only one of version, date or label should be specified</p>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vssget localPath=&quot;C:\mysrc\myproject&quot;
+        recursive=&quot;true&quot;
+        label=&quot;Release1&quot;
+        login=&quot;me,mypassword&quot;
+        vsspath=&quot;$/source/aProject&quot;
+        writable=&quot;true&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a get on the VSS-Project <i>$/source/myproject</i> using the username
+<i>me</i> and the password <i>mypassword</i>. It will recursively get the files
+which are labeled <i>Release1</i> and write them to the local directory
+<i>C:\mysrc\myproject</i>. The local files will be writable.</p>
+<hr>
+
+<!-- VSSLABEL -->
+
+<h2><a name="vsslabel">VssLabel</a></h2>
+<h3>Description</h3>
+Task to perform LABEL commands to Microsoft Visual SourceSafe.
+<p>Assigns a label to the specified version or current version of a file or
+project.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+   <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+   </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+   <tr>
+      <td>label</td>
+      <td>A label to apply to the hierarchy</td>
+      <td>Yes</td>
+   </tr>
+   <tr>
+      <td>version</td>
+      <td>An existing file or project version to label. By default the current
+      version is labeled.</td>
+      <td>No</td>
+   </tr>
+   <tr>
+      <td>comment</td>
+      <td>The comment to use for this label. Empty or '-' for no comment.</td>
+      <td>No</td>
+   </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>What to respond with (sets the -I option). By default, -I- is
+     used; values of Y or N will be appended to this.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsslabel vsspath=&quot;$/source/aProject&quot;
+          login=&quot;me,mypassword&quot;
+          label=&quot;Release1&quot;/&gt;
+</pre>
+</blockquote>
+<p>Labels the current version of the VSS project <i>$/source/aProject</i> with
+the label <i>Release1</i> using the username <i>me</i> and the password
+<i>mypassword</i>.
+</p>
+<blockquote>
+<pre>
+&lt;vsslabel vsspath=&quot;$/source/aProject/myfile.txt&quot;
+          version=&quot;4&quot;
+          label=&quot;1.03.004&quot;/&gt;
+</pre>
+</blockquote>
+<p>Labels version 4 of the VSS file <i>$/source/aProject/myfile.txt</i> with the
+label <i>1.03.004</i>. If this version already has a label, the operation (and
+the build) will fail.
+</p>
+<hr>
+
+<!-- VSSHISTORY -->
+
+<h2><a name="vsshistory">VssHistory</a></h2>
+<h3>Description</h3>
+Task to perform HISTORY commands to Microsoft Visual SourceSafe.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>fromDate</td>
+    <td>Start date for comparison</td>
+    <td>See below</td>
+  </tr>
+  <tr>
+    <td>toDate</td>
+    <td>End date for comparison</td>
+    <td>See below</td>
+  </tr>
+  <tr>
+    <td>dateFormat</td>
+    <td>Format of dates in fromDate and toDate. Used when calculating dates with
+      the numdays attribute. This string uses the formatting rules of SimpleDateFormat.
+      Defaults to DateFormat.SHORT.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>fromLabel</td>
+    <td>Start label for comparison</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>toLabel</td>
+    <td>Start label for comparison</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>numdays</td>
+    <td>The number of days for comparison.</td>
+    <td>See below</td>
+  </tr>
+  <tr>
+    <td>output</td>
+    <td>File to write the diff.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>recursive</td>
+    <td>true or false</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>style</td>
+    <td>brief, codediff, default or nofile. The default is default.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>user</td>
+    <td>Name the user whose changes we would like to see</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h4>Specifying the time-frame</h4>
+<p>There are different ways to specify what time-frame you wish to evaluate:</p>
+<ul>
+  <li>Changes between two dates: Specify both <code>fromDate</code> and <code>toDate</code> </li>
+  <li>Changes before a date: Specify <code>toDate</code></li>
+  <li>Changes after a date: Specify <code>fromDate</code></li>
+  <li>Changes X Days before a date: Specify <code>toDate</code> and (negative!) <code>numDays</code></li>
+  <li>Changes X Days after a date: Specify <code>fromDate</code> and <code>numDays</code></li>
+</ul>
+
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>
+&lt;vsshistory vsspath=&quot;$/myProject&quot; recursive=&quot;true&quot;
+            fromLabel=&quot;Release1&quot;
+            toLabel=&quot;Release2&quot;/&gt;
+</pre>
+</blockquote>
+<p>Shows all changes between &quot;Release1&quot; and &quot;Release2&quot;.</p>
+
+<blockquote>
+  <pre>
+&lt;vsshistory vsspath=&quot;$/myProject&quot; recursive=&quot;true&quot;
+            fromDate=&quot;01.01.2001&quot;
+            toDate=&quot;31.03.2001&quot;/&gt;
+</pre>
+</blockquote>
+<p>Shows all changes between January 1st 2001 and March 31st 2001 (in Germany, date must be specified according to your locale).</p>
+
+<blockquote>
+  <pre>
+&lt;tstamp&gt;
+  &lt;format property=&quot;to.tstamp&quot; pattern=&quot;M-d-yy;h:mma&quot;/&gt;
+&lt;/tstamp&gt;
+
+&lt;vsshistory vsspath=&quot;$/myProject&quot; recursive=&quot;true&quot;
+            numDays=&quot;-14&quot;
+            dateFormat=&quot;M-d-yy;h:mma&quot;
+            toDate=&quot;${to.tstamp}&quot;/&gt;
+</pre>
+</blockquote>
+<p>Shows all changes in the 14 days before today.</p>
+<hr>
+
+<!-- VSSCHECKIN -->
+
+<h2><a name="vsscheckin">VssCheckin</a></h2>
+<h3>Description</h3>
+Task to perform CHECKIN commands to Microsoft Visual SourceSafe.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>comment</td>
+     <td>Comment to use for the files that where checked in.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>'Y', 'N' or empty. Specify how to reply to questions from VSS.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscheckin vsspath=&quot;$/test/test*&quot;
+            localpath=&quot;D:\build\&quot;
+            comment=&quot;Modified by automatic build&quot;/&gt;
+</pre>
+</blockquote>
+<p>Checks in the file(s) named <i>test*</i> in the project <i>$/test</i> using
+the local directory <i>D:\build</i>.</p>
+<hr>
+
+<!-- VSSCHECKOUT -->
+
+<h2><a name="vsscheckout">VssCheckout</a></h2>
+<h3>Description</h3>
+Task to perform CHECKOUT commands to Microsoft Visual SourceSafe.
+<p>If you specify two or more attributes from version, date and
+label only one will be used in the order version, date, label.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project/file(s) you wish to
+         perform the action on.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>version</td>
+     <td>a version number to get</td>
+     <td rowspan="3">No, only one of these allowed</td>
+  </tr>
+  <tr>
+     <td>date</td>
+     <td>a date stamp to get at</td>
+  </tr>
+  <tr>
+     <td>label</td>
+     <td>a label to get for</td>
+  </tr>
+  <tr>
+    <td>writablefiles</td>
+    <td>Behavior when local files are writable. Valid options are: <code>replace</code>, 
+        <code>skip</code> and <code>fail</code>; Defaults to <code>fail</code>
+        <br><code>skip</code> implies <code>failonerror=false</code></td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>filetimestamp</td>
+    <td>Set the behavior for timestamps of local files. Valid options are <code>current</code>, 
+        <code>modified</code>, or <code>updated</code>. Defaults to <code>current</code>.</td> 
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>getlocalcopy</td>
+    <td>Set the behavior to retrieve local copies of the files. Defaults to true.</td> 
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscheckout vsspath=&quot;$/test&quot;
+             localpath=&quot;D:\build&quot;
+             recursive=&quot;true&quot;
+             login=&quot;me,mypass&quot;/&gt;
+</pre>
+</blockquote>
+<p>Does a recursive checkout of the project <i>$/test</i> to the directory D:\build.
+</p>
+<hr>
+
+<!-- VSSADD -->
+
+<h2><a name="vssadd">VssAdd</a></h2>
+<h3>Description</h3>
+Task to perform ADD commands to Microsoft Visual SourceSafe.
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Specify the local file(s) to add to VSS</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>writable</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>recursive</td>
+     <td>true or false</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>comment</td>
+     <td>Comment to use for the files that where checked in.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>autoresponse</td>
+     <td>'Y', 'N' or empty. Specify how to reply to questions from VSS.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vssadd localpath=&quot;D:\build\build.00012.zip&quot;
+            comment=&quot;Added by automatic build&quot;/&gt;
+</pre>
+</blockquote>
+<p>Add the file named build.00012.zip into the project current working
+directory (see vsscp).</p>
+<hr>
+
+<!-- VSSCP -->
+
+<h2><a name="vsscp">VssCp</a></h2>
+<h3>Description</h3>
+<p>Task to perform CP (Change Project) commands to Microsoft Visual SourceSafe.</p>
+<p>This task is typically used before a VssAdd in order to set the target project</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path which specifies the project you wish to
+         make the current project.</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>login</td>
+     <td>username[,password] - The username and password needed to get access
+         to VSS. Note that you may need to specify both (if you have a password) -
+         Ant/VSS will hang if you leave the password out and VSS does not accept
+         login without a password. </td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>ssdir</td>
+     <td>directory where <code>ss.exe</code> resides. By default the
+         task expects it to be in the PATH.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>serverPath</td>
+     <td>directory where <code>srcsafe.ini</code> resides.</td>
+     <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerror</td>
+    <td>Stop the buildprocess if ss.exe exits with a returncode of 100. Defaults to true</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscp vsspath=&quot;$/Projects/ant&quot;/&gt;
+</pre>
+</blockquote>
+<p>Sets the current VSS project to <i>$/Projects/ant</i>.</p>
+<hr>
+
+<!-- VSSCREATE -->
+
+ <h2><a name="vsscreate">VssCreate</a></h2>
+ <h3>Description</h3>
+ Task to perform CREATE commands to Microsoft Visual Source Safe.
+ <p>Creates a new project in VSS.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+  </tr>
+  <tr>
+    <td>login</td>
+    <td>username,password</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>vsspath</td>
+    <td>SourceSafe path of project to be created</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>ssdir</td>
+    <td>directory where <code>ss.exe</code> resides. By default the task expects it to be in the PATH.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>quiet</td>
+    <td>suppress output (off by default)</td>
+    <td>No</td>
+   </tr>
+  <tr>
+    <td>failOnError</td>
+    <td>fail if there is an error creating the project (true by default)</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>autoresponse</td>
+    <td>What to respond with (sets the -I option). By default, -I- is used; values of Y or N will be appended to this.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>The comment to use for this label. Empty or '-' for no comment.</td>
+    <td>No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;vsscreate vsspath=&quot;$/existingProject/newProject&quot;/&gt;
+</pre>
+</blockquote>
+<p>Creates the VSS-Project <i>$/existingProject/newProject</i>.</p>
+<hr>
+
+<!-- Footer -->
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/wljspc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/wljspc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/wljspc.html	(revision 14989)
@@ -0,0 +1,99 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head><link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>WLJSPC Task</title></head>
+<body>
+<h1>wljspc</h1>
+<h3>Description</h3>
+<p>Class to precompile JSP's using weblogic's jsp compiler (weblogic.jspc)</p>
+Tested only on Weblogic 4.5.1 - NT4.0 and Solaris 5.7,5.8<br>
+<h3>Parameters</h3>
+<table border="1" cellPadding="2" cellSpacing="0">
+  <tbody>
+    <tr>
+    <td><b>Attribute</b></td>
+    <td><b>Values</b></td>
+    <td><b>Required</b></td>
+    </tr>
+    <tr>
+      <td>src</td>
+      <td>root of source tree for JSP, ie, the document root for your weblogic server</td>
+      <td>Yes</td>
+    </tr>
+    <tr>
+      <td>
+dest</td>
+      <td> root of destination directory, what you have set as WorkingDir in the weblogic properties</td>
+      <td>Yes</td>
+    </tr>
+    <tr>
+      <td>
+package</td>
+      <td> start package name under which your JSP's would be compiled</td>
+      <td>Yes</td>
+    </tr>
+    <tr>
+      <td>
+classpath</td>
+      <td>Class path to use when compiling jsp's</td>
+      <td>Yes</td>
+    </tr>
+  </tbody>
+</table>
+<p>
+<br>
+
+A classpath should be set which contains the weblogic classes as well as all application classes<br>
+referenced by the JSP. The system classpath is also appended when the jspc is called, so you may<br>
+choose to put everything in the classpath while calling Ant. However, since presumably the JSP's will reference<br>
+classes being build by Ant, it would be better to explicitly add the classpath in the task<br>
+<br>
+The task checks timestamps on the JSP's and the generated classes, and compiles<br>
+only those files that have changed.<br>
+<br>
+It follows the weblogic naming convention of putting classes in<br>
+<b> _dirName/_fileName.class for dirname/fileName.jsp   </b><br>
+<br>
+</p>
+<h3>
+Example<br>
+</h3>
+<p>
+<pre>
+&lt;target name="jspcompile" depends="compile"&gt;
+  &lt;wljspc src="c:\\weblogic\\myserver\\public_html" dest="c:\\weblogic\\myserver\\serverclasses" package="myapp.jsp"&gt
+    &lt;classpath&gt;
+      &lt;pathelement location="${weblogic.classpath}"/&gt;
+      &lt;pathelement path="${compile.dest}"/&gt;
+    &lt;/classpath&gt;
+  &lt;/wljspc&gt;
+&lt;/target&gt;
+</pre>
+
+</p>
+
+<h3>Limitations</h3>
+<ul>
+<li>This works only on weblogic 4.5.1</li>
+<li>It compiles the files thru the Classic compiler only.</li>
+<li>Since it is my experience that weblogic jspc throws out of memory error on being given too
+many files at one go, it is called multiple times with one jsp file each.</li>
+</ul>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/wsdltodotnet.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/wsdltodotnet.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/wsdltodotnet.html	(revision 14989)
@@ -0,0 +1,230 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Wsdltodotnet
+ Task</title>
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Wsdltodotnet
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Converts a WSDL file or URL resource into a .NET language.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0">
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Converts a WSDL file or URL resource into a .NET language. Why add a wrapper to the MS WSDL tool? So that you can verify that your web services, be they written with Axis or anyone else's SOAP toolkit, work with .NET clients. This task is dependency aware when using a file as a source and destination; so if you <code>&lt;get&gt;</code> the file (with <code>usetimestamp="true"</code>) then you only rebuild stuff when the WSDL file is changed. Of course, if the server generates a new timestamp every time you ask for the WSDL, this is not enough...use the <code>&lt;filesmatch&gt;</code> <code>&lt;condition&gt;</code> to to byte for byte comparison against a cached WSDL file then make the target conditional on that test failing. See "Creating an XML Web Service Proxy", "wsdl.exe" docs in the framework SDK documentation
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Name of the file to generate. Required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="8">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra WSDL.EXE options which aren't explicitly supported by the ant wrapper task; optional</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether or not a failure should halt the build. Optional - default is <code>true</code>.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">language</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the language; one of "CS", "JS", or "VB" optional, default is CS for C# source</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace to place the source in. optional; default ""</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">server</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">flag to enable server side code generation; optional, default=false</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">The local WSDL file to parse; either url or srcFile is required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">url</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the URL to fetch. Fetching is by wsdl.exe; Ant proxy settings are ignored; either url or srcFile is required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+</table>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/xmlvalidate.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/xmlvalidate.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTasks/xmlvalidate.html	(revision 14989)
@@ -0,0 +1,263 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>XMLValidate Task</title>
+</head>
+
+<body>
+
+<h2><a name="xmlvalidate">XMLValidate</a></h2>
+<h3>Description</h3>
+
+<p>This task checks that XML files are valid (or only well formed). The
+task uses the SAX2 parser implementation provided by JAXP by default
+(probably the one that is used by Ant itself), but one can specify any
+SAX1/2 parser if needed.</p>
+
+<p>This task supports the use of nested
+  <li><a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a> elements</li>
+  <li><tt>&lt;dtd&gt;</tt> elements which are used to resolve DTDs and entities</li>
+  <li><tt>&lt;attribute&gt;</tt> elements which are used to set features on the parser.
+      These can be any number of
+      <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a>
+      or other features that your parser may support.</li>
+  <li><tt>&lt;property&gt;</tt> elements, containing string properties
+</p>
+
+<p><b>Warning</b> : JAXP creates by default a non namespace aware parser.
+The <tt>"http://xml.org/sax/features/namespaces"</tt> feature is set
+by default to <tt>false</tt> by the JAXP implementation used by ant. To validate
+a document containing namespaces,
+set the namespaces feature to <tt>true</tt> explicitly by nesting the following element:
+<pre>
+  &lt;attribute name="http://xml.org/sax/features/namespaces" value="true"/&gt;
+</pre>
+If you are using for instance a <tt>xsi:noNamespaceSchemaLocation</tt> attribute in your XML files,
+you will need this namespace support feature.
+</p>
+<p>If you are using a parser not generated by JAXP, by using the <tt>classname</tt> attribute of xmlvalidate, this warning
+may not apply.</p>
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the file(s) you want to check. (optionally can use an embedded fileset)</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">lenient</td>
+    <td valign="top">
+      if true, only check the XML document is well formed
+        (ignored if the specified parser is a SAX1 parser)
+    </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the parser to use.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">classpathref</td>
+    <td valign="top">where to find the parser class. Optionally can use an embedded <tt>&lt;classpath&gt;</tt> element.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">failonerror</td>
+    <td valign="top">fails on a error if set to true (defaults to true).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">warn</td>
+    <td valign="top">log parser warn events.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+
+<h3><a name="nested">Nested Elements</a></h3>
+<h4>dtd</h4>
+<p>
+<tt>&lt;dtd&gt;</tt> is used to specify different locations for DTD resolution.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">publicId</td>
+    <td valign="top">Public ID of the DTD to resolve</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">location</td>
+    <td valign="top">Location of the DTD to use, which can be a file,
+    a resource, or a URL</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<h4>xmlcatalog</h4>
+<p>The <a href="../CoreTypes/xmlcatalog.html"><tt>&lt;xmlcatalog&gt;</tt></a>
+element is used to perform entity resolution.</p>
+<h4>attribute</h4>
+<p>The <tt>&lt;attribute&gt;</tt> element is used to set parser features.<br>
+Features usable with the xerces parser are defined here :
+ <a href="http://xml.apache.org/xerces-j/features.html">Setting features</a><br>
+
+SAX features are defined here:
+ <a href="http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html#package_description"><tt>http://xml.org/sax/features/</tt></a><br>
+ </p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The boolean value of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+<h4>property</h4>
+<p>The <tt>&lt;property&gt;</tt> element is used to set properties.
+These properties are defined here for the xerces XML parser implementation :
+ <a href="http://xml.apache.org/xerces-j/properties.html">XML Parser properties</a>
+Properties can be used to set the schema used to validate the XML file.
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">The name of the feature</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">The string value of the property</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+</p>
+
+
+<h3>Examples</h3>
+<pre>
+&lt;xmlvalidate file="toto.xml"/&gt;
+</pre>
+Validate toto.xml
+<pre>
+&lt;xmlvalidate failonerror="no" lenient="yes" warn="yes"
+             classname="org.apache.xerces.parsers.SAXParser"&gt;
+             classpath="lib/xerces.jar"&gt;
+  &lt;fileset dir="src" includes="style/*.xsl"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+Validate all .xsl files in src/style, but only warn if there is an error, rather than
+halt the build.
+<pre>
+
+&lt;xmlvalidate file="struts-config.xml" warn="false"&gt;
+  &lt;dtd publicId="-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
+       location="struts-config_1_0.dtd"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+
+Validate a struts configuration, using a local copy of the DTD. 
+<pre> 
+&lt;xmlvalidate failonerror="no"&gt;
+  &lt;fileset dir="${project.dir}" includes="**/*.xml"/&gt;
+  &lt;xmlcatalog refid="mycatalog"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+
+Scan all XML files in the project, using a predefined catalog to map URIs to local files.
+<pre>
+&lt;xmlvalidate failonerror="no"&gt;
+  &lt;fileset dir="${project.dir}" includes="**/*.xml"/&gt;
+  &lt;xmlcatalog&gt;
+       &lt;dtd
+         publicId=&quot;-//ArielPartners//DTD XML Article V1.0//EN&quot;
+         location=&quot;com/arielpartners/knowledgebase/dtd/article.dtd&quot;/&gt;
+  &lt;/xmlcatalog&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+Scan all XML files in the project, using the catalog defined inline.
+
+<pre>
+&lt;xmlvalidate failonerror="yes" lenient="no" warn="yes"&gt;
+  &lt;fileset dir="xml" includes="**/*.xml"/&gt;
+  &lt;attribute name="http://xml.org/sax/features/validation" value="true"/&gt;
+  &lt;attribute name="http://apache.org/xml/features/validation/schema"  value="true"/&gt;
+  &lt;attribute name="http://xml.org/sax/features/namespaces" value="true"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+Validate all .xml files in xml directory with the parser configured to perform XSD validation.
+Note: The parser must support the feature
+<code>http://apache.org/xml/features/validation/schema</code>.
+The <a href="schemavalidate.html">schemavalidate</a> task is better for validating
+W3C XML Schemas, as it extends this task with the right options automatically enabled,
+and makes it easy to add a list of schema files/URLs to act as sources.
+
+<pre>
+<!-- Converts path to URL format -->
+&lt;pathconvert dirsep="/" property="xsd.file"&gt;
+&lt;path&gt;
+   &lt;pathelement location="xml/doc.xsd"/&gt;
+&lt;/path&gt;
+&lt;/pathconvert&gt;
+
+&lt;xmlvalidate file="xml/endpiece-noSchema.xml" lenient="false"
+  failonerror="true" warn="true"&gt;
+  &lt;attribute name="http://apache.org/xml/features/validation/schema"
+  value="true"/&gt;
+  &lt;attribute name="http://xml.org/sax/features/namespaces" value="true"/&gt;
+  &lt;property
+  name="http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
+  value="${xsd.file}"/&gt;
+&lt;/xmlvalidate&gt;
+</pre>
+<br>
+Validate the file xml/endpiece-noSchema.xml against the schema xml/doc.xsd.
+<br>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTypes/classfileset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTypes/classfileset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTypes/classfileset.html	(revision 14989)
@@ -0,0 +1,119 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ClassFileSet Type</title>
+</head>
+
+<body>
+<h2><a name="fileset">ClassFileSet</a></h2>
+<p>A classfileset is a specialised type of fileset which, given a set of 
+&quot;root&quot; classes, will include all of the class files upon which the 
+root classes depend. This is typically used to create a jar with all of the
+required classes for a particular application.
+</p>
+<p>
+classfilesets are typically used by reference. They are declared with an
+&quot;id&quot; value and this is then used as a reference where a normal fileset
+is expected.
+</p>
+<p>
+This type requires the <code>jakarta-BCEL</code> library.
+</p>
+
+
+<h3>Attributes</h3>
+<p>The class fileset support the following attributes in addition
+to those supported by the 
+<a href="../CoreTypes/fileset.html">standard fileset</a>:
+</p>
+ 
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">rootclass</td>
+    <td valign="top">A single root class name</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+
+<h4>Root</h4>
+<p>
+When more than one root class is required, multiple nested <code>&lt;root&gt;</code> elements
+may be used
+</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">The fully qualified name of the root class</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h4>RootFileSet</h4>
+<p>
+A root fileset is used to add a set of root classes from a fileset. In this case the entries in 
+the fileset are expected to be Java class files. The name of the Java class is determined by the 
+relative location of the classfile in the fileset. So, the file 
+<code>org/apache/tools/ant/Project.class</code> corresponds to the Java class
+<code>org.apache.tools.ant.Project</code>.</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;classfileset id=&quot;reqdClasses" dir=&quot;${classes.dir}&quot;&gt;
+  &lt;root classname=&quot;org.apache.tools.ant.Project&quot;/&gt;
+&lt;/classfileset&gt;
+</pre></blockquote>
+
+<p>This example creates a fileset containing all the class files upon which the 
+<code>org.apache.tools.ant.Project</code> class depends. This fileset could 
+then be used to create a jar. 
+</p>
+
+<blockquote><pre>
+&lt;jar destfile=&quot;minimal.jar&quot;&gt;
+  &lt;fileset refid=&quot;reqdClasses&quot;/&gt;
+&lt;/jar&gt;
+</pre></blockquote>
+
+<blockquote><pre>
+&lt;classfileset id=&quot;reqdClasses&quot; dir=&quot;${classes.dir}&quot;&gt;
+  &lt;rootfileset dir=&quot;${classes.dir}&quot; includes=&quot;org/apache/tools/ant/Project*.class&quot;/&gt;
+&lt;/classfileset&gt;
+</pre></blockquote>
+
+<p>This example constructs the classfileset using all the class with names starting with Project 
+in the org.apache.tools.ant package</p> 
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTypes/extension.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTypes/extension.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTypes/extension.html	(revision 14989)
@@ -0,0 +1,114 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>Extension Type</title>
+</head>
+
+<body>
+<h2><a name="fileset">Extension</a></h2>
+<p>Utility type that represents either an available "Optional Package"
+ (formerly known as "Standard Extension") as described in the manifest
+ of a JAR file, or the requirement for such an optional package.</p>
+<p>Note that this type
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+
+<h3>Attributes</h3>
+<p>The extension type supports the following attributes</a>:
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">extensionName</td>
+    <td valign="top">The name of extension</td>
+    <td valign="top" align="center">yes</td>
+  </tr>
+  <tr>
+    <td valign="top">specificationVersion</td>
+    <td valign="top">The version of extension specification (Must be in
+    dewey decimal aka dotted decimal notation. 3.2.4)</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">specificationVendor</td>
+    <td valign="top">The specification vendor</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationVersion</td>
+    <td valign="top">The version of extension implementation (Must be in
+    dewey decimal aka dotted decimal notation. 3.2.4)</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationVendor</td>
+    <td valign="top">The implementation vendor</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationVendorId</td>
+    <td valign="top">The implementation vendor ID</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+  <tr>
+    <td valign="top">implementationURL</td>
+    <td valign="top">The url from which to retrieve extension.</td>
+    <td valign="top" align="center">no</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com/myExt.jar&quot;/&gt;
+</pre></blockquote>
+
+<p>Fully specific extension object.</p>
+
+<blockquote><pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;/&gt;
+</pre></blockquote>
+
+<p>Extension object that just species the specification details.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTypes/extensionset.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTypes/extensionset.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/OptionalTypes/extensionset.html	(revision 14989)
@@ -0,0 +1,83 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<title>ExtensionSet Type</title>
+</head>
+
+<body>
+<h2><a>ExtensionSet</a></h2>
+<p>Utility type that represents a set of Extensions.</p>
+<p>Note that this type
+works with extensions as defined by the "Optional Package" specification.
+ For more information about optional packages, see the document
+<em>Optional Package Versioning</em> in the documentation bundle for your
+Java2 Standard Edition package, in file
+<code>guide/extensions/versioning.html</code> or online at
+<a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>
+
+<h3>Nested Elements</h3>
+
+<h4>extension</h4>
+<p><a href="extension.html">Extension</a> object to add to set.</p>
+
+<h4>fileset</h4>
+ <p><a href="../CoreTypes/fileset.html">FileSet</a>s all files contained
+ contained within set that are jars and implement an extension are added
+ to extension set.</p>
+
+<h4>LibFileSet</h4>
+ <p>All files contained contained within set that are jars and implement 
+ an extension are added to extension set. However the extension information 
+ may be modified by attributes of libfileset</p>
+
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;extension id=&quot;e1&quot;
+    extensionName=&quot;MyExtensions&quot;
+    specificationVersion=&quot;1.0&quot;
+    specificationVendor=&quot;Peter Donald&quot;
+    implementationVendorID=&quot;vv&quot;
+    implementationVendor=&quot;Apache&quot;
+    implementationVersion=&quot;2.0&quot;
+    implementationURL=&quot;http://somewhere.com/myExt.jar&quot;/&gt;
+
+&lt;libfileset id="lfs"
+               includeUrl="true"
+               includeImpl="false"
+               dir="tools/lib"&gt;
+  &lt;include name="*.jar"/&gt;
+&lt;/libfileset&gt;
+
+&lt;extensionSet id="exts"&gt;
+  &lt;libfileset dir="lib"&gt;
+    &lt;include name="*.jar"/&gt;
+  &lt;/libfileset&gt;
+  &lt;libfileset refid="lfs"/&gt;
+  &lt;extension refid="e1"/&gt;
+&lt;/extensionSet&gt;
+
+</pre></blockquote>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/antexternal.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/antexternal.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/antexternal.html	(revision 14989)
@@ -0,0 +1,160 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>InputHandler</title>
+</head>
+
+<body>
+<h1>Using Ant Tasks Outside of Ant</h1>
+
+<h2>Rationale</h2>
+
+<p>Ant provides a rich set of tasks for buildfile creators and
+administrators.  But what about programmers?  Can the functionality
+provided by Ant tasks be used in java programs?</p>
+
+<p>Yes, and its quite easy.  Before getting into the details, however, 
+we should mention the pros and cons of this approach:
+
+<h3>Pros</h3>
+
+<table cellpadding="0" margin="0" border="1">
+<tr>
+<td><b>Robust</b></td>
+<td>
+Ant tasks are very robust.  They have been banged on by many people.
+Ant tasks have been used in many different contexts, and have
+therefore been instrumented to take care of a great many boundary
+conditions and potentially obscure errors.
+</td>
+</tr>
+<tr>
+<td><b>Cross Platform</b></td>
+<td>
+Ant tasks are cross platform.  They have been tested on all of the
+volume platforms, and several rather unusual ones (Netware and OS/390, to
+name a few).
+</td>
+</tr>
+<tr>
+<td><b>Community Support</b></td>
+<td>
+Using Ant tasks means you have less of your own code to support.  Ant
+code is supported by the entire Apache Ant community.
+</td>
+</tr>
+</table>
+
+<h3>Cons</h3>
+
+<table cellpadding="0" margin="0" border="1">
+<tr>
+<td><b>Dependency on Ant Libraries</b></td>
+<td>
+Obviously, if you use an Ant task in your code, you will have to add
+"ant.jar" to your path.  Of course, you could use a code optimizer to
+remove the unnecessary classes, but you will still probably require a
+chunk of the Ant core.
+</td>
+</tr>
+<tr>
+<td><b>Loss of Flexibility</b></td>
+<td>
+At some point, if you find yourself having to modify the Ant code, it
+probably makes more sense to "roll your own."  Of course, you can
+still steal some code snippets and good ideas.  This is the beauty of
+open source!
+</td>
+</tr>
+</table>
+
+
+<h2>Example</h2>
+
+<p>Let's say you want to unzip a zip file programmatically from java
+into a certain directory.  Of course you could write your own routine
+to do this, but why not use the Ant task that has already been written?</p>
+
+<p>In my example, I wanted to be able to unzip a file from within an
+XSLT Transformation.  XSLT Transformers can be extended by plugging in
+static methods in java.  I therefore need a function something like
+this:</p>
+
+<pre>
+/**
+ * Unzip a zip file into a given directory.
+ *
+ * @param zipFilepath A pathname representing a local zip file
+ * @param destinationDir where to unzip the archive to
+ */
+ static public void unzip(String zipFilepath, String destinationDir)
+</pre>
+
+<p>
+The Ant task to perform this function is
+<code>org.apache.tools.ant.taskdefs.Expand</code>.  All we have to do
+is create a dummy Ant <code>Project</code> and <code>Target</code>,
+set the <code>Task</code> parameters that would normally be set in a
+buildfile, and call <code>execute()</code>.</p>
+
+<p>First, let's make sure we have the proper includes:</p>
+
+<pre>
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Target;
+import org.apache.tools.ant.taskdefs.Expand;
+import java.io.File;
+</pre>
+
+<p>The function call is actually quite simple:</p>
+
+<pre>
+static public void unzip(String zipFilepath, String destinationDir) {
+
+    final class Expander extends Expand {
+        public Expander() {
+ 	    project = new Project();
+	    project.init();
+	    taskType = "unzip";
+	    taskName = "unzip";
+	    target = new Target();
+	}	
+    }
+    Expander expander = new Expander();
+    expander.setSrc(new File(zipfile));
+    expander.setDest(new File(destdir));
+    expander.execute();
+</pre>
+
+<p>In actual practice, you will probably want to add your own error
+handling code and you may not want to use a local inner class.
+However, the point of the example is to show how an Ant task can be
+called programmatically in relatively few lines of code.</p>
+
+<p>The question you are probably asking yourself at this point is:
+<i>How would I know which classes and methods have to be called in
+order to set up a dummy Project and Target?</i> The answer is: you
+don't.  Ultimately, you have to be willing to get your feet wet and
+read the source code.  The above example is merely designed to whet
+your appetite and get you started.  Go for it!</p>
+
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/anttaskslist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/anttaskslist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/anttaskslist.html	(revision 14989)
@@ -0,0 +1,40 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Ant Tasks</h3>
+<a href="tasksoverview.html" target="mainFrame">Overview of Ant Tasks</a><br>
+<a href="coretasklist.html" target="navFrame"><b>Core Tasks</b></a><br>
+<a href="optionaltasklist.html" target="navFrame">Optional Tasks</a><br>
+&nbsp;&nbsp;<a href="install.html#librarydependencies" target="mainFrame">
+Library Dependencies</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/base_task_classes.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/base_task_classes.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/base_task_classes.html	(revision 14989)
@@ -0,0 +1,114 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Tasks Designed for Extension</title>
+</head>
+
+<body>
+<h1>Tasks Designed for Extension</h1>
+
+<p>These classes are designed to be extended.  Always start here when writing your own task.</p>
+
+<p><strong>The links will not work in the online version of this document.</strong></p>
+
+<table border="1">
+<thead>
+<tr>
+<th>
+Class
+</th>
+<th>
+Description
+</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/Task.html">Task</a>
+</td>
+<td>
+Base class for all tasks.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/AbstractCvsTask.html">AbstractCvsTask</a>
+</td>
+<td>
+Another task can extend this with some customized output processing
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/JDBCTask.html">JDBCTask</a>
+</td>
+<td>
+Handles JDBC configuration needed by SQL type tasks.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/MatchingTask.html">MatchingTask</a>
+</td>
+<td>
+This is an abstract task that should be used by all those tasks that require to include or exclude files based on pattern matching.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/Pack.html">Pack</a>
+</td>
+<td>
+Abstract Base class for pack tasks.
+</td>
+</tr>
+
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/taskdefs/Unpack.html">Unpack</a>
+</td>
+<td>
+Abstract Base class for unpack tasks.
+</td>
+</tr>
+
+<tr>
+<td>
+<a href="api/org/apache/tools/ant/dispatch/DispatchTask.html">DispatchTask</a>
+</td>
+<td>
+Abstract Base class for tasks that may have multiple actions.
+</td>
+</tr>
+
+</tbody>
+</table>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/clonevm.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/clonevm.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/clonevm.html	(revision 14989)
@@ -0,0 +1,52 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>ant.build.clonevm</title>
+</head>
+
+<body>
+
+<h2><a name="clonevm">ant.build.clonevm</a></h2>
+
+<p><em>Since Ant 1.7</em></p>
+
+<p>The value of the ant.build.clonevm system property controls how Ant
+instruments forked Java Virtual Machines.  The <a
+href="CoreTasks/java.html">java</a> and <a
+href="OptionalTasks/junit.html">junit</a> tasks support clonevm
+attributes to control the VMs on a task-by-task basis while the system
+property applies to all forked Java VMs.</p>
+
+<p>If the value of the property is true, then all system properties of
+the forked Java Virtual Machine will be the same as those of the Java
+VM running Ant.  In addition, if you set ant.build.clonevm to true and <a
+href="sysclasspath.html">build.sysclasspath</a> has not been set, the
+bootclasspath of forked Java VMs gets constructed as if
+build.sysclasspath had the value "last".</p>
+
+<p>Note that this has to be a system property, so it cannot be
+specified on the Ant command line.  Use the ANT_OPTS environment
+variable instead.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/conceptstypeslist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/conceptstypeslist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/conceptstypeslist.html	(revision 14989)
@@ -0,0 +1,78 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Concepts</h3>
+<a href="clonevm.html">ant.build.clonevm</a><br>
+<a href="sysclasspath.html">build.sysclasspath</a><br>
+<a href="javacprops.html">Ant properties controlling javac</a><br>
+<a href="CoreTasks/common.html">Common Attributes</a><br>
+
+<h3>Core Types</h3>
+<a href="CoreTypes/description.html">Description Type</a><br>
+<a href="dirtasks.html">Directory-based Tasks</a><br>
+<a href="CoreTypes/dirset.html">DirSet</a><br>
+<a href="CoreTypes/filelist.html">FileList</a><br>
+<a href="CoreTypes/fileset.html">FileSet</a><br>
+<a href="CoreTypes/mapper.html">File Mappers</a><br>
+<a href="CoreTypes/filterchain.html">FilterChains and FilterReaders</a><br>
+<a href="CoreTypes/filterset.html">FilterSet</a><br>
+<a href="CoreTypes/patternset.html">PatternSet</a><br>
+<a href="using.html#path">Path-like Structures</a><br>
+<a href="CoreTypes/permissions.html">Permissions</a><br>
+<a href="CoreTypes/propertyset.html">PropertySet</a><br>
+<a href="CoreTypes/redirector.html">I/O Redirectors</a><br>
+<a href="CoreTypes/regexp.html">Regexp</a><br>
+<a href="CoreTypes/resources.html">Resources</a><br>
+<a href="CoreTypes/resources.html#collection">Resource Collections</a><br>
+<a href="CoreTypes/selectors.html">Selectors</a><br>
+<a href="CoreTypes/tarfileset.html">TarFileSet</a><br>
+<a href="CoreTypes/xmlcatalog.html">XMLCatalog</a><br>
+<a href="CoreTypes/zipfileset.html">ZipFileSet</a><br>
+
+<h3>Optional Types</h3>
+<a href="OptionalTypes/classfileset.html">Class Fileset</a><br>
+<a href="OptionalTypes/extension.html">Extension Package</a><br>
+<a href="OptionalTypes/extensionset.html">Set of Extension Packages</a><br>
+
+<h3>Namespace</h3>
+<a href="CoreTypes/namespace.html">Namespace Support</a><br>
+<h3>Antlib</h3>
+<a href="CoreTypes/antlib.html">Antlib</a><br>
+<a href="CoreTypes/antlib.html#antlibnamespace">Antlib namespace</a><br>
+<a href="CoreTypes/antlib.html#currentnamespace">Current namespace</a><br>
+                                            
+
+<h3>Custom Components</h3>
+<a href="CoreTypes/custom-programming.html">Custom Components</a><br>
+<a href="CoreTypes/custom-programming.html#customconditions">Conditions</a><br>
+<a href="CoreTypes/custom-programming.html#customselectors">Selectors</a><br>
+<a href="CoreTypes/custom-programming.html#filterreaders">FilterReaders</a><br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/coretasklist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/coretasklist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/coretasklist.html	(revision 14989)
@@ -0,0 +1,129 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<a href="optionaltasklist.html" target="navFrame">Optional Tasks</a><br>
+<a href="tasksoverview.html" target="mainFrame">Overview of Ant Tasks</a><br>
+<a href="conceptstypeslist.html" target="navFrame">Concepts and Types</a><br>
+
+<h3>Core Tasks</h3>
+<a href="CoreTasks/ant.html">Ant</a><br>
+<a href="CoreTasks/antcall.html">AntCall</a><br>
+<a href="CoreTasks/antstructure.html">AntStructure</a><br>
+<a href="CoreTasks/apply.html">Apply/<i>ExecOn</i></a><br>
+<a href="CoreTasks/apt.html">Apt</a><br>
+<a href="CoreTasks/available.html">Available</a><br>
+<a href="CoreTasks/basename.html">Basename</a><br>
+<a href="CoreTasks/buildnumber.html">BuildNumber</a><br>
+<a href="CoreTasks/unpack.html">BUnzip2</a><br>
+<a href="CoreTasks/pack.html">BZip2</a><br>
+<a href="CoreTasks/checksum.html">Checksum</a><br>
+<a href="CoreTasks/chmod.html">Chmod</a><br>
+<a href="CoreTasks/concat.html">Concat</a><br>
+<a href="CoreTasks/condition.html">Condition</a><br>
+&nbsp;&nbsp;<a href="CoreTasks/conditions.html">Supported conditions</a><br>
+<a href="CoreTasks/copy.html">Copy</a><br>
+<a href="CoreTasks/copydir.html"><i>Copydir</i></a><br>
+<a href="CoreTasks/copyfile.html"><i>Copyfile</i></a><br>
+<a href="CoreTasks/cvs.html">Cvs</a><br>
+<a href="CoreTasks/changelog.html">CvsChangeLog</a><br>
+<a href="CoreTasks/cvsversion.html">CvsVersion</a><br>
+<a href="CoreTasks/cvspass.html">CVSPass</a><br>
+<a href="CoreTasks/cvstagdiff.html">CvsTagDiff</a><br>
+<a href="CoreTasks/defaultexcludes.html">Defaultexcludes</a><br>
+<a href="CoreTasks/delete.html">Delete</a><br>
+<a href="CoreTasks/deltree.html"><i>Deltree</i></a><br>
+<a href="CoreTasks/dependset.html">Dependset</a><br>
+<a href="CoreTasks/diagnostics.html">Diagnostics</a><br>
+<a href="CoreTasks/dirname.html">Dirname</a><br>
+<a href="CoreTasks/ear.html">Ear</a><br>
+<a href="CoreTasks/echo.html">Echo</a><br>
+<a href="CoreTasks/echoxml.html">EchoXML</a><br>
+<a href="CoreTasks/exec.html">Exec</a><br>
+<a href="CoreTasks/fail.html">Fail</a><br>
+<a href="CoreTasks/filter.html">Filter</a><br>
+<a href="CoreTasks/fixcrlf.html">FixCRLF</a><br>
+<a href="CoreTasks/genkey.html">GenKey</a><br>
+<a href="CoreTasks/get.html">Get</a><br>
+<a href="CoreTasks/unpack.html">GUnzip</a><br>
+<a href="CoreTasks/pack.html">GZip</a><br>
+<a href="CoreTasks/import.html">Import</a><br>
+<a href="CoreTasks/input.html">Input</a><br>
+<a href="CoreTasks/jar.html">Jar</a><br>
+<a href="CoreTasks/java.html">Java</a><br>
+<a href="CoreTasks/javac.html">Javac</a><br>
+<a href="CoreTasks/javadoc.html">Javadoc/<i>Javadoc2</i></a><br>
+<a href="CoreTasks/length.html">Length</a><br>
+<a href="CoreTasks/loadfile.html">LoadFile</a><br>
+<a href="CoreTasks/loadproperties.html">LoadProperties</a><br>
+<a href="CoreTasks/loadresource.html">LoadResource</a><br>
+<a href="CoreTasks/makeurl.html">MakeURL</a><br>
+<a href="CoreTasks/mail.html">Mail</a><br>
+<a href="CoreTasks/macrodef.html">MacroDef</a><br>
+<a href="CoreTasks/manifest.html">Manifest</a><br>
+<a href="CoreTasks/manifestclasspath.html">ManifestClassPath</a><br>
+<a href="CoreTasks/mkdir.html">Mkdir</a><br>
+<a href="CoreTasks/move.html">Move</a><br>
+<a href="CoreTasks/nice.html">Nice</a><br>
+<a href="CoreTasks/parallel.html">Parallel</a><br>
+<a href="CoreTasks/patch.html">Patch</a><br>
+<a href="CoreTasks/pathconvert.html">PathConvert</a><br>
+<a href="CoreTasks/presetdef.html">PreSetDef</a><br>
+<a href="CoreTasks/property.html">Property</a><br>
+<a href="CoreTasks/recorder.html">Record</a><br>
+<a href="CoreTasks/rename.html"><i>Rename</i></a><br>
+<a href="CoreTasks/replace.html">Replace</a><br>
+<a href="CoreTasks/resourcecount.html">ResourceCount</a><br>
+<a href="CoreTasks/rmic.html">Rmic</a><br>
+<a href="CoreTasks/sequential.html">Sequential</a><br>
+<a href="CoreTasks/signjar.html">SignJar</a><br>
+<a href="CoreTasks/sleep.html">Sleep</a><br>
+<a href="CoreTasks/sql.html">Sql</a><br>
+<a href="CoreTasks/subant.html">Subant</a><br>
+<a href="CoreTasks/sync.html">Sync</a><br>
+<a href="CoreTasks/tar.html">Tar</a><br>
+<a href="CoreTasks/taskdef.html">Taskdef</a><br>
+<a href="CoreTasks/tempfile.html">Tempfile</a><br>
+<a href="CoreTasks/touch.html">Touch</a><br>
+<a href="CoreTasks/tstamp.html">TStamp</a><br>
+<a href="CoreTasks/typedef.html">Typedef</a><br>
+<a href="CoreTasks/unzip.html">Unjar</a><br>
+<a href="CoreTasks/unzip.html">Untar</a><br>
+<a href="CoreTasks/unzip.html">Unwar</a><br>
+<a href="CoreTasks/unzip.html">Unzip</a><br>
+<a href="CoreTasks/uptodate.html">Uptodate</a><br>
+<a href="CoreTasks/waitfor.html">Waitfor</a><br>
+<a href="CoreTasks/whichresource.html">WhichResource</a><br>
+<a href="CoreTasks/war.html">War</a><br>
+<a href="CoreTasks/xmlproperty.html">XmlProperty</a><br>
+<a href="CoreTasks/style.html">XSLT/<i>Style</i></a><br>
+<a href="CoreTasks/zip.html">Zip</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/cover.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/cover.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/cover.html	(revision 14989)
@@ -0,0 +1,58 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant 1.7.0 User Manual</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+  <h1>Apache Ant 1.7.0 Manual</h1>
+<img src="../images/ant_logo_large.gif" width="190" height="120">
+  <p align="left">This is the manual for version 1.7.0 of 
+  <a target="_top" href="http://ant.apache.org/index.html">Apache Ant</a>. 
+    If your version 
+    of Ant (as verified with <tt>ant -version</tt>) is older or newer than this 
+    version then this is not the correct manual set. Please use the documentation 
+    appropriate to your current version. Also, if you are using a version
+    older than the most recent release, we recommend an upgrade to fix bugs
+    as well as provide new functionality. </p>
+  <p>&nbsp;</p>
+
+<hr>
+<p>
+This set of documents is reposted from the Ant1.7.0 downloadable manual so users of AntInstaller have the exact documents
+that are relevant to the specific Ant version used in the current AntInstaller download. <br><br>
+
+This set of documents has been modified by AntInstaller for the following reasons. 
+<ul>
+<li>Stylesheet edited for AntInstaller's Colors and fonts.</li>
+<li>Very minor HTML fixes</li>
+
+<li>Stylesheets links added where missing.</li>
+<li>Added links back the AntInstaller home page.</li>
+<li>Commented out some links for items not relevant to AntInstaller (such as running and installing Ant)</li>
+</ul>
+There have been no changes to the content of the documents.<br><br>
+Current official Ant documents are available <a target="_top" alt="Official Ant Documents" href="http://ant.apache.org/manual/index.html">here</a>
+
+</p>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/credits.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/credits.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/credits.html	(revision 14989)
@@ -0,0 +1,67 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Apache Ant User Manual - Credits</title>
+  <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+</head>
+
+<body>
+<h1>Apache Ant User Manual</h1>
+<p>by</p>
+<!-- Names are in alphabetical order, on last name -->
+<ul>
+  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
+  <li>Nicola Ken Barozzi (<a href="mailto:nicolaken@apache.org">nicolaken@apache.org</a>)</li>
+  <li>Jacques Bergeron (<a href="mailto:jacques.bergeron@dogico.com">jacques.bergeron@dogico.com</a>)</li>
+  <li>Stefan Bodewig (<a href="mailto:stefan.bodewig@freenet.de">stefan.bodewig@freenet.de</a>)</li>
+  <li>Patrick Chanezon (<a href="mailto:chanezon@netscape.com">chanezon@netscape.com</a>)</li>
+  <li>James Duncan Davidson (<a href="mailto:duncan@x180.com">duncan@x180.com</a>)</li>
+  <li>Tom Dimock (<a href="mailto:tad1@cornell.edu">tad1@cornell.edu</a>)</li>
+  <li>Peter Donald (<a href="mailto:donaldp@apache.org">donaldp@apache.org</a>)</li>
+  <li>dIon Gillard (<a href="mailto:dion@apache.org">dion@apache.org</a>)</li>
+  <li>Erik Hatcher (<a href="mailto:ehatcher@apache.org">ehatcher@apache.org</a>)</li>
+  <li>Diane Holt (<a href="mailto:holtdl@yahoo.com">holtdl@yahoo.com</a>)</li>
+  <li>Bill Kelly (<a href="mailto:bill.kelly@softwired-inc.com">bill.kelly@softwired-inc.com</a>)</li>
+  <li>Martijn Kruithof</li>
+  <li>Arnout J. Kuiper (<a href="mailto:ajkuiper@wxs.nl">ajkuiper@wxs.nl</a>)</li>
+  <li>Antoine Lï¿œy-Lambert</li>
+  <li>Conor MacNeill</li>
+  <li>Jan Matï¿œne</li>
+  <li>Stefano Mazzocchi (<a href="mailto:stefano@apache.org">stefano@apache.org</a>)</li>
+  <li>Erik Meade (<a href="mailto:emeade@geekfarm.org">emeade@geekfarm.org</a>)</li>
+  <li>Sam Ruby (<a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a>)</li>
+  <li>Nico Seessle (<a href="mailto:nico@seessle.de">nico@seessle.de</a>)</li>
+  <li>Jon S. Stevens (<a href="mailto:jon@latchkey.com">jon@latchkey.com</a>)</li>
+  <li>Wolf Siberski</li>
+  <li>Magesh Umasankar</li>
+  <li>Roger Vaughn (<a href="mailto:rvaughn@seaconinc.com">rvaughn@seaconinc.com</a>)</li>
+  <li>Dave Walend (<a href="mailto:dwalend@cs.tufts.edu">dwalend@cs.tufts.edu</a>)</li>
+  <li>Phillip Wells (<a href="mailto:philwells@rocketmail.com">philwells@rocketmail.com</a>)</li>
+  <li>Christoph Wilhelms</li>
+  <li>Craeg Strong (<a href="mailto:cstrong@arielpartners.com">cstrong@arielpartners.com</a>)</li>
+</ul>
+
+<center>
+<p>Version: 1.7.0</p>
+</center>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/develop.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/develop.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/develop.html	(revision 14989)
@@ -0,0 +1,514 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Writing Your Own Task</title>
+</head>
+
+<body>
+<h1>Developing with Ant</h1>
+
+<h2><a name="writingowntask">Writing Your Own Task</a></h2>
+<p>It is very easy to write your own task:</p>
+<ol>
+  <li>Create a Java class that extends <code>org.apache.tools.ant.Task</code>
+      or <a href="base_task_classes.html">another class</a> that was designed to be extended.</li>
+  <li>For each attribute, write a <i>setter</i> method. The setter method must be a
+    <code>public void</code> method that takes a single argument. The
+    name of the method must begin with <code>set</code>, followed by the
+    attribute name, with the first character of the name in uppercase, and the rest in
+
+    lowercase<a href="#footnote-1"><sup>*</sup></a>.  That is, to support an attribute named
+    <code>file</code> you create a method <code>setFile</code>.
+    Depending on the type of the argument, Ant will perform some
+    conversions for you, see <a href="#set-magic">below</a>.</li>
+
+  <li>If your task shall contain other tasks as nested elements (like
+  <a href="CoreTasks/parallel.html"><code>parallel</code></a>), your
+  class must implement the interface
+  <code>org.apache.tools.ant.TaskContainer</code>.  If you do so, your
+  task can not support any other nested elements.  See 
+  <a href="#taskcontainer">below</a>.</li>
+
+<li>If the task should support character data (text nested between the
+start end end tags), write a <code>public void addText(String)</code>
+method.  Note that Ant does <strong>not</strong> expand properties on
+the text it passes to the task.</li>
+
+<li>For each nested element, write a <i>create</i>, <i>add</i> or
+<i>addConfigured</i> method.  A create method must be a
+<code>public</code> method that takes no arguments and returns an
+<code>Object</code> type. The name of the create method must begin
+with <code>create</code>, followed by the element name. An add (or
+addConfigured) method must be a <code>public void</code> method that
+takes a single argument of an <code>Object</code> type with a
+no-argument constructor.  The name of the add (addConfigured) method
+must begin with <code>add</code> (<code>addConfigured</code>),
+followed by the element name.  For a more complete discussion see 
+<a href="#nested-elements">below</a>.</li>
+
+<li>Write a <code>public void execute</code> method, with no arguments, that
+throws a <code>BuildException</code>. This method implements the task
+itself.</li>
+</ol>
+
+<hr>
+<p><a name="footnote-1">*</a> Actually the case of the letters after
+the first one doesn't really matter to Ant, using all lower case is a
+good convention, though.</p>
+
+<h3>The Life-cycle of a Task</h3>
+<ol>
+  <li>The task gets instantiated using a no-argument constructor, at parser
+    time. This means even tasks that are never executed get
+    instantiated.</li>
+
+  <li>The task gets references to its project and location inside the
+    buildfile via its inherited <code>project</code> and
+    <code>location</code> variables.</li>
+
+  <li>If the user specified an <code>id</code> attribute to this task,
+    the project
+    registers a reference to this newly created task, at parser
+    time.</li>
+
+  <li>The task gets a reference to the target it belongs to via its
+    inherited <code>target</code> variable.</li>
+
+  <li><code>init()</code> is called at parser time.</li>
+
+  <li>All child elements of the XML element corresponding to this task
+    are created via this task's <code>createXXX()</code> methods or
+    instantiated and added to this task via its <code>addXXX()</code>
+    methods, at parser time.</li>
+
+  <li>All attributes of this task get set via their corresponding
+    <code>setXXX</code> methods, at runtime.</li>
+
+  <li>The content character data sections inside the XML element
+    corresponding to this task is added to the task via its
+    <code>addText</code> method, at runtime.</li>
+
+  <li>All attributes of all child elements get set via their corresponding
+    <code>setXXX</code> methods, at runtime.</li>
+
+  <li><a name="execute"><code>execute()</code></a> is called at runtime. While the above initialization
+    steps only occur once, the execute() method may be
+    called more than once, if the task is invoked more than once. For example,
+    if <code>target1</code> and <code>target2</code> both depend
+    on <code>target3</code>, then running
+    <code>'ant target1 target2'</code> will run all tasks in
+    <code>target3</code> twice.</li>
+</ol>
+
+<h3><a name="set-magic">Conversions Ant will perform for attributes</a></h3>
+
+<p>Ant will always expand properties before it passes the value of an
+attribute to the corresponding setter method.</p>
+
+<p>The most common way to write an attribute setter is to use a
+<code>java.lang.String</code> argument.  In this case Ant will pass
+the literal value (after property expansion) to your task.  But there
+is more!  If the argument of you setter method is</p>
+
+<ul>
+
+  <li><code>boolean</code>, your method will be passed the value
+  <i>true</i> if the value specified in the build file is one of
+  <code>true</code>, <code>yes</code>, or <code>on</code> and
+  <i>false</i> otherwise.</li>
+
+  <li><code>char</code> or <code>java.lang.Character</code>, your
+  method will be passed the first character of the value specified in
+  the build file.</li>
+
+  <li>any other primitive type (<code>int</code>, <code>short</code>
+  and so on), Ant will convert the value of the attribute into this
+  type, thus making sure that you'll never receive input that is not a
+  number for that attribute.</li>
+
+  <li><code>java.io.File</code>, Ant will first determine whether the
+  value given in the build file represents an absolute path name.  If
+  not, Ant will interpret the value as a path name relative to the
+  project's basedir.</li>
+
+  <li><code>org.apache.tools.ant.types.Path</code>, Ant will tokenize
+  the value specified in the build file, accepting <code>:</code> and
+  <code>;</code> as path separators.  Relative path names will be
+  interpreted as relative to the project's basedir.</li>
+
+  <li><code>java.lang.Class</code>, Ant will interpret the value
+  given in the build file as a Java class name and load the named
+  class from the system class loader.</li>
+
+  <li>any other type that has a constructor with a single
+  <code>String</code> argument, Ant will use this constructor to
+  create a new instance from the value given in the build file.</li>
+
+  <li>A subclass of
+  <code>org.apache.tools.ant.types.EnumeratedAttribute</code>, Ant
+  will invoke this classes <code>setValue</code> method.  Use this if
+  your task should support enumerated attributes (attributes with
+  values that must be part of a predefined set of values).  See
+  <code>org/apache/tools/ant/taskdefs/FixCRLF.java</code> and the
+  inner <code>AddAsisRemove</code> class used in <code>setCr</code>
+  for an example.</li>
+
+  <li>A (Java 5) enumeration. Ant will call the setter with the enum constant
+  matching the value given in the build file. This is easier than using
+  <code>EnumeratedAttribute</code> and can result in cleaner code, but of course
+  your task will not run on JDK 1.4 or earlier. Note that any override of
+  <code>toString()</code> in the enumeration is ignored; the build file must use
+  the declared name (see <code>Enum.getName()</code>). You may wish to use lowercase
+  enum constant names, in contrast to usual Java style, to look better in build files.
+  <em>As of Ant 1.7.0.</em></li>
+
+</ul>
+
+<p>What happens if more than one setter method is present for a given
+attribute?  A method taking a <code>String</code> argument will always
+lose against the more specific methods.  If there are still more
+setters Ant could chose from, only one of them will be called, but we
+don't know which, this depends on the implementation of your Java
+virtual machine.</p>
+
+<h3><a name="nested-elements">Supporting nested elements</a></h3>
+
+<p>Let's assume your task shall support nested elements with the name
+<code>inner</code>.  First of all, you need a class that represents
+this nested element.  Often you simply want to use one of Ant's
+classes like <code>org.apache.tools.ant.types.FileSet</code> to
+support nested <code>fileset</code> elements.</p>
+
+<p>Attributes of the nested elements or nested child elements of them
+will be handled using the same mechanism used for tasks (i.e. setter
+methods for attributes, addText for nested text and
+create/add/addConfigured methods for child elements).</p>
+
+<p>Now you have a class <code>NestedElement</code> that is supposed to
+be used for your nested <code>&lt;inner&gt;</code> elements, you have
+three options:</p>
+
+<ol>
+  <li><code>public NestedElement createInner()</code></li>
+  <li><code>public void addInner(NestedElement anInner)</code></li>
+  <li><code>public void addConfiguredInner(NestedElement anInner)</code></li>
+</ol>
+
+<p>What is the difference?</p>
+
+<p>Option 1 makes the task create the instance of
+<code>NestedElement</code>, there are no restrictions on the type.
+For the options 2 and 3, Ant has to create an instance of
+<code>NestedInner</code> before it can pass it to the task, this
+means, <code>NestedInner</code> must have a <code>public</code> no-arg
+  constructor or a <code>public</code> one-arg constructor
+  taking a Project class as a parameter.
+This is the only difference between options 1 and 2.</p>
+
+<p>The difference between 2 and 3 is what Ant has done to the object
+before it passes it to the method.  <code>addInner</code> will receive
+an object directly after the constructor has been called, while
+<code>addConfiguredInner</code> gets the object <em>after</em> the
+attributes and nested children for this new object have been
+handled.</p>
+
+<p>What happens if you use more than one of the options?  Only one of
+the methods will be called, but we don't know which, this depends on
+the implementation of your Java virtual machine.</p>
+
+  <h3><a name="nestedtype">Nested Types</a></h3>
+If your task needs to nest an arbitary type that has been defined
+  using <code>&lt;typedef&gt;</code> you have two options.
+  <ol>
+    <li><code>public void add(Type type)</code></li>
+    <li><code>public void addConfigured(Type type)</code></li>
+  </ol>
+  The difference between 1 and 2 is the same as between 2 and 3 in the
+  previous section.
+  <p>
+    For example suppose one wanted to handle objects object of type
+    org.apache.tools.ant.taskdefs.condition.Condition, one may
+    have a class:
+  </p>
+  <blockquote>
+  <pre>
+public class MyTask extends Task {
+    private List conditions = new ArrayList();
+    public void add(Condition c) {
+        conditions.add(c);
+    }
+    public void execute() {
+     // iterator over the conditions
+    }
+}
+  </pre>
+  </blockquote>
+  <p>
+    One may define and use this class like this:
+  </p>
+  <blockquote>
+    <pre>
+&lt;taskdef name="mytask" classname="MyTask" classpath="classes"/&gt;
+&lt;typedef name="condition.equals"
+         classname="org.apache.tools.ant.taskdefs.conditions.Equals"/&gt;
+&lt;mytask&gt;
+    &lt;condition.equals arg1="${debug}" arg2="true"/&gt;
+&lt;/mytask&gt;
+    </pre>
+  </blockquote>
+  <p>
+    A more complicated example follows:
+  </p>
+  <blockquote>
+    <pre>
+public class Sample {
+    public static class MyFileSelector implements FileSelector {
+         public void setAttrA(int a) {}
+         public void setAttrB(int b) {}
+         public void add(Path path) {}
+         public boolean isSelected(File basedir, String filename, File file) {
+             return true;
+         }
+     }
+
+    interface MyInterface {
+        void setVerbose(boolean val);
+    }        
+
+    public static class BuildPath extends Path {
+        public BuildPath(Project project) {
+            super(project);
+        }
+        
+        public void add(MyInterface inter) {}
+        public void setUrl(String url) {}
+    }
+
+    public static class XInterface implements MyInterface {
+        public void setVerbose(boolean x) {}
+        public void setCount(int c) {}
+    }
+}
+    </pre>
+  </blockquote>
+  <p>
+    This class defines a number of static classes that implement/extend
+    Path, MyFileSelector and MyInterface. These may be defined and used
+    as follows:
+  </p>
+  <pre>
+    <blockquote>
+&lt;typedef name="myfileselector" classname="Sample$MyFileSelector"
+         classpath="classes" loaderref="classes"/&gt;
+&lt;typedef name="buildpath" classname="Sample$BuildPath"
+         classpath="classes" loaderref="classes"/&gt;
+&lt;typedef name="xinterface" classname="Sample$XInterface"
+         classpath="classes" loaderref="classes"/&gt;
+
+&lt;copy todir="copy-classes"&gt;
+   &lt;fileset dir="classes"&gt;
+      &lt;myfileselector attra="10" attrB="-10"&gt;
+         &lt;buildpath path="." url="abc"&gt;
+            &lt;xinterface count="4"/&gt;
+         &lt;/buildpath&gt;
+      &lt;/myfileselector&gt;
+   &lt;/fileset&gt;
+&lt;/copy&gt;
+    </blockquote>
+  </pre>
+<h3><a name="taskcontainer">TaskContainer</a></h3>
+
+<p>The <code>TaskContainer</code> consists of a single method,
+<code>addTask</code> that basically is the same as an <a
+href="#nested-elements">add method</a> for nested elements.  The task
+instances will be configured (their attributes and nested elements
+have been handled) when your task's <code>execute</code> method gets
+invoked, but not before that.</p>
+
+<p>When we <a href="#execute">said</a> <code>execute</code> would be
+called, we lied ;-).  In fact, Ant will call the <code>perform</code>
+method in <code>org.apache.tools.ant.Task</code>, which in turn calls
+<code>execute</code>.  This method makes sure that <a
+href="#buildevents">Build Events</a> will be triggered.  If you
+execute the task instances nested into your task, you should also
+invoke <code>perform</code> on these instances instead of
+<code>execute</code>.</p>
+
+<h3>Example</h3>
+<p>Let's write our own task, which prints a message on the
+<code>System.out</code> stream.
+The
+task has one attribute, called <code>message</code>.</p>
+<blockquote>
+<pre>
+package com.mydomain;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+public class MyVeryOwnTask extends Task {
+    private String msg;
+
+    // The method executing the task
+    public void execute() throws BuildException {
+        System.out.println(msg);
+    }
+
+    // The setter for the &quot;message&quot; attribute
+    public void setMessage(String msg) {
+        this.msg = msg;
+    }
+}
+</pre>
+</blockquote>
+<p>It's really this simple ;-)</p>
+<p>Adding your task to the system is rather simple too:</p>
+<ol>
+  <li>Make sure the class that implements your task is in the classpath when
+    starting Ant.</li>
+  <li>Add a <code>&lt;taskdef&gt;</code> element to your project.
+    This actually adds your task to the system.</li>
+  <li>Use your task in the rest of the buildfile.</li>
+</ol>
+
+<h3>Example</h3>
+<blockquote>
+<pre>
+&lt;?xml version=&quot;1.0&quot;?&gt;
+
+&lt;project name=&quot;OwnTaskExample&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
+  &lt;taskdef name=&quot;mytask&quot; classname=&quot;com.mydomain.MyVeryOwnTask&quot;/&gt;
+
+  &lt;target name=&quot;main&quot;&gt;
+    &lt;mytask message=&quot;Hello World! MyVeryOwnTask works!&quot;/&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+</blockquote>
+<h3>Example 2</h3>
+To use a task directly from the buildfile which created it, place the
+<code>&lt;taskdef&gt;</code> declaration inside a target
+<i>after the compilation</i>. Use the <code>classpath</code> attribute of
+<code>&lt;taskdef&gt;</code> to point to where the code has just been
+compiled.
+<blockquote>
+<pre>
+&lt;?xml version=&quot;1.0&quot;?&gt;
+
+&lt;project name=&quot;OwnTaskExample2&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;build&quot; &gt;
+    &lt;mkdir dir=&quot;build&quot;/&gt;
+    &lt;javac srcdir=&quot;source&quot; destdir=&quot;build&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;declare&quot; depends=&quot;build&quot;&gt;
+    &lt;taskdef name=&quot;mytask&quot;
+        classname=&quot;com.mydomain.MyVeryOwnTask&quot;
+        classpath=&quot;build&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;main&quot; depends=&quot;declare&quot;&gt;
+    &lt;mytask message=&quot;Hello World! MyVeryOwnTask works!&quot;/&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+</blockquote>
+
+<p>Another way to add a task (more permanently), is to add the task name and
+implementing class name to the <code>default.properties</code> file in the
+<code>org.apache.tools.ant.taskdefs</code>
+package. Then you can use it as if it were a built-in task.</p>
+
+<hr>
+<h2><a name="buildevents">Build Events</a></h2>
+<P>Ant is capable of generating build events as it performs the tasks necessary to build a project.
+Listeners can be attached to Ant to receive these events. This capability could be used, for example,
+to connect Ant to a GUI or to integrate Ant with an IDE.
+</P>
+<p>To use build events you need to create an ant <code>Project</code> object. You can then call the
+<code>addBuildListener</code> method to add your listener to the project. Your listener must implement
+the <code>org.apache.tools.antBuildListener</code> interface. The listener will receive BuildEvents
+for the following events</P>
+<ul>
+<li>Build started</li>
+<li>Build finished</li>
+<li>Target started</li>
+<li>Target finished</li>
+<li>Task started</li>
+<li>Task finished</li>
+<li>Message logged</li>
+</ul>
+
+<p>If the build file invokes another build file via <a
+href="CoreTasks/ant.html"><code>&lt;ant&gt;</code></a> or <a
+href="CoreTasks/subant.html"><code>&lt;subant&gt;</code></a> or uses <a
+href="CoreTasks/antcall.html"><code>&lt;antcall&gt;</code></a>, you are creating a
+new Ant "project" that will send target and task level events of its
+own but never sends build started/finished events.  Ant 1.6.2
+introduces an extension of the BuildListener interface named
+SubBuildListener that will receive two new events for</p>
+<ul>
+<li>SubBuild started</li>
+<li>SubBuild finished</li>
+</ul>
+<p>If you are interested in those events, all you need to do is to
+implement the new interface instead of BuildListener (and register the
+listener, of course).</p>
+
+<p>
+If you wish to attach a listener from the command line you may use the
+<code>-listener</code> option. For example:</p>
+<blockquote>
+  <pre>ant -listener org.apache.tools.ant.XmlLogger</pre>
+</blockquote>
+<p>will run Ant with a listener that generates an XML representation of the build progress. This
+listener is included with Ant, as is the default listener, which generates the logging to standard output.</p>
+
+<p><b>Note: </b>A listener must not access System.out and System.err directly since ouput on 
+these streams is redirected by Ant's core to the build event system. Accessing these 
+streams can cause an infinite loop in Ant. Depending on the version of Ant, this will
+either cause the build to terminate or the Java VM to run out of Stack space. A logger, also, may 
+not access System.out and System.err directly. It must use the streams with which it has
+been configured.
+</p>
+
+<hr>
+<h2><a name="integration">Source code integration</a></h2>
+
+The other way to extend Ant through Java is to make changes to existing tasks, which is positively encouraged.
+Both changes to the existing source and new tasks can be incorporated back into the Ant codebase, which
+benefits all users and spreads the maintenance load around.
+<p>
+
+Please consult the
+<a href="http://jakarta.apache.org/site/getinvolved.html">Getting Involved</a> pages on the Jakarta web site
+for details on how to fetch the latest source and how to submit changes for reincorporation into the
+source tree.
+<p>
+Ant also has some
+<a href="http://ant.apache.org/ant_task_guidelines.html">task guidelines</a>
+which provides some advice to people developing and testing tasks. Even if you intend to
+keep your tasks to yourself, you should still read this as it should be informative.
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/developlist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/developlist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/developlist.html	(revision 14989)
@@ -0,0 +1,46 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Developing with Ant</h3>
+
+<a href="../ant_in_anger.html">Ant in Anger</a><br>
+<a href="../ant_task_guidelines.html">Ant Task Guidelines</a><br>
+<a href="develop.html#writingowntask">Writing Your Own Task</a><br>
+<a href="base_task_classes.html">Tasks Designed for Extension</a><br>
+<a href="develop.html#buildevents">Build Events</a><br>
+<a href="develop.html#integration">Source-code Integration</a><br>
+<a href="inputhandler.html">InputHandler</a><br>
+<a href="antexternal.html">Using Ant Tasks Outside of Ant</a><br>
+<br>Tutorials<br>
+<a href="tutorial-HelloWorldWithAnt.html">Hello World with Ant</a><br>
+<a href="tutorial-writing-tasks.html">Writing Tasks</a><br>
+<a href="tutorial-tasks-filesets-properties.html">Tasks using Properties, Filesets &amp; Paths</a><br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/dirtasks.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/dirtasks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/dirtasks.html	(revision 14989)
@@ -0,0 +1,300 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Directory-based Tasks</title>
+</head>
+
+<body>
+
+<h2><a name="directorybasedtasks">Directory-based Tasks</a></h2>
+<p>Some tasks use directory trees for the actions they perform.
+For example, the <a href="CoreTasks/javac.html">javac</a> task, which
+compiles a directory tree with <code>.java</code> files into
+<code>.class</code> files, is one of these directory-based tasks. Because
+some of these tasks do so much work with a directory tree, the task itself
+can act as an implicit <a href="CoreTypes/fileset.html">FileSet</a>.</p>
+<p>Whether the fileset is implicit or not, it can often be very useful to
+work on a subset of the directory tree. This section describes how you can
+select a subset of such a directory tree when using one of these
+directory-based tasks.</p>
+<p>Ant gives you two ways to create a subset of files in a fileset, both of
+which can be used at the same time:</p>
+<ul>
+  <li>Only include files and directories that match any
+    <code>include</code> patterns and do not match any
+    <code>exclude</code> patterns in a given
+    <a href="CoreTypes/patternset.html">PatternSet</a>.</li>
+  <li>Select files based on selection criteria defined by a collection of
+    <a href="CoreTypes/selectors.html">selector</a> nested elements.</li>
+</ul>
+<h3><a name="patternset">Patternset</a></h3>
+
+<p>We said that Directory-based tasks can sometimes act as an implicit
+<a href="CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>,
+but in addition to that, a FileSet acts as an implicit
+<a href="CoreTypes/patternset.html"><code>&lt;patternset&gt;</code></a>.</p>
+
+<p>The inclusion and exclusion elements of the implicit PatternSet can be
+specified inside the directory-based task (or explicit fileset) via
+either:</p>
+<ul>
+  <li>the attributes <code>includes</code> and
+    <code>excludes</code>.</li>
+  <li>nested elements <code>&lt;include&gt;</code> and
+    <code>&lt;exclude&gt;</code>.</li>
+  <li>external files specified with the attributes
+    <code>includesfile</code> and <code>excludesfile</code>.</li>
+  <li>external files specified with the nested elements
+    <code>&lt;includesfile&gt;</code> and <code>&lt;excludesfile&gt;</code>.
+  </li>
+</ul>
+<p>
+When dealing with an external file, each line of the file
+is taken as a pattern that is added to the list of include or exclude
+patterns.</p>
+
+<p>When both inclusion and exclusion are used, only files/directories that
+match at least one of the include patterns and don't match any of the
+exclude patterns are used. If no include pattern is given, all files
+are assumed to match the include pattern (with the possible exception of
+the default excludes).</p>
+
+<h4><a name="patterns">Patterns</a></h4>
+
+<p>As described earlier, patterns are used for the inclusion and exclusion
+of files. These patterns look very much like the patterns used in DOS and
+UNIX:</p>
+<p>'*' matches zero or more characters, '?' matches one character.</p>
+
+<p>In general, patterns are considered relative paths, relative to a
+task dependent base directory (the dir attribute in the case of
+<code>&lt;fileset&gt;</code>).  Only files found below that base
+directory are considered.  So while a pattern like
+<code>../foo.java</code> is possible, it will not match anything when
+applied since the base directory's parent is never scanned for
+files.</p>
+
+<p><b>Examples:</b></p>
+<p>
+<code>*.java</code>&nbsp;&nbsp;matches&nbsp;&nbsp;<code>.java</code>,
+<code>x.java</code> and <code>FooBar.java</code>, but
+not <code>FooBar.xml</code> (does not end with <code>.java</code>).</p>
+<p>
+<code>?.java</code>&nbsp;&nbsp;matches&nbsp;&nbsp;<code>x.java</code>,
+<code>A.java</code>, but not <code>.java</code> or <code>xyz.java</code>
+(both don't have one character before <code>.java</code>).</p>
+<p>
+Combinations of <code>*</code>'s and <code>?</code>'s are allowed.</p>
+<p>Matching is done per-directory. This means that first the first directory in
+the pattern is matched against the first directory in the path to match. Then
+the second directory is matched, and so on. For example, when we have the pattern
+<code>/?abc/*/*.java</code>
+and the path <code>/xabc/foobar/test.java</code>,
+the first <code>?abc</code> is matched with <code>xabc</code>,
+then <code>*</code> is matched with <code>foobar</code>,
+and finally <code>*.java</code> is matched with <code>test.java</code>.
+They all match, so the path matches the pattern.</p>
+<p>To make things a bit more flexible, we add one extra feature, which makes it
+possible to match multiple directory levels. This can be used to match a
+complete directory tree, or a file anywhere in the directory tree.
+To do this, <code>**</code>
+must be used as the name of a directory.
+When <code>**</code> is used as the name of a
+directory in the pattern, it matches zero or more directories.
+For example:
+<code>/test/**</code> matches all files/directories under <code>/test/</code>,
+such as <code>/test/x.java</code>,
+or <code>/test/foo/bar/xyz.html</code>, but not <code>/xyz.xml</code>.</p>
+<p>There is one &quot;shorthand&quot;: if a pattern ends
+with <code>/</code>
+or <code>\</code>, then <code>**</code>
+is appended.
+For example, <code>mypackage/test/</code> is interpreted as if it were
+<code>mypackage/test/**</code>.</p>
+<p><b>Example patterns:</b></p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><code>**/CVS/*</code></td>
+    <td valign="top">Matches all files in <code>CVS</code>
+      directories that can be located
+      anywhere in the directory tree.<br>
+      Matches:
+      <pre>
+      CVS/Repository
+      org/apache/CVS/Entries
+      org/apache/jakarta/tools/ant/CVS/Entries
+      </pre>
+      But not:
+      <pre>
+      org/apache/CVS/foo/bar/Entries (<code>foo/bar/</code>
+      part does not match)
+      </pre>
+    </td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/jakarta/**</code></td>
+    <td valign="top">Matches all files in the <code>org/apache/jakarta</code>
+      directory tree.<br>
+      Matches:
+      <pre>
+      org/apache/jakarta/tools/ant/docs/index.html
+      org/apache/jakarta/test.xml
+      </pre>
+      But not:
+      <pre>
+      org/apache/xyz.java
+      </pre>
+      (<code>jakarta/</code> part is missing).</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>org/apache/**/CVS/*</code></td>
+    <td valign="top">Matches all files in <code>CVS</code> directories
+      that are located anywhere in the directory tree under
+      <code>org/apache</code>.<br>
+      Matches:
+      <pre>
+      org/apache/CVS/Entries
+      org/apache/jakarta/tools/ant/CVS/Entries
+      </pre>
+      But not:
+      <pre>
+      org/apache/CVS/foo/bar/Entries
+      </pre>
+      (<code>foo/bar/</code> part does not match)</td>
+  </tr>
+  <tr>
+    <td valign="top"><code>**/test/**</code></td>
+    <td valign="top">Matches all files that have a <code>test</code>
+        element in their path, including <code>test</code> as a filename.</td>
+  </tr>
+</table>
+<p>When these patterns are used in inclusion and exclusion, you have a powerful
+way to select just the files you want.</p>
+
+<h3><a name="selectors">Selectors</a></h3>
+<p>The <a href="CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>,
+whether implicit or explicit in the
+directory-based task, also acts as an
+<a href="CoreTypes/selectors.html#andselect"><code>&lt;and&gt;</code></a>
+selector container. This can be used to create arbitrarily complicated
+selection criteria for the files the task should work with. See the
+<a href="CoreTypes/selectors.html">Selector</a> documentation for more
+information.</p>
+
+<h3><a name="tasklist">Standard Tasks/Filesets</a></h3>
+<p>Many of the standard tasks in ant take one or more filesets which follow
+the rules given here. This list, a subset of those, is a list of standard ant
+tasks that can act as an implicit fileset:</p>
+<ul>
+      <li><a href="CoreTasks/checksum.html"><code>&lt;checksum&gt;</code></a></li>
+  <li><a href="CoreTasks/copydir.html"><code>&lt;copydir&gt;</code></a> (deprecated)</li>
+  <li><a href="CoreTasks/delete.html"><code>&lt;delete&gt;</code></a></li>
+  <li><a href="CoreTasks/dependset.html"><code>&lt;dependset&gt;</code></a></li>
+  <li><a href="CoreTasks/fixcrlf.html"><code>&lt;fixcrlf&gt;</code></a></li>
+  <li><a href="CoreTasks/javac.html"><code>&lt;javac&gt;</code></a></li>
+  <li><a href="CoreTasks/replace.html"><code>&lt;replace&gt;</code></a></li>
+  <li><a href="CoreTasks/rmic.html"><code>&lt;rmic&gt;</code></a></li>
+  <li><a href="CoreTasks/style.html"><code>&lt;style&gt;</code> (aka <code>&lt;xslt&gt;</code>)</a></li>
+  <li><a href="CoreTasks/tar.html"><code>&lt;tar&gt;</code></a></li>
+  <li><a href="CoreTasks/zip.html"><code>&lt;zip&gt;</code></a></li>
+  <li><a href="OptionalTasks/ejb.html#ddcreator"><code>&lt;ddcreator&gt;</code></a></li>
+  <li><a href="OptionalTasks/ejb.html#ejbjar"><code>&lt;ejbjar&gt;</code></a></li>
+  <li><a href="OptionalTasks/ejb.html#ejbc"><code>&lt;ejbc&gt;</code></a></li>
+  <li><a href="OptionalTasks/cab.html"><code>&lt;cab&gt;</code></a></li>
+  <li><a href="OptionalTasks/native2ascii.html"><code>&lt;native2ascii&gt;</code></a></li>
+  <li><a href="OptionalTasks/netrexxc.html"><code>&lt;netrexxc&gt;</code></a></li>
+  <li>
+    <a href="OptionalTasks/renameextensions.html"><code>&lt;renameextensions&gt;</code></a>
+  </li>
+  <li><a href="OptionalTasks/depend.html"><code>&lt;depend&gt;</code></a></li>
+  <li><a href="OptionalTasks/dotnet.html"><code>&lt;ilasm&gt;</code></a></li>
+  <li><a href="OptionalTasks/dotnet.html"><code>&lt;csc&gt;</code></a></li>
+  <li><a href="OptionalTasks/dotnet.html"><code>&lt;vbc&gt;</code></a></li>
+  <li><a href="OptionalTasks/translate.html"><code>&lt;translate&gt;</code></a></li>
+  <li><a href="OptionalTasks/image.html"><code>&lt;image&gt;</code></a></li>
+  <li><a href="OptionalTasks/jlink.html"><code>&lt;jlink&gt;</code></a> (deprecated)</li>
+  <li><a href="OptionalTasks/jspc.html"><code>&lt;jspc&gt;</code></a></li>
+  <li><a href="OptionalTasks/wljspc.html"><code>&lt;wljspc&gt;</code></a></li>
+</ul>
+
+<h3><a name="examples">Examples</a></h3>
+<pre>
+&lt;copy todir=&quot;${dist}&quot;&gt;
+  &lt;fileset dir=&quot;${src}&quot;
+           includes=&quot;**/images/*&quot;
+           excludes=&quot;**/*.gif&quot;
+  /&gt;
+&lt;/copy&gt;</pre>
+<p>This copies all files in directories called <code>images</code> that are
+located in the directory tree defined by <code>${src}</code> to the
+destination directory defined by <code>${dist}</code>,
+but excludes all <code>*.gif</code> files from the copy.</p>
+<pre>
+&lt;copy todir=&quot;${dist}&quot;&gt;
+  &lt;fileset dir=&quot;${src}&quot;&gt;
+    &lt;include name=&quot;**/images/*&quot;/&gt;
+    &lt;exclude name=&quot;**/*.gif&quot;/&gt;
+  &lt;/fileset&gt;
+&lt;/copy&gt;
+</pre>
+<p> The same as the example above, but expressed using nested elements.</p>
+
+<pre>
+&lt;delete dir=&quot;${dist}&quot;&gt;
+    &lt;include name=&quot;**/images/*&quot;/&gt;
+    &lt;exclude name=&quot;**/*.gif&quot;/&gt;
+&lt;/delete&gt;
+</pre>
+<p>Deleting the original set of files, the <code>delete</code> task can act
+as an implicit fileset.</p>
+
+<h3><a name="defaultexcludes">Default Excludes</a></h3>
+<p>There are a set of definitions that are excluded by default from all
+directory-based tasks. They are:</p>
+<pre>
+     **/*~
+     **/#*#
+     **/.#*
+     **/%*%
+     **/._*
+     **/CVS
+     **/CVS/**
+     **/.cvsignore
+     **/SCCS
+     **/SCCS/**
+     **/vssver.scc
+     **/.svn
+     **/.svn/**
+     **/.DS_Store
+</pre>
+<p>If you do not want these default excludes applied, you may disable
+them with the <code>defaultexcludes=&quot;no&quot;</code>
+attribute.</p>
+
+<p>This is the default list; note that you can modify the list of
+default excludes by using the <a
+href="CoreTasks/defaultexcludes.html">defaultexcludes</a> task.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/feedback.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/feedback.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/feedback.html	(revision 14989)
@@ -0,0 +1,72 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual - Feedback</title>
+</head>
+
+<body>
+
+<h1><a name="feedback">Feedback</a> and Troubleshooting</h1>
+<p>If things do not work, especially simple things like <tt>ant -version</tt>, 
+  then something is wrong with your configuration. Before filing bug reports and 
+  emailing all the ant mailing lists</p>
+<ol>
+  <li>Check your environment variables. Are ANT_HOME and JAVA_HOME correct? If 
+    they have quotes or trailing slashes, remove them.</li>
+  <li>Unset CLASSPATH; if that is wrong things go horribly wrong. Ant does not 
+    need the CLASSPATH variable defined to anything to work.</li>
+  <li>Make sure there are no versions of crimson.jar or other XML parsers in JRE/ext</li>
+  <li>Is your path correct? is Ant on it? What about JDK/bin? have you tested 
+    this? If you are using Jikes, is it on the path? A createProcess error (especially 
+    with ID=2 on windows) usually means executable not found on the path.</li>
+  <li>Which version of ant are you running? Other applications distribute a copy 
+    -it may be being picked up by accident.</li>
+  <li>If a task is failing to run is optional.jar in ANT_HOME/lib? Are there any 
+    libraries which it depends on missing?</li>
+  <li>If a task doesn't do what you expect, run <tt>ant -verbose</tt> or <tt>ant 
+    -debug</tt> to see what is happening</li>
+</ol>
+<p>If you can't fix your problem, start with the <a href="http://ant.apache.org/mail.html" target="_top">Ant 
+  User Mailing List</a> . These are other ant users who will help you learn to 
+  use ant. If they cannot fix it then someone may suggest filing a bug report, 
+  which will escalate the issue. Remember of course, that support, like all open 
+  source development tasks, is voluntary. If you haven't invested time in helping 
+  yourself by following the steps above, it is unlikely that anyone will invest 
+  the time in helping you. </p>
+<p>Also, if you don't understand something, the <a href="http://ant.apache.org/mail.html" target="_top">Ant 
+  User Mailing List</a> is the place to ask questions. Not the developer list, 
+  nor the individuals whose names appears in the source and documentation. If 
+  they answered all such emails, nobody would have any time to improve ant. </p>
+<p>To provide feedback on this software, please subscribe to the <a href="http://ant.apache.org/mail.html" target="_top">Ant 
+  User Mailing List</a> </p>
+
+<p>If you want to contribute to Ant or stay current with the latest
+development, join the
+<a href="http://ant.apache.org/mail.html" target="_top">Ant Development Mailing List</a>
+</p>
+<p>A searchable archive can be found at <a
+href="http://marc.theaimsgroup.com" target="_top">http://marc.theaimsgroup.com</a>.
+Other archives will be documented online at  <a href="http://ant.apache.org/mail.html#Archives" target="_top">Mailing Lists Archives</a> </p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/ide.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/ide.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/ide.html	(revision 14989)
@@ -0,0 +1,105 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>IDE Integration</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>IDE Integration</h3>
+<p>
+All the modern Java IDEs support Ant almost out of the box.
+</p>
+
+<ul>
+  <li>
+    <a href="http://antrunner.sourceforge.net/">
+      AntRunner For JBuilder (unbundled)
+    </a>
+  </li>
+  <li>
+    <a href="Integration/jext-plugin.html">
+      AntWork Plugin for the Jext Java Text Editor (unbundled)
+    </a>
+  </li>
+  <li>
+    <a href="http://jdee.sunsite.dk/">
+      JDEE (Java Development Environment for Emacs)
+    </a> has built-in text ANT integration: selection of target through text
+    field, execution, hyperlink to compilation errors. Installation: built-in
+    JDEE 2.2.8 or later. Configuration: through customize menu
+    "Jde Build Function"
+  </li>
+  <li>
+    <a href="http://www.intellij.com/idea/">
+      IDEA
+    </a> has built-in GUI ANT integration: GUI selection of targets, execution,
+    hyperlink to compilation errors
+  </li>
+  <li>
+    <a href="http://ant.netbeans.org/">
+      NetBeans
+    </a>
+    NetBeans IDE uses Ant as the basis for its project system starting with the 4.0 release.
+  </li>
+  <li>
+    <a href="http://jedit.org/">
+      jEdit
+    </a>
+    jEdit is an open source java IDE with some great plugins for Java dev, a
+    good XML editor and the Antfarm plugin to execute targets in a build
+    file.
+  </li>
+  <li>
+    <a href="http://eclipse.org/">
+      Eclipse
+    </a>
+    Eclipse is IBM's counterpoint to NetBeans; an open source IDE with
+    Java and Ant support.
+  </li>
+  <li>
+    <a href="Integration/VAJAntTool.html">
+      VisualAge for Java</a>
+  </li>
+  <li>
+    <a href="http://www7b.software.ibm.com/wsdd/library/techarticles/0203_searle/searle1.html">
+      WebSphere Studio Application Developer
+    </a>
+  </li>
+  <li>
+    <a href="http://www.borland.com/jbuilder/pdf/jb9_feamatrix.pdf">
+      JBuilder 9 Personal
+    </a>
+    JBuilder supports Ant with the following features. Add Ant nodes to
+    projects and execute Ant targets from within JBuilder. Add custom Ant-based
+    build tasks with custom Ant libraries to run Ant from within JBuilder.
+    Rapid navigation from Ant build error messages to source files.
+    Customize build menu and toolbar with custom build targets.
+  </li>
+</ul>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/index.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/index.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/index.html	(revision 14989)
@@ -0,0 +1,34 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+</head>
+
+<frameset cols="26%,74%" bordercolor="Highlight" border="2" >
+<frame src="toc.html" name="navFrame" marginheight="0" marginwidth="0" frameborder="1">
+<frame src="cover.html" name="mainFrame" marginheight="0" marginwidth="0" frameborder="1">
+</frameset>
+<noframes>
+<H2>Apache Ant User Manual</H2>
+
+<a href="toc.html">Apache Ant User Manual</a></noframes>
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/inputhandler.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/inputhandler.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/inputhandler.html	(revision 14989)
@@ -0,0 +1,110 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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 HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>InputHandler</title>
+</head>
+
+<body>
+<h1>InputHandler</h1>
+
+<h2>Overview</h2>
+
+<p>When a task wants to prompt a user for input, it doesn't simply
+read the input from the console as this would make it impossible to
+embed Ant in an IDE.  Instead it asks an implementation of the
+<code>org.apache.tools.ant.input.InputHandler</code> interface to
+prompt the user and hand the user input back to the task.</p>
+
+<p>To do this, the task creates an <code>InputRequest</code> object
+and passes it to the <code>InputHandler</code> Such an
+<code>InputRequest</code> may know whether a given user input is valid
+and the <code>InputHandler</code> is supposed to reject all invalid
+input.</p>
+
+<p>Exactly one <code>InputHandler</code> instance is associated with
+every Ant process, users can specify the implementation using the
+<code>-inputhandler</code> command line switch.</p>
+
+<h2>InputHandler</h2>
+
+<p>The <code>InputHandler</code> interface contains exactly one
+method</p>
+
+<pre>
+    void handleInput(InputRequest request) 
+        throws org.apache.tools.ant.BuildException;
+</pre>
+
+<p>with some pre- and postconditions.  The main postcondition is that
+this method must not return unless the <code>request</code> considers
+the user input valid, it is allowed to throw an exception in this
+situation.</p>
+
+<p>Ant comes with three built-in implementations of this interface:</p>
+
+<h3><a name="defaulthandler">DefaultInputHandler</a></h3>
+
+<p>This is the implementation you get, when you don't use the
+<code>-inputhandler</code> command line switch at all.  This
+implementation will print the prompt encapsulated in the
+<code>request</code> object to Ant's logging system and re-prompt for
+input until the user enters something that is considered valid input
+by the <code>request</code> object.  Input will be read from the
+console and the user will need to press the Return key.</p>
+
+<h3>PropertyFileInputHandler</h3>
+
+<p>This implementation is useful if you want to run unattended build
+processes.  It reads all input from a properties file and makes the
+build fail if it cannot find valid input in this file.  The name of
+the properties file must be specified in the Java system property
+<code>ant.input.properties</code>.</p>
+
+<p>The prompt encapsulated in a <code>request</code> will be used as
+the key when looking up the input inside the properties file.  If no
+input can be found, the input is considered invalid and an exception
+will be thrown.</p>
+
+<p><strong>Note</strong> that <code>ant.input.properties</code> must
+be a Java system property, not an Ant property.  I.e. you cannot
+define it as a simple parameter to <code>ant</code>, but you can
+define it inside the <code>ANT_OPTS</code> environment variable.</p>
+
+<h3>GreedyInputHandler</h3>
+
+<p>Like the default implementation, this InputHandler reads from standard
+input. However, it consumes <i>all</i> available input. This behavior is
+useful for sending Ant input via an OS pipe. <b>Since Ant 1.7</b>.</p>
+
+<h2>InputRequest</h2>
+
+<p>Instances of <code>org.apache.tools.ant.input.InputRequest</code>
+encapsulate the information necessary to ask a user for input and
+validate this input.</p>
+
+<p>The instances of <code>InputRequest</code> itself will accept any
+input, but subclasses may use stricter validations.
+<code>org.apache.tools.ant.input.MultipleChoiceInputRequest</code>
+should be used if the user input must be part of a predefined set of
+choices.</p>
+
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/install.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/install.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/install.html	(revision 14989)
@@ -0,0 +1,845 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Installing Ant</title>
+</head>
+
+<body>
+<h1>Installing Ant</h1>
+<h2><a name="getting">Getting Ant</a></h2>
+<h3>Binary Edition</h3>
+<p>The latest stable version of Ant is available from the Ant web page <a
+href="http://ant.apache.org/">http://ant.apache.org/</a>.
+
+<h3>As a binary in an RPM Package</h3>
+
+<p>Consult the <a href="#jpackage">jpackage</a> section below.</p>
+
+<h3>Bundled in IDEs</h3>
+<p>
+    All the main Java IDEs ship with Ant, products such as Eclipse, NetBeans
+    and IntelliJ IDEA. If you install Ant this way you usually get the most recent
+    release of Ant at the time the IDE was released. Some of the IDEs (Eclipse
+    and NetBeans in particular) ship with extra tasks that only work if 
+    IDE-specific tools are on Ant's path. To use these on command-line versions
+    of Ant, the relevant JARs need to be added to the command-line Ant as
+    extra libraries/tasks. Note that if it is an IDE task or extension that is
+    not behaving, the Ant team is unable to field bug reports. Try the IDE mailing
+    lists first, who will cross-file bugs if appropriate.
+</p>
+<p>
+    IDE's can invariably be pointed at different Ant installations. This lets
+    developers upgrade to a new release of Ant, and eliminate inconsistencies 
+    between command-line and IDE Ant. 
+</p>
+
+<h3>Bundled in Java applications</h3>
+
+<p>
+    Many Java applications, most particularly application servers, ship with 
+    a version of Ant. These are primarily for internal use by the application,
+    using the Java APIs to delegate tasks such as JSP page compilation to the Ant
+    runtime. Such distributions are usually unsupported by everyone. Particularly
+    troublesome are those products that non only ship with their own Ant release,
+    they add their own version of ANT.BAT or ant.sh to the PATH. If Ant starts 
+    behaving wierdly after installing something, try the 
+    <a href="#diagnostics">diagnostics</a> advice.
+</p>
+
+<h3>Source Edition</h3>
+
+<p>If you prefer the source edition, you can download the source for the latest 
+Ant release from 
+<a href="http://ant.apache.org/srcdownload.cgi">http://ant.apache.org/srcdownload.cgi</a>.
+
+If you prefer the leading-edge code, you can access
+the code as it is being developed via SVN. The Ant website has details on
+<a href="http://ant.apache.org/svn.html" target="_top">accessing SVN</a>. 
+All bug fixes will go in against the HEAD of the source tree, and the first
+response to many bugreps will be "have you tried the latest version". 
+Don't be afraid to download and build a prererelease edition, as everything
+other than new features are usually stable.
+    </p>
+<p>
+    
+    
+See the section <a href="#buildingant">Building Ant</a> on how to
+build Ant from the source code.
+You can also access the
+<a href="http://svn.apache.org/viewcvs.cgi/ant/" target="_top">
+Ant SVN repository</a> on-line. </p>
+
+<hr>
+<h2><a name="sysrequirements">System Requirements</a></h2>
+Ant has been used successfully on many platforms, including Linux,
+commercial flavours of Unix such as Solaris and HP-UX,
+Windows NT-platforms, OS/2 Warp, Novell Netware 6, OpenVMS and MacOS X.
+The platforms used most for development are, in no particular order,
+Linux, MacOS X, Windows XP and Unix; these are therefore that platforms
+that tend to work best. As of Ant1.7, Windows 9x is no longer supported.
+<p>
+To build and use Ant, you must have a JAXP-compliant XML parser installed and
+available on your classpath, such as Xerces.</p>
+<p>
+The binary distribution of Ant includes the latest version of the
+<a href="http://xml.apache.org/xerces2-j/index.html">Apache Xerces2</a> XML parser.
+Please see
+<a href="http://java.sun.com/xml/" target="_top">http://java.sun.com/xml/</a>
+for more information about JAXP.
+If you wish to use a different JAXP-compliant parser, you should remove
+<code>xercesImpl.jar</code> and <code>xml-apis.jar</code>
+from Ant's <code>lib</code> directory.
+<p>
+You can then either put the JARs of your preferred parser into Ant's
+<code>lib</code> directory or put the jars on the system classpath. 
+Some parts of Ant will fail if you use an old parser, especially one
+that is not namespace-aware. In particular, avoid the Crimson parser.</p>
+
+<p>Tip: "ant -diagnostics" will list the XML parser used and its location.</p>
+
+<p>
+For the current version of Ant, you will also need a JDK installed on
+your system, version 1.2 or later required, 1.5 or later strongly recommended. 
+The later the version of Java , the more Ant tasks you get.
+</p>
+<p>
+<strong>Note #2: </strong>If a JDK is not present, only the JRE runtime, then many tasks will not work.
+</p>
+
+<h3>Open Source Java Runtimes</h3>
+<p>
+    The Ant team strongly supports users running Ant on Kaffe and other
+    open source Java runtimes, and so strives to have a product that works
+    well on those platforms. What appears to work well is Kaffe with 
+    Gnu Classpath and the Xerces and Xalan libraries. 
+</p>
+
+<hr>
+<h2><a name="installing">Installing Ant</a></h2>
+<p>The binary distribution of Ant consists of the following directory layout:
+<pre>
+  ant
+   +--- README, LICENSE, fetch.xml, other text files. //basic information
+   +--- bin  // contains launcher scripts
+   |
+   +--- lib  // contains Ant jars plus necessary dependencies
+   |
+   +--- docs // contains documentation
+   |      |
+   |      +--- images  // various logos for html documentation
+   |      |
+   |      +--- manual  // Ant documentation (a must read ;-)
+   |
+   +--- etc // contains xsl goodies to:
+            //   - create an enhanced report from xml output of various tasks.
+            //   - migrate your build files and get rid of 'deprecated' warning
+            //   - ... and more ;-)
+</pre>
+
+Only the <code>bin</code> and <code>lib</code> directories are
+required to run Ant.
+
+To install Ant, choose a directory and copy the distribution
+files there. This directory will be known as ANT_HOME.
+</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td colspan="2">
+    <b>Windows 95, Windows 98 &amp; Windows ME Note:</b>
+  </td>
+</tr>
+<tr>
+  <td width="5%">&nbsp;</td>
+  <td><i>
+On these systems, the script used to launch Ant will have
+problems if ANT_HOME is a long filename (i.e. a filename which is not
+of the format known as &quot;8.3&quot;). This is due to
+limitations in the OS's handling of the <code>&quot;for&quot;</code>
+batch-file statement. It is recommended, therefore, that Ant be
+installed in a <b>short</b>, 8.3 path, such as C:\Ant. </i>
+  </td>
+</tr>
+<tr>
+  <td width="5%">&nbsp;</td>
+  <td>
+    <p>On these systems you will also need to configure more environment
+       space to cater for the environment variables used in the Ant lauch script.
+       To do this, you will need to add or update the following line in
+       the <code>config.sys</code> file
+    </p>
+    <p><code>shell=c:\command.com c:\ /p /e:32768</code></p>
+  </td>
+</tr>
+</table>
+
+<h3>Setup</h3>
+<p>
+Before you can run Ant there is some additional set up you
+will need to do unless you are installing the <a href="#jpackage">RPM 
+version from jpackage.org</a>:</p>
+<ul>
+<li>Add the <code>bin</code> directory to your path.</li>
+<li>Set the <code>ANT_HOME</code> environment variable to the
+directory where you installed Ant.  On some operating systems, Ant's
+startup scripts can guess <code>ANT_HOME</code> (Unix dialects and
+Windows NT/2000), but it is better to not rely on this behavior.</li>
+<li>Optionally, set the <code>JAVA_HOME</code> environment variable
+(see the <a href="#advanced">Advanced</a> section below).
+This should be set to the directory where your JDK is installed.</li>
+</ul>
+<p><strong>Note:</strong> Do not install Ant's ant.jar file into the lib/ext
+directory of the JDK/JRE. Ant is an application, whilst the extension
+directory is intended for JDK extensions. In particular there are security
+restrictions on the classes which may be loaded by an extension.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td colspan="2">
+    <b>Windows Note:</b>
+  </td>
+</tr>
+<tr>
+  <td width="5%">&nbsp;</td>
+  <td>
+    The ant.bat script makes use of three environment variables -
+    ANT_HOME, CLASSPATH and JAVA_HOME. <b>Ensure</b> that if
+    these variables are set, they do <b><u>not</u></b> have quotes (either
+    ' or &quot;) and they do <b><u>not</u></b> end with \ or with /.
+  </td>
+</tr>
+</table>
+
+<h3><a name="optionalTasks">Optional Tasks</a></h3>
+<p>Ant supports a number of optional tasks. An optional task is a task which
+typically requires an external library to function. The optional tasks are
+packaged together with the core Ant tasks.</p>
+
+<p>The external libraries required by each of the optional tasks is detailed
+in the <a href="#librarydependencies">Library Dependencies</a> section. These external
+libraries must be added to Ant's classpath, in any of the following ways 
+</p>
+<ul>
+    <li>In ANT_HOME/lib. This makes the JAR files available to all
+    Ant users and builds</li>
+    
+    <li>
+        In ${user.home}/.ant/lib . This is a new feature since Ant1.6, 
+        and allows different users to add new libraries to Ant. All JAR files
+        added to this directory are available to command-line Ant.
+    </li>
+    
+    <li>
+        On the command line with a <code>-lib</code> parameter. This lets
+        you add new JAR files on a case-by-case basis.
+    </li>
+    
+    <li>In the CLASSPATH environment variable. Avoid this; it makes
+        the JAR files visible to <i>all</i> Java applications, and causes
+        no end of support calls.
+    </li>
+</ul>
+
+<p>
+    IDEs have different ways of adding external JAR files and third-party tasks
+    to Ant. Usually it is done by some configuration dialog. Sometimes JAR files
+    added to a project are automatically added to ant's classpath.
+</p>
+
+<h3><a name="classpath">The CLASSPATH environment variable</a></h3>
+<p>
+
+The CLASSPATH environment variable is a source of many Ant support queries. As
+the round trip time for diagnosis on the Ant user mailing list can be slow, and
+because filing bug reports complaining about 'ant.bat' not working will be
+rejected by the developers as WORKSFORME "this is a configuration problem, not a
+bug", you can save yourself a lot of time and frustration by following some
+simple steps.
+
+</p>
+<ol>
+
+<li>Do not ever set CLASSPATH. Ant does not need it, it only causes confusion
+and breaks things.
+
+</li>
+
+<li>If you ignore the previous rule, do not ever, ever, put quotes in the
+CLASSPATH, even if there is a space in a directory. This will break Ant, and it
+is not needed. </li>
+
+<li>If you ignore the first rule, do not ever, ever, have a trailing backslash
+in a CLASSPATH, as it breaks Ant's ability to quote the string. Again, this is
+not needed for the correct operation of the CLASSPATH environment variable, even
+if a DOS directory is to be added to the path. </li>
+
+<li>You can stop Ant using the CLASSPATH environment variable by setting the
+<code>-noclasspath</code> option on the command line. This is an easy way
+to test for classpath-related problems.</li>
+
+</ol>
+
+<p>
+
+The usual symptom of CLASSPATH problems is that ant will not run with some error
+about not being able to find <code>org.apache.tools.Ant.main</code>, or, if you have got the
+quotes/backslashes wrong, some very weird Java startup error. To see if this is
+the case, run <code>ant -noclasspath</code> or unset the CLASSPATH environment
+variable.
+
+</p>
+
+
+<h3><a name="proxy">Proxy Configuration</a></h3>
+
+<p> Many Ant built-in and third-party tasks use network connections to retrieve
+files from HTTP servers. If you are behind a firewall with a proxy server, then
+Ant needs to be configured with the proxy. Here are the different ways to do
+this. </p>
+
+<ul>
+
+<li><b>With Java1.5</b><br>. 
+
+When you run Ant on Java1.5, it tries to use the automatic proxy setup
+mechanism. If this works -and it is a big if, as we see little evidence of it
+doing so on Linux or WinXP-, then your proxy is set up without you doing
+anything. You can disable this feature with the <code>-noproxy</code> option.
+
+</li>
+
+<li><b>With explicit JVM properties.</b><br>.
+
+These are documented <a
+href="http://java.sun.com/j2se/1.5.0/docs/guide/net/properties.html">by Sun</a>,
+and control the proxy behaviour of the entire JVM. To set them in Ant, declare
+them in the <code>ANT_OPTS</code> environment variable. This is the best option
+for a non-mobile system. For a laptop, you have to change these settings as you
+roam.
+
+</li>
+
+<li><b>In the build file itself</b><br>
+
+If you are writing an build file that is always to be used behind the firewall,
+the &lt;setproxy&gt; task lets you configure the proxy (which it does by setting
+the JVM properties). If you do this, we strongly recommend using ant properties
+to define the proxy host, port, etc, so that individuals can override the
+defaults.</li>
+
+</ul>
+
+<p> The Ant team acknowledges that this is unsatisfactory. Until the JVM
+automatic proxy setup works properly everywhere, explicit JVM options via
+ANT_ARGS are probably the best solution. Setting properties on Ant's
+command line do not work, because those are <i>Ant properties</i> being set, not
+JVM options. This means the following does not set up the command line:
+
+</p>
+
+<pre>ant -Dhttp.proxyHost=proxy -Dhttp.proxyPort=81</pre>
+
+<p> All it does is set up two Ant properties.</p> 
+
+<p>One other troublespot with
+proxies is with authenticating proxies. Ant cannot go beyond what the JVM does
+here, and as it is very hard to remotely diagnose, test and fix proxy-related
+problems, users who work behind a secure proxy will have to spend much time
+configuring the JVM properties until they are happy. </p>
+
+
+<h3><a name="windows">Windows and OS/2</a></h3>
+<p>Assume Ant is installed in <code>c:\ant\</code>. The following sets up the
+environment:</p>
+<pre>set ANT_HOME=c:\ant
+set JAVA_HOME=c:\jdk-1.5.0.05
+set PATH=%PATH%;%ANT_HOME%\bin</pre>
+
+<h3>Linux/Unix (bash)</h3>
+<p>Assume Ant is installed in <code>/usr/local/ant</code>. The following sets up
+the environment:</p>
+<pre>export ANT_HOME=/usr/local/ant
+export JAVA_HOME=/usr/local/jdk-1.5.0.05
+export PATH=${PATH}:${ANT_HOME}/bin</pre>
+
+<h3>Linux/Unix (csh)</h3>
+<pre>setenv ANT_HOME /usr/local/ant
+setenv JAVA_HOME /usr/local/jdk/jdk-1.5.0.05
+set path=( $path $ANT_HOME/bin )</pre>
+
+<p>
+Having a symbolic link set up to point to the JVM/JSK version makes updates more seamless. </p>
+<a name="jpackage"></a>
+<h3>RPM version from jpackage.org</h3>
+<p>
+The <a href="http://www.jpackage.org">JPackage project</a> distributes an RPM version of Ant.  
+With this version, it is not necessary to set <code> JAVA_HOME </code>or 
+<code> ANT_HOME </code>environment variables and the RPM installer will correctly
+place the Ant executable on your path.
+</p>
+  <p>
+    <b>NOTE:</b> <em>Since Ant 1.7.0</em>, if the <code>ANT_HOME</code>
+    environment variable is set, the jpackage distribution will be
+    ignored.
+  </p>
+  <p>
+Optional jars for the JPackage version are handled in two ways.  The easiest, and
+best way is to get these external libraries from JPackage if JPackage has them 
+available.  (Note: for each such library, you will have to get both the external 
+package itself (e.g. <code>oro-2.0.8-2jpp.noarch.rpm</code>) and the small library that links 
+ant and the external package (e.g. <code>ant-apache-oro-1.6.2-3jpp.noarch.rpm</code>).
+</p><p>
+However, JPackage does not package proprietary software, and since some of the
+optional packages depend on proprietary jars, they must be handled as follows.  
+This may violate the spirit of JPackage, but it is necessary if you need these proprietary packages.
+For example, suppose you want to install support for starteam, which jpackage does not 
+support:
+<ol>
+<li>Decide where you want to deploy the extra jars.  One option is in <code>$ANT_HOME/lib</code>, 
+which, for JPackage is usually <code>/usr/share/ant/lib</code>.  Another, less messy option
+is to create an <code>.ant/lib</code> subdirectory of your home directory and place your 
+non-jpackage ant jars there, thereby avoiding mixing jpackage
+libraries with non-jpacakge stuff in the same folder.
+More information on where Ant finds its libraries is available 
+<a href="http://ant.apache.org/manual/running.html#libs">here</a></li>
+<li>Download a non-jpackage binary distribution from the regular 
+    <a href="http://ant.apache.org/bindownload.cgi">Apache Ant site</a></li>
+<li>Unzip or untar the distribution into a temporary directory</li>
+<li>Copy the linking jar, in this case <code>ant-starteam.jar</code>, into the library directory you 
+chose in step 1 above.</li>
+<li>Copy the proprietary jar itself into the same directory.</li>
+</ol>
+Finally, if for some reason you are running on a system with both the JPackage and Apache versions of Ant
+available, if you should want to run the Apache version (which will have to be specified with an absolute file name,
+not found on the path), you should use Ant's <code>--noconfig</code> command-line switch to avoid JPackage's classpath mechanism.
+
+
+<h3><a name="advanced">Advanced</a></h3>
+
+<p>There are lots of variants that can be used to run Ant. What you need is at
+least the following:</p>
+<ul>
+<li>The classpath for Ant must contain <code>ant.jar</code> and any jars/classes
+needed for your chosen JAXP-compliant XML parser.</li>
+<li>When you need JDK functionality
+(such as for the <a href="CoreTasks/javac.html">javac</a> task or the
+<a href="CoreTasks/rmic.html">rmic</a> task), then <code>tools.jar</code>
+must be added. The scripts supplied with Ant,
+in the <code>bin</code> directory, will add
+the required JDK classes automatically, if the <code>JAVA_HOME</code>
+environment variable is set.</li>
+
+<li>When you are executing platform-specific applications, such as the
+<a href="CoreTasks/exec.html">exec</a> task or the
+<a href="CoreTasks/cvs.html">cvs</a> task, the property <code>ant.home</code>
+must be set to the directory containing where you installed Ant. Again
+this is set by the Ant scripts to the value of the ANT_HOME environment
+variable.</li>
+</ul>
+The supplied ant shell scripts all support an <tt>ANT_OPTS</tt>
+environment variable which can be used to supply extra options
+to ant. Some of the scripts also read in an extra script stored
+in the users home directory, which can be used to set such options. Look
+at the source for your platform's invocation script for details.
+
+<hr>
+<h2><a name="buildingant">Building Ant</a></h2>
+<p>To build Ant from source, you can either install the Ant source distribution
+or checkout the ant module from SVN.</p>
+<p>Once you have installed the source, change into the installation
+directory.</p>
+
+<p>Set the <code>JAVA_HOME</code> environment variable
+to the directory where the JDK is installed.
+See <a href="#installing">Installing Ant</a>
+for examples on how to do this for your operating system. </p>
+
+<p><b>Note</b>: The bootstrap process of Ant requires a greedy
+compiler like Sun's javac or jikes.  It does not work with gcj or
+kjc.</p>
+
+<p>Make sure you have downloaded any auxiliary jars required to
+build tasks you are interested in. These should be
+added to the <code>lib/optional</code>
+directory of the source tree.
+See <a href="#librarydependencies">Library Dependencies</a>
+for a list of JAR requirements for various features.
+Note that this will make the auxiliary JAR
+available for the building of Ant only. For running Ant you will
+still need to
+make the JARs available as described under
+<a href="#installing">Installing Ant</a>.</p>
+
+<p>Your are now ready to build Ant:</p>
+<blockquote>
+  <p><code>build -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
+  <p><code>sh build.sh -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
+</blockquote>
+
+<p>This will create a binary distribution of Ant in the directory you specified.</p>
+
+<p>The above action does the following:</p>
+<ul>
+
+<li>If necessary it will bootstrap the Ant code. Bootstrapping involves the manual
+compilation of enough Ant code to be able to run Ant. The bootstrapped Ant is
+used for the remainder of the build steps. </li>
+
+<li>Invokes the bootstrapped Ant with the parameters passed to the build script. In
+this case, these parameters define an Ant property value and specify the &quot;dist&quot; target
+in Ant's own <code>build.xml</code> file.</li>
+    
+<li>Create the ant.jar and ant-launcher.jar JAR files</li>
+    
+<li>Create optional JARs for which the build had the relevant libraries. If 
+a particular library is missing from ANT_HOME/lib/optional, then the matching
+ant- JAR file will not be created. For example, ant-junit.jar is only built
+if there is a junit.jar in the optional directory.</li>    
+</ul>
+
+<p>On most occasions you will not need to explicitly bootstrap Ant since the build
+scripts do that for you. If however, the build file you are using makes use of features
+not yet compiled into the bootstrapped Ant, you will need to manually bootstrap.
+Run <code>bootstrap.bat</code> (Windows) or <code>bootstrap.sh</code> (UNIX)
+to build a new bootstrap version of Ant.</p>
+
+If you wish to install the build into the current <code>ANT_HOME</code>
+directory, you can use:
+<blockquote>
+  <p><code>build install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
+  <p><code>sh build.sh install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
+</blockquote>
+
+You can avoid the lengthy Javadoc step, if desired, with:
+<blockquote>
+  <p><code>build install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
+  <p><code>sh build.sh install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
+</blockquote>
+This will only install the <code>bin</code> and <code>lib</code> directories.
+<p>Both the <code>install</code> and
+<code>install-lite</code> targets will overwrite
+the current Ant version in <code>ANT_HOME</code>.</p>
+
+<hr>
+<h2><a name="librarydependencies">Library Dependencies</a></h2>
+<p>The following libraries are needed in Ant's classpath 
+if you are using the
+indicated feature. Note that only one of the regexp libraries is
+needed for use with the mappers
+(and Java 1.4 and higher includes a regexp implementation which
+Ant will find automatically).
+You will also need to install the particular
+Ant optional jar containing the task definitions to make these
+tasks available. Please refer to the <a href="#optionalTasks">
+Installing Ant / Optional Tasks</a> section above.</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td><b>Jar Name</b></td>
+    <td><b>Needed For</b></td>
+    <td><b>Available At</b></td>
+  </tr>
+  <tr>
+    <td>An XSL transformer like Xalan</td>
+    <td>style task</td>
+    <td>
+    <b>If you use JDK 1.4+, an XSL transformer is already included, so you need not do anything special.</b><br>
+    <ul><li>XALAN : <a href="http://xml.apache.org/xalan-j/index.html"
+    target="_top">http://xml.apache.org/xalan-j/index.html</a></li>
+    </ul>
+    </td>
+  </tr>
+  <tr>
+    <td>jakarta-regexp-1.3.jar</td>
+    <td>regexp type with mappers</td>
+    <td><a href="http://jakarta.apache.org/regexp/" target="_top">http://jakarta.apache.org/regexp/</a></td>
+  </tr>
+  <tr>
+    <td>jakarta-oro-2.0.8.jar</td>
+    <td>regexp type with mappers and the perforce tasks<br>
+    To use the FTP task,
+you need jakarta-oro 2.0.8 or later, and <a href="#commons-net">commons-net</a></td>
+    <td><a href="http://jakarta.apache.org/oro/" target="_top">http://jakarta.apache.org/oro/</a></td>
+  </tr>
+  <tr>
+    <td>junit.jar</td>
+    <td><code>&lt;junit&gt;</code> task. May be in classpath passed to task rather than Ant's classpath.</td>
+    <td><a href="http://www.junit.org/" target="_top">http://www.junit.org/</a></td>
+  </tr>
+  <tr>
+    <td>xalan.jar</td>
+    <td>junitreport task</td>
+    <td><a href="http://xml.apache.org/xalan-j/" target="_top">http://xml.apache.org/xalan-j/</a></td>
+  </tr>
+  <tr>
+    <td>stylebook.jar</td>
+    <td>stylebook task</td>
+    <td>CVS repository of <a href="http://xml.apache.org/cvs.html" target="_top">http://xml.apache.org/cvs.html</a></td>
+  </tr>
+  <tr>
+    <td>antlr.jar</td>
+    <td>antlr task</td>
+    <td><a href="http://www.antlr.org/" target="_top">http://www.antlr.org/</a></td>
+  </tr>
+  <tr>
+    <td>bsf.jar</td>
+    <td>script task
+      <p>
+        <strong>Note</strong>: Ant 1.6 and later require Apache BSF, not
+        the IBM version.  I.e. you need BSF 2.3.0-rc1 or later.
+      </p>
+      <p>
+        <strong>Note</strong>: BSF 2.4.0 is needed to use a post 1.5R3 version
+        of rhino's javascript.
+      </p>
+      <p>
+        <strong>Note</strong>: BSF 2.4.0 uses jakarata-commons-logging
+        so it needs the commons-logging.jar.
+      </p>
+      </td>
+    <td><a href="http://jakarta.apache.org/bsf/" target="_top">http://jakarta.apache.org/bsf/</a></td>
+  </tr>
+  <tr>
+    <td>Groovy jars</td>
+    <td>Groovy with script and scriptdef tasks<br>
+      You need to get the groovy jar and two asm jars from a groovy
+      installation. The jars are groovy-[version].jar, asm-[vesion].jar and
+      asm-util-[version].jar and antlr-[version].jar.
+      As of groovy version 1.0-JSR-06, the jars are
+      groovy-1.0-JSR-06.jar, antlr-2.7.5.jar, asm-2.2.jar and asm-util-2.2.jar.
+      Alternatively one may use the embedded groovy jar file.
+      This is located in the embedded directory of the groovy distribution.
+      This bundles all the needed jar files into one jar file.
+      It is called groovy-all-[version].jar.
+    </td>
+    <td>
+      <a href="http://groovy.codehaus.org/">http://groovy.codehaus.org/</a>
+      <br>
+      The asm jars are also available from the creators of asm -
+      <a href="http://asm.objectweb.org/">http://asm.objectweb.org/</a>
+    </td>
+  </tr>
+  <tr>
+    <td>netrexx.jar</td>
+    <td>netrexx task, Rexx with the script task</td>
+    <td><a href="http://www.ibm.com/software/awdtools/netrexx/download.html" target="_top">
+        http://www.ibm.com/software/awdtools/netrexx/download.html</a></td>
+  </tr>
+  <tr>
+    <td>js.jar</td>
+    <td>Javascript with script task<br>
+    If you use Apache BSF 2.3.0-rc1, you must use rhino 1.5R3 (later
+    versions of BSF (e.g. version 2.4.0) work with 1.5R4 and higher).</td>
+    <td><a href="http://www.mozilla.org/rhino/" target="_top">http://www.mozilla.org/rhino/</a></td>
+  </tr>
+  <tr>
+    <td>jython.jar</td>
+    <td>Python with script task<br>
+    Warning : jython.jar also contains classes from jakarta-oro.
+    Remove these classes if you are also using jakarta-oro.</td>
+    <td><a href="http://jython.sourceforge.net/" target="_top">http://jython.sourceforge.net/</a></td>
+  </tr>
+  <tr>
+    <td>jpython.jar</td>
+    <td>Python with script task <b>deprecated, jython is the prefered engine</b></td>
+    <td><a href="http://www.jpython.org/" target="_top">http://www.jpython.org/</a></td>
+  </tr>
+  <tr>
+    <td>jacl.jar and tcljava.jar</td>
+    <td>TCL with script task</td>
+    <td><a href="http://www.scriptics.com/software/java/" target="_top">http://www.scriptics.com/software/java/</a></td>
+  </tr>
+  <tr>
+    <td>BeanShell JAR(s)</td>
+    <td>BeanShell with script task.
+      <br>
+    <strong>Note</strong>: Ant requires BeanShell version 1.3 or
+      later</td>
+    <td><a href="http://www.beanshell.org/" target="_top">http://www.beanshell.org/</a></td>
+  </tr>
+  <tr>
+    <td>jruby.jar</td>
+    <td>Ruby with script task</td>
+    <td><a href="http://jruby.sourceforge.net/" target="_top">http://jruby.sourceforge.net/</a></td>
+  </tr>
+  <tr>
+    <td>judo.jar</td>
+    <td>Judoscript with script task</td>
+    <td><a href="http://www.judoscript.com/index.html" target="_top">http://www.judoscript.com/index.html</a></td>
+  </tr>
+  <tr>
+    <td>commons-logging.jar</td>
+    <td>CommonsLoggingListener</td>
+    <td><a href="http://jakarta.apache.org/commons/logging/index.html"
+           target="_top">http://jakarta.apache.org/commons/logging/index.html</a></td>
+  </tr>
+  <tr>
+    <td>log4j.jar</td>
+    <td>Log4jListener</td>
+    <td><a href="http://jakarta.apache.org/log4j/docs/index.html"
+           target="_top">http://jakarta.apache.org/log4j/docs/index.html</a></td>
+  </tr>
+  <tr>
+    <td><a name="commons-net">commons-net.jar</a></td>
+    <td>ftp, rexec and telnet tasks<br>
+    jakarta-oro 2.0.8 or later is required together with commons-net 1.4.0.<br>
+    For all users, a minimum version of commons-net of 1.4.0 is recommended.  Earlier 
+    versions did not support the full range of configuration options, and 1.4.0 is needed
+    to compile Ant.
+    </td>
+    <td><a href="http://jakarta.apache.org/commons/net/index.html"
+           target="_top">http://jakarta.apache.org/commons/net/index.html</a></td>
+  </tr>
+  <tr>
+    <td>bcel.jar</td>
+    <td>classfileset data type,
+        JavaClassHelper used by the ClassConstants filter reader and
+        optionally used by ejbjar for dependency determination
+    </td>
+    <td><a href="http://jakarta.apache.org/bcel/" target="_top">http://jakarta.apache.org/bcel/</a></td>
+  </tr>
+  <tr>
+    <td>mail.jar</td>
+    <td>Mail task with Mime encoding, and the MimeMail task</td>
+    <td><a href="http://java.sun.com/products/javamail/"
+        target="_top">http://java.sun.com/products/javamail/</a></td>
+  </tr>
+  <tr>
+    <td>jsse.jar</td>
+    <td>
+Support for SMTP over TLS/SSL <br>
+in the Mail task<br>
+Already included Java 1.4+</td>
+    <td><a href="http://java.sun.com/products/jsse/"
+        target="_top">http://java.sun.com/products/jsse/</a></td>
+  </tr>
+  <tr>
+    <td>activation.jar</td>
+    <td>Mail task with Mime encoding, and the MimeMail task</td>
+    <td><a href="http://java.sun.com/products/javabeans/glasgow/jaf.html"
+        target="_top">http://java.sun.com/products/javabeans/glasgow/jaf.html</a></td>
+  </tr>
+  <tr>
+    <td>jdepend.jar</td>
+    <td>jdepend task</td>
+    <td><a href="http://www.clarkware.com/software/JDepend.html"
+        target="_top">http://www.clarkware.com/software/JDepend.html</a></td>
+  </tr>
+  <tr>
+    <td>resolver.jar <b>1.1beta or later</b></td>
+    <td>xmlcatalog datatype <em>only if support for external catalog files is desired</em></td>
+    <td><a href="http://xml.apache.org/commons/"
+    target="_top">http://xml.apache.org/commons/</a>.</td>
+  </tr>
+  <tr>
+    <td>jsch.jar <b>0.1.29 or later</b></td>
+    <td>sshexec and scp tasks</td>
+    <td><a href="http://www.jcraft.com/jsch/index.html"
+        target="_top">http://www.jcraft.com/jsch/index.html</a></td>
+  </tr>
+  <tr>
+    <td>JAI - Java Advanced Imaging</td>
+    <td>image task</td>
+    <td><a href="http://java.sun.com/products/java-media/jai/"
+        target="_top">http://java.sun.com/products/java-media/jai/</a></td>
+  </tr>
+  <tr>
+    <td>Starteam SDK</td>
+    <td>Starteam version management tasks</td>
+    <td><a href="http://www.borland.com/downloads/download_starteam.html"
+        target="_top">http://www.borland.com/downloads/download_starteam.html</a></td>
+  </tr>
+</table>
+<br>
+<h2><a name="Troubleshooting">Troubleshooting</a></h2>
+
+
+<h3><a name="diagnostics">Diagnostics</a></h3>
+
+<p> Ant has a built in diagnostics feature. If you run <code>ant
+-diagnostics</code> ant will look at its internal state and print it out. This
+code will check and print the following things. </p>
+
+<ul>
+
+<li>Where Ant is running from. Sometimes you can be surprised.</li>    
+    
+<li>The version of ant.jar and of the ant-*.jar containing the optional tasks -
+    and whether they match</li>
+
+<li>Which JAR files are int ANT_HOME/lib
+
+<li>Which optional tasks are available. If a task is not listed as being
+available, either it is not present, or libraries that it depends on are
+absent.</li>
+
+
+<li>XML Parser information</li>
+
+<li>JVM system properties
+</li>
+
+<li>The status of the temp directory. If this is not writeable, or its clock is
+horribly wrong (possible if it is on a network drive), a lot of tasks will fail
+with obscure error messages.</li>
+
+<li>The current time zone as Java sees it. If this is not what it should be for
+your location, then dependency logic may get confused.
+
+</ul>
+
+<p>
+    Running <code>ant -diagnostics</code> is a good way to check that ant is 
+    installed. It is also a first step towards self-diagnosis of any problem. 
+    Any configuration problem reported to the user mailing list will probably 
+    result ins someone asking you to run the command and show the results, so 
+    save time by using it yourself.
+</p>
+
+<p>
+    For under-IDE diagostics, use the &lt;diagnostics&gt; task to run the same 
+    tests as an ant task. This can be added to a diagnostics target in a build 
+    file to see what tasks are available under the IDE, what the XML parser and 
+    classpath is, etc. 
+</p>
+
+<h3><a name="ant-user">user mailing list</a></h3>
+
+<p> If you cannot get Ant installed or working, the Ant user mailing list is the
+best place to start with any problem. Please do your homework first, make sure
+that it is not a <a href="#classpath">CLASSPATH</a> problem, and run a <a
+href="#diagnostics">diagnostics check</a> to see what Ant thinks of its own
+state. Why the user list, and not the developer list? 
+Because there are more users than developers, so more people who can help you. </p>
+
+<p>
+
+Please only file a bug report against Ant for a configuration/startup problem if
+there really is a fixable bug in Ant related to configuration, such as it not
+working on a particular platform, with a certain JVM version, etc, or if you are
+advised to do it by the user mailing list.
+</p>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/installlist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/installlist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/installlist.html	(revision 14989)
@@ -0,0 +1,43 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Installing Ant</h3>
+<p><a href="install.html#getting">Getting Ant</a><br>
+  <a href="install.html#sysrequirements">System Requirements</a><br>
+  <a href="install.html#installing">Installing Ant</a><br>
+  <a href="install.html#buildingant">Building Ant</a><br>
+  <a href="install.html#librarydependencies">Library Dependencies</a><br>
+  <a href="platform.html">Platform Specific Issues</a><br>
+  <a href="proxy.html">Proxy configuration</a><br>
+</p>
+<p><br>
+</p>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/intro.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/intro.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/intro.html	(revision 14989)
@@ -0,0 +1,69 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual - Introduction</title>
+</head>
+
+<body>
+<h1><a name="introduction">Introduction</a></h1>
+<p>Apache Ant is a Java-based build tool. In theory, it is kind of like
+<i>make</i>, without <i>make</i>'s wrinkles.</p>
+<h3>Why?</h3>
+<p>Why another build tool when there is already
+<i>make</i>,
+<i>gnumake</i>,
+<i>nmake</i>,
+<i>jam</i>,
+and
+others? Because all those tools have limitations that Ant's original author
+couldn't live with when developing software across multiple platforms.
+Make-like
+tools are inherently shell-based: they evaluate a set of dependencies,
+then execute commands not unlike what you would issue on a shell.
+This means that you
+can easily extend these tools by using or writing any program for the OS that
+you are working on; however, this also means that you limit yourself to the OS,
+or at least the OS type, such as Unix, that you are working on.</p>
+<p>Makefiles are inherently evil as well. Anybody who has worked on them for any
+time has run into the dreaded tab problem. &quot;Is my command not executing
+because I have a space in front of my tab?!!&quot; said the original author of
+Ant way too many times. Tools like Jam took care of this to a great degree, but
+still have yet another format to use and remember.</p>
+<p>Ant is different. Instead of a model where it is extended with shell-based
+commands, Ant is extended using Java classes. Instead of writing shell commands,
+the configuration files are XML-based, calling out a target tree where various
+tasks get executed. Each task is run by an object that implements a particular
+Task interface.</p>
+<p>Granted, this removes some of the expressive power that is inherent in being
+able to construct a shell command such as
+<nobr><code>`find . -name foo -exec rm {}`</code></nobr>, but it
+gives you the ability to be cross-platform--to work anywhere and
+everywhere. And
+hey, if you really need to execute a shell command, Ant has an
+<code>&lt;exec&gt;</code> task that
+allows different commands to be executed based on the OS it is executing
+on.</p>
+
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/javacprops.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/javacprops.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/javacprops.html	(revision 14989)
@@ -0,0 +1,53 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Properties controlling javac</title>
+</head>
+
+<body>
+
+<p>The source and target attributes of <code>&lt;javac&gt;</code>
+don't have any default values for historical reasons.  Since the
+underlying javac compiler's default depends on the JDK you use, you
+may encounter build files that don't explicitly set those attributes
+and that will no longer compile using a newer JDK.  If you cannot
+change the build file, Ant provides two properties that help you
+setting default values for these attributes.  If the attributes have
+been set explicitly, the properties listed here will be ignored.</p>
+
+<h2><a name="source">ant.build.javac.source</a></h2>
+
+<p><em>Since Ant 1.7</em></p>
+
+<p>Provides a default value for <code>&lt;javac&gt;</code>'s and
+<code>&lt;javadoc&gt;</code>'s source attribute.</p>
+
+<h2><a name="target">ant.build.javac.target</a></h2>
+
+<p><em>Since Ant 1.7</em></p>
+
+<p>Provides a default value for <code>&lt;javac&gt;</code>'s target
+attribute.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/listeners.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/listeners.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/listeners.html	(revision 14989)
@@ -0,0 +1,412 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Listeners &amp; Loggers</title>
+</head>
+
+<body>
+<h1>Listeners &amp; Loggers</h1>
+
+<h2><a name="Overview">Overview</a></h2>
+
+<p>Ant has two related features to allow the build process to be monitored:
+listeners and loggers.</p>
+
+<h3><a name="Listeners">Listeners</a></h3>
+
+<p>A listener is alerted of the following events:</p>
+
+<ul>
+  <li>build started</li>
+  <li>build finished</li>
+  <li>target started</li>
+  <li>target finished</li>
+  <li>task started</li>
+  <li>task finished</li>
+  <li>message logged</li>
+</ul>
+
+<h3><a name="Loggers">Loggers</a></h3>
+
+<p>Loggers extend the capabilities of listeners and add the following features:</p>
+
+<ul>
+  <li>Receives a handle to the standard output and error print streams and
+  therefore can log information to the console or the -logfile specified file.</li>
+  <li>Logging level (-quiet, -verbose, -debug) aware</li>
+  <li>Emacs-mode aware</li>
+</ul>
+
+<h2><a name="builtin">Built-in Listeners/Loggers</a></h2>
+
+<table border="1" cellspacing="1" width="100%" id="AutoNumber1">
+  <tr>
+    <td width="33%">Classname</td>
+    <td width="33%">Description</td>
+    <td width="34%">Type</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#DefaultLogger">org.apache.tools.ant.DefaultLogger</a></code></td>
+    <td width="33%">The logger used implicitly unless overridden with the
+    <code>-logger</code> command-line switch.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#NoBannerLogger">
+    org.apache.tools.ant.NoBannerLogger</a></code></td>
+    <td width="33%">This logger omits output of empty target output.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#MailLogger">
+    org.apache.tools.ant.listener.MailLogger</a></code></td>
+    <td width="33%">Extends DefaultLogger such that output is still generated
+    the same, and when the build is finished an e-mail can be sent.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#AnsiColorLogger">
+    org.apache.tools.ant.listener.AnsiColorLogger</a></code></td>
+    <td width="33%">Colorifies the build output.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#Log4jListener">
+    org.apache.tools.ant.listener.Log4jListener</a></code></td>
+    <td width="33%">Passes events to Log4j for highly customizable logging.</td>
+    <td width="34%">BuildListener</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#XmlLogger">org.apache.tools.ant.XmlLogger</a></code></td>
+    <td width="33%">Writes the build information to an XML file.</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+  <tr>
+    <td width="33%"><code><a href="#TimestampedLogger">org.apache.tools.ant.TimestampedLogger</a></code></td>
+    <td width="33%">Prints the time that a build finished</td>
+    <td width="34%">BuildLogger</td>
+  </tr>
+
+</table>
+<h3><a name="DefaultLogger">DefaultLogger</a></h3>
+
+<p>Simply run Ant normally, or:</p>
+
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.DefaultLogger</code></p>
+
+</blockquote>
+
+<h3><a name="NoBannerLogger">NoBannerLogger</a></h3>
+
+<p>Removes output of empty target output.</p>
+
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.NoBannerLogger</code></p>
+
+</blockquote>
+
+<h3><a name="MailLogger">MailLogger</a></h3>
+
+<p>The MailLogger captures all output logged through DefaultLogger (standard Ant
+output) and will send success and failure messages to unique e-mail lists, with
+control for turning off success or failure messages individually.</p>
+<p>Properties controlling the operation of MailLogger:</p>
+<table border="1" cellspacing="1" width="100%" id="AutoNumber2">
+  <tr>
+    <th width="337">Property</th>
+    <th width="63%">Description</th>
+    <th width="63%">Required</th>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.mailhost </td>
+    <td width="63%">Mail server to use</td>
+    <td width="63%">No, default &quot;localhost&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.port </td>
+    <td width="63%">SMTP Port for the Mail server</td>
+    <td width="63%">No, default &quot;25&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.user</td>
+    <td width="63%">user name for SMTP auth</td>
+    <td width="63%">Yes, if SMTP auth is required on your SMTP server<br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.password</td>
+    <td width="63%">password for SMTP auth</td>
+    <td width="63%">Yes, if SMTP auth is required on your SMTP server<br>
+    the email message will be then sent using Mime and requires JavaMail</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.ssl</td>
+    <td width="63%">on or true if ssl is needed<br>
+    This feature requires JavaMail</td>
+    <td width="63%">
+    no</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.from</td>
+    <td width="63%">Mail &quot;from&quot; address</td>
+    <td width="63%">Yes, if mail needs to be sent</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.replyto</td>
+    <td width="63%">Mail &quot;replyto&quot; address(es), comma-separated</td>
+    <td width="63%">No</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.failure.notify </td>
+    <td width="63%">Send build failure e-mails?</td>
+    <td width="63%">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.success.notify </td>
+    <td width="63%">Send build success e-mails?</td>
+    <td width="63%">No, default &quot;true&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.failure.to </td>
+    <td width="63%">Address(es) to send failure messages to, comma-separated</td>
+    <td width="63%">Yes, if failure mail is to be sent</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.success.to </td>
+    <td width="63%">Address(es) to send success messages to, comma-separated</td>
+    <td width="63%">Yes, if success mail is to be sent</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.failure.subject </td>
+    <td width="63%">Subject of failed build</td>
+    <td width="63%">No, default &quot;Build Failure&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.success.subject </td>
+    <td width="63%">Subject of successful build</td>
+    <td width="63%">No, default &quot;Build Success&quot;</td>
+  </tr>
+  <tr>
+    <td width="337">MailLogger.properties.file </td>
+    <td width="63%">Filename of properties file that will override other values.</td>
+    <td width="63%">No</td>
+  </tr>
+</table>
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.listener.MailLogger</code></p>
+
+</blockquote>
+
+<h3><a name="AnsiColorLogger">AnsiColorLogger</a></h3>
+
+<p>The AnsiColorLogger adds color to the standard Ant output
+by prefixing and suffixing ANSI color code escape sequences to
+it.  It is just an extension of <a href="#DefaultLogger">DefaultLogger</a>
+and hence provides all features that DefaultLogger does.</p>
+<p>AnsiColorLogger differentiates the output by assigning
+different colors depending upon the type of the message.</p>
+<p>If used with the -logfile option, the output file
+will contain all the necessary escape codes to
+display the text in colorized mode when displayed
+in the console using applications like cat, more, etc.</p>
+<p>This is designed to work on terminals that support ANSI
+color codes.  It works on XTerm, ETerm, Win9x Console
+(with ANSI.SYS loaded.), etc.</p>
+<p><Strong>NOTE:</Strong>
+It doesn't work on WinNT even when a COMMAND.COM console loaded with
+ANSI.SYS is used.</p>
+<p>If the user wishes to override the default colors
+with custom ones, a file containing zero or more of the
+custom color key-value pairs must be created.  The recognized keys
+and their default values are shown below:</p><code><pre>
+AnsiColorLogger.ERROR_COLOR=2;31
+AnsiColorLogger.WARNING_COLOR=2;35
+AnsiColorLogger.INFO_COLOR=2;36
+AnsiColorLogger.VERBOSE_COLOR=2;32
+AnsiColorLogger.DEBUG_COLOR=2;34</pre></code>
+<p>Each key takes as value a color combination defined as
+<b>Attribute;Foreground;Background</b>.  In the above example, background
+value has not been used.</p>
+<p>This file must be specfied as the value of a system variable
+named ant.logger.defaults and passed as an argument using the -D
+option to the <b>java</b> command that invokes the Ant application.
+An easy way to achieve this is to add -Dant.logger.defaults=
+<i>/path/to/your/file</i> to the ANT_OPTS environment variable.
+Ant's launching script recognizes this flag and will pass it to
+the java command appropriately.</p>
+<p>Format:</p><pre>
+AnsiColorLogger.*=Attribute;Foreground;Background
+
+Attribute is one of the following:
+0 -&gt; Reset All Attributes (return to normal mode)
+1 -&gt; Bright (Usually turns on BOLD)
+2 -&gt; Dim
+3 -&gt; Underline
+5 -&gt; link
+7 -&gt; Reverse
+8 -&gt; Hidden
+
+Foreground is one of the following:
+30 -&gt; Black
+31 -&gt; Red
+32 -&gt; Green
+33 -&gt; Yellow
+34 -&gt; Blue
+35 -&gt; Magenta
+36 -&gt; Cyan
+37 -&gt; White
+
+Background is one of the following:
+40 -&gt; Black
+41 -&gt; Red
+42 -&gt; Green
+43 -&gt; Yellow
+44 -&gt; Blue
+45 -&gt; Magenta
+46 -&gt; Cyan
+47 -&gt; White</pre>
+
+<blockquote>
+
+<p><code>ant -logger org.apache.tools.ant.listener.AnsiColorLogger</code></p>
+
+</blockquote>
+
+<h3><a name="Log4jListener">Log4jListener</a></h3>
+
+<p>Passes build events to Log4j, using the full classname's of the generator of
+each build event as the category:</p>
+
+<ul>
+  <li>build started / build finished - org.apache.tools.ant.Project</li>
+  <li>target started / target finished - org.apache.tools.ant.Target</li>
+  <li>task started / task finished - the fully qualified classname of the task</li>
+  <li>message logged - the classname of one of the above, so if a task logs a
+  message, its classname is the category used, and so on.</li>
+</ul>
+
+<p>All start events are logged as INFO.&nbsp; Finish events are either logged as
+INFO or ERROR depending on whether the build failed during that stage. Message
+events are logged according to their Ant logging level, mapping directly to a
+corresponding Log4j level.</p>
+
+<blockquote>
+
+<p><code>ant -listener org.apache.tools.ant.listener.Log4jListener</code></p>
+
+</blockquote>
+
+<p>To use Log4j you will need the Log4j jar file and a 'log4j.properties'
+configuration file.  Both should be placed somewhere in your Ant
+classpath. If the log4j.properties is in your project root folder you can
+add this with <i>-lib</i> option:</p>
+
+<blockquote>
+<pre><code>ant -listener org.apache.tools.ant.listener.Log4jListener -lib .</code></pre>
+</blockquote>
+
+<p>If, for example, you wanted to capture the same information output to the
+console by the DefaultLogger and send it to a file named 'build.log', you
+could use the following configuration:</p>
+
+<blockquote>
+
+<pre><code>log4j.rootLogger=ERROR, LogFile
+log4j.logger.org.apache.tools.ant.Project=INFO
+log4j.logger.org.apache.tools.ant.Target=INFO
+log4j.logger.org.apache.tools.ant.taskdefs=INFO
+log4j.logger.org.apache.tools.ant.taskdefs.Echo=WARN
+
+log4j.appender.LogFile=org.apache.log4j.FileAppender
+log4j.appender.LogFile.layout=org.apache.log4j.PatternLayout
+log4j.appender.LogFile.layout.ConversionPattern=[%6r] %8c{1} : %m%n
+log4j.appender.LogFile.file=build.log
+</code></pre>
+
+</blockquote>
+
+<p>For more information about configuring Log4J see <a href="http://logging.apache.org/log4j/docs/documentation.html">its
+documentation page</a>.</p>
+
+<h3><a name="XmlLogger">XmlLogger</a></h3>
+
+<p>Writes all build information out to an XML file named log.xml, or the value
+of the <code>XmlLogger.file</code> property if present, when used as a
+listener. When used as a logger, it writes all output to either the
+console or to the value of <code>-logfile</code>. Whether used as a listener
+or logger, the output is not generated until the build is complete, as it
+buffers the information in order to provide timing information for task,
+targets, and the project.
+<p>
+By default the XML file creates
+a reference to an XSLT file "log.xsl" in the current directory; look in
+ANT_HOME/etc for one of these. You can set the property
+<code>ant.XmlLogger.stylesheet.uri</code> to provide a uri to a style sheet.
+this can be a relative or absolute file path, or an http URL.
+If you set the property to the empty string, "", no XSLT transform
+is declared at all.
+</p>
+
+<blockquote>
+
+<p><code>ant -listener org.apache.tools.ant.XmlLogger</code><br>
+<code>ant -logger org.apache.tools.ant.XmlLogger -verbose -logfile build_log.xml</code></p>
+
+</blockquote>
+
+
+<h3><a name="TimestampedLogger">TimestampedLogger</a></h3>
+
+<p>
+  Acts like the default logger, except that the final success/failure message also includes
+  the time that the build completed. For example:
+</p>
+<pre>
+  BUILD SUCCESSFUL - at 16/08/05 16:24
+</pre>
+
+<blockquote>
+
+<code>ant  -logger org.apache.tools.ant.listener.TimestampedLogger</code>
+
+</blockquote>
+
+
+<h2><a name="dev">Writing your own</a></h2>
+
+<p>See the <a href="develop.html#buildevents">Build Events</a> section for
+developers.</p>
+
+<p>Notes:</p>
+
+<ul>
+  <li>A listener or logger should not write to standard output or error; Ant
+  captures these internally and may cause an infinite loop.</li>
+</ul>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/optionaltasklist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/optionaltasklist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/optionaltasklist.html	(revision 14989)
@@ -0,0 +1,93 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<a href="coretasklist.html" target="navFrame">Core Tasks</a><br>
+<a href="tasksoverview.html" target="mainFrame">Overview of Ant Tasks</a><br>
+<a href="conceptstypeslist.html" target="navFrame">Concepts and Types</a><br>
+
+<h3>Optional Tasks</h3>
+<a href="OptionalTasks/dotnet.html"><i>.NET Tasks</i></a><br>
+<a href="OptionalTasks/antinstaller.html">AntInstaller</a><br>
+<a href="OptionalTasks/antlr.html">ANTLR</a><br>
+<a href="OptionalTasks/attrib.html">Attrib</a><br>
+<a href="OptionalTasks/cab.html">Cab</a><br>
+<a href="OptionalTasks/chgrp.html">Chgrp</a><br>
+<a href="OptionalTasks/chown.html">Chown</a><br>
+<a href="OptionalTasks/clearcase.html">Clearcase Tasks</a><br>
+<a href="OptionalTasks/ccm.html">Continuus/Synergy Tasks</a><br>
+<a href="OptionalTasks/depend.html">Depend</a><br>
+<a href="OptionalTasks/ejb.html">EJB Tasks</a><br>
+<a href="OptionalTasks/echoproperties.html">Echoproperties</a><br>
+<a href="OptionalTasks/ftp.html">FTP</a><br>
+<a href="OptionalTasks/image.html">Image</a><br>
+<a href="OptionalTasks/jarlib-available.html">Jarlib-available</a><br>
+<a href="OptionalTasks/jarlib-display.html">Jarlib-display</a><br>
+<a href="OptionalTasks/jarlib-manifest.html">Jarlib-manifest</a><br>
+<a href="OptionalTasks/jarlib-resolve.html">Jarlib-resolve</a><br>
+<a href="OptionalTasks/javacc.html">JavaCC</a><br>
+<a href="OptionalTasks/javah.html">Javah</a><br>
+<a href="OptionalTasks/jspc.html">JspC</a><br>
+<a href="OptionalTasks/jdepend.html">JDepend</a><br>
+<a href="OptionalTasks/jjdoc.html">JJDoc</a><br>
+<a href="OptionalTasks/jjtree.html">JJTree</a><br>
+<a href="OptionalTasks/jlink.html"><i>Jlink</i></a><br>
+<a href="OptionalTasks/junit.html">JUnit</a><br>
+<a href="OptionalTasks/junitreport.html">JUnitReport</a><br>
+<a href="OptionalTasks/mimemail.html"><i>MimeMail</i></a><br>
+<a href="OptionalTasks/native2ascii.html">Native2Ascii</a><br>
+<a href="OptionalTasks/netrexxc.html">NetRexxC</a><br>
+<a href="OptionalTasks/perforce.html">Perforce Tasks</a><br>
+<a href="OptionalTasks/propertyfile.html">PropertyFile</a><br>
+<a href="OptionalTasks/pvcstask.html">Pvcs</a><br>
+<a href="OptionalTasks/renameextensions.html"><i>RenameExtensions</i></a><br>
+<a href="OptionalTasks/replaceregexp.html">ReplaceRegExp</a><br>
+<a href="OptionalTasks/rexec.html">RExec</a><br>
+<a href="OptionalTasks/rpm.html">Rpm</a><br>
+<a href="OptionalTasks/schemavalidate.html">SchemaValidate</a><br>
+<a href="OptionalTasks/scp.html">Scp</a><br>
+<a href="OptionalTasks/script.html">Script</a><br>
+<a href="OptionalTasks/scriptdef.html">Scriptdef</a><br>
+<a href="OptionalTasks/serverdeploy.html">ServerDeploy</a><br>
+<a href="OptionalTasks/setproxy.html">Setproxy</a><br>
+<a href="OptionalTasks/sound.html">Sound</a><br>
+<a href="OptionalTasks/sos.html">SourceOffSite</a><br>
+<a href="OptionalTasks/splash.html">Splash</a><br>
+<a href="OptionalTasks/sshexec.html">Sshexec</a><br>
+<a href="OptionalTasks/starteam.html">Starteam Tasks</a><br>
+<a href="OptionalTasks/stylebook.html"><i>Stylebook</i></a><br>
+<a href="OptionalTasks/symlink.html">Symlink</a><br>
+<a href="OptionalTasks/telnet.html">Telnet</a><br>
+<a href="OptionalTasks/translate.html">Translate</a><br>
+<a href="OptionalTasks/vss.html#tasks">Microsoft Visual SourceSafe Tasks</a><br>
+<a href="OptionalTasks/wljspc.html">Weblogic JSP Compiler</a><br>
+<a href="OptionalTasks/xmlvalidate.html">XmlValidate</a><br>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/platform.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/platform.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/platform.html	(revision 14989)
@@ -0,0 +1,205 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Platform Issues</title>
+</head>
+
+<h1>Platform Issues</h1>
+
+<h2>Java versions</h2>
+<h3>Java 1.5</h3>
+
+You may need a bigger stack than default, especially if you are using the built in
+XSLT engine. We recommend you use Apache Xalan; indeed, some tasks (JUnit report in XML,
+for example) may not work against the shipping XSL engine.
+
+<h3>Java 1.2</h3>
+
+
+You may sometimes see messages like
+<pre>
+A nonfatal internal JIT (3.10.107(x)) error 'chgTarg: Conditional' has
+occurred in :
+  'org/apache/tools/ant/Project.addReference
+(Ljava/lang/String;Ljava/lang/Object;)V': Interpreting method.
+  Please report this error in detail to
+  http://java.sun.com/cgi-bin/bugreport.cgi
+</pre>
+These are caused by subtle incompatibilities between the Java1.4+ compiled
+release; bugs in the Java runtime that Sun won't fix. Possible solutions:-
+<ol>
+<li>Upgrade your JVM.
+<li>Recompile Ant on a Java1.2 machine
+<li>Add <tt>-Djava.compiler=NONE</tt> to
+the value of your ANT_OPTS environment variable. This turns the JIT off.
+<li>Ignore the messages.
+</ol>
+
+
+
+
+<h2>Unix and Linux</h2>
+
+<ul>
+<li> You should use a GNU version of <tt>tar</tt> to untar the Apache 
+Ant source tree, if you have downloaded this as a tar file. If you get
+wierd errors about missing files, this is the problem. 
+</li>
+<li> Ant does not preserve file permissions when a file is copied, moved or 
+archived, because Java does not let it read or write the permissions.
+ Use <tt>&lt;chmod&gt;</tt> to set permissions, and when creating a 
+tar archive, use the <tt>mode</tt> attribute of <tt>&lt;tarfileset&gt;</tt>
+to set the permissions in the tar file, or <code>&lt;apply&gt;</code> the real tar program.
+</li>
+<li> Ant is not symbolic link aware in moves, deletes and when recursing down a tree
+of directories to build up a list of files. Unexpected things can happen.
+</li>
+<li> Linux on IA-64: apparently you need a larger heap than the default
+one (64M) to compile big projects. If you get out of heap
+errors, either increase the heap or use a forking javac. Better yet,
+use jikes for extra compilation speed.   
+</li>
+
+</ul>
+
+
+<h2>Microsoft Windows</h2>
+<p>
+Windows 9x (win95, win98, win98SE and winME) are not supported in Ant1.7,
+</p>
+
+<p>
+The Ant team has retired support for these products because they are outdated and
+can expose customers to security risks. We recommend that customers who are
+still running Windows 98 or Windows Me upgrade to a newer, more secure 
+operating system, as soon as possible.
+</p>
+<p>
+Customers who upgrade to Linux report improved security, richer
+functionality, and increased productivity. 
+</p>
+<h2>Microsoft Windows 2K, XP and Server 2K03 </h2>
+
+<p>
+Windows 9x (win95, win98, win98SE and winME) has a batch file system which
+does not work fully with long file names, so we recommend that ant and the JDK
+are installed into directories without spaces, and with 8.3 filenames. 
+The Perl and Python launcher scripts do not suffer from this limitation.
+</p>
+<p>
+All versions of windows are usually case insensitive, although mounted 
+file systems (Unix drives, Clearcase views) can be case sensitive underneath,
+confusing patternsets.
+</p>
+<p>
+Ant can often not delete a directory which is open in an Explorer window. 
+There is nothing we can do about this short of spawning a program to kill
+the shell before deleting directories.
+Nor can files that are in use be overwritten.
+</p>
+<p>
+    Finally, if any Ant task fails with an IOError=2, it means that whatever
+    native program Ant is trying to run, it is not on the path.
+</p>
+
+<h2>Microsoft Windows Vista</h2>
+<p>
+    There are reports of problems with Windows Vista security bringing up
+    dialog boxes asking if the user wants to run an untrusted executable
+    during an ant run, such as when the &lt;signjar&gt task runs the jarsigner.exe
+    program. This is beyond Ant's control, and stems from the OS trying to provide
+    some illusion of security by being reluctant to run unsigned native executables.
+    The latest Java versions appear to resolve this problem by having signed
+    binaries. 
+</p>
+
+
+<h2>Cygwin</h2>
+
+Cygwin is not an operating system; rather it is an application suite 
+running under Windows and providing some UNIX like functionality. Sun has 
+not created any specific Java Development Kit or Java Runtime Environment for 
+cygwin. See this link : 
+<a href="http://www.inonit.com/cygwin/faq/">http://www.inonit.com/cygwin/faq/</a> . 
+Only Windows path 
+names are supported by JDK and JRE tools under Windows or cygwin. Relative path 
+names such as "src/org/apache/tools" are supported, but Java tools do not 
+understand /cygdrive/c to mean c:\.
+<p>
+The utility cygpath (used industrially in the ant script to support cygwin) can 
+convert cygwin path names to Windows.
+You can use the <code>&lt;exec&gt;</code> task in ant to convert cygwin paths to Windows path, for 
+instance like that :
+<pre>
+&lt;property name=&quot;some.cygwin.path&quot; value=&quot;/cygdrive/h/somepath&quot;/&gt;
+&lt;exec executable=&quot;cygpath&quot; outputproperty=&quot;windows.pathname&quot;&gt;
+   &lt;arg value=&quot;--windows&quot;/&gt;
+   &lt;arg value=&quot;${some.cygwin.path}&quot;/&gt;
+&lt;/exec&gt;
+&lt;echo message=&quot;${windows.pathname}&quot;/&gt;
+</pre>
+
+We get lots of support calls from Cygwin users. Either it is incredibly
+popular, or it is trouble. If you do use it, remember that Java is a
+Windows application, so Ant is running in a Windows process, not a
+Cygwin one. This will save us having to mark your bug reports as invalid. 
+
+<h2>Apple MacOS X</h2>
+
+MacOS X is the first of the Apple platforms that Ant supports completely;
+it is treated like any other Unix. 
+
+<h2>Novell Netware</h2>
+
+<p>To give the same level of sophisticated control as Ant's startup scripts on other platforms, it was decided to make the main ant startup on NetWare be via a Perl Script, "runant.pl".  This is found in the bin directory (for instance - bootstrap\bin or dist\bin).</p>
+
+<p>One important item of note is that you need to set up the following to run ant:</p>
+<ul><li><code>CLASSPATH</code> - put ant.jar, xercesImpl.jar, xml-apis.jar and any other needed jars on the system classpath.</li>
+   <li><code>ANT_OPTS</code> - On NetWare, <code>ANT_OPTS</code> needs to include a parameter of the form, <nobr>"-envCWD=<code>ANT_HOME</code>"</nobr>, with <code>ANT_HOME</code> being the fully expanded location of Ant, <b>not</b> an environment variable.  This is due to the fact that the NetWare System Console has no notion of a current working directory.</li>
+</ul>
+<p>It is suggested that you create up an ant.ncf that sets up these parameters, and calls <code>perl ANT_HOME/dist/bin/runant.pl</code></p>
+<p>The following is an example of such an NCF file(assuming ant is installed in <nobr>'sys:/apache-ant/'):</nobr></p>
+<code>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=SYS:/apache-ant/bootstrap/lib/ant.jar<br>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xercesImpl.jar <br>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xml-apis.jar <br>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/optional/junit.jar <br>
+   &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/bootstrap/lib/optional.jar <br>
+<br>
+   &nbsp;&nbsp;&nbsp;setenv ANT_OPTS=-envCWD=sys:/apache-ant <br>
+   &nbsp;&nbsp;&nbsp;envset ANT_OPTS=-envCWD=sys:/apache-ant <br>
+   &nbsp;&nbsp;&nbsp;setenv ANT_HOME=sys:/apache-ant/dist/lib <br>
+   &nbsp;&nbsp;&nbsp;envset ANT_HOME=sys:/apache-ant/dist/lib <br>
+<br>
+   &nbsp;&nbsp;&nbsp;perl sys:/apache-ant/dist/bin/runant.pl <br>
+</code>
+
+<p>Ant works on JVM version 1.3 or higher.  You may have some luck running it on JVM 1.2, but serious problems have been found running Ant on JVM 1.1.7B.  These problems are caused by JVM bugs that will not be fixed.</p>
+<p>JVM 1.3 is supported on Novell NetWare versions 5.1 and higher.</p>
+
+
+<h2>Other platforms</h2>
+Support for other platforms is not guaranteed to be complete, as certain 
+techniques to hide platform details from build files need to be written and
+tested on every particular platform. Contributions in this area are welcome.
+
+
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/proxy.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/proxy.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/proxy.html	(revision 14989)
@@ -0,0 +1,199 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Proxy Configuration</title>
+</head>
+
+<body>
+<h2>Proxy Configuration</h2>
+
+<p>
+This page discussing proxy issues on command-line ant.
+Consult your IDE documentation for IDE-specific information upon proxy setup.
+</p>
+
+<p>
+
+All tasks running in Ant's JVM share the same HTTP/FTP/Socks
+proxy configuration.
+</p>
+
+<p>
+    When any task tries to retrieve content from an HTTP page, including the
+    <code>&lt;get&gt;</code> task, any automated URL retrieval in
+    an XML/XSL task, or any third-party task that uses the <code>java.net.URL</code>
+    classes, the proxy settings may make the difference between success and failure.
+</p>
+<p>
+    Anyone authoring a build file behind a blocking firewall will immediately appreciate
+    the problems and may want to write a build file to deal with the problem, but
+    users of third party build build files may find that the build file itself
+    does not work behind the firewall.
+</p>
+<p>
+    This is a long standing problem with Java and Ant. The only way to fix
+    it is to explictly configure Ant with the proxy settings, either
+    by passing down the proxy details as JVM properties, or to
+    tell Ant on a Java1.5+ system to have the JVM work it out for itself.
+
+</p>
+
+
+
+<h3>Java1.5+ proxy support (new for Ant1.7)</h3>
+<p>
+    When Ant starts up, if the <code>-autoproxy</code>
+    command is supplied, Ant sets the
+    <code>java.net.useSystemProxies</code> system property. This tells 
+    a Java1.5+ JVM to use the current set of property settings of the host
+    environment. Other JVMs, such as the Kaffe and Apache Harmony runtimes,
+    may also use this property in future.
+    It is ignored on the Java1.4 and earlier runtimes.
+</p>
+<p>
+    This property maybe enough to give command-line Ant
+    builds network access, although in practise the results
+    are somewhat disappointing.
+</p>
+<p>
+    We are not entirely sure where it reads the property settings from. 
+    For windows, it probably reads the appropriate bits of the registry. For
+    Unix/Linux it may use the current Gnome2 settings. 
+    
+<p>
+    One limitation of this feature, other than requiring a 1.5+ JVM,
+    is that it is not dynamic. A long-lasting build hosted on a laptop will
+    not adapt to changes in proxy settings.
+</p>
+
+
+<p>
+    It is has also been reported a breaking the IBM Java 5 JRE on AIX,
+    and does not appear to work reliably on Linux.
+    Other odd things can go wrong, like Oracle JDBC drivers or pure Java SVN clients.
+</p>
+
+<p>
+    To make the <code>-autproxy</code> option the default, add it to the environment variable
+    <code>ANT_ARGS</code>, which contains a list of arguments to pass to Ant on every
+    command line run.
+</p>
+
+<h3>JVM options</h3>
+<p>
+    Any JVM can have its proxy options explicitly configured by passing
+    the appropriate <code>-D</code> system property options to the runtime.
+    Ant can be configured through all its shell scripts via the
+    <code>ANT_OPTS</code> environment variable, which is a list of options to
+    supply to Ant's JVM:
+</p>
+<p>
+  For bash:
+</p>  
+<pre>
+    export ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
+</pre>
+  For csh/tcsh:
+<pre>
+    setenv ANT_OPTS "-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
+</pre>
+<p>
+  For Windows, set the ANT_OPTS environment variable in the appropriate "MyComputer" 
+  properties dialog box.
+</p>
+<p>
+  This mechanism works across Java versions, is cross-platform and reliable. 
+  Once set, all build files run via the command line will automatically have
+  their proxy setup correctly, without needing any build file changes. It also
+  apparently overrides Ant's automatic proxy settings options.
+</p>
+<p>  
+  It is limited in the following ways:
+</p>  
+  <ol>
+  <li>Does not work under IDEs. These need their own proxy settings changed</li>
+  <li>Not dynamic enough to deal with laptop configuration changes.</li>
+  </ol>
+
+<h3>SetProxy Task</h3>
+<p>
+    The <a href="OptionalTasks/setproxy.html">setproxy task</a> can be used to
+    explicitly set a proxy in a build file. This manipulates the many proxy 
+    configuration properties of a JVM, and controls the proxy settings for all 
+    network operations in the same JVM from that moment. 
+</p>
+<p>
+    If you have a build file that is only to be used in-house, behind a firewall, on
+    an older JVM, <i>and you cannot change Ant's JVM proxy settings</i>, then
+    this is your best option. It is ugly and brittle, because the build file now contains
+    system configuration information. It is also hard to get this right across
+    the many possible proxy options of different users (none, HTTP, SOCKS).
+</p>
+
+
+<p>
+    Note that proxy configurations set with this task will probably override
+    any set by other mechanisms. It can also be used with fancy tricks to 
+    only set a proxy if the proxy is considered reachable:
+</p>
+
+<pre>
+  &lt;target name="probe-proxy" depends="init"&gt;
+    &lt;condition property="proxy.enabled"&gt;
+      &lt;and&gt;
+        &lt;isset property="proxy.host"/&gt;
+        &lt;isreachable host="${proxy.host}"/&gt;
+      &lt;/and&gt;
+    &lt;/condition&gt;
+  &lt;/target&gt;
+
+  &lt;target name="proxy" depends="probe-proxy" if="proxy.enabled"&gt;
+    &lt;property name="proxy.port" value="80"/&gt;
+    &lt;property name="proxy.user" value=""/&gt;
+    &lt;property name="proxy.pass" value=""/&gt;
+    &lt;setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
+      proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/&gt;
+  &lt;/target&gt;
+</pre>
+
+<h3>Summary and conclusions</h3>
+<p>
+There are three ways to set up proxies in Ant.
+</p>
+<ol>
+<li>With Ant1.7 using the <code>-autoproxy</code> parameter.</li>
+<li>Via JVM system properties -set these in the ANT_ARGS environment variable.</li>
+<li>Via the &lt;setproxy&gt; task.</li>
+</ol>
+
+
+<h4>Further reading</h4>
+
+<ul>
+<li><a href="http://java.sun.com/j2se/1.5.0/docs/guide/net/properties.html">
+Java Networking Properties</a>. Notice how not all proxy settings are documented
+there.
+<li><a href="http://blogs.sun.com/roller/resources/jcc/Proxies.pdf">Proxies</a>
+</li>
+</ul>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/running.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/running.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/running.html	(revision 14989)
@@ -0,0 +1,584 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Running Apache Ant</title>
+</head>
+
+<body>
+
+<h1>Running Ant</h1>
+<h2><a name="commandline">Command Line</a></h2>
+<p> If you've installed Ant as described in the
+<a href="install.html"> Installing Ant</a> section,
+running Ant from the command-line is simple: just type
+<code>ant</code>.</p>
+<p>When no arguments are specified, Ant looks for a <code>build.xml</code>
+file in the current directory and, if found, uses that file as the
+build file and runs the target specified in the <code>default</code>
+attribute of the <code>&lt;project&gt;</code> tag.
+To make Ant use
+a build file other than <code>build.xml</code>, use the command-line
+option <nobr><code>-buildfile <i>file</i></code></nobr>,
+where <i>file</i> is the name of the build file you want to use.</p>
+If you use the <nobr><code>-find [<i>file</i>]</code></nobr> option,
+Ant will search for a build file first in the current directory, then in
+the parent directory, and so on, until either a build file is found or the root
+of the filesystem has been reached. By default, it will look for a build file
+called <code>build.xml</code>. To have it search for a build file other
+than <code>build.xml</code>, specify a file argument.
+<strong>Note:</strong> If you include any other flags or arguments
+on the command line after
+the <nobr><code>-find</code></nobr> flag, you must include the file argument
+for the <nobr><code>-find</code></nobr> flag, even if the name of the
+build file you want to find is <code>build.xml</code>.
+
+<p>You can also set <a href="using.html#properties">properties</a> on the
+command line.  This can be done with
+the <nobr><code>-D<i>property</i>=<i>value</i></code></nobr> option,
+where <i>property</i> is the name of the property,
+and <i>value</i> is the value for that property. If you specify a
+property that is also set in the build file
+(see the <a href="CoreTasks/property.html">property</a> task),
+the value specified on the
+command line will override the value specified in the
+build file.
+Defining properties on the command line can also be used to pass in
+the value of environment variables; just pass
+<nobr><code>-DMYVAR=%MYVAR%</code></nobr> (Windows) or
+<nobr><code>-DMYVAR=$MYVAR</code></nobr> (Unix)
+to Ant. You can then access
+these variables inside your build file as <code>${MYVAR}</code>.
+You can also access environment variables using the
+<a href="CoreTasks/property.html"> property</a> task's
+<code>environment</code> attribute.
+</p>
+
+<p>Options that affect the amount of logging output by Ant are:
+<nobr><code>-quiet</code></nobr>,
+which instructs Ant to print less
+information to the console;
+<nobr><code>-verbose</code></nobr>, which causes Ant to print
+additional information to the console; and <nobr><code>-debug</code></nobr>,
+which causes Ant to print considerably more additional information.
+</p>
+
+<p>It is also possible to specify one or more targets that should be executed.
+When omitted, the target that is specified in the
+<code>default</code> attribute of the
+<a href="using.html#projects"><code>project</code></a> tag is
+used.</p>
+
+<p>The <nobr><code>-projecthelp</code></nobr> option prints out a list
+of the build file's targets. Targets that include a
+<code>description</code> attribute are listed as &quot;Main targets&quot;,
+those without a <code>description</code> are listed as
+&quot;Other targets&quot;, then the &quot;Default&quot; target is listed
+("Other targets" are only displayed if there are no main
+targets, or if Ant is invoked in -verbose or -debug mode).
+
+<h3><a name="options">Command-line Options Summary</a></h3>
+<pre>ant [options] [target [target2 [target3] ...]]
+Options:
+  -help, -h              print this message
+  -projecthelp, -p       print project help information
+  -version               print the version information and exit
+  -diagnostics           print information that might be helpful to
+                         diagnose or report problems.
+  -quiet, -q             be extra quiet
+  -verbose, -v           be extra verbose
+  -debug, -d             print debugging information
+  -emacs, -e             produce logging information without adornments
+  -lib &lt;path&gt;            specifies a path to search for jars and classes
+  -logfile &lt;file&gt;        use given file for log
+    -l     &lt;file&gt;                ''
+  -logger &lt;classname&gt;    the class which is to perform logging
+  -listener &lt;classname&gt;  add an instance of class as a project listener
+  -noinput               do not allow interactive input
+  -buildfile &lt;file&gt;      use given buildfile
+    -file    &lt;file&gt;              ''
+    -f       &lt;file&gt;              ''
+  -D&lt;property&gt;=&lt;value&gt;   use value for given property
+  -keep-going, -k        execute all targets that do not depend
+                         on failed target(s)
+  -propertyfile &lt;name&gt;   load all properties from file with -D
+                         properties taking precedence
+  -inputhandler &lt;class&gt;  the class which will handle input requests
+  -find &lt;file&gt;           (s)earch for buildfile towards the root of
+    -s  &lt;file&gt;           the filesystem and use it
+  -nice  number          A niceness value for the main thread:
+                         1 (lowest) to 10 (highest); 5 is the default
+  -nouserlib             Run ant without using the jar files from ${user.home}/.ant/lib
+  -noclasspath           Run ant without using CLASSPATH
+  -autoproxy             Java 1.5+ : use the OS proxies
+  -main &lt;class&gt;          override Ant's normal entry point
+</pre>
+<p>For more information about <code>-logger</code> and
+<code>-listener</code> see
+<a href="listeners.html">Loggers &amp; Listeners</a>.
+<p>For more information about <code>-inputhandler</code> see
+<a href="inputhandler.html">InputHandler</a>.
+<p>Easiest way of changing the exit-behaviour is subclassing the original main class:
+<pre>
+public class CustomExitCode extends org.apache.tools.ant.Main {
+    protected void exit(int exitCode) {
+        // implement your own behaviour, e.g. NOT exiting the JVM
+    }
+}
+</pre> and starting Ant with access (<tt>-lib path-to-class</tt>) to this class.
+</p>
+
+<h3><a name="libs">Library Directories</a></h3>
+<p>
+Prior to Ant 1.6, all jars in the ANT_HOME/lib would be added to the CLASSPATH
+used to run Ant. This was done in the scripts that started Ant. From Ant 1.6,
+two directories are scanned by default and more can be added as required. The
+default directories scanned are ANT_HOME/lib and a user specific directory,
+${user.home}/.ant/lib. This arrangement allows the Ant installation to be
+shared by many users while still allowing each user to deploy additional jars.
+Such additional jars could be support jars for Ant's optional tasks or jars
+containing third-party tasks to be used in the build. It also allows the main Ant installation to be locked down which will please system adminstrators.
+</p>
+
+<p>
+Additional directories to be searched may be added by using the -lib option.
+The -lib option specifies a search path. Any jars or classes in the directories
+of the path will be added to Ant's classloader. The order in which jars are
+added to the classpath is as follows:
+</p>
+
+<ul>
+  <li>-lib jars in the order specified by the -lib elements on the command line</li>
+  <li>jars from ${user.home}/.ant/lib (unless -nouserlib is set)</li>
+  <li>jars from ANT_HOME/lib</li>
+</ul>
+
+<p>
+Note that the CLASSPATH environment variable is passed to Ant using a -lib
+option. Ant itself is started with a very minimalistic classpath.
+Ant should work perfectly well with an empty CLASSPATH environment variable,
+something the the -noclasspath option actually enforces. We get many more support calls related to classpath problems (especially quoting problems) than
+we like.
+
+</p>
+
+<p>
+The location of ${user.home}/.ant/lib is somewhat dependent on the JVM. On Unix
+systems ${user.home} maps to the user's home directory whilst on recent
+versions of Windows it will be somewhere such as
+C:\Documents&nbsp;and&nbsp;Settings\username\.ant\lib. You should consult your
+JVM documentation for more details.
+</p>
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>ant</pre>
+</blockquote>
+<p>runs Ant using the <code>build.xml</code> file in the current directory, on
+the default target.</p>
+<blockquote>
+  <pre>ant -buildfile test.xml</pre>
+</blockquote>
+<p>runs Ant using the <code>test.xml</code> file in the current directory, on
+the default target.</p>
+<blockquote>
+  <pre>ant -buildfile test.xml dist</pre>
+</blockquote>
+<p>runs Ant using the <code>test.xml</code> file in the current directory, on
+the target called <code>dist</code>.</p>
+<blockquote>
+  <pre>ant -buildfile test.xml -Dbuild=build/classes dist</pre>
+</blockquote>
+<p>runs Ant using the <code>test.xml</code> file in the current directory, on
+the target called <code>dist</code>, setting the <code>build</code> property
+to the value <code>build/classes</code>.</p>
+
+<blockquote>
+  <pre>ant -lib /home/ant/extras</pre>
+</blockquote>
+<p>runs Ant picking up additional task and support jars from the
+/home/ant/extras location
+</p>
+
+<h3><a name="files">Files</a></h3>
+
+<p>The Ant wrapper script for Unix will source (read and evaluate) the
+file <code>~/.antrc</code> before it does anything. On Windows, the Ant
+wrapper batch-file invokes <code>%HOME%\antrc_pre.bat</code> at the start and
+<code>%HOME%\antrc_post.bat</code> at the end.  You can use these
+files, for example, to set/unset environment variables that should only be
+visible during the execution of Ant.  See the next section for examples.</p>
+
+<h3><a name="envvars">Environment Variables</a></h3>
+
+<p>The wrapper scripts use the following environment variables (if
+set):</p>
+
+<ul>
+  <li><code>JAVACMD</code> - full path of the Java executable.  Use this
+  to invoke a different JVM than <code>JAVA_HOME/bin/java(.exe)</code>.</li>
+
+  <li><code>ANT_OPTS</code> - command-line arguments that should be
+  passed to the JVM. For example, you can define system properties or set
+  the maximum Java heap size here.</li>
+
+  <li><code>ANT_ARGS</code> - Ant command-line arguments. For example,
+  set <code>ANT_ARGS</code> to point to a different logger, include a
+  listener, and to include the <code>-find</code> flag.</li>
+  <strong>Note:</strong> If you include <code>-find</code>
+  in <code>ANT_ARGS</code>, you should include the name of the build file
+  to find, even if the file is called <code>build.xml</code>.
+</ul>
+
+<h3><a name="sysprops">Java System Properties</a></h3>
+<p>Some of Ant's core classes can be configured via system properties.</p>
+<p>Here is the result of a search through the codebase. Because system properties are
+available via Project instance, I searched for them with a
+<pre>
+    grep -r -n "getPropert" * &gt; ..\grep.txt
+</pre>
+command. After that I filtered out the often-used but not-so-important values (most of them
+read-only values): <i>path.separator, ant.home, basedir, user.dir, os.name,
+line.separator, java.home, java.version, java.version, user.home, java.class.path</i><br>
+And I filtered out the <i>getPropertyHelper</i> access.</p>
+<table border="1">
+<tr>
+  <th>property name</th>
+  <th>valid values /default value</th>
+  <th>description</th>
+</tr>
+<tr>
+  <td><code>ant.build.javac.source</code></td>
+  <td>Source-level version number</td>
+  <td>Default <em>source</em> value for &lt;javac&gt;/&lt;javadoc&gt;</td>
+</tr>
+<tr>
+  <td><code>ant.build.javac.target</code></td>
+  <td>Class-compatibility version number</td>
+  <td>Default <em>target</em> value for &lt;javac&gt;</td>
+</tr>
+<tr>
+  <td><code>ant.executor.class</code></td>
+  <td>classname; default is org. apache. tools. ant. helper. DefaultExecutor</td>
+  <td><b>Since Ant 1.6.3</b> Ant will delegate Target invocation to the
+org.apache.tools.ant.Executor implementation specified here.
+  </td>
+</tr>
+
+<tr>
+  <td><code>ant.file</code></td>
+  <td>read only: full filename of the build file</td>
+  <td>This is set to the name of the build file. In
+  <a href="CoreTasks/import.html">
+  &lt;import&gt;-ed</a> files, this is set to the containing build file.
+  </td>
+</tr>
+
+<tr>
+  <td><code>ant.file.*</code></td>
+  <td>read only: full filename of the build file of Ant projects
+  </td>
+  <td>This is set to the name of a file by project;
+  this lets you determine the location of <a href="CoreTasks/import.html">
+  &lt;import&gt;-ed</a> files,
+  </td>
+</tr>
+
+<tr>
+  <td><code>ant.input.properties</code></td>
+  <td>filename (required)</td>
+  <td>Name of the file holding the values for the
+      <a href="inputhandler.html">PropertyFileInputHandler</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.logger.defaults</code></td>
+  <!-- add the blank after the slash, so the browser can do a line break -->
+  <td>filename (optional, default '/org/ apache/ tools/ ant/ listener/ defaults.properties')</td>
+  <td>Name of the file holding the color mappings for the
+      <a href="listeners.html#AnsiColorLogger">AnsiColorLogger</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.netrexxc.*</code></td>
+  <td>several formats</td>
+  <td>Use specified values as defaults for <a href="OptionalTasks/netrexxc.html">netrexxc</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.PropertyHelper</code></td>
+  <td>ant-reference-name (optional)</td>
+  <td>Specify the PropertyHelper to use. The object must be of the type
+      org.apache.tools.ant.PropertyHelper. If not defined an object of
+      org.apache.tools.ant.PropertyHelper will be used as PropertyHelper.
+  </td>
+</tr>
+<tr>
+  <td><code>ant.regexp.regexpimpl</code></td>
+  <td>classname</td>
+  <td>classname for a RegExp implementation; if not set Ant tries to
+      find another (JDK14+, Apache Oro...);
+      <a href="CoreTypes/mapper.html#regexp-mapper">RegExp-Mapper</a>
+      "Choice of regular expression implementation"
+  </td>
+</tr>
+<tr>
+  <td><code>ant.reuse.loader</code></td>
+  <td>boolean</td>
+  <td>allow to reuse classloaders
+      used in org.apache.tools.ant.util.ClasspathUtil
+  </td>
+</tr>
+<tr>
+  <td><code>ant.XmlLogger.stylesheet.uri</code></td>
+  <td>filename (default 'log.xsl')</td>
+  <td>Name for the stylesheet to include in the logfile by
+      <a href="listeners.html#XmlLogger">XmlLogger</a>.
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler</code></td>
+  <td>name</td>
+  <td>Specify the default compiler to use.
+      see <a href="CoreTasks/javac.html">javac</a>,
+      <a href="OptionalTasks/ejb.html#ejbjar_weblogic">EJB Tasks</a>
+      (compiler attribute),
+      <a href="OptionalTasks/javah.html">javah</a>
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.emacs</code></td>
+  <td>boolean (default false)</td>
+  <td>Enable emacs-compatible error messages.
+      see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.fulldepend</code></td>
+  <td>boolean (default false)</td>
+  <td>Enable full dependency checking
+      see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.jvc.extensions</code></td>
+  <td>boolean (default true)</td>
+  <td>enable Microsoft extensions of their java compiler
+      see <a href="CoreTasks/javac.html">javac</a> "Jvc Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.pedantic</code></td>
+  <td>boolean (default false)</td>
+  <td>Enable pedantic warnings.
+      see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes"
+  </td>
+</tr>
+<tr>
+  <td><code>build.compiler.warnings</code></td>
+  <td>Deprecated flag</td>
+  <td> see <a href="CoreTasks/javac.html">javac</a> "Jikes Notes" </td>
+</tr>
+<tr>
+  <td><code>build.rmic</code></td>
+  <td>name</td>
+  <td>control the <a href="CoreTasks/rmic.html">rmic</a> compiler </td>
+</tr>
+<tr>
+  <td><code>build.sysclasspath</code></td>
+  <td>"only", something else</td>
+  <td>only: current threads get the actual class loader
+      (AntClassLoader.setThreadContextLoader()).
+      else: use core loader as default (ComponentHelper.initTasks()). Disable
+      changing the classloader (oata.taskdefs.Classloader.execute() experimental
+      task).
+      <!-- somewhere documented in the manual?? -->
+  </td>
+</tr>
+<tr>
+  <td><code>file.encoding</code></td>
+  <td>name of a supported character set (e.g. UTF-8, ISO-8859-1, US-ASCII)</td>
+  <td>use as default character set of email messages; use as default for source-, dest- and bundleencoding
+      in <a href="OptionalTasks/translate.html">translate</a> <br>
+      see JavaDoc of <a target="_blank" href="http://java.sun.com/j2se/1.4.2/docs/api/java/nio/charset/Charset.html">java.nio.charset.Charset</a>
+      for more information about character sets (not used in Ant, but has nice docs).
+  </td>
+</tr>
+<tr>
+  <td><code>jikes.class.path</code></td>
+  <td>path</td>
+  <td>The specified path is added to the classpath if jikes is used as compiler.</td>
+</tr>
+<tr>
+  <td><code>MailLogger.properties.file, MailLogger.*</code></td>
+  <td>filename (optional, defaults derived from Project instance)</td>
+  <td>Name of the file holding properties for sending emails by the
+      <a href="listeners.html#MailLogger">MailLogger</a>. Override properties set
+      inside the buildfile or via command line.
+  </td>
+</tr>
+<tr>
+  <td><code>org.apache.tools.ant.ProjectHelper</code></td>
+  <!-- add the blank after the slash, so the browser can do a line break -->
+  <td>classname (optional, default 'org.apache.tools.ant.ProjectHelper')</td>
+  <td>specifies the classname to use as ProjectHelper. The class must extend
+      org.apache.tools.ant.ProjectHelper.
+  </td>
+</tr>
+<tr>
+  <td><code>p4.port, p4.client, p4.user</code></td>
+  <td>several formats</td>
+  <td>Specify defaults for port-, client- and user-setting of the
+      <a href="OptionalTasks/perforce.html">perforce</a> tasks.
+  </td>
+</tr>
+<tr>
+  <td><code>websphere.home
+  <td>path</td>
+  <td>Points to home directory of websphere.
+      see <a href="OptionalTasks/ejb.html#ejbjar_websphere">EJB Tasks</a>
+  </td>
+</tr>
+<tr>
+  <td><code>XmlLogger.file
+  <td>filename (default 'log.xml')</td>
+  <td>Name for the logfile for <a href="listeners.html#MailLogger">MailLogger</a>.
+  </td>
+</tr>
+</table>
+
+<p>
+If new properties get added (it happens), expect them to appear under the
+"ant." and "org.apache.tools.ant" prefixes, unless the developers have a
+very good reason to use another prefix. Accordingly, please avoid using
+properties that begin with these prefixes. This protects you from future
+Ant releases breaking your build file.
+</p>
+<h3>return code</h3>
+<p>the ant start up scripts (in their Windows and Unix version) return
+the return code of the java program. So a successful build returns 0,
+failed builds return other values.
+</p>
+
+<h2><a name="cygwin">Cygwin Users</a></h2>
+<p>The Unix launch script that come with Ant works correctly with Cygwin. You
+should not have any problems launching Ant from the Cygwin shell. It is
+important to note, however, that once Ant is running it is part of the JDK
+which operates as a native Windows application. The JDK is not a Cygwin
+executable, and it therefore has no knowledge of Cygwin paths, etc. In
+particular when using the <code>&lt;exec&gt;</code> task, executable names such
+as &quot;/bin/sh&quot; will not work, even though these work from the Cygwin
+shell from which Ant was launched. You can use an executable name such as
+&quot;sh&quot; and rely on that command being available in the Windows path.
+</p>
+
+<h2><a name="os2">OS/2 Users</a></h2>
+<p>The OS/2 launch script was developed to perform complex tasks. It has two parts:
+<code>ant.cmd</code> which calls Ant and <code>antenv.cmd</code> which sets the environment for Ant.
+Most often you will just call <code>ant.cmd</code> using the same command line options as described
+above. The behaviour can be modified by a number of ways explained below.</p>
+
+<p>Script <code>ant.cmd</code> first verifies whether the Ant environment is set correctly. The
+requirements are:</p>
+<ol>
+<li>Environment variable <code>JAVA_HOME</code> is set.</li>
+<li>Environment variable <code>ANT_HOME</code> is set.</li>
+<li>Environment variable <code>CLASSPATH</code> is set and contains at least one element from
+<code>JAVA_HOME</code> and at least one element from <code>ANT_HOME</code>.</li>
+</ol>
+
+<p>If any of these conditions is violated, script <code>antenv.cmd</code> is called. This script
+first invokes configuration scripts if there exist: the system-wide configuration
+<code>antconf.cmd</code> from the <code>%ETC%</code> directory and then the user configuration
+<code>antrc.cmd</code> from the <code>%HOME%</code> directory. At this moment both
+<code>JAVA_HOME</code> and <code>ANT_HOME</code> must be defined because <code>antenv.cmd</code>
+now adds <code>classes.zip</code> or <code>tools.jar</code> (depending on version of JVM) and
+everything from <code>%ANT_HOME%\lib</code> except <code>ant-*.jar</code> to
+<code>CLASSPATH</code>. Finally <code>ant.cmd</code> calls per-directory configuration
+<code>antrc.cmd</code>. All settings made by <code>ant.cmd</code> are local and are undone when the
+script ends. The settings made by <code>antenv.cmd</code> are persistent during the lifetime of the
+shell (of course unless called automatically from <code>ant.cmd</code>). It is thus possible to call
+<code>antenv.cmd</code> manually and modify some settings before calling <code>ant.cmd</code>.</p>
+
+<p>Scripts <code>envset.cmd</code> and <code>runrc.cmd</code> perform auxiliary tasks. All scripts
+have some documentation inside.</p>
+
+<h2><a name="viajava">Running Ant via Java</a></h2>
+<p>If you have installed Ant in the do-it-yourself way, Ant can be started
+from one of two entry points:</p>
+<blockquote>
+  <pre>java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre>
+</blockquote>
+
+<blockquote>
+  <pre>java -Dant.home=c:\ant org.apache.tools.ant.launch.Launcher [options] [target]</pre>
+</blockquote>
+
+<p>
+The first method runs Ant's traditional entry point. The second method uses
+the Ant Launcher introduced in Ant 1.6. The former method does not support
+the -lib option and all required classes are loaded from the CLASSPATH. You must
+ensure that all required jars are available. At a minimum the CLASSPATH should
+include:
+</p>
+
+<ul>
+<li><code>ant.jar</code> and <code>ant-launcher.jar</code></li>
+<li>jars/classes for your XML parser</li>
+<li>the JDK's required jar/zip files</li>
+</ul>
+
+<p>
+The latter method supports the -lib, -nouserlib, -noclasspath options and will
+    load jars from the specified ANT_HOME. You should start the latter with the most minimal
+classpath possible, generally just the ant-launcher.jar.
+</p>
+
+<a name="viaant"/>
+
+Ant can be started in Ant via the <code>&lt;java&gt;</code> command.
+Here is an example:
+
+<pre>
+&lt;java
+        classname="org.apache.tools.ant.launch.Launcher"
+        fork="true"
+        failonerror="true"
+        dir="${sub.builddir}"
+        timeout="4000000"
+        taskname="startAnt"
+&gt;
+    &lt;classpath&gt;
+        &lt;pathelement location="${ant.home}/lib/ant-launcher.jar"/&gt;
+    &lt;/classpath&gt;
+    &lt;arg value="-buildfile"/&gt;
+    &lt;arg file="${sub.buildfile}"/&gt;
+    &lt;arg value="-Dthis=this"/&gt;
+    &lt;arg value="-Dthat=that"/&gt;
+    &lt;arg value="-Dbasedir=${sub.builddir}"/&gt;
+    &lt;arg value="-Dthe.other=the.other"/&gt;
+    &lt;arg value="${sub.target}"/&gt;
+&lt;/java&gt;
+</pre>
+<br>
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/runninglist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/runninglist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/runninglist.html	(revision 14989)
@@ -0,0 +1,42 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Running Ant</h3>
+<a href="running.html#commandline">Command Line</a><br>
+&nbsp;&nbsp;<a href="running.html#options">Options</a><br>
+&nbsp;&nbsp;<a href="running.html#libs">Library Directories</a><br>
+&nbsp;&nbsp;<a href="running.html#files">Files</a><br>
+&nbsp;&nbsp;<a href="running.html#envvars">Environment Variables</a><br>
+&nbsp;&nbsp;<a href="running.html#sysprops">Java System Properties</a><br>
+&nbsp;&nbsp;<a href="running.html#cygwin">Cygwin Users</a><br>
+&nbsp;&nbsp;<a href="running.html#os2">OS/2 Users</a><br>
+<a href="running.html#viajava">Running Ant via Java</a><br>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/stylesheets/antmanual.css
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/stylesheets/antmanual.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/stylesheets/antmanual.css	(revision 14989)
@@ -0,0 +1,147 @@
+/* 
+ * Copyright  2003-2004 Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ * 
+ */
+body {
+ font-family:Verdana,Helvetica,Arial;
+	font-size:12px;   
+	color:WindowText;
+	background-color:ButtonHighlight;
+}
+img{
+	border:0px;
+}
+p{
+	padding-left:5px;
+	padding-right:2px;
+	padding-top:1px;
+	padding-bottom:1px;
+}
+table{
+	border:1px;
+	border-color:ThreeDLightShadow;
+	border-style:solid;
+}
+td {
+	font-family:Verdana,Helvetica,Arial;
+	font-size:12px;   
+	border:1px;
+	border-color:ThreeDLightShadow;
+	border-style:solid;
+}
+th {
+	font-family:Verdana,Helvetica,Arial;
+	font-size:14px;   
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:5px;
+	padding-right:2px;
+	border:1px;
+	border-color:ThreeDLightShadow;
+	border-style:solid;
+	text-align:left;
+}
+a{
+	color:WindowText;
+	text-decoration: underline; 
+	padding-left:5px;
+	padding-right:4px;
+	font-family:Verdana,Helvetica,Arial;
+}
+
+a:hover { 
+	padding-left:4px;
+	padding-right:5px;
+	padding-top:1px;
+	padding-bottom:0px;
+	color:Highlight;
+	font-family:Verdana,Helvetica,Arial;
+	text-decoration: underline; 
+}
+h1 a{
+	color:HighlightText;
+}
+h2 a{
+	color:HighlightText;
+}
+h3 a{
+	color:HighlightText;
+}
+h1 a:hover{
+	color:HighlightText;
+}
+h2 a:hover{
+	color:HighlightText;
+}
+h3 a:hover{
+	color:HighlightText;
+}
+h1{
+	font-size: 18px;
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:8px; padding-right:2px; padding-top:1px; padding-bottom:1px;
+	border-top:0px; border-bottom:2px; border-left:0px; border-right:0px;
+	border-style:solid;
+	border-color:Highlight;
+}
+h2{
+	font-size: 16px;
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:8px; padding-right:2px; padding-top:1px; padding-bottom:1px;
+	border-top:0px; border-bottom:2px; border-left:0px; border-right:0px;
+	border-style:solid;
+	border-color:Highlight;
+}
+h3{
+	font-size: 14px;
+	color:HighlightText;
+	background-color:Highlight;
+	padding-left:8px; padding-right:2px; padding-top:1px; padding-bottom:1px;
+	border-top:0px; border-bottom:2px; border-left:0px; border-right:0px;
+	border-style:solid;
+	border-color:Highlight;
+}
+
+img.but{
+	border:0px;
+	border-style:solid;
+	padding-top:3px; padding-bottom:3px; padding-left:3px; padding-right:3px;
+	margin-top:3px; margin-bottom:3px; margin-left:8px; margin-right:3px;
+}
+a:hover img.but{
+	border-top:1px; border-bottom:1px; border-left:1px; border-right:1px;
+	border-style:solid;
+	border-top-color:ThreeDHighlight;
+	border-bottom-color:ButtonShadow;
+	border-left-color:ThreeDHighlight;
+	border-right-color:ButtonShadow;
+	padding-top:3px; padding-bottom:3px; padding-left:3px; padding-right:3px;
+	margin-top:1px; margin-bottom:3px; margin-left:6px; margin-right:3px;
+}
+a:active img.but{
+	border-top:1px; border-bottom:1px; border-left:1px; border-right:1px;
+	border-style:inset;
+	border-top-color:ThreeDHighlight;
+	border-bottom-color:ButtonShadow;
+	border-left-color:ThreeDHighlight;
+	border-right-color:ButtonShadow;
+	padding-top:3px; padding-bottom:3px; padding-left:3px; padding-right:3px;
+	margin-top:0px; margin-bottom:3px; margin-left:5px; margin-right:3px;
+}
+li {
+	list-style: url('../../../images/li.png') circle;
+}
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/stylesheets/style.css
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/stylesheets/style.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/stylesheets/style.css	(revision 14989)
@@ -0,0 +1,195 @@
+/* 
+ * Copyright  2003-2004 Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  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.
+ * 
+ */
+body {
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 12px;   
+	color: WindowText;
+	background-color: ButtonHighlight;
+	margin: 0px;
+	padding-top: 0px;
+	padding-left: 4px;
+	padding-right: 0px;
+	padding-bottom: 40px;
+	border: 0px;
+	border-bottom: solid 2px Highlight;
+	margin-bottom: 40px;
+}
+img {
+	border: 0px;
+}
+p {
+	padding-left: 5px;
+	padding-right: 2px;
+	padding-top: 1px;
+	padding-bottom: 1px;
+}
+table {
+	border: 1px;
+	border-color: ThreeDLightShadow;
+	border-style: solid;
+	margin-right: 4px;
+	margin-left: 4px;
+}
+table.layout {
+	border: 0px;
+}
+table.layout tr {
+	border: 0px;
+}
+table.layout td {
+	border: 0px;
+}
+
+td {
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 12px;   
+	border: 1px;
+	border-color: ThreeDLightShadow;
+	border-style: solid;
+}
+th {
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 14px;   
+	color: HighlightText;
+	background-color:Highlight;
+	padding-left: 5px;
+	padding-right: 2px;
+	border: 1px;
+	border-color: ThreeDLightShadow;
+	border-style: solid;
+	text-align: left;
+}
+th a {
+	color:HighlightText;
+}
+th a:hover {
+	color:HighlightText;
+}
+a{
+	color: WindowText;
+	text-decoration: underline; 
+	padding-left: 5px;
+	padding-right: 4px;
+	font-family: Verdana,Helvetica,Arial;
+}
+
+a:hover { 
+	padding-left: 4px;
+	padding-right: 5px;
+	padding-top: 1px;
+	padding-bottom: 0px;
+	color: Highlight;
+	font-family: Verdana,Helvetica,Arial;
+	text-decoration: underline; 
+}
+h1 a {
+	color:HighlightText;
+}
+h2 a {
+	color:HighlightText;
+}
+h3 a {
+	color:HighlightText;
+	text-decoration: none;
+}
+h1 a:hover {
+	color:HighlightText;
+}
+h2 a:hover {
+	color:HighlightText;
+}
+h3 a:hover {
+	color:HighlightText;
+	text-decoration: none;
+}
+h1 a:visited {
+	color:HighlightText;
+}
+h2 a:visited {
+	color:HighlightText;
+}
+h3 a:visited {
+	color:HighlightText;
+	text-decoration: none;
+}
+h1 {
+	font-size: 18px;
+	color: HighlightText;
+	background-color: Highlight;
+	padding-left: 8px; padding-right: 2px; padding-top: 1px; padding-bottom: 1px;
+	border-top: 0px; border-bottom: 2px; border-left: 0px; border-right: 0px;
+	border-style: solid;
+	border-color: Highlight;
+	margin-left: -4px;
+}
+h2 {
+	font-size: 16px;
+	color: HighlightText;
+	background-color: Highlight;
+	padding-left: 8px; padding-right: 2px; padding-top: 1px; padding-bottom: 1px;
+	border-top: 0px; border-bottom: 2px; border-left: 0px; border-right: 0px;
+	border-style: solid;
+	border-color: Highlight;
+	margin-left: -4px;
+}
+h3 {
+	font-size: 14px;
+	color: HighlightText;
+	background-color: Highlight;
+	padding-left: 10px; padding-right: 2px; padding-top: 1px; padding-bottom: 1px;
+	border-top: 0px; border-bottom: 2px; border-left: 0px; border-right: 0px;
+	border-style: solid;
+	border-color: Highlight;
+	margin-left: -4px;
+}
+h4 {
+	margin-left: 6px;
+	font-size: 13px;
+}
+pre {
+	margin-left: 6px;
+}
+
+img.but {
+	border: 0px;
+	border-style: solid;
+	padding-top: 3px; padding-bottom: 3px; padding-left: 3px; padding-right: 3px;
+	margin-top: 3px; margin-bottom: 3px; margin-left: 8px; margin-right: 3px;
+}
+a:hover img.but {
+	border-top: 1px; border-bottom: 1px; border-left: 1px; border-right: 1px;
+	border-style: solid;
+	border-top-color: ThreeDHighlight;
+	border-bottom-color: ButtonShadow;
+	border-left-color: ThreeDHighlight;
+	border-right-color: ButtonShadow;
+	padding-top: 3px; padding-bottom: 3px; padding-left: 3px; padding-right: 3px;
+	margin-top: 1px; margin-bottom: 3px; margin-left: 6px; margin-right: 3px;
+}
+a:active img.but {
+	border-top: 1px; border-bottom: 1px; border-left: 1px; border-right: 1px;
+	border-style: inset;
+	border-top-color: ThreeDHighlight;
+	border-bottom-color: ButtonShadow;
+	border-left-color: ThreeDHighlight;
+	border-right-color: ButtonShadow;
+	padding-top: 3px; padding-bottom: 3px; padding-left: 3px; padding-right: 3px;
+	margin-top: 0px; margin-bottom: 3px; margin-left: 5px; margin-right: 3px;
+}
+li {
+	list-style: url('../../../images/li.png') circle;
+}
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/sysclasspath.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/sysclasspath.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/sysclasspath.html	(revision 14989)
@@ -0,0 +1,80 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>build.sysclasspath</title>
+</head>
+
+<body>
+
+<h2><a name="sysclasspath">build.sysclasspath</a></h2>
+<p>The value of the build.sysclasspath property
+control how the system classpath, ie. the classpath in effect when
+Ant is run, affects the behaviour of classpaths in Ant.
+The default behavior varies from Ant to Ant task.</p>
+
+The values and their meanings are:
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+<td align="left" valign="top">only</td>
+<td>Only the system classpath is used and classpaths specified in build files,
+etc are ignored. This situation could be considered as the person running
+the build file knows more about the environment than the person writing the
+build file
+</td>
+</tr>
+
+<tr>
+<td align="left" valign="top">ignore</td>
+<td>
+The system classpath is ignored. This situation is the reverse of the
+above. The person running the build trusts the build file writer to get the
+build file right
+</td>
+</tr>
+
+<tr>
+<td align="left" valign="top">last</td>
+<td>
+The classpath is concatenated to any specified classpaths at the end. This
+is a compromise, where the build file writer has priority.
+</td>
+</tr>
+
+<tr>
+<td align="left" valign="top">first</td>
+<td>
+Any specified classpaths are concatenated to the system classpath. This is
+the other form of compromise where the build runner has priority.
+</td>
+</tr>
+</table>
+
+<p><em>Since Ant 1.7</em> the value of this property also affects the
+bootclasspath settings--it combines the bootclasspath that has been
+specified for a task with the bootclasspath of the Java VM running
+Ant.  If the property has not been set, it defaults to "ignore" in
+this case.</p>
+
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/tasksoverview.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/tasksoverview.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/tasksoverview.html	(revision 14989)
@@ -0,0 +1,1230 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Overview of Ant Tasks</title>
+  <base target="mainFrame">
+</head>
+
+<body>
+<h2><a name="top">Overview of Ant Tasks</a></h2>
+<p>Given the large number of tasks available with Ant, it may be
+difficult to get an overall view of what each task can do.  The following
+tables provide a short description of each task and a link to the complete
+documentation.</p>
+
+<a href="#archive">Archive Tasks</a><br>
+<a href="#audit">Audit/Coverage Tasks</a><br>
+<a href="#compile">Compile Tasks</a><br>
+<a href="#deploy">Deployment Tasks</a><br>
+<a href="#doc">Documentation Tasks</a><br>
+<a href="#ejb">EJB Tasks</a><br>
+<a href="#exec">Execution Tasks</a><br>
+<a href="#file">File Tasks</a><br>
+<a href="#extensions">Java2 Extensions Tasks</a><br>
+<a href="#log">Logging Tasks</a><br>
+<a href="#mail">Mail Tasks</a><br>
+<a href="#misc">Miscellaneous Tasks</a><br>
+<a href="#net">.NET Tasks</a><br>
+<a href="#preproc">Pre-process Tasks</a><br>
+<a href="#prop">Property Tasks</a><br>
+<a href="#remote">Remote Tasks</a><br>
+<a href="#scm">SCM Tasks</a><br>
+<a href="#testing">Testing Tasks</a><br>
+<a href="#vaj">Visual Age for Java Tasks</a><br>
+
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="archive">Archive Tasks</a>
+</font>
+</b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td nowrap><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unpack.html">BUnzip2</a></td>
+    <td><p>Expands a file packed using GZip or BZip2.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/pack.html">BZip2</a></td>
+    <td><p>Packs a file using the GZip or BZip2 algorithm. This task
+     does not do any dependency checking; the output file is always
+     generated</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/cab.html">Cab</a></td>
+    <td><p>Creates Microsoft CAB archive files. It is invoked
+     similar to the <a href="CoreTasks/jar.html">Jar</a> or
+     <a href="CoreTasks/zip.html">Zip</a> tasks. This task will work on
+     Windows using the external <i>cabarc</i> tool (provided by Microsoft),
+     which must be located in your executable path.</p></td>
+   </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/ear.html">Ear</a></td>
+    <td><p>An extension of the <a href="CoreTasks/jar.html">Jar</a> task with
+     special treatment for files that should end up in an
+     Enterprise Application archive.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/gunzip.html">GUnzip</a></td>
+    <td><p>Expands a GZip file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/gzip.html">GZip</a></td>
+    <td><p>GZips a set of files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/jar.html">Jar</a></td>
+    <td><p>Jars a set of files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jlink.html">Jlink</a></td>
+    <td><p><i>Deprecated.</i> Use the <code>zipfileset</code>
+     and <code>zipgroupfileset</code> attributes of the
+     <a href="CoreTasks/jar.html">Jar</a> or
+     <a href="CoreTasks/zip.html">Zip</a> tasks instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/manifest.html">Manifest</a></td>
+    <td><p>Creates a manifest file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/rpm.html">Rpm</a></td>
+    <td><p>Invokes the <i>rpm</i> executable to build a Linux installation
+     file. This task currently only works on Linux or other Unix platforms
+     with RPM support.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/signjar.html">SignJar</a></td>
+    <td><p>Signs a jar or zip file with the <i>javasign</i>
+     command-line tool.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/tar.html">Tar</a></td>
+    <td><p>Creates a tar archive.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unzip.html">Unjar</a></td>
+    <td><p>Unzips a jarfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/untar.html">Untar</a></td>
+    <td><p>Untars a tarfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unzip.html">Unwar</a></td>
+    <td><p>Unzips a warfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/unzip.html">Unzip</a></td>
+    <td><p>Unzips a zipfile.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/war.html">War</a></td>
+    <td><p>An extension of the <a href="CoreTasks/jar.html">Jar</a> task
+     with special treatment for files that should end up in the
+     <code>WEB-INF/lib</code>, <code>WEB-INF/classes</code>, or
+     <code>WEB-INF</code> directories of the Web Application Archive.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/zip.html">Zip</a></td>
+    <td><p>Creates a zipfile.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="audit">Audit/Coverage Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jdepend.html">JDepend</a></td>
+    <td><p>Invokes the <a href="http://www.clarkware.com/software/JDepend.html">
+     JDepend</a> parser. This parser &quot;traverses a set of Java source-file
+     directories and generates design-quality metrics for each Java
+     package&quot;.</p></td>
+   </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="compile">Compile Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/depend.html">Depend</a></td>
+    <td><p>Determines which classfiles are out-of-date with respect to their
+     source, removing the classfiles of any other classes that depend on the
+     out-of-date classes, forcing the re-compile of the removed classfiles.
+     Typically used in conjunction with the
+     <a href="CoreTasks/javac.html">Javac</a> task.</p></td>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/javac.html">Javac</a></td>
+    <td><p>Compiles the specified source file(s) within the running
+     (Ant) VM, or in another VM if the <code>fork</code> attribute is
+     specified.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/apt.html">Apt</a></td>
+    <td><p>Runs the annotation processor tool (apt), and then optionally compiles
+   the original code, and any generated source code.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jspc.html">JspC</a></td>
+    <td><p>Runs the JSP compiler. It can be used to precompile JSP pages
+     for fast initial invocation of JSP pages, deployment on a server without
+     the full JDK installed, or simply to syntax-check the pages without
+     deploying them. The <a href="CoreTasks/javac.html">Javac</a> task
+     can be used to compile the generated Java source.
+     (For Weblogic JSP compiles,
+     see the <a href="OptionalTasks/wljspc.html">Wljspc</a> task.)</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/netrexxc.html">NetRexxC</a></td>
+    <td><p>Compiles a
+     <a href="http://www2.hursley.ibm.com/netrexx" target="_top">NetRexx</a>
+     source tree within the running (Ant) VM.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/rmic.html">Rmic</a></td>
+    <td><p>Runs the <i>rmic</i> compiler on the specified file(s).</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/wljspc.html">Wljspc</a></td>
+    <td><p>Compiles JSP pages using Weblogic's JSP compiler,
+     <i>weblogic.jspc</i>. (For non-Weblogic JSP compiles, see the
+     <a href="OptionalTasks/jspc.html">JspC</a> task.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="deploy">Deployment Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/serverdeploy.html">ServerDeploy</a></td>
+    <td><p>Task to run a &quot;hot&quot; deployment tool for vendor-specific
+     J2EE server.
+    </p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="doc">Documentation Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/javadoc.html">Javadoc/<i>Javadoc2</i></a></td>
+    <td><p>Generates code documentation using the <i>javadoc</i> tool.
+     The Javadoc2 task is deprecated; use the Javadoc task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/stylebook.html">Stylebook</a></td>
+    <td><p>Executes the Apache Stylebook documentation generator.
+     Unlike the command-line version of this tool, all three arguments
+     are required to run the Stylebook task.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="ejb">EJB Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/ejb.html">EJB Tasks</a></td>
+    <td><p>(See the documentation describing the EJB tasks.)</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="exec">Execution Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/ant.html">Ant</a></td>
+    <td><p>Runs Ant on a supplied buildfile, optionally
+     passing properties (with possibly new values).
+     This task can be used to build sub-projects.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/antcall.html">AntCall</a></td>
+    <td><p>Runs another target within the same buildfile, optionally
+     passing properties (with possibly new values).</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/apply.html">Apply/<i>ExecOn</i></a></td>
+    <td><p>Executes a system command. When the <code>os</code> attribute is
+     specified, the command is only executed when Ant is run on one
+     of the specified operating systems.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/dependset.html">Dependset</a></td>
+    <td><p>This task compares a set of source files with a set of target
+     files.  If any of the source files is newer than any of
+     the target files, all the target files are removed. </p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/exec.html">Exec</a></td>
+    <td><p>Executes a system command. When the <code>os</code> attribute
+     is specified, the command is only executed when Ant is run on one of
+     the specified operating systems.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/java.html">Java</a></td>
+    <td><p>Executes a Java class within the running (Ant) VM, or in
+     another VM if the <code>fork</code> attribute is specified.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/parallel.html">Parallel</a></td>
+    <td><p>A container task that can contain other Ant tasks.
+     Each nested task specified within the <code>&lt;parallel&gt;</code>
+     tag will be executed in its own thread.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sequential.html">Sequential</a></td>
+    <td><p>A container task that can contain other Ant tasks.
+     The nested tasks are simply executed in sequence. Its primary use is
+     to support the sequential execution of a subset of tasks within
+     the <code>&lt;parallel&gt;</code> tag.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sleep.html">Sleep</a></td>
+    <td><p> A task for suspending execution for a specified period of time.
+     Useful when a build or deployment process requires an interval between
+     tasks.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/subant.html">Subant</a></td>
+    <td><p> Calls a given target for all defined sub-builds. This is an extension of ant for bulk project execution.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/waitfor.html">Waitfor</a></td>
+    <td><p>Blocks execution until a set of specified conditions become true.
+     This task is intended to be used with the
+     <a href="CoreTasks/parallel.html">Parallel</a> task to synchronize
+     a set of processes.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="file">File Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/attrib.html">Attrib</a></td>
+    <td><p>Changes the permissions and/or attributes of a file or all
+    files inside the specified directories. Currently, it has effect
+    only under Windows.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/checksum.html">Checksum</a></td>
+    <td><p>Generates a checksum for a file or set of files. This task can
+     also be used to perform checksum verifications.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/chgrp.html">Chgrp</a></td>
+    <td><p>Changes the group ownership of a file or all files inside
+    the specified directories. Currently, it has effect only under
+    Unix.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/chmod.html">Chmod</a></td>
+    <td><p>Changes the permissions of a file or all files inside the
+     specified directories. Currently, it has effect only under Unix.
+     The permissions are also UNIX style, like the arguments for the
+    <i>chmod</i> command.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/chown.html">Chown</a></td>
+    <td><p>Changes the owner of a file or all files inside the
+    specified directories. Currently, it has effect only under
+    Unix.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/concat.html">Concat</a></td>
+    <td><p>Concatenates multiple files into a single one or to Ant's
+     logging system.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/copy.html">Copy</a></td>
+    <td><p>Copies a file or Fileset to a new file or directory.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/copydir.html"><i>Copydir</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the
+     <a href="CoreTasks/copy.html">Copy</a> task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/copyfile.html"><i>Copyfile</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the
+     <a href="CoreTasks/copy.html">Copy</a> task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/delete.html">Delete</a></td>
+    <td><p>Deletes either a single file, all files and sub-directories
+     in a specified directory, or a set of files specified by one or more
+     <a href="CoreTypes/fileset.html">FileSet</a>s.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/deltree.html"><i>Deltree</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the
+     <a href="CoreTasks/delete.html">Delete</a> task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/filter.html">Filter</a></td>
+    <td><p>Sets a token filter for this project, or reads multiple token
+     filters from a specified file and sets these as filters. Token filters
+     are used by all tasks that perform file-copying operations.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/fixcrlf.html">FixCRLF</a></td>
+    <td><p>Modifies a file to add or remove tabs, carriage returns, linefeeds,
+     and EOF characters.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/get.html">Get</a></td>
+    <td><p>Gets a file from a URL.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/mkdir.html">Mkdir</a></td>
+    <td><p>Creates a directory. Non-existent parent directories are created,
+     when necessary.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/move.html">Move</a></td>
+    <td><p>Moves a file to a new file or directory, or a set(s) of file(s) to
+     a new directory.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/patch.html">Patch</a></td>
+    <td><p>Applies a &quot;diff&quot; file to originals.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/rename.html"><i>Rename</i></a></td>
+    <td><p><i>Deprecated.</i>  Use the <a href="CoreTasks/move.html">Move</a>
+    task instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/renameextensions.html">
+     <i>RenameExtensions</i></a></td>
+    <td><p><i>Deprecated</i>. Use the <a href="CoreTasks/move.html">Move</a>
+     task with a <a href="CoreTypes/mapper.html#glob-mapper">glob mapper</a>
+     instead.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/replace.html">Replace</a></td>
+    <td><p>Replace is a directory-based task for replacing the occurrence
+     of a given string with another string in selected file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/replaceregexp.html">
+     ReplaceRegExp</a></td>
+    <td><p>Directory-based task for replacing the occurrence of a given
+     regular expression with a substitution pattern in a file or set of
+     files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sync.html">Sync</a></td>
+    <td><p>Synchronize two directory trees.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/tempfile.html">Tempfile</a></td>
+    <td><p>Generates a name for a new temporary file and sets the specified
+     property to that name.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/touch.html">Touch</a></td>
+    <td><p>Changes the modification time of a file and possibly creates it at
+     the same time.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="extensions">Java2 Extensions Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-available.html">Jarlib-available</a></td>
+    <td><p>Check whether an extension is present in a FileSet or an
+      ExtensionSet. If the extension is present, the specified property is
+     set.</p>
+    </td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-display.html">Jarlib-display</a></td>
+    <td><p>Display the &quot;Optional Package&quot; and
+      &quot;Package Specification&quot; information contained within the
+      specified jars.</p>
+    </td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-manifest.html">Jarlib-manifest</a></td>
+    <td><p>Task to generate a manifest that declares all the dependencies
+      in manifest. The dependencies are determined by looking in the
+      specified path and searching for Extension/&quot;Optional Package&quot;
+      specifications in the manifests of the jars.</p>
+    </td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/jarlib-resolve.html">Jarlib-resolve</a></td>
+    <td><p>Try to locate a jar to satisfy an extension, and place the
+      location of the jar into the specified property.</p>
+    </td>
+  </tr>
+</table>
+
+<p></p>
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="log">Logging Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/recorder.html">Record</a></td>
+    <td><p>Runs a listener that records the logging output of the
+     build-process events to a file. Several recorders can exist
+     at the same time. Each recorder is associated with a file.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="mail">Mail Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/mail.html">Mail</a></td>
+    <td><p>A task to send SMTP email.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/mimemail.html">MimeMail</a></td>
+    <td><p><i>Deprecated</i>. Use the <a href="CoreTasks/mail.html">Mail</a>
+     task instead.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="misc">Miscellaneous Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/defaultexcludes.html">Defaultexcludes</a></td>
+    <td><p>Modify the list of default exclude patterns from within
+    your build file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/echo.html">Echo</a></td>
+    <td><p>Echoes text to <code>System.out</code> or to a file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/fail.html">Fail</a></td>
+    <td><p>Exits the current build by throwing a BuildException,
+     optionally printing additional information.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/genkey.html">GenKey</a></td>
+    <td><p>Generates a key in keystore.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/input.html">Input</a></td>
+    <td><p>Allows user interaction during the build process by displaying a
+     message and reading a line of input from the console.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/script.html">Script</a></td>
+    <td><p>Executes a script in a
+     <a href="http://jakarta.apache.org/bsf/"
+      target="_top">Apache BSF</a>-supported language.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sound.html">Sound</a></td>
+    <td><p>Plays a sound file at the end of the build, according to whether
+     the build failed or succeeded.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/splash.html">Splash</a></td>
+    <td><p>Displays a splash screen.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/sql.html">Sql</a></td>
+    <td><p>Executes a series of SQL statements via JDBC to a database.
+     Statements can either be read in from a text file using the
+     <code>src</code> attribute, or from between the enclosing SQL
+     tags.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/taskdef.html">Taskdef</a></td>
+    <td><p>Adds a task definition to the current project, such that this
+     new task can be used in the current project.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/tstamp.html">TStamp</a></td>
+    <td><p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and
+     <code>TODAY</code> properties in the current project, based on
+     the current date and time.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/typedef.html">Typedef</a></td>
+    <td><p>Adds a data-type definition to the current project, such that this
+     new type can be used in the current project.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/xmlvalidate.html">XmlValidate</a></td>
+    <td><p>Checks that XML files are valid (or only well-formed). This task
+     uses the XML parser that is currently used by Ant by default, but any SAX1/2
+     parser can be specified, if needed.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="net">.NET Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/dotnet.html">.NET Tasks</a></td>
+    <td><p>(See the documentation describing the .NET tasks.)</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="preproc">Pre-process Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/antlr.html">ANTLR</a></td>
+    <td><p>Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a>
+     Translator generator on a grammar file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/antstructure.html">AntStructure</a></td>
+    <td><p>Generates a DTD for Ant buildfiles that contains information
+     about all tasks currently known to Ant.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/import.html">Import</a></td>
+    <td><p>Import another build file and potentially override targets
+    in it with targets of your own.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/javacc.html">JavaCC</a></td>
+    <td><p>Invokes the
+     <a HREF="http://javacc.dev.java.net/" target="_top">
+     JavaCC</a> compiler-compiler on a grammar file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/javah.html">Javah</a></td>
+    <td><p>Generates JNI headers from a Java class.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jjdoc.html">JJDoc</a></td>
+    <td><p>Invokes the <a href="http://javacc.dev.java.net/">
+     JJDoc</a> documentation generator for the JavaCC compiler-compiler.
+     JJDoc takes a JavaCC parser specification and produces documentation
+     for the BNF grammar.  It can operate in three modes, determined by
+     command line options. This task only invokes JJDoc if the grammar file
+     is newer than the generated BNF grammar documentation.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/jjtree.html">JJTree</a></td>
+    <td><p>Invokes the <a href="http://javacc.dev.java.net/">
+     JJTree</a> preprocessor for the JavaCC compiler-compiler. It inserts
+     parse-tree building actions at various places in the JavaCC source that
+     it generates. The output of JJTree is run through JavaCC to create the
+     parser. This task only invokes JJTree if the grammar file is newer than
+     the generated JavaCC file.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/macrodef.html">Macrodef</a></td>
+    <td><p>Define a new task as a macro built-up upon other tasks.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/native2ascii.html">
+     Native2Ascii</a></td>
+    <td><p>Converts files from native encodings to ASCII with escaped Unicode.
+      A common usage is to convert source files maintained in a native
+      operating system encoding to ASCII, prior to compilation.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/presetdef.html">Presetdef</a></td>
+    <td><p>Define a new task by instrumenting an existing task with
+    default values for attributes or child elements.</p>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/translate.html">Translate</a></td>
+    <td><p>Identifies keys in files, delimited by special tokens, and
+     translates them with values read from resource bundles.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/style.html">XSLT</a></td>
+    <td><p>Processes a set of documents via XSLT.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="prop">Property Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/available.html">Available</a></td>
+    <td><p>Sets a property if a specified file, directory, class in the
+     classpath, or JVM system resource is available at runtime.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/basename.html">Basename</a></td>
+    <td><p>Sets a property to the last element of a specified path.
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/buildnumber.html">BuildNumber</a></td>
+    <td><p>Task that can be used to track build numbers.
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/condition.html">Condition</a></td>
+    <td><p>Sets a property if a certain condition holds true; this is a
+     generalization of <a href="CoreTasks/available.html">Available</a> and
+     <a href="CoreTasks/uptodate.html">Uptodate</a>.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/dirname.html">Dirname</a></td>
+    <td><p>Sets a property to the value of the specified file up to,
+     but not including, the last path element.
+  </tr>
+
+  <tr valign="top">
+    <td nowrap>
+    <a href="OptionalTasks/echoproperties.html">Echoproperties</a><br>
+
+    </td>
+    <td><p>Lists the current properties.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/loadfile.html">LoadFile</a></td>
+    <td><p>Loads a file into a property.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/loadproperties.html">LoadProperties</a></td>
+    <td><p>Load a file's contents as Ant properties. This task is
+     equivalent to using <code>&lt;property file=&quot;...&quot;/&gt;</code>
+     except that it supports nested <code>&lt;filterchain&gt;</code> elements,
+     and it cannot be specified outside a target.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/makeurl.html">MakeURL</a></td>
+    <td><p>Creates a URL (list) from a file/fileset or path</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/pathconvert.html">PathConvert</a></td>
+    <td><p>Converts a nested path, path reference, filelist reference, or
+     fileset reference to the form usable on a specified platform and/or
+     to a list of items separated by the specified separator and stores
+     the result in the specified property.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/property.html">Property</a></td>
+    <td><p>Sets a property (by name and value), or set of properties
+     (from a file or resource) in the project.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/propertyfile.html">
+     PropertyFile</a></td>
+    <td><p>Creates or modifies property files. Useful when wanting to make
+     unattended modifications to configuration files for application
+     servers and applications. Typically used for things such as
+     automatically generating a build number and saving it to a build
+     properties file, or doing date manipulation.<p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/uptodate.html">Uptodate</a></td>
+    <td><p>Sets a property if a given target file is newer than a set of
+     source files.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/whichresource.html">Whichresource</a></td>
+    <td><p>Find a class or resource.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/xmlproperty.html">XmlProperty</a></td>
+    <td><p>Loads property values from a well-formed XML file.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="remote">Remote Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/ftp.html">FTP</a></td>
+    <td><p>Implements a basic FTP client that can send, receive,
+     list, and delete files, and create directories.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/rexec.html">Rexec</a></td>
+    <td><p>Task to automate a remote rexec session.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/scp.html">Scp</a></td>
+    <td><p>Copy files to or from a remote server using SSH.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/setproxy.html">setproxy</a></td>
+    <td><p>Sets Java's web proxy properties, so that tasks and code run
+ in the same JVM can have through-the-firewall access to remote web sites.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sshexec.html">Sshexec</a></td>
+    <td><p>Execute a command on a remote server using SSH.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/telnet.html">Telnet</a></td>
+    <td><p>Task to automate a remote <i>telnet</i> session. This task uses
+     nested <code>&lt;read&gt;</code> and <code>&lt;write&gt;</code> tags
+     to indicate strings to wait for and specify text to send.</p></td>
+  </tr>
+
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="scm">SCM Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/cvs.html">Cvs</a></td>
+    <td><p>Handles packages/modules retrieved from a
+     <a href="http://www.nongnu.org/cvs/" target="_top">CVS</a>
+     repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/changelog.html">CvsChangeLog</a></td>
+    <td><p>Generates an XML report of the changes recorded in a
+     <a href="http://www.nongnu.org/cvs/" target="_top">CVS</a>
+     repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/cvspass.html">CVSPass</a></td>
+    <td><p>Adds entries to a .cvspass file. Adding entries to this file
+     has the same affect as a <i>cvs login</i> command.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="CoreTasks/cvstagdiff.html">CvsTagDiff</a></td>
+    <td><p>Generates an XML-formatted report file of the changes between
+    two tags or dates recorded in a <a href="http://www.nongnu.org/cvs/"
+    target="_top">CVS</a> repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/clearcase.html">ClearCase</a></td>
+    <td><p>Tasks to perform the ClearCase cleartool <i>checkin</i>, <i>checkout</i>,
+     <i>uncheckout</i>, <i>update</i>, <i>lock</i>, <i>unlock</i>, <i>mklbtype</i>, <i>rmtype</i>, <i>mklabel</i>, <i>mkattr</i>, <i>mkdir</i>, <i>mkelem</i>, and <i>mkbl</i> commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/ccm.html">Continuus/Synergy</a></td>
+    <td><p>Tasks to perform the Continuus <i>ccmcheckin</i>,
+     <i>ccmcheckout</i>, <i>ccmcheckintask</i>, <i>ccmreconfigure</i>, and
+     <i>ccmcreateTask</i> commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/vss.html">
+     Microsoft Visual SourceSafe</a></td>
+    <td><p>Tasks to perform the Visual SourceSafe <i>vssget</i>,
+     <i>vsslabel</i>, <i>vsshistory</i>, <i>vsscheckin</i>,
+     <i>vsscheckout</i>, <i>vssadd</i>, <i>vsscp</i>, and <i>vsscreate</i>
+     commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/perforce.html">Perforce</a></td>
+    <td><p>Tasks to perform the Perforce <i>p4sync</i>, <i>p4change</i>,
+     <i>p4edit</i>, <i>p4submit</i>, <i>p4have</i>, <i>p4label</i>,
+     <i>p4counter</i>, <i>p4reopen</i>, <i>p4revert</i>, and <i>p4add</i>
+     commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/pvcstask.html">Pvcs</a></td>
+    <td><p>Allows the user extract the latest edition of the source code
+     from a PVCS repository.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sos.html">SourceOffSite</a></td>
+    <td><p>Tasks to perform the SourceOffSite <i>sosget</i>, <i>soslabel</i>,
+     <i>soscheckin</i>, and <i>soscheckout</i> commands.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/starteam.html">StarTeam</a></td>
+    <td><p>Tasks to perform the StarTeam <i>stcheckout</i>, <i>stcheckin</i>,
+     <i>stlabel</i>, and <i>stlist</i> commands. The
+     <a href="OptionalTasks/starteam.html#starteam">Starteam</a> task
+     is deprecated; use
+     <a href="OptionalTasks/starteam.html#stcheckout">STCheckout</a>
+     instead.</p></td>
+  </tr>
+</table>
+
+<p></p>
+<table width="100%" border="0" cellpadding="4" cellspacing="0">
+<td align="left"><b>
+<font size="+0" face="arial,helvetica,sanserif">
+<a name="testing">Testing Tasks</a>
+</font></b></td>
+<font size="-1" face="arial,helvetica,sanserif">
+<td align="right"><b><a href="#top">[Back to top]</a></b></td>
+</font>
+</table>
+<table width="100%" border="1" cellpadding="4" cellspacing="0">
+  <tr valign="top">
+    <td nowrap><b>Task Name</b></td>
+    <td><b>Description</b></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/junit.html">Junit</a></td>
+    <td><p>Runs tests from the <a href="http://www.junit.org">Junit</a>
+     testing framework. This task has been tested with JUnit 3.0 up to
+     JUnit 3.7; it won't work with versions prior to JUnit 3.0.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/junitreport.html">JunitReport</a></td>
+    <td><p>Merges the individual XML files generated by the
+     <a href="OptionalTasks/junit.html">Junit</a> task and applies a
+     stylesheet on the resulting merged document to provide a browsable
+     report of the testcases results.</p></td>
+  </tr>
+
+</table>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/toc.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/toc.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/toc.html	(revision 14989)
@@ -0,0 +1,48 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2>Table of Contents</h2>
+<a href="intro.html">Introduction</a><br>
+<!--a href="installlist.html" target="navFrame">Installing Ant</a><br-->
+<a href="usinglist.html" target="navFrame">Using Ant</a><br>
+<!--a href="runninglist.html" target="navFrame">Running Ant</a><br-->
+<a href="anttaskslist.html" target="navFrame"><b>Ant Tasks</b></a><br>
+<a href="conceptstypeslist.html" target="navFrame">Concepts and Types</a><br>
+<a href="listeners.html" target="mainFrame">Loggers &amp; Listeners</a><br>
+<!--a href="ide.html" target="navFrame">Editor/IDE Integration</a><br-->
+<a href="developlist.html" target="navFrame">Developing with Ant</a><br>
+<a href="tutorials.html" target="navFrame">Tutorials</a><br>
+<a href="api/index.html" target="_top">Ant API</a><br>
+<a href="LICENSE">License</a><br>
+<a href="feedback.html">Feedback and Troubleshooting</a><br>
+<br>
+<a href="credits.html">Authors</a><br>
+<br>
+<a href="../../index.html" target="_top"><img class="but" src="../../images/ant-install-small.png"></a>
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorial-HelloWorldWithAnt.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorial-HelloWorldWithAnt.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorial-HelloWorldWithAnt.html	(revision 14989)
@@ -0,0 +1,525 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+  <title>Tutorial: Hello World with Ant</title>
+  <meta name="author" content="Jan Matï¿œne">
+  <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+  <style type="text/css">
+  <!--
+  .code { background: #EFEFEF; margin-top: }
+  .output { color: #FFFFFF; background: #837A67; }
+  -->
+  </style>
+</head>
+<body>
+<h1>Tutorial: Hello World with Ant</h1>
+
+<p>This document provides a step by step tutorial for starting java programming with Ant.
+It does <b>not</b> contain deeper knowledge about Java or Ant. This tutorial has the goal
+to let you see, how to do the easiest steps in Ant.</p>
+
+
+
+<h2>Content</h2>
+<p><ul>
+<li><a href="#prepare">Preparing the project</a></li>
+<li><a href="#four-steps">Enhance the build file</a></li>
+<li><a href="#enhance">Enhance the build file</a></li>
+<li><a href="#ext-libs">Using external libraries</a></li>
+<li><a href="#resources">Resources</a></li>
+</ul></p>
+
+
+<a name="prepare"></a>
+<h2>Preparing the project</h2>
+<p>We want to separate the source from the generated files, so our java source files will
+be in <tt>src</tt> folder. All generated files should be under <tt>build</tt>, and there
+splitted into several subdirectories for the individual steps: <tt>classes</tt> for our compiled
+files and <tt>jar</tt> for our own JAR-file.</p>
+<p>We have to create only the <tt>src</tt> directory. (Because I am working on Windows, here is 
+the win-syntax - translate to your shell):</p>
+
+<pre class="code">
+md src
+</pre>
+
+<p>The following simple Java class just prints a fixed message out to STDOUT,
+so just write this code into <tt>src\oata\HelloWorld.java</tt>.</p>
+
+<pre class="code">
+package oata;
+
+public class HelloWorld {
+    public static void main(String[] args) {
+        System.out.println("Hello World");
+    }
+}
+</pre>
+
+<p>Now just try to compile and run that:
+<pre class="code">
+md build\classes
+javac -sourcepath src -d build\classes src\oata\HelloWorld.java
+java -cp build\classes oata.HelloWorld
+</pre>
+which will result in
+<pre class="output">
+Hello World
+</pre>
+</p>
+
+<p>Creating a jar-file is not very difficult. But creating a <i>startable</i> jar-file needs more steps: create a
+manifest-file containing the start class, creating the target directory and archiving the files.</p>
+<pre class="code">
+echo Main-Class: oata.HelloWorld&gt;myManifest
+md build\jar
+jar cfm build\jar\HelloWorld.jar myManifest -C build\classes .
+java -jar build\jar\HelloWorld.jar
+</pre>
+
+<p><b>Note:</b> Do not have blanks around the &gt;-sign in the <tt>echo Main-Class</tt> instruction because it would 
+falsify it!</p>
+
+
+<a name="four-steps"></a>
+<h2>Four steps to a running application</h2>
+<p>After finishing the java-only step we have to think about our build process. We <i>have</i> to compile our code, otherwise we couldn't
+start the program. Oh - "start" - yes, we could provide a target for that. We <i>should</i> package our application.
+Now it's only one class - but if you want to provide a download, no one would download several hundreds files ...
+(think about a complex Swing GUI - so let us create a jar file. A startable jar file would be nice ... And it's a
+good practise to have a "clean" target, which deletes all the generated stuff. Many failures could be solved just
+by a "clean build".</p>
+
+<p>By default Ant uses <tt>build.xml</tt> as the name for a buildfile, so our <tt>.\build.xml</tt> would be:</p>
+<pre class="code">
+&lt;project&gt;
+
+    &lt;target name="clean"&gt;
+        &lt;delete dir="build"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile"&gt;
+        &lt;mkdir dir="build/classes"/&gt;
+        &lt;javac srcdir="src" destdir="build/classes"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar"&gt;
+        &lt;mkdir dir="build/jar"/&gt;
+        &lt;jar destfile="build/jar/HelloWorld.jar" basedir="build/classes"&gt;
+            &lt;manifest&gt;
+                &lt;attribute name="Main-Class" value="oata.HelloWorld"/&gt;
+            &lt;/manifest&gt;
+        &lt;/jar&gt;
+    &lt;/target&gt;
+
+    &lt;target name="run"&gt;
+        &lt;java jar="build/jar/HelloWorld.jar" fork="true"/&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre>
+
+<p>Now you can compile, package and run the application via</p>
+<pre class="code">
+ant compile
+ant jar
+ant run
+</pre>
+<p>Or shorter with</p>
+<pre class="code">
+ant compile jar run
+</pre>
+
+<p>While having a look at the buildfile, we will see some similar steps between Ant and the java-only commands:
+<table>
+<tr>
+  <th>java-only</th>
+  <th>Ant</th>
+</tr>
+<tr>
+  <td valign="top"><pre class="code">
+md build\classes
+javac
+    -sourcepath src
+    -d build\classes
+    src\oata\HelloWorld.java
+echo Main-Class: oata.HelloWorld>mf
+md build\jar
+jar cfm
+    build\jar\HelloWorld.jar
+    mf
+    -C build\classes
+    .
+
+
+
+java -jar build\jar\HelloWorld.jar
+  </pre></td>
+  <td valign="top"><pre class="code">
+&lt;mkdir dir="build/classes"/&gt;
+&lt;javac
+    srcdir="src"
+    destdir="build/classes"/&gt;
+<i>&lt;!-- automatically detected --&gt;</i>
+<i>&lt;!-- obsolete; done via manifest tag --&gt;</i>
+&lt;mkdir dir="build/jar"/&gt;
+&lt;jar
+    destfile="build/jar/HelloWorld.jar"
+
+    basedir="build/classes"&gt;
+    &lt;manifest&gt;
+        &lt;attribute name="Main-Class" value="oata.HelloWorld"/&gt;
+    &lt;/manifest&gt;
+&lt;/jar&gt;
+&lt;java jar="build/jar/HelloWorld.jar" fork="true"/&gt;
+  </pre></td>
+</tr></table>
+</p>
+
+
+
+<a name="enhance"></a>
+<h2>Enhance the build file</h2>
+<p>Now we have a working buildfile we could do some enhancements: many time you are referencing the
+same directories, main-class and jar-name are hard coded, and while invocation you have to remember
+the right order of build steps.</p>
+<p>The first and second point would be addressed with <i>properties</i>, the third with a special property - an attribute
+of the &lt;project&gt;-tag and the fourth problem can be solved using dependencies.</p>
+
+
+<pre class="code">
+&lt;project name="HelloWorld" basedir="." default="main"&gt;
+
+    &lt;property name="src.dir"     value="src"/&gt;
+
+    &lt;property name="build.dir"   value="build"/&gt;
+    &lt;property name="classes.dir" value="${build.dir}/classes"/&gt;
+    &lt;property name="jar.dir"     value="${build.dir}/jar"/&gt;
+
+    &lt;property name="main-class"  value="oata.HelloWorld"/&gt;
+
+
+
+    &lt;target name="clean"&gt;
+        &lt;delete dir="${build.dir}"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar" depends="compile"&gt;
+        &lt;mkdir dir="${jar.dir}"/&gt;
+        &lt;jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"&gt;
+            &lt;manifest&gt;
+                &lt;attribute name="Main-Class" value="${main-class}"/&gt;
+            &lt;/manifest&gt;
+        &lt;/jar&gt;
+    &lt;/target&gt;
+
+    &lt;target name="run" depends="jar"&gt;
+        &lt;java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="clean-build" depends="clean,jar"/&gt;
+
+    &lt;target name="main" depends="clean,run"/&gt;
+
+&lt;/project&gt;
+</pre>
+
+
+<p>Now it's easier, just do a <tt class="code">ant</tt> and you will get</p>
+<pre class="output">
+Buildfile: build.xml
+
+clean:
+
+compile:
+    [mkdir] Created dir: C:\...\build\classes
+    [javac] Compiling 1 source file to C:\...\build\classes
+
+jar:
+    [mkdir] Created dir: C:\...\build\jar
+      [jar] Building jar: C:\...\build\jar\HelloWorld.jar
+
+run:
+     [java] Hello World
+
+main:
+
+BUILD SUCCESSFUL
+</pre>
+
+
+<a name="ext-libs"></a>
+<h2>Using external libraries</h2>
+<p>Somehow told us not to use syso-statements. For log-Statements we should use a Logging-API - customizable on a high
+degree (including switching off during usual life (= not development) execution). We use Log4J for that, because <ul>
+<li>it is not part of the JDK (1.4+) and we want to show how to use external libs</li>
+<li>it can run under JDK 1.2 (as Ant)</li>
+<li>it's highly configurable</li>
+<li>it's from Apache ;-)</li>
+</ul></p>
+<p>We store our external libraries in a new directory <tt>lib</tt>. Log4J can be
+<a href="http://www.apache.org/dist/logging/log4j/1.2.13/logging-log4j-1.2.13.zip">downloaded [1]</a> from Logging's Homepage.
+Create the <tt>lib</tt> directory and extract the log4j-1.2.9.jar into that lib-directory. After that we have to modify
+our java source to use that library and our buildfile so that this library could be accessed during compilation and run.
+</p>
+<p>Working with Log4J is documented inside its manual. Here we use the <i>MyApp</i>-example from the
+<a href="http://logging.apache.org/log4j/docs/manual.html">Short Manual [2]</a>. First we have to modify the java source to
+use the logging framework:</p>
+
+<pre class="code">
+package oata;
+
+<b>import org.apache.log4j.Logger;</b>
+<b>import org.apache.log4j.BasicConfigurator;</b>
+
+public class HelloWorld {
+    <b>static Logger logger = Logger.getLogger(HelloWorld.class);</b>
+
+    public static void main(String[] args) {
+        <b>BasicConfigurator.configure();</b>
+        <font color="blue"><b>logger.info("Hello World");</b></font>          // the old SysO-statement
+    }
+}
+</pre>
+
+<p>Most of the modifications are "framework overhead" which has to be done once. The blue line is our "old System-out"
+statement.</p>
+<p>Don't try to run <tt>ant</tt> - you will only get lot of compiler errors. Log4J is not inside the classpath so we have
+to do a little work here. But do not change the CLASSPATH environment variable! This is only for this project and maybe
+you would break other environments (this is one of the most famous mistakes when working with Ant). We introduce Log4J
+(or to be more precise: all libraries (jar-files) which are somewhere under <tt>.\lib</tt>) into our buildfile:</p>
+
+<pre class="code">
+&lt;project name="HelloWorld" basedir="." default="main"&gt;
+    ...
+    <b>&lt;property name="lib.dir"     value="lib"/&gt;</b>
+
+    <b>&lt;path id="classpath"&gt;</b>
+        <b>&lt;fileset dir="${lib.dir}" includes="**/*.jar"/&gt;</b>
+    <b>&lt;/path&gt;</b>
+
+    ...
+
+    &lt;target name="compile"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}" <b>classpathref="classpath"</b>/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="run" depends="jar"&gt;
+        &lt;java fork="true" <b>classname="${main-class}"</b>&gt;
+            <b>&lt;classpath&gt;</b>
+                <b>&lt;path refid="classpath"/&gt;</b>
+                <font color="red"><b>&lt;path location="${jar.dir}/${ant.project.name}.jar"/&gt;</b></font>
+            <b>&lt;/classpath&gt;</b>
+        &lt;/java&gt;
+    &lt;/target&gt;
+
+    ...
+
+&lt;/project&gt;
+</pre>
+
+<p>In this example we start our application not via its Main-Class manifest-attribute, because we could not provide
+a jarname <i>and</i> a classpath. So add our class in the red line to the already defined path and start as usual. Running
+<tt>ant</tt> would give (after the usual compile stuff):</p>
+
+<pre class="output">
+[java] 0 [main] INFO oata.HelloWorld  - Hello World
+</pre>
+
+<p>What's that? <ul>
+<li><i>[java]</i> Ant task running at the moment</li>
+<li><i>0</i> <font size="-1">sorry don't know - some Log4J stuff</font></li>
+<li><i>[main]</i> the running thread from our application </li>
+<li><i>INFO</i> log level of that statement</i>
+<li><i>oata.HelloWorld</i> source of that statement</i>
+<li><i>-</i> separator</li>
+<li><i>Hello World</i> the message</li>
+</ul>
+For another layout ... have a look inside Log4J's documentation about using other PatternLayout's.</p>
+
+
+<a name="config-files"></a>
+<h2>Configuration files</h2>
+<p>Why we have used Log4J? "It's highly configurable"? No - all is hard coded! But that is not the debt of Log4J - it's
+ours. We had coded <tt>BasicConfigurator.configure();</tt> which implies a simple, but hard coded configuration. More
+confortable would be using a property file. In the java source delete the BasicConfiguration-line from the main() method
+(and the related import-statement). Log4J will search then for a configuration as described in it's manual. Then create 
+a new file <tt>src/log4j.properties</tt>. That's the default name for Log4J's configuration and using that name would make 
+life easier - not only the framework knows what is inside, you too!</p>
+
+<pre class="code">
+log4j.rootLogger=DEBUG, <b>stdout</b>
+
+log4j.appender.<b>stdout</b>=org.apache.log4j.ConsoleAppender
+
+log4j.appender.<b>stdout</b>.layout=org.apache.log4j.PatternLayout
+log4j.appender.<b>stdout</b>.layout.ConversionPattern=<font color="blue"><b>%m%n</b></font>
+</pre>
+
+<p>This configuration creates an output channel ("Appender") to console named as <tt>stdout</tt> which prints the
+message (%m) followed by a line feed (%n) - same as the earlier System.out.println() :-) Oooh kay - but we haven't
+finished yet. We should deliver the configuration file, too. So we change the buildfile:</p>
+
+<pre class="code">
+    ...
+    &lt;target name="compile"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/&gt;
+        <b>&lt;copy todir="${classes.dir}"&gt;</b>
+            <b>&lt;fileset dir="${src.dir}" excludes="**/*.java"/&gt;</b>
+        <b>&lt;/copy&gt;</b>
+    &lt;/target&gt;
+    ...
+</pre>
+
+<p>This copies all resources (as long as they haven't the suffix ".java") to the build directory, so we could
+start the application from that directory and these files will included into the jar.</p>
+
+
+<a name="junit"></a>
+<h2>Testing the class</h2>
+<p>In this step we will introduce the usage of the JUnit [3] testframework in combination with Ant. Because Ant
+has a built-in JUnit 3.8.2 you could start directly using it. Write a test class in <tt>src\HelloWorldTest.java</tt>: </p>
+
+<pre class="code">
+public class HelloWorldTest extends junit.framework.TestCase {
+
+    public void testNothing() {
+    }
+    
+    public void testWillAlwaysFail() {
+        fail("An error message");
+    }
+    
+}</pre>
+
+<p>Because we dont have real business logic to test, this test class is very small: just show how to start. For 
+further information see the JUnit documentation [3] and the manual of <a href="OptionalTasks/junit.html">junit</a> task.
+Now we add a junit instruction to our buildfile:</p>
+
+<pre class="code">
+    ...
+
+    &lt;target name="run" depends="jar"&gt;
+        &lt;java fork="true" classname="${main-class}"&gt;
+            &lt;classpath&gt;
+                &lt;path refid="classpath"/&gt;
+                &lt;path <b>id="application"</b> location="${jar.dir}/${ant.project.name}.jar"/&gt;
+            &lt;/classpath&gt;
+        &lt;/java&gt;
+    &lt;/target&gt;
+    
+    <b>&lt;target name="junit" depends="jar"&gt;
+        &lt;junit printsummary="yes"&gt;
+            &lt;classpath&gt;
+                &lt;path refid="classpath"/&gt;
+                &lt;path refid="application"/&gt;
+            &lt;/classpath&gt;
+            
+            &lt;batchtest fork="yes"&gt;
+                &lt;fileset dir="${src.dir}" includes="*Test.java"/&gt;
+            &lt;/batchtest&gt;
+        &lt;/junit&gt;
+    &lt;/target&gt;</b>
+
+    ...
+
+</pre>
+
+<p>We reuse the path to our own jar file as defined in run-target by giving it an ID.
+The <tt>printsummary=yes</tt> lets us see more detailed information than just a "FAILED" or "PASSED" message.
+How much tests failed? Some errors? Printsummary lets us know. The classpath is set up to find our classes.
+To run tests the <tt>batchtest</tt> here is used, so you could easily add more test classes in the future just
+by naming them <tt>*Test.java</tt>. This is a common naming scheme.</p>
+
+<p>After a <tt class="code">ant junit</tt> you'll get:</p>
+
+<pre class="output">
+...
+junit:
+    [junit] Running HelloWorldTest
+    [junit] Tests run: 2, Failures: 1, Errors: 0, Time elapsed: 0,01 sec
+    [junit] Test HelloWorldTest FAILED
+
+BUILD SUCCESSFUL
+...
+</pre>
+
+<p>We can also produce a report. Something that you (and other) could read after closing the shell .... 
+There are two steps: 1. let &lt;junit&gt; log the information and 2. convert these to something readable (browsable).<p>
+
+<pre class="code">
+    ...
+    <b>&lt;property name="report.dir"  value="${build.dir}/junitreport"/&gt;</b>
+    ...
+    &lt;target name="junit" depends="jar"&gt;
+        <b>&lt;mkdir dir="${report.dir}"/&gt;</b>
+        &lt;junit printsummary="yes"&gt;
+            &lt;classpath&gt;
+                &lt;path refid="classpath"/&gt;
+                &lt;path refid="application"/&gt;
+            &lt;/classpath&gt;
+            
+            <b>&lt;formatter type="xml"/&gt;</b>
+            
+            &lt;batchtest fork="yes" <b>todir="${report.dir}"</b>&gt;
+                &lt;fileset dir="${src.dir}" includes="*Test.java"/&gt;
+            &lt;/batchtest&gt;
+        &lt;/junit&gt;
+    &lt;/target&gt;
+    
+    <b>&lt;target name="junitreport"&gt;
+        &lt;junitreport todir="${report.dir}"&gt;
+            &lt;fileset dir="${report.dir}" includes="TEST-*.xml"/&gt;
+            &lt;report todir="${report.dir}"/&gt;
+        &lt;/junitreport&gt;
+    &lt;/target&gt;</b>
+   
+</pre>
+
+<p>Because we would produce a lot of files and these files would be written to the current directory by default,
+we define a report directory, create it before running the <tt>junit</tt> and redirect the logging to it. The log format
+is XML so <tt>junitreport</tt> could parse it. In a second target <tt>junitreport</tt> should create a browsable 
+HTML-report for all generated xml-log files in the report directory. Now you can open the ${report.dir}\index.html and
+see the result (looks something like JavaDoc).<br>
+Personally I use two different targets for junit and junitreport. Generating the HTML report needs some time and you dont
+need the HTML report just for testing, e.g. if you are fixing an error or a integration server is doing a job.
+</p>
+
+
+
+
+<a name="resources"></a>
+<h2>Resources</h2>
+<pre>
+    [1] <a href="http://www.apache.org/dist/logging/log4j/1.2.13/logging-log4j-1.2.13.zip">http://www.apache.org/dist/logging/log4j/1.2.13/logging-log4j-1.2.13.zip</a>
+    [2] <a href="http://logging.apache.org/log4j/docs/manual.html">http://logging.apache.org/log4j/docs/manual.html</a>
+    [3] <a href="http://www.junit.org/index.htm">http://www.junit.org/index.htm</a>
+</pre>
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorial-tasks-filesets-properties.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorial-tasks-filesets-properties.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorial-tasks-filesets-properties.html	(revision 14989)
@@ -0,0 +1,987 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+
+<title>Tutorial: Tasks using Properties, Filesets &amp; Paths</title>
+  <meta name="author" content="Jan Mat&egrave;rne">
+  <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+  <style type="text/css">
+  <!--
+  .code { background: #EFEFEF; margin-top: }
+  .output { color: #FFFFFF; background: #837A67; }
+  -->
+  </style>
+</head>
+<body>
+<h1>Tutorial: Tasks using Properties, Filesets &amp; Paths</h1>
+
+<p>After reading the tutorial about <a href="tutorial-writing-tasks.html">writing
+tasks [1]</a> this tutorial explains how to get and set properties and how to use
+nested filesets and paths. Finally it explains how to contribute tasks to Ant.</p>
+
+<h2>Content</h2>
+<p><ul>
+<li><a href="#goal">The goal</a></li>
+<li><a href="#buildenvironment">Build environment</a></li>
+<li><a href="#propertyaccess">Property access</a></li>
+<li><a href="#filesets">Using filesets</a></li>
+<li><a href="#path">Using nested paths</a></li>
+<li><a href="#returning-list">Returning a list</a></li>
+<li><a href="#documentation">Documentation</a></li>
+<li><a href="#contribute">Contribute the new task</a></li>
+<li><a href="#resources">Resources</a></li>
+</ul></p>
+
+
+<h2><a name="goal">The goal</a></h2>
+<p>The goal is to write a task, which searchs in a path for a file and saves the
+location of that file in a property.</p>
+
+
+<h2><a name="buildenvironment">Build environment</a></h2>
+<p>We can use the buildfile from the other tutorial and modify it a little bit.
+That's the advantage of using properties - we can reuse nearly the whole script. :-)</p>
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="<b>FindTask</b>" basedir="." default="test"&gt;
+    ...
+    &lt;target name="use.init" description="Taskdef's the <b>Find</b>-Task" depends="jar"&gt;
+        &lt;taskdef name="<b>find</b>" classname="<b>Find</b>" classpath="${ant.project.name}.jar"/&gt;
+    &lt;/target&gt;
+
+    <b>&lt;!-- the other use.* targets are deleted --&gt;</b>
+    ...
+&lt;/project&gt;
+</pre>
+
+<p>The buildfile is in the archive <a href="tutorial-tasks-filesets-properties.zip">
+tutorial-tasks-filesets-properties.zip [2]</a> in <tt>/build.xml.01-propertyaccess</tt>
+(future version saved as *.02..., final version as build.xml; same for sources).</p>
+
+
+<h2><a name="propertyaccess">Property access</a></h2>
+<p>Our first step is to set a property to a value and print the value of that property.
+So our scenario would be
+<pre class="code">
+    &lt;find property="test" value="test-value"/&gt;
+    &lt;find print="test"/&gt;
+</pre>
+ok, can be rewritten with the core tasks
+<pre class="code">
+    &lt;property name="test" value="test-value"/&gt;
+    &lt;echo message="${test}"/&gt;
+</pre>
+but I have to start on known ground :-)</p>
+<p>So what to do? Handling three attributes (property, value, print) and an execute method.
+Because this is only an introduction example I don't do much checking:
+
+<pre class="code">
+import org.apache.tools.ant.BuildException;
+
+public class Find extends Task {
+
+    private String property;
+    private String value;
+    private String print;
+
+    public void setProperty(String property) {
+        this.property = property;
+    }
+
+    // setter for value and print
+
+    public void execute() {
+        if (print != null) {
+            String propValue = <b>getProject().getProperty(print)</b>;
+            log(propValue);
+        } else {
+            if (property == null) throw new BuildException("property not set");
+            if (value    == null) throw new BuildException("value not set");
+            <b>getProject().setNewProperty(property, value)</b>;
+        }
+    }
+}
+</pre>
+
+As said in the other tutorial, the property access is done via Project instance.
+We get this instance via the public <tt>getProject()</tt> method which we inherit from
+<tt>Task</tt> (more precise from ProjectComponent). Reading a property is done via
+<tt>getProperty(<i>propertyname</i>)</tt> (very simple, isn't it?). This property returns
+the value as String or <i>null</i> if not set.<br>
+Setting a property is ... not really difficult, but there is more than one setter. You can
+use the <tt>setProperty()</tt> method which will do the job like expected. But there is
+a golden rule in Ant: <i>properties are immutable</i>. And this method sets the property
+to the specified value - whether it has a value before that or not. So we use another
+way. <tt>setNewProperty()</tt> sets the property only if there is no property with that
+name. Otherwise a message is logged.</p>
+
+<p><i>(by the way: a short word to ants "namespaces" (don't
+be confused with xml namespaces:
+an <code>&lt;antcall&gt;</code> creates a new space for property names. All properties from the caller
+are passed to the callee, but the callee can set its own properties without notice by the
+caller.)</i></p>
+
+<p>There are some other setter, too (but I haven't used them, so I can't say something
+to them, sorry :-)</p>
+
+<p>After putting our two line example from above into a target names <tt>use.simple</tt>
+we can call that from our testcase:
+
+<pre class="code">
+import org.apache.tools.ant.BuildFileTest;
+
+public class FindTest extends BuildFileTest {
+
+    public FindTest(String name) {
+        super(name);
+    }
+
+    public void setUp() {
+        configureProject("build.xml");
+    }
+
+    public void testSimple() {
+        <b>expectLog("use.simple", "test-value");</b>
+    }
+}
+</pre>
+
+and all works fine.</p>
+
+
+
+<h2><a name="filesets">Using filesets</a></h2>
+<p>Ant provides a common way of bundling files: the fileset. Because you are reading
+this tutorial I think you know them and I don't have to spend more explanations about
+their usage in buildfiles. Our goal is to search a file in path. And on this step the
+path is simply a fileset (or more precise: a collection of filesets). So our usage
+would be
+<pre class="code">
+    &lt;find file="ant.jar" location="location.ant-jar"&gt;
+        &lt;fileset dir="${ant.home}" includes="**/*.jar"/&gt;
+    &lt;/find&gt;
+</pre>
+</p>
+
+<p>What do we need? A task with two attributes (file, location) and nested
+filesets. Because we had attribute handling already explained in the example above and the
+handling of nested elements is described in the other tutorial the code should be very easy:
+<pre class="code">
+public class Find extends Task {
+
+    private String file;
+    private String location;
+    private Vector filesets = new Vector();
+
+    public void setFile(String file) {
+        this.file = file;
+    }
+
+    public void setLocation(String location) {
+        this.location = location;
+    }
+
+    public void addFileset(FileSet fileset) {
+        filesets.add(fileset);
+    }
+
+    public void execute() {
+    }
+}
+</pre>
+Ok - that task wouldn't do very much, but we can use it in the described manner without
+failure. On next step we have to implement the execute method. And before that we will
+implement the appropriate testcases (TDD - test driven development).</p>
+
+<p>In the other tutorial we have reused the already written targets of our buildfile.
+Now we will configure most of the testcases via java code (sometimes it's much easier
+to write a target than doing it via java coding). What can be tested?<ul>
+<li>not valid configured task (missing file, missing location, missing fileset)</li>
+<li>don't find a present file</li>
+<li>behaviour if file can't be found</li>
+</ul>
+Maybe you find some more testcases. But this is enough for now.<br>
+For each of these points we create a <tt>testXX</tt> method.</p>
+
+<pre class="code">
+public class FindTest extends BuildFileTest {
+
+    ... // constructor, setUp as above
+
+    public void testMissingFile() {
+        <b>Find find = new Find();</b>
+        try {
+            <b>find.execute();</b>
+            fail("No 'no-file'-exception thrown.");
+        } catch (Exception e) {
+            // exception expected
+            String expected = "file not set";
+            assertEquals("Wrong exception message.", expected, e.getMessage());
+        }
+    }
+
+    public void testMissingLocation() {
+        Find find = new Find();
+        <b>find.setFile("ant.jar");</b>
+        try {
+            find.execute();
+            fail("No 'no-location'-exception thrown.");
+        } catch (Exception e) {
+            ... // similar to testMissingFile()
+        }
+    }
+
+    public void testMissingFileset() {
+        Find find = new Find();
+        find.setFile("ant.jar");
+        find.setLocation("location.ant-jar");
+        try {
+            find.execute();
+            fail("No 'no-fileset'-exception thrown.");
+        } catch (Exception e) {
+            ... // similar to testMissingFile()
+        }
+    }
+
+    public void testFileNotPresent() {
+        executeTarget("testFileNotPresent");
+        String result = getProject().getProperty("location.ant-jar");
+        assertNull("Property set to wrong value.", result);
+    }
+
+    public void testFilePresent() {
+        executeTarget("testFilePresent");
+        String result = getProject().getProperty("location.ant-jar");
+        assertNotNull("Property not set.", result);
+        assertTrue("Wrong file found.", result.endsWith("ant.jar"));
+    }
+}
+</pre>
+
+<p>If we run this test class all test cases (except <i>testFileNotPresent</i>) fail. Now we
+can implement our task, so that these test cases will pass.</p>
+
+<pre class="code">
+    protected void validate() {
+        if (file==null) throw new BuildException("file not set");
+        if (location==null) throw new BuildException("location not set");
+        if (filesets.size()&lt;1) throw new BuildException("fileset not set");
+    }
+
+    public void execute() {
+        validate();                                                             // 1
+        String foundLocation = null;
+        for(Iterator itFSets = filesets.iterator(); itFSets.hasNext(); ) {      // 2
+            FileSet fs = (FileSet)itFSets.next();
+            DirectoryScanner ds = fs.getDirectoryScanner(getProject());         // 3
+            String[] includedFiles = ds.getIncludedFiles();
+            for(int i=0; i&lt;includedFiles.length; i++) {
+                String filename = includedFiles[i].replace('\\','/');           // 4
+                filename = filename.substring(filename.lastIndexOf("/")+1);
+                if (foundLocation==null &amp;&amp; file.equals(filename)) {
+                    File base  = ds.getBasedir();                               // 5
+                    File found = new File(base, includedFiles[i]);
+                    foundLocation = found.getAbsolutePath();
+                }
+            }
+        }
+        if (foundLocation!=null)                                                // 6
+            getProject().setNewProperty(location, foundLocation);
+    }
+</pre>
+
+<p>On <b>//1</b> we check the prerequisites for our task. Doing that in a <tt>validate</tt>-method
+is a common way, because we separate the prerequisites from the real work. On <b>//2</b> we iterate
+over all nested filesets. If we don't want to handle multiple filesets, the <tt>addFileset()</tt>
+method has to reject the further calls. We can get the result of a fileset via its DirectoryScanner
+like done in <b>//3</b>. After that we create a plattform independend String representation of
+the file path (<b>//4</b>, can be done in other ways of course). We have to do the <tt>replace()</tt>,
+because we work with a simple string comparison. Ant itself is platform independant and can
+therefore run on filesystems with slash (/, e.g. Linux) or backslash (\, e.g. Windows) as
+path separator. Therefore we have to unify that. If we found our file we create an absolute
+path representation on <b>//5</b>, so that we can use that information without knowing the basedir.
+(This is very important on use with multiple filesets, because they can have different basedirs
+and the return value of the directory scanner is relative to its basedir.) Finally we store the
+location of the file as property, if we had found one (<b>//6</b>).</p>
+
+<p>Ok, much more easier in this simple case would be to add the <i>file</i> as additional
+<i>include</i> element to all filesets. But I wanted to show how to handle complex situations
+whithout being complex :-)</p>
+
+<p>The test case uses the ant property <i>ant.home</i> as reference. This property is set by the
+<tt>Launcher</tt> class which starts ant. We can use that property in our buildfiles as a
+<a href="using.html#built-in-props">build-in property [3]</a>. But if we create a new ant
+environment we have to set that value for our own. And we use the <code>&lt;junit&gt;</code> task in fork-mode.
+Therefore we have do modify our buildfile:
+<pre class="code">
+    &lt;target name="junit" description="Runs the unit tests" depends="jar"&gt;
+        &lt;delete dir="${junit.out.dir.xml}"/&gt;
+        &lt;mkdir  dir="${junit.out.dir.xml}"/&gt;
+        &lt;junit printsummary="yes" haltonfailure="no"&gt;
+            &lt;classpath refid="classpath.test"/&gt;
+            <b>&lt;sysproperty key="ant.home" value="${ant.home}"/&gt;</b>
+            &lt;formatter type="xml"/&gt;
+            &lt;batchtest fork="yes" todir="${junit.out.dir.xml}"&gt;
+                &lt;fileset dir="${src.dir}" includes="**/*Test.java"/&gt;
+            &lt;/batchtest&gt;
+        &lt;/junit&gt;
+    &lt;/target&gt;
+</pre>
+
+
+<h2><a name="path">Using nested paths</a></h2>
+<p>A task providing support for filesets is a very comfortable one. But there is another
+possibility of bundling files: the <code>&lt;path&gt;</code>. Fileset are easy if the files are all under
+a common base directory. But if this is not the case you have a problem. Another disadvantage
+is its speed: if you have only a few files in a huge directory structure, why not use a
+<code>&lt;filelist&gt;</code> instead? <code>&lt;path&gt;</code>s combines these datatypes in that way that a path contains
+other paths, filesets, dirsets and filelists. This is why <a href="http://ant-contrib.sourceforge.net/">
+Ant-Contribs [4]</a> <code>&lt;foreach&gt;</code> task is modified to support paths instead of filesets. So we want that,
+too.</p>
+
+<p>Changing from fileset to path support is very easy:</p>
+<pre class="code">
+<i><b>Change java code from:</b></i>
+    private Vector filesets = new Vector();
+    public void addFileset(FileSet fileset) {
+        filesets.add(fileset);
+    }
+<i><b>to:</b></i>
+    private Vector paths = new Vector();                      *1
+    public void add<b>Path</b>(<b>Path</b> path) {                          *2
+        paths.add(path);
+    }
+<i><b>and build file from:</b></i>
+    &lt;find file="ant.jar" location="location.ant-jar"&gt;
+        &lt;fileset dir="${ant.home}" includes="**/*.jar"/&gt;
+    &lt;/find&gt;
+<i><b>to:</b></i>
+    &lt;find file="ant.jar" location="location.ant-jar"&gt;
+        <b>&lt;path&gt;</b>                                                *3
+            &lt;fileset dir="${ant.home}" includes="**/*.jar"/&gt;
+        &lt;/path&gt;
+    &lt;/find&gt;
+</pre>
+<p>On <b>*1</b> we rename only the vector. Itï¿œs just for better reading the source. On <b>*2</b>
+we have to provide the right method: an add<i>Name</i>(<i>Type</i> t). Therefore replace the
+fileset with path here. Finally we have to modify our buildfile on <b>*3</b> because our task
+doesnï¿œt support nested filesets any longer. So we wrap the fileset inside a path.</p>
+
+<p>And now we modify the testcase. Oh, not very much to do :-) Renaming the <tt>testMissingFileset()</tt>
+(not really a <i>must-be</i> but better itï¿œs named like the think it does) and update the
+<i>expected</i>-String in that method (now a <tt>path not set</tt> message is expected). The more complex
+test cases base on the buildscript. So the targets <tt>testFileNotPresent</tt> and <tt>testFilePresent</tt> have to be
+modified in the manner described above.</p>
+
+<p>The test are finished. Now we have to adapt the task implementation. The easiest modification is
+in the <tt>validate()</tt> method where we change le last line to <tt>if (paths.size()&lt;1) throw new
+BuildException("path not set");</tt>. In the <tt>execute()</tt> method we have a little more work.
+... mmmh ... in reality it's lesser work, because the Path class does the whole DirectoryScanner-handling
+and creating-absolute-paths stuff for us. So the execute method is just:</p>
+
+<pre class="code">
+    public void execute() {
+        validate();
+        String foundLocation = null;
+        for(Iterator itPaths = paths.iterator(); itPaths.hasNext(); ) {
+            Path path = (<b>Path</b>)itPaths.next();                                // 1
+            String[] includedFiles = <b>path.list()</b>;                            // 2
+            for(int i=0; i&lt;includedFiles.length; i++) {
+                String filename = includedFiles[i].replace('\\','/');
+                filename = filename.substring(filename.lastIndexOf("/")+1);
+                if (foundLocation==null &amp;&amp; file.equals(filename)) {
+                    <b>foundLocation = includedFiles[i];</b>                        // 3
+                }
+            }
+        }
+        if (foundLocation!=null)
+            getProject().setNewProperty(location, foundLocation);
+    }
+</pre>
+
+<p>Of course we have to do the typecase to Path on <b>//1</b>. On <b>//2</b> and <b>//3</b>
+we see that the Path class does the work for us: no DirectoryScanner (was at 2) and no
+creating of the absolute path (was at 3).</p>
+
+
+
+<h2><a name="returning-list">Returning a list</a></h2>
+<p>So far so good. But could a file be on more than one place in the path? - Of course.<br>
+And would it be good to get all of them? - It depends on ...<p>
+
+<p>In this section we will extend that task to support returning a list of all files.
+Lists as property values are not supported by Ant natively. So we have to see how other
+tasks use lists. The most famous task using lists is Ant-Contribs <code>&lt;foreach&gt;</code>. All list
+elements are concatenated and separated with a customizable separator (default ',').</p>
+
+<p>So we do the following:</p>
+
+<pre class="code">
+    &lt;find ... <b>delimiter=""</b>/&gt; ... &lt;/find&gt;
+</pre>
+
+<p>If the delimiter is set we will return all found files as list with that delimiter.</p>
+
+<p>Therefore we have to<ul>
+<li>provide a new attribute</li>
+<li>collect more than the first file</li>
+<li>delete duplicates</li>
+<li>create the list if necessary</li>
+<li>return that list</li>
+</ul></p>
+
+<p>So we add as testcase:</p>
+<pre class="code">
+<b><i>in the buildfile:</i></b>
+    &lt;target name="test.init"&gt;
+        &lt;mkdir dir="test1/dir11/dir111"/&gt;                             *1
+        &lt;mkdir dir="test1/dir11/dir112"/&gt;
+        ...
+        &lt;touch file="test1/dir11/dir111/test"/&gt;
+        &lt;touch file="test1/dir11/dir111/not"/&gt;
+        ...
+        &lt;touch file="test1/dir13/dir131/not2"/&gt;
+        &lt;touch file="test1/dir13/dir132/test"/&gt;
+        &lt;touch file="test1/dir13/dir132/not"/&gt;
+        &lt;touch file="test1/dir13/dir132/not2"/&gt;
+        &lt;mkdir dir="test2"/&gt;
+        &lt;copy todir="test2"&gt;                                          *2
+            &lt;fileset dir="test1"/&gt;
+        &lt;/copy&gt;
+    &lt;/target&gt;
+
+    &lt;target name="testMultipleFiles" depends="use.init,<b>test.init</b>"&gt;    *3
+        &lt;find file="test" location="location.test" <b>delimiter=";"</b>&gt;
+            &lt;path&gt;
+                &lt;fileset dir="test1"/&gt;
+                &lt;fileset dir="test2"/&gt;
+            &lt;/path&gt;
+        &lt;/find&gt;
+        &lt;delete&gt;                                                      *4
+            &lt;fileset dir="test1"/&gt;
+            &lt;fileset dir="test2"/&gt;
+        &lt;/delete&gt;
+    &lt;/target&gt;
+
+<b><i>in the test class:</i></b>
+    public void testMultipleFiles() {
+        executeTarget("testMultipleFiles");
+        String result = getProject().getProperty("location.test");
+        assertNotNull("Property not set.", result);
+        assertTrue("Only one file found.", result.indexOf(";") &gt; -1);
+    }
+</pre>
+
+<p>Now we need a directory structure where we CAN find files with the same
+name in different directories. Because we can't sure to have one we create
+one on <b>*1</b> and <b>*2</b>. And of course we clean up that on <b>*4</b>. The creation
+can be done inside our test target or in a separate one, which will be better
+for reuse later (<b>*3</b>).
+
+<p>The task implementation is modified as followed:</p>
+
+<pre class="code">
+    private Vector foundFiles = new Vector();
+    ...
+    private String delimiter = null;
+    ...
+    public void setDelimiter(String delim) {
+        delimiter = delim;
+    }
+    ...
+    public void execute() {
+        validate();
+        // find all files
+        for(Iterator itPaths = paths.iterator(); itPaths.hasNext(); ) {
+            Path path = (Path)itPaths.next();
+            String[] includedFiles = path.list();
+            for(int i=0; i&lt;includedFiles.length; i++) {
+                String filename = includedFiles[i].replace('\\','/');
+                filename = filename.substring(filename.lastIndexOf("/")+1);
+                if (file.equals(filename) &amp;&amp; <b>!foundFiles.contains(includedFiles[i]</b>)) {   // 1
+                    foundFiles.add(includedFiles[i]);
+                }
+            }
+        }
+
+        // create the return value (list/single)
+        String rv = null;
+        if (foundFiles.size() &gt; 0) {                                        // 2
+            if (delimiter==null) {
+                // only the first
+                rv = (String)foundFiles.elementAt(0);
+            } else {
+                // create list
+                StringBuffer list = new StringBuffer();
+                for(Iterator it=foundFiles.iterator(); it.hasNext(); ) {    // 3
+                    list.append(it.next());
+                    if (<b>it.hasNext()</b>) list.append(delimiter);               // 4
+                }
+                rv = list.toString();
+            }
+        }
+
+        // create the property
+        if (rv!=null)
+            getProject().setNewProperty(location, rv);
+    }
+</pre>
+
+<p>The algorithm does: finding all files, creating the return value depending on the users
+wish, returning the value as property. On <b>//1</b> we eliminates the duplicates. <b>//2</b>
+ensures that we create the return value only if we have found one file. On <b>//3</b> we
+iterate over all found files and <b>//4</b> ensures that the last entry has no trailing
+delimiter.</p>
+
+<p>Ok, first searching for all files and then returning only the first one ... You can
+tune the performance of your own :-)</p>
+
+
+<h2><a name="documentation">Documentation</a></h2>
+<p>A task is useless if the only who is able to code the buildfile is the task developer
+(and he only the next few weeks :-). So documentation is also very important. In which
+form you do that depends on your favourite. But inside Ant there is a common format and
+it has advantages if you use that: all task users know that form, this form is requested if
+you decide to contribute your task. So we will doc our task in that form.</p>
+
+<p>If you have a look at the manual page of the <a href="CoreTasks/java.html">java [5]</a>
+   task you will see<ul>
+<li>it is plain html</li>
+<li>starts with the name</li>
+<li>has sections: description, parameters, nested elements, (maybe return codes) and (most
+important :-) examples</li>
+<li>parameters are listed in a table with columns for attribute name, its description and whether
+  it's required (if you add a feature after an Ant release, provide a <tt>since Ant xx</tt>
+  statement when it's introduced)</li>
+<li>describe the nested elements (since-statement if necessary)</li>
+<li>provide one or more useful examples; first code then description</li>
+</ul>
+As a template we have:
+
+<pre class="code">
+&lt;html&gt;
+
+&lt;head&gt;
+&lt;meta http-equiv="Content-Language" content="en-us"&gt;
+&lt;title&gt; <b>Taskname</b> Task&lt;/title&gt;
+&lt;/head&gt;
+
+&lt;body&gt;
+
+&lt;h2&gt;&lt;a name="<i>taskname</i>"&gt;<b>Taskname</b>&lt;/a&gt;&lt;/h2&gt;
+&lt;h3&gt;Description&lt;/h3&gt;
+&lt;p&gt; <b>Describe the task.</b>&lt;/p&gt;
+
+&lt;h3&gt;Parameters&lt;/h3&gt;
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;&lt;b&gt;Attribute&lt;/b&gt;&lt;/td&gt;
+    &lt;td valign="top"&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;&lt;b&gt;Required&lt;/b&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+
+  <b>do this html row for each attribute (including inherited attributes)</b>
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;classname&lt;/td&gt;
+    &lt;td valign="top"&gt;the Java class to execute.&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;Either jar or classname&lt;/td&gt;
+  &lt;/tr&gt;
+
+&lt;/table&gt;
+
+&lt;h3&gt;Parameters specified as nested elements&lt;/h3&gt;
+
+<b>Describe each nested element (including inherited)</b>
+&lt;h4&gt;your nested element</b>&lt;/h4&gt;
+&lt;p&gt; <b>description</b> &lt;/p&gt;
+&lt;p&gt;&lt;em&gt;since Ant 1.6&lt;/em&gt;.&lt;/p&gt;
+
+&lt;h3&gt;Examples&lt;/h3&gt;
+&lt;pre&gt;
+    <b>A code sample; don't forget to escape the &lt; of the tags with &amp;lt;</b>
+&lt;/pre&gt;
+<b>what should that example do?</b>
+
+&lt;/body&gt;
+&lt;/html&gt;
+</pre>
+
+<p>For our task we have <a href="CoreTasks/find.html">that [6]</a>:</p>
+<pre class="code">
+&lt;html&gt;
+
+&lt;head&gt;
+&lt;meta http-equiv="Content-Language" content="en-us"&gt;
+&lt;title&gt; Find Task&lt;/title&gt;
+&lt;/head&gt;
+
+&lt;body&gt;
+
+&lt;h2&gt;&lt;a name="find"&gt;Find&lt;/a&gt;&lt;/h2&gt;
+&lt;h3&gt;Description&lt;/h3&gt;
+&lt;p&gt;Searchs in a given path for a file and returns the absolute to it as property.
+If delimiter is set this task returns all found locations.&lt;/p&gt;
+
+&lt;h3&gt;Parameters&lt;/h3&gt;
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;&lt;b&gt;Attribute&lt;/b&gt;&lt;/td&gt;
+    &lt;td valign="top"&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;&lt;b&gt;Required&lt;/b&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;file&lt;/td&gt;
+    &lt;td valign="top"&gt;The name of the file to search.&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;yes&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;location&lt;/td&gt;
+    &lt;td valign="top"&gt;The name of the property where to store the location&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;yes&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;tr&gt;
+    &lt;td valign="top"&gt;delimiter&lt;/td&gt;
+    &lt;td valign="top"&gt;A delimiter to use when returning the list&lt;/td&gt;
+    &lt;td align="center" valign="top"&gt;only if the list is required&lt;/td&gt;
+  &lt;/tr&gt;
+&lt;/table&gt;
+
+&lt;h3&gt;Parameters specified as nested elements&lt;/h3&gt;
+
+&lt;h4&gt;path&lt;/h4&gt;
+&lt;p&gt;The path where to search the file.&lt;/p&gt;
+
+&lt;h3&gt;Examples&lt;/h3&gt;
+&lt;pre&gt;
+    &lt;find file="ant.jar" location="loc"&gt;
+        &lt;path&gt;
+            &lt;fileset dir="${ant.home}"/&gt;
+        &lt;path&gt;
+    &lt;/find&gt;
+&lt;/pre&gt;
+Searches in Ants home directory for a file &lt;i&gt;ant.jar&lt;/i&gt; and stores its location in
+property &lt;i&gt;loc&lt;/i&gt; (should be ANT_HOME/bin/ant.jar).
+
+&lt;pre&gt;
+    &lt;find file="ant.jar" location="loc" delimiter=";"&gt;
+        &lt;path&gt;
+            &lt;fileset dir="C:/"/&gt;
+        &lt;path&gt;
+    &lt;/find&gt;
+    &lt;echo&gt;ant.jar found in: ${loc}&lt;/echo&gt;
+&lt;/pre&gt;
+Searches in Windows C: drive for all &lt;i&gt;ant.jar&lt;/i&gt; and stores their locations in
+property &lt;i&gt;loc&lt;/i&gt; delimited with &lt;i&gt;';'&lt;/i&gt;. (should need a long time :-)
+After that it prints out the result (e.g. C:/ant-1.5.4/bin/ant.jar;C:/ant-1.6/bin/ant.jar).
+
+&lt;/body&gt;
+&lt;/html&gt;
+</pre>
+
+
+<h2><a name="contribute">Contribute the new task</a></h2>
+If we decide to contribute our task, we should do some things:<ul>
+<li>is our task welcome? :-) Simply ask on the user list</li>
+<li>is the right package used? </li>
+<li>is the code conform to the styleguide?</li>
+<li>do all tests pass? </li>
+<li>does the code compile on JDK 1.2 (and passes all tests there)?</li>
+<li>code under Apache license</li>
+<li>create a patch file</li>
+<li>publishing that patch file</li>
+</ul>
+The <a href="../ant_task_guidelines.html">Ant Task Guidelines [7]</a> support additional
+information on that.</p>
+
+<p>Now we will check the "Checklist before submitting a new task" described in that guideline.
+<ul>
+<li>Java file begins with Apache license statement. <b><i>must do that</i></b></li>
+<li>Task does not depend on GPL or LGPL code. <b><i>ok</i></b></li>
+<li>Source code complies with style guidelines <b><i>have to check (checkstyle)</i></b></li>
+<li>Code compiles and runs on Java1.2 <b><i>have to try</i></b></li>
+<li>Member variables are private, and provide public accessor methods
+        if access is actually needed. <b><i>have to check (checkstyle)</i></b></li>
+<li><i>Maybe</i> Task has failonerror attribute to control failure behaviour <b><i>hasn't</i></b></li>
+<li>New test cases written and succeed <b><i>passed on JDK 1.4, have to try on JDK 1.2</i></b></li>
+<li>Documentation page written <b><i>ok</i></b></li>
+<li>Example task declarations in the documentation tested. <b><i>ok (used in tests)</i></b></li>
+<li>Patch files generated using cvs diff -u <b><i>to do</i></b></li>
+<li>patch files include a patch to defaults.properties to register the
+tasks <b><i>to do</i></b></li>
+<li>patch files include a patch to coretasklist.html or
+optionaltasklist.html to link to the new task page <b><i>to do</i></b></li>
+<li>Message to dev contains [SUBMIT] and task name in subject <b><i>to do</i></b></li>
+<li>Message body contains a rationale for the task <b><i>to do</i></b></li>
+<li>Message attachments contain the required files -source, documentation,
+test and patches zipped up to escape the HTML filter. <b><i>to do</i></b></li>
+</ul>
+
+
+<h3>Package / Directories</h3>
+<p>This task does not depend on any external library. Therefore we can use this as
+a core task. This task contains only one class. So we can use the standard package
+for core tasks: <tt>org.apache.tools.ant.taskdefs</tt>. Implementations are in the
+directory <tt>src/main</tt>, tests in <tt>src/testcases</tt> and buildfiles for
+tests in <tt>src/etc/testcases</tt>.</p>
+
+<p>Now we integrate our work into Ants distribution. So first we do an update of our
+cvs tree. If not done yet, you have to checkout the ant module from Apaches cvs server
+as described in <a href="http://ant.apache.org/cvs.html">Access the Source Tree (AnonCVS)
+[8]</a> (password is <i>anoncvs</i>):<pre class="output">
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login                 //1
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout ant          //2
+</pre>
+If you have a local copy of Ants sources just do an update
+<pre class="output">
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
+cd ant                                                                       //3
+cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic update                //4
+</pre></p>
+
+<p>We use the <i>-d</i> flag on <b>//1</b> to specifiy the cvs directory. You can
+specify the environment variable CVSROOT with that value and after that you havenï¿œt
+to use that flag any more. On <b>//2</b> we get the whole cvs tree of ant. (Sorry,
+but that uses a lot of time ... 10 up to 30 minutes are not unusual ... but this has
+to be done only once :-). A cvs update doesn't use a modulename but you have to be
+inside the directory. Therefore we go into that on <b>//3</b> and do the update
+on <b>//4</b>.</p>
+
+<p>Now we will build our Ant distribution and do a test. So we can see if there
+are any tests failing on our machine. (We can ignore these failing tests on later
+steps; windows syntax used here- translate to xNIX if needed):
+<pre class="output">
+ANTHOME&gt; build                                                    // 1
+ANTHOME&gt; set ANT_HOME=%CD%\dist                                   // 2
+ANTHOME&gt; ant test -Dtest.haltonfailure=false                      // 3
+</pre>
+
+First we have to build our Ant distribution (<b>//1</b>). On <b>//2</b> we set the ANT_HOME
+environment variable to the directory where the new created distribution is stored
+(%CD% is expanded to the current directory on Windows 2000 and XP, on 9x and NT
+write it out). On <b>//3</b> we let Ant do all the tests (which enforced a compile
+of all tests) without stopping on first failure.</p>
+
+<p>Next we apply our work onto Ants sources. Because we haven't modified any, this is
+a relative simple step. <i>(Because I have a local copy of Ant and usually contribute my
+work, I work on the local copy just from the beginning. The advantage: this step isn't
+necessary and saves a lot of work if you modify existing source :-)</i>.
+
+<ul>
+<li>move the Find.java to ANTHOME/src/main/org/apache/tools/ant/taskdefs/Find.java </li>
+<li>move the FindTest.java to ANTHOME/src/testcases/org/apache/tools/ant/taskdefs/FindTest.java </li>
+<li>move the build.xml to ANTHOME/src/etc/testcases/taskdefs/<b>find.xml</b> (!!! renamed !!!)</li>
+<li>add a <tt>package org.apache.tools.ant.taskdefs;</tt> at the beginning of the two java files </li>
+<li>delete all stuff from find.xml keeping the targets "testFileNotPresent", "testFilePresent",
+    "test.init" and "testMultipleFiles" </li>
+<li>delete the dependency to "use.init" in the find.xml </li>
+<li>in FindTest.java change the line <tt>configureProject("build.xml");</tt> to
+    <tt>configureProject("src/etc/testcases/taskdefs/find.xml");</tt> </li>
+<li>move the find.html to ANTHOME/docs/manual/CoreTasks/find.html </li>
+<li>add a <tt>&lt;a href="CoreTasks/find.html"&gt;Find&lt;/a&gt;&lt;br&gt;</tt>
+    in the ANTHOME/docs/manual/coretasklist.html </li>
+</ul>
+
+Now our modifications are done and we will retest it:
+<pre class="output">
+ANTHOME&gt; build
+ANTHOME&gt; ant run-single-test                                      // 1
+             -Dtestcase=org.apache.tools.ant.taskdefs.FindTest    // 2
+             -Dtest.haltonfailure=false
+</pre>
+Because we only want to test our new class, we use the target for single tests, specify
+the test to use and configure not to halt on the first failure - we want to see all
+failures of our own test (<b>//1 + 2</b>).</p>
+
+<p>And ... oh, all tests fail: <i>Ant could not find the task or a class this task relies upon.</i></p>
+
+<p>Ok: in the earlier steps we told Ant to use the Find class for the <code>&lt;find&gt;</code> task (remember the
+<code>&lt;taskdef&gt;</code> statement in the "use.init" target). But now we want to introduce that task as
+a core task. And nobody wants to taskdef the javac, echo, ... So what to do? The answer is the
+src/main/.../taskdefs/default.properties. Here is the mapping between taskname and implementing
+class done. So we add a <tt>find=org.apache.tools.ant.taskdefs.Find</tt> as the last core
+task (just before the <tt># optional tasks</tt> line). Now a second try:
+<pre class="output">
+ANTHOME&gt; build                                                    // 1
+ANTHOME&gt; ant run-single-test
+             -Dtestcase=org.apache.tools.ant.taskdefs.FindTest
+             -Dtest.haltonfailure=false
+</pre>
+We have to rebuild (<b>//1</b>) Ant because the test look in the %ANT_HOME%\lib\ant.jar
+(more precise: on the classpath) for the properties file. And we have only modified it in the
+source path. So we have to rebuild that jar. But now all tests pass and we check whether our class
+breaks some other tests.
+<pre class="output">
+ANTHOME&gt; ant test -Dtest.haltonfailure=false
+</pre>
+Because there are a lot of tests this step requires a little bit of time. So use the <i>run-single-test</i>
+during development and do the <i>test</i> only at the end (maybe sometimes during development too).
+We use the <i>-Dtest.haltonfailure=false</i> here because there could be other tests fail and we have
+to look into them.</p>
+
+<p>This test run should show us two things: our test will run and the number of failing tests
+is the same as directly after the cvs update (without our modifications).</p>
+
+
+
+<h3>Apache license statement</h3>
+<p>Simply copy the license text from one the other source from the Ant source tree.</p>
+
+
+<h3>Test on JDK 1.2</h3>
+<p>Until version 1.5 Ant must be able to run on a JDK 1.1. With version 1.6 this is not a
+requisite any more. But JDK 1.2 is a must-to-work-with. So we have to test that. You can download older
+JDKs from <a href="http://java.sun.com/products/archive/index.html">Sun [9]</a>.</p>
+
+<p>Clean the ANT_HOME variable, delete the <i>build, bootstrap</i> and <i>dist</i> directory
+and point JAVA_HOME to the JDK 1.2 home directory. Then do the <tt>build</tt>, set ANT_HOME
+and run <tt>ant test</tt> (like above).</p>
+
+<p>Our test should pass.</p>
+
+
+
+<h3>Checkstyle</h3>
+<p>There are many things we have to ensure. Indentation with 4 spaces, blanks here and there, ...
+(all described in the <a href="../ant_task_guidelines.html">Ant Task Guidelines [7]</a> which
+includes the <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">Sun code style
+[10]</a>). Because there are so many things we would be happy to have a tool for do the checks.
+There is one: checkstyle. Checkstyle is available at <a href="http://checkstyle.sourceforge.net/">
+Sourceforge [11]</a> and Ant provides with the <tt>check.xml</tt> a buildfile which will do the job
+for us.</p>
+
+<p>Download it and put the checkstyle-*-all.jar into your %USERPROFILE%\.ant\lib directory.
+All jar's stored there are available to Ant so you haven't to add it to you %ANT_HOME%\lib
+directory (this feature was added with Ant 1.6).</p>
+
+<p>So we will run the tests with
+<pre class="output">
+ANTHOME&gt; ant -f check.xml checkstyle htmlreport
+</pre>
+I prefer the HTML report because there are lots of messages and we can navigate faster.
+Open the ANTHOME/build/reports/checkstyle/html/index.html and navigate to the Find.java. Now we
+see that there are some errors: missing whitespaces, unused imports, missing javadocs. So we have
+to do that.</p>
+
+<p>Hint: start at the <b>buttom</b> of the file so the line numbers in the report will keep
+up to date and you will find the next error place much more easier without redoing the checkstyle.</p>
+
+<p>After cleaning up the code according to the messages we delete the reports directory and
+do a second checkstyle run. Now our task isn't listed. That's fine :-)</p>
+
+
+
+<!--
+  Couldnt create the diff that way for myself, but that should be documented.
+  But on the other hand this tutorial should not be forgotten any longer so I
+  comment that out.  JHM
+<h3>Creating the diff</h3>
+<p>Creating a diff for Ant is very easy: just start <tt>ant -f patch.xml</tt> and all is done
+automatically. This step requires a cvs executable in your path and internet access (more precise:
+cvs access). As a result we get a file <i> XXX </i>.</p>
+-->
+
+
+<h3>Publish the task</h3>
+<p>Finally we publish that archive. As described in the <a href="../ant_task_guidelines.html">
+Ant Task Guidelines [7]</a> we can post it on the developer mailinglist or we create a BugZilla
+entry. For both we need some information:</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <th>subject</th>
+  <td><i>short description</i></td>
+  <td>Task for finding files in a path</td>
+</tr>
+<tr>
+  <th>body</th>
+  <td><i>more details about the path</i></td>
+  <td>This new task looks inside a nested <code>&lt;path/&gt;</code> for occurrences of a file and stores
+      all locations as a property. See the included manual for details.</td>
+</tr>
+<tr>
+  <th>attachements</th>
+  <td><i>all files needed to apply the path</td>
+  <td>Archive containing a patch with the new and modified resources</td>
+</tr>
+</table>
+
+<p>Sending an email with these information is very easy and I think I haven't to show that.
+The other way - BugZilla - is slightly more difficult. But it has the advantage that entries
+will not be forgotten (once per week a report is generated). So I will show this way.</p>
+
+<p>You must have a BugZilla account for that. So open the <a href="http://issues.apache.org/bugzilla/">
+BugZilla Main Page [12]</a> and follow the link
+<a href="http://issues.apache.org/bugzilla/createaccount.cgi">Open a new Bugzilla account [13]</a>
+and the steps described there if you haven't one.</p>
+
+<ol>
+<li>From the BugZilla main page choose <a href="http://issues.apache.org/bugzilla/enter_bug.cgi">Enter
+    a new bug report [14]</a></li>
+<li>Choose "Ant" as product </li>
+<li>Version is the last "Alpha (nightly)" (at this time 1.7)</li>
+<li>Component is "Core tasks"</li>
+<li>Plattform and Severity are ok with "Other" and "Normal"</li>
+<li>Initial State is ok with "New"</li>
+<li>Same with the empy "Assigned to"</li>
+<li>It is not required to add yourself as CC, because you are the reporter and therefore will be
+    informed on changes</li>
+<li>URL: no url required</li>
+<li>Summary: add the <i>subject</i> from the table</li>
+<li>Description: add the <i>body</i> from the table</li>
+<li>Then press "Commit"</li>
+<li>After redirecting to the new created bug entry click "Create a New Attachment"</li>
+<li>Enter the path to your local path file into "File" or choose it via the "File"'s
+    button.</li>
+<li>Enter a short description into "Description", so that you could guess, what the
+    path file includes. Here we could add "Initial Patch".</li>
+<li>The "Content Type" is "auto-detect". You could use the "patch" type, if you only
+    provide a single path file, but we want do upload more that one, included in our
+    patch.zip.</li>
+<li>Then press "Commit"</li>
+</ol>
+Now the new task is uploaded into the bug database.
+
+
+<h2><a name="resources">Resources</a></h2>
+&nbsp;&nbsp;[1] <a href="tutorial-writing-tasks.html">tutorial-writing-tasks.html</a><br>
+&nbsp;&nbsp;[2] <a href="tutorial-tasks-filesets-properties.zip">tutorial-tasks-filesets-properties.zip</a><br>
+&nbsp;&nbsp;[3] <a href="using.html#built-in-props">using.html#built-in-props</a><br>
+&nbsp;&nbsp;[4] <a href="http://ant-contrib.sourceforge.net/">http://ant-contrib.sourceforge.net/</a><br>
+&nbsp;&nbsp;[5] <a href="CoreTasks/java.html">CoreTasks/java.html</a><br>
+&nbsp;&nbsp;[6] <a href="CoreTasks/find.html">CoreTasks/find.html</a><br>
+&nbsp;&nbsp;[7] <a href="../ant_task_guidelines.html">../ant_task_guidelines.html</a><br>
+&nbsp;&nbsp;[8] <a href="http://ant.apache.org/cvs.html">http://ant.apache.org/cvs.html</a><br>
+&nbsp;&nbsp;[9] <a href="http://java.sun.com/products/archive/index.html">http://java.sun.com/products/archive/index.html</a><br>
+&nbsp;&nbsp;[10] <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html</a><br>
+&nbsp;&nbsp;[11] <a href="http://checkstyle.sourceforge.net/">http://checkstyle.sourceforge.net/</a><br>
+&nbsp;&nbsp;[12] <a href="http://issues.apache.org/bugzilla/">http://issues.apache.org/bugzilla/</a><br>
+&nbsp;&nbsp;[13] <a href="http://issues.apache.org/bugzilla/createaccount.cgi">http://issues.apache.org/bugzilla/createaccount.cgi</a><br>
+&nbsp;&nbsp;[14] <a href="http://issues.apache.org/bugzilla/enter_bug.cgi">http://issues.apache.org/bugzilla/enter_bug.cgi</a><br>
+
+
+<!--
+  TODO:
+  - how to create a path (path.xml / command line)
+-->
+
+
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorial-writing-tasks.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorial-writing-tasks.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorial-writing-tasks.html	(revision 14989)
@@ -0,0 +1,774 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+<head>
+  <title>Tutorial: Writing Tasks</title>
+  <meta name="author" content="Jan Matï¿œne">
+   <link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+  <style type="text/css">
+  <!--
+  .code { background: #EFEFEF; margin-top: }
+  .output { color: #FFFFFF; background: #837A67; }
+  -->
+  </style>
+</head>
+<body>
+<h1>Tutorial: Writing Tasks</h1>
+
+<p>This document provides a step by step tutorial for writing
+tasks.</p>
+<h2>Content</h2>
+<p><ul>
+<li><a href="#buildenvironment">Set up the build environment</a></li>
+<li><a href="#write1">Write the Task</a></li>
+<li><a href="#use1">Use the Task</a></li>
+<li><a href="#TaskAdapter">Integration with TaskAdapter</a></li>
+<li><a href="#derivingFromTask">Deriving from Ant's Task</a></li>
+<li><a href="#attributes">Attributes</a></li>
+<li><a href="#NestedText">Nested Text</a></li>
+<li><a href="#NestedElements">Nested Elements</a></li>
+<li><a href="#complex">Our task in a little more complex version</a></li>
+<li><a href="#TestingTasks">Test the Task</a></li>
+<li><a href="#resources">Resources</a></li>
+</ul></p>
+
+<a name="buildenvironment"></a>
+<h2>Set up the build environment</h2>
+<p>Ant builds itself, we are using Ant too (why we would write
+a task if not? :-) therefore we should use Ant for our build.<p>
+<p>We choose a directory as root directory. All things will be done
+here if I say nothing different. I will reference this directory
+as <i>root-directory</i> of our project. In this root-directory we
+create a text file names <i>build.xml</i>. What should Ant do for us?
+<ul>
+<li>compiles my stuff</li>
+<li>make the jar, so that I can deploy it</li>
+<li>clean up everything</li>
+</ul>
+So the buildfile contains three targets.
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="MyTask" basedir="." default="jar"&gt;
+
+    &lt;target name="clean" description="Delete all generated files"&gt;
+        &lt;delete dir="classes"/&gt;
+        &lt;delete file="MyTasks.jar"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile" description="Compiles the Task"&gt;
+        &lt;javac srcdir="src" destdir="classes"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar" description="JARs the Task"&gt;
+        &lt;jar destfile="MyTask.jar" basedir="classes"/&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre>
+
+This buildfile uses often the same value (src, classes, MyTask.jar), so we should rewrite that
+using <code>&lt;property&gt;</code>s. On second there are some handicaps: <code>&lt;javac&gt;</code> requires that the destination
+directory exists; a call of "clean" with a non existing classes directory will fail; "jar" requires
+the execution of some steps bofore. So the refactored code is:
+
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="MyTask" basedir="." default="jar"&gt;
+
+    <b>&lt;property name="src.dir" value="src"/&gt;</b>
+    <b>&lt;property name="classes.dir" value="classes"/&gt;</b>
+
+    &lt;target name="clean" description="Delete all generated files"&gt;
+        &lt;delete dir="<b>${classes.dir}</b>" <b>failonerror="false"</b>/&gt;
+        &lt;delete file="<b>${ant.project.name}.jar</b>"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile" description="Compiles the Task"&gt;
+        <b>&lt;mkdir dir="${classes.dir}"/&gt;</b>
+        &lt;javac srcdir="<b>${src.dir}</b>" destdir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar" description="JARs the Task" <b>depends="compile"</b>&gt;
+        &lt;jar destfile="${ant.project.name}.jar" basedir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+&lt;/project&gt;
+</pre>
+<i>ant.project.name</i> is one of the
+<a href="http://ant.apache.org/manual/using.html#built-in-props" target="_blank">
+build-in properties [1]</a> of Ant.
+
+
+<a name="write1"></a>
+<h2>Write the Task</h2>
+
+Now we write the simplest Task - a HelloWorld-Task (what else?). Create a text file
+<i>HelloWorld.java</i> in the src-directory with:
+<pre class="code">
+public class HelloWorld {
+    public void execute() {
+        System.out.println("Hello World");
+    }
+}
+</pre>
+and we can compile and jar it with <tt>ant</tt> (default target is "jar" and via
+its <i>depends</i>-clause the "compile" is executed before).
+
+
+
+<a name="use1"></a>
+<h2>Use the Task</h2>
+<p>But after creating the jar we want to use our new Task. Therefore we need a
+new target "use". Before we can use our new task we have to declare it with
+<a href="http://ant.apache.org/manual/CoreTasks/taskdef.html" target="_blank">
+<code>&lt;taskdef&gt;</code> [2]</a>. And for easier process we change the default clause:
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="MyTask" basedir="." default="<b>use</b>"&gt;
+
+    ...
+
+    <b>&lt;target name="use" description="Use the Task" depends="jar"&gt;
+        &lt;taskdef name="helloworld" classname="HelloWorld" classpath="${ant.project.name}.jar"/&gt;
+        &lt;helloworld/&gt;
+    &lt;/target&gt;</b>
+
+&lt;/project&gt;
+</pre>
+
+Important is the <i>classpath</i>-attribute. Ant searches in its /lib directory for
+tasks and our task isn't there. So we have to provide the right location. </p>
+
+<p>Now we can type in <tt>ant</tt> and all should work ...
+<pre class="output">
+Buildfile: build.xml
+
+compile:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes
+    [javac] Compiling 1 source file to C:\tmp\anttests\MyFirstTask\classes
+
+jar:
+      [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar
+
+use:
+[helloworld] Hello World
+
+BUILD SUCCESSFUL
+Total time: 3 seconds
+</pre>
+
+
+
+<a name="TaskAdapter"></a>
+<h2>Integration with TaskAdapter</h2>
+<p>Our class has nothing to do with Ant. It extends no superclass and implements
+no interface. How does Ant know to integrate? Via name convention: our class provides
+a method with signature <tt>public void execute()</tt>. This class is wrapped by Ant's
+<tt>org.apache.tools.ant.TaskAdapter</tt> which is a task and uses reflection for
+setting a reference to the project and calling the <i>execute()</i> method.</p>
+
+<p><i>Setting a reference to the project</i>? Could be interesting. The Project class
+gives us some nice abilities: access to Ant's logging facilities getting and setting
+properties and much more. So we try to use that class:
+<pre class="code">
+import org.apache.tools.ant.Project;
+
+public class HelloWorld {
+
+    private Project project;
+
+    public void setProject(Project proj) {
+        project = proj;
+    }
+
+    public void execute() {
+        String message = project.getProperty("ant.project.name");
+        project.log("Here is project '" + message + "'.", Project.MSG_INFO);
+    }
+}
+</pre>
+and the execution with <tt>ant</tt> will show us the expected
+<pre class="output">
+use:
+Here is project 'MyTask'.
+</pre></p>
+
+
+<a name="derivingFromTask"></a>
+<h2>Deriving from Ant's Task</h2>
+<p>Ok, that works ... But usually you will extend <tt>org.apache.tools.ant.Task</tt>.
+That class is integrated in Ant, get's the project-reference, provides documentation
+fiels, provides easier access to the logging facility and (very useful) gives you
+the exact location where <i>in the buildfile</i> this task instance is used.</p>
+
+<p>Oki-doki - let's us use some of these:
+<pre class="code">
+import org.apache.tools.ant.Task;
+
+public class HelloWorld extends Task {
+    public void execute() {
+        // use of the reference to Project-instance
+        String message = getProject().getProperty("ant.project.name");
+
+        // Task's log method
+        log("Here is project '" + message + "'.");
+
+        // where this task is used?
+        log("I am used in: " +  getLocation() );
+    }
+}
+</pre>
+which gives us when running
+<pre class="output">
+use:
+[helloworld] Here is project 'MyTask'.
+[helloworld] I am used in: C:\tmp\anttests\MyFirstTask\build.xml:23:
+</pre>
+
+
+<a name="attributes"></a>
+<h2>Attributes</h2>
+<p>Now we want to specify the text of our message (it seems that we are
+rewriting the <code>&lt;echo/&gt;</code> task :-). First we well do that with an attribute.
+It is very easy - for each attribute provide a <tt>public void set<code>&lt;attributename&gt;</code>(<code>&lt;type&gt;</code>
+newValue)</tt> method and Ant will do the rest via reflection.</p>
+<pre class="code">
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.BuildException;
+
+public class HelloWorld extends Task {
+
+    String message;
+    public void setMessage(String msg) {
+        message = msg;
+    }
+
+    public void execute() {
+        if (message==null) {
+            throw new BuildException("No message set.");
+        }
+        log(message);
+    }
+
+}
+</pre>
+<p>Oh, what's that in execute()? Throw a <i>BuildException</i>? Yes, that's the usual
+way to show Ant that something important is missed and complete build should fail. The
+string provided there is written as build-failes-message. Here it's necessary because
+the log() method can't handle a <i>null</i> value as parameter and throws a NullPointerException.
+(Of course you can initialize the <i>message</i> with a default string.)</p>
+
+<p>After that we have to modify our buildfile:
+<pre class="code">
+    &lt;target name="use" description="Use the Task" depends="jar"&gt;
+        &lt;taskdef name="helloworld"
+                 classname="HelloWorld"
+                 classpath="${ant.project.name}.jar"/&gt;
+        &lt;helloworld <b>message="Hello World"</b>/&gt;
+    &lt;/target&gt;
+</pre>
+That's all.</p>
+
+<p>Some background for working with attributes: Ant supports any of these datatypes as
+arguments of the set-method:<ul>
+<li>elementary data type like <i>int</i>, <i>long</i>, ...</li>
+<li>its wrapper classes like <i>java.lang.Integer</i>, <i>java.lang.Long</i>, ...</li>
+<li><i>java.lang.String</i></li>
+<li>some more classes (e.g. <i>java.io.File</i>; see
+    <a href="http://ant.apache.org/manual/develop.html#set-magic">Manual
+    'Writing Your Own Task' [3]</a>)</li>
+</ul>
+Before calling the set-method all properties are resolved. So a <tt>&lt;helloworld message="${msg}"/&gt;</tt>
+would not set the message string to "${msg}" if there is a property "msg" with a set value.
+
+
+<a name="NestedText"></a>
+<h2>Nested Text</h2>
+<p>Maybe you have used the <code>&lt;echo&gt;</code> task in a way like <tt>&lt;echo&gt;Hello World&lt;/echo&gt;</tt>.
+For that you have to provide a <tt>public void addText(String text)</tt> method.
+<pre class="code">
+...
+public class HelloWorld extends Task {
+    ...
+    public void addText(String text) {
+        message = text;
+    }
+    ...
+}
+</pre>
+But here properties are <b>not</b> resolved! For resolving properties we have to use
+Project's <tt>replaceProperties(String propname) : String</tt> method which takes the
+property name as argument and returns its value (or ${propname} if not set).</p>
+
+
+<a name="NestedElements"></a>
+<h2>Nested Elements</h2>
+<p>There are several ways for inserting the ability of handling nested elements. See
+the <a href="http://ant.apache.org/manual/develop.html#nested-elements">Manual [4]</a> for other.
+We use the first way of the three described ways. There are several steps for that:<ol>
+<li>We create a class for collecting all the infos the nested element should contain.
+  This class is created by the same rules for attributes and nested elements
+  as for the task (<code>set&lt;attributename&gt;</code>() methods). </li>
+<li>The task holds multiple instances of this class in a list.</li>
+<li>A factory method instantiates an object, saves the reference in the list
+  and returns it to Ant Core.</li>
+<li>The execute() method iterates over the list and evaluates its values.</li>
+</li></ol></p>
+<pre class="code">
+import java.util.Vector;
+import java.util.Iterator;
+...
+    public void execute() {
+        if (message!=null) log(message);
+        for (Iterator it=messages.iterator(); it.hasNext(); ) {      <b>// 4</b>
+            Message msg = (Message)it.next();
+            log(msg.getMsg());
+        }
+    }
+
+
+    Vector messages = new Vector();                                  <b>// 2</b>
+
+    public Message createMessage() {                                 <b>// 3</b>
+        Message msg = new Message();
+        messages.add(msg);
+        return msg;
+    }
+
+    public class Message {                                           <b>// 1</b>
+        public Message() {}
+
+        String msg;
+        public void setMsg(String msg) { this.msg = msg; }
+        public String getMsg() { return msg; }
+    }
+...
+</pre>
+<p>Then we can use the new nested element. But where is xml-name for that defined?
+The mapping XML-name : classname is defined in the factory method:
+<tt>public <i>classname</i> create<i>XML-name</i>()</tt>. Therefore we write in
+the buildfile
+<pre class="code">
+        &lt;helloworld&gt;
+            &lt;message msg="Nested Element 1"/&gt;
+            &lt;message msg="Nested Element 2"/&gt;
+        &lt;/helloworld&gt;
+</pre>
+
+
+<a name="complex"></a>
+<h2>Our task in a little more complex version</h2>
+<p>For recapitulation now a little refactored buildfile:
+<pre class="code">
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;project name="MyTask" basedir="." default="use"&gt;
+
+    &lt;property name="src.dir" value="src"/&gt;
+    &lt;property name="classes.dir" value="classes"/&gt;
+
+    &lt;target name="clean" description="Delete all generated files"&gt;
+        &lt;delete dir="${classes.dir}" failonerror="false"/&gt;
+        &lt;delete file="${ant.project.name}.jar"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="compile" description="Compiles the Task"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="jar" description="JARs the Task" depends="compile"&gt;
+        &lt;jar destfile="${ant.project.name}.jar" basedir="${classes.dir}"/&gt;
+    &lt;/target&gt;
+
+
+    &lt;target name="use.init"
+            description="Taskdef the HelloWorld-Task"
+            depends="jar"&gt;
+        &lt;taskdef name="helloworld"
+                 classname="HelloWorld"
+                 classpath="${ant.project.name}.jar"/&gt;
+    &lt;/target&gt;
+
+
+    &lt;target name="use.without"
+            description="Use without any"
+            depends="use.init"&gt;
+        &lt;helloworld/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="use.message"
+            description="Use with attribute 'message'"
+            depends="use.init"&gt;
+        &lt;helloworld message="attribute-text"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="use.fail"
+            description="Use with attribute 'fail'"
+            depends="use.init"&gt;
+        &lt;helloworld fail="true"/&gt;
+    &lt;/target&gt;
+
+    &lt;target name="use.nestedText"
+            description="Use with nested text"
+            depends="use.init"&gt;
+        &lt;helloworld&gt;nested-text&lt;/helloworld&gt;
+    &lt;/target&gt;
+
+    &lt;target name="use.nestedElement"
+            description="Use with nested 'message'"
+            depends="use.init"&gt;
+        &lt;helloworld&gt;
+            &lt;message msg="Nested Element 1"/&gt;
+            &lt;message msg="Nested Element 2"/&gt;
+        &lt;/helloworld&gt;
+    &lt;/target&gt;
+
+
+    &lt;target name="use"
+            description="Try all (w/out use.fail)"
+            depends="use.without,use.message,use.nestedText,use.nestedElement"
+    /&gt;
+
+&lt;/project&gt;
+</pre>
+
+And the code of the task:
+<pre class="code">
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.BuildException;
+import java.util.Vector;
+import java.util.Iterator;
+
+/**
+ * The task of the tutorial.
+ * Print a message or let the build fail.
+ * @author Jan Matï¿œne
+ * @since 2003-08-19
+ */
+public class HelloWorld extends Task {
+
+
+    /** The message to print. As attribute. */
+    String message;
+    public void setMessage(String msg) {
+        message = msg;
+    }
+
+    /** Should the build fail? Defaults to <i>false</i>. As attribute. */
+    boolean fail = false;
+    public void setFail(boolean b) {
+        fail = b;
+    }
+
+    /** Support for nested text. */
+    public void addText(String text) {
+        message = text;
+    }
+
+
+    /** Do the work. */
+    public void execute() {
+        // handle attribute 'fail'
+        if (fail) throw new BuildException("Fail requested.");
+
+        // handle attribute 'message' and nested text
+        if (message!=null) log(message);
+
+        // handle nested elements
+        for (Iterator it=messages.iterator(); it.hasNext(); ) {
+            Message msg = (Message)it.next();
+            log(msg.getMsg());
+        }
+    }
+
+
+    /** Store nested 'message's. */
+    Vector messages = new Vector();
+
+    /** Factory method for creating nested 'message's. */
+    public Message createMessage() {
+        Message msg = new Message();
+        messages.add(msg);
+        return msg;
+    }
+
+    /** A nested 'message'. */
+    public class Message {
+        // Bean constructor
+        public Message() {}
+
+        /** Message to print. */
+        String msg;
+        public void setMsg(String msg) { this.msg = msg; }
+        public String getMsg() { return msg; }
+    }
+
+}
+</pre>
+
+And it works:
+<pre class="output">
+C:\tmp\anttests\MyFirstTask&gt;ant
+Buildfile: build.xml
+
+compile:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes
+    [javac] Compiling 1 source file to C:\tmp\anttests\MyFirstTask\classes
+
+jar:
+      [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar
+
+use.init:
+
+use.without:
+
+use.message:
+[helloworld] attribute-text
+
+use.nestedText:
+[helloworld] nested-text
+
+use.nestedElement:
+[helloworld]
+[helloworld]
+[helloworld]
+[helloworld]
+[helloworld] Nested Element 1
+[helloworld] Nested Element 2
+
+use:
+
+BUILD SUCCESSFUL
+Total time: 3 seconds
+C:\tmp\anttests\MyFirstTask&gt;ant use.fail
+Buildfile: build.xml
+
+compile:
+
+jar:
+
+use.init:
+
+use.fail:
+
+BUILD FAILED
+C:\tmp\anttests\MyFirstTask\build.xml:36: Fail requested.
+
+Total time: 1 second
+C:\tmp\anttests\MyFirstTask&gt;
+</pre>
+Next step: test ...
+
+
+
+<a name="TestingTasks"></a>
+<h2>Test the Task</h2>
+<p>We have written a test already: the use.* tasks in the buildfile. But its
+difficult to test that automatically. Common (and in Ant) used is JUnit for
+that. For testing tasks Ant provides a baseclass <tt>org.apache.tools.ant.BuildFileTest</tt>.
+This class extends <tt>junit.framework.TestCase</tt> and can therefore be integrated
+into the unit tests. But this class provides some for testing tasks useful methods:
+initialize Ant, load a buildfile, execute targets,
+expecting BuildExceptions with a specified text, expect a special text
+in the output log ... </p>
+
+<p>In Ant it is usual that the testcase has the same name as the task with a prepending
+<i>Test</i>, therefore we will create a file <i>HelloWorldTest.java</i>. Because we
+have a very small project we can put this file into <i>src</i> directory (Ant's own
+testclasses are in /src/testcases/...). Because we have already written our tests
+for "hand-test" we can use that for automatic tests, too. But there is one little
+problem we have to solve: all test supporting classes are not part of the binary
+distribution of Ant. So you can build the special jar file from source distro with
+target "test-jar" or you can download a nightly build from
+<a href="http://gump.covalent.net/jars/latest/ant/ant-testutil.jar">
+http://gump.covalent.net/jars/latest/ant/ant-testutil.jar [5]</a>.</p>
+
+<p>For executing the test and creating a report we need the optional tasks <code>&lt;junit&gt;</code>
+and <code>&lt;junitreport&gt;</code>. So we add to the buildfile:
+<pre class="code">
+...
+<font color="#9F9F9F">&lt;project name="MyTask" basedir="." </font>default="test"<font color="#9F9F9F">&gt;</font>
+...
+    &lt;property name="ant.test.lib" value="ant-testutil.jar"/&gt;
+    &lt;property name="report.dir"   value="report"/&gt;
+    &lt;property name="junit.out.dir.xml"  value="${report.dir}/junit/xml"/&gt;
+    &lt;property name="junit.out.dir.html" value="${report.dir}/junit/html"/&gt;
+
+    &lt;path id="classpath.run"&gt;
+        &lt;path path="${java.class.path}"/&gt;
+        &lt;path location="${ant.project.name}.jar"/&gt;
+    &lt;/path&gt;
+
+    &lt;path id="classpath.test"&gt;
+        &lt;path refid="classpath.run"/&gt;
+        &lt;path location="${ant.test.lib}"/&gt;
+    &lt;/path&gt;
+
+    &lt;target name="clean" description="Delete all generated files"&gt;
+        &lt;delete failonerror="false" includeEmptyDirs="true"&gt;
+            &lt;fileset dir="." includes="${ant.project.name}.jar"/&gt;
+            &lt;fileset dir="${classes.dir}"/&gt;
+            &lt;fileset dir="${report.dir}"/&gt;
+        &lt;/delete&gt;
+    &lt;/target&gt;
+
+    <font color="#9F9F9F">&lt;target name="compile" description="Compiles the Task"&gt;
+        &lt;mkdir dir="${classes.dir}"/&gt;
+        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}" </font>classpath="${ant.test.lib}"<font color="#9F9F9F">/&gt;
+    &lt;/target&gt;</font>
+...
+    &lt;target name="junit" description="Runs the unit tests" depends="jar"&gt;
+        &lt;delete dir="${junit.out.dir.xml}"/&gt;
+        &lt;mkdir  dir="${junit.out.dir.xml}"/&gt;
+        &lt;junit printsummary="yes" haltonfailure="no"&gt;
+            &lt;classpath refid="classpath.test"/&gt;
+            &lt;formatter type="xml"/&gt;
+            &lt;batchtest fork="yes" todir="${junit.out.dir.xml}"&gt;
+                &lt;fileset dir="${src.dir}" includes="**/*Test.java"/&gt;
+            &lt;/batchtest&gt;
+        &lt;/junit&gt;
+    &lt;/target&gt;
+
+    &lt;target name="junitreport" description="Create a report for the rest result"&gt;
+        &lt;mkdir dir="${junit.out.dir.html}"/&gt;
+        &lt;junitreport todir="${junit.out.dir.html}"&gt;
+            &lt;fileset dir="${junit.out.dir.xml}"&gt;
+                &lt;include name="*.xml"/&gt;
+            &lt;/fileset&gt;
+            &lt;report format="frames" todir="${junit.out.dir.html}"/&gt;
+        &lt;/junitreport&gt;
+    &lt;/target&gt;
+
+    &lt;target name="test"
+            depends="junit,junitreport"
+            description="Runs unit tests and creates a report"
+    /&gt;
+...
+</pre></p>
+
+<p>Back to the <i>src/HelloWorldTest.java</i>. We create a class extending
+<i>BuildFileTest</i> with String-constructor (JUnit-standard), a <i>setUp()</i>
+method initializing Ant and for each testcase (targets use.*) a <i>testXX()</i>
+method invoking that target.
+<pre class="code">
+import org.apache.tools.ant.BuildFileTest;
+
+public class HelloWorldTest extends BuildFileTest {
+
+    public HelloWorldTest(String s) {
+        super(s);
+    }
+
+    public void setUp() {
+        // initialize Ant
+        configureProject("build.xml");
+    }
+
+    public void testWithout() {
+        executeTarget("use.without");
+        assertEquals("Message was logged but should not.", getLog(), "");
+    }
+
+    public void testMessage() {
+        // execute target 'use.nestedText' and expect a message
+        // 'attribute-text' in the log
+        expectLog("use.message", "attribute-text");
+    }
+
+    public void testFail() {
+        // execute target 'use.fail' and expect a BuildException
+        // with text 'Fail requested.'
+        expectBuildException("use.fail", "Fail requested.");
+    }
+
+    public void testNestedText() {
+        expectLog("use.nestedText", "nested-text");
+    }
+
+    public void testNestedElement() {
+        executeTarget("use.nestedElement");
+        assertLogContaining("Nested Element 1");
+        assertLogContaining("Nested Element 2");
+    }
+}
+</pre></p>
+
+<p>When starting <tt>ant</tt> we'll get a short message to STDOUT and
+a nice HTML-report.
+<pre class="output">
+C:\tmp\anttests\MyFirstTask&gt;ant
+Buildfile: build.xml
+
+compile:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes
+    [javac] Compiling 2 source files to C:\tmp\anttests\MyFirstTask\classes
+
+jar:
+      [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar
+
+junit:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\report\junit\xml
+    [junit] Running HelloWorldTest
+    [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 2,334 sec
+
+
+
+junitreport:
+    [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\report\junit\html
+[junitreport] Using Xalan version: Xalan Java 2.4.1
+[junitreport] Transform time: 661ms
+
+test:
+
+BUILD SUCCESSFUL
+Total time: 7 seconds
+C:\tmp\anttests\MyFirstTask&gt;
+</pre></p>
+
+
+<a name="resources"></a>
+<h2>Resources</h2>
+<p>This tutorial and its resources are available via
+<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22570">BugZilla [6]</a>.
+The ZIP provided there contains<ul>
+<li>this tutorial</li>
+<li>the buildfile (last version)</li>
+<li>the source of the task (last version)</li>
+<li>the source of the unit test (last version)</li>
+<li>the ant-testutil.jar (nightly build of 2003-08-18)</li>
+<li>generated classes</li>
+<li>generated jar</li>
+<li>generated reports</li>
+</ul>
+The last sources and the buildfile are also available
+<a href="tutorial-writing-tasks-src.zip">here [7]</a> inside the manual.
+</p>
+
+
+Used Links:<br>
+&nbsp;&nbsp;[1] <a href="http://ant.apache.org/manual/using.html#built-in-props">http://ant.apache.org/manual/using.html#built-in-props</a><br>
+&nbsp;&nbsp;[2] <a href="http://ant.apache.org/manual/CoreTasks/taskdef.html">http://ant.apache.org/manual/CoreTasks/taskdef.html</a><br>
+&nbsp;&nbsp;[3] <a href="http://ant.apache.org/manual/develop.html#set-magic">http://ant.apache.org/manual/develop.html#set-magic</a><br>
+&nbsp;&nbsp;[4] <a href="http://ant.apache.org/manual/develop.html#nested-elements">http://ant.apache.org/manual/develop.html#nested-elements</a><br>
+&nbsp;&nbsp;[5] <a href="http://gump.covalent.net/jars/latest/ant/ant-testutil.jar">http://gump.covalent.net/jars/latest/ant/ant-testutil.jar</a><br>
+&nbsp;&nbsp;[6] <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22570">http://issues.apache.org/bugzilla/show_bug.cgi?id=22570</a><br>
+&nbsp;&nbsp;[7] <a href="tutorial-writing-tasks-src.zip">tutorial-writing-tasks-src.zip</a><br>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorials.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorials.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/tutorials.html	(revision 14989)
@@ -0,0 +1,45 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Tutorials</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Tutorials</h3>
+
+<p><a href="tutorial-HelloWorldWithAnt.html">Hello World with Ant</a><br>
+A step by step tutorial for starting java programming with Ant.</p>
+
+<p><a href="tutorial-writing-tasks.html">Writing Tasks</a><br>
+A step by step tutorial for writing tasks.</p>
+
+<p><a href="tutorial-tasks-filesets-properties.html">Tasks using Properties, Filesets & Paths</a><br>
+How to get and set properties and how to use nested filesets and paths 
+while writing tasks. Finally it explains how to contribute tasks to Ant.</p>
+
+
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/using.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/using.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/using.html	(revision 14989)
@@ -0,0 +1,683 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Writing a Simple Buildfile</title>
+</head>
+
+<body>
+<h1>Using Ant</h1>
+<h2><a name="buildfile">Writing a Simple Buildfile</a></h2>
+<p>Ant's buildfiles are written in XML. Each buildfile contains one project
+and at least one (default) target. Targets contain task elements.
+Each task element of the buildfile can have an <code>id</code> attribute and
+can later be referred to by the value supplied to this. The value has
+to be unique. (For additional information, see the
+<a href="#tasks"> Tasks</a> section below.)</p>
+<h3><a name="projects">Projects</a></h3>
+<p>A <i>project</i> has three attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the project.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">default</td>
+    <td valign="top">the default target to use when no target is supplied.</td>
+    <td align="center" valign="top">No; however, <b>since Ant 1.6.0</b>,
+        every project includes an implicit target that contains any and
+        all top-level tasks and/or types. This target will always be
+        executed as part of the project's initialization, even when Ant is
+        run with the <a href="running.html#options">-projecthelp</a> option.
+    </td>
+  </tr>
+  <tr>
+    <td valign="top">basedir</td>
+    <td valign="top">the base directory from which all path calculations are
+      done. This attribute might be overridden by setting
+      the &quot;basedir&quot;
+      property beforehand. When this is done, it must be omitted in the
+      project tag. If neither the attribute nor the property have
+      been set, the parent directory of the buildfile will be used.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+<p>Optionally, a description for the project can be provided as a
+top-level <code>&lt;description&gt;</code> element (see the <a
+href="CoreTypes/description.html">description</a> type).</p>
+
+<p>Each project defines one or more <i>targets</i>.
+A target is a set of <i>tasks</i> you want
+to be executed. When starting Ant, you can select which target(s) you
+want to have executed. When no target is given,
+the project's default is used.</p>
+
+<h3><a name="targets">Targets</a></h3>
+<p>A target can depend on other targets. You might have a target for compiling,
+for example, and a target for creating a distributable. You can only build a
+distributable when you have compiled first, so the distribute target
+<i>depends on</i> the compile target. Ant resolves these dependencies.</p>
+<p>It should be noted, however, that Ant's <code>depends</code> attribute
+only specifies the <i>order</i> in which targets should be executed - it
+does not affect whether the target that specifies the dependency(s) gets
+executed if the dependent target(s) did not (need to) run.
+</p>
+<p>Ant tries to execute the targets in the <code>depends</code>
+attribute in the order
+they appear (from left to right). Keep in mind that it is possible that a target
+can get executed earlier when an earlier target depends on it:</p>
+<blockquote>
+<pre>&lt;target name=&quot;A&quot;/&gt;
+&lt;target name=&quot;B&quot; depends=&quot;A&quot;/&gt;
+&lt;target name=&quot;C&quot; depends=&quot;B&quot;/&gt;
+&lt;target name=&quot;D&quot; depends=&quot;C,B,A&quot;/&gt;</pre>
+</blockquote>
+<p>Suppose we want to execute target D. From its
+<code>depends</code> attribute, you
+might think that first target C, then B and then A is executed.
+Wrong! C depends on B, and B depends on A, so first A is executed, then B, then C, and finally D.</p>
+<p>In a chain of dependencies stretching back from a given target such
+as D above, each target gets executed only once, even when more than
+one target depends on it. Thus, executing the D target will first
+result in C being called, which in turn will first call B, which in
+turn will first call A. After A, then B, then C have executed,
+execution returns to the dependency list of D, which will <u>not</u>
+call B and A, since they were already called in process of dependency
+resolution for C and B respectively as dependencies of D. Had no such
+dependencies been discovered in processing C and B, B and A would
+have been executed after C in processing D's dependency list.</p>
+<p>A target also has the ability to perform its execution if (or
+unless) a property has been set. This allows, for example, better
+control on the building process depending on the state of the system
+(java version, OS, command-line property defines, etc.).  To make a target
+<i>sense</i> this property, you should add the <code>if</code> (or
+<code>unless</code>) attribute with the name of the property that the target
+should react to. <strong>Note:</strong> Ant will only check whether
+the property has been set, the value doesn't matter.  A property set
+to the empty string is still an existing property.  For example:</p>
+<blockquote>
+  <pre>&lt;target name=&quot;build-module-A&quot; if=&quot;module-A-present&quot;/&gt;</pre>
+  <pre>&lt;target name=&quot;build-own-fake-module-A&quot; unless=&quot;module-A-present&quot;/&gt;</pre>
+</blockquote>
+<p>In the first example, if the <code>module-A-present</code>
+property is set (to any value, e.g. <i>false</i>), the target will be run. In the second
+example, if the <code>module-A-present</code> property is set
+(again, to any value), the target will not be run.
+</p>
+<p>Only one propertyname can be specified in the if/unless clause. If you want to check
+multiple conditions, you can use a dependend target for computing the result for the check:</p>
+<blockquote><pre>
+&lt;target name="myTarget" depends="myTarget.check" if="myTarget.run"&gt;
+    &lt;echo&gt;Files foo.txt and bar.txt are present.&lt;/echo&gt;
+&lt/target&gt;
+
+&lt;target name="myTarget.check"&gt;
+    &lt;condition property="myTarget.run"&gt;
+        &lt;and&gt;
+            &lt;available file="foo.txt"/&gt;
+            &lt;available file="bar.txt"/&gt;
+        &lt;/and&gt;
+    &lt;/condition&gt;
+&lt/target&gt;
+</pre></blockquote>
+<p>If no <code>if</code> and no <code>unless</code> attribute is present,
+the target will always be executed.</p>
+
+<p>
+<b>Important:</b> the <code>if</code> and <code>unless</code> attributes only
+enable or disable the target to which they are attached. They do not control
+whether or not targets that a conditional target depends upon get executed.
+In fact, they do not even get evaluated until the target is about to be executed,
+and all its predecessors have already run.
+
+<p>The optional <code>description</code> attribute can be used to provide a one-line description of this target, which is printed by the
+<nobr><code>-projecthelp</code></nobr> command-line option. Targets
+without such a description are deemed internal and will not be listed,
+unless either the <nobr><code>-verbose</code></nobr> or
+<nobr><code>-debug</code></nobr> option is used.
+</p>
+<p>It is a good practice to place your <a
+href="CoreTasks/tstamp.html">tstamp</a> tasks in a so-called
+<i>initialization</i> target, on which
+all other targets depend. Make sure that target is always the first one in
+the depends list of the other targets. In this manual, most initialization targets
+have the name <code>&quot;init&quot;</code>.</p>
+<p>If the depends attribute and the if/unless attribute are set, the depends attribute is
+executed first.</p>
+<p>A target has the following attributes:</p>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the target.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">depends</td>
+    <td valign="top">a comma-separated list of names of targets on which this
+      target depends.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">if</td>
+    <td valign="top">the name of the property that must be set in order for this
+      target to execute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">unless</td>
+    <td valign="top">the name of the property that must not be set in order
+      for this target to execute.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">description</td>
+    <td valign="top">a short description of this target's function.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+</table>
+</p>
+
+<p>A target name can be any alphanumeric string valid in the encoding of the XML
+file. The empty string &quot;&quot; is in this set, as is
+comma &quot;,&quot; and space &quot; &quot;.
+Please avoid using these, as they will not be supported in future Ant versions
+because of all the confusion they cause. IDE support of unusual target names,
+or any target name containing spaces, varies with the IDE.</p>
+
+<p>Targets beginning with a hyphen such as <code>&quot;-restart&quot;</code>
+are valid, and can be used
+to name targets that should not be called directly from the command line.</p>
+
+<h3><a name="tasks">Tasks</a></h3>
+<p>A task is a piece of code that can be executed.</p>
+<p>A task can have multiple attributes (or arguments, if you prefer). The value
+of an attribute might contain references to a property. These references will be
+resolved before the task is executed.</p>
+<p>Tasks have a common structure:</p>
+<blockquote>
+  <pre>&lt;<i>name</i> <i>attribute1</i>=&quot;<i>value1</i>&quot; <i>attribute2</i>=&quot;<i>value2</i>&quot; ... /&gt;</pre>
+</blockquote>
+<p>where <i>name</i> is the name of the task,
+<i>attributeN</i> is the attribute name, and
+<i>valueN</i> is the value for this attribute.</p>
+<p>There is a set of <a href="coretasklist.html" target="navFrame">built-in tasks</a>, along with a
+number of
+<a href="optionaltasklist.html" target="navFrame"> optional tasks</a>, but it is also very
+easy to <a href="develop.html#writingowntask">write your own</a>.</p>
+<p>All tasks share a task name attribute. The value of
+this attribute will be used in the logging messages generated by
+Ant.</p>
+Tasks can be assigned an <code>id</code> attribute:
+<blockquote>
+<pre>&lt;<i>taskname</i> id="<i>taskID</i>" ... /&gt;</pre>
+</blockquote>
+where <i>taskname</i> is the name of the task, and <i>taskID</i> is
+a unique identifier for this task.
+You can refer to the
+corresponding task object in scripts or other tasks via this name.
+For example, in scripts you could do:
+<blockquote>
+<pre>
+&lt;script ... &gt;
+  task1.setFoo("bar");
+&lt;/script&gt;
+</pre>
+</blockquote>
+to set the <code>foo</code> attribute of this particular task instance.
+In another task (written in Java), you can access the instance via
+<code>project.getReference("task1")</code>.
+<p>
+Note<sup>1</sup>: If &quot;task1&quot; has not been run yet, then
+it has not been configured (ie., no attributes have been set), and if it is
+going to be configured later, anything you've done to the instance may
+be overwritten.
+</p>
+<p>
+Note<sup>2</sup>: Future versions of Ant will most likely <i>not</i>
+be backward-compatible with this behaviour, since there will likely be no
+task instances at all, only proxies.
+</p>
+
+<h3><a name="properties">Properties</a></h3>
+<p>A project can have a set of properties. These might be set in the buildfile
+by the <a href="CoreTasks/property.html">property</a> task, or might be set outside Ant. A
+property has a name and a value; the name is case-sensitive. Properties may be used in the value of
+task attributes. This is done by placing the property name between
+&quot;<code>${</code>&quot; and &quot;<code>}</code>&quot; in the
+attribute value. For example,
+if there is a &quot;builddir&quot; property with the value
+&quot;build&quot;, then this could be used in an attribute like this:
+<code>${builddir}/classes</code>.
+This is resolved at run-time as <code>build/classes</code>.</p>
+<p>In the event you should need to include this construct literally
+(i.e. without property substitutions), simply "escape" the '$' character
+by doubling it. To continue the previous example:
+<pre>  &lt;echo&gt;$${builddir}=${builddir}&lt;/echo&gt;</pre>
+will echo this message:
+<pre>  ${builddir}=build/classes</pre></p>
+<p>In order to maintain backward compatibility with older Ant releases,
+a single '$' character encountered apart from a property-like construct
+(including a matched pair of french braces) will be interpreted literally;
+that is, as '$'.  The "correct" way to specify this literal character,
+however, is by using the escaping mechanism unconditionally, so that "$$"
+is obtained by specifying "$$$$".  Mixing the two approaches yields
+unpredictable results, as "$$$" results in "$$".</p>
+
+<h3><a name="built-in-props">Built-in Properties</a></h3>
+<p>Ant provides access to all system properties as if they had been
+defined using a <code>&lt;property&gt;</code> task.
+For example, <code>${os.name}</code> expands to the
+name of the operating system.</p>
+<p>For a list of system properties see
+<a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/System.html#getProperties()">the Javadoc of System.getProperties</a>.
+</p>
+<p>In addition, Ant has some built-in properties:</p>
+<pre>
+basedir             the absolute path of the project's basedir (as set
+                    with the basedir attribute of <a href="#projects">&lt;project&gt;)</a>.
+ant.file            the absolute path of the buildfile.
+ant.version         the version of Ant
+ant.project.name    the name of the project that is currently executing;
+                    it is set in the name attribute of &lt;project&gt;.
+ant.java.version    the JVM version Ant detected; currently it can hold
+                    the values &quot;1.2&quot;, &quot;1.3&quot;, &quot;1.4&quot; and &quot;1.5&quot;.
+</pre>
+<p>There is also another property, but this is set by the launcher script and therefore
+maybe not set inside IDEs:</p>
+<pre>
+ant.home            home directory of Ant
+</pre>
+
+<a name="example"><h3>Example Buildfile</h3></a>
+<pre>
+&lt;project name=&quot;MyProject&quot; default=&quot;dist&quot; basedir=&quot;.&quot;&gt;
+    &lt;description&gt;
+        simple example build file
+    &lt;/description&gt;
+  &lt;!-- set global properties for this build --&gt;
+  &lt;property name=&quot;src&quot; location=&quot;src&quot;/&gt;
+  &lt;property name=&quot;build&quot; location=&quot;build&quot;/&gt;
+  &lt;property name=&quot;dist&quot;  location=&quot;dist&quot;/&gt;
+
+  &lt;target name=&quot;init&quot;&gt;
+    &lt;!-- Create the time stamp --&gt;
+    &lt;tstamp/&gt;
+    &lt;!-- Create the build directory structure used by compile --&gt;
+    &lt;mkdir dir=&quot;${build}&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;compile&quot; depends=&quot;init&quot;
+        description=&quot;compile the source &quot; &gt;
+    &lt;!-- Compile the java code from ${src} into ${build} --&gt;
+    &lt;javac srcdir=&quot;${src}&quot; destdir=&quot;${build}&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;dist&quot; depends=&quot;compile&quot;
+        description=&quot;generate the distribution&quot; &gt;
+    &lt;!-- Create the distribution directory --&gt;
+    &lt;mkdir dir=&quot;${dist}/lib&quot;/&gt;
+
+    &lt;!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file --&gt;
+    &lt;jar jarfile=&quot;${dist}/lib/MyProject-${DSTAMP}.jar&quot; basedir=&quot;${build}&quot;/&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;clean&quot;
+        description=&quot;clean up&quot; &gt;
+    &lt;!-- Delete the ${build} and ${dist} directory trees --&gt;
+    &lt;delete dir=&quot;${build}&quot;/&gt;
+    &lt;delete dir=&quot;${dist}&quot;/&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+
+<p>Notice that we are declaring properties outside any target.  As of
+Ant 1.6 all tasks can be declared outside targets (earlier version
+only allowed <tt>&lt;property&gt;</tt>,<tt>&lt;typedef&gt;</tt> and
+<tt>&lt;taskdef&gt;</tt>).  When you do this they are evaluated before
+any targets are executed.  Some tasks will generate build failures if
+they are used outside of targets as they may cause infinite loops
+otherwise (<code>&lt;antcall&gt;</code> for example).</p>
+
+<p>
+We have given some targets descriptions; this causes the <tt>projecthelp</tt>
+invocation option to list them as public targets with the descriptions; the
+other target is internal and not listed.
+<p>
+Finally, for this target to work the source in the <tt>src</tt> subdirectory
+should be stored in a directory tree which matches the package names. Check the
+<tt>&lt;javac&gt;</tt> task for details.
+
+<a name="filters"><h3>Token Filters</h3></a>
+<p>A project can have a set of tokens that might be automatically expanded if
+found when a file is copied, when the filtering-copy behavior is selected in the
+tasks that support this. These might be set in the buildfile
+by the <a href="CoreTasks/filter.html">filter</a> task.</p>
+<p>Since this can potentially be a very harmful behavior,
+the tokens in the files <b>must</b>
+be of the form <code>@</code><i>token</i><code>@</code>, where
+<i>token</i> is the token name that is set
+in the <code>&lt;filter&gt;</code> task. This token syntax matches the syntax of other build systems
+that perform such filtering and remains sufficiently orthogonal to most
+programming and scripting languages, as well as with documentation systems.</p>
+<p>Note: If a token with the format <code>@</code><i>token</i><code>@</code>
+is found in a file, but no
+filter is associated with that token, no changes take place;
+therefore, no escaping
+method is available - but as long as you choose appropriate names for your
+tokens, this should not cause problems.</p>
+<p><b>Warning:</b> If you copy binary files with filtering turned on, you can corrupt the
+files. This feature should be used with text files <em>only</em>.</p>
+
+<h3><a name="path">Path-like Structures</a></h3>
+<p>You can specify <code>PATH</code>- and <code>CLASSPATH</code>-type
+references using both
+&quot;<code>:</code>&quot; and &quot;<code>;</code>&quot; as separator
+characters. Ant will
+convert the separator to the correct character of the current operating
+system.</p>
+<p>Wherever path-like values need to be specified, a nested element can
+be used. This takes the general form of:</p>
+<pre>
+    &lt;classpath&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+      &lt;pathelement location=&quot;lib/helper.jar&quot;/&gt;
+    &lt;/classpath&gt;
+</pre>
+<p>The <code>location</code> attribute specifies a single file or
+directory relative to the project's base directory (or an absolute
+filename), while the <code>path</code> attribute accepts colon-
+or semicolon-separated lists of locations. The <code>path</code>
+attribute is intended to be used with predefined paths - in any other
+case, multiple elements with <code>location</code> attributes should be
+preferred.</p>
+<p>As a shortcut, the <code>&lt;classpath&gt;</code> tag
+supports <code>path</code> and
+<code>location</code> attributes of its own, so:</p>
+<pre>
+    &lt;classpath&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+    &lt;/classpath&gt;
+</pre>
+<p>can be abbreviated to:</p>
+<pre>
+    &lt;classpath path=&quot;${classpath}&quot;/&gt;
+</pre>
+<p>In addition, one or more
+<a href="CoreTypes/resources.html#collection">Resource Collection</a>s
+can be specified as nested elements (these must consist of
+<a href="CoreTypes/resources.html#file">file</a>-type resources only).
+Additionally, it should be noted that although resource collections are
+processed in the order encountered, certain resource collection types
+such as <a href="CoreTypes/fileset.html">fileset</a>,
+<a href="CoreTypes/dirset.html">dirset</a> and
+<a href="CoreTypes/resources.html#files">files</a>
+are undefined in terms of order.</p>
+<pre>
+    &lt;classpath&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+      &lt;fileset dir=&quot;lib&quot;&gt;
+        &lt;include name=&quot;**/*.jar&quot;/&gt;
+      &lt;/fileset&gt;
+      &lt;pathelement location=&quot;classes&quot;/&gt;
+      &lt;dirset dir=&quot;${build.dir}&quot;&gt;
+        &lt;include name=&quot;apps/**/classes&quot;/&gt;
+        &lt;exclude name=&quot;apps/**/*Test*&quot;/&gt;
+      &lt;/dirset&gt;
+      &lt;filelist refid=&quot;third-party_jars&quot;/&gt;
+    &lt;/classpath&gt;
+</pre>
+<p>This builds a path that holds the value of <code>${classpath}</code>,
+followed by all jar files in the <code>lib</code> directory,
+the <code>classes</code> directory, all directories named
+<code>classes</code> under the <code>apps</code> subdirectory of
+<code>${build.dir}</code>, except those
+that have the text <code>Test</code> in their name, and
+the files specified in the referenced FileList.</p>
+<p>If you want to use the same path-like structure for several tasks,
+you can define them with a <code>&lt;path&gt;</code> element at the
+same level as <i>target</i>s, and reference them via their
+<i>id</i> attribute--see <a href="#references">References</a> for an
+example.</p>
+<p>A path-like structure can include a reference to another path-like
+structure (a path being itself a resource collection)
+via nested <code>&lt;path&gt;</code> elements:</p>
+<pre>
+    &lt;path id=&quot;base.path&quot;&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+      &lt;fileset dir=&quot;lib&quot;&gt;
+        &lt;include name=&quot;**/*.jar&quot;/&gt;
+      &lt;/fileset&gt;
+      &lt;pathelement location=&quot;classes&quot;/&gt;
+    &lt;/path&gt;
+
+    &lt;path id=&quot;tests.path&quot;&gt;
+      &lt;path refid=&quot;base.path&quot;/&gt;
+      &lt;pathelement location=&quot;testclasses&quot;/&gt;
+    &lt;/path&gt;
+</pre>
+ The shortcuts previously mentioned for <code>&lt;classpath&gt;</code> are also valid for <code>&lt;path&gt;</code>.For example:
+<pre>
+    &lt;path id=&quot;base.path&quot;&gt;
+      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
+    &lt;/path&gt;
+</pre>
+can be written as:
+<pre>
+    &lt;path id=&quot;base.path&quot; path=&quot;${classpath}&quot;/&gt;
+</pre>
+
+<h3><a name="arg">Command-line Arguments</a></h3>
+<p>Several tasks take arguments that will be passed to another
+process on the command line. To make it easier to specify arguments
+that contain space characters, nested <code>arg</code> elements can be used.</p>
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+  <td width="12%" valign="top"><b>Attribute</b></td>
+  <td width="78%" valign="top"><b>Description</b></td>
+  <td width="10%" valign="top"><b>Required</b></td>
+</tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">a single command-line argument; can contain space
+      characters.</td>
+    <td align="center" rowspan="5">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">The name of a file as a single command-line
+      argument; will be replaced with the absolute filename of the file.</td>
+  </tr>
+  <tr>
+    <td valign="top">path</td>
+    <td valign="top">A string that will be treated as a path-like
+      string as a single command-line argument; you can use <code>;</code>
+      or <code>:</code> as
+      path separators and Ant will convert it to the platform's local
+      conventions.</td>
+  </tr>
+  <tr>
+    <td valign="top">pathref</td>
+    <td valign="top"><a href="#references">Reference</a> to a path
+      defined elsewhere.  Ant will convert it to the platform's local
+      conventions.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td>
+    <td valign="top">a space-delimited list of command-line arguments.</td>
+  </tr>
+</table>
+
+<p>It is highly recommended to avoid the <code>line</code> version
+when possible.  Ant will try to split the command line in a way
+similar to what a (Unix) shell would do, but may create something that
+is very different from what you expect under some circumstances.</p>
+
+<h4>Examples</h4>
+<blockquote><pre>
+  &lt;arg value=&quot;-l -a&quot;/&gt;
+</pre></blockquote>
+<p>is a single command-line argument containing a space character,
+<i>not</i> separate commands "-l" and "-a".</p>
+<blockquote><pre>
+  &lt;arg line=&quot;-l -a&quot;/&gt;
+</pre></blockquote>
+<p>This is a command line with two separate arguments, "-l" and "-a".</p>
+<blockquote><pre>
+  &lt;arg path=&quot;/dir;/dir2:\dir3&quot;/&gt;
+</pre></blockquote>
+<p>is a single command-line argument with the value
+<code>\dir;\dir2;\dir3</code> on DOS-based systems and
+<code>/dir:/dir2:/dir3</code> on Unix-like systems.</p>
+
+<h3><a name="references">References</a></h3>
+
+<p>Any project element can be assigned an identifier using its
+<code>id</code> attribute. In most cases the element can subsequently
+be referenced by specifying the <code>refid</code> attribute on an
+element of the same type.  This can be useful if you are going to
+replicate the same snippet of XML over and over again--using a
+<code>&lt;classpath&gt;</code> structure more than once, for example.</p>
+<p>The following example:</p>
+<blockquote><pre>
+&lt;project ... &gt;
+  &lt;target ... &gt;
+    &lt;rmic ...&gt;
+      &lt;classpath&gt;
+        &lt;pathelement location=&quot;lib/&quot;/&gt;
+        &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
+        &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
+      &lt;/classpath&gt;
+    &lt;/rmic&gt;
+  &lt;/target&gt;
+
+  &lt;target ... &gt;
+    &lt;javac ...&gt;
+      &lt;classpath&gt;
+        &lt;pathelement location=&quot;lib/&quot;/&gt;
+        &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
+        &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
+      &lt;/classpath&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>could be rewritten as:</p>
+<blockquote><pre>
+&lt;project ... &gt;
+  &lt;path id=&quot;project.class.path&quot;&gt;
+    &lt;pathelement location=&quot;lib/&quot;/&gt;
+    &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
+    &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
+  &lt;/path&gt;
+
+  &lt;target ... &gt;
+    &lt;rmic ...&gt;
+      &lt;classpath refid=&quot;project.class.path&quot;/&gt;
+    &lt;/rmic&gt;
+  &lt;/target&gt;
+
+  &lt;target ... &gt;
+    &lt;javac ...&gt;
+      &lt;classpath refid=&quot;project.class.path&quot;/&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre></blockquote>
+<p>All tasks that use nested elements for 
+<a href="CoreTypes/patternset.html">PatternSet</a>s, 
+<a href="CoreTypes/fileset.html">FileSet</a>s, 
+<a href="CoreTypes/zipfileset.html">ZipFileSet</a>s or 
+<a href="#path">path-like structures</a> accept references to these structures 
+as shown in the examples. Using <code>refid</code> on a task will ordinarily 
+have the same effect (referencing a task already declared), but the user 
+should be aware that the interpretation of this attribute is dependent on the 
+implementation of the element upon which it is specified. Some tasks (the 
+<a href="CoreTasks/property.html">property</a> task is a handy example) 
+deliberately assign a different meaning to <code>refid</code>.</p>
+
+
+<h3><a name="external-tasks">Use of external tasks</a></h3> 
+Ant supports a plugin mechanism for using third party tasks. For using them you 
+have to do two steps: 
+<ol>
+  <li>place their implementation somewhere where Ant can find them</li>
+  <li>declare them.</li>
+</ol> 
+Don't add anything to the CLASSPATH environment variable - this is often the  
+reason for very obscure errors. Use Ant's own <a href="install.html#optionalTasks">mechanisms</a> 
+for adding libraries: 
+<ul>
+  <li>via command line argument <code>-lib</code></li>
+  <li>adding to <code>${user.home}/.ant/lib</code></li>
+  <li>adding to <code>${ant.home}/lib</code></li>
+</ul>
+For the declaration there are several ways:
+<ul>
+  <li>declare a single task per using instruction using  
+      <code>&lt;<a href="CoreTasks/taskdef.html">taskdef</a> name=&quot;taskname&quot; 
+      classname=&quot;ImplementationClass&quot;/&gt;</code>
+      <br>
+      <code>&lt;taskdef name=&quot;for&quot; classname=&quot;net.sf.antcontrib.logic.For&quot; /&gt; 
+      &lt;for ... /&gt;</code>
+  </li>
+  <li>declare a bundle of tasks using a properties-file holding these 
+      taskname-ImplementationClass-pairs and <code>&lt;taskdef&gt;</code>
+      <br>
+      <code>&lt;taskdef resource=&quot;net/sf/antcontrib/antcontrib.properties&quot; /&gt; 
+      &lt;for ... /&gt;</code>
+  </li>
+  <li>declare a bundle of tasks using a <a href="CoreTypes/antlib.html">xml-file</a> holding these  
+      taskname-ImplementationClass-pairs and <code>&lt;taskdef&gt;</code>
+      <br>
+      <code>&lt;taskdef resource=&quot;net/sf/antcontrib/antlib.xml&quot; /&gt; 
+      &lt;for ... /&gt;</code>
+  </li>
+  <li>declare a bundle of tasks using a xml-file named antlib.xml, XML-namespace and 
+      <a href="CoreTypes/antlib.html#antlibnamespace"><code>antlib:</code> protocoll handler</a> 
+      <br>
+      <code>&lt;project xmlns:ac=&quot;antlib:net.sf.antconrib&quot;/&gt; 
+      &lt;ac:for ... /&gt;</code>
+  </li>
+</ul>
+
+If you need a special function, you should
+<ol>
+  <li>have a look at this manual, because Ant provides lot of tasks</li>
+  <li>have a look at the external task page in the <a href="../external.html">manual</a>
+      (or better <a href="http://ant.apache.org/external.html">online</a>)</li>
+  <li>have a look at the external task <a href="http://wiki.apache.org/ant/AntExternalTaskdefs">wiki 
+      page</a></li>
+  <li>ask on the <a href="http://ant.apache.org/mail.html#User%20List">Ant user</a> list</li>
+  <li><a href="tutorial-writing-tasks.html">implement </a>(and share) your own</li>
+</ol>
+
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/manual1.7.0/manual/usinglist.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/manual/usinglist.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/manual/usinglist.html	(revision 14989)
@@ -0,0 +1,46 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   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.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Apache Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Using Ant</h3>
+<a href="using.html#buildfile">Writing a Simple Buildfile</a><br>
+&nbsp;&nbsp;<a href="using.html#projects">Projects</a><br>
+&nbsp;&nbsp;<a href="using.html#targets">Targets</a><br>
+&nbsp;&nbsp;<a href="using.html#tasks">Tasks</a><br>
+&nbsp;&nbsp;<a href="using.html#properties">Properties</a><br>
+&nbsp;&nbsp;<a href="using.html#built-in-props">Built-in Properties</a><br>
+&nbsp;&nbsp;<a href="using.html#example">Example Buildfile</a><br>
+&nbsp;&nbsp;<a href="using.html#filters">Token Filters</a><br>
+&nbsp;&nbsp;<a href="using.html#path">Path-like Structures</a><br>
+&nbsp;&nbsp;<a href="using.html#arg">Command-line Arguments</a><br>
+&nbsp;&nbsp;<a href="using.html#references">References</a><br>
+&nbsp;&nbsp;<a href="using.html#external-tasks">Use of external tasks</a><br>
+
+</body>
+</html>
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/mission.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/mission.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/mission.html	(revision 14989)
@@ -0,0 +1,264 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Apache Ant Mission</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Apache Ant PMC">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                              <span class="sel">Apache Ant Mission</span>
+                              </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Apache Ant Mission</h1>
+            <h3 class="section">
+      <a name="Board Resolution"></a>
+      Board Resolution
+    </h3>
+                        <p>Apache Ant is a project of the <a href="http://www.apache.org/">Apache Software Foundation</a>.  It
+    started as a subproject of the <a href="http://jakarta.apache.org/">Apache Jakarta Project</a>.</p>
+                                <p>This is the board resolution (from the <a href="http://www.apache.org/foundation/records/minutes/2002/board_minutes_2002_11_18.txt">minutes</a>)
+    that created the Apache Ant project:</p>
+                                <pre class="code">
+7.D. Resolution [R3] to create the Ant PMC
+
+WHEREAS, the Board of Directors deems it to be in the best
+interests of the Foundation and consistent with the
+Foundation's purpose to establish a Project Management
+Committee charged with the creation and maintenance of
+open-source software related to the Apache Ant build tool, for
+distribution at no charge to the public.
+
+NOW, THEREFORE, BE IT RESOLVED, that a Project Management
+Committee (PMC), to be known as the &quot;Apache Ant PMC&quot;, be and
+hereby is established pursuant to Bylaws of the Foundation; and
+be it further
+
+RESOLVED, that the Apache Ant PMC be and hereby is responsible
+for the creation and maintenance of the Ant build system and
+related software components, based on software licensed to the
+Foundation; and be it further
+
+RESOLVED, that the office of &quot;Vice President, Apache Ant&quot; be
+and hereby is created, the person holding such office to serve
+at the direction of the Board of Directors as the chair of the
+Apache Ant PMC, and to have primary responsibility for
+management of the projects within the scope of responsibility
+of the Apache Ant PMC; and be it further
+
+RESOLVED, that the persons listed immediately below be and
+hereby are appointed to serve as the initial members of the
+Apache Ant PMC:
+
+   Bruce Atherton
+   Stephane Bailliez
+   Stefan Bodewig
+   Erik Hatcher
+   Diane Holt
+   Donald Leslie
+   Steve Loughran
+   Conor MacNeill
+   Costin Manolache
+   Sam Ruby
+   Jon Skeet
+   Magesh Umasankar
+   Christoph Wilhelms
+
+NOW, THEREFORE, BE IT FURTHER RESOLVED, that Conor MacNeill be
+and hereby is appointed to the office of Vice President, Apache
+Ant, to serve in accordance with and subject to the direction
+of the Board of Directors and the Bylaws of the Foundation
+until death, resignation, retirement, removal or
+disqualification, or until a successor is appointed; and be it
+further
+
+RESOLVED, that the initial Apache Ant PMC be and hereby is
+tasked with the creation of a set of bylaws intended to
+encourage open development and increased participation in the
+Apache Ant Project.
+
+By Unanimous Vote, Resolution R3 was approved. The Ant PMC is
+hereby created.
+    </pre>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/nightlies.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/nightlies.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/nightlies.html	(revision 14989)
@@ -0,0 +1,201 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Nightly Builds</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+        </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                              <span class="sel">Nightly Builds</span>
+                              </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Nightly Builds</h1>
+            <h3 class="section">
+      <a name="Nightly Builds"></a>
+      Nightly Builds
+    </h3>
+                        <p>If you wish to use the latest Ant features, you can try downloading a
+<a href="http://people.apache.org/builds/ant/nightly/">nightly build</a>.
+</p>
+                                <p>If you want to build Ant from sources, you can use a <a href="http://svn.apache.org/snapshots/ant/">Subversion snapshot</a>.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/page.css
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/page.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/page.css	(revision 14989)
@@ -0,0 +1,192 @@
+body {
+    background-color: #FFFFFF;
+    color: #000000;
+    margin: 0px 0px 0px 0px;
+    font-family: Verdana, Helvetica, sans-serif;
+    font-size : 90%;
+}
+
+a:link { color: #0F3660; }
+a:visited { color: #009999; }
+a:active { color: #000066; }
+a:hover { color: #000066; }
+
+.menucontainer {
+    float: left;
+    background-color: #4C6C8F;
+    margin: 0px 5px;
+    width: 250px;
+}
+
+.menu {
+    font-size : 90%;
+    padding: 3px 8px 5px 3px;
+    border-right: 1px solid #294563;
+    border-left: 1px solid #294563;
+}
+
+.menu a:link { color: #FFFFFF;  text-decoration : none;  }
+.menu a:visited { color: #FFFFFF; text-decoration : none; }
+.menu a:hover { color: #FFCC00; text-decoration : none; }
+.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
+.menu li  { list-style-image: url('images/label.gif'); font-weight : bold; }
+.menu ul ul li .sel { list-style-image: url('images/current.gif'); font-weight : normal; }
+.menu ul ul li  { list-style-image: url('images/page.gif'); font-weight : normal; }
+
+.menuheader {
+    color: #CFDCED;
+}
+
+.sel {
+    color: #ffcc00;
+}
+
+.tab { font-size : 85%; border: 0; background-color: #294563;}
+.tab a:link {   text-decoration : none;  }
+.tab a:visited { text-decoration : none; color: #2A4A6D }
+.tab a:hover { color: #000066; }
+
+table .title { background-color: #FFFFFF; width:100%; border: 0px; }
+.dida { font-size: 80%; }
+
+.pre { white-space: pre;}
+.nowrap { white-space: nowrap;}
+
+.main {
+    margin-left: 280px;
+    margin-right: 5px;
+}
+
+.content {
+    padding: 5px 5px 5px 10px;
+    font : small Verdana, Helvetica, sans-serif;
+    font-size : 90%;
+}
+
+.content .ForrestTable { width: 100%; background-color: #7099C5; color: #ffffff; font-size : 90%;}
+.content .ForrestTable caption { text-align: left; color: black; font-weight: bold; }
+.content .ForrestTable th { text-align: center; }
+.content .ForrestTable td { background-color: #f0f0ff; color: black; }
+
+.content .externals { width: 80%; background-color: #7099C5; color: #ffffff; font-size : 90%;}
+.content .externals caption { text-align: left; color: black; font-weight: bold; }
+.content .externals th { width: 120px; text-align: right; }
+.content .externals td { background-color: #f0f0ff; color: black; }
+
+
+
+.frame { margin: 5px 20px 5px 20px; font-size: 90%; }
+.frame .content { margin: 0px; }
+
+.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
+.note .label { background-color: #7099C5; color: #ffffff; }
+
+.warning { border: solid 1px #D00000; background-color: #fff0f0; }
+.warning .label { background-color: #D00000; color: #ffffff; }
+
+.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
+.fixme .label { background-color: #C6C600; color: #ffffff; }
+
+.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
+.codefrag {	font-family: "Courier New", Courier, monospace; }
+
+.highlight { background-color: yellow; }
+
+.minitoc {margin: 5px 5px 5px 40px;}
+
+.dtdElement { width: 100%;	font-size: 90%; background-color : #ffffff; }
+
+.dtdTag {    color: #990000; text-transform : uppercase;  font-style : normal;  font-size : 120%;  font-weight : bold; }
+
+.section {
+    font-family: Verdana, Helvetica, sans-serif;
+    background-color: #294563;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+    margin-top: 20px;
+    clear: right;
+}
+
+.subsection {
+    font-family: arial,helvetica,sanserif;
+    background-color: #4C6C8F;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+    clear: right;
+}
+
+.toc {
+    font-family: arial,helvetica,sanserif;
+    background-color: #4C6C8F;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+}
+
+.faq {
+    font-family: arial,helvetica,sanserif;
+    background-color: #4C6C8F;
+    color: #ffffff;
+    font-weight: bold;
+    padding: 2px;
+}
+
+.navpath {
+    font-family: arial,helvetica,sanserif;
+    background-color: #CFDCED;
+    padding: 2px 6px;
+    margin: 0px 0px 0px 0px;
+    font-size: 90%;
+    border-bottom: 2px solid #4C6C8F;
+}
+
+.title {
+    font-family: Verdana, Helvetica, sans-serif;
+}
+
+.copyright {
+    font-family: arial,helvetica,sanserif;
+    font-size: 90%;
+    background-color: #CFDCED;
+    clear: both;
+    text-align: center;
+    margin: 0px;
+    border-top: thin solid #4C6C8F;
+}
+
+.bluebar {
+    padding: 5px 5px 5px 10px;
+    background-color: #4C6C8F;
+    margin: 0px;
+}
+
+.lightbluebar {
+    padding: 5px 5px 5px 10px;
+    background-color: #CFDCED;
+    margin: 0px;
+    border-top: 1px solid #294563;
+    border-bottom: 1px solid #294563;
+}
+
+.logobar {
+    background-color: #294563;
+    padding-right: 10px;
+    margin: 0px;
+}
+
+.searchcaption {
+    color: #FFFFFF;
+    text-align: left;
+    font-family: arial,helvetica,sanserif;
+    font-size: 90%;
+    background-color: #4C6C8F;
+    margin: 0px;
+}
+
+@media print {
+   .menu {
+     display: none;
+   }
+}
Index: /release-kits/shared/ant-installer/web/manual1.7.0/problems.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/problems.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/problems.html	(revision 14989)
@@ -0,0 +1,369 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Having Problems?</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Conor MacNeill">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                              <span class="sel">Having Problems?</span>
+                              </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Having Problems?</h1>
+            <h3 class="section">
+      <a name="Having Problems?"></a>
+      Having Problems?
+    </h3>
+                        <p>
+           This page details some steps you can take to try and resolve
+           any problems you may be having with Ant. If you find you can't
+           resolve the problem, then this page will help you collect some of
+           the relevant information to provide in a bug report. This information
+           will help the Ant developers understand and resolve the problem.
+           Of course, not all the steps here will make sense for every problem
+           you may encounter - these are just some suggestions to point
+           you in the right direction.
+        </p>
+                                      <h4 class="subsection">
+        <a name="Ensure that you are actually running the version of Ant that you think you do"></a>
+        Ensure that you are actually running the version of Ant that you think you do
+      </h4>
+                        <p>Many tools include a version of Ant and some Operating
+        Systems even install it by default now, so you may have a
+        version of Ant installed that you haven't been aware of.</p>
+                                <p>One of the first things to do is to run
+          <br /><br />
+          <font face="verdana" size="-1">ant -version</font>
+          <br /><br />
+          and
+          <br /><br />
+          <font face="verdana" size="-1">ant -diagnostics</font>
+          <br /><br />
+          to be sure.  Also, we highly recommend that you run Ant with
+          an empty CLASSPATH.  If any other version of Ant can be
+          loaded from the CLASSPATH, many types of errors may happen
+          because of incompatible classes being loaded.</p>
+                                <p>See <a href="faq.html">the FAQ</a> for <a href="faq.html#NoClassDefFoundError">some</a> <a href="faq.html#InstantiationException">examples</a>, but many
+        other problems are a result of an old version of Ant on your
+        system as well.</p>
+                                                          <h4 class="subsection">
+        <a name="Read the Manual"></a>
+        Read the Manual
+      </h4>
+                        <p>
+            The first step to take when you have a problem with Ant is to read
+            the <a href="manual/index.html">manual</a> entry for the task or
+            concept that is giving you trouble. In particular, check the
+            meaning of a task's attributes and nested elements. Perhaps an
+            attribute is available that would provide the behavior you require.
+            If you have problems with the manual itself, you can submit a
+            documentation bug report (see below) to help us improve the Ant
+            documentation.
+         </p>
+                                                          <h4 class="subsection">
+        <a name="Examine Debug Output"></a>
+        Examine Debug Output
+      </h4>
+                        <p>
+            If you're still having a problem, the next step is to try and
+            gather additional information about what Ant is doing.
+            Try running Ant with the <code>verbose</code> flag:
+            <br /><br />
+            <font face="verdana" size="-1">ant -verbose</font>
+            <br /><br />
+            or
+            <br /><br />
+            <font face="verdana" size="-1">ant -v</font>
+            <br /><br />
+
+            This will produce output that starts like the following:</p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+Ant version 1.4.1 compiled on October 11 2001<br />
+Buildfile: build.xml<br />
+Detected Java version: 1.3 in: D:\usr\local\java\jdk13\jre<br />
+Detected OS: Windows NT<br />
+parsing buildfile D:\ant\build.xml
+with URI = file:D:/ant/build.xml<br />
+Project base dir set to: D:\ant<br />
+  [property] Loading Environment env.<br />
+  [property] Loading D:\ant\conf.properties<br />
+Build sequence for target 'debug' is [debug]<br />
+Complete build sequence is [debug, gensrc, compile, jar, test]<br />
+. . .<br />
+
+      </td>
+      </tr>
+          </table>
+                                <p>
+              You should be able to see from the trace more about what Ant
+              is doing and why it's taking a particular course of action.
+              If you need even more information, you can use the
+              <code>-debug</code> flag rather than
+              <code>-verbose</code>.
+              This will generally produce so much
+              output that you may want to save the output to a file and
+              analyze it in an editor. You can save the output using the
+              <code>-logfile &lt;filename&gt;</code> flag, or
+              using redirection.
+           </p>
+                                <p>
+              Once you have all this debug information, how can you use it
+              to solve your problem?  That will depend on the task in question
+              and the nature of your problem. Each task logs different aspects
+              of its operation, but it should give you an idea of what is going
+              on. For example, the <code>&lt;javac&gt;</code> task logs the
+              reasons why it
+              chooses to compile particular class files and not others, along
+              with which compiler it is using and the arguments it will pass
+              to that compiler. The following partial trace shows why
+              <code>&lt;javac&gt;</code> is adding one class file but
+              skipping another.
+              This is followed by which compiler it will be using, the
+              arguments that will get passed to the compiler,
+              and a list of all the class files to be compiled.
+           </p>
+                                      <table class="ForrestTable" cellspacing="1" cellpadding="4">
+              <tr>
+                      <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+[javac] Test.java omitted as D:\classes\Test.class is up to date.<br />
+[javac] Unset.java added as D:\classes\Unset.class is outdated.<br />
+[javac] Compiling 1 source file to D:\classes<br />
+[javac] Using classic compiler<br />
+[javac] Compilation args: -d D:\classes -classpath D:\classes;<br />
+D:\jdk118\classes.zip; -sourcepath D:\src\java -g:none<br />
+[javac] File to be compiled:<br />
+D:\src\java\Unset.java<br />
+
+      </td>
+      </tr>
+          </table>
+                                <p>
+              In many cases, Ant tasks are wrappers around OS commands or
+              other Java classes. In debug mode, many of these tasks will
+              print out the equivalent command line, as the
+              <code>&lt;javac&gt;</code> task
+              output does. If you are having a problem, it is often useful to
+              run the command directly from the command line, in the same way
+              Ant is running it, and see if the problem occurs from there
+              as well. The problem may be in the command that is being run,
+              or it may be in the way the Ant task is running the command.
+              You can also see the effect of changing attribute values on the
+              generated command line. This can help you to understand whether
+              you are using the correct attributes and values.
+            </p>
+                                                          <h4 class="subsection">
+        <a name="Has It Been Fixed?"></a>
+        Has It Been Fixed?
+      </h4>
+                        <p>
+            After examining the debug output, if you still believe that the
+            problem you are having is caused by Ant, chances are that someone
+            else may have already encountered this problem, and perhaps it has
+            been fixed. The next step, therefore, would be to download the
+            sources of ant, see <a href="svn.html">svn</a>.
+        </p>
+                                <p>
+          <a href="http://vmgump.apache.org/gump/public/index.html">Gump</a>
+          is building ant every night and using the ant built from the
+          latest source to build a long list of open source projects. However,
+          the version of ant built by gump is not available for download. Even
+          if it were, it would not include most of the optional tasks.
+        </p>
+                                <p>
+            We currently do not have nightly builds including the optional tasks.
+        </p>
+                                            <h3 class="section">
+      <a name="bugs"></a>
+      bugs
+    </h3>
+                        <p>If you are convinced that you have identified an unfixed bug, please turn to
+      our document concerning the <a href="bugs.html">bug database</a>.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/projects.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/projects.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/projects.html	(revision 14989)
@@ -0,0 +1,1292 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Related Projects</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                              <span class="sel">Related Projects</span>
+                              </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Related Projects</h1>
+            <h3 class="section">
+      <a name="Related Projects"></a>
+      Related Projects
+    </h3>
+                        <p>Nothing listed here is directly supported by the Ant
+      developers, if you encounter any problems with them, please use
+      the contact information.</p>
+                                      <h4 class="subsection">
+        <a name="AndroMDA"></a>
+        AndroMDA
+      </h4>
+                        <p>AndroMDA is a code generator tool that follows the Model
+        Driven Architecture (MDA) paradigm. It takes a UML model from
+        a CASE-tool and generates classes and deployable components
+        (J2EE or other) specific for your application
+        architecture.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4.1 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.andromda.org/">http://www.AndroMDA.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=73047">project mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          BSD license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntContrib"></a>
+        AntContrib
+      </h4>
+                        <p>The Ant-Contrib project is a collection of user supplied
+        task (like an <code>&lt;if&gt;</code> task) and a development
+        playground for experimental tasks like a C/C++ compilation
+        task for different compilers.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.4.1 and above
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://ant-contrib.sourceforge.net/">http://ant-contrib.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=36177">project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antelope"></a>
+        Antelope
+      </h4>
+                        <p>A GUI for running Ant and editing build files, can run as
+        stand-alone or as a plugin to jEdit. In addition to running
+        targets, Antelope can generate performance statistics and can
+        trace/display a target's execution path without actually
+        executing the target.</p>
+                                <p>Includes several additional tasks: Assert, If/Else,
+        Try/Catch/Finally, Switch, Variable, Stopwatch, Limit, Math,
+        Post, SSH, SCP, AntFetch, AntCallBack.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and higher.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antelope.tigris.org/">http://antelope.tigris.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:daleanson@users.sourceforge.net">Dale Anson</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntHill"></a>
+        AntHill
+      </h4>
+                        <p>Anthill is a build tool that promotes a controlled build
+        process by ensuring that every build reflects the source
+        repository contents and tagging the repository with a unique
+        build number after every build. Anthill also encourages the
+        sharing of knowledge within an organization by automatically
+        updating a project intranet site with artifacts from the
+        latest build.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.3, is compatible with Ant 1.3 to 1.4.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.urbancode.com/projects/anthill/">http://www.urbancode.com/projects/anthill/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:mbz@urbancode.com">Maciej Zawadzki</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Mozilla-like license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antigen"></a>
+        Antigen
+      </h4>
+                        <p>Antigen (Ant Installer Generator) is a tool to take an Ant build script, combine it with a GUI
+        and wrap it up as an executable jar file. Its main use is for creating graphical, ant-based installers.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          bundles Ant 1.6.2
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antigen.sourceforge.net/">http://antigen.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:johndavidtaylor@users.sourceforge.net">Jon Tayler</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Academic Free License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="AntInstaller"></a>
+        AntInstaller
+      </h4>
+                        <p>Builds MSI style installers (with command line option)
+        using Ant as Back end. UI developed by writing an XML install
+        descriptor.  Runtime launched from scripts or an all inclusive
+        Jar.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1 others not tested
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antinstaller.sf.net/">http://antinstaller.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:teknopaul@users.sourceforge.net">teknopaul@users.sourceforge.net</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL but in the process of of moving to Apache2.0 on request
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antlion"></a>
+        Antlion
+      </h4>
+                        <p>The Antlion Project adds value to Ant build scripts by providing
+        tasks which centralizes the library dependencies, and enables
+        projects to define dependencies upon other projects.</p>
+                                <p>External dependencies may be loaded from a custom local
+        repository or Maven-like remote repositories. Antlion handles
+        the generation of properties, filesets, and paths.</p>
+                                <p>Inter-project dependencies allow for building the other
+        project's files if they aren't already built.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antlion.sourceforge.net/">http://antlion.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://sourceforge.net/mail/?group_id=93410">Project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache License, Version 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Antworks"></a>
+        Antworks
+      </h4>
+                        <p>The antworks project is a set of tools and standardized targets that
+        greatly simplifies using ant in your project.</p>
+                                <p>
+            The driver behind antworks is Importer. Importer is an extension to the
+            ant import task that will download and
+            cache an ant build.xml file and it's associated resources called
+            antlets.  Antlets are available for Java compiling
+            and packaging,  JUnit, Forrest, J2EE and
+            <a href="http://antworks.sourceforge.net/antlets/">more</a>.
+            </p>
+                                <p>
+            See the <a href="http://antworks.sourceforge.net/start.html ">Getting Started</a>
+            guide for more information.
+            </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          1.6 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://antworks.sourceforge.net/">http://antworks.sourceforge.net/index.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://lists.sourceforge.net/lists/listinfo/antworks-developers">Antworks Developers mailing lists</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          The Apache License 2.0
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="BuildMonkey"></a>
+        BuildMonkey
+      </h4>
+                        <p>BuildMonkey is a Web-based automated build dashboard, with upload
+           capability and google web search. It schedules the running of Ant
+           build scripts - checking sources out of CM - and makes the results
+           available centrally.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5.4 or later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.buildmonkey.com/">http://www.buildmonkey.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jb@buildmonkey.com">jb@buildmonkey.com</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware, commercial/support licences available
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="CruiseControl"></a>
+        CruiseControl
+      </h4>
+                        <p>CruiseControl is a tool for setting up a continuous build
+        process.  CruiseControl provides an Ant wrapper and a set of
+        tasks to automate the checkout/build/test cycle. CruiseControl
+        also comes bundled with a servlet for viewing the status of
+        the current build, as well as previous build results.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.2 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cruisecontrol.sourceforge.net/">http://cruisecontrol.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://cruisecontrol.sourceforge.net/contact.html">Project Mailing Lists and Administrators</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Release 1.0 has been licensed under the GNU General Public
+            License.  Starting with release 1.1 the license has been
+            changed to a BSD-like license.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Invicta"></a>
+        Invicta
+      </h4>
+                        <p>Invicta is a build management tool. Using simple project definition files,
+        it generates powerful build scripts (such as ANT) while hiding their
+        complexity. Invicta is a modular framework that allows developing additional
+        components and output types.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.5 and higher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://invicta.sf.net/">http://invicta.sf.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://invicta.sf.net/contact.html">Project Mailing Lists and Administrators</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="JAM - JavaGen Ant Modules"></a>
+        JAM - JavaGen Ant Modules
+      </h4>
+                        <p>JAM is a modular Ant toolkit for developing and testing Java/J2EE
+        applications. JAM supports EJB and Servlet/JSP development using XDoclet,
+        JUnit, Cactus, Maven, Castor and MDA/UML code generation on various J2EE
+        servers including JBoss.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.javagen.com/jam.jsp">http://www.javagen.com/jam.jsp</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.javagen.com/feedback.do">Feedback</a> <br />
+                <a href="http://www.javagen.com/bugs.do">Bug Reports</a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Krysalis Centipede"></a>
+        Krysalis Centipede
+      </h4>
+                        <p>The Centipede admin told us, that that project
+           "is no more" and that "Antworks has taken it place."
+        </p>
+                                                          <h4 class="subsection">
+        <a name="Leafcutter"></a>
+        Leafcutter
+      </h4>
+                        <p>Leafcutter is an API which allows you to execute Ant tasks from Java code. <br />
+           Leafcutter is useful as: <ul>
+           <li>A way of integrating Ant tasks into existing Java programs. </li>
+           <li>A wholesale alternative to standard Ant for process automation. </li>
+           </ul>
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <i>unknown</i>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://leafcutter.dev.java.net/">https://leafcutter.dev.java.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://leafcutter.dev.java.net/servlets/ProjectForumView">Discussion Forum</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache Software Foundation License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="luntbuild"></a>
+        luntbuild
+      </h4>
+                        <p>Luntbuild is an open source build automation and management
+        tool based on Apache Ant. Builds are setup through concepts of
+        projects, views, schedules, modules, etc. All configurations
+        and monitoring tasks is performed from a clean web
+        interface. It supports schedules builds, force builds,
+        rebuilds, clean build, increment build, etc.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.x
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sourceforge.net/projects/luntbuild/">http://www.sourceforge.net/projects/luntbuild/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/luntbuild/">luntbuild project page</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Opensource
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="NAnt"></a>
+        NAnt
+      </h4>
+                        <p>NAnt is a .NET based build tool. In theory it is kind of
+        like make without make's wrinkles. In practice it's a lot like
+        Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          compatible in spirit.
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://nant.sourceforge.net/">http://nant.sourceforge.net/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/mail/?group_id=31650">project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Parabuild"></a>
+        Parabuild
+      </h4>
+                        <p>Parabuild is an automated multiplatform build management server.
+        Parabuild helps software teams and organizations of all sizes reduce
+        risks of project failures and increase productivity by providing provides
+        automatic continuous integration builds and stable scheduled builds.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.3 and later
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.viewtier.com/products/parabuild.htm">http://www.viewtier.com/products/parabuild.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.viewtier.com/about_us.htm">http://www.viewtier.com/about_us.htm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Commercial
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Rant"></a>
+        Rant
+      </h4>
+                        <p>Rant stands for Remote Ant. It is a distributed build
+        system that allows an Ant build file to launch builds on other
+        systems and receive exceptions should they occur.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://sourceforge.net/projects/remoteant/">http://sourceforge.net/projects/remoteant/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:cnelson@einnovation.com">Chris Nelson</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          MIT License
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Savant"></a>
+        Savant
+      </h4>
+                        <p>Savant helps simplify builds and codebases by handling the
+        resolution of project dependencies automatically. Savant supports
+        Maven style dependency downloads and various other methods of
+        retrieving dependencies, including fetching files from CVS modules.
+        Savant goes a step further than other dependency solutions and provides
+        the means for multiple internal projects to build each other in order
+        to resolve inter-project dependencies.</p>
+                                <p>Savant can be used via various Ant types and tasks as well as used
+        from any Java application including those that do not make use of Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.1
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.inversoft.com/">http://www.inversoft.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.inversoft.com/contact.html">http://www.inversoft.com/contact.html</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          LGPL
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="WebTest"></a>
+        WebTest
+      </h4>
+                        <p>WebTest is a free open source tool for automated testing of web applications.
+        It is a set of powerful Ant tasks allowing to call web pages, mimic user actions
+        (clicking links, filling forms, ...) and verify the results.
+        The generated reports give comprehensive information on success and failure of the test steps.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.6.5
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://webtest.canoo.com/">http://webtest.canoo.com/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://lists.canoo.com/mailman/listinfo/webtest/">project mailing list</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Apache like license
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="XML Publication"></a>
+        XML Publication
+      </h4>
+                        <p>XML Publication is a set of tools to generate Web pages
+        from desktop documents or other structured documents using
+        XSLT and Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.4
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://XMLpublication.org/">http://XMLpublication.org/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:jmvanel@free.fr">Jean-Marc Vanel</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          GNU General Public License.
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="yEd"></a>
+        yEd
+      </h4>
+                        <p>yEd is a freeware multi-purpose graph and diagram editor
+        that runs on the Java 2 platform. It provides an import filter
+        for Ant build scripts that makes it possible to conveniently
+        display and browse the dependencies between the different targets
+        of the build file. This is especially useful for debugging and
+        understanding large build files.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Compatibility:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant 1.x
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.yworks.com/products/yed/">http://www.yworks.com/products/yed/</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Contact:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.yworks.com/en/company_contact.htm">yWorks Support</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          License:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Freeware
+      </td>
+      </tr>
+          </table>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/resources.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/resources.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/resources.html	(revision 14989)
@@ -0,0 +1,1473 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - Resources</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Stefan Bodewig">
+  <meta name="email" content="bodewig@apache.org">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                              <span class="sel">Resources</span>
+                              </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">Resources</h1>
+            <h3 class="section">
+      <a name="FAQs"></a>
+      FAQs
+    </h3>
+                              <h4 class="subsection">
+        <a name="At Ant's website"></a>
+        At Ant's website
+      </h4>
+                        <p>Starting with the release of Ant 1.4 the Ant's FAQ is
+        bundled with the distribution, the most recent version can
+        always be found at the website.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          FAQ:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="faq.html">http://ant.apache.org/faq.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="jGuru"></a>
+        jGuru
+      </h4>
+                        <p>jGuru hosts an interactive Ant discussion forum and FAQ system</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Forum:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.jguru.com/forums/home.jsp?topic=Ant">http://www.jguru.com/forums/home.jsp?topic=Ant</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          FAQ:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.jguru.com/faq/home.jsp?topic=Ant">http://www.jguru.com/faq/home.jsp?topic=Ant</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="FAQ about Borland Application Server tasks"></a>
+        FAQ about Borland Application Server tasks
+      </h4>
+                        <p>Benoit Moussaud, the original author of the Borland
+        Application Server specific <a href="manual/OptionalTasks/ejb.html#ejbtasks">EJB tasks</a> has put
+        together a FAQ for this specific subtask.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          FAQ:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.moussaud.org/ejbjar.html">http://www.moussaud.org/ejbjar.html</a>
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="WIKIs"></a>
+      WIKIs
+    </h3>
+                              <h4 class="subsection">
+        <a name="Apache"></a>
+        Apache
+      </h4>
+                        <p>The ASF provides a Wiki farm for Apache projects.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Main page:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://wiki.apache.org/general">Apache Wiki Farm</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ant Wiki:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://wiki.apache.org/ant/">Ant Wiki</a>
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="Books"></a>
+      Books
+    </h3>
+                        <p>The most recent books come first</p>
+                                      <h4 class="subsection">
+        <a name="Ant in Action"></a>
+        Ant in Action
+      </h4>
+                        <p>Published April/May 2007, and covering Ant 1.7.</p>
+                                <p>This is a major rewrite of the first edition; still 600 pages long.
+        </p>
+                                <p>
+          This book moves up from Ant1.5 to Java1.5 and 1.7, with a near-complete
+          rewrite of the applied-ant section, covering new topics such as
+          antlibs, repository management with Ivy, Xml Schema validation,
+          EJB3.0/Java EE development and advanced deployment using SmartFrog.
+          The ant coding section looks at AntUnit, antlib authoring and
+          scripting languages, while the beginners chapters, the first third
+          of the book, still shows developers how to build, test, package and
+          redistribute a Java application.
+        </p>
+                                <p>
+          If you are one of the 20,000+ owners of the first edition, it is now
+          obsolete. Sorry :)
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran and Erik Hatcher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Publisher URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.manning.com/loughran/">
+                http://www.manning.com/loughran/
+              </a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Book URL
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://antbook.org/">
+                http://antbook.org/
+              </a>
+            
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Source code repository
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://sourceforge.net/projects/antbook">
+                http://sourceforge.net/projects/antbook
+              </a>
+            
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>1-932394-80-X</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/1-932394-80-X/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=1-932394-80-X" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=1-932394-80-X" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=1-932394-80-X&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Ant: The Definitive Guide, 2nd edition"></a>
+        Ant: The Definitive Guide, 2nd edition
+      </h4>
+                        <p>Published April 2005, and covers Ant release 1.6.1.</p>
+                                <p>This is a complete rewrite of the first edition; this book is
+        now 290 pages and so covers Ant in more depth than its predecessor.
+        </p>
+                                <p>It also mixes reference information (tables) with text explanation
+        on how to use the tasks. Contents includes JUnit, CVS, execution, basic
+        deployment, Web application development and XDoclet. There is also coverage
+        of XDoclet, and a chapter on how to extend Ant in Java.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Holzner
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.oreilly.com/catalog/anttdg2/">http://www.oreilly.com/catalog/anttdg2/</a>
+            
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>0596006098</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0596006098/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=0596006098" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=0596006098" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=0596006098&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Pragmatic Project Automation"></a>
+        Pragmatic Project Automation
+      </h4>
+                        <p>
+
+        How to Build, Deploy, and Monitor Java Applications.
+        Published: July 2004 ISBN:        0-9745140-3-9
+        </p>
+                                <p>
+          This is not a reference guide to Ant, but a book on how to automate the build process.
+          The core build, continuous integration, reporting and release management
+          are all covered. Ant is of course central to this. This is a fun read!
+        </p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Mike Clark
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          
+              <a href="http://www.pragmaticprogrammer.com/sk/auto/">http://www.pragmaticprogrammer.com/sk/auto//</a>
+            
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>0974514039</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0974514039/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=0974514039" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=0974514039" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=0974514039&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Extreme Programming with Ant"></a>
+        Extreme Programming with Ant
+      </h4>
+                        <p> This book shows how to implement an XP project using Ant 1.5.3, and many other 3rd party tools.  Covers:</p>
+                                <ul>
+               <li>The fundamentals of Ant: concepts, core and optional tasks</li>
+               <li>How to write custom Ant components, including custom Tasks, Loggers, Listeners, Input Handlers, Selectors, Filters, Mappers and Data Types</li>
+               <li>Mitigating risks by creating spike tests with Ant buildfiles</li>
+               <li>Add CVS version control and testing with JUnit</li>
+               <li>Automate nightly builds and reporting</li>
+               <li>Deploy applications dynamically using XDoclet</li>
+               <li>Enforcing Code Standards with Jalopy, PMD, CheckStyle, iContract, JDepend</li>
+               <li>Using Remote Ant (Rant) and CruiseControl</li>
+               <li>Generating project documentation</li>
+               <li>Adapting an XP process for use by other teams or across an enterprise</li>
+               <li>Custom Task examples to generating UML diagrams, creating reports and metrics on-the-fly</li>
+               <li>Follows a case-study of a team that implements an XP Project</li>
+            </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Glenn Niemeyer and Jeremy Poteet
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sams.com/catalog/product.asp?product_id=%7BFB825A48-BC04-4C55-BD8C-DF93C6BBF920%7D">http://www.sams.com/catalog/product.asp?product_id=%7BFB825A48-BC04-4C55-BD8C-DF93C6BBF920%7D</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>0672325624</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0672325624/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=0672325624" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=0672325624" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=0672325624&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Ant. Das Java-Build-Tool in der Praxis"></a>
+        Ant. Das Java-Build-Tool in der Praxis
+      </h4>
+                        <p>A German language book on Ant that covers Ant 1.5.
+        This is the original description:</p>
+                                <pre class="code">
+        Das Build-Tool Ant ist das Open-Source-Werkzeug, das den Entwicklungsprozess einer Java-
+        oder J2EE-Anwendung wesentlich vereinfacht. Gesteuert durch XML-basierte Skripte fï¿œhrt es
+        nahezu alle Aufgaben aus, die nach dem Kodieren einer Anwendung anfallen.</pre>
+                                <p>Some topics:</p>
+                                <ul>
+                <li>creating archives (zip, jar)</li>
+                <li>call the java compiler</li>
+                <li>edit property files</li>
+                <li>file operation</li>
+                <li>source code control systems</li>
+            </ul>
+                                <p>The book is available in English as "Ant: The Java Build Tool in Practice"</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Bernd Matzke
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.addison-wesley.de/main/main.asp?page=home/bookdetails&amp;ProductID=13459">http://www.addison-wesley.de/main/main.asp?page=home/bookdetails&amp;ProductID=13459</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>3827320666</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/3827320666/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=3827320666" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=3827320666" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=3827320666&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Java Development with Ant"></a>
+        Java Development with Ant
+      </h4>
+                        <p>Published 2002. This book covers Ant 1.5, including:</p>
+                                <ul>
+                <li>The new Ant 1.5 features</li>
+                <li>Ant's datatypes and property handling</li>
+                <li>JUnit testing and reporting</li>
+                <li>Continuous integration techniques</li>
+                <li>XDoclet for attribute-oriented programming</li>
+                <li>EJB generation, building, and packaging</li>
+                <li>Writing and testing native code</li>
+                <li>Building Web Services with Apache Axis</li>
+                <li>Deploying your system to multiple remote servers</li>
+                <li>Using and writing
+                    <ul>
+                        <li>Loggers</li>
+                        <li>Listeners</li>
+                        <li>Selectors</li>
+                        <li>Custom tasks</li>
+                    </ul>
+                </li>
+            </ul>
+                                <p>Also available in Korean and German editions</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Erik Hatcher and Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.manning.com/antbook/">http://www.manning.com/antbook/</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>1930110588</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/1930110588/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=1930110588" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=1930110588" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=1930110588&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Ant: The Definitive Guide, 1st edition"></a>
+        Ant: The Definitive Guide, 1st edition
+      </h4>
+                        <p>Published 2002, Covers Ant release 1.4.1.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Jesse E. Tilly and Eric M. Burke
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.oreilly.com/catalog/anttdg/">http://www.oreilly.com/catalog/anttdg/</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>0596001843</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0596001843/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=0596001843" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=0596001843" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=0596001843&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Ant. Kurz und Gut."></a>
+        Ant. Kurz und Gut.
+      </h4>
+                        <p>A German language short reference for Ant that covers Ant
+        1.4.  This is the original description:</p>
+                                <pre class="code">
+  Ant kurz &amp; gut enthält eine vollständige Referenz der Built-in Tasks
+  und ihrer jeweiligen Attribute sowie kurze Beispiele für ihre Verwendung.
+  Daneben bietet das Buch eine knappe Einführung in die Arbeit mit Ant und
+  eine Erläuterung der Ant-Basiselemente (Projekte, Properties, Targets und Tasks).
+  Behandelt werden außerdem grundlegende Konzepte wie Filesets, Patternsets und
+  Pfadstrukturen, das Schreiben eigener Tasks, die Aufruf-Syntax und Optional Tasks. </pre>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Stefan Edlich
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.amazon.de/exec/obidos/ASIN/3897212412/">http://www.amazon.de/exec/obidos/ASIN/3897212412/</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>3897212412</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/3897212412/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=3897212412" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=3897212412" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=3897212412&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                                            <h4 class="subsection">
+        <a name="Java Tools for eXtreme Programming"></a>
+        Java Tools for eXtreme Programming
+      </h4>
+                        <p>This book covers the following XP subjects:</p>
+                                <ul>
+                <li>Automated unit and functional testing</li>
+                <li>Continuous integration through build and deployment automation</li>
+                <li>The value of refactoring and continuous integration</li>
+                <li>How Ant, JUnit, JUnitPerf, Cactus, HTTPUnit, and JMeter
+                can be used to achieve the goals of the XP methodology</li>
+            </ul>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Authors:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Richard Hightower and Nicholas Lesiecki
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.wiley.com/cda/product/0,,047120708X,00.html">http://www.wiley.com/cda/product/0,,047120708X,00.html</a>
+      </td>
+      </tr>
+            <tr><th>ISBN:</th><td>047120708X</td></tr>
+    </table>
+                            <p><b>Available from:</b><br>
+    <a href="http://www.amazon.com/exec/obidos/tg/detail/-/047120708X/apachesoftwar-20/" target="_blank">Amazon.com</a>
+  | <a href="http://service.bfast.com/bfast/click?bfmid=2181&amp;bfmtype=book&amp;sourceid=41462544&amp;bfpid=047120708X" target="_blank">Barnes &amp; Noble</a>
+  | <a href="http://www.booksense.com/product/info.jsp?affiliateId=Apache&amp;isbn=047120708X" target="_blank">Book Sense</a>
+  | <a href="http://www.powells.com/cgi-bin/biblio?isbn=047120708X&amp;partner_id=29693" target="_blank">Powells.com</a>
+<br></p>
+                              <h3 class="section">
+      <a name="Articles and Presentations"></a>
+      Articles and Presentations
+    </h3>
+                        <p>The following sections list articles and presentations
+      written about Apache Ant.  If you've written something that
+      should be included, please post it to one of the mailing
+      lists.</p>
+                        <h3 class="section">
+      <a name="Articles"></a>
+      Articles
+    </h3>
+                              <h4 class="subsection">
+        <a name="Extending Ant Input Abilities"></a>
+        Extending Ant Input Abilities
+      </h4>
+                        <p>The contents of this document is the following:<ul>
+           <li>Section 2 provides a simple example how InputHandlers are created,</li>
+           <li>Section 3 develops an inputhandler that masks the passwords typed on the command line,</li>
+           <li>Section 4 gives two handlers, whose input is typed in graphical components,</li>
+           <li>Section 5 extends Input task so that we can use dierent input handlers on different uses of &lt;input&gt;,</li>
+           <li>Section 6 describes a problem found while writing this document,</li>
+           <li>Section 7 summarizes some dark corners the author do not understand.</li>
+         </ul></p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Ivan Ivanov
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="https://sourceforge.net/project/showfiles.php?group_id=103509">https://sourceforge.net/project/showfiles.php?group_id=103509 (Download ZIP+PDF from Sourceforge)</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Keep the Ant, Hold the XML"></a>
+        Keep the Ant, Hold the XML
+      </h4>
+                        <p>Key G. Gauthier talks about writing "buildfiles" in Java.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Key G. Gauthier
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ftponline.com/javapro/2004_06/magazine/features/kgauthier/">http://www.ftponline.com/javapro/2004_06/magazine/features/kgauthier/</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant 1.6 for Task Writers"></a>
+        Ant 1.6 for Task Writers
+      </h4>
+                        <p>This article talks about XML namespace handling, Ant
+        libraries and the newly introduced type polymorphism.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Stefan Bodewig
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://otn.oracle.com/pub/articles/bodewig_taskwriters.html">http://otn.oracle.com/pub/articles/bodewig_taskwriters.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Managing Build Complexity with Apache Ant 1.6"></a>
+        Managing Build Complexity with Apache Ant 1.6
+      </h4>
+                        <p>As Apache Ant is applied to increasingly difficult tasks,
+        its users are creating more complex and less legible build
+        files. This is due, in part, to the limited tools for
+        decomposition and code reuse within previous versions of
+        Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Geoffrey Wiseman
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sys-con.com/story/?storyid=45078&amp;DE=1">http://www.sys-con.com/story/?storyid=45078&amp;DE=1</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="New Ant 1.6 Features for Big Projects"></a>
+        New Ant 1.6 Features for Big Projects
+      </h4>
+                        <p>This article describes the &lt;macrodef&gt;, &lt;import&gt;
+          and &lt;subant&gt; tasks in detail and shows how they help in
+          building bigger systems.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Stefan Bodewig
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://otn.oracle.com/pub/articles/bodewig_ant1.6.html">http://otn.oracle.com/pub/articles/bodewig_ant1.6.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Programmieren für Ant"></a>
+        Programmieren für Ant
+      </h4>
+                        <p>This article describes the main topics of programming your own tasks.
+        Description is done on five examples.</p>
+                                <p>This article is written in German and published in
+        <a href="http://www.sigs-datacom.de/sd/publications/js/index.htm">Java-Spektrum</a>
+        5/2004.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Bernd Matzke
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sigs-datacom.de/sd/news/document?PID=216">http://www.sigs-datacom.de/sd/news/document?PID=216</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant in Anger: Using Ant in a Production Development System"></a>
+        Ant in Anger: Using Ant in a Production Development System
+      </h4>
+                        <p>This document describes strategies and some basic examples of how to
+        use Ant in larger team development projects.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="ant_in_anger.html">http://ant.apache.org/ant_in_anger.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant Task Guidelines"></a>
+        Ant Task Guidelines
+      </h4>
+                        <p>This document describes how to write custom Ant tasks, and how to submit
+        them to potentially be included in Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="ant_task_guidelines.html">http://ant.apache.org/ant_task_guidelines.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Build a Better Robot with Ant"></a>
+        Build a Better Robot with Ant
+      </h4>
+                        <p>This article describes the gory details of writing custom
+           Ant tasks.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Erik Hatcher
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.fawcette.com/javapro/2003_02/magazine/features/ehatcher/">http://www.fawcette.com/javapro/2003_02/magazine/features/ehatcher/l</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Automating the build and test process"></a>
+        Automating the build and test process
+      </h4>
+                        <p>This article demonstrates an approach to the automated build and test process. Working with Ant 1.3 and the JUnit test framework, it shows how to automate a process that captures pertinent information about each test suite run, generates an attractive report, and e-mails the report.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:ehatcher@apache.org">Erik Hatcher</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ibm.com/developerworks/java/library/j-junitmail/">http://www.ibm.com/developerworks/java/library/j-junitmail/</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Incremental development with Ant and JUnit"></a>
+        Incremental development with Ant and JUnit
+      </h4>
+                        <p>This article explores the benefits of unit testing with Ant and
+        JUnit, detailing how to develop automated unit tests and integrate them
+        into your build process.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:malcolm@nuearth.com">Malcolm Davis</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java">http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Automate your build process using Java and Ant"></a>
+        Automate your build process using Java and Ant
+      </h4>
+                        <p>This article provides an introduction to using Ant with some basic
+        examples and by highlighting some of the important tasks.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:michael.cymerman@javaworld.com">Michael Cymerman</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html">http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Short tutorial in Cactus' (formerly J2EEUnit)       documentation"></a>
+        Short tutorial in Cactus' (formerly J2EEUnit)       documentation
+      </h4>
+                        <p>There is a short tutorial on how to use Ant in Cactus'
+        documentation.  It has a slant towards build files that will be used
+        with Cactus.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Cactus development team
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://jakarta.apache.org/cactus/howto_ant_primer.html">http://jakarta.apache.org/cactus/howto_ant_primer.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Developing custom Ant tasks with VisualAge for Java"></a>
+        Developing custom Ant tasks with VisualAge for Java
+      </h4>
+                        <p>This article outlines how to integrate Ant into VisualAge for Java,
+        and how to write and debug custom tasks using the IDE and the
+        integrated debugger.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:glenn@somanetworks.com">Glenn McAllister</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Automated builds with VisualAge for Java and Ant"></a>
+        Automated builds with VisualAge for Java and Ant
+      </h4>
+                        <p>This article shows how you can perform command line builds with a
+        VisualAge for Java repository.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:glenn@somanetworks.com">Glenn McAllister</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant: A Build Tool from the Jakarta Project"></a>
+        Ant: A Build Tool from the Jakarta Project
+      </h4>
+                        <p>This article is from the "Best Practices" section of
+        Sun's Dot-Com Builder Site.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Laura Geele Wang
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Making a Mountain Out of an Anthill"></a>
+        Making a Mountain Out of an Anthill
+      </h4>
+                        <p>This article is from the June 2001 issue of the Java Developer'
+        Journal.  You need to be a registered JDJ subscriber to view this
+        article.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Neal Ford
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06">http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Using Ant and Weblogic EJBs"></a>
+        Using Ant and Weblogic EJBs
+      </h4>
+                        <p>This article describes how to use Ant to create Weblogic EJBs, and
+        some workarounds for issues you may encounter.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Jesse E. Tilly
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html">http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Using JavaScript with Ant"></a>
+        Using JavaScript with Ant
+      </h4>
+                        <p>A tutorial about using JavaScript and XSLT with Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Dylan Schiemann
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.sitepen.com/ant/javascript.html">http://www.sitepen.com/ant/javascript.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Building with Ant"></a>
+        Building with Ant
+      </h4>
+                        <p>Series of articles that describe a framework for web
+        application development based on Ant and JUnit.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:alexc@purpletech.com">Alex Chaffee</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Introduction: <a href="http://softwaredev.earthweb.com/sdtech/article/0,,12065_989631,00.html">http://softwaredev.earthweb.com/sdtech/article/0,,12065_989631,00.html</a><br />
+                Directory Structure: <a href="http://softwaredev.earthweb.com/sdtech/article/0,,12082_994991,00.html">http://softwaredev.earthweb.com/sdtech/article/0,,12082_994991,00.html</a><br />
+                Deployment and Distribution: <a href="http://softwaredev.earthweb.com/sdtech/article/0,,12077_998241,00.html">http://softwaredev.earthweb.com/sdtech/article/0,,12077_998241,00.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Developing with JAXB and Ant"></a>
+        Developing with JAXB and Ant
+      </h4>
+                        <p>Series of articles that shows how to use Ant together with
+        the Java API for XML Binding (JAXB).</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Joseph Shelby
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.onjava.com/pub/a/onjava/2002/03/06/jaxant1.html">http://www.onjava.com/pub/a/onjava/2002/03/06/jaxant1.html</a><br />
+                <a href="http://www.onjava.com/pub/a/onjava/2002/03/13/jaxbant2.html">http://www.onjava.com/pub/a/onjava/2002/03/13/jaxbant2.html</a>
+      </td>
+      </tr>
+          </table>
+                                            <h3 class="section">
+      <a name="Presentations"></a>
+      Presentations
+    </h3>
+                              <h4 class="subsection">
+        <a name="Ant Build Tool"></a>
+        Ant Build Tool
+      </h4>
+                        <p>A PowerPoint presentation on Ant 1.2.  It provides a basic overview
+        of Ant's capabilities.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="mailto:chanezon@netscape.com">Patrick Chanezon</a>
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt">http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Ant"></a>
+        Ant
+      </h4>
+                        <p>A detailed Ant 1.3 PowerPoint presentation, made at the St. Louis Java Users Group
+        meeting in March 2001.  Includes a detailed build file and basic
+        descriptions of all the built in and optional tasks.  Updated for Ant 1.4 in October 2001.
+        Available in PDF format now.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Mark Volkmann
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.ociweb.com/jnb/files/Ant.pdf">http://www.ociweb.com/jnb/files/Ant.pdf</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="Modern Development Crises"></a>
+        Modern Development Crises
+      </h4>
+                        <p>This presentation is an overview of the state of software
+        development in 2001.  There are a couple of slides that briefly cover
+        Ant.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.iseran.com/Steve/modern_development_processes.html">http://www.iseran.com/Steve/modern_development_processes.html</a>
+      </td>
+      </tr>
+          </table>
+                                                          <h4 class="subsection">
+        <a name="When Web Services Go Bad"></a>
+        When Web Services Go Bad
+      </h4>
+                        <p>A presentation from the <a href="http://www.sellsbrothers.com/conference/">Web Services
+        DevCon</a> in March 2002.</p>
+                                      <table class="externals" cellspacing="1" cellpadding="4">
+              <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          Author:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          Steve Loughran
+      </td>
+      </tr>
+                  <tr>
+                      <th colspan="1" rowspan="1"
+      valign="top" align="left">
+          URL:
+      </th>
+                          <td colspan="1" rowspan="1"
+      valign="top" align="left">
+          <a href="http://www.iseran.com/Steve/papers/when_web_services_go_bad.html">http://www.iseran.com/Steve/papers/when_web_services_go_bad.html</a>
+      </td>
+      </tr>
+          </table>
+                                    
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/manual1.7.0/svn.html
===================================================================
--- /release-kits/shared/ant-installer/web/manual1.7.0/svn.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/manual1.7.0/svn.html	(revision 14989)
@@ -0,0 +1,225 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+        <html lang="en">
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <head>
+      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Apache Ant - SVN Repositories</title>
+        <link type="text/css" href="./page.css" rel="stylesheet">
+          <meta name="author" content="Antoine Levy-Lambert">
+  <meta name="email" content="">
+      </head>
+
+    <body>
+      <p class="navpath">
+        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+      </p>
+
+      <div class="logobar">
+        <table width="100%" border="0" cellspacing="0" cellpadding="0">
+          <tr>
+            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
+            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
+            <td align="right">
+              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
+                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+                  <tr>
+                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td nowrap="nowrap" class="searchcaption">
+                      <input name="q" type="hidden">
+                      <input size="15" id="query" type="text">
+                      <img height="1" width="5" alt="" src="./images/spacer.gif">
+                      <input name="Search" value="Search" type="submit">
+                      <br>
+                      the Apache Ant site
+                    </td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                  </tr>
+                  <tr>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
+                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
+                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
+                  </tr>
+                </table>
+              </form>
+            </td>
+          </tr>
+        </table>
+      </div>
+
+                  <div class="tab">
+              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+                <tr>
+                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
+                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
+                        <tr>
+                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
+                        </tr>
+                      </table>
+                    </td>
+                            </tr>
+              </table>
+            </div>
+
+      <div class="bluebar"></div>
+                    
+  <div class="menucontainer">
+
+    <div class="menu">
+      <ul>
+              <li class="menuheader">Apache Ant
+          <ul>
+                            <li>
+                                    <a href="./index.html">Welcome</a>
+                                </li>
+                            <li>
+                                    <a href="./license.html">License</a>
+                                </li>
+                            <li>
+                                    <a href="./antnews.html">News</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Documentation
+          <ul>
+                            <li>
+                                    <a href="./manual/index.html">Manual</a>
+                                </li>
+                            <li>
+                                    <a href="./projects.html">Related Projects</a>
+                                </li>
+                            <li>
+                                    <a href="./external.html">External Tools and Tasks</a>
+                                </li>
+                            <li>
+                                    <a href="./resources.html">Resources</a>
+                                </li>
+                            <li>
+                                    <a href="./faq.html">Frequently Asked Questions</a>
+                                </li>
+                            <li>
+                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
+                                </li>
+                            <li>
+                                    <a href="./problems.html">Having Problems?</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Download
+          <ul>
+                            <li>
+                                    <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
+                                </li>
+                            <li>
+                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Contributing
+          <ul>
+                            <li>
+                                    <a href="./mail.html">Mailing Lists</a>
+                                </li>
+                            <li>
+                                    <a href="./svn.html">Subversion Repositories</a>
+                                </li>
+                            <li>
+                                    <a href="./nightlies.html">Nightly Builds</a>
+                                </li>
+                            <li>
+                                    <a href="./bugs.html">Bug Database</a>
+                                </li>
+                            <li>
+                                    <a href="http://www.apache.org/foundation/contributing.html">Donations</a>
+                                </li>
+                      </ul>
+        </li>
+              <li class="menuheader">Project Management
+          <ul>
+                            <li>
+                                    <a href="./contributors.html">Contributors</a>
+                                </li>
+                            <li>
+                                    <a href="./mission.html">Apache Ant Mission</a>
+                                </li>
+                            <li>
+                                    <a href="./bylaws.html">Project Bylaws</a>
+                                </li>
+                            <li>
+                                    <a href="./legal.html">Legal</a>
+                                </li>
+                      </ul>
+        </li>
+            </ul>
+    </div>
+    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
+    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
+  </div>
+      <div class="lightbluebar">&nbsp;</div>
+  <div class="main">
+  <div class="content">
+    <h1 class="title">SVN Repositories</h1>
+            <h3 class="section">
+      <a name="Access the Source Tree (Subversion)"></a>
+      Access the Source Tree (Subversion)
+    </h3>
+                        <p>Anyone can checkout source code from our public Subversion repository. To do so,
+         simply use the following command (if you are using a GUI client, configure it
+         appropriately):</p>
+                                <pre class="code">
+svn co http://svn.apache.org/repos/asf/ant/[project]/trunk/ ant-[project]</pre>
+                                <p>Modules available for access are:</p>
+                                <ul>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/core/trunk/">ant</a> - The "main" Ant module.<br />
+         http://svn.apache.org/repos/asf/ant/core/trunk/
+        </li>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/antlibs/antunit/trunk/">antunit</a> Test framework for Ant.<br />
+            http://svn.apache.org/repos/asf/ant/antlibs/antunit/trunk/</li>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/antlibs/dotnet/trunk/">Dotnet antlib</a> Contains Nant, Nunit, ...<br />
+            http://svn.apache.org/repos/asf/ant/antlibs/dotnet/trunk/</li>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/antlibs/svn/trunk/">svn antlib</a> Contains tasks to interact with Subversion repositories.<br />
+            http://svn.apache.org/repos/asf/ant/antlibs/svn/trunk/</li>
+        <li><a href="http://svn.apache.org/viewcvs.cgi/ant/sandbox/">sandbox</a> - New developments. Contains currently gendoc.<br />
+            http://svn.apache.org/repos/asf/ant/sandbox/
+        </li>
+      </ul>
+                                <p>If you are not familiar with Subversion, <a href="http://jakarta.apache.org/site/cvsindex.html">Jakarta's
+      source repositories page</a> may hold many helpful hints.</p>
+                                <p>Nightly snapshots of the SVN tree are available at
+        <a href="http://svn.apache.org/snapshots/ant/">http://svn.apache.org/snapshots/ant/</a>.</p>
+                                <p>A nice view of the source history is available through
+      <a href="http://fisheye3.cenqua.com/browse/ant/">Cenqua's Fisheye instance</a>.</p>
+                
+    </div>
+  </div>
+
+        <p class="copyright">
+        <script type="text/javascript" language="JavaScript"><!--
+                document.write(" - "+"Last Published: " + document.lastModified);
+              //  -->
+        </script>
+      </p>
+    </body>
+  </html>
+
+
+
+
+
+
+
+
+
+
+
Index: /release-kits/shared/ant-installer/web/miniinstaller.html
===================================================================
--- /release-kits/shared/ant-installer/web/miniinstaller.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/miniinstaller.html	(revision 14989)
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>MiniInstaller</h2>
+The mini installer is the selfextracting jar component of AntInstaller with a few modifications<br/>
+
+ It simply extracts all the files in the Jar to a user selected directory.
+ It works on the command line or with a GUI if possible.<br/>
+ It is available as a separate download.
+ 
+<h3>Usage</h3>
+Simply place <code>org.tp23.mini.MiniInstaller.class</code> and 
+ <code>org.tp23.mini.ProgressIndicator.class</code>
+ in the Jar and add a <code>/META-INF/MANIFEST.mf</code> 
+ with the Main-Class attribute set to <code>org.tp23.mini.MiniInstaller</code>. 
+ <br/>
+ If the manifest includes an attribute <code>Overwrite-Files</code> with any value
+ the installer will overwrite existing files.<br/><br/>
+
+ <h3>LookAndFeel</h3> 
+ If the manifest can include an attribute <code>Look-And-Feel</code> with a value
+ that specifies a look and feel on the claspath that look and feel will be used.<br/>
+ As with AntInstaller a modified verison of the JGoodies look and feel is included.
+ This is cut down to 150K (after compression) since only the file chooser and 
+ JOptionPane are used.
+ If it is still too much just don't include the package <code>org.tp23.jgoodies</code> in the installer
+ and the default LookAndFeel will be used.
+ <br/><br/>
+ 
+ <h3>Extending MiniInstaller</h3>
+  <p>A Hook class can be implemented in the default package that must implement
+ this imaginary interface.
+ <pre>
+interface Hook{
+	public int exec(MiniInstaller installer, boolean graphicsEnv);
+}
+<pre>
+ The interface is <i>imaginary</i> since it does not exist and is not required on the classpath
+ .Reflection is used to find the method.
+ The Hook should never throw exceptions.   <br/>
+ <code>MiniInstaller.isGraphicsEnv()</code> can be used to determine if there is a graphics environment.<br/>
+ <code>MiniInstaller.printXorTextWarning(String)</code> can be used to print a message.<br/>
+ <code>MiniInstaller.getArchiveFile()</code> returns a file handle on the Jar being extracted.<br/>
+ All classes in the package <code>org.tp23</code> including ProgressIndicator,MiniInstaller,Hook and the image
+ resources/extract-image.png are not extracted.<br/><br/>
+ 
+ If you add other classes to Help your Hook class they should be added to the
+ package <code>org.skip</code> and they will not be extracted.
+
+
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/posttargets.html
===================================================================
--- /release-kits/shared/ant-installer/web/posttargets.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/posttargets.html	(revision 14989)
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Post Display Targets</h2>
+			The page elements now supports an additional attribute postDisplayTarget which specifies a target to be run during the build, after the page has been successfully rendered.  The target should be prefixed <code>antinstaller-</code> to identify it as a different target type in the <code>build.xml</code>.  These targets are run in a different context to the target run at the end of the build.  Messages are swallowed and there are no input handlers or log files.<br/><br/>
+			
+			<h2>Custom Tasks</h2>
+			In order to hook into the installer custom Ant tasks have been defined into the project that can be used only during the postDisplayTargets.<br/><br/>
+			
+			<ul>
+				<li><b>antinstaller-log</b> - writes its <code>message</code> attribute to the <code>ant.install.log</code></li>
+				<li><b>antinstaller-message</b> - generates a popup box using its <code>message</code> attribute in swing and writes a text message in the text ui.</li>
+				<li><b>antinstaller-property</b> - takes either two attributes <code>name</code> and <code>value</code> that set the named value in the properties used in the installer and eventually in the Ant build.  Can also take a single attribute <code>resource</code> to load a properties file from the classpath.</li>
+			</ul>
+			
+			These tasks will not work in the normal Ant build, if you try they will throw NullPointerExceptions.
+			
+			antinstaller- targets should there for not be called or used as depends targets for targets that are run during the main build.
+			
+			Exceptions in the postDisplayTarget are reported in the <code>ant.install.log</code> for debugging if debug is set to true in the installer element.
+			
+			The antinstaller.jar property is available for NonExtractor types to reference files in the installer jar.
+			N.B. For anyone creating references in the Ant build with id attributes the prefix <code>antinstaller.internal.</code> should be avoided.
+			 
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/potentialuses.html
===================================================================
--- /release-kits/shared/ant-installer/web/potentialuses.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/potentialuses.html	(revision 14989)
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+            <h2>Potential Uses</h2>
+			
+			AntInstall is clearly designed for creating installers with Ant, but due to the flexibility of Ant it can be used in other situations too.  
+			<br/><br/>
+			<b>Scripting updates</b><br/>
+			If you wish to script changes to a system, AntInstall could be used to provide a GUI so that users can run the script, select the location of thier intallation, enter validated text options, and then let Ant perform changes to the files in the location selected.
+			
+			<br/><br/>
+			<b>Instant GUI</b><br/>
+			AntInstall can be used to quickly generate a GUI app for arbitary Java process that requires some user input prior to running.  Create an antinstall-config.xml file write a small ant script, and potentially for more complex applications write some Java and add in the Ant script a <code>&lt;java&gt;</code> tag to run your code.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/quickstart.html
===================================================================
--- /release-kits/shared/ant-installer/web/quickstart.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/quickstart.html	(revision 14989)
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+            <h2>Quick Start</h2>
+			A quick start demo application is provided for those who don't like reading documentation <img src="images/smiley.png" align="top" alt="smiley"/> <br/><br/>
+			
+			The example application is in the demo directory and installs a "hello world" application to a user selected directory. Look at the <code>antinstall-config.xml</code> file to see how the installer UI is configured and the <code>build.xml</code> file should be familiar to users of Ant.   <br/><br/>
+			
+			Run the installer with the start script and look at the <code>ant.install.properties</code> file to see how the properties have been collected from the user and look at the <code>ant.install.log</code> to see the results of the install. N.B. passwords do not appear in the properties file but are passed to Ant at runtime. If the properties cannot be written to the curent directory it will silently be ommited this is to facilitate installing from read-only media.  To view the properties file for debug purposes ensure you have write permissions to the current directory.  <br/><br/>
+			
+			You should then look at the <code>build-demo.xml</code> file to see how to create a self-extracting jar.<br/><br/>
+
+			N.B. You could build the self extracting jar for your installer with any jar tool but using Ant is highly recommended.  There is an Ant task to create your installer jar called
+			<a href="installertask.html" title="installer Ant task" id="installer-task">&lt;installer&gt;</a>.
+			<br/><br/>
+			There are three methods for running AntInstaller, the demo uses the SelfExtractor.
+			<ol>
+				<li><a href="manual.html#extractor" title="SelfExtractor">SelfExtractor</a> - a single Jar file that is extracted into a temporary directory before the UI is shown.</li>
+				<li><a href="manual.html#non-extractor" title="NonExtractor">NonExtractor</a> - a single Jar file which runs the UI, during the Ant phase resoureces can be extracted from the Jar with the unjar Ant task.</li>
+				<li><a href="manual.html#scripts" title="Scripted Installs">Scripted Installs</a> - a directory structure is delivered, for example a CD, the installer is launched with a script.</li>
+			</ol>
+			<br/>
+			
+			<h2>Order of events</h2>
+			AntInstall takes the following steps to run an install.
+			<ul>
+				<li>If installing from the self-extracting jar,  the first thing is to extract the whole Jar to a temporary directory.  The NonExtractor mode runs straight from the Jar leaving extracting resources to the Ant stage.</li>
+				<li>AntInstaller then checks to see if graphical user interface can be run or if it should use the text/console UI</li>
+				<li>Either the Swing GUI or text UI is launched, the user fills in the required properties and/or selects from the options.  Properties will be collected and a list of Ant targets to run will be made.</li>
+				<li>AntInstaller writes out the properties selected in file in the current directory (or the temporary directory if loading from the self extracting jar)</li>
+				<li>Ant is launched and looks for the build.xml file. The properties are passed to Ant.  </li>
+				<li>The Ant targets selected are then run in order, potentially re-running tasks if you have depends attributes in the build.xml script. (not recommended)</li>
+				<li>The Progress page allows users in the GUI to view or ignore the Ant output. The text console will have all the ant output shown.</li>
+				<li>Assuming no exceptions, the installer can then be exited.</li>
+			</ul>
+		<a name="wizard"></a>
+		<h2>Project Wizard</h2>
+		There is a wizard to help generate the files for your installer.
+		The tool assumes you have a standard Java project structure with a root directory for your projects and a base directory for each project.  For example, if you use Eclipse the projects root directory is your workspace and the project directory would be the module name in CVS.  The directory structure is not imposed but it sets some defaults.<br/><br/>
+		
+		<b>Usage</b><br/>
+		Run the wizard script and enter the projects root (workspace) and short name which is the name of the subdirectory under projects root where the resources for the project exist.<br/><br/>
+		<img src="images/wizard/wizard_main.png" alt="Main directories window" width="472" height="400"/><br/><br/>
+		
+		If you don't have a specific license for your project leave the default.<br/><br/>
+		
+		Click next, and select the components for the installer.  For each box checked you will be asked for a directory.<br/><br/>
+		<img src="images/wizard/wizard_select.png" alt="Select components window" width="472" height="400"/><br/><br/>
+
+		When you have selected the directories in the subsequent pages, click the Create Project button and the wizard creates the files listed below.<br/><br/>
+		<img src="images/wizard/wizard_run.png" alt="Run wizard window" width="472" height="400"/><br/><br/>
+
+		<ul>
+			<li><b>antinstall-config.xml</b> - basic configuration for the UI</li>
+			<li><b>build.xml</b> - the build file to be run during the installation</li>
+			<li><b>create-installer.xml</b> - an Ant build script to build the installer</li>
+			<li><b>[Project short name]-installer.jar</b> - the installer jar (if you selected the create installer box)</li>
+			<li><b>build-self-extractor.sh</b> - linux build script in case you dont have Ant installed (nothing complex if you need to convert this to windows)</li>
+		</ul>
+		It is not expected that the installer created by this wizard will be the installer of your dreams
+		<img src="images/smiley.png" align="top" alt="smiley"/><br/>
+		Presumably you chose AntInstaller for its infinite flexibility, so now you customise and configure the installer to meet your needs.<br/><br/>
+		
+		The wizard gives you a starting point.  From here you will probably want to copy sections of  <code>create-installer.xml</code> into your own Ant build, add user properties and targets to <code>antinstall-config.xml</code> and develop the <code>build.xml</code> that is run during the install.<br/><br/>
+		
+		For a detailed guide to the features of AntInstaller the <a href="manual.html#config">manual</a> as a reference for the <code>antinstall-config.xml</code> file and the <a href="manual/manual/index.html">Ant documentation</a> for the <code>build.xml</code> file.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/roadmap.html
===================================================================
--- /release-kits/shared/ant-installer/web/roadmap.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/roadmap.html	(revision 14989)
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Road Map</h2>
+
+			Please add any other enhancements you would like to see to the sourceforge request for enhancements page.
+			<a href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a>
+			        <br/><br/>
+			<b>Console input</b>       <br/>
+			Indicate that ctrl + C can be used to exit       <br/>
+			Facility to type help for AntInstaller instructions       <br/>
+			Feedback of selection       <br/>
+			Better ACSII art       <br/>
+			JEdit Plugin       <br/>
+       <br/>
+			<b>GUI interface</b>       <br/>
+			"TV" layout, side banners and more "modern" look       <br/>
+			Update to latest JGoodies       <br/>
+			Apache licensed icon packs       <br/>
+			
+			<br/>
+      <b>Other enhancements</b>   <br/>
+			Support for JDK1.3       <br/>
+			Extend the validator to check
+			<ul>
+				<li>the targets entered exist in the build.xml</li>
+				<li>ifTarget and ifProperty expression validation</li>
+				<li>referenced resources are available in the Jar</li>
+			</ul>
+			More translations<br/>
+			Publish GUI translation tool<br/>
+			Publis site rendering tool and subcomponents<br/>
+			Nightly builds<br/>
+			
+			<br/><br/>
+			If any of the above enhancements are important for your project, get in touch to raise the priority.
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/style-print.css
===================================================================
--- /release-kits/shared/ant-installer/web/style-print.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/style-print.css	(revision 14989)
@@ -0,0 +1,160 @@
+body {
+	margin: 0px;
+	padding: 0px;
+	border: 0px;
+	font-family: Georgia, "Times New Roman", serif;
+	font-size: 14px;
+	color: #000000;
+	background-color: #FFFFFF;
+	
+}
+table {
+	margin: 0px;
+	margin-left: 0px;
+	padding: 0px;
+	border: 0px;
+}
+img {
+	border: 0px;
+}
+img#fixwidth {
+	display: none;
+}
+img.but {
+	display: none;
+}
+
+tr.tpheader {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+.tpsmall {
+	font-size: 10px;
+	text-indent: 23px;
+	font-weight: normal;
+}
+
+.tpheadertitle {
+	color: #000000;
+	background-color: #eeeeee;
+	font-family: Verdana,Helvetica,Arial;
+	width: 100%;
+	font-size: 36px;
+	font-weight: bold;
+	text-align: center;
+}
+
+.tpcontent {
+	border: 0px;
+	margin: 0px;
+	padding: 0px;
+}
+
+.tpnoprint {
+	display: none;
+}
+
+.notready {
+	color: InactiveCaptionText;
+}
+
+a span.notready {
+	color: InactiveCaptionText;
+	text-decoration: none;
+}
+
+table.manual {
+	color: #000000;
+	padding: 0px;
+	margin: 0px;
+	border-top: 1px;
+	border-bottom: 0px;
+	border-right: 1px;
+	border-left: 1px;
+	border-style: solid;
+	border-color: #000000;
+}
+table.manual td {
+	margin: 2px;
+	padding: 2px;
+	border-top: 0px;
+	border-bottom: 1px;
+	border-right: 0px;
+	border-left: 1px;
+	border-style: solid;
+	border-color: #000000;
+	font-size: 12px;
+	vertical-align: top;
+	text-align: left;
+}
+th.manual {
+	font-family: monospace;
+	margin: 2px;
+	padding: 4px;
+	border-top: 1px;
+	border-bottom: 1px;
+	border-left: 1px;
+	border-right: 0px;
+	border-style: solid;
+	border-color: #000000;
+	color: #000000;
+	background-color: #FFFFFF;
+	font-size: 14px;
+	vertical-align: top;
+	text-align: left;
+}
+th.manual2 {
+	font-family: Verdana,Helvetica,Arial;
+	margin: 1px;
+	padding: 1px;
+	border-top: 1px;
+	border-bottom: 1px;
+	border-left: 1px;
+	border-right: 0px;
+	border-style: solid;
+	border-color: #000000;
+	color: #000000;
+	background-color: #FFFFFF;
+	font-size: 12px;
+	vertical-align: top;
+	text-align: left;
+}
+
+ul {
+	text-indent: 0px;
+	margin-left: 0px;
+	padding-left: 0px;
+	
+}
+li {
+	list-style-type: square;
+	text-indent: 0px;
+	margin: 0px;
+	padding: 0px;
+	border: 0px;
+	list-style-position: inside;
+}
+
+h2 {
+	font-family: Verdana,Helvetica,Arial;
+	color: #000000;
+	background-color: #eeeeee;
+	border: 0px;
+	margin-top: 20px;
+	padding-left: 40px;
+}
+h3 {
+	font-family: Verdana,Helvetica,Arial;
+	color: #000000;
+	background-color: #eeeeee;
+	border: 0px;
+	margin-top: 40px;
+	padding-left: 40px;
+}
+
+a {
+	text-decoration: none;
+	color: #000000;
+	font-weight: bold;
+}
Index: /release-kits/shared/ant-installer/web/style.css
===================================================================
--- /release-kits/shared/ant-installer/web/style.css	(revision 14989)
+++ /release-kits/shared/ant-installer/web/style.css	(revision 14989)
@@ -0,0 +1,451 @@
+/* background-color: #294563; */
+/* light : #4c6c8f */
+
+/* Core HTML - start */
+body {
+	margin: 0px;
+	padding: 0px;
+	border: 0px;
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 14px;
+	color: #000000;
+	background-color: #FFFFFF;
+}
+td {
+	margin: 0px;
+	padding: 0px;
+	border: 0px;
+	font-size: 14px;
+}
+th {
+	margin: 0px;
+	padding: 0px;
+	border: 0px;
+}
+a {
+	text-decoration: none;
+	font-weight: bold;
+	color: #294563;
+}
+a:link {
+	color: #294563;
+}
+a:visited {
+	color: #294563;
+}
+a:hover {
+	text-decoration: underline;
+	color: #294563;
+}
+a:active {
+	color: #294563;
+}
+h2 {
+	width: 100%;
+	border-top: 0px;
+	border-bottom: 3px;
+	border-left: 0px;
+	border-right: 0px;
+	border-color: #4c6c8f;
+	color: #294563;
+	border-style: solid;
+	margin-bottom: 10px;
+}
+h3 {
+	width: 100%;
+	border-top: 0px;
+	border-bottom: 3px;
+	border-left: 0px;
+	border-right: 0px;
+	border-color: #4c6c8f;
+	color: #294563;
+	border-style: solid;
+	margin-bottom: 10px;
+}
+hr {
+	border: 1px;
+	border-style: solid;
+	border-color:#4c6c8f;
+}
+table {
+	margin: 0px;
+	padding: 0px;
+	border: 0px;
+}
+img {
+	border: 0px;
+}
+ul li{
+	list-style: url('images/li.png') circle;
+	list-style-position: outside;
+	text-indent: 5px;
+	margin-left: 5px;
+	border: 0px;
+}
+/* Core HTML - end */
+
+
+/* Virtual Buttons - start */
+img.but {
+	border: 0px;
+	border-style: solid;
+	padding-top: 3px;
+	padding-bottom: 3px;
+	padding-left: 3px;
+	padding-right: 3px;
+	margin-top: 3px;
+	margin-bottom: 3px;
+	margin-left: 8px;
+	margin-right: 3px;
+}
+a:hover img.but {
+	border-top: 1px;
+	border-bottom: 1px;
+	border-left: 1px;
+	border-right: 1px;
+	border-style: solid;
+	border-top-color: #4c6c8f;
+	border-bottom-color: #294563;
+	border-left-color: #4c6c8f;
+	border-right-color: #294563;
+	padding-top: 3px;
+	padding-bottom: 3px;
+	padding-left: 3px;
+	padding-right: 3px;
+	margin-top: 1px;
+	margin-bottom: 3px;
+	margin-left: 6px;
+	margin-right: 3px;
+}
+a:active img.but {
+	border-top: 1px;
+	border-bottom: 1px;
+	border-left: 1px;
+	border-right: 1px;
+	border-style: inset;
+	border-top-color: #4c6c8f;
+	border-bottom-color: #294563;
+	border-left-color: #4c6c8f;
+	border-right-color: #294563;
+	padding-top: 3px;
+	padding-bottom: 3px;
+	padding-left: 3px;
+	padding-right: 3px;
+	margin-top: 0px;
+	margin-bottom: 3px;
+	margin-left: 5px;
+	margin-right: 3px;
+}
+
+.tpraised {
+	padding: 3px;
+	margin: 0px;
+	margin-left: 8px;
+	margin-bottom: 3px;
+	border: 0px;
+}
+
+a.tpbutton {
+	font-size: 10px;
+	border: 1px;
+	border-style: solid;
+	border-top-color: #4c6c8f;
+	border-bottom-color: #000000;
+	border-left-color: #4c6c8f;
+	border-right-color: #000000;
+	background-color: #294563;
+	color: #FFFFFF;
+	padding-top: 1px;
+	padding-bottom: 2px;
+	padding-left: 5px;
+	padding-right: 5px;
+	margin-top: 4px;
+	margin-bottom: 4px;
+	margin-left: 2px;
+	margin-right: 4px;
+	
+	font-weight: normal;
+	text-decoration: none;
+	vertical-align: top;
+}
+a.tpbutton:hover {
+	font-size: 10px;
+	border: 1px;
+	border-style: solid;
+	border-top-color: #4c6c8f;
+	border-bottom-color: #000000;
+	border-left-color: #4c6c8f;
+	border-right-color: #000000;
+	color: #FFFFFF;
+	
+	padding-top: 1px;
+	padding-bottom: 2px;
+	padding-left: 5px;
+	padding-right: 5px;
+	margin-top: 4px;
+	margin-bottom: 4px;
+	margin-left: 1px;
+	margin-right: 5px;
+	
+	font-weight: normal;
+	text-decoration: none;
+	vertical-align: top;
+}
+a.tpbutton:active {
+	font-size: 10px;
+	border: 1px;
+	border-style: inset;
+	border-top-color: #4c6c8f;
+	border-bottom-color: #000000;
+	border-left-color: #4c6c8f;
+	border-right-color: #000000;
+	color: #FFFFFF;
+	padding-top: 0px;
+	padding-bottom: 2px;
+	padding-left: 5px;
+	padding-right: 5px;
+	margin-top: 5px;
+	margin-bottom: 3px;
+	margin-left: 3px;
+	margin-right: 3px;
+	
+	font-weight: normal;
+	text-decoration: none;
+}
+a.tpbutton:visited {
+	color: #FFFFFF;
+}
+/* Virtual Buttons - end */
+
+/* Page layout - start */
+img#logo {
+	margin-left: 25px;
+}
+th.tptop {
+	text-align: left;
+	background: url("images/antcolor.png") repeat-x;
+	padding: 0px;
+	height: 64px;
+}
+th.tpleft {
+	text-align: left;
+	background: url("images/antcolor.png") repeat-x;
+	padding: 0px;
+}
+td.tpleft {
+	padding-bottom: 23px;
+}
+td.tpright {
+}
+.tpheader {
+	background-color: #294563;
+	color: #000000;
+}
+.tpheader a {
+	color: #FFFFFF;
+}
+
+.tpsmall {
+	font-size: 10px;
+	text-indent: 23px;
+	font-weight: normal;
+}
+.tpheadertitle {
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 38px;
+	font-weight: bold;
+	margin-left: 23px;
+	color: #FFFFFF;
+}
+.tpcontent {
+	border: 0px;
+	border-style: solid;
+	margin: 23px;
+	font-size: 14px;
+}
+
+.tpleft {
+	width: 125px;
+	text-align: left;
+}
+.tpright {
+	text-align: left;
+}
+.tpcropped {
+	width: 500px;
+	height: 150px;
+	overflow: scroll;
+	border: solid 1px #4c6c8f;
+}
+#logoset {
+	margin-left: 2px;
+	text-align: center;
+}
+/* Page layout - end */
+
+.notready {
+}
+a span.notready {
+	text-decoration: none;
+}
+
+/* Manual styles - start */
+
+table.manual {
+	width: 95%;
+	padding: 0px;
+	margin: 0px;
+	border-top: 1px;
+	border-bottom: 0px;
+	border-right: 1px;
+	border-left: 1px;
+	border-style: solid;
+	border-color: #294563;
+}
+table.manual td {
+	margin: 2px;
+	padding: 2px;
+	border-top: 0px;
+	border-bottom: 1px;
+	border-right: 0px;
+	border-left: 1px;
+	border-style: solid;
+	border-color: #294563;
+	font-size: 12px;
+	vertical-align: top;
+	text-align: left;
+}
+th.manual {
+	margin: 2px;
+	padding: 4px;
+	border-top: 1px;
+	border-bottom: 1px;
+	border-left: 1px;
+	border-right: 0px;
+	border-style: solid;
+	border-color: #294563;
+	font-size: 14px;
+	vertical-align: top;
+	text-align: left;
+	color: #000000;
+}
+
+th.manual2 {
+	margin: 1px;
+	padding: 1px;
+	border-top: 1px;
+	border-bottom: 1px;
+	border-left: 1px;
+	border-right: 0px;
+	border-style: solid;
+	border-color: #294563;
+	font-size: 12px;
+	vertical-align: top;
+	text-align: left;
+	color: #FFFFFF;
+}
+.xml {
+	font-family: monospace;
+}
+.bracket {
+	color: #990000;
+}
+.element {
+	color: purple;
+}
+a.element {
+	color: purple;
+}
+.string {
+	color: blue;
+}
+a.reference {
+	color: green;
+}
+/* Manual styles - end */
+
+/* Side bar styles - start */
+
+#contents-panel {
+	position: absolute;
+	left: -1000px;
+	top: 90;
+	width: 200px; /* Should match WIDTH in menu.js */
+	height: 500px;
+	overflow: scroll;
+	font-size: 12px;
+	background: #FFFFFF;
+	border: solid #294563 1px;	
+}
+#frontpage-panel li a{
+	font-size: 14px;
+}
+#frontpage-panel li b{
+	font-size: 14px;
+}
+#contents-options {
+	position: absolute;
+	left: 4px;
+	top: 65;
+	width: 140px;
+	height: 20px;
+	font-size: 12px;
+	background: #FFFFFF;
+}
+/* Side bar styles - end */
+
+
+/* Form elements - start */
+input[type=text]{
+	vertical-align: text-bottom;
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 12px;
+	font-weight: normal;
+	padding: 1px;
+	margin: 1px;
+	border: 1px;
+	border-style: solid;
+	border-color: #294563;
+	height: 20px;
+}
+input.winFix{
+	vertical-align: text-bottom;
+	font-family: Verdana,Helvetica,Arial;
+	font-size: 11px;
+	font-weight: normal;
+	padding: 1px;
+	margin: 1px;
+	border: 1px;
+	border-style: solid;
+	border-color: #294563;
+	height: 18px;
+}
+input[type=image]{
+	vertical-align: text-bottom;
+	border: 1px;
+	padding: 1px;
+	margin: 1px;
+	border-style: none;
+	border-color:#4c6c8f;
+	height: 18px;
+	width: 29px;
+}
+input[type=image]:hover{
+	vertical-align: text-bottom;
+	border: 1px;
+	padding: 1px;
+	margin: 1px;
+	border-style: solid;
+	border-top-color: #4c6c8f;
+	border-bottom-color: #294563;
+	border-left-color: #4c6c8f;
+	border-right-color: #294563;
+	height: 18px;
+	width: 29px;
+}
+/* Form elements - end */
+
+/* Windose fixes */
+img#logo {
+	filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/ant-install-small.png',sizingMethod='scale');
+}
Index: /release-kits/shared/ant-installer/web/template.html
===================================================================
--- /release-kits/shared/ant-installer/web/template.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/template.html	(revision 14989)
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" rel="stylesheet">
+  <link rel="SHORTCUT ICON" href="images/antinstaller-icon.png"/>
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, valiation, configuration">
+</head>
+<body>
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+				<img src="images/space.gif" height="14" width="125"><br>
+				<img src="images/ant-install-small.png" alt="AntInstaller"/><br>
+				<img src="images/space.gif" height="6" width="125">
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440"><br>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="true">
+				<div class="tpraised">
+				<a class="tpbutton" href="index.html">home</a>
+				<a class="tpbutton" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" href="manual/manual/index.html">antmanual</a> 
+				<a class="tpbutton" href="http://sourceforge.net/tracker/?group_id=123466&atid=696615">RFEs</a> 
+				<a class="tpbutton" href="http://sourceforge.net/tracker/?group_id=123466&atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+      <td valign="bottom">
+			<br>
+      <a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br><br>
+ 			<span class="tpsmall">Designed for FireFox</span><br/>
+ 				<a href="http://getfirefox.com/"
+ 						title="Get Firefox - The Browser, Reloaded."><img
+ 			  		src="http://www.mozilla.org/products/firefox/buttons/firefox_80x15.png"
+ 						width="80" height="15" border="0" alt="Get Firefox"></a>
+ 			<br/>
+							<script language="JavaScript">
+							function addSidebar(title, link){ 
+								if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")){
+									window.sidebar.addPanel (title, link, "");
+								}
+							} 
+							</script>
+							<span class="tpsmall">
+							If you have Mozilla<br/>
+							<a href="javascript:addSidebar('AntInstaller', 'http://antinstaller.sourceforge.net/contents.htm')">Add a sidebar</a>
+							<br/>for this site.
+							</span><br/><br/>
+			</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->   
+                                          <h2>Validation of configuration</h2>A tool exists to help validate the configuration file created. A scriptcalled <code>checkConfig.sh</code> is included to run the tool. Thetool only checks that the input types have the required values. In
+future versions it will perform more extensive validation.<br>
+      <br>
+To use the validation tool run the script on the command line and check
+any error messages. The demo app comes with a slightly modified script
+because the classpath is different, it is not complicated to edit the
+script for your own projects.
+<!-- content end [segment-end]-->
+
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/template.htmltemplate
===================================================================
--- /release-kits/shared/ant-installer/web/template.htmltemplate	(revision 14989)
+++ /release-kits/shared/ant-installer/web/template.htmltemplate	(revision 14989)
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" rel="stylesheet">
+  <link rel="SHORTCUT ICON" href="images/antinstaller-icon.png"/>
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, valiation, configuration">
+</head>
+<body>
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft"><img src="space.gif" height="1" width="125"><br>
+      </th>
+      <th class="tptop" valign="bottom">
+		<img src="space.gif" height="1" width="440"><br>
+		<table>
+			<tr>
+				<td>
+					<div class="tpheadertitle">AntInstaller</div>
+				</td>
+				<td width="100%" align="right" valign="bottom" nowrap="true">
+					<div class="tpraised">
+					<a class="tpbutton" href="index.html">home</a>
+					<a class="tpbutton" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+					<a class="tpbutton" href="http://sf.net">sourceforge</a> 
+					<a class="tpbutton" href="http://ant.apache.org/manual/coretasklist.html">antmanual</a> 
+					<a class="tpbutton" href="http://sourceforge.net/tracker/?group_id=123466&atid=696615">RFEs</a> 
+					<a class="tpbutton" href="http://sourceforge.net/tracker/?group_id=123466&atid=696612">Bugs</a></div>
+				</td>
+			</tr>
+		</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+      <td class="tpleft" valign="bottom">
+		<br/>
+		<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+		<br/><br/>
+ 		<span class="tpsmall">Designed for FireFox</span><br/>
+ 			<a href="http://getfirefox.com/"
+ 				title="Get Firefox - The Browser, Reloaded."><img
+				src="http://www.mozilla.org/products/firefox/buttons/firefox_80x15.png"
+ 				width="80" height="15" border="0" alt="Get Firefox"></a>
+ 		<br/><br/>
+ <script language="JavaScript">
+ function addSidebar(title, link){ 
+ 	if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")){
+ 		window.sidebar.addPanel (title, link, "");
+ 	}
+ } 
+ </script>
+ 		If you have Mozilla based browser, you can add indexes as a sidebar - 
+		<a href="javascript:addSidebar('AntInstaller', 'http://antinstaller.sourceforge.net/contents.htm')">here</a>.
+
+			
+	  </td>
+      <td class="tpright" valign="top">
+		<div class="tpcontent">
+			<!--[segment-content] page content start -->
+      <h2>Validation of configuration</h2>
+A tool exists to help validate the configuration file created. A script
+called <code>checkConfig.sh</code> is included to run the tool. The
+tool only checks that the input types have the required values. In
+future versions it will perform more extensive validation.<br>
+      <br>
+To use the validation tool run the script on the command line and check
+any error messages. The demo app comes with a slightly modified script
+because the classpath is different, it is not complicated to edit the
+script for your own projects.
+				<!-- content end [segment-end]-->
+		</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/userusage.html
===================================================================
--- /release-kits/shared/ant-installer/web/userusage.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/userusage.html	(revision 14989)
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                                 <h2>User usage</h2>
+From a user perspective AntInstall is similar to many other installers.
+Start the installer, click OK to the licenses. The user is presented
+with screens in which to enter text or select from the available
+options. <br>
+      <br>
+To use Antinstaller you must have Java. It is possible that the
+installer may be repackaged with Java but generally AntInstaller will assume
+Java is installed. You must also have the JAVA_HOME environment
+variable set to install from a script. <br>
+      <br>
+      <h3>Script Installs</h3>
+			<h4>Unix</h4>
+Un pack the gz.tar file to a temporary directory and run the <code>install.sh</code>
+script. If you have X configured and available you will be shown a
+window with installation instructions. If you do not have X and are
+working on the commandline, installation instructions will be presented
+on the console.
+      <h4>Windows</h4>
+Unzip the installation file and double click on the <code>install.cmd</code>
+(install) file, follow the instructions onscreen
+			<br>
+			<br>
+      <h3>Jar Installs</h3>
+			<h4>Unix</h4>
+If the installer is delivered as a single file with the extension <code>.jar</code> it should be possible to run the installer by double clicking on the file.  If your system has reconfigured the <code>.jar</code> type run the installer with the following
+command<br>
+<code>&gt; java -jar [installer_name].jar</code><br>
+
+      <h4>Windows</h4>
+If installing an application with a single Jar file you should be able to just double click on the file in Explorer.  
+If you have  registered additional applications to opens Jars, right moust click and select "open with" "javaw".
+			<h3>Re-Installing</h3>
+For normal applications, or situations where Ant is not installed,
+re-running the installer is a case of repeating the instructions
+above and entering the values again. <br>
+<br>
+If you are using AntInstaller for server installations or as a front
+end for a build process, you may it may be usefull to repeat an
+installation without entering the values again.  Ensure the installer is installed with the 
+debug flag set to true and use the scripted install.
+If you have Ant installed you can navigate
+to the root directory of the install and just run Ant. Ant will pick up
+the <code>build.xml</code> file and the <code>ant.install.properties</code>
+that were used last time the installer was run. <br>
+There are three things to bear in mind. <br>
+Firstly, passwords are not stored 
+in the properties file
+so you will have to edit the file and set the passwords in plain text
+(and take responibility for security of the file). <br>
+Secondly you should
+ensure that you run the same targets as were run last time the
+installer was run this can be done by appending the targets to the ant
+command when running from the command line. <br>
+Finally, when
+creating the <code>build.xml</code> should ensure that the installer does not break
+itself by deleting files at the end of a successfull install.
+<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/validationofconfig.html
===================================================================
--- /release-kits/shared/ant-installer/web/validationofconfig.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/validationofconfig.html	(revision 14989)
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Validation of configuration</h2>
+			A tool exists to help validate the configuration file created.  A script called <code>checkConfig.sh</code> is included to run the tool, or it can be run in the <a href="installertask.html" title="AntInstaller Ant task">ant task</a>.  The tool validates the XML, checks that the input types have the required values an dperforms some validation on other attributes of the configuration file.<br/><br/>
+			
+			During validation critical errors will stop the build, but there are also warnings printed that should be considered.<br/><br/>
+			
+			To use the validation tool run the script on the command line and check any error messages.  The demo app comes with a slightly modified script because the classpath is different, it is not complicated to edit the script for your own projects.
+			
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/web/wanted.html
===================================================================
--- /release-kits/shared/ant-installer/web/wanted.html	(revision 14989)
+++ /release-kits/shared/ant-installer/web/wanted.html	(revision 14989)
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Ant Installer</title>
+  <link href="style.css" type="text/css" rel="stylesheet">
+  <link href="css/nav.css" rel="stylesheet" type="text/css">
+  <link rel="SHORTCUT ICON" type="image/png" href="images/antinstaller-icon.png">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="keywords"
+ content="Ant, installer, AntInstall, gui, console, input, parameters, properties, swing, user interface, validation, configuration">
+ <script type="text/javascript" src="js/menu.js"></script>
+ <script type="text/javascript" src="js/sstree.js"></script>
+ <script type="text/javascript" src="js/winfix.js"></script>
+</head>
+<body onload="collapseAll('contents-panel', ['ol']); "><div id="tpallcontent">
+<table cellspacing="0" width="100%">
+  <tbody>
+    <tr class="tpheader">
+      <th class="tpleft">
+			<a target="_top" href="index.html" title="home"><img src="images/ant-install-small.png" alt="AntInstaller" id="logo" width="76" height="50"/></a>
+			<script type="text/javascript">winFix();</script>
+      </th>
+      <th class="tptop" valign="bottom">
+				<img src="space.gif" height="1" width="440" alt="spacer"/><br/>
+				
+				<table>
+					<tr>
+						<td valign="top">
+							<div class="tpheadertitle">AntInstaller</div>
+							<!--img src="images/ant-install-title.png" alt="AntInstaller"/-->
+						</td>
+						<td width="100%" align="right" valign="bottom" nowrap="NOWRAP">
+				<div class="tpraised">
+				<a class="tpbutton" target="_top" href="index.html">home</a>
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/project/showfiles.php?group_id=123466&amp;package_id=134917">download</a>
+				<a class="tpbutton" target="_top" href="http://sf.net">sourceforge</a> 
+				<a class="tpbutton" target="_top" href="manual-ant.html">antmanual</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696615">RFEs</a> 
+				<a class="tpbutton" target="_top" href="http://sourceforge.net/tracker/?group_id=123466&amp;atid=696612">Bugs</a></div>
+						</td>
+					</tr>
+				</table>
+      </th>
+    </tr>
+    <tr class="tpbody">
+		<td class="tpleft" valign="bottom">
+			<br/>
+			<div id="logoset">
+			<a target="_top" href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=123466&amp;type=2" alt="SourceForge.net Logo" border="0" height="37" width="125"></a>
+			<br/><br/>
+			<a target="_top" href="http://sourceforge.net/donate/index.php?group_id=123466">
+			<img src="http://sourceforge.net/images/project-support.jpg" alt="donate to AntInstaller"/>
+			</a>
+			</div>
+		</td>
+      <td class="tpright" valign="top">
+      <div class="tpcontent">
+			<!--[segment-content] page content start -->
+                           			<h2>Wanted</h2>
+			
+			There is more to a project than a bunch of code, this is a list of the top of my head of help that would be appreciated.<br/><br/>
+<ul>
+<li>Feedback on how well it works and how well it suits your needs.</li>
+<li>Plugins for common tools.</li>
+<li>.exe setups for windows users, preferable that can be generated with Ant.</li>
+<li>Embeded Java runtimes + help on licensing restrictions.</li>
+<li>Background designs for specific LookAndFeels,  it would be nice to replace the plain background with subtle low contrast images or design.</li>
+<li>Free (Apache Licensed) banner images to include with the download.</li>
+<li>Advice with the GUI design. Please not just flames or tips from the opinionated, but advice from any one who has studied design academically or is a long time pro would be appreciated.</li>
+<li>JUnit tests. (well it can't hurt to ask!)</li>
+<li>Internationalisation for other foreign languages.</li>
+<li>Examples of real installer to use as compatibility tests for new versions.</li>
+</ul>
+			<!-- content end [segment-end]-->
+		 	</div>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<div id="contents-panel">
+<!--[segment-file://contents-include.html] menu start -->
+<div id="contents-menu">
+<ol class="sidebar" id="root">
+	<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Site map</b>
+		<ol>
+			<li class="sidebar"><a href="introduction.html">Introduction</a></li>
+			<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><b>Developer References</b>
+				<ol>
+					<li class="sidebar"><a href="quickstart.html">Quick Start</a></li>
+					<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html">Manual</a>
+						<ol class="init-hidden">
+							<li class="sidebar"><a href="manual.html#config">antinstall-config.xml</a></li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#page">Pages</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#pagesplash">Splash Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagetext">Text Page</a></li>
+									<li class="sidebar"><a href="manual.html#pagelicense">License Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageinput">Input Page</a></li>
+									<li class="sidebar"><a href="manual.html#pageprogress">Progress Page</a></li>
+								</ol>
+							</li>
+							<li class="panel"><a href="#default" class="folder" onclick="toggle(this)"></a><a href="manual.html#inputtypes">Input types</a>
+								<ol class="init-hidden">
+									<li class="sidebar"><a href="manual.html#app-root">Application Root</a></li>
+									<li class="sidebar"><a href="manual.html#checkbox">Checkbox</a></li>
+									<li class="sidebar"><a href="manual.html#comment">Comment</a></li>
+									<li class="sidebar"><a href="manual.html#date">Date</a></li>
+									<li class="sidebar"><a href="manual.html#directory">Directory</a></li>
+									<li class="sidebar"><a href="manual.html#file">File</a></li>
+									<li class="sidebar"><a href="manual.html#large-select">Large Select</a></li>
+									<li class="sidebar"><a href="manual.html#password">Password Text</a></li>
+									<li class="sidebar"><a href="manual.html#password-confirm">Confirm Password</a></li>
+									<li class="sidebar"><a href="manual.html#select">Select</a></li>
+									<li class="sidebar"><a href="manual.html#target">Target</a></li>
+									<li class="sidebar"><a href="manual.html#target-select">Target Select</a></li>
+									<li class="sidebar"><a href="manual.html#text">Unvalidated Text</a></li>
+									<li class="sidebar"><a href="manual.html#validated">Validated Text</a></li>
+									<li class="sidebar"><a href="manual.html#extvalidated">Externally Validated Text</a></li>
+								</ol>
+							</li>
+							<li class="sidebar"><a href="manual.html#extractor">Self Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#non-extractor">Non Extractor</a></li>
+							<li class="sidebar"><a href="manual.html#scripts">Start Scripts</a></li>
+							<li class="sidebar"><a href="manual.html#refs">Dynamic References</a></li>
+							<li class="sidebar"><a href="manual.html#pagedisplay">Page Displaying</a></li>
+						</ol>
+					</li>
+					<li class="sidebar"><a href="installertask.html">Installer Ant task</a></li>
+					<li class="sidebar"><a href="validationofconfig.html">Validation of config</a></li>
+					<li class="sidebar"><a href="lookandfeels.html">LookAndFeels</a> <br/>(inc screenshots)</li>
+					<li class="sidebar"><a href="classpathresources.html">Resources/Classpath issues</a></li>
+					<li class="sidebar"><a href="i18n.html">Internationalisation</a></li>
+					<li class="sidebar"><a href="auto.html">Automated installs</a></li>
+					<li class="sidebar"><a href="installtypes.html">Multiple install types</a></li>
+					<li class="sidebar"><a href="posttargets.html">Post display targets</a></li>
+					<li class="sidebar"><a href="icons.html">Button Icons</a></li>
+					<li class="sidebar"><a href="antinstall-config-example.html">Example antinstall-config.xml</a></li>
+				</ol>
+			</li>
+			<li class="sidebar"><a href="manual-ant.html">Ant Manual</a></li>
+			<li class="sidebar"><a href="antlinks.html">Ant links</a></li>
+			<li class="sidebar"><a href="userusage.html">User usage</a></li>
+			<li class="sidebar"><a href="licenses.html">Licenses</a></li>
+			<li class="sidebar"><a href="potentialuses.html">Potential uses</a></li>
+			<li class="sidebar"><a href="roadmap.html">Road Map</a></li>
+			<li class="sidebar"><a href="wanted.html">Wanted</a></li>
+			<li class="sidebar"><a href="dtds.html">DTDs</a></li>
+			<li class="sidebar"><a href="changelog.html">Changelog</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/projects/antinstaller">Project page on SourceForge</a></li>
+			<li class="sidebar"><a href="java2html/antinstaller/index.html">Java2HTML (main)</a></li>
+			<li class="sidebar"><a href="java2html/ext/index.html">Java2HTML (extensions)</a></li>
+			<li class="sidebar"><a href="http://antinstaller.cvs.sourceforge.net/antinstaller">Public CVS over HTTP</a></li>
+			<li class="sidebar"><a href="http://sourceforge.net/sendmessage.php?touser=616485">Contact AntInstaller Admin</a></li>
+		</ol>
+	</li>
+</ol>
+<br/>
+<br/>
+</div>
+
+
+<!-- menu end [segment-end]-->
+</div>
+<div id="contents-options">
+<a id="toggle" href="#" onclick="toggleMenu(); return false;">show menu</a>
+</div>
+
+</div>
+</body>
+</html>
Index: /release-kits/shared/ant-installer/windows-icons/installIcons-docs.cmd
===================================================================
--- /release-kits/shared/ant-installer/windows-icons/installIcons-docs.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/windows-icons/installIcons-docs.cmd	(revision 14989)
@@ -0,0 +1,3 @@
+@echo off
+REM this batch file exists so that the parameters of this line are NOT quoted
+rundll32 setupapi,InstallHinfSection DefaultInstall 128 @installDir@\windows-icons\installIcons-docs.inf
Index: /release-kits/shared/ant-installer/windows-icons/installIcons-docs.inf
===================================================================
--- /release-kits/shared/ant-installer/windows-icons/installIcons-docs.inf	(revision 14989)
+++ /release-kits/shared/ant-installer/windows-icons/installIcons-docs.inf	(revision 14989)
@@ -0,0 +1,11 @@
+[version]
+signature="$chicago$"
+
+[DefaultInstall]
+UpdateInis=Addlink
+
+[AddLink]
+setup.ini, progman.groups,, "group0=AntInstaller"
+setup.ini, group0,, ""AntInstaller""
+setup.ini, group0,, """AntInstaller Docs"",""cmd /c """"@installDir@\web\index.html"""""", ""@installDir@\AntInstaller.ico"",0,"
+setup.ini, group0,, """AntInstaller Wizard"",""cmd /c """"@installDir@\wizard.cmd"""""", ""@installDir@\AntInstaller.ico"",0,"
Index: /release-kits/shared/ant-installer/wizard.cmd
===================================================================
--- /release-kits/shared/ant-installer/wizard.cmd	(revision 14989)
+++ /release-kits/shared/ant-installer/wizard.cmd	(revision 14989)
@@ -0,0 +1,19 @@
+@echo off
+
+if  "%JAVA_HOME%" == "" goto nojava
+
+set DIR=%~dp0
+cd %DIR%
+
+cd .\templates\defaultproject
+call runtemplate.cmd %1
+cd ..\..
+goto end
+
+:nojava
+echo set JAVA_HOME
+echo you must install java use the wizard
+pause
+goto end
+
+:end
Index: /release-kits/shared/ant-installer/wizard.sh
===================================================================
--- /release-kits/shared/ant-installer/wizard.sh	(revision 14989)
+++ /release-kits/shared/ant-installer/wizard.sh	(revision 14989)
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+dir=`expr  match "$0" '\(.*\)wizard.sh'`
+#  if it we did not call ./  change to the directory we called
+if [ "$dir" != "./" ] ; then
+   if [ "$dir" != "" ] ;  then
+      echo changing to $dir
+      cd "$dir" ;
+   fi
+fi
+./templates/defaultproject/runtemplate.sh $1
